@esfaenza/admin-module 13.1.5 → 13.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/admin-module.module.mjs +6 -3
- package/esm2020/lib/components/_shared/node_detail.component.loc.mjs +24 -0
- package/esm2020/lib/components/_shared/node_detail.component.mjs +45 -0
- package/esm2020/lib/components/profiler/adm_profiler.component.loc.mjs +3 -1
- package/esm2020/lib/components/profiler/adm_profiler.component.mjs +14 -4
- package/esm2020/lib/components/topact/topact_search.component.loc.mjs +2 -1
- package/esm2020/lib/components/topact/topact_search.component.mjs +18 -7
- package/esm2020/lib/models/components/NodeStats.mjs +3 -0
- package/esm2020/lib/models/components/ProfilerDataNode.loc.mjs +4 -2
- package/esm2020/lib/models/components/ProfilerDataNode.mjs +9 -1
- package/esm2020/lib/models/components/TopNode.mjs +1 -1
- package/esm2020/lib/models/externals/Repository.mjs +3 -2
- package/fesm2015/esfaenza-admin-module.mjs +103 -16
- package/fesm2015/esfaenza-admin-module.mjs.map +1 -1
- package/fesm2020/esfaenza-admin-module.mjs +101 -16
- package/fesm2020/esfaenza-admin-module.mjs.map +1 -1
- package/lib/admin-module.module.d.ts +20 -19
- package/lib/components/_shared/node_detail.component.d.ts +14 -0
- package/lib/components/_shared/node_detail.component.loc.d.ts +7 -0
- package/lib/components/profiler/adm_profiler.component.d.ts +3 -0
- package/lib/components/topact/topact_search.component.d.ts +3 -0
- package/lib/models/components/NodeStats.d.ts +21 -0
- package/lib/models/components/ProfilerDataNode.d.ts +2 -0
- package/lib/models/components/ProfilerDataNode.loc.d.ts +8 -0
- package/lib/models/components/TopNode.d.ts +1 -0
- package/lib/models/externals/Repository.d.ts +1 -0
- package/package.json +1 -1
|
@@ -7,9 +7,11 @@ import { InboundMessageTypes } from "@esfaenza/extensions";
|
|
|
7
7
|
import { map } from "rxjs/operators";
|
|
8
8
|
import { Repository } from "../../models/externals/Repository";
|
|
9
9
|
import { TopActivitiesDataView } from "../../models/components/TopActivitiesDataView";
|
|
10
|
+
// Applicazione
|
|
10
11
|
import { ADM_BACKEND_URL, ADM_MODULE_PATH } from "../../tokens";
|
|
11
12
|
// Localizzazione
|
|
12
13
|
import { AdmTopActivitieLoc } from "./topact_search.component.loc";
|
|
14
|
+
import { HttpParams } from "@angular/common/http";
|
|
13
15
|
import * as i0 from "@angular/core";
|
|
14
16
|
import * as i1 from "@esfaenza/extensions";
|
|
15
17
|
import * as i2 from "@esfaenza/localizations";
|
|
@@ -20,7 +22,9 @@ import * as i6 from "@angular/router";
|
|
|
20
22
|
import * as i7 from "@esfaenza/forms-and-validations";
|
|
21
23
|
import * as i8 from "@esfaenza/es-charts";
|
|
22
24
|
import * as i9 from "@esfaenza/es-table";
|
|
23
|
-
import * as i10 from "
|
|
25
|
+
import * as i10 from "../_shared/node_detail.component";
|
|
26
|
+
import * as i11 from "@angular/forms";
|
|
27
|
+
import * as i12 from "ngx-bootstrap/modal";
|
|
24
28
|
export class AdmTopActivitiesComponent {
|
|
25
29
|
constructor(dateExts, lc, localStorage, location, intercom, http, route, backend, mod) {
|
|
26
30
|
this.dateExts = dateExts;
|
|
@@ -71,7 +75,7 @@ export class AdmTopActivitiesComponent {
|
|
|
71
75
|
init(HotPotato) {
|
|
72
76
|
if (HotPotato) {
|
|
73
77
|
this.searchView = HotPotato;
|
|
74
|
-
this.POSTGetItems(this.backend + Repository
|
|
78
|
+
this.POSTGetItems(this.backend + Repository.POST_Adm_GetTopActivities, this.searchView, false);
|
|
75
79
|
}
|
|
76
80
|
else {
|
|
77
81
|
this.searchView = new TopActivitiesDataView();
|
|
@@ -86,7 +90,7 @@ export class AdmTopActivitiesComponent {
|
|
|
86
90
|
this.searchView.searchinprogress = true;
|
|
87
91
|
if (resetPage)
|
|
88
92
|
this.searchView.page = 1;
|
|
89
|
-
this.POSTGetItems(this.backend + Repository
|
|
93
|
+
this.POSTGetItems(this.backend + Repository.POST_Adm_GetTopActivities, searchViewOverride ?? this.searchView, update);
|
|
90
94
|
}
|
|
91
95
|
POSTGetItems(url, data, update) {
|
|
92
96
|
this.http.post(url, data).subscribe(async (t) => {
|
|
@@ -101,7 +105,14 @@ export class AdmTopActivitiesComponent {
|
|
|
101
105
|
});
|
|
102
106
|
}
|
|
103
107
|
getDirectorInfos() {
|
|
104
|
-
return this.http.get(this.backend + Repository
|
|
108
|
+
return this.http.get(this.backend + Repository.GET_Adm_GetInfos).pipe(map(res => { return res; })).toPromise();
|
|
109
|
+
}
|
|
110
|
+
loadNodeDetails(nodeId) {
|
|
111
|
+
this.NodeDetails = null;
|
|
112
|
+
let pars = new HttpParams().set('nodeId', nodeId);
|
|
113
|
+
this.http.get(this.backend + Repository.GET_Adm_GetNodeStats, pars).subscribe(t => {
|
|
114
|
+
this.NodeDetails = t;
|
|
115
|
+
});
|
|
105
116
|
}
|
|
106
117
|
reviewBindings(update, searchViewOverride, dirInfos) {
|
|
107
118
|
let reference = (searchViewOverride ?? this.searchView).items[0];
|
|
@@ -175,12 +186,12 @@ export class AdmTopActivitiesComponent {
|
|
|
175
186
|
AdmTopActivitiesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AdmTopActivitiesComponent, deps: [{ token: i1.DateService }, { token: i2.LocalizationService }, { token: i3.PreferencesService }, { token: i4.Location }, { token: i1.InterComService }, { token: i5.HTTPService }, { token: i6.ActivatedRoute }, { token: ADM_BACKEND_URL }, { token: ADM_MODULE_PATH }], target: i0.ɵɵFactoryTarget.Component });
|
|
176
187
|
AdmTopActivitiesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: AdmTopActivitiesComponent, selector: "topact_search", providers: [
|
|
177
188
|
{ provide: LocalizationService, useClass: AdmTopActivitieLoc }
|
|
178
|
-
], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'Top Activities' | localize : lc}}\r\n <span *ngIf=\"DirInfos\"> - {{'' + DirInfos.cpus + ' ' + ('CPUs' | localize : lc) + (DirInfos.rssplan ? ' - ' + DirInfos.rssplan : '')}}</span> \r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 app-relative\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\"></form-datetime>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n\r\n <div class=\"app-absolute app-right-25 app-top-40\">\r\n <div class=\"pull-right\">\r\n {{'Update every' | localize : lc}} <input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"secs\" /> {{'second/s' | localize : lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 app-margin-top-5\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\" class=\"row\">\r\n <div class=\"col-md-12 app-no-padding\">\r\n <!--<h5 class=\"app-margin-top-5\">{{'Active Sessions' | localize : lc}}</h5>-->\r\n <div style=\"width: 100%; height: 290px\">\r\n <es-line-chart *ngIf=\"TopActiveSessions\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"TopActiveSessions\"\r\n [Legend]=\"true\" \r\n name=\"topactsession\"\r\n [DataGroupingThreshold]=\"99999999\"\r\n (onSelectionChanged)=\"dataSelectionChanged($event)\" (chartLoaded)=\"onChartLoaded($event)\"></es-line-chart>\r\n </div>\r\n </div>\r\n <div class=\"col-md-5\">\r\n <h5>{{'Top Nodes' | localize : lc}}</h5>\r\n <es-table [(ngModel)]=\"TopNodes\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">{{'Node' | localize : lc}}</th>\r\n <th>{{'Node Description' | localize : lc}}</th>\r\n <th class=\"app-col-min\">{{'Activity' | localize : lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Node Type' | localize : lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-node>\r\n <td class=\"app-col-min\"><strong>{{node.profnodeid}}</strong></td>\r\n <td><span title=\"{{node.profnodedesc}}\">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + \"...\" : node.profnodedesc}}</span></td>\r\n <td class=\"app-nowrap\">{{node.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"col-md-7\">\r\n <h5>{{'Top Sessions' | localize : lc}}</h5>\r\n <es-table [(ngModel)]=\"TopSessions\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">ID</th>\r\n <th>{{'User' | localize : lc}}</th>\r\n <th>{{'Tenant' | localize : lc}}</th>\r\n <th>{{'Process' | localize : lc}}</th>\r\n <th>{{'Activity' | localize : lc}}</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Networking</th>\r\n <th>IO</th>\r\n </ng-template>\r\n\r\n <ng-template #body let-session>\r\n <td><strong>{{session.sid}}</strong></td>\r\n <td>{{session.user}}</td>\r\n <td>{{session.tenant}}</td>\r\n <td>{{session.bgprocess}}</td>\r\n <td>{{session.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.cpu | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.wait | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.db | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.script | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.throttle | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.sleep | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.net | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.io | number : '1.1-2' : 'it'}} %</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", components: [{ type: i7.FormDateTimeComponent, selector: "form-datetime", inputs: ["JsDates"] }, { type: i8.EsLineChartComponent, selector: "es-line-chart", inputs: ["Data", "DataArray", "Step", "DataGroupBucketSize", "DataGroupingThreshold", "StrokeSize", "AllowGaps", "MergeDatasets", "FinalInstants", "Min", "Max", "Fill"] }, { type: i9.EsTableComponent, selector: "es-table", inputs: ["CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "UseCustomCells", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "PagingStyle", "RowGroupingPagingStyle", "SecondarySource", "TertiarySource", "UseSelectionCache", "ShowItemGroupsColumns", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onCornerAction", "onDynamicOperation"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i10.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i10.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i10.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i10.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }], pipes: { "localize": i2.LocalizePipe, "number": i4.DecimalPipe } });
|
|
189
|
+
], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'Top Activities' | localize : lc}}\r\n <span *ngIf=\"DirInfos\"> - {{'' + DirInfos.cpus + ' ' + ('CPUs' | localize : lc) + (DirInfos.rssplan ? ' - ' + DirInfos.rssplan : '')}}</span> \r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 app-relative\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\"></form-datetime>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n\r\n <div class=\"app-absolute app-right-25 app-top-40\">\r\n <div class=\"pull-right\">\r\n {{'Update every' | localize : lc}} <input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"secs\" /> {{'second/s' | localize : lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 app-margin-top-5\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\" class=\"row\">\r\n <div class=\"col-md-12 app-no-padding\">\r\n <div style=\"width: 100%; height: 290px\">\r\n <es-line-chart *ngIf=\"TopActiveSessions\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"TopActiveSessions\"\r\n [Legend]=\"true\" \r\n name=\"topactsession\"\r\n [DataGroupingThreshold]=\"99999999\"\r\n (onSelectionChanged)=\"dataSelectionChanged($event)\" (chartLoaded)=\"onChartLoaded($event)\"></es-line-chart>\r\n </div>\r\n </div>\r\n <div class=\"col-md-5\">\r\n <h5>{{'Top Nodes' | localize : lc}}</h5>\r\n <es-table [(ngModel)]=\"TopNodes\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">{{'Node' | localize : lc}}</th>\r\n <th>{{'Node Description' | localize : lc}}</th>\r\n <th class=\"app-col-min\">{{'Activity' | localize : lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Node Type' | localize : lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Wait Class Name' | localize : lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-node>\r\n <td class=\"app-col-min\"><span class=\"app-link\" (click)=\"loadNodeDetails(node.profnodeid); dlgNodeDetails.show();\">{{node.profnodeid}}</span></td>\r\n <td><span title=\"{{node.profnodedesc}}\">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + \"...\" : node.profnodedesc}}</span></td>\r\n <td class=\"app-nowrap\">{{node.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n <td>{{node.waitclassname}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"col-md-7\">\r\n <h5>{{'Top Sessions' | localize : lc}}</h5>\r\n <es-table [(ngModel)]=\"TopSessions\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">ID</th>\r\n <th>{{'User' | localize : lc}}</th>\r\n <th>{{'Tenant' | localize : lc}}</th>\r\n <th>{{'Process' | localize : lc}}</th>\r\n <th>{{'Activity' | localize : lc}}</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Networking</th>\r\n <th>IO</th>\r\n </ng-template>\r\n\r\n <ng-template #body let-session>\r\n <td><strong>{{session.sid}}</strong></td>\r\n <td>{{session.user}}</td>\r\n <td>{{session.tenant}}</td>\r\n <td>{{session.bgprocess}}</td>\r\n <td>{{session.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.cpu | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.wait | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.db | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.script | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.throttle | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.sleep | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.net | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.io | number : '1.1-2' : 'it'}} %</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <node-detail *ngIf=\"NodeDetails\" [NodeDetails]=\"NodeDetails\" (onClose)=\"dlgNodeDetails.hide()\"></node-detail>\r\n</div>", components: [{ type: i7.FormDateTimeComponent, selector: "form-datetime", inputs: ["JsDates"] }, { type: i8.EsLineChartComponent, selector: "es-line-chart", inputs: ["Data", "DataArray", "Step", "DataGroupBucketSize", "DataGroupingThreshold", "StrokeSize", "AllowGaps", "MergeDatasets", "FinalInstants", "Min", "Max", "Fill"] }, { type: i9.EsTableComponent, selector: "es-table", inputs: ["CornerMenuOptions", "ColumnsResizable", "ColumnsPinnable", "AutoUpdate", "UseCustomCells", "MaxHeight", "ContainerClass", "XLSXExport", "CSVExport", "AllSearch", "HighCellDensity", "Selection", "ShowLoadingOnBootstrap", "Removal", "RemovalCondition", "Export", "ShiftClick", "CountLabel", "HidePaging", "HidePagingCount", "HidePagingButtons", "ContextMenu", "ExportFileName", "TableClass", "ExportFunction", "HasHeaderGroup", "HasSecondaryHeaderGroup", "HeaderHidden", "BodyHidden", "SelectionDisabled", "SingleSelection", "RowClassAssigner", "OrderByColumn", "MultipleOrderingDirectives", "HiddenColumns", "ColumnsOrdering", "SearchView", "SelectAll", "UseArrayModePaging", "DynamicRowColumnsDefinition", "DynamicOperations", "Hierarchy", "ParentKey", "OwnKey", "StartsExpanded", "SavePreferences", "PagingStyle", "RowGroupingPagingStyle", "SecondarySource", "TertiarySource", "UseSelectionCache", "ShowItemGroupsColumns", "ArraymodeItemsPerPage"], outputs: ["onOrderChanged", "onSearchRequest", "onSelectionChanged", "onRemoval", "onAbortRemoval", "onCornerAction", "onDynamicOperation"] }, { type: i10.NodeDetailComponent, selector: "node-detail", inputs: ["NodeDetails"], outputs: ["onClose"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i11.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i11.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i11.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i12.ModalDirective, selector: "[bsModal]", inputs: ["config", "closeInterceptor"], outputs: ["onShow", "onShown", "onHide", "onHidden"], exportAs: ["bs-modal"] }], pipes: { "localize": i2.LocalizePipe, "number": i4.DecimalPipe } });
|
|
179
190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AdmTopActivitiesComponent, decorators: [{
|
|
180
191
|
type: Component,
|
|
181
192
|
args: [{ selector: "topact_search", providers: [
|
|
182
193
|
{ provide: LocalizationService, useClass: AdmTopActivitieLoc }
|
|
183
|
-
], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'Top Activities' | localize : lc}}\r\n <span *ngIf=\"DirInfos\"> - {{'' + DirInfos.cpus + ' ' + ('CPUs' | localize : lc) + (DirInfos.rssplan ? ' - ' + DirInfos.rssplan : '')}}</span> \r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 app-relative\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\"></form-datetime>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n\r\n <div class=\"app-absolute app-right-25 app-top-40\">\r\n <div class=\"pull-right\">\r\n {{'Update every' | localize : lc}} <input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"secs\" /> {{'second/s' | localize : lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 app-margin-top-5\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\" class=\"row\">\r\n <div class=\"col-md-12 app-no-padding\">\r\n
|
|
194
|
+
], template: "<div class=\"row\">\r\n <div class=\"col-12\">\r\n <div class=\"card app-overflow-visible\" widget>\r\n <div class=\"card-header\">\r\n <span class=\"text-uppercase\">\r\n {{'Top Activities' | localize : lc}}\r\n <span *ngIf=\"DirInfos\"> - {{'' + DirInfos.cpus + ' ' + ('CPUs' | localize : lc) + (DirInfos.rssplan ? ' - ' + DirInfos.rssplan : '')}}</span> \r\n </span>\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 app-relative\">\r\n <form role=\"form\">\r\n <div class=\"row app-first-filter-line\">\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></form-datetime>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-datetime [Readonly]=\"autoUpdate\" [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\"></form-datetime>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress || autoUpdate\" class=\"input-group-addon btn app-btn-search app-margin-top-20\" (click)=\"sendSearch()\" type=\"submit\"><i class=\"fa fa-search\"></i></button>\r\n\r\n <div class=\"app-absolute app-right-25 app-top-40\">\r\n <div class=\"pull-right\">\r\n {{'Update every' | localize : lc}} <input [readonly]=\"autoUpdate\" maxlength=\"3\" class=\"form-control app-updevery-input\" type=\"text\" [(ngModel)]=\"seconds\" name=\"secs\" /> {{'second/s' | localize : lc}}\r\n </div>\r\n <div class=\"pull-right m-t-2 app-margin-right-5\">\r\n <label class=\"switch\">\r\n <input type=\"checkbox\" [(ngModel)]=\"autoUpdate\" (ngModelChange)=\"autoUpdateChanged();\" />\r\n <div class=\"slider round\"></div>\r\n </label>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 app-margin-top-5\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\" class=\"row\">\r\n <div class=\"col-md-12 app-no-padding\">\r\n <div style=\"width: 100%; height: 290px\">\r\n <es-line-chart *ngIf=\"TopActiveSessions\"\r\n [MinGridDistance]=\"65\"\r\n [Timeline]=\"false\"\r\n [FinalInstants]=\"false\"\r\n [LegendPadding]=\"{top: 0, bottom: 7, right: 0, left: 10}\"\r\n [Fill]=\"true\"\r\n [MergeDatasets]=\"true\"\r\n [Data]=\"TopActiveSessions\"\r\n [Legend]=\"true\" \r\n name=\"topactsession\"\r\n [DataGroupingThreshold]=\"99999999\"\r\n (onSelectionChanged)=\"dataSelectionChanged($event)\" (chartLoaded)=\"onChartLoaded($event)\"></es-line-chart>\r\n </div>\r\n </div>\r\n <div class=\"col-md-5\">\r\n <h5>{{'Top Nodes' | localize : lc}}</h5>\r\n <es-table [(ngModel)]=\"TopNodes\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">{{'Node' | localize : lc}}</th>\r\n <th>{{'Node Description' | localize : lc}}</th>\r\n <th class=\"app-col-min\">{{'Activity' | localize : lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Node Type' | localize : lc}}</th>\r\n <th class=\"app-col-min app-nowrap\">{{'Wait Class Name' | localize : lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-node>\r\n <td class=\"app-col-min\"><span class=\"app-link\" (click)=\"loadNodeDetails(node.profnodeid); dlgNodeDetails.show();\">{{node.profnodeid}}</span></td>\r\n <td><span title=\"{{node.profnodedesc}}\">{{node.profnodedesc.length > 40 ? node.profnodedesc.substr(0,40) + \"...\" : node.profnodedesc}}</span></td>\r\n <td class=\"app-nowrap\">{{node.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{node.nodetypename}}</td>\r\n <td>{{node.waitclassname}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"col-md-7\">\r\n <h5>{{'Top Sessions' | localize : lc}}</h5>\r\n <es-table [(ngModel)]=\"TopSessions\" [HidePaging]=\"true\">\r\n <ng-template #header>\r\n <th class=\"app-col-min\">ID</th>\r\n <th>{{'User' | localize : lc}}</th>\r\n <th>{{'Tenant' | localize : lc}}</th>\r\n <th>{{'Process' | localize : lc}}</th>\r\n <th>{{'Activity' | localize : lc}}</th>\r\n <th>Cpu</th>\r\n <th>Wait</th>\r\n <th>DB</th>\r\n <th>Script</th>\r\n <th>Throttle</th>\r\n <th>Sleep</th>\r\n <th>Networking</th>\r\n <th>IO</th>\r\n </ng-template>\r\n\r\n <ng-template #body let-session>\r\n <td><strong>{{session.sid}}</strong></td>\r\n <td>{{session.user}}</td>\r\n <td>{{session.tenant}}</td>\r\n <td>{{session.bgprocess}}</td>\r\n <td>{{session.activity | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.cpu | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.wait | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.db | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.script | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.throttle | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.sleep | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.net | number : '1.1-2' : 'it'}} %</td>\r\n <td>{{session.io | number : '1.1-2' : 'it'}} %</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div bsModal #dlgNodeDetails=\"bs-modal\" class=\"modal fade\" role=\"dialog\" aria-hidden=\"true\">\r\n <node-detail *ngIf=\"NodeDetails\" [NodeDetails]=\"NodeDetails\" (onClose)=\"dlgNodeDetails.hide()\"></node-detail>\r\n</div>" }]
|
|
184
195
|
}], ctorParameters: function () { return [{ type: i1.DateService }, { type: i2.LocalizationService }, { type: i3.PreferencesService }, { type: i4.Location }, { type: i1.InterComService }, { type: i5.HTTPService }, { type: i6.ActivatedRoute }, { type: undefined, decorators: [{
|
|
185
196
|
type: Inject,
|
|
186
197
|
args: [ADM_BACKEND_URL]
|
|
@@ -188,4 +199,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
188
199
|
type: Inject,
|
|
189
200
|
args: [ADM_MODULE_PATH]
|
|
190
201
|
}] }]; } });
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYWN0X3NlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3RvcGFjdC90b3BhY3Rfc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvdG9wYWN0L3RvcGFjdF9zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxELGlCQUFpQjtBQUNqQixPQUFPLEVBQXNCLFNBQVMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzlELE9BQU8sRUFBZSxtQkFBbUIsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUl6RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBR3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhFLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBU25FLE1BQU0sT0FBTyx5QkFBeUI7SUFVbEMsWUFDVyxRQUFxQixFQUNyQixFQUF1QixFQUN0QixZQUFnQyxFQUNoQyxRQUFrQixFQUNsQixRQUF5QixFQUN6QixJQUFpQixFQUNqQixLQUFxQixFQUNJLE9B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QyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMzRixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNRLEtBQUssQ0FBQyxLQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDdkUsS0FBSyxDQUFDLEtBQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUUzRiwyR0FBMkc7WUFDL0csQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztzSEE3TFEseUJBQXlCLGtPQWtCdEIsZUFBZSxhQUNmLGVBQWU7MEdBbkJsQix5QkFBeUIsd0NBTHZCO1FBQ1AsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO0tBQ2pFLDBCQy9CTCxpa1JBcUhNOzJGRG5GTyx5QkFBeUI7a0JBUHJDLFNBQVM7K0JBQ0ksZUFBZSxhQUNkO3dCQUNQLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtxQkFDakU7OzBCQXFCSSxNQUFNOzJCQUFDLGVBQWU7OzBCQUN0QixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQmFzZUNoYXJ0Q29tcG9uZW50LCBEYXRlVmFsdWUsIExpbWl0LCBMaW5lQ2hhcnREYXRhLCBMaW5lU2VyaWUgfSBmcm9tIFwiQGVzZmFlbnphL2VzLWNoYXJ0c1wiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IFByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvcHJlZmVyZW5jZXNcIjtcclxuaW1wb3J0IHsgSFRUUFNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2h0dHBzZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGVTZXJ2aWNlLCBJbmJvdW5kTWVzc2FnZVR5cGVzLCBJbnRlckNvbVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0ICogYXMgYW00Y2hhcnRzIGZyb20gXCJAYW1jaGFydHMvYW1jaGFydHM0L2NoYXJ0c1wiO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBEaXJlY3RvckluZm9zIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL0RpcmVjdG9ySW5mb3NcIjtcclxuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvZXh0ZXJuYWxzL1JlcG9zaXRvcnlcIjtcclxuaW1wb3J0IHsgVG9wQWN0aXZpdGllc0RhdGFWaWV3IH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL1RvcEFjdGl2aXRpZXNEYXRhVmlld1wiO1xyXG5pbXBvcnQgeyBUb3BOb2RlIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL1RvcE5vZGVcIjtcclxuaW1wb3J0IHsgVG9wU2Vzc2lvbiB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29tcG9uZW50cy9Ub3BTZXNzaW9uXCI7XHJcbmltcG9ydCB7IEFETV9CQUNLRU5EX1VSTCwgQURNX01PRFVMRV9QQVRIIH0gZnJvbSBcIi4uLy4uL3Rva2Vuc1wiO1xyXG5cclxuLy8gTG9jYWxpenphemlvbmVcclxuaW1wb3J0IHsgQWRtVG9wQWN0aXZpdGllTG9jIH0gZnJvbSBcIi4vdG9wYWN0X3NlYXJjaC5jb21wb25lbnQubG9jXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcInRvcGFjdF9zZWFyY2hcIixcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEFkbVRvcEFjdGl2aXRpZUxvYyB9XHJcbiAgICBdLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi90b3BhY3Rfc2VhcmNoLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkbVRvcEFjdGl2aXRpZXNDb21wb25lbnQge1xyXG4gICAgcHVibGljIHNlYXJjaFZpZXc6IFRvcEFjdGl2aXRpZXNEYXRhVmlldyA9IG5ldyBUb3BBY3Rpdml0aWVzRGF0YVZpZXcoKTtcclxuICAgIHB1YmxpYyBzdG9yYWdlU3ViOiBhbnk7XHJcbiAgICBwcml2YXRlIExhc3REYXRhUG9pbnQ6IGFueTtcclxuXHJcbiAgICBwdWJsaWMgYXV0b1VwZGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNlY29uZHM6IHN0cmluZyA9IFwiNVwiO1xyXG5cclxuICAgIHByaXZhdGUgQ2hhcnRJbnN0YW5jZTogQmFzZUNoYXJ0Q29tcG9uZW50O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBkYXRlRXh0czogRGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlOiBQcmVmZXJlbmNlc1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICAgICAgcHJpdmF0ZSBpbnRlcmNvbTogSW50ZXJDb21TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgQEluamVjdChBRE1fQkFDS0VORF9VUkwpIHByaXZhdGUgYmFja2VuZDogc3RyaW5nLFxyXG4gICAgICAgIEBJbmplY3QoQURNX01PRFVMRV9QQVRIKSBwcml2YXRlIG1vZDogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIHRoaXMuaW50ZXJjb20uc2VuZChJbmJvdW5kTWVzc2FnZVR5cGVzLk5hdmlnYXRpb24sIHsgc3ViOiBmYWxzZSwgcm91dGVUaXRsZTogdGhpcy5sYy5sb2ModGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhW1widGl0bGVcIl0pIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVN1YiA9IHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuSW5pdChwYXJhbXNbXCJpZ25vcmVTdG9yYWdlXCJdKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBJbml0KGlnbm9yZVN0b3JlKSB7XHJcbiAgICAgICAgdGhpcy5kb0luaXQoaWdub3JlU3RvcmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRvSW5pdChpZ25vcmVTdG9yYWdlKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtPFRvcEFjdGl2aXRpZXNEYXRhVmlldz4oXCJIb3RTZWFyY2hUb3BBY3RcIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgaWYgKCFpZ25vcmVTdG9yYWdlICYmIGl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoYC9wYWdlcy8ke3RoaXMubW9kfS90b3BhY3RgKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyA9IFtdO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiSG90U2VhcmNoVG9wQWN0XCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0KEhvdFBvdGF0bzogVG9wQWN0aXZpdGllc0RhdGFWaWV3KSB7XHJcbiAgICAgICAgaWYgKEhvdFBvdGF0bykge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBIb3RQb3RhdG87XHJcbiAgICAgICAgICAgIHRoaXMuUE9TVEdldEl0ZW1zKHRoaXMuYmFja2VuZCArIFJlcG9zaXRvcnlbXCJQT1NUX0FkbV9HZXRUb3BBY3Rpdml0aWVzXCJdLCB0aGlzLnNlYXJjaFZpZXcsIGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IG5ldyBUb3BBY3Rpdml0aWVzRGF0YVZpZXcoKTtcclxuICAgICAgICAgICAgdGhpcy5zZW5kU2VhcmNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2VTdWIpXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbmRTZWFyY2gocmVzZXRQYWdlOiBib29sZWFuID0gdHJ1ZSwgdXBkYXRlOiBib29sZWFuID0gZmFsc2UsIHNlYXJjaFZpZXdPdmVycmlkZTogVG9wQWN0aXZpdGllc0RhdGFWaWV3ID0gbnVsbCkge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgICBpZiAocmVzZXRQYWdlKVxyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcucGFnZSA9IDE7XHJcblxyXG4gICAgICAgIHRoaXMuUE9TVEdldEl0ZW1zKHRoaXMuYmFja2VuZCArIFJlcG9zaXRvcnlbXCJQT1NUX0FkbV9HZXRUb3BBY3Rpdml0aWVzXCJdLCBzZWFyY2hWaWV3T3ZlcnJpZGUgPz8gdGhpcy5zZWFyY2hWaWV3LCB1cGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIFBPU1RHZXRJdGVtcyh1cmw6IHN0cmluZywgZGF0YTogVG9wQWN0aXZpdGllc0RhdGFWaWV3LCB1cGRhdGU6IGJvb2xlYW4pIHtcclxuXHJcbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8VG9wQWN0aXZpdGllc0RhdGFWaWV3Pih1cmwsIGRhdGEpLnN1YnNjcmliZShhc3luYyAodCkgPT4ge1xyXG4gICAgICAgICAgICAvL1NlIHNvbm8gaW4gbW9kYWxpdMOgIGRpIHVwZGF0ZSBub24gZGV2byB0b2NjYXJlIGxhIHNlYXJjaFZpZXcgYXR0dWFsZSBzZSBub24gcGVyIGlsIHNlYXJjaGlucHJvZ3Jlc3MgY2hlIHZpZW5lIG1lc3NvIGRhbGwnZXMgdGFibGVcclxuICAgICAgICAgICAgaWYgKCF1cGRhdGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IHQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiSG90U2VhcmNoVG9wQWN0XCIsIHRoaXMuc2VhcmNoVmlldykuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIGRpcmluZm9zID0gYXdhaXQgdGhpcy5nZXREaXJlY3RvckluZm9zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucmV2aWV3QmluZGluZ3ModXBkYXRlLCB0LCBkaXJpbmZvcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGlyZWN0b3JJbmZvcygpOiBQcm9taXNlPERpcmVjdG9ySW5mb3M+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxEaXJlY3RvckluZm9zPih0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiR0VUX0FkbV9HZXRJbmZvc1wiXSkucGlwZShtYXAocmVzID0+IHsgcmV0dXJuIHJlczsgfSkpLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogVHJhc2Zvcm1hemlvbmUgZGEgc2VhcmNodmlldyBjb24gdW5pY28gZWxlbWVudG8gY29uIHR1dHRvIGFpIDMgZWxlbWVudGk6XHJcbiAgICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEdyYWZpY28sIFRvcE5vZGVzIGUgVG9wU2Vzc2lvbnNcclxuICAgIFRvcEFjdGl2ZVNlc3Npb25zOiBMaW5lQ2hhcnREYXRhO1xyXG4gICAgVG9wTm9kZXM6IFRvcE5vZGVbXTtcclxuICAgIFRvcFNlc3Npb25zOiBUb3BTZXNzaW9uW107XHJcbiAgICBEaXJJbmZvczogRGlyZWN0b3JJbmZvcztcclxuICAgIHNlcmllc1Byb3BlcnRpZXNNYXBwaW5nOiB7IFtpbmRleDogc3RyaW5nXTogTGluZVNlcmllIH0gPSB7fTtcclxuICAgIHByb3BlcnRpZXNTZXJpZXNNYXBwaW5nOiB7IFtpbmRleDogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgICAgICAgW1wiY3B1dGltZVwiXTogXCJDUFVcIixcclxuICAgICAgICBbXCJ3YWl0dGltZVwiXTogXCJXYWl0XCIsXHJcbiAgICAgICAgW1wic2NyaXB0dGltZVwiXTogXCJTY3JpcHRpbmdcIixcclxuICAgICAgICBbXCJkYnRpbWVcIl06IFwiREJcIixcclxuICAgICAgICBbXCJuZXR0aW1lXCJdOiBcIk5ldHdvcmtcIixcclxuICAgICAgICBbXCJ0aHJvdHRsZXRpbWVcIl06IFwiVGhyb3R0bGluZ1wiLFxyXG4gICAgICAgIFtcInNsZWVwdGltZVwiXTogXCJTbGVlcFwiLFxyXG4gICAgICAgIFtcImlvdGltZVwiXTogXCJJT1wiXHJcbiAgICB9O1xyXG5cclxuICAgIHJldmlld0JpbmRpbmdzKHVwZGF0ZTogYm9vbGVhbiwgc2VhcmNoVmlld092ZXJyaWRlPywgZGlySW5mb3M/OiBEaXJlY3RvckluZm9zKSB7XHJcbiAgICAgICAgbGV0IHJlZmVyZW5jZSA9IChzZWFyY2hWaWV3T3ZlcnJpZGUgPz8gdGhpcy5zZWFyY2hWaWV3KS5pdGVtc1swXTtcclxuICAgICAgICB0aGlzLlRvcE5vZGVzID0gcmVmZXJlbmNlLnRvcG5vZGVzO1xyXG4gICAgICAgIHRoaXMuVG9wU2Vzc2lvbnMgPSByZWZlcmVuY2UudG9wc2Vzc2lvbnM7XHJcbiAgICAgICAgdGhpcy5EaXJJbmZvcyA9IGRpckluZm9zO1xyXG5cclxuICAgICAgICBpZiAoIXJlZmVyZW5jZS5hY3RzZXNzaW9ucyB8fCByZWZlcmVuY2UuYWN0c2Vzc2lvbnMubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5Ub3BBY3RpdmVTZXNzaW9ucyA9IG51bGw7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBzZXJpZXM6IExpbmVTZXJpZVtdID0gW107ICAgICAgXHJcbiAgICAgICAgbGV0IHByb3BzID0gT2JqZWN0LmtleXMocmVmZXJlbmNlLmFjdHNlc3Npb25zWzBdKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChwcm9wc1tpXSAhPSAnc2FtcGxldGltZScpIHtcclxuICAgICAgICAgICAgICAgIGxldCBzID0gbmV3IExpbmVTZXJpZSh0aGlzLnByb3BlcnRpZXNTZXJpZXNNYXBwaW5nW3Byb3BzW2ldXSwgW10sIG51bGwsIG51bGwsIFwic2Vzc2lvbnNcIik7XHJcbiAgICAgICAgICAgICAgICBzZXJpZXMucHVzaChzKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VyaWVzUHJvcGVydGllc01hcHBpbmdbcHJvcHNbaV1dID0gcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZWZlcmVuY2UuYWN0c2Vzc2lvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW1yZWYgPSByZWZlcmVuY2UuYWN0c2Vzc2lvbnNbaV07XHJcbiAgICAgICAgICAgIGxldCB0aGVEID0gbmV3IERhdGUoaXRlbXJlZi5zYW1wbGV0aW1lKTtcclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNbaV0gIT0gJ3NhbXBsZXRpbWUnICYmICghdXBkYXRlIHx8IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odGhlRCkuaXNBZnRlcih0aGlzLkxhc3REYXRhUG9pbnQpKSlcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcmllc1Byb3BlcnRpZXNNYXBwaW5nW3Byb3BzW2ldXS52YWx1ZXMucHVzaChuZXcgRGF0ZVZhbHVlKHRoZUQsIGl0ZW1yZWZbcHJvcHNbaV1dKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodXBkYXRlICYmIHRoaXMuQ2hhcnRJbnN0YW5jZSkge1xyXG4gICAgICAgICAgICBsZXQgZGF0YSA9IG5ldyBMaW5lQ2hhcnREYXRhKHNlcmllcywgbmV3IExpbWl0KGRpckluZm9zPy50aHJlYWRzLCB0aGlzLmxjLmxvYyhcIk1heGltdW0gVGhyZWFkc1wiKSkpO1xyXG4gICAgICAgICAgICBpZiAoc2VyaWVzLnNvbWUodCA9PiB0LnZhbHVlcy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5DaGFydEluc3RhbmNlLmFkZERhdGEoZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkxhc3REYXRhUG9pbnQgPSBzZXJpZXMubWFwKHQgPT4gZGF5anMubWF4KHQudmFsdWVzLm1hcCh2ID0+IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odi5kKSkpKVswXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5Ub3BBY3RpdmVTZXNzaW9ucyA9IG5ldyBMaW5lQ2hhcnREYXRhKHNlcmllcywgbmV3IExpbWl0KGRpckluZm9zPy50aHJlYWRzLCB0aGlzLmxjLmxvYyhcIk1heGltdW0gVGhyZWFkc1wiKSkpO1xyXG4gICAgICAgICAgICB0aGlzLkxhc3REYXRhUG9pbnQgPSBzZXJpZXMubWFwKHQgPT4gZGF5anMubWF4KHQudmFsdWVzLm1hcCh2ID0+IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odi5kKSkpKVswXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI3JlZ2lvbiBHZXN0aW9uZSB1cGRhdGUgYXV0b21hdGljb1xyXG4gICAgdXBkYXRlVGltZXI6IGFueTtcclxuICAgIGF1dG9VcGRhdGVDaGFuZ2VkKCkge1xyXG4gICAgICAgIGlmICghL15bMS05XVxcZCokLy50ZXN0KHRoaXMuc2Vjb25kcykpXHJcbiAgICAgICAgICAgIHRoaXMuc2Vjb25kcyA9ICcxMCc7XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kc0luTXMgPSBwYXJzZUludCh0aGlzLnNlY29uZHMsIG51bGwpICogMTAwMDtcclxuICAgICAgICBpZiAodGhpcy5hdXRvVXBkYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFNlYXJjaChmYWxzZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7IHRoaXMuc2VuZFNlYXJjaChmYWxzZSwgdHJ1ZSk7IH0sIHNlY29uZHNJbk1zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMudXBkYXRlVGltZXIpO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAgIHByaXZhdGUgZnJvbTogRGF0ZTtcclxuICAgIHByaXZhdGUgdG86IERhdGU7XHJcblxyXG4gICAgZGF0YVNlbGVjdGlvbkNoYW5nZWQoZXZlbnQ6IHsgZnJvbTogRGF0ZSwgdG86IERhdGUsIGluaXRpYWw6IGJvb2xlYW4gfSkge1xyXG4gICAgICAgIHRoaXMuZnJvbSA9IGV2ZW50LmluaXRpYWwgPyAodGhpcy5zZWFyY2hWaWV3LmZpbHRlcmZyb20gPyB0aGlzLmRhdGVFeHRzLmdldERhdGVDb252ZXJ0aW9uKHRoaXMuc2VhcmNoVmlldy5maWx0ZXJmcm9tKS50b0RhdGUoKSA6IFwiXCIpIDogZXZlbnQuZnJvbTtcclxuICAgICAgICB0aGlzLnRvID0gZXZlbnQuaW5pdGlhbCA/ICh0aGlzLnNlYXJjaFZpZXcuZmlsdGVydG8gPyB0aGlzLmRhdGVFeHRzLmdldERhdGVDb252ZXJ0aW9uKHRoaXMuc2VhcmNoVmlldy5maWx0ZXJ0bykudG9EYXRlKCkgOiBcIlwiKSA6IGV2ZW50LnRvO1xyXG5cclxuICAgICAgICB2YXIgcHNldWRvU2VhcmNoVmlldzogVG9wQWN0aXZpdGllc0RhdGFWaWV3ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNlYXJjaFZpZXcpKTtcclxuICAgICAgICBwc2V1ZG9TZWFyY2hWaWV3LmZpbHRlcmZyb20gPSB0aGlzLmZyb20gPyBkYXlqcyh0aGlzLmZyb20pLmZvcm1hdCh0aGlzLmxjLnRva2VuKFwiZ2V0RnVsbERhdGVEaXNwbGF5Rm9ybWF0XCIpKSA6IFwiXCI7XHJcbiAgICAgICAgcHNldWRvU2VhcmNoVmlldy5maWx0ZXJ0byA9IHRoaXMudG8gPyBkYXlqcyh0aGlzLnRvKS5mb3JtYXQodGhpcy5sYy50b2tlbihcImdldEZ1bGxEYXRlRGlzcGxheUZvcm1hdFwiKSkgOiBcIlwiO1xyXG4gICAgICAgIHRoaXMuc2VuZFNlYXJjaCh0cnVlLCB0cnVlLCBwc2V1ZG9TZWFyY2hWaWV3KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYXJ0TG9hZGVkKGNoYXJ0OiBCYXNlQ2hhcnRDb21wb25lbnQpIHtcclxuICAgICAgICB0aGlzLkNoYXJ0SW5zdGFuY2UgPSBjaGFydDtcclxuICAgICAgICBjaGFydC5DaGFydC5ldmVudHMub24oXCJyZWFkeVwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICg8YW00Y2hhcnRzLlhZQ2hhcnQ+Y2hhcnQuQ2hhcnQpLnhBeGVzLmVhY2goeCA9PiB4Lnpvb20oeyBzdGFydDogMCwgZW5kOiAxIH0sIHRydWUsIHRydWUpKTtcclxuICAgICAgICAgICAgKDxhbTRjaGFydHMuWFlDaGFydD5jaGFydC5DaGFydCkueUF4ZXMuZWFjaCh5ID0+IHkuem9vbSh7IHN0YXJ0OiAwLCBlbmQ6IDEgfSwgdHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICg8YW00Y2hhcnRzLlhZQ2hhcnQ+Y2hhcnQuQ2hhcnQpLnhBeGVzLmVhY2goeCA9PiB4Lnpvb20oeyBzdGFydDogMCwgZW5kOiAxIH0sIHRydWUsIHRydWUpKTtcclxuICAgICAgICAgICAgICAgICg8YW00Y2hhcnRzLlhZQ2hhcnQ+Y2hhcnQuQ2hhcnQpLnlBeGVzLmVhY2goeSA9PiB5Lnpvb20oeyBzdGFydDogMCwgZW5kOiAxIH0sIHRydWUsIHRydWUpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyA1MDAgbWlsbGlzZWNvbmRpIMOoIHBpw7kgbyBtZW5vIGlsIHRlbXBvIGRpIHByaW1hIGFuaW1hemlvbmUgZGVsIGdyYWZpY28uIEZpbml0byBxdWVzdG8gc2kgcmVzZXR0YSBsbyB6b29tXHJcbiAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYXBwLW92ZXJmbG93LXZpc2libGVcIiB3aWRnZXQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7J1RvcCBBY3Rpdml0aWVzJyB8IGxvY2FsaXplIDogbGN9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiRGlySW5mb3NcIj4mbmJzcDstJm5ic3A7e3snJyArIERpckluZm9zLmNwdXMgKyAnICcgKyAoJ0NQVXMnIHwgbG9jYWxpemUgOiBsYykgKyAoRGlySW5mb3MucnNzcGxhbiA/ICcgLSAnICsgRGlySW5mb3MucnNzcGxhbiA6ICcnKX19PC9zcGFuPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB3aWRnZXQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBhcHAtcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFwcC1maXJzdC1maWx0ZXItbGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRldGltZSBbUmVhZG9ubHldPVwiYXV0b1VwZGF0ZVwiIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyZnJvbVwiIG5hbWU9XCJmaWx0ZXJmcm9tXCIgW1BsYWNlaG9sZGVyXT1cIidGcm9tJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0tZGF0ZXRpbWU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tZGF0ZXRpbWUgIFtSZWFkb25seV09XCJhdXRvVXBkYXRlXCIgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJ0b1wiIG5hbWU9XCJmaWx0ZXJ0b1wiIFtQbGFjZWhvbGRlcl09XCInVG8nIHwgbG9jYWxpemUgOiBsY1wiPjwvZm9ybS1kYXRldGltZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwic2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzIHx8IGF1dG9VcGRhdGVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFkZG9uIGJ0biBhcHAtYnRuLXNlYXJjaCBhcHAtbWFyZ2luLXRvcC0yMFwiIChjbGljayk9XCJzZW5kU2VhcmNoKClcIiB0eXBlPVwic3VibWl0XCI+PGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIj48L2k+PC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwcC1hYnNvbHV0ZSBhcHAtcmlnaHQtMjUgYXBwLXRvcC00MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdWxsLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J1VwZGF0ZSBldmVyeScgfCBsb2NhbGl6ZSA6IGxjfX0mbmJzcDs8aW5wdXQgW3JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBtYXhsZW5ndGg9XCIzXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYXBwLXVwZGV2ZXJ5LWlucHV0XCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlY29uZHNcIiBuYW1lPVwic2Vjc1wiIC8+Jm5ic3A7e3snc2Vjb25kL3MnIHwgbG9jYWxpemUgOiBsY319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1bGwtcmlnaHQgbS10LTIgYXBwLW1hcmdpbi1yaWdodC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwiYXV0b1VwZGF0ZVwiIChuZ01vZGVsQ2hhbmdlKT1cImF1dG9VcGRhdGVDaGFuZ2VkKCk7XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZXIgcm91bmRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGFwcC1tYXJnaW4tdG9wLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCIhc2VhcmNoVmlld1wiPjxlbT57eydMb2FkaW5nIERhdGEnIHwgbG9jYWxpemUgOiBsY319PC9lbT48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hWaWV3XCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgYXBwLW5vLXBhZGRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tPGg1IGNsYXNzPVwiYXBwLW1hcmdpbi10b3AtNVwiPnt7J0FjdGl2ZSBTZXNzaW9ucycgfCBsb2NhbGl6ZSA6IGxjfX08L2g1Pi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAyOTBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXMtbGluZS1jaGFydCAqbmdJZj1cIlRvcEFjdGl2ZVNlc3Npb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW01pbkdyaWREaXN0YW5jZV09XCI2NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtUaW1lbGluZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtGaW5hbEluc3RhbnRzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0xlZ2VuZFBhZGRpbmddPVwie3RvcDogMCwgYm90dG9tOiA3LCByaWdodDogMCwgbGVmdDogMTB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0ZpbGxdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtNZXJnZURhdGFzZXRzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGF0YV09XCJUb3BBY3RpdmVTZXNzaW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtMZWdlbmRdPVwidHJ1ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidG9wYWN0c2Vzc2lvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEYXRhR3JvdXBpbmdUaHJlc2hvbGRdPVwiOTk5OTk5OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2VkKT1cImRhdGFTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIiAoY2hhcnRMb2FkZWQpPVwib25DaGFydExvYWRlZCgkZXZlbnQpXCI+PC9lcy1saW5lLWNoYXJ0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+e3snVG9wIE5vZGVzJyB8IGxvY2FsaXplIDogbGN9fTwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVzLXRhYmxlIFsobmdNb2RlbCldPVwiVG9wTm9kZXNcIiBbSGlkZVBhZ2luZ109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYXBwLWNvbC1taW5cIj57eydOb2RlJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3snTm9kZSBEZXNjcmlwdGlvbicgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYXBwLWNvbC1taW5cIj57eydBY3Rpdml0eScgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYXBwLWNvbC1taW4gYXBwLW5vd3JhcFwiPnt7J05vZGUgVHlwZScgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2JvZHkgbGV0LW5vZGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcHAtY29sLW1pblwiPjxzdHJvbmc+e3tub2RlLnByb2Zub2RlaWR9fTwvc3Ryb25nPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHNwYW4gdGl0bGU9XCJ7e25vZGUucHJvZm5vZGVkZXNjfX1cIj57e25vZGUucHJvZm5vZGVkZXNjLmxlbmd0aCA+IDQwID8gbm9kZS5wcm9mbm9kZWRlc2Muc3Vic3RyKDAsNDApICsgXCIuLi5cIiA6IG5vZGUucHJvZm5vZGVkZXNjfX08L3NwYW4+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFwcC1ub3dyYXBcIj57e25vZGUuYWN0aXZpdHkgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7bm9kZS5ub2RldHlwZW5hbWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lcy10YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1Pnt7J1RvcCBTZXNzaW9ucycgfCBsb2NhbGl6ZSA6IGxjfX08L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlcy10YWJsZSBbKG5nTW9kZWwpXT1cIlRvcFNlc3Npb25zXCIgW0hpZGVQYWdpbmddPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImFwcC1jb2wtbWluXCI+SUQ8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7J1VzZXInIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57eydUZW5hbnQnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57eydQcm9jZXNzJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3snQWN0aXZpdHknIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5DcHU8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPldhaXQ8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkRCPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5TY3JpcHQ8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlRocm90dGxlPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5TbGVlcDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+TmV0d29ya2luZzwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+SU88L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNib2R5IGxldC1zZXNzaW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzdHJvbmc+e3tzZXNzaW9uLnNpZH19PC9zdHJvbmc+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24udXNlcn19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24udGVuYW50fX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5iZ3Byb2Nlc3N9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLmFjdGl2aXR5IHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24uY3B1IHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24ud2FpdCB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLmRiIHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24uc2NyaXB0IHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24udGhyb3R0bGUgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5zbGVlcCB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLm5ldCB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLmlvIHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VzLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYWN0X3NlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3RvcGFjdC90b3BhY3Rfc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvdG9wYWN0L3RvcGFjdF9zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxELGlCQUFpQjtBQUNqQixPQUFPLEVBQXNCLFNBQVMsRUFBaUIsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDbEksT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHOUQsT0FBTyxFQUFlLG1CQUFtQixFQUFtQixNQUFNLHNCQUFzQixDQUFDO0FBSXpGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFLdEYsZUFBZTtBQUNmLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhFLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBU2xELE1BQU0sT0FBTyx5QkFBeUI7SUFXbEMsWUFDVyxRQUFxQixFQUNyQixFQUF1QixFQUN0QixZQUFn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a09BbUJ0QixlQUFlLGFBQ2YsZUFBZTswR0FwQmxCLHlCQUF5Qix3Q0FMdkI7UUFDUCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7S0FDakUsMEJDbkNMLHc5UkEwSE07MkZEcEZPLHlCQUF5QjtrQkFQckMsU0FBUzsrQkFDSSxlQUFlLGFBQ2Q7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO3FCQUNqRTs7MEJBc0JJLE1BQU07MkJBQUMsZUFBZTs7MEJBQ3RCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBCYXNlQ2hhcnRDb21wb25lbnQsIERhdGVWYWx1ZSwgS2V5VmFsdWVDb2xvciwgTGltaXQsIExpbmVDaGFydERhdGEsIExpbmVTZXJpZSwgUGllQ2hhcnREYXRhIH0gZnJvbSBcIkBlc2ZhZW56YS9lcy1jaGFydHNcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IEhUVFBTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9odHRwc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXRlU2VydmljZSwgSW5ib3VuZE1lc3NhZ2VUeXBlcywgSW50ZXJDb21TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG4vLyBEaXJldHRpdmUsIENvbXBvbmVudGksIExpYnJlcmllXHJcbmltcG9ydCAqIGFzIGFtNGNoYXJ0cyBmcm9tIFwiQGFtY2hhcnRzL2FtY2hhcnRzNC9jaGFydHNcIjtcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG4vLyBNb2RlbGxpXHJcbmltcG9ydCB7IERpcmVjdG9ySW5mb3MgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvRGlyZWN0b3JJbmZvc1wiO1xyXG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIi4uLy4uL21vZGVscy9leHRlcm5hbHMvUmVwb3NpdG9yeVwiO1xyXG5pbXBvcnQgeyBUb3BBY3Rpdml0aWVzRGF0YVZpZXcgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvVG9wQWN0aXZpdGllc0RhdGFWaWV3XCI7XHJcbmltcG9ydCB7IFRvcE5vZGUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbXBvbmVudHMvVG9wTm9kZVwiO1xyXG5pbXBvcnQgeyBUb3BTZXNzaW9uIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL1RvcFNlc3Npb25cIjtcclxuaW1wb3J0IHsgTm9kZVN0YXRzIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb21wb25lbnRzL05vZGVTdGF0c1wiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEFETV9CQUNLRU5EX1VSTCwgQURNX01PRFVMRV9QQVRIIH0gZnJvbSBcIi4uLy4uL3Rva2Vuc1wiO1xyXG5cclxuLy8gTG9jYWxpenphemlvbmVcclxuaW1wb3J0IHsgQWRtVG9wQWN0aXZpdGllTG9jIH0gZnJvbSBcIi4vdG9wYWN0X3NlYXJjaC5jb21wb25lbnQubG9jXCI7XHJcbmltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwidG9wYWN0X3NlYXJjaFwiLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogQWRtVG9wQWN0aXZpdGllTG9jIH1cclxuICAgIF0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3RvcGFjdF9zZWFyY2guY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRtVG9wQWN0aXZpdGllc0NvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgc2VhcmNoVmlldzogVG9wQWN0aXZpdGllc0RhdGFWaWV3ID0gbmV3IFRvcEFjdGl2aXRpZXNEYXRhVmlldygpO1xyXG4gICAgcHVibGljIHN0b3JhZ2VTdWI6IGFueTtcclxuICAgIHByaXZhdGUgTGFzdERhdGFQb2ludDogYW55O1xyXG5cclxuICAgIHB1YmxpYyBhdXRvVXBkYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2Vjb25kczogc3RyaW5nID0gXCI1XCI7XHJcblxyXG4gICAgcHJpdmF0ZSBDaGFydEluc3RhbmNlOiBCYXNlQ2hhcnRDb21wb25lbnQ7XHJcbiAgICBwdWJsaWMgTm9kZURldGFpbHM6IE5vZGVTdGF0cztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgZGF0ZUV4dHM6IERhdGVTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBsYzogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGxvY2FsU3RvcmFnZTogUHJlZmVyZW5jZXNTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgICAgIHByaXZhdGUgaW50ZXJjb206IEludGVyQ29tU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEhUVFBTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIEBJbmplY3QoQURNX0JBQ0tFTkRfVVJMKSBwcml2YXRlIGJhY2tlbmQ6IHN0cmluZyxcclxuICAgICAgICBASW5qZWN0KEFETV9NT0RVTEVfUEFUSCkgcHJpdmF0ZSBtb2Q6IHN0cmluZykge1xyXG5cclxuICAgICAgICB0aGlzLmludGVyY29tLnNlbmQoSW5ib3VuZE1lc3NhZ2VUeXBlcy5OYXZpZ2F0aW9uLCB7IHN1YjogZmFsc2UsIHJvdXRlVGl0bGU6IHRoaXMubGMubG9jKHRoaXMucm91dGUuc25hcHNob3QuZGF0YVtcInRpdGxlXCJdKSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTdWIgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLkluaXQocGFyYW1zW1wiaWdub3JlU3RvcmFnZVwiXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgSW5pdChpZ25vcmVTdG9yZSkge1xyXG4gICAgICAgIHRoaXMuZG9Jbml0KGlnbm9yZVN0b3JlKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkb0luaXQoaWdub3JlU3RvcmFnZSkge1xyXG4gICAgICAgIGxldCBpdGVtID0gYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbTxUb3BBY3Rpdml0aWVzRGF0YVZpZXc+KFwiSG90U2VhcmNoVG9wQWN0XCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIGlmICghaWdub3JlU3RvcmFnZSAmJiBpdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQobnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKGAvcGFnZXMvJHt0aGlzLm1vZH0vdG9wYWN0YCk7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgPSBbXTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIkhvdFNlYXJjaFRvcEFjdFwiKS50b1Byb21pc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdChIb3RQb3RhdG86IFRvcEFjdGl2aXRpZXNEYXRhVmlldykge1xyXG4gICAgICAgIGlmIChIb3RQb3RhdG8pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gSG90UG90YXRvO1xyXG4gICAgICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcyh0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5LlBPU1RfQWRtX0dldFRvcEFjdGl2aXRpZXMsIHRoaXMuc2VhcmNoVmlldywgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gbmV3IFRvcEFjdGl2aXRpZXNEYXRhVmlldygpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbmRTZWFyY2goKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvcmFnZVN1YilcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZFNlYXJjaChyZXNldFBhZ2U6IGJvb2xlYW4gPSB0cnVlLCB1cGRhdGU6IGJvb2xlYW4gPSBmYWxzZSwgc2VhcmNoVmlld092ZXJyaWRlOiBUb3BBY3Rpdml0aWVzRGF0YVZpZXcgPSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgICAgIGlmIChyZXNldFBhZ2UpXHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5wYWdlID0gMTtcclxuXHJcbiAgICAgICAgdGhpcy5QT1NUR2V0SXRlbXModGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeS5QT1NUX0FkbV9HZXRUb3BBY3Rpdml0aWVzLCBzZWFyY2hWaWV3T3ZlcnJpZGUgPz8gdGhpcy5zZWFyY2hWaWV3LCB1cGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIFBPU1RHZXRJdGVtcyh1cmw6IHN0cmluZywgZGF0YTogVG9wQWN0aXZpdGllc0RhdGFWaWV3LCB1cGRhdGU6IGJvb2xlYW4pIHtcclxuXHJcbiAgICAgICAgdGhpcy5odHRwLnBvc3Q8VG9wQWN0aXZpdGllc0RhdGFWaWV3Pih1cmwsIGRhdGEpLnN1YnNjcmliZShhc3luYyAodCkgPT4ge1xyXG4gICAgICAgICAgICAvL1NlIHNvbm8gaW4gbW9kYWxpdMOgIGRpIHVwZGF0ZSBub24gZGV2byB0b2NjYXJlIGxhIHNlYXJjaFZpZXcgYXR0dWFsZSBzZSBub24gcGVyIGlsIHNlYXJjaGlucHJvZ3Jlc3MgY2hlIHZpZW5lIG1lc3NvIGRhbGwnZXMgdGFibGVcclxuICAgICAgICAgICAgaWYgKCF1cGRhdGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IHQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiSG90U2VhcmNoVG9wQWN0XCIsIHRoaXMuc2VhcmNoVmlldykuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdmFyIGRpcmluZm9zID0gYXdhaXQgdGhpcy5nZXREaXJlY3RvckluZm9zKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMucmV2aWV3QmluZGluZ3ModXBkYXRlLCB0LCBkaXJpbmZvcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGlyZWN0b3JJbmZvcygpOiBQcm9taXNlPERpcmVjdG9ySW5mb3M+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxEaXJlY3RvckluZm9zPih0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5LkdFVF9BZG1fR2V0SW5mb3MpLnBpcGUobWFwKHJlcyA9PiB7IHJldHVybiByZXM7IH0pKS50b1Byb21pc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkTm9kZURldGFpbHMobm9kZUlkOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLk5vZGVEZXRhaWxzID0gbnVsbDtcclxuICAgICAgICBsZXQgcGFycyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdub2RlSWQnLCBub2RlSWQpO1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8Tm9kZVN0YXRzPih0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5LkdFVF9BZG1fR2V0Tm9kZVN0YXRzLCBwYXJzKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuTm9kZURldGFpbHMgPSB0O1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogVHJhc2Zvcm1hemlvbmUgZGEgc2VhcmNodmlldyBjb24gdW5pY28gZWxlbWVudG8gY29uIHR1dHRvIGFpIDMgZWxlbWVudGk6XHJcbiAgICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEdyYWZpY28sIFRvcE5vZGVzIGUgVG9wU2Vzc2lvbnNcclxuICAgIFRvcEFjdGl2ZVNlc3Npb25zOiBMaW5lQ2hhcnREYXRhO1xyXG4gICAgVG9wTm9kZXM6IFRvcE5vZGVbXTtcclxuICAgIFRvcFNlc3Npb25zOiBUb3BTZXNzaW9uW107XHJcbiAgICBEaXJJbmZvczogRGlyZWN0b3JJbmZvcztcclxuICAgIHNlcmllc1Byb3BlcnRpZXNNYXBwaW5nOiB7IFtpbmRleDogc3RyaW5nXTogTGluZVNlcmllIH0gPSB7fTtcclxuICAgIHByb3BlcnRpZXNTZXJpZXNNYXBwaW5nOiB7IFtpbmRleDogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgICAgICAgW1wiY3B1dGltZVwiXTogXCJDUFVcIixcclxuICAgICAgICBbXCJ3YWl0dGltZVwiXTogXCJXYWl0XCIsXHJcbiAgICAgICAgW1wic2NyaXB0dGltZVwiXTogXCJTY3JpcHRpbmdcIixcclxuICAgICAgICBbXCJkYnRpbWVcIl06IFwiREJcIixcclxuICAgICAgICBbXCJuZXR0aW1lXCJdOiBcIk5ldHdvcmtcIixcclxuICAgICAgICBbXCJ0aHJvdHRsZXRpbWVcIl06IFwiVGhyb3R0bGluZ1wiLFxyXG4gICAgICAgIFtcInNsZWVwdGltZVwiXTogXCJTbGVlcFwiLFxyXG4gICAgICAgIFtcImlvdGltZVwiXTogXCJJT1wiXHJcbiAgICB9O1xyXG5cclxuICAgIHJldmlld0JpbmRpbmdzKHVwZGF0ZTogYm9vbGVhbiwgc2VhcmNoVmlld092ZXJyaWRlPywgZGlySW5mb3M/OiBEaXJlY3RvckluZm9zKSB7XHJcbiAgICAgICAgbGV0IHJlZmVyZW5jZSA9IChzZWFyY2hWaWV3T3ZlcnJpZGUgPz8gdGhpcy5zZWFyY2hWaWV3KS5pdGVtc1swXTtcclxuICAgICAgICB0aGlzLlRvcE5vZGVzID0gcmVmZXJlbmNlLnRvcG5vZGVzO1xyXG4gICAgICAgIHRoaXMuVG9wU2Vzc2lvbnMgPSByZWZlcmVuY2UudG9wc2Vzc2lvbnM7XHJcbiAgICAgICAgdGhpcy5EaXJJbmZvcyA9IGRpckluZm9zO1xyXG5cclxuICAgICAgICBpZiAoIXJlZmVyZW5jZS5hY3RzZXNzaW9ucyB8fCByZWZlcmVuY2UuYWN0c2Vzc2lvbnMubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5Ub3BBY3RpdmVTZXNzaW9ucyA9IG51bGw7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBzZXJpZXM6IExpbmVTZXJpZVtdID0gW107ICAgICAgXHJcbiAgICAgICAgbGV0IHByb3BzID0gT2JqZWN0LmtleXMocmVmZXJlbmNlLmFjdHNlc3Npb25zWzBdKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChwcm9wc1tpXSAhPSAnc2FtcGxldGltZScpIHtcclxuICAgICAgICAgICAgICAgIGxldCBzID0gbmV3IExpbmVTZXJpZSh0aGlzLnByb3BlcnRpZXNTZXJpZXNNYXBwaW5nW3Byb3BzW2ldXSwgW10sIG51bGwsIG51bGwsIFwic2Vzc2lvbnNcIik7XHJcbiAgICAgICAgICAgICAgICBzZXJpZXMucHVzaChzKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VyaWVzUHJvcGVydGllc01hcHBpbmdbcHJvcHNbaV1dID0gcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZWZlcmVuY2UuYWN0c2Vzc2lvbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW1yZWYgPSByZWZlcmVuY2UuYWN0c2Vzc2lvbnNbaV07XHJcbiAgICAgICAgICAgIGxldCB0aGVEID0gbmV3IERhdGUoaXRlbXJlZi5zYW1wbGV0aW1lKTtcclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgICAgICBpZiAocHJvcHNbaV0gIT0gJ3NhbXBsZXRpbWUnICYmICghdXBkYXRlIHx8IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odGhlRCkuaXNBZnRlcih0aGlzLkxhc3REYXRhUG9pbnQpKSlcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcmllc1Byb3BlcnRpZXNNYXBwaW5nW3Byb3BzW2ldXS52YWx1ZXMucHVzaChuZXcgRGF0ZVZhbHVlKHRoZUQsIGl0ZW1yZWZbcHJvcHNbaV1dKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodXBkYXRlICYmIHRoaXMuQ2hhcnRJbnN0YW5jZSkge1xyXG4gICAgICAgICAgICBsZXQgZGF0YSA9IG5ldyBMaW5lQ2hhcnREYXRhKHNlcmllcywgbmV3IExpbWl0KGRpckluZm9zPy50aHJlYWRzLCB0aGlzLmxjLmxvYyhcIk1heGltdW0gVGhyZWFkc1wiKSkpO1xyXG4gICAgICAgICAgICBpZiAoc2VyaWVzLnNvbWUodCA9PiB0LnZhbHVlcy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5DaGFydEluc3RhbmNlLmFkZERhdGEoZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkxhc3REYXRhUG9pbnQgPSBzZXJpZXMubWFwKHQgPT4gZGF5anMubWF4KHQudmFsdWVzLm1hcCh2ID0+IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odi5kKSkpKVswXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5Ub3BBY3RpdmVTZXNzaW9ucyA9IG5ldyBMaW5lQ2hhcnREYXRhKHNlcmllcywgbmV3IExpbWl0KGRpckluZm9zPy50aHJlYWRzLCB0aGlzLmxjLmxvYyhcIk1heGltdW0gVGhyZWFkc1wiKSkpO1xyXG4gICAgICAgICAgICB0aGlzLkxhc3REYXRhUG9pbnQgPSBzZXJpZXMubWFwKHQgPT4gZGF5anMubWF4KHQudmFsdWVzLm1hcCh2ID0+IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odi5kKSkpKVswXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI3JlZ2lvbiBHZXN0aW9uZSB1cGRhdGUgYXV0b21hdGljb1xyXG4gICAgdXBkYXRlVGltZXI6IGFueTtcclxuICAgIGF1dG9VcGRhdGVDaGFuZ2VkKCkge1xyXG4gICAgICAgIGlmICghL15bMS05XVxcZCokLy50ZXN0KHRoaXMuc2Vjb25kcykpXHJcbiAgICAgICAgICAgIHRoaXMuc2Vjb25kcyA9ICcxMCc7XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kc0luTXMgPSBwYXJzZUludCh0aGlzLnNlY29uZHMsIG51bGwpICogMTAwMDtcclxuICAgICAgICBpZiAodGhpcy5hdXRvVXBkYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFNlYXJjaChmYWxzZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7IHRoaXMuc2VuZFNlYXJjaChmYWxzZSwgdHJ1ZSk7IH0sIHNlY29uZHNJbk1zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMudXBkYXRlVGltZXIpO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZHJlZ2lvblxyXG5cclxuICAgIHByaXZhdGUgZnJvbTogRGF0ZTtcclxuICAgIHByaXZhdGUgdG86IERhdGU7XHJcblxyXG4gICAgZGF0YVNlbGVjdGlvbkNoYW5nZWQoZXZlbnQ6IHsgZnJvbTogRGF0ZSwgdG86IERhdGUsIGluaXRpYWw6IGJvb2xlYW4gfSkge1xyXG4gICAgICAgIHRoaXMuZnJvbSA9IGV2ZW50LmluaXRpYWwgPyAodGhpcy5zZWFyY2hWaWV3LmZpbHRlcmZyb20gPyB0aGlzLmRhdGVFeHRzLmdldERhdGVDb252ZXJ0aW9uKHRoaXMuc2VhcmNoVmlldy5maWx0ZXJmcm9tKS50b0RhdGUoKSA6IFwiXCIpIDogZXZlbnQuZnJvbTtcclxuICAgICAgICB0aGlzLnRvID0gZXZlbnQuaW5pdGlhbCA/ICh0aGlzLnNlYXJjaFZpZXcuZmlsdGVydG8gPyB0aGlzLmRhdGVFeHRzLmdldERhdGVDb252ZXJ0aW9uKHRoaXMuc2VhcmNoVmlldy5maWx0ZXJ0bykudG9EYXRlKCkgOiBcIlwiKSA6IGV2ZW50LnRvO1xyXG5cclxuICAgICAgICB2YXIgcHNldWRvU2VhcmNoVmlldzogVG9wQWN0aXZpdGllc0RhdGFWaWV3ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNlYXJjaFZpZXcpKTtcclxuICAgICAgICBwc2V1ZG9TZWFyY2hWaWV3LmZpbHRlcmZyb20gPSB0aGlzLmZyb20gPyBkYXlqcyh0aGlzLmZyb20pLmZvcm1hdCh0aGlzLmxjLnRva2VuKFwiZ2V0RnVsbERhdGVEaXNwbGF5Rm9ybWF0XCIpKSA6IFwiXCI7XHJcbiAgICAgICAgcHNldWRvU2VhcmNoVmlldy5maWx0ZXJ0byA9IHRoaXMudG8gPyBkYXlqcyh0aGlzLnRvKS5mb3JtYXQodGhpcy5sYy50b2tlbihcImdldEZ1bGxEYXRlRGlzcGxheUZvcm1hdFwiKSkgOiBcIlwiO1xyXG4gICAgICAgIHRoaXMuc2VuZFNlYXJjaCh0cnVlLCB0cnVlLCBwc2V1ZG9TZWFyY2hWaWV3KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNoYXJ0TG9hZGVkKGNoYXJ0OiBCYXNlQ2hhcnRDb21wb25lbnQpIHtcclxuICAgICAgICB0aGlzLkNoYXJ0SW5zdGFuY2UgPSBjaGFydDtcclxuICAgICAgICBjaGFydC5DaGFydC5ldmVudHMub24oXCJyZWFkeVwiLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICg8YW00Y2hhcnRzLlhZQ2hhcnQ+Y2hhcnQuQ2hhcnQpLnhBeGVzLmVhY2goeCA9PiB4Lnpvb20oeyBzdGFydDogMCwgZW5kOiAxIH0sIHRydWUsIHRydWUpKTtcclxuICAgICAgICAgICAgKDxhbTRjaGFydHMuWFlDaGFydD5jaGFydC5DaGFydCkueUF4ZXMuZWFjaCh5ID0+IHkuem9vbSh7IHN0YXJ0OiAwLCBlbmQ6IDEgfSwgdHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICg8YW00Y2hhcnRzLlhZQ2hhcnQ+Y2hhcnQuQ2hhcnQpLnhBeGVzLmVhY2goeCA9PiB4Lnpvb20oeyBzdGFydDogMCwgZW5kOiAxIH0sIHRydWUsIHRydWUpKTtcclxuICAgICAgICAgICAgICAgICg8YW00Y2hhcnRzLlhZQ2hhcnQ+Y2hhcnQuQ2hhcnQpLnlBeGVzLmVhY2goeSA9PiB5Lnpvb20oeyBzdGFydDogMCwgZW5kOiAxIH0sIHRydWUsIHRydWUpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyA1MDAgbWlsbGlzZWNvbmRpIMOoIHBpw7kgbyBtZW5vIGlsIHRlbXBvIGRpIHByaW1hIGFuaW1hemlvbmUgZGVsIGdyYWZpY28uIEZpbml0byBxdWVzdG8gc2kgcmVzZXR0YSBsbyB6b29tXHJcbiAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYXBwLW92ZXJmbG93LXZpc2libGVcIiB3aWRnZXQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7J1RvcCBBY3Rpdml0aWVzJyB8IGxvY2FsaXplIDogbGN9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiRGlySW5mb3NcIj4mbmJzcDstJm5ic3A7e3snJyArIERpckluZm9zLmNwdXMgKyAnICcgKyAoJ0NQVXMnIHwgbG9jYWxpemUgOiBsYykgKyAoRGlySW5mb3MucnNzcGxhbiA/ICcgLSAnICsgRGlySW5mb3MucnNzcGxhbiA6ICcnKX19PC9zcGFuPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB3aWRnZXQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBhcHAtcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFwcC1maXJzdC1maWx0ZXItbGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRldGltZSBbUmVhZG9ubHldPVwiYXV0b1VwZGF0ZVwiIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyZnJvbVwiIG5hbWU9XCJmaWx0ZXJmcm9tXCIgW1BsYWNlaG9sZGVyXT1cIidGcm9tJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0tZGF0ZXRpbWU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0tZGF0ZXRpbWUgIFtSZWFkb25seV09XCJhdXRvVXBkYXRlXCIgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJ0b1wiIG5hbWU9XCJmaWx0ZXJ0b1wiIFtQbGFjZWhvbGRlcl09XCInVG8nIHwgbG9jYWxpemUgOiBsY1wiPjwvZm9ybS1kYXRldGltZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwic2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzIHx8IGF1dG9VcGRhdGVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFkZG9uIGJ0biBhcHAtYnRuLXNlYXJjaCBhcHAtbWFyZ2luLXRvcC0yMFwiIChjbGljayk9XCJzZW5kU2VhcmNoKClcIiB0eXBlPVwic3VibWl0XCI+PGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIj48L2k+PC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwcC1hYnNvbHV0ZSBhcHAtcmlnaHQtMjUgYXBwLXRvcC00MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdWxsLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J1VwZGF0ZSBldmVyeScgfCBsb2NhbGl6ZSA6IGxjfX0mbmJzcDs8aW5wdXQgW3JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBtYXhsZW5ndGg9XCIzXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYXBwLXVwZGV2ZXJ5LWlucHV0XCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlY29uZHNcIiBuYW1lPVwic2Vjc1wiIC8+Jm5ic3A7e3snc2Vjb25kL3MnIHwgbG9jYWxpemUgOiBsY319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1bGwtcmlnaHQgbS10LTIgYXBwLW1hcmdpbi1yaWdodC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwiYXV0b1VwZGF0ZVwiIChuZ01vZGVsQ2hhbmdlKT1cImF1dG9VcGRhdGVDaGFuZ2VkKCk7XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZXIgcm91bmRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGFwcC1tYXJnaW4tdG9wLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCIhc2VhcmNoVmlld1wiPjxlbT57eydMb2FkaW5nIERhdGEnIHwgbG9jYWxpemUgOiBsY319PC9lbT48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hWaWV3XCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgYXBwLW5vLXBhZGRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMjkwcHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVzLWxpbmUtY2hhcnQgKm5nSWY9XCJUb3BBY3RpdmVTZXNzaW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtNaW5HcmlkRGlzdGFuY2VdPVwiNjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbVGltZWxpbmVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRmluYWxJbnN0YW50c109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtMZWdlbmRQYWRkaW5nXT1cInt0b3A6IDAsIGJvdHRvbTogNywgcmlnaHQ6IDAsIGxlZnQ6IDEwfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtGaWxsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTWVyZ2VEYXRhc2V0c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RhdGFdPVwiVG9wQWN0aXZlU2Vzc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTGVnZW5kXT1cInRydWVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRvcGFjdHNlc3Npb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRGF0YUdyb3VwaW5nVGhyZXNob2xkXT1cIjk5OTk5OTk5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJkYXRhU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCIgKGNoYXJ0TG9hZGVkKT1cIm9uQ2hhcnRMb2FkZWQoJGV2ZW50KVwiPjwvZXMtbGluZS1jaGFydD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1Pnt7J1RvcCBOb2RlcycgfCBsb2NhbGl6ZSA6IGxjfX08L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlcy10YWJsZSBbKG5nTW9kZWwpXT1cIlRvcE5vZGVzXCIgW0hpZGVQYWdpbmddPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImFwcC1jb2wtbWluXCI+e3snTm9kZScgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7J05vZGUgRGVzY3JpcHRpb24nIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImFwcC1jb2wtbWluXCI+e3snQWN0aXZpdHknIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImFwcC1jb2wtbWluIGFwcC1ub3dyYXBcIj57eydOb2RlIFR5cGUnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImFwcC1jb2wtbWluIGFwcC1ub3dyYXBcIj57eydXYWl0IENsYXNzIE5hbWUnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNib2R5IGxldC1ub2RlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXBwLWNvbC1taW5cIj48c3BhbiBjbGFzcz1cImFwcC1saW5rXCIgKGNsaWNrKT1cImxvYWROb2RlRGV0YWlscyhub2RlLnByb2Zub2RlaWQpOyBkbGdOb2RlRGV0YWlscy5zaG93KCk7XCI+e3tub2RlLnByb2Zub2RlaWR9fTwvc3Bhbj48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzcGFuIHRpdGxlPVwie3tub2RlLnByb2Zub2RlZGVzY319XCI+e3tub2RlLnByb2Zub2RlZGVzYy5sZW5ndGggPiA0MCA/IG5vZGUucHJvZm5vZGVkZXNjLnN1YnN0cigwLDQwKSArIFwiLi4uXCIgOiBub2RlLnByb2Zub2RlZGVzY319PC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3tub2RlLmFjdGl2aXR5IHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e25vZGUubm9kZXR5cGVuYW1lfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7bm9kZS53YWl0Y2xhc3NuYW1lfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXMtdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNT57eydUb3AgU2Vzc2lvbnMnIHwgbG9jYWxpemUgOiBsY319PC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXMtdGFibGUgWyhuZ01vZGVsKV09XCJUb3BTZXNzaW9uc1wiIFtIaWRlUGFnaW5nXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJhcHAtY29sLW1pblwiPklEPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57eydVc2VyJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3snVGVuYW50JyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3snUHJvY2VzcycgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7J0FjdGl2aXR5JyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+Q3B1PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5XYWl0PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5EQjwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+U2NyaXB0PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5UaHJvdHRsZTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+U2xlZXA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPk5ldHdvcmtpbmc8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPklPPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYm9keSBsZXQtc2Vzc2lvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3Ryb25nPnt7c2Vzc2lvbi5zaWR9fTwvc3Ryb25nPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLnVzZXJ9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLnRlbmFudH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24uYmdwcm9jZXNzfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5hY3Rpdml0eSB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLmNwdSB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLndhaXQgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5kYiB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLnNjcmlwdCB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLnRocm90dGxlIHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24uc2xlZXAgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5uZXQgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5pbyB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9lcy10YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsZWFyZml4XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBic01vZGFsICNkbGdOb2RlRGV0YWlscz1cImJzLW1vZGFsXCIgY2xhc3M9XCJtb2RhbCBmYWRlXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgPG5vZGUtZGV0YWlsICpuZ0lmPVwiTm9kZURldGFpbHNcIiBbTm9kZURldGFpbHNdPVwiTm9kZURldGFpbHNcIiAob25DbG9zZSk9XCJkbGdOb2RlRGV0YWlscy5oaWRlKClcIj48L25vZGUtZGV0YWlsPlxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class NodeStats {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZVN0YXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRtaW4tbW9kdWxlL3NyYy9saWIvbW9kZWxzL2NvbXBvbmVudHMvTm9kZVN0YXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxTQUFTO0NBcUJyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVWYWx1ZSwgTGluZUNoYXJ0RGF0YSwgUGllQ2hhcnREYXRhIH0gZnJvbSBcIkBlc2ZhZW56YS9lcy1jaGFydHNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBOb2RlU3RhdHMge1xyXG4gICAgbm9kZWlkOiBzdHJpbmc7XHJcbiAgICBub2RlZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIGV2ZW50dHlwZWRlc2M6IHN0cmluZztcclxuICAgIHdhaXRjbGFzc25hbWU6IHN0cmluZztcclxuICAgIGFjdGl2ZXNlc3Npb25zOiBEYXRlVmFsdWVbXTtcclxuICAgIGV4ZWN1dGlvbnM6IG51bWJlcjtcclxuICAgIGVsYXBzZWQ6IG51bWJlcjtcclxuICAgIGVsYXBzZWRsZXNzY2hpbGRyZW46IG51bWJlcjtcclxuICAgIGNwdXBlcmM6IG51bWJlcjtcclxuICAgIHdhaXRwZXJjOiBudW1iZXI7XHJcbiAgICBkYnBlcmM6IG51bWJlcjtcclxuICAgIHNjcmlwdHBlcmM6IG51bWJlcjtcclxuICAgIGlvcGVyYzogbnVtYmVyO1xyXG4gICAgbmV0d29ya3BlcmM6IG51bWJlcjtcclxuICAgIHRocm90dGxlcGVyYzogbnVtYmVyO1xyXG4gICAgc2xlZXBwZXJjOiBudW1iZXI7XHJcblxyXG4gICAgLy8gU29sbyB1aVxyXG4gICAgc2Vzc2lvbmNoYXJ0OiBMaW5lQ2hhcnREYXRhO1xyXG4gICAgbG9hZGNoYXJ0OiBQaWVDaGFydERhdGE7XHJcbn0iXX0=
|
|
@@ -15,6 +15,8 @@ export const ProfilerDataNode_loc = {
|
|
|
15
15
|
'Min. Time for Period': { 'en-US': "Min. Time for Period", 'it-IT': "Tempo Min Periodo" },
|
|
16
16
|
'Avg. Time for Period': { 'en-US': "Avg. Time for Period", 'it-IT': "Tempo Medio Periodo" },
|
|
17
17
|
'Specific Time for Period': { 'en-US': "Specific Time for Period", 'it-IT': "Tempo Specifico Periodo" },
|
|
18
|
-
'Percentage for Period': { 'en-US': "Percentage for Period", 'it-IT': "Percentuale Periodo" }
|
|
18
|
+
'Percentage for Period': { 'en-US': "Percentage for Period", 'it-IT': "Percentuale Periodo" },
|
|
19
|
+
'Event Type Name': { 'en-US': "Event Type Name", 'it-IT': "Nome Tipologia Evento" },
|
|
20
|
+
'Wait Class Name': { 'en-US': "Wait Class Name", 'it-IT': "Nome Classe Attesa" }
|
|
19
21
|
};
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvZmlsZXJEYXRhTm9kZS5sb2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9tb2RlbHMvY29tcG9uZW50cy9Qcm9maWxlckRhdGFOb2RlLmxvYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNoQyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUU7SUFDMUQsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO0lBQ3RDLGFBQWEsRUFBRSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRTtJQUNqRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUU7SUFDbEQsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFO0lBQzdDLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRTtJQUMzRCxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUU7SUFDM0QsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFO0lBQzdELGVBQWUsRUFBRSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFO0lBQ3pFLFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRTtJQUMvRCxrQkFBa0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUU7SUFDaEYsaUJBQWlCLEVBQUUsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRTtJQUMzRSxzQkFBc0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUU7SUFDekYsc0JBQXNCLEVBQUUsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFO0lBQ3pGLHNCQUFzQixFQUFFLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRTtJQUMzRiwwQkFBMEIsRUFBRSxFQUFFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUU7SUFDdkcsdUJBQXVCLEVBQUUsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFO0lBQzdGLGlCQUFpQixFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRTtJQUNuRixpQkFBaUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUU7Q0FDbkYsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBQcm9maWxlckRhdGFOb2RlX2xvYyA9IHtcclxuICAgICdQYXJlbnQgSUQnOiB7ICdlbi1VUyc6IFwiUGFyZW50IElEXCIsICdpdC1JVCc6IFwiSUQgUGFkcmVcIiB9LFxyXG4gICAgJ0lEJzogeyAnZW4tVVMnOiBcIklEXCIsICdpdC1JVCc6IFwiSURcIiB9LFxyXG4gICAgJ0Rlc2NyaXB0aW9uJzogeyAnZW4tVVMnOiBcIkRlc2NyaXB0aW9uXCIsICdpdC1JVCc6IFwiRGVzY3JpemlvbmVcIiB9LFxyXG4gICAgJ0NhbGxzJzogeyAnZW4tVVMnOiBcIkNhbGxzXCIsICdpdC1JVCc6IFwiQ2hpYW1hdGVcIiB9LFxyXG4gICAgJ1RpbWUnOiB7ICdlbi1VUyc6IFwiVGltZVwiLCAnaXQtSVQnOiBcIlRlbXBvXCIgfSxcclxuICAgICdQZWFrIFRpbWUnOiB7ICdlbi1VUyc6IFwiUGVhayBUaW1lXCIsICdpdC1JVCc6IFwiVGVtcG8gTWF4XCIgfSxcclxuICAgICdNaW4uIFRpbWUnOiB7ICdlbi1VUyc6IFwiTWluLiBUaW1lXCIsICdpdC1JVCc6IFwiVGVtcG8gTWluXCIgfSxcclxuICAgICdBdmcuIFRpbWUnOiB7ICdlbi1VUyc6IFwiQXZnLiBUaW1lXCIsICdpdC1JVCc6IFwiVGVtcG8gTWVkaW9cIiB9LFxyXG4gICAgJ1NwZWNpZmljIFRpbWUnOiB7ICdlbi1VUyc6IFwiU3BlY2lmaWMgVGltZVwiLCAnaXQtSVQnOiBcIlRlbXBvIFNwZWNpZmljb1wiIH0sXHJcbiAgICAnUGVyY2VudGFnZSc6IHsgJ2VuLVVTJzogXCJQZXJjZW50YWdlXCIsICdpdC1JVCc6IFwiUGVyY2VudHVhbGVcIiB9LFxyXG4gICAgJ0NhbGxzIGZvciBQZXJpb2QnOiB7ICdlbi1VUyc6IFwiQ2FsbHMgZm9yIFBlcmlvZFwiLCAnaXQtSVQnOiBcIkNoaWFtYXRlIFBlcmlvZG9cIiB9LFxyXG4gICAgJ1RpbWUgZm9yIFBlcmlvZCc6IHsgJ2VuLVVTJzogXCJUaW1lIGZvciBQZXJpb2RcIiwgJ2l0LUlUJzogXCJUZW1wbyBQZXJpb2RvXCIgfSxcclxuICAgICdQZWFrIFRpbWUgZm9yIFBlcmlvZCc6IHsgJ2VuLVVTJzogXCJQZWFrIFRpbWUgZm9yIFBlcmlvZFwiLCAnaXQtSVQnOiBcIlRlbXBvIE1heCBQZXJpb2RvXCIgfSxcclxuICAgICdNaW4uIFRpbWUgZm9yIFBlcmlvZCc6IHsgJ2VuLVVTJzogXCJNaW4uIFRpbWUgZm9yIFBlcmlvZFwiLCAnaXQtSVQnOiBcIlRlbXBvIE1pbiBQZXJpb2RvXCIgfSxcclxuICAgICdBdmcuIFRpbWUgZm9yIFBlcmlvZCc6IHsgJ2VuLVVTJzogXCJBdmcuIFRpbWUgZm9yIFBlcmlvZFwiLCAnaXQtSVQnOiBcIlRlbXBvIE1lZGlvIFBlcmlvZG9cIiB9LFxyXG4gICAgJ1NwZWNpZmljIFRpbWUgZm9yIFBlcmlvZCc6IHsgJ2VuLVVTJzogXCJTcGVjaWZpYyBUaW1lIGZvciBQZXJpb2RcIiwgJ2l0LUlUJzogXCJUZW1wbyBTcGVjaWZpY28gUGVyaW9kb1wiIH0sXHJcbiAgICAnUGVyY2VudGFnZSBmb3IgUGVyaW9kJzogeyAnZW4tVVMnOiBcIlBlcmNlbnRhZ2UgZm9yIFBlcmlvZFwiLCAnaXQtSVQnOiBcIlBlcmNlbnR1YWxlIFBlcmlvZG9cIiB9LFxyXG4gICAgJ0V2ZW50IFR5cGUgTmFtZSc6IHsgJ2VuLVVTJzogXCJFdmVudCBUeXBlIE5hbWVcIiwgJ2l0LUlUJzogXCJOb21lIFRpcG9sb2dpYSBFdmVudG9cIiB9LFxyXG4gICAgJ1dhaXQgQ2xhc3MgTmFtZSc6IHsgJ2VuLVVTJzogXCJXYWl0IENsYXNzIE5hbWVcIiwgJ2l0LUlUJzogXCJOb21lIENsYXNzZSBBdHRlc2FcIiB9XHJcbn0iXX0=
|
|
@@ -73,4 +73,12 @@ __decorate([
|
|
|
73
73
|
Export(170, ProfilerDataNode_loc["Percentage for Period"][Locale]),
|
|
74
74
|
autoserialize
|
|
75
75
|
], ProfilerDataNode.prototype, "snappercentage", void 0);
|
|
76
|
-
|
|
76
|
+
__decorate([
|
|
77
|
+
Export(180, ProfilerDataNode_loc["Event Type Name"][Locale]),
|
|
78
|
+
autoserialize
|
|
79
|
+
], ProfilerDataNode.prototype, "eventtypename", void 0);
|
|
80
|
+
__decorate([
|
|
81
|
+
Export(190, ProfilerDataNode_loc["Wait Class Name"][Locale]),
|
|
82
|
+
autoserialize
|
|
83
|
+
], ProfilerDataNode.prototype, "waitclassname", void 0);
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvZmlsZXJEYXRhTm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL21vZGVscy9jb21wb25lbnRzL1Byb2ZpbGVyRGF0YU5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU5RCxNQUFNLE9BQU8sZ0JBQWdCO0NBdUM1QjtBQXJDa0I7SUFEZCxNQUFNLENBQUMsRUFBRSxFQUFFLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELGFBQWE7a0RBQWtCO0FBRWpCO0lBRGQsTUFBTSxDQUFDLEVBQUUsRUFBRSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QyxhQUFhOzRDQUFZO0FBRVg7SUFEZCxNQUFNLENBQUMsRUFBRSxFQUFFLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZELGFBQWE7cURBQXFCO0FBRXBCO0lBRGQsTUFBTSxDQUFDLEVBQUUsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRCxhQUFhOytDQUFlO0FBRWQ7SUFEZCxNQUFNLENBQUMsRUFBRSxFQUFFLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hELGFBQWE7OENBQWM7QUFFYjtJQURkLE1BQU0sQ0FBQyxFQUFFLEVBQUUsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckQsYUFBYTtrREFBa0I7QUFFakI7SUFEZCxNQUFNLENBQUMsRUFBRSxFQUFFLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELGFBQWE7aURBQWlCO0FBRWhCO0lBRGQsTUFBTSxDQUFDLEVBQUUsRUFBRSxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyRCxhQUFhO2lEQUFpQjtBQUVoQjtJQURkLE1BQU0sQ0FBQyxFQUFFLEVBQUUsb0JBQW9CLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekQsYUFBYTs2REFBNkI7QUFFNUI7SUFEZCxNQUFNLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZELGFBQWE7b0RBQW9CO0FBRW5CO0lBRGQsTUFBTSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELGFBQWE7d0RBQXdCO0FBRXZCO0lBRGQsTUFBTSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELGFBQWE7dURBQXVCO0FBRXRCO0lBRGQsTUFBTSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pFLGFBQWE7c0RBQXNCO0FBRXJCO0lBRGQsTUFBTSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pFLGFBQWE7cURBQXFCO0FBRXBCO0lBRGQsTUFBTSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pFLGFBQWE7cURBQXFCO0FBRXBCO0lBRGQsTUFBTSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JFLGFBQWE7aUVBQWlDO0FBRWhDO0lBRGQsTUFBTSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xFLGFBQWE7d0RBQXdCO0FBRXZCO0lBRGQsTUFBTSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELGFBQWE7dURBQXVCO0FBRXRCO0lBRGQsTUFBTSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELGFBQWE7dURBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXV0b3NlcmlhbGl6ZSB9IGZyb20gXCJjZXJpYWxpemVcIjtcclxuaW1wb3J0IHsgRXhwb3J0IH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcblxyXG5pbXBvcnQgeyBMb2NhbGUgfSBmcm9tIFwiLi4vc2hhcmVkL0xvY2FsZVwiO1xyXG5pbXBvcnQgeyBQcm9maWxlckRhdGFOb2RlX2xvYyB9IGZyb20gXCIuL1Byb2ZpbGVyRGF0YU5vZGUubG9jXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgUHJvZmlsZXJEYXRhTm9kZSB7XHJcbiAgICBARXhwb3J0KDEwLCBQcm9maWxlckRhdGFOb2RlX2xvY1tcIlBhcmVudCBJRFwiXVtMb2NhbGVdKVxyXG4gICAgQGF1dG9zZXJpYWxpemUgcGFyZW50aWQ6IHN0cmluZztcclxuICAgIEBFeHBvcnQoMjAsIFByb2ZpbGVyRGF0YU5vZGVfbG9jW1wiSURcIl1bTG9jYWxlXSlcclxuICAgIEBhdXRvc2VyaWFsaXplIGlkOiBzdHJpbmc7XHJcbiAgICBARXhwb3J0KDMwLCBQcm9maWxlckRhdGFOb2RlX2xvY1tcIkRlc2NyaXB0aW9uXCJdW0xvY2FsZV0pXHJcbiAgICBAYXV0b3NlcmlhbGl6ZSBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gICAgQEV4cG9ydCg0MCwgUHJvZmlsZXJEYXRhTm9kZV9sb2NbXCJDYWxsc1wiXVtMb2NhbGVdKVxyXG4gICAgQGF1dG9zZXJpYWxpemUgY2FsbHM6IG51bWJlcjtcclxuICAgIEBFeHBvcnQoNTAsIFByb2ZpbGVyRGF0YU5vZGVfbG9jW1wiVGltZVwiXVtMb2NhbGVdKVxyXG4gICAgQGF1dG9zZXJpYWxpemUgdGltZTogbnVtYmVyO1xyXG4gICAgQEV4cG9ydCg2MCwgUHJvZmlsZXJEYXRhTm9kZV9sb2NbXCJQZWFrIFRpbWVcIl1bTG9jYWxlXSlcclxuICAgIEBhdXRvc2VyaWFsaXplIHBlYWt0aW1lOiBudW1iZXI7XHJcbiAgICBARXhwb3J0KDcwLCBQcm9maWxlckRhdGFOb2RlX2xvY1tcIk1pbi4gVGltZVwiXVtMb2NhbGVdKVxyXG4gICAgQGF1dG9zZXJpYWxpemUgbWludGltZTogbnVtYmVyO1xyXG4gICAgQEV4cG9ydCg4MCwgUHJvZmlsZXJEYXRhTm9kZV9sb2NbXCJBdmcuIFRpbWVcIl1bTG9jYWxlXSlcclxuICAgIEBhdXRvc2VyaWFsaXplIGF2Z3RpbWU6IG51bWJlcjtcclxuICAgIEBFeHBvcnQoOTAsIFByb2ZpbGVyRGF0YU5vZGVfbG9jW1wiU3BlY2lmaWMgVGltZVwiXVtMb2NhbGVdKVxyXG4gICAgQGF1dG9zZXJpYWxpemUgdGltZXdpdGhvdXRjaGlsZHJlbjogbnVtYmVyO1xyXG4gICAgQEV4cG9ydCgxMDAsIFByb2ZpbGVyRGF0YU5vZGVfbG9jW1wiUGVyY2VudGFnZVwiXVtMb2NhbGVdKVxyXG4gICAgQGF1dG9zZXJpYWxpemUgcGVyY2VudGFnZTogbnVtYmVyO1xyXG4gICAgQEV4cG9ydCgxMTAsIFByb2ZpbGVyRGF0YU5vZGVfbG9jW1wiQ2FsbHMgZm9yIFBlcmlvZFwiXVtMb2NhbGVdKVxyXG4gICAgQGF1dG9zZXJpYWxpemUgc25hcGRlbHRhY2FsbHM6IG51bWJlcjtcclxuICAgIEBFeHBvcnQoMTIwLCBQcm9maWxlckRhdGFOb2RlX2xvY1tcIlRpbWUgZm9yIFBlcmlvZFwiXVtMb2NhbGVdKVxyXG4gICAgQGF1dG9zZXJpYWxpemUgc25hcGRlbHRhdGltZTogbnVtYmVyO1xyXG4gICAgQEV4cG9ydCgxMzAsIFByb2ZpbGVyRGF0YU5vZGVfbG9jW1wiUGVhayBUaW1lIGZvciBQZXJpb2RcIl1bTG9jYWxlXSlcclxuICAgIEBhdXRvc2VyaWFsaXplIHNuYXBwZWFrdGltZTogbnVtYmVyO1xyXG4gICAgQEV4cG9ydCgxNDAsIFByb2ZpbGVyRGF0YU5vZGVfbG9jW1wiTWluLiBUaW1lIGZvciBQZXJpb2RcIl1bTG9jYWxlXSlcclxuICAgIEBhdXRvc2VyaWFsaXplIHNuYXBtaW50aW1lOiBudW1iZXI7XHJcbiAgICBARXhwb3J0KDE1MCwgUHJvZmlsZXJEYXRhTm9kZV9sb2NbXCJBdmcuIFRpbWUgZm9yIFBlcmlvZFwiXVtMb2NhbGVdKVxyXG4gICAgQGF1dG9zZXJpYWxpemUgc25hcGF2Z3RpbWU6IG51bWJlcjtcclxuICAgIEBFeHBvcnQoMTYwLCBQcm9maWxlckRhdGFOb2RlX2xvY1tcIlNwZWNpZmljIFRpbWUgZm9yIFBlcmlvZFwiXVtMb2NhbGVdKVxyXG4gICAgQGF1dG9zZXJpYWxpemUgc25hcHRpbWV3aXRob3V0Y2hpbGRyZW46IG51bWJlcjtcclxuICAgIEBFeHBvcnQoMTcwLCBQcm9maWxlckRhdGFOb2RlX2xvY1tcIlBlcmNlbnRhZ2UgZm9yIFBlcmlvZFwiXVtMb2NhbGVdKVxyXG4gICAgQGF1dG9zZXJpYWxpemUgc25hcHBlcmNlbnRhZ2U6IG51bWJlcjtcclxuICAgIEBFeHBvcnQoMTgwLCBQcm9maWxlckRhdGFOb2RlX2xvY1tcIkV2ZW50IFR5cGUgTmFtZVwiXVtMb2NhbGVdKVxyXG4gICAgQGF1dG9zZXJpYWxpemUgZXZlbnR0eXBlbmFtZTogc3RyaW5nO1xyXG4gICAgQEV4cG9ydCgxOTAsIFByb2ZpbGVyRGF0YU5vZGVfbG9jW1wiV2FpdCBDbGFzcyBOYW1lXCJdW0xvY2FsZV0pXHJcbiAgICBAYXV0b3NlcmlhbGl6ZSB3YWl0Y2xhc3NuYW1lOiBzdHJpbmc7XHJcbn0iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export class TopNode {
|
|
2
2
|
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9wTm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL21vZGVscy9jb21wb25lbnRzL1RvcE5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLE9BQU87Q0FNbkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVG9wTm9kZSB7XHJcbiAgICBhY3Rpdml0eTogbnVtYmVyO1xyXG4gICAgcHJvZm5vZGVpZDogc3RyaW5nO1xyXG4gICAgbm9kZXR5cGVuYW1lOiBzdHJpbmc7XHJcbiAgICBwcm9mbm9kZWRlc2M6IHN0cmluZztcclxuICAgIHdhaXRjbGFzc25hbWU6IHN0cmluZztcclxufSJdfQ==
|
|
@@ -16,6 +16,7 @@ export const Repository = {
|
|
|
16
16
|
GET_Adm_KillProcess: "/api/Adm/KillProcess",
|
|
17
17
|
GET_Adm_SetProcessTracing: "/api/Adm/SetProcessTracing",
|
|
18
18
|
GET_Adm_StartWorker: "/api/Adm/StartWorker",
|
|
19
|
-
GET_Adm_StopWorker: "/api/Adm/StopWorker"
|
|
19
|
+
GET_Adm_StopWorker: "/api/Adm/StopWorker",
|
|
20
|
+
GET_Adm_GetNodeStats: "/api/Adm/GetNodeStats",
|
|
20
21
|
};
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL21vZGVscy9leHRlcm5hbHMvUmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDdEIsa0NBQWtDLEVBQUUscUNBQXFDO0lBQ3pFLHNCQUFzQixFQUFFLHlCQUF5QjtJQUNqRCx5QkFBeUIsRUFBRSxrQ0FBa0M7SUFDN0QsZ0JBQWdCLEVBQUUsbUJBQW1CO0lBQ3JDLGtCQUFrQixFQUFFLHFCQUFxQjtJQUN6QyxtQkFBbUIsRUFBRSxxQkFBcUI7SUFDMUMsNkJBQTZCLEVBQUUsK0JBQStCO0lBQzlELHdCQUF3QixFQUFFLDBCQUEwQjtJQUNwRCx1QkFBdUIsRUFBRSx5QkFBeUI7SUFDbEQscUJBQXFCLEVBQUUsd0JBQXdCO0lBQy9DLHlCQUF5QixFQUFFLDJCQUEyQjtJQUN0RCx5QkFBeUIsRUFBRSwyQkFBMkI7SUFDdEQsdUJBQXVCLEVBQUUsMEJBQTBCO0lBQ25ELGlDQUFpQyxFQUFFLG9DQUFvQztJQUN2RSxtQkFBbUIsRUFBRSxzQkFBc0I7SUFDM0MseUJBQXlCLEVBQUUsNEJBQTRCO0lBQ3ZELG1CQUFtQixFQUFFLHNCQUFzQjtJQUMzQyxrQkFBa0IsRUFBRSxxQkFBcUI7SUFDekMsb0JBQW9CLEVBQUUsdUJBQXVCO0NBQ2hELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUmVwb3NpdG9yeSA9IHtcclxuICAgIEdFVF9BZG1fQ2hhbmdlUHJvY2Vzc0NvbnN1bWVyR3JvdXA6IFwiL2FwaS9BZG0vQ2hhbmdlUHJvY2Vzc0NvbnN1bWVyR3JvdXBcIixcclxuICAgIEdFVF9BZG1fQ2xlYXJBbGxDYWNoZXM6IFwiL2FwaS9BZG0vQ2xlYXJBbGxDYWNoZXNcIixcclxuICAgIEdFVF9BZG1fR2V0Q29uc3VtZXJHcm91cHM6IFwiL2FwaS9BZG0vR2V0Q29uc3VtZXJHcm91cHMjY2FjaGVcIixcclxuICAgIEdFVF9BZG1fR2V0SW5mb3M6IFwiL2FwaS9BZG0vR2V0SW5mb3NcIixcclxuICAgIEdFVF9BZG1fR2V0TWV0cmljczogXCIvYXBpL0FkbS9HZXRNZXRyaWNzXCIsXHJcbiAgICBQT1NUX0FkbV9HZXRNZXRyaWNzOiBcIi9hcGkvQWRtL0dldE1ldHJpY3NcIixcclxuICAgIFBPU1RfQWRtX0dldFByb2ZpbGVyRGF0YU5vZGVzOiBcIi9hcGkvQWRtL0dldFByb2ZpbGVyRGF0YU5vZGVzXCIsXHJcbiAgICBQT1NUX0FkbV9HZXRTZXJ2ZXJBdWRpdHM6IFwiL2FwaS9BZG0vR2V0U2VydmVyQXVkaXRzXCIsXHJcbiAgICBQT1NUX0FkbV9HZXRTZXJ2ZXJMb2NrczogXCIvYXBpL0FkbS9HZXRTZXJ2ZXJMb2Nrc1wiLFxyXG4gICAgR0VUX0FkbV9HZXRTZXJ2ZXJMb2dzOiBcIi9hcGkvQWRtL0dldFNlcnZlckxvZ3NcIixcclxuICAgIFBPU1RfQWRtX0dldFNlcnZlcldvcmtlcnM6IFwiL2FwaS9BZG0vR2V0U2VydmVyV29ya2Vyc1wiLFxyXG4gICAgUE9TVF9BZG1fR2V0VG9wQWN0aXZpdGllczogXCIvYXBpL0FkbS9HZXRUb3BBY3Rpdml0aWVzXCIsXHJcbiAgICBHRVRfQWRtX0dldFdvcmtlclN0YXR1czogXCIvYXBpL0FkbS9HZXRXb3JrZXJTdGF0dXNcIixcclxuICAgIEdFVF9BZG1fSW52YWxpZGF0ZVNlcnZlclNpZGVDYWNoZTogXCIvYXBpL0FkbS9JbnZhbGlkYXRlU2VydmVyU2lkZUNhY2hlXCIsXHJcbiAgICBHRVRfQWRtX0tpbGxQcm9jZXNzOiBcIi9hcGkvQWRtL0tpbGxQcm9jZXNzXCIsXHJcbiAgICBHRVRfQWRtX1NldFByb2Nlc3NUcmFjaW5nOiBcIi9hcGkvQWRtL1NldFByb2Nlc3NUcmFjaW5nXCIsXHJcbiAgICBHRVRfQWRtX1N0YXJ0V29ya2VyOiBcIi9hcGkvQWRtL1N0YXJ0V29ya2VyXCIsXHJcbiAgICBHRVRfQWRtX1N0b3BXb3JrZXI6IFwiL2FwaS9BZG0vU3RvcFdvcmtlclwiLFxyXG4gICAgR0VUX0FkbV9HZXROb2RlU3RhdHM6IFwiL2FwaS9BZG0vR2V0Tm9kZVN0YXRzXCIsXHJcbn0iXX0=
|