@netgrif/components
Version:
Netgrif Application Engine frontend Angular components
50 lines • 16.9 kB
JavaScript
import { Component } from '@angular/core';
import { AbstractWorkflowViewComponent, PetriNetResourceServiceProvider, ProcessServiceProvider, WorkflowViewService } from '@netgrif/components-core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/material/dialog";
import * as i2 from "@netgrif/components-core";
import * as i3 from "@angular/router";
import * as i4 from "@angular/common";
import * as i5 from "@ngbracket/ngx-layout";
import * as i6 from "@angular/material/expansion";
import * as i7 from "@angular/material/icon";
import * as i8 from "@angular/material/progress-spinner";
import * as i9 from "@angular/cdk/scrolling";
import * as i10 from "../../../../../header/header.component";
import * as i11 from "../../../../../panel/public-workflow-panel/public-workflow-panel.component";
import * as i12 from "@ngx-translate/core";
export class DefaultPublicWorkflowViewComponent extends AbstractWorkflowViewComponent {
_dialog;
_workflowViewService;
_log;
_processService;
_router;
_route;
constructor(_dialog, _workflowViewService, _log, _processService, _router, _route) {
super(_dialog, _workflowViewService, _log, _processService);
this._dialog = _dialog;
this._workflowViewService = _workflowViewService;
this._log = _log;
this._processService = _processService;
this._router = _router;
this._route = _route;
}
handleClick(workflow) {
this._router.navigate([this._route.snapshot.url.join('/') + '/' + btoa(workflow.identifier)]);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultPublicWorkflowViewComponent, deps: [{ token: i1.MatDialog }, { token: i2.WorkflowViewService }, { token: i2.LoggerService }, { token: i2.ProcessService }, { token: i3.Router }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DefaultPublicWorkflowViewComponent, selector: "nc-default-public-workflow-view", providers: [
WorkflowViewService,
ProcessServiceProvider,
PetriNetResourceServiceProvider,
], usesInheritance: true, ngImport: i0, template: "<div class=\"workflow-container full-height\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center\" class=\"workflow-header\">\n <nc-header #header fxFlex=\"100\" [hideHeaderMenu]=\"true\" [type]=\"headerType\"></nc-header>\n </div>\n <div fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex class=\"workflow-panels-container\">\n <ng-container *ngIf=\"workflows$ | async as workflows\">\n\n <div *ngIf=\"(loading$ | async) === false && workflows.length === 0\" fxLayout=\"column\"\n fxLayoutAlign=\"center center\">\n <mat-icon color=\"accent\" class=\"font-size-40 block-size-40 margin-bottom-default\">linear_scale\n </mat-icon>\n <span class=\"font-size-20\">{{ 'view-list.noProcessesSatisfyingThisFilter' | translate}}</span>\n </div>\n\n <mat-accordion [multi]=\"true\" fxFlex=\"100\" class=\"full-width\">\n\n <cdk-virtual-scroll-viewport itemSize=\"50\" (scrolledIndexChange)=\"loadNextPage()\" class=\"full-height full-width\">\n\n <nc-public-workflow-panel\n *cdkVirtualFor=\"let workflow of workflows; let i = index; templateCacheSize: 0; trackBy: trackBy\"\n [workflow]=\"workflow\"\n [selectedHeaders$]=\"selectedHeaders$\"\n [showDeleteMenu]=\"false\" (click)=\"handleClick(workflow)\">\n </nc-public-workflow-panel>\n\n <div *ngIf=\"loading$ | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\"\n class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"50\"></mat-spinner>\n </div>\n\n </cdk-virtual-scroll-viewport>\n\n </mat-accordion>\n </ng-container>\n </div>\n</div>\n\n", styles: [".workflow-container{padding:8px}.workflow-header,.workflow-panels-container{margin-top:8px}.full-width{width:100%}.full-height{height:100%}.font-size-20{font-size:20px}.font-size-40{font-size:40px}.block-size-40{width:40px;height:40px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i6.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i9.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i9.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i9.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i10.HeaderComponent, selector: "nc-header" }, { kind: "component", type: i11.PublicWorkflowPanelComponent, selector: "nc-public-workflow-panel" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultPublicWorkflowViewComponent, decorators: [{
type: Component,
args: [{ selector: 'nc-default-public-workflow-view', providers: [
WorkflowViewService,
ProcessServiceProvider,
PetriNetResourceServiceProvider,
], template: "<div class=\"workflow-container full-height\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center\" class=\"workflow-header\">\n <nc-header #header fxFlex=\"100\" [hideHeaderMenu]=\"true\" [type]=\"headerType\"></nc-header>\n </div>\n <div fxLayout=\"column\" fxLayoutAlign=\"start center\" fxFlex class=\"workflow-panels-container\">\n <ng-container *ngIf=\"workflows$ | async as workflows\">\n\n <div *ngIf=\"(loading$ | async) === false && workflows.length === 0\" fxLayout=\"column\"\n fxLayoutAlign=\"center center\">\n <mat-icon color=\"accent\" class=\"font-size-40 block-size-40 margin-bottom-default\">linear_scale\n </mat-icon>\n <span class=\"font-size-20\">{{ 'view-list.noProcessesSatisfyingThisFilter' | translate}}</span>\n </div>\n\n <mat-accordion [multi]=\"true\" fxFlex=\"100\" class=\"full-width\">\n\n <cdk-virtual-scroll-viewport itemSize=\"50\" (scrolledIndexChange)=\"loadNextPage()\" class=\"full-height full-width\">\n\n <nc-public-workflow-panel\n *cdkVirtualFor=\"let workflow of workflows; let i = index; templateCacheSize: 0; trackBy: trackBy\"\n [workflow]=\"workflow\"\n [selectedHeaders$]=\"selectedHeaders$\"\n [showDeleteMenu]=\"false\" (click)=\"handleClick(workflow)\">\n </nc-public-workflow-panel>\n\n <div *ngIf=\"loading$ | async\" fxLayout=\"column\" fxLayoutAlign=\"center center\"\n class=\"margin-top-default\">\n <mat-spinner color=\"primary\" diameter=\"50\"></mat-spinner>\n </div>\n\n </cdk-virtual-scroll-viewport>\n\n </mat-accordion>\n </ng-container>\n </div>\n</div>\n\n", styles: [".workflow-container{padding:8px}.workflow-header,.workflow-panels-container{margin-top:8px}.full-width{width:100%}.full-height{height:100%}.font-size-20{font-size:20px}.font-size-40{font-size:40px}.block-size-40{width:40px;height:40px}\n"] }]
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.WorkflowViewService }, { type: i2.LoggerService }, { type: i2.ProcessService }, { type: i3.Router }, { type: i3.ActivatedRoute }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wdWJsaWMtd29ya2Zsb3ctdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL2dyb3VwLW5hdmlnYXRpb24tY29tcG9uZW50LXJlc29sdmVyL2RlZmF1bHQtY29tcG9uZW50cy9wdWJsaWMvZGVmYXVsdC1wdWJsaWMtd29ya2Zsb3ctdmlldy9kZWZhdWx0LXB1YmxpYy13b3JrZmxvdy12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvZGVmYXVsdC1jb21wb25lbnRzL3B1YmxpYy9kZWZhdWx0LXB1YmxpYy13b3JrZmxvdy12aWV3L2RlZmF1bHQtcHVibGljLXdvcmtmbG93LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd4QyxPQUFPLEVBQUMsNkJBQTZCLEVBQ2IsK0JBQStCLEVBQWtCLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBWXZKLE1BQU0sT0FBTyxrQ0FBbUMsU0FBUSw2QkFBNkI7SUFDM0Q7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBTHRCLFlBQXNCLE9BQWtCLEVBQ2xCLG9CQUF5QyxFQUN6QyxJQUFtQixFQUNuQixlQUErQixFQUMvQixPQUFlLEVBQ2YsTUFBc0I7UUFDeEMsS0FBSyxDQUFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFOMUMsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQUNsQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLFNBQUksR0FBSixJQUFJLENBQWU7UUFDbkIsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBQy9CLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixXQUFNLEdBQU4sTUFBTSxDQUFnQjtJQUU1QyxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWE7UUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO3dHQVpRLGtDQUFrQzs0RkFBbEMsa0NBQWtDLDBEQU5oQztZQUNQLG1CQUFtQjtZQUNuQixzQkFBc0I7WUFDdEIsK0JBQStCO1NBQ2xDLGlEQ2RMLHE2REFxQ0E7OzRGRHJCYSxrQ0FBa0M7a0JBVjlDLFNBQVM7K0JBQ0ksaUNBQWlDLGFBR2hDO3dCQUNQLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QiwrQkFBK0I7cUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtBYnN0cmFjdFdvcmtmbG93Vmlld0NvbXBvbmVudCxcbiAgICBMb2dnZXJTZXJ2aWNlLCBOZXQsIFBldHJpTmV0UmVzb3VyY2VTZXJ2aWNlUHJvdmlkZXIsIFByb2Nlc3NTZXJ2aWNlLCBQcm9jZXNzU2VydmljZVByb3ZpZGVyLCBXb3JrZmxvd1ZpZXdTZXJ2aWNlIH0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYy1kZWZhdWx0LXB1YmxpYy13b3JrZmxvdy12aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC1wdWJsaWMtd29ya2Zsb3ctdmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGVmYXVsdC1wdWJsaWMtd29ya2Zsb3ctdmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBXb3JrZmxvd1ZpZXdTZXJ2aWNlLFxuICAgICAgICBQcm9jZXNzU2VydmljZVByb3ZpZGVyLFxuICAgICAgICBQZXRyaU5ldFJlc291cmNlU2VydmljZVByb3ZpZGVyLFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVmYXVsdFB1YmxpY1dvcmtmbG93Vmlld0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0V29ya2Zsb3dWaWV3Q29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2RpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfd29ya2Zsb3dWaWV3U2VydmljZTogV29ya2Zsb3dWaWV3U2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2xvZzogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Byb2Nlc3NTZXJ2aWNlOiBQcm9jZXNzU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgICAgIHN1cGVyKF9kaWFsb2csIF93b3JrZmxvd1ZpZXdTZXJ2aWNlLCBfbG9nLCBfcHJvY2Vzc1NlcnZpY2UpO1xuICAgIH1cblxuICAgIGhhbmRsZUNsaWNrKHdvcmtmbG93OiBOZXQpIHtcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFt0aGlzLl9yb3V0ZS5zbmFwc2hvdC51cmwuam9pbignLycpICsgJy8nICsgYnRvYSh3b3JrZmxvdy5pZGVudGlmaWVyKV0pO1xuICAgIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cIndvcmtmbG93LWNvbnRhaW5lciBmdWxsLWhlaWdodFwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IHN0cmV0Y2hcIj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlclwiIGNsYXNzPVwid29ya2Zsb3ctaGVhZGVyXCI+XG4gICAgICAgIDxuYy1oZWFkZXIgI2hlYWRlciBmeEZsZXg9XCIxMDBcIiBbaGlkZUhlYWRlck1lbnVdPVwidHJ1ZVwiIFt0eXBlXT1cImhlYWRlclR5cGVcIj48L25jLWhlYWRlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4RmxleCBjbGFzcz1cIndvcmtmbG93LXBhbmVscy1jb250YWluZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndvcmtmbG93cyQgfCBhc3luYyBhcyB3b3JrZmxvd3NcIj5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihsb2FkaW5nJCB8IGFzeW5jKSA9PT0gZmFsc2UgJiYgd29ya2Zsb3dzLmxlbmd0aCA9PT0gMFwiIGZ4TGF5b3V0PVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJhY2NlbnRcIiBjbGFzcz1cImZvbnQtc2l6ZS00MCBibG9jay1zaXplLTQwIG1hcmdpbi1ib3R0b20tZGVmYXVsdFwiPmxpbmVhcl9zY2FsZVxuICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LXNpemUtMjBcIj57eyAndmlldy1saXN0Lm5vUHJvY2Vzc2VzU2F0aXNmeWluZ1RoaXNGaWx0ZXInIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPG1hdC1hY2NvcmRpb24gW211bHRpXT1cInRydWVcIiBmeEZsZXg9XCIxMDBcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cblxuICAgICAgICAgICAgICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQgaXRlbVNpemU9XCI1MFwiIChzY3JvbGxlZEluZGV4Q2hhbmdlKT1cImxvYWROZXh0UGFnZSgpXCIgY2xhc3M9XCJmdWxsLWhlaWdodCBmdWxsLXdpZHRoXCI+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5jLXB1YmxpYy13b3JrZmxvdy1wYW5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgd29ya2Zsb3cgb2Ygd29ya2Zsb3dzOyBsZXQgaSA9IGluZGV4OyB0ZW1wbGF0ZUNhY2hlU2l6ZTogMDsgdHJhY2tCeTogdHJhY2tCeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbd29ya2Zsb3ddPVwid29ya2Zsb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkSGVhZGVycyRdPVwic2VsZWN0ZWRIZWFkZXJzJFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0RlbGV0ZU1lbnVdPVwiZmFsc2VcIiAoY2xpY2spPVwiaGFuZGxlQ2xpY2sod29ya2Zsb3cpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmMtcHVibGljLXdvcmtmbG93LXBhbmVsPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nJCB8IGFzeW5jXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXJnaW4tdG9wLWRlZmF1bHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc3Bpbm5lciBjb2xvcj1cInByaW1hcnlcIiBkaWFtZXRlcj1cIjUwXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cblxuICAgICAgICAgICAgPC9tYXQtYWNjb3JkaW9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG4iXX0=