UNPKG

@materia/users

Version:

Signin/signup your users in your Materia application

224 lines 22 kB
import { Component, Input, Output, EventEmitter } from '@angular/core'; import { FormGroup } from '@angular/forms'; import * as i0 from "@angular/core"; import * as i1 from "@angular/flex-layout/flex"; import * as i2 from "@angular/forms"; import * as i3 from "@angular/common"; import * as i4 from "@angular/material/checkbox"; import * as i5 from "@angular/material/form-field"; import * as i6 from "@angular/material/datepicker"; import * as i7 from "@angular/material/input"; function ParamInputComponent_mat_checkbox_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "mat-checkbox", 6); } if (rf & 2) { const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵproperty("formControlName", ctx_r0.checkboxName); } } function ParamInputComponent_mat_form_field_3_input_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "input", 15); } if (rf & 2) { const ctx_r4 = i0.ɵɵnextContext(2); i0.ɵɵproperty("formControlName", ctx_r4.param.name)("placeholder", ctx_r4.label)("type", ctx_r4.actualComponent); } } function ParamInputComponent_mat_form_field_3_input_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "input", 16); } if (rf & 2) { const ctx_r5 = i0.ɵɵnextContext(2); i0.ɵɵproperty("placeholder", ctx_r5.label)("formControlName", ctx_r5.param.name); } } function ParamInputComponent_mat_form_field_3_textarea_3_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "textarea", 17); } if (rf & 2) { const ctx_r6 = i0.ɵɵnextContext(2); i0.ɵɵproperty("placeholder", ctx_r6.label)("formControlName", ctx_r6.param.name); } } function ParamInputComponent_mat_form_field_3_input_4_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "input", 18); } if (rf & 2) { i0.ɵɵnextContext(); const _r9 = i0.ɵɵreference(7); const ctx_r7 = i0.ɵɵnextContext(); i0.ɵɵproperty("formControlName", ctx_r7.param.name)("matDatepicker", _r9)("placeholder", ctx_r7.param.name); } } function ParamInputComponent_mat_form_field_3_mat_datepicker_toggle_5_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "mat-datepicker-toggle", 19); } if (rf & 2) { i0.ɵɵnextContext(); const _r9 = i0.ɵɵreference(7); i0.ɵɵproperty("for", _r9); } } function ParamInputComponent_mat_form_field_3_mat_error_8_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "mat-error"); i0.ɵɵtext(1); i0.ɵɵelementStart(2, "strong"); i0.ɵɵtext(3, "required"); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r10 = i0.ɵɵnextContext(2); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate1(" ", ctx_r10.param.name, " is "); } } function ParamInputComponent_mat_form_field_3_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "mat-form-field", 7); i0.ɵɵtemplate(1, ParamInputComponent_mat_form_field_3_input_1_Template, 1, 3, "input", 8); i0.ɵɵtemplate(2, ParamInputComponent_mat_form_field_3_input_2_Template, 1, 2, "input", 9); i0.ɵɵtemplate(3, ParamInputComponent_mat_form_field_3_textarea_3_Template, 1, 2, "textarea", 10); i0.ɵɵtemplate(4, ParamInputComponent_mat_form_field_3_input_4_Template, 1, 3, "input", 11); i0.ɵɵtemplate(5, ParamInputComponent_mat_form_field_3_mat_datepicker_toggle_5_Template, 1, 1, "mat-datepicker-toggle", 12); i0.ɵɵelement(6, "mat-datepicker", null, 13); i0.ɵɵtemplate(8, ParamInputComponent_mat_form_field_3_mat_error_8_Template, 4, 1, "mat-error", 14); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx_r1.type != "boolean" && ctx_r1.type != "date" && ctx_r1.type != "float" && ctx_r1.actualComponent != "textarea"); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx_r1.type == "float"); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx_r1.actualComponent == "textarea"); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx_r1.type == "date"); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx_r1.type == "date"); i0.ɵɵadvance(3); i0.ɵɵproperty("ngIf", ctx_r1.requiredError); } } function ParamInputComponent_mat_checkbox_4_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "mat-checkbox", 20); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵproperty("formControlName", ctx_r2.param.name); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate(ctx_r2.label); } } function ParamInputComponent_div_5_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 21); i0.ɵɵelementStart(1, "label"); i0.ɵɵtext(2); i0.ɵɵelementEnd(); i0.ɵɵelement(3, "textarea", 22); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r3 = i0.ɵɵnextContext(); i0.ɵɵadvance(2); i0.ɵɵtextInterpolate(ctx_r3.label); i0.ɵɵadvance(1); i0.ɵɵproperty("formControlName", ctx_r3.param.name); } } const DefaultComponent = Object.freeze({ text: 'text', number: 'text', date: 'date', float: 'text', boolean: 'switch' }); export class ParamInputComponent { constructor() { this.showAsterisk = true; this.showCheckbox = true; this.changed = new EventEmitter(); } get requiredError() { return (this.form.get(this.param.name) && this.form.get(this.param.name).hasError('required')); } get checkboxName() { return `${this.param.name}_check`; } ngOnInit() { this.type = this.param.type; if (!this.label) { this.label = this.param.name; if (this.param.required && this.showAsterisk) { this.label += '*'; } } if (this.param && this.param.component) { if (this.param.component === 'input') { if (this.param.type === 'text' || this.param.type === 'string') { this.actualComponent = 'text'; } else if (this.param.type === 'number') { this.actualComponent = 'number'; } else { this.actualComponent = this.param.component; } } else { if (this.param.component === 'datePicker') { this.actualComponent = 'date'; } else if (this.param.component === 'timePicker') { this.actualComponent = 'time'; } else if (this.param.component === 'dateTimePicker') { this.actualComponent = 'datetime-local'; } else { this.actualComponent = this.param.component; } } } else { this.actualComponent = DefaultComponent[this.type]; } if (this.showCheckbox && !this.param.required) { this.form.get(this.param.name).valueChanges.subscribe(val => { if (val) { this.form.get(this.checkboxName).setValue(true); } else { this.form.get(this.checkboxName).setValue(false); } }); } } } ParamInputComponent.ɵfac = function ParamInputComponent_Factory(t) { return new (t || ParamInputComponent)(); }; ParamInputComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ParamInputComponent, selectors: [["materia-param-input"]], inputs: { param: "param", disabled: "disabled", form: "form", label: "label", showAsterisk: "showAsterisk", showCheckbox: "showCheckbox" }, outputs: { changed: "changed" }, decls: 6, vars: 5, consts: [["fxLayout", "row", 3, "formGroup"], ["fxLayout", "row", "fxFlex", ""], [3, "formControlName", 4, "ngIf"], ["fxFlex", "", 4, "ngIf"], ["tabindex", "0", "style", "top: 0;", 3, "formControlName", 4, "ngIf"], ["class", "markdown", "fxLayout", "column", "fxFlex", "", 4, "ngIf"], [3, "formControlName"], ["fxFlex", ""], ["tabindex", "0", "matInput", "", 3, "formControlName", "placeholder", "type", 4, "ngIf"], ["matInput", "", "tabindex", "0", "type", "number", "step", "any", 3, "placeholder", "formControlName", 4, "ngIf"], ["tabindex", "0", "matInput", "", 3, "placeholder", "formControlName", 4, "ngIf"], ["matInput", "", "tabindex", "0", 3, "formControlName", "matDatepicker", "placeholder", 4, "ngIf"], ["matSuffix", "", 3, "for", 4, "ngIf"], ["picker", ""], [4, "ngIf"], ["tabindex", "0", "matInput", "", 3, "formControlName", "placeholder", "type"], ["matInput", "", "tabindex", "0", "type", "number", "step", "any", 3, "placeholder", "formControlName"], ["tabindex", "0", "matInput", "", 3, "placeholder", "formControlName"], ["matInput", "", "tabindex", "0", 3, "formControlName", "matDatepicker", "placeholder"], ["matSuffix", "", 3, "for"], ["tabindex", "0", 2, "top", "0", 3, "formControlName"], ["fxLayout", "column", "fxFlex", "", 1, "markdown"], ["tabindex", "0", "simplemde", "{spellChecker: false, toolbar: ['bold', 'italic', 'heading', '|', 'quote', 'unordered-list', 'ordered-list', '|', 'link', 'image', 'table']}", 3, "formControlName"]], template: function ParamInputComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 0); i0.ɵɵelementStart(1, "div", 1); i0.ɵɵtemplate(2, ParamInputComponent_mat_checkbox_2_Template, 1, 1, "mat-checkbox", 2); i0.ɵɵtemplate(3, ParamInputComponent_mat_form_field_3_Template, 9, 6, "mat-form-field", 3); i0.ɵɵtemplate(4, ParamInputComponent_mat_checkbox_4_Template, 2, 2, "mat-checkbox", 4); i0.ɵɵtemplate(5, ParamInputComponent_div_5_Template, 4, 2, "div", 5); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); } if (rf & 2) { i0.ɵɵproperty("formGroup", ctx.form); i0.ɵɵadvance(2); i0.ɵɵproperty("ngIf", !ctx.param.required && ctx.showCheckbox && ctx.type !== "boolean"); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx.type != "boolean" && ctx.actualComponent != "markdown" && ctx.actualComponent != "article"); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx.type == "boolean"); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx.actualComponent == "markdown"); } }, directives: [i1.DefaultLayoutDirective, i2.NgControlStatusGroup, i2.FormGroupDirective, i1.DefaultFlexDirective, i3.NgIf, i4.MatCheckbox, i2.NgControlStatus, i2.FormControlName, i5.MatFormField, i6.MatDatepicker, i7.MatInput, i2.DefaultValueAccessor, i2.NumberValueAccessor, i6.MatDatepickerInput, i6.MatDatepickerToggle, i5.MatSuffix, i5.MatError], styles: [""] }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ParamInputComponent, [{ type: Component, args: [{ selector: 'materia-param-input', templateUrl: './param-input.component.html', styleUrls: ['./param-input.component.scss'] }] }], function () { return []; }, { param: [{ type: Input }], disabled: [{ type: Input }], form: [{ type: Input }], label: [{ type: Input }], showAsterisk: [{ type: Input }], showCheckbox: [{ type: Input }], changed: [{ type: Output }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1hdGVyaWEvdXNlcnMvIiwic291cmNlcyI6WyJwYXJhbS1pbnB1dC9wYXJhbS1pbnB1dC5jb21wb25lbnQudHMiLCJwYXJhbS1pbnB1dC9wYXJhbS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztJQ0F6QyxrQ0FDZTs7O0lBREQscURBQWdDOzs7SUFHN0MsNEJBRUE7OztJQURDLG1EQUE4Qiw2QkFBQSxnQ0FBQTs7O0lBQy9CLDRCQUVBOzs7SUFGOEUsMENBQXFCLHNDQUFBOzs7SUFFbkcsK0JBQXNJOzs7SUFBaEUsMENBQXFCLHNDQUFBOzs7SUFDM0YsNEJBQ0E7Ozs7O0lBRG9ELG1EQUE4QixzQkFBQSxrQ0FBQTs7O0lBQ2xGLDRDQUErRjs7OztJQUF2Qyx5QkFBYzs7O0lBRXRFLGlDQUNDO0lBQUEsWUFDQTtJQUFBLDhCQUFRO0lBQUEsd0JBQVE7SUFBQSxpQkFBUztJQUMxQixpQkFBWTs7O0lBRlgsZUFDQTtJQURBLHNEQUNBOzs7SUFYRix5Q0FDQztJQUFBLHlGQUVBO0lBQUEseUZBRUE7SUFBQSxnR0FBMkg7SUFDM0gsMEZBQ0E7SUFBQSwwSEFBdUU7SUFDdkUsMkNBQXlDO0lBQ3pDLGtHQUNDO0lBR0YsaUJBQWlCOzs7SUFaVCxlQUErRjtJQUEvRiwwSUFBK0Y7SUFFL0YsZUFBdUI7SUFBdkIsNkNBQXVCO0lBRXBCLGVBQXFDO0lBQXJDLDJEQUFxQztJQUN4QyxlQUFzQjtJQUF0Qiw0Q0FBc0I7SUFDTixlQUFzQjtJQUF0Qiw0Q0FBc0I7SUFFbEMsZUFBcUI7SUFBckIsMkNBQXFCOzs7SUFLakMsd0NBQW9HO0lBQUEs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QUs7O2tCQUNMLEtBQUs7O2tCQUtMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuY29uc3QgRGVmYXVsdENvbXBvbmVudCA9IE9iamVjdC5mcmVlemUoe1xuICB0ZXh0OiAndGV4dCcsXG4gIG51bWJlcjogJ3RleHQnLFxuICBkYXRlOiAnZGF0ZScsXG4gIGZsb2F0OiAndGV4dCcsXG4gIGJvb2xlYW46ICdzd2l0Y2gnXG59KTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWF0ZXJpYS1wYXJhbS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXJhbS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhcmFtLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGFyYW1JbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHBhcmFtOiBhbnk7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKSBzaG93QXN0ZXJpc2sgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93Q2hlY2tib3ggPSB0cnVlO1xuXG4gIHR5cGU6IHN0cmluZztcbiAgYWN0dWFsQ29tcG9uZW50OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIGNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBnZXQgcmVxdWlyZWRFcnJvcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5mb3JtLmdldCh0aGlzLnBhcmFtLm5hbWUpICYmXG4gICAgICB0aGlzLmZvcm0uZ2V0KHRoaXMucGFyYW0ubmFtZSkuaGFzRXJyb3IoJ3JlcXVpcmVkJylcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNoZWNrYm94TmFtZSgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5wYXJhbS5uYW1lfV9jaGVja2A7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50eXBlID0gdGhpcy5wYXJhbS50eXBlO1xuXG4gICAgaWYgKCF0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLmxhYmVsID0gdGhpcy5wYXJhbS5uYW1lO1xuICAgICAgaWYgKHRoaXMucGFyYW0ucmVxdWlyZWQgJiYgdGhpcy5zaG93QXN0ZXJpc2spIHtcbiAgICAgICAgdGhpcy5sYWJlbCArPSAnKic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGFyYW0gJiYgdGhpcy5wYXJhbS5jb21wb25lbnQpIHtcbiAgICAgIGlmICh0aGlzLnBhcmFtLmNvbXBvbmVudCA9PT0gJ2lucHV0Jykge1xuICAgICAgICBpZiAodGhpcy5wYXJhbS50eXBlID09PSAndGV4dCcgfHwgdGhpcy5wYXJhbS50eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRoaXMuYWN0dWFsQ29tcG9uZW50ID0gJ3RleHQnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucGFyYW0udHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICB0aGlzLmFjdHVhbENvbXBvbmVudCA9ICdudW1iZXInO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYWN0dWFsQ29tcG9uZW50ID0gdGhpcy5wYXJhbS5jb21wb25lbnQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLnBhcmFtLmNvbXBvbmVudCA9PT0gJ2RhdGVQaWNrZXInKSB7XG4gICAgICAgICAgdGhpcy5hY3R1YWxDb21wb25lbnQgPSAnZGF0ZSc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wYXJhbS5jb21wb25lbnQgPT09ICd0aW1lUGlja2VyJykge1xuICAgICAgICAgIHRoaXMuYWN0dWFsQ29tcG9uZW50ID0gJ3RpbWUnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucGFyYW0uY29tcG9uZW50ID09PSAnZGF0ZVRpbWVQaWNrZXInKSB7XG4gICAgICAgICAgdGhpcy5hY3R1YWxDb21wb25lbnQgPSAnZGF0ZXRpbWUtbG9jYWwnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYWN0dWFsQ29tcG9uZW50ID0gdGhpcy5wYXJhbS5jb21wb25lbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3R1YWxDb21wb25lbnQgPSBEZWZhdWx0Q29tcG9uZW50W3RoaXMudHlwZV07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvd0NoZWNrYm94ICYmICF0aGlzLnBhcmFtLnJlcXVpcmVkKSB7XG4gICAgICB0aGlzLmZvcm0uZ2V0KHRoaXMucGFyYW0ubmFtZSkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgdGhpcy5mb3JtLmdldCh0aGlzLmNoZWNrYm94TmFtZSkuc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mb3JtLmdldCh0aGlzLmNoZWNrYm94TmFtZSkuc2V0VmFsdWUoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCIgZnhMYXlvdXQ9XCJyb3dcIj5cblx0PGRpdiBmeExheW91dD1cInJvd1wiIGZ4RmxleD5cblx0XHQ8bWF0LWNoZWNrYm94IFtmb3JtQ29udHJvbE5hbWVdPVwiY2hlY2tib3hOYW1lXCIgKm5nSWY9XCIgISBwYXJhbS5yZXF1aXJlZCAmJiBzaG93Q2hlY2tib3ggJiYgdHlwZSAhPT0gJ2Jvb2xlYW4nXCI+XG5cdFx0PC9tYXQtY2hlY2tib3g+XG5cdFx0PG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwidHlwZSAhPSAnYm9vbGVhbicgJiYgYWN0dWFsQ29tcG9uZW50ICE9ICdtYXJrZG93bicgJiYgYWN0dWFsQ29tcG9uZW50ICE9ICdhcnRpY2xlJ1wiIGZ4RmxleD5cblx0XHRcdDxpbnB1dCAqbmdJZj1cInR5cGUgIT0gJ2Jvb2xlYW4nICYmIHR5cGUgIT0gJ2RhdGUnICYmIHR5cGUgIT0gJ2Zsb2F0JyAmJiBhY3R1YWxDb21wb25lbnQgIT0gJ3RleHRhcmVhJ1wiIHRhYmluZGV4PVwiMFwiIG1hdElucHV0XG5cdFx0XHQgW2Zvcm1Db250cm9sTmFtZV09XCJwYXJhbS5uYW1lXCIgW3BsYWNlaG9sZGVyXT1cImxhYmVsXCIgW3R5cGVdPVwiYWN0dWFsQ29tcG9uZW50XCIgLz5cblx0XHRcdDxpbnB1dCAqbmdJZj1cInR5cGUgPT0gJ2Zsb2F0J1wiIG1hdElucHV0IHRhYmluZGV4PVwiMFwiIHR5cGU9XCJudW1iZXJcIiBzdGVwPVwiYW55XCIgW3BsYWNlaG9sZGVyXT1cImxhYmVsXCIgW2Zvcm1Db250cm9sTmFtZV09XCJwYXJhbS5uYW1lXCJcblx0XHRcdC8+XG5cdFx0XHQ8dGV4dGFyZWEgKm5nSWY9XCJhY3R1YWxDb21wb25lbnQgPT0gJ3RleHRhcmVhJ1wiIHRhYmluZGV4PVwiMFwiIG1hdElucHV0IFtwbGFjZWhvbGRlcl09XCJsYWJlbFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicGFyYW0ubmFtZVwiPjwvdGV4dGFyZWE+XG5cdFx0XHQ8aW5wdXQgKm5nSWY9XCJ0eXBlID09ICdkYXRlJ1wiIG1hdElucHV0IHRhYmluZGV4PVwiMFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicGFyYW0ubmFtZVwiIFttYXREYXRlcGlja2VyXT1cInBpY2tlclwiIFtwbGFjZWhvbGRlcl09XCJwYXJhbS5uYW1lXCI+XG5cdFx0XHQ8bWF0LWRhdGVwaWNrZXItdG9nZ2xlICpuZ0lmPVwidHlwZSA9PSAnZGF0ZSdcIiBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cblx0XHRcdDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG5cdFx0XHQ8bWF0LWVycm9yICpuZ0lmPVwicmVxdWlyZWRFcnJvclwiPlxuXHRcdFx0XHR7e3BhcmFtLm5hbWV9fSBpc1xuXHRcdFx0XHQ8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+XG5cdFx0XHQ8L21hdC1lcnJvcj5cblx0XHQ8L21hdC1mb3JtLWZpZWxkPlxuXHRcdDxtYXQtY2hlY2tib3ggKm5nSWY9XCJ0eXBlID09ICdib29sZWFuJ1wiIHRhYmluZGV4PVwiMFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicGFyYW0ubmFtZVwiIHN0eWxlPVwidG9wOiAwO1wiPnt7bGFiZWx9fTwvbWF0LWNoZWNrYm94PlxuXHRcdDxkaXYgY2xhc3M9XCJtYXJrZG93blwiICpuZ0lmPVwiYWN0dWFsQ29tcG9uZW50ID09ICdtYXJrZG93bidcIiBmeExheW91dD1cImNvbHVtblwiIGZ4RmxleD5cblx0XHRcdDxsYWJlbD57e2xhYmVsfX08L2xhYmVsPlxuXHRcdFx0PHRleHRhcmVhIHRhYmluZGV4PVwiMFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicGFyYW0ubmFtZVwiIHNpbXBsZW1kZT1cIntzcGVsbENoZWNrZXI6IGZhbHNlLCB0b29sYmFyOiBbJ2JvbGQnLCAnaXRhbGljJywgJ2hlYWRpbmcnLCAnfCcsICdxdW90ZScsICd1bm9yZGVyZWQtbGlzdCcsICdvcmRlcmVkLWxpc3QnLCAnfCcsICdsaW5rJywgJ2ltYWdlJywgJ3RhYmxlJ119XCI+PC90ZXh0YXJlYT5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG48L2Rpdj4iXX0=