UNPKG

@kre-form/ant

Version:

711 lines 47.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Injectable } from "@angular/core"; import * as _ from "lodash"; var KreSetFormFieldService = /** @class */ (function () { function KreSetFormFieldService() { } /** * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.getKreFiledFunction = /** * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var fieldSource = this.getSourceFields(field); /** @type {?} */ var fields = []; /** @type {?} */ var type = field.type; switch (type) { case "text": fields = this.text(field); break; case "texti18n": fields = this.textI18N(field); break; case "textarea": fields = this.textArea(field); break; case "numbers": fields = this.number(field); break; case "password": fields = this.passWord(field); break; case "radio": fields = this.radio(field); break; case "radiogroup": fields = this.radio(field); break; case "checkbox": fields = this.checkbox(field); break; case "checkboxgroup": fields = this.checkbox(field); break; case "select": fields = this.select(field); break; case "datetime": fields = this.datetime(field); break; case "image": fields = this.image(field); break; case "upload": fields = this.upload(field); break; case "htmlcontent": fields = this.html(field); break; case "lookup": fields = this.lookup(field); break; case "repeat": fields = this.repeat(field); break; case "dimissContract": fields = this.dimissContract(field); break; } fields.push({ key: "templateOptions.pattern", type: "textarea", templateOptions: { label: "正则表达式", rows: 4, }, defaultValue: _.get(field, "templateOptions.pattern"), }); fieldSource = tslib_1.__spread(fieldSource, fields); return fieldSource; }; /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.getSourceFields = /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = [ { key: "key", type: "text", templateOptions: { label: "字段编码", }, editor: false, defaultValue: field["key"], }, { key: "templateOptions.label", type: "text", templateOptions: { label: "显示名称", }, editor: false, defaultValue: _.get(field, "templateOptions.label"), }, { key: "type", type: "text", templateOptions: { label: "字段类型", }, editor: false, defaultValue: field["type"], }, { key: "defaultValue", type: "text", templateOptions: { label: "默认值", }, editor: false, defaultValue: field["defaultValue"], }, { key: "templateOptions.tips", type: "text", templateOptions: { label: "提示信息", }, editor: false, defaultValue: _.get(field, "templateOptions.tips"), }, { key: "templateOptions.placeholder", type: "text", templateOptions: { label: "占位符", }, editor: false, defaultValue: _.get(field, "templateOptions.placeholder"), }, { key: "editor", type: "checkbox", templateOptions: { label: "是否可编辑", }, editor: true, defaultValue: _.get(field, "editor"), }, ]; return config; }; //1、字符串 //1、字符串 /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.text = //1、字符串 /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = [ { key: "templateOptions.minLength", type: "numbers", templateOptions: { label: "最小长度", }, defaultValue: _.get(field, "templateOptions.minLength"), }, { key: "templateOptions.maxLength", type: "numbers", templateOptions: { label: "最大长度", }, defaultValue: _.get(field, "templateOptions.maxLength"), }, { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; }; //2、多语言 //2、多语言 /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.textI18N = //2、多语言 /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; }; //3、多行文本 //3、多行文本 /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.textArea = //3、多行文本 /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = [ { key: "templateOptions.minLength", type: "numbers", templateOptions: { label: "最小长度", }, defaultValue: _.get(field, "templateOptions.minLength"), }, { key: "templateOptions.maxLength", type: "numbers", templateOptions: { label: "最大长度", }, defaultValue: _.get(field, "templateOptions.maxLength"), }, { key: "templateOptions.rows", type: "numbers", templateOptions: { label: "默认行数", }, defaultValue: _.get(field, "templateOptions.rows"), }, { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; }; //4、数字 //4、数字 /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.number = //4、数字 /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = [ { key: "templateOptions.min", type: "numbers", templateOptions: { label: "最小值", }, defaultValue: _.get(field, "templateOptions.min"), }, { key: "templateOptions.max", type: "numbers", templateOptions: { label: "最大值", }, defaultValue: _.get(field, "templateOptions.max"), }, { key: "templateOptions.precision", type: "numbers", templateOptions: { label: "精度", }, defaultValue: _.get(field, "templateOptions.precision"), }, { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; }; //5、密码 //5、密码 /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.passWord = //5、密码 /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = [ { key: "templateOptions.minLength", type: "numbers", templateOptions: { label: "最小长度", }, defaultValue: _.get(field, "templateOptions.minLength"), }, { key: "templateOptions.maxLength", type: "numbers", templateOptions: { label: "最大长度", }, defaultValue: _.get(field, "templateOptions.maxLength"), }, { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; }; //6、单选 //6、单选 /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.radio = //6、单选 /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; }; //6、单选 //6、单选 /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.radioGroup = //6、单选 /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; }; //7、复选 //7、复选 /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.checkbox = //7、复选 /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; }; //8、下拉 //8、下拉 /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.select = //8、下拉 /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; }; //9、日期 //9、日期 /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.datetime = //9、日期 /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; }; //10、图片 //10、图片 /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.image = //10、图片 /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; }; //11、附件 //11、附件 /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.upload = //11、附件 /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; }; //12、弹框 //12、弹框 /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.lookup = //12、弹框 /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = []; return config; }; //13、html //13、html /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.html = //13、html /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = []; return config; }; //14、html //14、html /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.repeat = //14、html /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = [ { key: "templateOptions.minLength", type: "numbers", templateOptions: { label: "最少几条", }, defaultValue: _.get(field, "templateOptions.minLength"), }, { key: "templateOptions.maxLength", type: "numbers", templateOptions: { label: "最多几条", }, defaultValue: _.get(field, "templateOptions.maxLength"), }, { key: "templateOptions.type", type: "radiogroup", templateOptions: { label: "显示方式", parameterid: "para001", options: [ { label: "块状", value: "default", }, { label: "列表", value: "table", }, ], }, defaultValue: _.get(field, "templateOptions.type"), }, ]; return config; }; /** * @private * @param {?} field * @return {?} */ KreSetFormFieldService.prototype.dimissContract = /** * @private * @param {?} field * @return {?} */ function (field) { /** @type {?} */ var config = [ { key: "templateOptions.required", type: "dimissContract", templateOptions: { label: "", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; }; KreSetFormFieldService.decorators = [ { type: Injectable } ]; /** @nocollapse */ KreSetFormFieldService.ctorParameters = function () { return []; }; return KreSetFormFieldService; }()); export { KreSetFormFieldService }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0RmllbGQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BrcmUtZm9ybS9hbnQvIiwic291cmNlcyI6WyJsaWIvdG9vbHMvc2V0RmllbGQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCO0lBRUU7SUFBZSxDQUFDOzs7OztJQUVoQixvREFBbUI7Ozs7SUFBbkIsVUFBb0IsS0FBeUI7O1lBQ3ZDLFdBQVcsR0FBeUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7O1lBQy9ELE1BQU0sR0FBeUIsRUFBRTs7WUFDakMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJO1FBQ3JCLFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxNQUFNO2dCQUNULE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixNQUFNO1lBQ1IsS0FBSyxTQUFTO2dCQUNaLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1QixNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQixNQUFNO1lBQ1IsS0FBSyxZQUFZO2dCQUNmLE1B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QjtZQUNqQztnQkFDRSxHQUFHLEVBQUUsMEJBQTBCO2dCQUMvQixJQUFJLEVBQUUsZ0JBQWdCO2dCQUN0QixlQUFlLEVBQUU7b0JBQ2YsS0FBSyxFQUFFLEVBQUU7aUJBQ1Y7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLDBCQUEwQixDQUFDO2FBQ3ZEO1NBQ0Y7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztnQkFqZUYsVUFBVTs7OztJQWtlWCw2QkFBQztDQUFBLEFBbGVELElBa2VDO1NBamVZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEV2ZW50RW1pdHRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBLcmVUYWJsZUZpZWxkQ29uZmlnLCBLcmVGb3JtRmllbGRDb25maWcgfSBmcm9tIFwiQGtyZS1mb3JtL2NvcmVcIjtcbmltcG9ydCAqIGFzIF8gZnJvbSBcImxvZGFzaFwiO1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEtyZVNldEZvcm1GaWVsZFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgZ2V0S3JlRmlsZWRGdW5jdGlvbihmaWVsZDogS3JlRm9ybUZpZWxkQ29uZmlnKSB7XG4gICAgbGV0IGZpZWxkU291cmNlOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IHRoaXMuZ2V0U291cmNlRmllbGRzKGZpZWxkKTtcbiAgICBsZXQgZmllbGRzOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IFtdO1xuICAgIGxldCB0eXBlID0gZmllbGQudHlwZTtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgXCJ0ZXh0XCI6XG4gICAgICAgIGZpZWxkcyA9IHRoaXMudGV4dChmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInRleHRpMThuXCI6XG4gICAgICAgIGZpZWxkcyA9IHRoaXMudGV4dEkxOE4oZmllbGQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJ0ZXh0YXJlYVwiOlxuICAgICAgICBmaWVsZHMgPSB0aGlzLnRleHRBcmVhKGZpZWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwibnVtYmVyc1wiOlxuICAgICAgICBmaWVsZHMgPSB0aGlzLm51bWJlcihmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInBhc3N3b3JkXCI6XG4gICAgICAgIGZpZWxkcyA9IHRoaXMucGFzc1dvcmQoZmllbGQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJyYWRpb1wiOlxuICAgICAgICBmaWVsZHMgPSB0aGlzLnJhZGlvKGZpZWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwicmFkaW9ncm91cFwiOlxuICAgICAgICBmaWVsZHMgPSB0aGlzLnJhZGlvKGZpZWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiY2hlY2tib3hcIjpcbiAgICAgICAgZmllbGRzID0gdGhpcy5jaGVja2JveChmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImNoZWNrYm94Z3JvdXBcIjpcbiAgICAgICAgZmllbGRzID0gdGhpcy5jaGVja2JveChmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInNlbGVjdFwiOlxuICAgICAgICBmaWVsZHMgPSB0aGlzLnNlbGVjdChmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImRhdGV0aW1lXCI6XG4gICAgICAgIGZpZWxkcyA9IHRoaXMuZGF0ZXRpbWUoZmllbGQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJpbWFnZVwiOlxuICAgICAgICBmaWVsZHMgPSB0aGlzLmltYWdlKGZpZWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwidXBsb2FkXCI6XG4gICAgICAgIGZpZWxkcyA9IHRoaXMudXBsb2FkKGZpZWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiaHRtbGNvbnRlbnRcIjpcbiAgICAgICAgZmllbGRzID0gdGhpcy5odG1sKGZpZWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwibG9va3VwXCI6XG4gICAgICAgIGZpZWxkcyA9IHRoaXMubG9va3VwKGZpZWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwicmVwZWF0XCI6XG4gICAgICAgIGZpZWxkcyA9IHRoaXMucmVwZWF0KGZpZWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiZGltaXNzQ29udHJhY3RcIjpcbiAgICAgICAgZmllbGRzID0gdGhpcy5kaW1pc3NDb250cmFjdChmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBmaWVsZHMucHVzaCh7XG4gICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLnBhdHRlcm5cIixcbiAgICAgIHR5cGU6IFwidGV4dGFyZWFcIixcbiAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICBsYWJlbDogXCLmraPliJnooajovr7lvI9cIixcbiAgICAgICAgcm93czogNCxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5wYXR0ZXJuXCIpLFxuICAgIH0pO1xuICAgIGZpZWxkU291cmNlID0gWy4uLmZpZWxkU291cmNlLCAuLi5maWVsZHNdO1xuICAgIHJldHVybiBmaWVsZFNvdXJjZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U291cmNlRmllbGRzKGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBsZXQgY29uZmlnOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiBcImtleVwiLFxuICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5a2X5q6157yW56CBXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGVkaXRvcjogZmFsc2UsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZmllbGRbXCJrZXlcIl0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLmxhYmVsXCIsXG4gICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmmL7npLrlkI3np7BcIixcbiAgICAgICAgfSxcbiAgICAgICAgZWRpdG9yOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMubGFiZWxcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6IFwidHlwZVwiLFxuICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5a2X5q6157G75Z6LXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGVkaXRvcjogZmFsc2UsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZmllbGRbXCJ0eXBlXCJdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiBcImRlZmF1bHRWYWx1ZVwiLFxuICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi6buY6K6k5YC8XCIsXG4gICAgICAgIH0sXG4gICAgICAgIGVkaXRvcjogZmFsc2UsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZmllbGRbXCJkZWZhdWx0VmFsdWVcIl0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLnRpcHNcIixcbiAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuaPkOekuuS/oeaBr1wiLFxuICAgICAgICB9LFxuICAgICAgICBlZGl0b3I6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy50aXBzXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5wbGFjZWhvbGRlclwiLFxuICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5Y2g5L2N56ymXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGVkaXRvcjogZmFsc2UsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLnBsYWNlaG9sZGVyXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiBcImVkaXRvclwiLFxuICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuaYr+WQpuWPr+e8lui+kVwiLFxuICAgICAgICB9LFxuICAgICAgICBlZGl0b3I6IHRydWUsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwiZWRpdG9yXCIpLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIC8vMeOAgeWtl+espuS4slxuICBwcml2YXRlIHRleHQoZmllbGQ6IEtyZUZvcm1GaWVsZENvbmZpZykge1xuICAgIGxldCBjb25maWc6IEtyZUZvcm1GaWVsZENvbmZpZ1tdID0gW1xuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLm1pbkxlbmd0aFwiLFxuICAgICAgICB0eXBlOiBcIm51bWJlcnNcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5pyA5bCP6ZW/5bqmXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLm1pbkxlbmd0aFwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMubWF4TGVuZ3RoXCIsXG4gICAgICAgIHR5cGU6IFwibnVtYmVyc1wiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmnIDlpKfplb/luqZcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMubWF4TGVuZ3RoXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiLFxuICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuaYr+WQpuW/heWhq1wiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiKSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICAvLzLjgIHlpJror63oqIBcbiAgcHJpdmF0ZSB0ZXh0STE4TihmaWVsZDogS3JlRm9ybUZpZWxkQ29uZmlnKSB7XG4gICAgbGV0IGNvbmZpZzogS3JlRm9ybUZpZWxkQ29uZmlnW10gPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIixcbiAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmmK/lkKblv4XloatcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIiksXG4gICAgICB9LFxuICAgIF07XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuICAvLzPjgIHlpJrooYzmlofmnKxcbiAgcHJpdmF0ZSB0ZXh0QXJlYShmaWVsZDogS3JlRm9ybUZpZWxkQ29uZmlnKSB7XG4gICAgbGV0IGNvbmZpZzogS3JlRm9ybUZpZWxkQ29uZmlnW10gPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMubWluTGVuZ3RoXCIsXG4gICAgICAgIHR5cGU6IFwibnVtYmVyc1wiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmnIDlsI/plb/luqZcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMubWluTGVuZ3RoXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5tYXhMZW5ndGhcIixcbiAgICAgICAgdHlwZTogXCJudW1iZXJzXCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuacgOWkp+mVv+W6plwiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5tYXhMZW5ndGhcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLnJvd3NcIixcbiAgICAgICAgdHlwZTogXCJudW1iZXJzXCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIum7mOiupOihjOaVsFwiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5yb3dzXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiLFxuICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuaYr+WQpuW/heWhq1wiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiKSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICAvLzTjgIHmlbDlrZdcbiAgcHJpdmF0ZSBudW1iZXIoZmllbGQ6IEtyZUZvcm1GaWVsZENvbmZpZykge1xuICAgIGxldCBjb25maWc6IEtyZUZvcm1GaWVsZENvbmZpZ1tdID0gW1xuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLm1pblwiLFxuICAgICAgICB0eXBlOiBcIm51bWJlcnNcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5pyA5bCP5YC8XCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLm1pblwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMubWF4XCIsXG4gICAgICAgIHR5cGU6IFwibnVtYmVyc1wiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmnIDlpKflgLxcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMubWF4XCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5wcmVjaXNpb25cIixcbiAgICAgICAgdHlwZTogXCJudW1iZXJzXCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIueyvuW6plwiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5wcmVjaXNpb25cIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIsXG4gICAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5piv5ZCm5b+F5aGrXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIpLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIC8vNeOAgeWvhueggVxuICBwcml2YXRlIHBhc3NXb3JkKGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBsZXQgY29uZmlnOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5taW5MZW5ndGhcIixcbiAgICAgICAgdHlwZTogXCJudW1iZXJzXCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuacgOWwj+mVv+W6plwiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5taW5MZW5ndGhcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLm1heExlbmd0aFwiLFxuICAgICAgICB0eXBlOiBcIm51bWJlcnNcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5pyA5aSn6ZW/5bqmXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLm1heExlbmd0aFwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIixcbiAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmmK/lkKblv4XloatcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIiksXG4gICAgICB9LFxuICAgIF07XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIC8vNuOAgeWNlemAiVxuICBwcml2YXRlIHJhZGlvKGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBsZXQgY29uZmlnOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiLFxuICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuaYr+WQpuW/heWhq1wiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiKSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cbiAgLy8244CB5Y2V6YCJXG4gIHByaXZhdGUgcmFkaW9Hcm91cChmaWVsZDogS3JlRm9ybUZpZWxkQ29uZmlnKSB7XG4gICAgbGV0IGNvbmZpZzogS3JlRm9ybUZpZWxkQ29uZmlnW10gPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIixcbiAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmmK/lkKblv4XloatcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIiksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG4gIC8vN+OAgeWkjemAiVxuICBwcml2YXRlIGNoZWNrYm94KGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBsZXQgY29uZmlnOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiLFxuICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuaYr+WQpuW/heWhq1wiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiKSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICAvLzjjgIHkuIvmi4lcbiAgcHJpdmF0ZSBzZWxlY3QoZmllbGQ6IEtyZUZvcm1GaWVsZENvbmZpZykge1xuICAgIGxldCBjb25maWc6IEtyZUZvcm1GaWVsZENvbmZpZ1tdID0gW1xuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIsXG4gICAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5piv5ZCm5b+F5aGrXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIpLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIC8vOeOAgeaXpeacn1xuICBwcml2YXRlIGRhdGV0aW1lKGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBsZXQgY29uZmlnOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiLFxuICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuaYr+WQpuW/heWhq1wiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiKSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICAvLzEw44CB5Zu+54mHXG4gIHByaXZhdGUgaW1hZ2UoZmllbGQ6IEtyZUZvcm1GaWVsZENvbmZpZykge1xuICAgIGxldCBjb25maWc6IEtyZUZvcm1GaWVsZENvbmZpZ1tdID0gW1xuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIsXG4gICAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5piv5ZCm5b+F5aGrXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIpLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIC8vMTHjgIHpmYTku7ZcbiAgcHJpdmF0ZSB1cGxvYWQoZmllbGQ6IEtyZUZvcm1GaWVsZENvbmZpZykge1xuICAgIGxldCBjb25maWc6IEtyZUZvcm1GaWVsZENvbmZpZ1tdID0gW1xuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIsXG4gICAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5piv5ZCm5b+F5aGrXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIpLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIC8vMTLjgIHlvLnmoYZcbiAgcHJpdmF0ZSBsb29rdXAoZmllbGQ6IEtyZUZvcm1GaWVsZENvbmZpZykge1xuICAgIGxldCBjb25maWc6IEtyZUZvcm1GaWVsZENvbmZpZ1tdID0gW107XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgLy8xM+OAgWh0bWxcbiAgcHJpdmF0ZSBodG1sKGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBsZXQgY29uZmlnOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IFtdO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIC8vMTTjgIFodG1sXG4gIHByaXZhdGUgcmVwZWF0KGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBsZXQgY29uZmlnOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5taW5MZW5ndGhcIixcbiAgICAgICAgdHlwZTogXCJudW1iZXJzXCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuacgOWwkeWHoOadoVwiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5taW5MZW5ndGhcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLm1heExlbmd0aFwiLFxuICAgICAgICB0eXBlOiBcIm51bWJlcnNcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5pyA5aSa5Yeg5p2hXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLm1heExlbmd0aFwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMudHlwZVwiLFxuICAgICAgICB0eXBlOiBcInJhZGlvZ3JvdXBcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5pi+56S65pa55byPXCIsXG4gICAgICAgICAgcGFyYW1ldGVyaWQ6IFwicGFyYTAwMVwiLFxuICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGFiZWw6IFwi5Z2X54q2XCIsXG4gICAgICAgICAgICAgIHZhbHVlOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhYmVsOiBcIuWIl+ihqFwiLFxuICAgICAgICAgICAgICB2YWx1ZTogXCJ0YWJsZVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy50eXBlXCIpLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgZGltaXNzQ29udHJhY3QoZmllbGQ6IEtyZUZvcm1GaWVsZENvbmZpZykge1xuICAgIGxldCBjb25maWc6IEtyZUZvcm1GaWVsZENvbmZpZ1tdID0gW1xuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIsXG4gICAgICAgIHR5cGU6IFwiZGltaXNzQ29udHJhY3RcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwiXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIpLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxufVxuIl19