UNPKG

survey-creator-angular

Version:

Use SurveyJS Creator to create or edit JSON for SurveyJS Form Library.

57 lines 17.7 kB
import { Component, Input } from "@angular/core"; import { AngularComponentFactory, EmbeddedViewContentComponent } from "survey-angular-ui"; import { QuestionImageAdornerViewModel } from "survey-creator-core"; import { QuestionDesignerComponent } from "../question.component"; import * as i0 from "@angular/core"; import * as i1 from "survey-angular-ui"; import * as i2 from "../question-banner.component"; import * as i3 from "@angular/common"; export class QuestionImageDesignerComponent extends QuestionDesignerComponent { constructor() { super(...arguments); this.adornerComponent = "svc-image-question-adorner"; } createModel() { if (this.componentData) { this.adorner = new QuestionImageAdornerViewModel(this.creator, this.model, null); } } get placeholderComponent() { return "file-question"; } get placeholderComponentData() { return { model: this.adorner.filePresentationModel }; } get showPlaceholderComponent() { return !!this.placeholderComponentData; } } QuestionImageDesignerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionImageDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); QuestionImageDesignerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionImageDesignerComponent, selector: "svc-image-question", usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div *ngIf=\"adorner\" class=\"svc-question__adorner\" [class]=\"adorner.rootCss()\" (dblclick)=\"adorner.dblclick($event)\"\n (mouseover)=\"adorner.hover($event, $event.currentTarget)\" (mouseleave)=\"adorner.hover($event, $event.currentTarget)\"\n [attr.data-sv-drop-target-survey-element]=\"adorner.element.name || null\" #container>\n <div *ngIf=\"adorner.showHiddenTitle\" [class]=\"adorner.cssCollapsedHiddenHeader\">\n <sv-ng-element-title *ngIf=\"!!model.hasTitle\" [element]=\"model\"></sv-ng-element-title>\n <div *ngIf=\"!model.hasTitle\" [class]=\"adorner.cssCollapsedHiddenTitle\">\n <span class=\"svc-fake-title\">{{model.name}}</span>\n </div>\n </div>\n <div [class]=\"adorner.css()\" [key2click]=\"{ disableTabStop: true }\" (click)=\"adorner.select(adorner, $event)\">\n <div class=\"svc-question__drop-indicator svc-question__drop-indicator--left\"></div>\n <div class=\"svc-question__drop-indicator svc-question__drop-indicator--right\"></div>\n <div class=\"svc-question__drop-indicator svc-question__drop-indicator--top\"></div>\n <div class=\"svc-question__drop-indicator svc-question__drop-indicator--bottom\"></div>\n <div *ngIf=\"adorner.allowDragging\" class=\"svc-question__drag-area\" (pointerdown)=\"adorner.onPointerDown($event)\">\n <svg class=\"svc-question__drag-element\" [iconName]=\"'icon-drag-area-indicator_24x16'\" [size]=\"'auto'\"\n sv-ng-svg-icon></svg>\n <div class=\"svc-question__top-actions\">\n <sv-action-bar [model]=\"adorner.topActionContainer\" [handleClick]=\"false\"></sv-action-bar>\n </div>\n </div>\n <ng-container *ngIf=\"adorner.needToRenderContent\">\n <ng-template [component]=\"{ name: componentName, data: componentData }\"></ng-template>\n <div *ngIf=\"adorner.isEmptyElement && !showPlaceholderComponent\" class=\"svc-panel__placeholder_frame-wrapper\">\n <div class=\"svc-panel__placeholder_frame\">\n <div class=\"svc-panel__placeholder\">{{ adorner.placeholderText }}</div>\n </div>\n </div>\n <ng-template *ngIf=\"adorner.isEmptyElement && !!showPlaceholderComponent\"\n [component]=\"{ name: placeholderComponent, data: placeholderComponentData }\">\n </ng-template>\n <ng-template *ngIf=\"adornerComponent\"\n [component]=\"{ name: adornerComponent, data: { adorner: adorner, question: model } }\">\n </ng-template>\n <svc-question-banner *ngIf=\"adorner.isBannerShowing\" [model]=\"adorner.createBannerParams()\">\n </svc-question-banner>\n <div class=\"svc-question__content-actions\" (focusin)=\"adorner.select(adorner, $event)\">\n <sv-action-bar [model]=\"adorner.actionContainer\" [handleClick]=\"false\"></sv-action-bar>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.ElementTitleComponent, selector: "sv-ng-element-title", inputs: ["element"] }, { type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: i2.QuestionBannerComponent, selector: "svc-question-banner", inputs: ["model"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }, { type: i1.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionImageDesignerComponent, decorators: [{ type: Component, args: [{ selector: "svc-image-question", templateUrl: "../question.component.html", styles: [":host { display: none; }"] }] }] }); AngularComponentFactory.Instance.registerComponent("svc-image-question", QuestionImageDesignerComponent); export class QuestionImageAdornerDesignerComponent extends EmbeddedViewContentComponent { } QuestionImageAdornerDesignerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionImageAdornerDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); QuestionImageAdornerDesignerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: QuestionImageAdornerDesignerComponent, selector: "svc-image-question-adorner", inputs: { adorner: "adorner", question: "question" }, usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <div class=\"svc-image-question-controls\" *ngIf=\"!adorner.isUploading && !adorner.isEmptyElement\">\n <ng-container *ngIf=\"adorner.allowEdit\">\n <input type=\"file\" aria-hidden=\"true\" tabindex=\"-1\" [accept]=\"adorner.acceptedTypes\"\n class=\"svc-choose-file-input\" />\n <span class=\"svc-context-button\" [key2click] [attr.title]=\"undefined\" [attr.aria-label]=\"undefined\">\n <svg [iconName]=\"'icon-choosefile'\" [size]=\"'auto'\" (click)=\"adorner.chooseFile(adorner)\" sv-ng-svg-icon></svg>\n </span>\n </ng-container>\n </div>\n <div class=\"svc-image-question__loading-placeholder\" *ngIf=\"adorner.isUploading && !adorner.isEmptyElement\">\n <div class=\"svc-image-question__loading\">\n <sv-ng-loading-indicator></sv-ng-loading-indicator>\n </div>\n </div>\n</ng-template>", styles: [":host { display: none; }"], components: [{ type: i1.SvgIconComponent, selector: "'[sv-ng-svg-icon]'", inputs: ["size", "width", "height", "iconName", "partCss", "css", "title"] }, { type: i1.LoadingIndicatorComponent, selector: "sv-ng-loading-indicator" }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.Key2ClickDirective, selector: "[key2click]", inputs: ["key2click"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuestionImageAdornerDesignerComponent, decorators: [{ type: Component, args: [{ selector: "svc-image-question-adorner", templateUrl: "./question-image.component.html", styles: [":host { display: none; }"] }] }], propDecorators: { adorner: [{ type: Input }], question: [{ type: Input }] } }); AngularComponentFactory.Instance.registerComponent("svc-image-question-adorner", QuestionImageAdornerDesignerComponent); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24taW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Fkb3JuZXJzL3F1ZXN0aW9uLWltYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9xdWVzdGlvbi5jb21wb25lbnQuaHRtbCIsIi4uLy4uLy4uL3NyYy9hZG9ybmVycy9xdWVzdGlvbi1pbWFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBT2xFLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSx5QkFBeUI7SUFMN0U7O1FBV2tCLHFCQUFnQixHQUFHLDRCQUE0QixDQUFDO0tBVWpFO0lBZm9CLFdBQVc7UUFDNUIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQU8sSUFBSSxDQUFDLENBQUM7U0FDdkY7SUFDSCxDQUFDO0lBRUQsSUFBb0Isb0JBQW9CO1FBQ3RDLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFvQix3QkFBd0I7UUFDMUMsT0FBTyxFQUFFLEtBQUssRUFBa0MsSUFBSSxDQUFDLE9BQVEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3hGLENBQUM7SUFDRCxJQUFvQix3QkFBd0I7UUFDMUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQ3pDLENBQUM7OzRIQWZVLDhCQUE4QjtnSEFBOUIsOEJBQThCLGlGQ1YzQywrMUZBMkNjOzRGRGpDRCw4QkFBOEI7a0JBTDFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsV0FBVyxFQUFFLDRCQUE0QjtvQkFDekMsTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3JDOztBQW1CRCx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLEVBQUUsOEJBQThCLENBQUMsQ0FBQztBQU96RyxNQUFNLE9BQU8scUNBQXNDLFNBQVEsNEJBQTRCOzttSUFBMUUscUNBQXFDO3VIQUFyQyxxQ0FBcUMsK0lFbkNsRCx1MkJBZWM7NEZGb0JELHFDQUFxQztrQkFMakQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxXQUFXLEVBQUUsaUNBQWlDO29CQUM5QyxNQUFNLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztpQkFDckM7OEJBRVUsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7O0FBR1IsdUJBQXVCLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLDRCQUE0QixFQUFFLHFDQUFxQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnksIEVtYmVkZGVkVmlld0NvbnRlbnRDb21wb25lbnQgfSBmcm9tIFwic3VydmV5LWFuZ3VsYXItdWlcIjtcbmltcG9ydCB7IFF1ZXN0aW9uSW1hZ2VBZG9ybmVyVmlld01vZGVsIH0gZnJvbSBcInN1cnZleS1jcmVhdG9yLWNvcmVcIjtcbmltcG9ydCB7IFF1ZXN0aW9uRGVzaWduZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vcXVlc3Rpb24uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdmMtaW1hZ2UtcXVlc3Rpb25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi4vcXVlc3Rpb24uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVzOiBbXCI6aG9zdCB7IGRpc3BsYXk6IG5vbmU7IH1cIl1cbn0pXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25JbWFnZURlc2lnbmVyQ29tcG9uZW50IGV4dGVuZHMgUXVlc3Rpb25EZXNpZ25lckNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBvdmVycmlkZSBjcmVhdGVNb2RlbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnREYXRhKSB7XG4gICAgICB0aGlzLmFkb3JuZXIgPSBuZXcgUXVlc3Rpb25JbWFnZUFkb3JuZXJWaWV3TW9kZWwodGhpcy5jcmVhdG9yLCB0aGlzLm1vZGVsLCA8YW55Pm51bGwpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgYWRvcm5lckNvbXBvbmVudCA9IFwic3ZjLWltYWdlLXF1ZXN0aW9uLWFkb3JuZXJcIjtcbiAgcHVibGljIG92ZXJyaWRlIGdldCBwbGFjZWhvbGRlckNvbXBvbmVudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcImZpbGUtcXVlc3Rpb25cIjtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHBsYWNlaG9sZGVyQ29tcG9uZW50RGF0YSgpIHtcbiAgICByZXR1cm4geyBtb2RlbDogKDxRdWVzdGlvbkltYWdlQWRvcm5lclZpZXdNb2RlbD50aGlzLmFkb3JuZXIpLmZpbGVQcmVzZW50YXRpb25Nb2RlbCB9O1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgc2hvd1BsYWNlaG9sZGVyQ29tcG9uZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucGxhY2Vob2xkZXJDb21wb25lbnREYXRhO1xuICB9XG59XG5cbkFuZ3VsYXJDb21wb25lbnRGYWN0b3J5Lkluc3RhbmNlLnJlZ2lzdGVyQ29tcG9uZW50KFwic3ZjLWltYWdlLXF1ZXN0aW9uXCIsIFF1ZXN0aW9uSW1hZ2VEZXNpZ25lckNvbXBvbmVudCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzdmMtaW1hZ2UtcXVlc3Rpb24tYWRvcm5lclwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3F1ZXN0aW9uLWltYWdlLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlczogW1wiOmhvc3QgeyBkaXNwbGF5OiBub25lOyB9XCJdXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uSW1hZ2VBZG9ybmVyRGVzaWduZXJDb21wb25lbnQgZXh0ZW5kcyBFbWJlZGRlZFZpZXdDb250ZW50Q29tcG9uZW50IHtcbiAgQElucHV0KCkgYWRvcm5lciE6IFF1ZXN0aW9uSW1hZ2VBZG9ybmVyVmlld01vZGVsO1xuICBASW5wdXQoKSBxdWVzdGlvbiE6IGFueTtcbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJzdmMtaW1hZ2UtcXVlc3Rpb24tYWRvcm5lclwiLCBRdWVzdGlvbkltYWdlQWRvcm5lckRlc2lnbmVyQ29tcG9uZW50KTtcblxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiAqbmdJZj1cImFkb3JuZXJcIiBjbGFzcz1cInN2Yy1xdWVzdGlvbl9fYWRvcm5lclwiIFtjbGFzc109XCJhZG9ybmVyLnJvb3RDc3MoKVwiIChkYmxjbGljayk9XCJhZG9ybmVyLmRibGNsaWNrKCRldmVudClcIlxuICAgIChtb3VzZW92ZXIpPVwiYWRvcm5lci5ob3ZlcigkZXZlbnQsICRldmVudC5jdXJyZW50VGFyZ2V0KVwiIChtb3VzZWxlYXZlKT1cImFkb3JuZXIuaG92ZXIoJGV2ZW50LCAkZXZlbnQuY3VycmVudFRhcmdldClcIlxuICAgIFthdHRyLmRhdGEtc3YtZHJvcC10YXJnZXQtc3VydmV5LWVsZW1lbnRdPVwiYWRvcm5lci5lbGVtZW50Lm5hbWUgfHwgbnVsbFwiICNjb250YWluZXI+XG4gICAgPGRpdiAqbmdJZj1cImFkb3JuZXIuc2hvd0hpZGRlblRpdGxlXCIgW2NsYXNzXT1cImFkb3JuZXIuY3NzQ29sbGFwc2VkSGlkZGVuSGVhZGVyXCI+XG4gICAgICA8c3YtbmctZWxlbWVudC10aXRsZSAqbmdJZj1cIiEhbW9kZWwuaGFzVGl0bGVcIiBbZWxlbWVudF09XCJtb2RlbFwiPjwvc3YtbmctZWxlbWVudC10aXRsZT5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFtb2RlbC5oYXNUaXRsZVwiIFtjbGFzc109XCJhZG9ybmVyLmNzc0NvbGxhcHNlZEhpZGRlblRpdGxlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmMtZmFrZS10aXRsZVwiPnt7bW9kZWwubmFtZX19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBbY2xhc3NdPVwiYWRvcm5lci5jc3MoKVwiIFtrZXkyY2xpY2tdPVwieyBkaXNhYmxlVGFiU3RvcDogdHJ1ZSB9XCIgKGNsaWNrKT1cImFkb3JuZXIuc2VsZWN0KGFkb3JuZXIsICRldmVudClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdmMtcXVlc3Rpb25fX2Ryb3AtaW5kaWNhdG9yIHN2Yy1xdWVzdGlvbl9fZHJvcC1pbmRpY2F0b3ItLWxlZnRcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdmMtcXVlc3Rpb25fX2Ryb3AtaW5kaWNhdG9yIHN2Yy1xdWVzdGlvbl9fZHJvcC1pbmRpY2F0b3ItLXJpZ2h0XCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic3ZjLXF1ZXN0aW9uX19kcm9wLWluZGljYXRvciBzdmMtcXVlc3Rpb25fX2Ryb3AtaW5kaWNhdG9yLS10b3BcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdmMtcXVlc3Rpb25fX2Ryb3AtaW5kaWNhdG9yIHN2Yy1xdWVzdGlvbl9fZHJvcC1pbmRpY2F0b3ItLWJvdHRvbVwiPjwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImFkb3JuZXIuYWxsb3dEcmFnZ2luZ1wiIGNsYXNzPVwic3ZjLXF1ZXN0aW9uX19kcmFnLWFyZWFcIiAocG9pbnRlcmRvd24pPVwiYWRvcm5lci5vblBvaW50ZXJEb3duKCRldmVudClcIj5cbiAgICAgICAgPHN2ZyBjbGFzcz1cInN2Yy1xdWVzdGlvbl9fZHJhZy1lbGVtZW50XCIgW2ljb25OYW1lXT1cIidpY29uLWRyYWctYXJlYS1pbmRpY2F0b3JfMjR4MTYnXCIgW3NpemVdPVwiJ2F1dG8nXCJcbiAgICAgICAgICBzdi1uZy1zdmctaWNvbj48L3N2Zz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1xdWVzdGlvbl9fdG9wLWFjdGlvbnNcIj5cbiAgICAgICAgICA8c3YtYWN0aW9uLWJhciBbbW9kZWxdPVwiYWRvcm5lci50b3BBY3Rpb25Db250YWluZXJcIiBbaGFuZGxlQ2xpY2tdPVwiZmFsc2VcIj48L3N2LWFjdGlvbi1iYXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWRvcm5lci5uZWVkVG9SZW5kZXJDb250ZW50XCI+XG4gICAgICA8bmctdGVtcGxhdGUgW2NvbXBvbmVudF09XCJ7IG5hbWU6IGNvbXBvbmVudE5hbWUsIGRhdGE6IGNvbXBvbmVudERhdGEgfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYWRvcm5lci5pc0VtcHR5RWxlbWVudCAmJiAhc2hvd1BsYWNlaG9sZGVyQ29tcG9uZW50XCIgY2xhc3M9XCJzdmMtcGFuZWxfX3BsYWNlaG9sZGVyX2ZyYW1lLXdyYXBwZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1wYW5lbF9fcGxhY2Vob2xkZXJfZnJhbWVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLXBhbmVsX19wbGFjZWhvbGRlclwiPnt7IGFkb3JuZXIucGxhY2Vob2xkZXJUZXh0IH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJhZG9ybmVyLmlzRW1wdHlFbGVtZW50ICYmICEhc2hvd1BsYWNlaG9sZGVyQ29tcG9uZW50XCJcbiAgICAgICAgW2NvbXBvbmVudF09XCJ7IG5hbWU6IHBsYWNlaG9sZGVyQ29tcG9uZW50LCBkYXRhOiBwbGFjZWhvbGRlckNvbXBvbmVudERhdGEgfVwiPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImFkb3JuZXJDb21wb25lbnRcIlxuICAgICAgICBbY29tcG9uZW50XT1cInsgbmFtZTogYWRvcm5lckNvbXBvbmVudCwgZGF0YTogeyBhZG9ybmVyOiBhZG9ybmVyLCBxdWVzdGlvbjogbW9kZWwgfSB9XCI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPHN2Yy1xdWVzdGlvbi1iYW5uZXIgKm5nSWY9XCJhZG9ybmVyLmlzQmFubmVyU2hvd2luZ1wiIFttb2RlbF09XCJhZG9ybmVyLmNyZWF0ZUJhbm5lclBhcmFtcygpXCI+XG4gICAgICA8L3N2Yy1xdWVzdGlvbi1iYW5uZXI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3ZjLXF1ZXN0aW9uX19jb250ZW50LWFjdGlvbnNcIiAoZm9jdXNpbik9XCJhZG9ybmVyLnNlbGVjdChhZG9ybmVyLCAkZXZlbnQpXCI+XG4gICAgICAgIDxzdi1hY3Rpb24tYmFyIFttb2RlbF09XCJhZG9ybmVyLmFjdGlvbkNvbnRhaW5lclwiIFtoYW5kbGVDbGlja109XCJmYWxzZVwiPjwvc3YtYWN0aW9uLWJhcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iLCI8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic3ZjLWltYWdlLXF1ZXN0aW9uLWNvbnRyb2xzXCIgKm5nSWY9XCIhYWRvcm5lci5pc1VwbG9hZGluZyAmJiAhYWRvcm5lci5pc0VtcHR5RWxlbWVudFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZG9ybmVyLmFsbG93RWRpdFwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGFiaW5kZXg9XCItMVwiIFthY2NlcHRdPVwiYWRvcm5lci5hY2NlcHRlZFR5cGVzXCJcbiAgICAgICAgY2xhc3M9XCJzdmMtY2hvb3NlLWZpbGUtaW5wdXRcIiAvPlxuICAgICAgPHNwYW4gY2xhc3M9XCJzdmMtY29udGV4dC1idXR0b25cIiBba2V5MmNsaWNrXSBbYXR0ci50aXRsZV09XCJ1bmRlZmluZWRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInVuZGVmaW5lZFwiPlxuICAgICAgICA8c3ZnIFtpY29uTmFtZV09XCInaWNvbi1jaG9vc2VmaWxlJ1wiIFtzaXplXT1cIidhdXRvJ1wiIChjbGljayk9XCJhZG9ybmVyLmNob29zZUZpbGUoYWRvcm5lcilcIiBzdi1uZy1zdmctaWNvbj48L3N2Zz5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzdmMtaW1hZ2UtcXVlc3Rpb25fX2xvYWRpbmctcGxhY2Vob2xkZXJcIiAqbmdJZj1cImFkb3JuZXIuaXNVcGxvYWRpbmcgJiYgIWFkb3JuZXIuaXNFbXB0eUVsZW1lbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwic3ZjLWltYWdlLXF1ZXN0aW9uX19sb2FkaW5nXCI+XG4gICAgICA8c3YtbmctbG9hZGluZy1pbmRpY2F0b3I+PC9zdi1uZy1sb2FkaW5nLWluZGljYXRvcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==