@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
91 lines • 14.3 kB
JavaScript
import { Component, ElementRef, Input, ViewChild } from '@angular/core';
import { SchemaPrimitiveType } from '../schema/schema-models';
import { SchemaFormEditorUtilities } from './schema-form-editor-utilities';
import * as i0 from "@angular/core";
const _c0 = ["viewModelDiv"];
export class SchemaFormEditorFormViewModelComponent {
constructor() {
this.strings = MsftSme.getStrings().MsftSmeShell.Angular.SchemaForm.Editor.ViewModel;
}
convertEditingSchemaObjectToTypeScriptSchema() {
let result = '{<br/>';
let isFirstProperty = true;
this.schema.properties.forEach(property => {
if (!isFirstProperty) {
result += ',<br/>';
}
isFirstProperty = false;
result += this.convertEditingSchemaPropertyToTypeScriptSchema(property, 1);
});
result += '<br/>}';
const viewModelDivElement = this.viewModelDivElement.nativeElement;
viewModelDivElement.innerHTML = result;
}
convertEditingSchemaPropertyToTypeScriptSchema(property, level) {
let result = '';
if (property.name) {
result += SchemaFormEditorUtilities.getIndentText(level);
result += '<span class="property">' + property.name + '</span>: ';
}
if (property.type === SchemaPrimitiveType.Array) {
const arrayProperty = property;
result += this.convertEditingSchemaPropertyToTypeScriptSchema(arrayProperty.item, level + 1);
result += '[]';
}
else if (property.type === SchemaPrimitiveType.Object) {
const objectProperty = property;
result += '{<br/>';
let isFirstProperty = true;
objectProperty.properties.forEach(subProperty => {
if (!isFirstProperty) {
result += ',<br/>';
}
isFirstProperty = false;
result += this.convertEditingSchemaPropertyToTypeScriptSchema(subProperty, level + 1);
});
result += '<br/>' + SchemaFormEditorUtilities.getIndentText(level + 1) + '}';
}
else {
let type = SchemaPrimitiveType[property.type].toLowerCase();
if (property.type === SchemaPrimitiveType.File) {
type = 'Blob';
}
result += '<span class="property-type">' + type + '</span>';
}
return result;
}
}
/** @nocollapse */ SchemaFormEditorFormViewModelComponent.ɵfac = function SchemaFormEditorFormViewModelComponent_Factory(t) { return new (t || SchemaFormEditorFormViewModelComponent)(); };
/** @nocollapse */ SchemaFormEditorFormViewModelComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: SchemaFormEditorFormViewModelComponent, selectors: [["sme-schema-form-editor-form-view-model"]], viewQuery: function SchemaFormEditorFormViewModelComponent_Query(rf, ctx) { if (rf & 1) {
i0.ɵɵviewQuery(_c0, 5);
} if (rf & 2) {
let _t;
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.viewModelDivElement = _t.first);
} }, inputs: { schema: "schema" }, decls: 10, vars: 2, consts: [[1, "sme-layout-absolute-phone-up", "sme-position-inset-none", "sme-arrange-stack-v"], [1, "sme-position-flex-none"], [3, "click"], [1, "sme-position-flex-auto", "sme-layout-relative"], ["contenteditable", "true", 1, "syntax-editor", "sme-layout-absolute-phone-up", "sme-position-inset-none", 2, "max-width", "none", "background", "white", "overflow", "auto", "font-size", "80%"], ["viewModelDiv", ""]], template: function SchemaFormEditorFormViewModelComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "button", 2);
i0.ɵɵlistener("click", function SchemaFormEditorFormViewModelComponent_Template_button_click_2_listener() { return ctx.convertEditingSchemaObjectToTypeScriptSchema(); });
i0.ɵɵtext(3);
i0.ɵɵelementEnd();
i0.ɵɵelement(4, "br");
i0.ɵɵelementStart(5, "i");
i0.ɵɵtext(6);
i0.ɵɵelementEnd()();
i0.ɵɵelementStart(7, "div", 3);
i0.ɵɵelement(8, "div", 4, 5);
i0.ɵɵelementEnd()();
} if (rf & 2) {
i0.ɵɵadvance(3);
i0.ɵɵtextInterpolate(ctx.strings.GenerateButton.Text);
i0.ɵɵadvance(3);
i0.ɵɵtextInterpolate(ctx.strings.Message);
} }, styles: ["[_nghost-%COMP%] .syntax-editor .property{color:#0000ca}[_nghost-%COMP%] .syntax-editor .property-type{color:green}"] });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SchemaFormEditorFormViewModelComponent, [{
type: Component,
args: [{ selector: 'sme-schema-form-editor-form-view-model', template: "<div class=\"sme-layout-absolute-phone-up sme-position-inset-none sme-arrange-stack-v\">\r\n <div class=\"sme-position-flex-none\">\r\n <button (click)=\"convertEditingSchemaObjectToTypeScriptSchema()\">{{strings.GenerateButton.Text}}</button>\r\n <br/>\r\n <i>{{strings.Message}}</i>\r\n </div>\r\n <div class=\"sme-position-flex-auto sme-layout-relative\">\r\n <div #viewModelDiv contenteditable=\"true\" class=\"syntax-editor sme-layout-absolute-phone-up sme-position-inset-none\" style=\"max-width:none;background:white;overflow:auto;font-size:80%\"></div>\r\n </div>\r\n</div>\r\n", styles: [":host::ng-deep .syntax-editor .property{color:#0000ca}:host::ng-deep .syntax-editor .property-type{color:green}\n"] }]
}], null, { viewModelDivElement: [{
type: ViewChild,
args: ['viewModelDiv']
}], schema: [{
type: Input
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tZWRpdG9yLWZvcm0tdmlldy1tb2RlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9zY2hlbWEtZm9ybS9zY2hlbWEtZm9ybS1lZGl0b3ItZm9ybS12aWV3LW1vZGVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL3NjaGVtYS1mb3JtL3NjaGVtYS1mb3JtLWVkaXRvci1mb3JtLXZpZXctbW9kZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RSxPQUFPLEVBQXlELG1CQUFtQixFQUFrQixNQUFNLHlCQUF5QixDQUFDO0FBQ3JJLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFPM0UsTUFBTSxPQUFPLHNDQUFzQztJQUxuRDtRQU1XLFlBQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFXLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztLQTZEbkc7SUFyRFUsNENBQTRDO1FBQy9DLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUV0QixJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ2xCLE1BQU0sSUFBSSxRQUFRLENBQUM7YUFDdEI7WUFDRCxlQUFlLEdBQUcsS0FBSyxDQUFDO1lBRXhCLE1BQU0sSUFBSSxJQUFJLENBQUMsOENBQThDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9FLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLFFBQVEsQ0FBQztRQUVuQixNQUFNLG1CQUFtQixHQUFtQixJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDO1FBQ25GLG1CQUFtQixDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7SUFDM0MsQ0FBQztJQUVPLDhDQUE4QyxDQUFDLFFBQXdCLEVBQUUsS0FBYTtRQUMxRixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFaEIsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQ2YsTUFBTSxJQUFJLHlCQUF5QixDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6RCxNQUFNLElBQUkseUJBQXlCLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7U0FDckU7UUFFRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLENBQUMsS0FBSyxFQUFFO1lBQzdDLE1BQU0sYUFBYSxHQUF3QixRQUFRLENBQUM7WUFDcEQsTUFBTSxJQUFJLElBQUksQ0FBQyw4Q0FBOEMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3RixNQUFNLElBQUksSUFBSSxDQUFDO1NBQ2xCO2FBQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLG1CQUFtQixDQUFDLE1BQU0sRUFBRTtZQUNyRCxNQUFNLGNBQWMsR0FBeUIsUUFBUSxDQUFDO1lBQ3RELE1BQU0sSUFBSSxRQUFRLENBQUM7WUFDbkIsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQzNCLGNBQWMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUM1QyxJQUFJLENBQUMsZUFBZSxFQUFFO29CQUNsQixNQUFNLElBQUksUUFBUSxDQUFDO2lCQUN0QjtnQkFDRCxlQUFlLEdBQUcsS0FBSyxDQUFDO2dCQUN4QixNQUFNLElBQUksSUFBSSxDQUFDLDhDQUE4QyxDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDMUYsQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLElBQUksT0FBTyxHQUFHLHlCQUF5QixDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ2hGO2FBQU07WUFDSCxJQUFJLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUQsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLG1CQUFtQixDQUFDLElBQUksRUFBRTtnQkFDNUMsSUFBSSxHQUFHLE1BQU0sQ0FBQzthQUNqQjtZQUNELE1BQU0sSUFBSSw4QkFBOEIsR0FBRyxJQUFJLEdBQUcsU0FBUyxDQUFDO1NBQy9EO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7K0lBN0RRLHNDQUFzQzt3SEFBdEMsc0NBQXNDOzs7Ozs7UUNWbkQsOEJBQXNGLGFBQUEsZ0JBQUE7UUFFdEUsbUhBQVMsa0RBQThDLElBQUM7UUFBQyxZQUErQjtRQUFBLGlCQUFTO1FBQ3pHLHFCQUFLO1FBQ0wseUJBQUc7UUFBQSxZQUFtQjtRQUFBLGlCQUFJLEVBQUE7UUFFOUIsOEJBQXdEO1FBQ3BELDRCQUErTDtRQUNuTSxpQkFBTSxFQUFBOztRQU4rRCxlQUErQjtRQUEvQixxREFBK0I7UUFFN0YsZUFBbUI7UUFBbkIseUNBQW1COzt1RkRNakIsc0NBQXNDO2NBTGxELFNBQVM7MkJBQ0ksd0NBQXdDO2dCQVExQyxtQkFBbUI7a0JBRDFCLFNBQVM7bUJBQUMsY0FBYztZQUlsQixNQUFNO2tCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3RyaW5ncyB9IGZyb20gJy4uLy4uL2dlbmVyYXRlZC9zdHJpbmdzJztcclxuaW1wb3J0IHsgRGF0YVNjaGVtYSwgU2NoZW1hQXJyYXlQcm9wZXJ0eSwgU2NoZW1hT2JqZWN0UHJvcGVydHksIFNjaGVtYVByaW1pdGl2ZVR5cGUsIFNjaGVtYVByb3BlcnR5IH0gZnJvbSAnLi4vc2NoZW1hL3NjaGVtYS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBTY2hlbWFGb3JtRWRpdG9yVXRpbGl0aWVzIH0gZnJvbSAnLi9zY2hlbWEtZm9ybS1lZGl0b3ItdXRpbGl0aWVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtc2NoZW1hLWZvcm0tZWRpdG9yLWZvcm0tdmlldy1tb2RlbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zY2hlbWEtZm9ybS1lZGl0b3IuY29tcG9uZW50LmNzcyddLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjaGVtYS1mb3JtLWVkaXRvci1mb3JtLXZpZXctbW9kZWwuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY2hlbWFGb3JtRWRpdG9yRm9ybVZpZXdNb2RlbENvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgc3RyaW5ncyA9IE1zZnRTbWUuZ2V0U3RyaW5nczxTdHJpbmdzPigpLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLlNjaGVtYUZvcm0uRWRpdG9yLlZpZXdNb2RlbDtcclxuXHJcbiAgICBAVmlld0NoaWxkKCd2aWV3TW9kZWxEaXYnKVxyXG4gICAgcHJpdmF0ZSB2aWV3TW9kZWxEaXZFbGVtZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2NoZW1hOiBEYXRhU2NoZW1hO1xyXG5cclxuICAgIHB1YmxpYyBjb252ZXJ0RWRpdGluZ1NjaGVtYU9iamVjdFRvVHlwZVNjcmlwdFNjaGVtYSgpOiB2b2lkIHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gJ3s8YnIvPic7XHJcblxyXG4gICAgICAgIGxldCBpc0ZpcnN0UHJvcGVydHkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2NoZW1hLnByb3BlcnRpZXMuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghaXNGaXJzdFByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gJyw8YnIvPic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaXNGaXJzdFByb3BlcnR5ID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICByZXN1bHQgKz0gdGhpcy5jb252ZXJ0RWRpdGluZ1NjaGVtYVByb3BlcnR5VG9UeXBlU2NyaXB0U2NoZW1hKHByb3BlcnR5LCAxKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmVzdWx0ICs9ICc8YnIvPn0nO1xyXG5cclxuICAgICAgICBjb25zdCB2aWV3TW9kZWxEaXZFbGVtZW50ID0gPEhUTUxEaXZFbGVtZW50PnRoaXMudmlld01vZGVsRGl2RWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHZpZXdNb2RlbERpdkVsZW1lbnQuaW5uZXJIVE1MID0gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY29udmVydEVkaXRpbmdTY2hlbWFQcm9wZXJ0eVRvVHlwZVNjcmlwdFNjaGVtYShwcm9wZXJ0eTogU2NoZW1hUHJvcGVydHksIGxldmVsOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKHByb3BlcnR5Lm5hbWUpIHtcclxuICAgICAgICAgICAgcmVzdWx0ICs9IFNjaGVtYUZvcm1FZGl0b3JVdGlsaXRpZXMuZ2V0SW5kZW50VGV4dChsZXZlbCk7XHJcbiAgICAgICAgICAgIHJlc3VsdCArPSAnPHNwYW4gY2xhc3M9XCJwcm9wZXJ0eVwiPicgKyBwcm9wZXJ0eS5uYW1lICsgJzwvc3Bhbj46ICc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocHJvcGVydHkudHlwZSA9PT0gU2NoZW1hUHJpbWl0aXZlVHlwZS5BcnJheSkge1xyXG4gICAgICAgICAgICBjb25zdCBhcnJheVByb3BlcnR5ID0gPFNjaGVtYUFycmF5UHJvcGVydHk+cHJvcGVydHk7XHJcbiAgICAgICAgICAgIHJlc3VsdCArPSB0aGlzLmNvbnZlcnRFZGl0aW5nU2NoZW1hUHJvcGVydHlUb1R5cGVTY3JpcHRTY2hlbWEoYXJyYXlQcm9wZXJ0eS5pdGVtLCBsZXZlbCArIDEpO1xyXG4gICAgICAgICAgICByZXN1bHQgKz0gJ1tdJztcclxuICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnR5LnR5cGUgPT09IFNjaGVtYVByaW1pdGl2ZVR5cGUuT2JqZWN0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9iamVjdFByb3BlcnR5ID0gPFNjaGVtYU9iamVjdFByb3BlcnR5PnByb3BlcnR5O1xyXG4gICAgICAgICAgICByZXN1bHQgKz0gJ3s8YnIvPic7XHJcbiAgICAgICAgICAgIGxldCBpc0ZpcnN0UHJvcGVydHkgPSB0cnVlO1xyXG4gICAgICAgICAgICBvYmplY3RQcm9wZXJ0eS5wcm9wZXJ0aWVzLmZvckVhY2goc3ViUHJvcGVydHkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFpc0ZpcnN0UHJvcGVydHkpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJyw8YnIvPic7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpc0ZpcnN0UHJvcGVydHkgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJlc3VsdCArPSB0aGlzLmNvbnZlcnRFZGl0aW5nU2NoZW1hUHJvcGVydHlUb1R5cGVTY3JpcHRTY2hlbWEoc3ViUHJvcGVydHksIGxldmVsICsgMSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXN1bHQgKz0gJzxici8+JyArIFNjaGVtYUZvcm1FZGl0b3JVdGlsaXRpZXMuZ2V0SW5kZW50VGV4dChsZXZlbCArIDEpICsgJ30nO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCB0eXBlID0gU2NoZW1hUHJpbWl0aXZlVHlwZVtwcm9wZXJ0eS50eXBlXS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICBpZiAocHJvcGVydHkudHlwZSA9PT0gU2NoZW1hUHJpbWl0aXZlVHlwZS5GaWxlKSB7XHJcbiAgICAgICAgICAgICAgICB0eXBlID0gJ0Jsb2InO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJlc3VsdCArPSAnPHNwYW4gY2xhc3M9XCJwcm9wZXJ0eS10eXBlXCI+JyArIHR5cGUgKyAnPC9zcGFuPic7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzbWUtbGF5b3V0LWFic29sdXRlLXBob25lLXVwIHNtZS1wb3NpdGlvbi1pbnNldC1ub25lIHNtZS1hcnJhbmdlLXN0YWNrLXZcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lXCI+XHJcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY29udmVydEVkaXRpbmdTY2hlbWFPYmplY3RUb1R5cGVTY3JpcHRTY2hlbWEoKVwiPnt7c3RyaW5ncy5HZW5lcmF0ZUJ1dHRvbi5UZXh0fX08L2J1dHRvbj5cclxuICAgICAgICA8YnIvPlxyXG4gICAgICAgIDxpPnt7c3RyaW5ncy5NZXNzYWdlfX08L2k+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1hdXRvIHNtZS1sYXlvdXQtcmVsYXRpdmVcIj5cclxuICAgICAgICA8ZGl2ICN2aWV3TW9kZWxEaXYgY29udGVudGVkaXRhYmxlPVwidHJ1ZVwiIGNsYXNzPVwic3ludGF4LWVkaXRvciBzbWUtbGF5b3V0LWFic29sdXRlLXBob25lLXVwIHNtZS1wb3NpdGlvbi1pbnNldC1ub25lXCIgc3R5bGU9XCJtYXgtd2lkdGg6bm9uZTtiYWNrZ3JvdW5kOndoaXRlO292ZXJmbG93OmF1dG87Zm9udC1zaXplOjgwJVwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=