UNPKG

@netgrif/components

Version:

Netgrif Application Engine frontend Angular components

74 lines 15 kB
import { Component, ViewChild } from '@angular/core'; import { ActivatedRoute } from "@angular/router"; import { AbstractTaskViewComponent, AllowedNetsService, AllowedNetsServiceFactory, BaseFilterFactoryProvider, CaseResourceServiceProvider, ChangedFieldsService, NAE_VIEW_ID_SEGMENT, ProcessServiceProvider, PublicTaskLoadingService, SearchService, TaskResourceServiceProvider, TaskViewService, ViewIdService } from '@netgrif/components-core'; import { combineLatest } from "rxjs"; import { map } from "rxjs/operators"; import * as i0 from "@angular/core"; import * as i1 from "@netgrif/components-core"; import * as i2 from "@angular/router"; import * as i3 from "@ngbracket/ngx-layout"; import * as i4 from "../../../../../header/header.component"; import * as i5 from "../../../../../view/task-view/task-panel-list/task-list.component"; const localAllowedNetsServiceFactory = (factory, route) => { const array = []; if (route.snapshot.paramMap.get('petriNetId') !== null) { array.push(route.snapshot.paramMap.get('petriNetId')); } return factory.createFromArray(array); }; export class DefaultPublicTaskViewComponent extends AbstractTaskViewComponent { taskHeaderComponent; constructor(taskViewService, publicTaskLoadingService, activatedRoute) { super(taskViewService, activatedRoute); this.loading$ = combineLatest(taskViewService.loading$, publicTaskLoadingService.loading$).pipe(map(sources => { return sources[0] || sources[1]; })); } ngAfterViewInit() { this.initializeHeader(this.taskHeaderComponent); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultPublicTaskViewComponent, deps: [{ token: i1.TaskViewService }, { token: i1.PublicTaskLoadingService }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DefaultPublicTaskViewComponent, selector: "nc-default-public-task-view", providers: [ TaskViewService, PublicTaskLoadingService, SearchService, ChangedFieldsService, ProcessServiceProvider, TaskResourceServiceProvider, CaseResourceServiceProvider, BaseFilterFactoryProvider, { provide: AllowedNetsService, useFactory: localAllowedNetsServiceFactory, deps: [AllowedNetsServiceFactory, ActivatedRoute] }, { provide: NAE_VIEW_ID_SEGMENT, useValue: 'publicView' }, { provide: AllowedNetsServiceFactory, useClass: AllowedNetsServiceFactory }, ViewIdService, ], viewQueries: [{ propertyName: "taskHeaderComponent", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"task-tab-background full-height\">\n <div fxLayout=\"column\" fxLayoutAlign=\"start stretch\" class=\"content-margin full-height\" >\n <nc-header #header [hidden]=\"!showHeader()\" type=\"task\" class=\"task-panel-padding-mini\"></nc-header>\n <nc-task-list [tasks$]=\"tasks$\" [loading$]=\"loading$\" [selectedHeaders$]=\"selectedHeaders$\" fxFlex></nc-task-list>\n </div>\n</div>\n\n", styles: [".task-tab-background{height:100%;width:100%;overflow:auto;background-color:transparent}.content-margin{margin:8px 24px 0}@media screen and (max-width: 599.99px){.content-margin{margin:8px 12px 0}}.task-panel-padding-mini{padding-top:16px;padding-left:1px;padding-right:1px}.full-height{height:calc(100% - 8px)}\n"], dependencies: [{ kind: "directive", type: i3.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: i3.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: i3.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: "component", type: i4.HeaderComponent, selector: "nc-header" }, { kind: "component", type: i5.TaskListComponent, selector: "nc-task-list" }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultPublicTaskViewComponent, decorators: [{ type: Component, args: [{ selector: 'nc-default-public-task-view', providers: [ TaskViewService, PublicTaskLoadingService, SearchService, ChangedFieldsService, ProcessServiceProvider, TaskResourceServiceProvider, CaseResourceServiceProvider, BaseFilterFactoryProvider, { provide: AllowedNetsService, useFactory: localAllowedNetsServiceFactory, deps: [AllowedNetsServiceFactory, ActivatedRoute] }, { provide: NAE_VIEW_ID_SEGMENT, useValue: 'publicView' }, { provide: AllowedNetsServiceFactory, useClass: AllowedNetsServiceFactory }, ViewIdService, ], template: "<div class=\"task-tab-background full-height\">\n <div fxLayout=\"column\" fxLayoutAlign=\"start stretch\" class=\"content-margin full-height\" >\n <nc-header #header [hidden]=\"!showHeader()\" type=\"task\" class=\"task-panel-padding-mini\"></nc-header>\n <nc-task-list [tasks$]=\"tasks$\" [loading$]=\"loading$\" [selectedHeaders$]=\"selectedHeaders$\" fxFlex></nc-task-list>\n </div>\n</div>\n\n", styles: [".task-tab-background{height:100%;width:100%;overflow:auto;background-color:transparent}.content-margin{margin:8px 24px 0}@media screen and (max-width: 599.99px){.content-margin{margin:8px 12px 0}}.task-panel-padding-mini{padding-top:16px;padding-left:1px;padding-right:1px}.full-height{height:calc(100% - 8px)}\n"] }] }], ctorParameters: () => [{ type: i1.TaskViewService }, { type: i1.PublicTaskLoadingService }, { type: i2.ActivatedRoute }], propDecorators: { taskHeaderComponent: [{ type: ViewChild, args: ['header'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wdWJsaWMtdGFzay12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvZGVmYXVsdC1jb21wb25lbnRzL3B1YmxpYy9kZWZhdWx0LXB1YmxpYy10YXNrLXZpZXcvZGVmYXVsdC1wdWJsaWMtdGFzay12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vZ3JvdXAtbmF2aWdhdGlvbi1jb21wb25lbnQtcmVzb2x2ZXIvZGVmYXVsdC1jb21wb25lbnRzL3B1YmxpYy9kZWZhdWx0LXB1YmxpYy10YXNrLXZpZXcvZGVmYXVsdC1wdWJsaWMtdGFzay12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNILHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6QiwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLGFBQWEsRUFDYiwyQkFBMkIsRUFDM0IsZUFBZSxFQUNmLGFBQWEsRUFDaEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQUduQyxNQUFNLDhCQUE4QixHQUFHLENBQUMsT0FBa0MsRUFBRSxLQUFxQixFQUFFLEVBQUU7SUFDakcsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNwRCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0tBQ3pEO0lBQ0QsT0FBTyxPQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFDLENBQUMsQ0FBQztBQXlCRixNQUFNLE9BQU8sOEJBQStCLFNBQVEseUJBQXlCO0lBRTdDLG1CQUFtQixDQUFrQjtJQUVqRSxZQUFZLGVBQWdDLEVBQUUsd0JBQWtELEVBQ3BGLGNBQThCO1FBQ3RDLEtBQUssQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQzNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDcEQsQ0FBQzt3R0FoQlEsOEJBQThCOzRGQUE5Qiw4QkFBOEIsc0RBbkI1QjtZQUNQLGVBQWU7WUFDZix3QkFBd0I7WUFDeEIsYUFBYTtZQUNiLG9CQUFvQjtZQUNwQixzQkFBc0I7WUFDdEIsMkJBQTJCO1lBQzNCLDJCQUEyQjtZQUMzQix5QkFBeUI7WUFDekI7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsVUFBVSxFQUFFLDhCQUE4QjtnQkFDMUMsSUFBSSxFQUFFLENBQUMseUJBQXlCLEVBQUUsY0FBYyxDQUFDO2FBQ3BEO1lBQ0QsRUFBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBQztZQUN0RCxFQUFDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUseUJBQXlCLEVBQUM7WUFDekUsYUFBYTtTQUNoQixnS0NsREwscWFBT0E7OzRGRDZDYSw4QkFBOEI7a0JBdkIxQyxTQUFTOytCQUNJLDZCQUE2QixhQUc1Qjt3QkFDUCxlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsMkJBQTJCO3dCQUMzQiwyQkFBMkI7d0JBQzNCLHlCQUF5Qjt3QkFDekI7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsVUFBVSxFQUFFLDhCQUE4Qjs0QkFDMUMsSUFBSSxFQUFFLENBQUMseUJBQXlCLEVBQUUsY0FBYyxDQUFDO3lCQUNwRDt3QkFDRCxFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFDO3dCQUN0RCxFQUFDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUseUJBQXlCLEVBQUM7d0JBQ3pFLGFBQWE7cUJBQ2hCO3dKQUkyQixtQkFBbUI7c0JBQTlDLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFRhc2tWaWV3Q29tcG9uZW50LFxuICAgIEFsbG93ZWROZXRzU2VydmljZSxcbiAgICBBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5LFxuICAgIEJhc2VGaWx0ZXJGYWN0b3J5UHJvdmlkZXIsXG4gICAgQ2FzZVJlc291cmNlU2VydmljZVByb3ZpZGVyLFxuICAgIENoYW5nZWRGaWVsZHNTZXJ2aWNlLFxuICAgIE5BRV9WSUVXX0lEX1NFR01FTlQsXG4gICAgUHJvY2Vzc1NlcnZpY2VQcm92aWRlcixcbiAgICBQdWJsaWNUYXNrTG9hZGluZ1NlcnZpY2UsXG4gICAgU2VhcmNoU2VydmljZSxcbiAgICBUYXNrUmVzb3VyY2VTZXJ2aWNlUHJvdmlkZXIsXG4gICAgVGFza1ZpZXdTZXJ2aWNlLFxuICAgIFZpZXdJZFNlcnZpY2Vcbn0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7bWFwfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7SGVhZGVyQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vaGVhZGVyL2hlYWRlci5jb21wb25lbnRcIjtcblxuY29uc3QgbG9jYWxBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5ID0gKGZhY3Rvcnk6IEFsbG93ZWROZXRzU2VydmljZUZhY3RvcnksIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkgPT4ge1xuICAgIGNvbnN0IGFycmF5ID0gW107XG4gICAgaWYgKHJvdXRlLnNuYXBzaG90LnBhcmFtTWFwLmdldCgncGV0cmlOZXRJZCcpICE9PSBudWxsKSB7XG4gICAgICAgIGFycmF5LnB1c2gocm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdwZXRyaU5ldElkJykpO1xuICAgIH1cbiAgICByZXR1cm4gZmFjdG9yeS5jcmVhdGVGcm9tQXJyYXkoYXJyYXkpO1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYy1kZWZhdWx0LXB1YmxpYy10YXNrLXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LXB1YmxpYy10YXNrLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RlZmF1bHQtcHVibGljLXRhc2stdmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBUYXNrVmlld1NlcnZpY2UsXG4gICAgICAgIFB1YmxpY1Rhc2tMb2FkaW5nU2VydmljZSxcbiAgICAgICAgU2VhcmNoU2VydmljZSxcbiAgICAgICAgQ2hhbmdlZEZpZWxkc1NlcnZpY2UsXG4gICAgICAgIFByb2Nlc3NTZXJ2aWNlUHJvdmlkZXIsXG4gICAgICAgIFRhc2tSZXNvdXJjZVNlcnZpY2VQcm92aWRlcixcbiAgICAgICAgQ2FzZVJlc291cmNlU2VydmljZVByb3ZpZGVyLFxuICAgICAgICBCYXNlRmlsdGVyRmFjdG9yeVByb3ZpZGVyLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBbGxvd2VkTmV0c1NlcnZpY2UsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBsb2NhbEFsbG93ZWROZXRzU2VydmljZUZhY3RvcnksXG4gICAgICAgICAgICBkZXBzOiBbQWxsb3dlZE5ldHNTZXJ2aWNlRmFjdG9yeSwgQWN0aXZhdGVkUm91dGVdXG4gICAgICAgIH0sXG4gICAgICAgIHtwcm92aWRlOiBOQUVfVklFV19JRF9TRUdNRU5ULCB1c2VWYWx1ZTogJ3B1YmxpY1ZpZXcnfSxcbiAgICAgICAge3Byb3ZpZGU6IEFsbG93ZWROZXRzU2VydmljZUZhY3RvcnksIHVzZUNsYXNzOiBBbGxvd2VkTmV0c1NlcnZpY2VGYWN0b3J5fSxcbiAgICAgICAgVmlld0lkU2VydmljZSxcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlZmF1bHRQdWJsaWNUYXNrVmlld0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0VGFza1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlcicpIHB1YmxpYyB0YXNrSGVhZGVyQ29tcG9uZW50OiBIZWFkZXJDb21wb25lbnQ7XG5cbiAgICBjb25zdHJ1Y3Rvcih0YXNrVmlld1NlcnZpY2U6IFRhc2tWaWV3U2VydmljZSwgcHVibGljVGFza0xvYWRpbmdTZXJ2aWNlOiBQdWJsaWNUYXNrTG9hZGluZ1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgICAgIHN1cGVyKHRhc2tWaWV3U2VydmljZSwgYWN0aXZhdGVkUm91dGUpO1xuICAgICAgICB0aGlzLmxvYWRpbmckID0gY29tYmluZUxhdGVzdCh0YXNrVmlld1NlcnZpY2UubG9hZGluZyQsIHB1YmxpY1Rhc2tMb2FkaW5nU2VydmljZS5sb2FkaW5nJCkucGlwZShcbiAgICAgICAgICAgIG1hcChzb3VyY2VzID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc291cmNlc1swXSB8fCBzb3VyY2VzWzFdO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUhlYWRlcih0aGlzLnRhc2tIZWFkZXJDb21wb25lbnQpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0YXNrLXRhYi1iYWNrZ3JvdW5kIGZ1bGwtaGVpZ2h0XCI+XG4gICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBzdHJldGNoXCIgY2xhc3M9XCJjb250ZW50LW1hcmdpbiBmdWxsLWhlaWdodFwiID5cbiAgICAgICAgPG5jLWhlYWRlciAjaGVhZGVyIFtoaWRkZW5dPVwiIXNob3dIZWFkZXIoKVwiIHR5cGU9XCJ0YXNrXCIgY2xhc3M9XCJ0YXNrLXBhbmVsLXBhZGRpbmctbWluaVwiPjwvbmMtaGVhZGVyPlxuICAgICAgICA8bmMtdGFzay1saXN0IFt0YXNrcyRdPVwidGFza3MkXCIgW2xvYWRpbmckXT1cImxvYWRpbmckXCIgW3NlbGVjdGVkSGVhZGVycyRdPVwic2VsZWN0ZWRIZWFkZXJzJFwiICBmeEZsZXg+PC9uYy10YXNrLWxpc3Q+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuIl19