@esfaenza/admin-module 13.1.0-beta11 → 13.1.0-beta15

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.
@@ -58,8 +58,7 @@ export class AdmProfilerComponent {
58
58
  }
59
59
  else {
60
60
  this.searchView = new ProfilerDataNodesView();
61
- //Per fare un primo giro di binding sulla View che serve a valorizzare le colonne del modello anche per la prima chiamata
62
- setTimeout(() => this.sendSearch());
61
+ this.sendSearch();
63
62
  }
64
63
  }
65
64
  ngOnDestroy() {
@@ -92,14 +91,14 @@ export class AdmProfilerComponent {
92
91
  AdmProfilerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AdmProfilerComponent, deps: [{ token: i1.ExportService }, { token: i2.LocalizationService }, { token: i3.PreferencesService }, { token: i4.Location }, { token: i5.BaseModuleCommunicationsConsumer }, { token: i6.HTTPService }, { token: i7.ActivatedRoute }, { token: ADM_BACKEND_URL }], target: i0.ɵɵFactoryTarget.Component });
93
92
  AdmProfilerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: AdmProfilerComponent, selector: "adm_profiler", providers: [
94
93
  { provide: LocalizationService, useClass: AdmProfilerComponentLoc }
95
- ], 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\">{{'Profiler Search' | localize : lc}}</span>&nbsp;\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\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-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\"></form-date>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" 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 </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [Hierarchy]=\"true\" [UseCustomCells]=\"true\" [ParentKey]=\"'parentid'\" [OwnKey]=\"'id'\" [StartsExpanded]=\"false\"\r\n [ExportFunction]=\"prepareExport.bind(this)\" [Export]=\"true\" [ExportFileName]=\"'Profiler Export.csv'\" [HidePaging]=\"true\"\r\n (onSearchRequest)=\"sendSearch($event);\">\r\n <ng-template #header>\r\n <th es-th=\"1\" class=\"app-nowrap\">{{'ID' | localize : lc}}</th>\r\n <th es-th=\"2\" class=\"app-nowrap\">{{'Description' | localize : lc}}</th>\r\n <th es-th=\"3\" class=\"app-nowrap\">{{'Calls' | localize : lc}}</th>\r\n <th es-th=\"4\" class=\"app-nowrap\">{{'Time' | localize : lc}}</th>\r\n <th es-th=\"5\" class=\"app-nowrap\">{{'Peak Time' | localize : lc}}</th>\r\n <th es-th=\"6\" class=\"app-nowrap\">{{'Min. Time' | localize : lc}}</th>\r\n <th es-th=\"7\" class=\"app-nowrap\">{{'Avg. Time' | localize : lc}}</th>\r\n <th es-th=\"8\" class=\"app-nowrap\">{{'Specific Time' | localize : lc}}</th>\r\n <th es-th=\"9\" class=\"app-nowrap\">{{'Percentage' | localize : lc}}</th>\r\n <th es-th=\"10\" class=\"app-nowrap\">{{'Calls for Period' | localize : lc}}</th>\r\n <th es-th=\"11\" class=\"app-nowrap\">{{'Time for Period' | localize : lc}}</th>\r\n <th es-th=\"12\" class=\"app-nowrap\">{{'Peak Time for Period' | localize : lc}}</th>\r\n <th es-th=\"13\" class=\"app-nowrap\">{{'Min. Time for Period' | localize : lc}}</th>\r\n <th es-th=\"14\" class=\"app-nowrap\">{{'Avg. Time for Period' | localize : lc}}</th>\r\n <th es-th=\"15\" class=\"app-nowrap\">{{'Specific Time for Period' | localize : lc}}</th>\r\n <th es-th=\"16\" class=\"app-nowrap\">{{'Percentage for Period' | localize : lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-item>\r\n <td es-td=\"1\" class=\"app-nowrap\">{{item.id}}</td>\r\n <td es-td=\"2\" class=\"app-nowrap\"><span title=\"{{item.description}}\">{{item.description.length <= 50 ? item.description : item.description.substr(0,50) + \"[...]\"}}</span></td>\r\n <td es-td=\"3\" class=\"app-nowrap\">{{item.calls}}</td>\r\n <td es-td=\"4\" class=\"app-nowrap\">{{item.time}}</td>\r\n <td es-td=\"5\" class=\"app-nowrap\">{{item.peaktime}}</td>\r\n <td es-td=\"6\" class=\"app-nowrap\">{{item.mintime}}</td>\r\n <td es-td=\"7\" class=\"app-nowrap\">{{item.avgtime}}</td>\r\n <td es-td=\"8\" class=\"app-nowrap\">{{item.timewithoutchildren}}</td>\r\n <td es-td=\"9\" class=\"app-nowrap\">{{item.percentage}}</td>\r\n <td es-td=\"10\" class=\"app-nowrap\">{{item.snapdeltacalls}}</td>\r\n <td es-td=\"11\" class=\"app-nowrap\">{{item.snapdeltatime}}</td>\r\n <td es-td=\"12\" class=\"app-nowrap\">{{item.snappeaktime}}</td>\r\n <td es-td=\"13\" class=\"app-nowrap\">{{item.snapmintime}}</td>\r\n <td es-td=\"14\" class=\"app-nowrap\">{{item.snapavgtime}}</td>\r\n <td es-td=\"15\" class=\"app-nowrap\">{{item.snaptimewithoutchildren}}</td>\r\n <td es-td=\"16\" class=\"app-nowrap\">{{item.snappercentage}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", components: [{ type: i8.FormDateComponent, selector: "form-date", inputs: ["JsDates"] }, { type: i9.EsTableComponent, selector: "es-table", inputs: ["CornerMenuOptions", "ColumnsResizable", "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: 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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "localize": i2.LocalizePipe } });
94
+ ], 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\">{{'Profiler Search' | localize : lc}}</span>&nbsp;\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\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-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\"></form-date>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" 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 </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [Hierarchy]=\"true\" [OrderByColumn]=\"false\" [ParentKey]=\"'parentid'\"\r\n [OwnKey]=\"'id'\" [StartsExpanded]=\"false\" [ExportFunction]=\"prepareExport.bind(this)\" [Export]=\"true\"\r\n [ExportFileName]=\"'Profiler Export.csv'\" [HidePaging]=\"true\" (onSearchRequest)=\"sendSearch($event);\">\r\n \r\n <span *th=\"'1'\">{{'ID' | localize : lc}}</span>\r\n <span *th=\"'2'\">{{'Description' | localize : lc}}</span>\r\n <span *th=\"'3'\">{{'Calls' | localize : lc}}</span>\r\n <span *th=\"'4'\">{{'Time' | localize : lc}}</span>\r\n <span *th=\"'5'\">{{'Peak Time' | localize : lc}}</span>\r\n <span *th=\"'6'\">{{'Min. Time' | localize : lc}}</span>\r\n <span *th=\"'7'\">{{'Avg. Time' | localize : lc}}</span>\r\n <span *th=\"'8'\">{{'Specific Time' | localize : lc}}</span>\r\n <span *th=\"'9'\">{{'Percentage' | localize : lc}}</span>\r\n <span *th=\"'10'\">{{'Calls for Period' | localize : lc}}</span>\r\n <span *th=\"'11'\">{{'Time for Period' | localize : lc}}</span>\r\n <span *th=\"'12'\">{{'Peak Time for Period' | localize : lc}}</span>\r\n <span *th=\"'13'\">{{'Min. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'14'\">{{'Avg. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'15'\">{{'Specific Time for Period' | localize : lc}}</span>\r\n <span *th=\"'16'\">{{'Percentage for Period' | localize : lc}}</span>\r\n\r\n <span *td=\"'1'; let item\">{{item.id}}</span>\r\n <span *td=\"'2'; let item\" title=\"{{item.description}}\">{{item.description.length <= 50 ? item.description : item.description.substr(0,50) + \"[...]\" }}</span>\r\n <span *td=\"'3'; let item\">{{item.calls}}</span>\r\n <span *td=\"'4'; let item\">{{item.time}}</span>\r\n <span *td=\"'5'; let item\">{{item.peaktime}}</span>\r\n <span *td=\"'6'; let item\">{{item.mintime}}</span>\r\n <span *td=\"'7'; let item\">{{item.avgtime}}</span>\r\n <span *td=\"'8'; let item\">{{item.timewithoutchildren}}</span>\r\n <span *td=\"'9'; let item\">{{item.percentage}}</span>\r\n <span *td=\"'10' let item\">{{item.snapdeltacalls}}</span>\r\n <span *td=\"'11' let item\">{{item.snapdeltatime}}</span>\r\n <span *td=\"'12' let item\">{{item.snappeaktime}}</span>\r\n <span *td=\"'13' let item\">{{item.snapmintime}}</span>\r\n <span *td=\"'14' let item\">{{item.snapavgtime}}</span>\r\n <span *td=\"'15' let item\">{{item.snaptimewithoutchildren}}</span>\r\n <span *td=\"'16' let item\">{{item.snappercentage}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", components: [{ type: i8.FormDateComponent, selector: "form-date", inputs: ["JsDates"] }, { type: i9.EsTableComponent, selector: "es-table", inputs: ["CornerMenuOptions", "ColumnsResizable", "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: 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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.EsThDirective, selector: "[th]", inputs: ["th", "thPinned", "thPinnedWidth", "thVisible", "thFixed", "thParent", "thOrder", "thOrderable", "thWrap", "thResizable", "thClass", "thGroupClass", "thIf", "thEmpty", "thGroup", "thAggregation"] }, { type: i9.EsTdDirective, selector: "[td]", inputs: ["tdVisible", "td", "tdIf", "tdClass"] }], pipes: { "localize": i2.LocalizePipe } });
96
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AdmProfilerComponent, decorators: [{
97
96
  type: Component,
98
97
  args: [{ selector: "adm_profiler", providers: [
99
98
  { provide: LocalizationService, useClass: AdmProfilerComponentLoc }
100
- ], 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\">{{'Profiler Search' | localize : lc}}</span>&nbsp;\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\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-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\"></form-date>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" 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 </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [Hierarchy]=\"true\" [UseCustomCells]=\"true\" [ParentKey]=\"'parentid'\" [OwnKey]=\"'id'\" [StartsExpanded]=\"false\"\r\n [ExportFunction]=\"prepareExport.bind(this)\" [Export]=\"true\" [ExportFileName]=\"'Profiler Export.csv'\" [HidePaging]=\"true\"\r\n (onSearchRequest)=\"sendSearch($event);\">\r\n <ng-template #header>\r\n <th es-th=\"1\" class=\"app-nowrap\">{{'ID' | localize : lc}}</th>\r\n <th es-th=\"2\" class=\"app-nowrap\">{{'Description' | localize : lc}}</th>\r\n <th es-th=\"3\" class=\"app-nowrap\">{{'Calls' | localize : lc}}</th>\r\n <th es-th=\"4\" class=\"app-nowrap\">{{'Time' | localize : lc}}</th>\r\n <th es-th=\"5\" class=\"app-nowrap\">{{'Peak Time' | localize : lc}}</th>\r\n <th es-th=\"6\" class=\"app-nowrap\">{{'Min. Time' | localize : lc}}</th>\r\n <th es-th=\"7\" class=\"app-nowrap\">{{'Avg. Time' | localize : lc}}</th>\r\n <th es-th=\"8\" class=\"app-nowrap\">{{'Specific Time' | localize : lc}}</th>\r\n <th es-th=\"9\" class=\"app-nowrap\">{{'Percentage' | localize : lc}}</th>\r\n <th es-th=\"10\" class=\"app-nowrap\">{{'Calls for Period' | localize : lc}}</th>\r\n <th es-th=\"11\" class=\"app-nowrap\">{{'Time for Period' | localize : lc}}</th>\r\n <th es-th=\"12\" class=\"app-nowrap\">{{'Peak Time for Period' | localize : lc}}</th>\r\n <th es-th=\"13\" class=\"app-nowrap\">{{'Min. Time for Period' | localize : lc}}</th>\r\n <th es-th=\"14\" class=\"app-nowrap\">{{'Avg. Time for Period' | localize : lc}}</th>\r\n <th es-th=\"15\" class=\"app-nowrap\">{{'Specific Time for Period' | localize : lc}}</th>\r\n <th es-th=\"16\" class=\"app-nowrap\">{{'Percentage for Period' | localize : lc}}</th>\r\n </ng-template>\r\n <ng-template #body let-item>\r\n <td es-td=\"1\" class=\"app-nowrap\">{{item.id}}</td>\r\n <td es-td=\"2\" class=\"app-nowrap\"><span title=\"{{item.description}}\">{{item.description.length <= 50 ? item.description : item.description.substr(0,50) + \"[...]\"}}</span></td>\r\n <td es-td=\"3\" class=\"app-nowrap\">{{item.calls}}</td>\r\n <td es-td=\"4\" class=\"app-nowrap\">{{item.time}}</td>\r\n <td es-td=\"5\" class=\"app-nowrap\">{{item.peaktime}}</td>\r\n <td es-td=\"6\" class=\"app-nowrap\">{{item.mintime}}</td>\r\n <td es-td=\"7\" class=\"app-nowrap\">{{item.avgtime}}</td>\r\n <td es-td=\"8\" class=\"app-nowrap\">{{item.timewithoutchildren}}</td>\r\n <td es-td=\"9\" class=\"app-nowrap\">{{item.percentage}}</td>\r\n <td es-td=\"10\" class=\"app-nowrap\">{{item.snapdeltacalls}}</td>\r\n <td es-td=\"11\" class=\"app-nowrap\">{{item.snapdeltatime}}</td>\r\n <td es-td=\"12\" class=\"app-nowrap\">{{item.snappeaktime}}</td>\r\n <td es-td=\"13\" class=\"app-nowrap\">{{item.snapmintime}}</td>\r\n <td es-td=\"14\" class=\"app-nowrap\">{{item.snapavgtime}}</td>\r\n <td es-td=\"15\" class=\"app-nowrap\">{{item.snaptimewithoutchildren}}</td>\r\n <td es-td=\"16\" class=\"app-nowrap\">{{item.snappercentage}}</td>\r\n </ng-template>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
99
+ ], 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\">{{'Profiler Search' | localize : lc}}</span>&nbsp;\r\n </div>\r\n <div class=\"card-body widget-body\">\r\n <div class=\"col-md-12 bottom-15\">\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-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterfrom\" name=\"filterfrom\" [Placeholder]=\"'From' | localize : lc\"></form-date>\r\n </div>\r\n <div class=\"col-xl-2 col-lg-2 col-md-12 app-filter-wrapper\">\r\n <form-date [FormLayout]=\"false\" [Validation]=\"false\" [(ngModel)]=\"searchView.filterto\" name=\"filterto\" [Placeholder]=\"'To' | localize : lc\"></form-date>\r\n </div>\r\n <button [disabled]=\"searchView.searchinprogress\" 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 </div>\r\n </form>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p *ngIf=\"!searchView\"><em>{{'Loading Data' | localize : lc}}</em></p>\r\n <div *ngIf=\"searchView\">\r\n <es-table [(ngModel)]=\"searchView\" [Hierarchy]=\"true\" [OrderByColumn]=\"false\" [ParentKey]=\"'parentid'\"\r\n [OwnKey]=\"'id'\" [StartsExpanded]=\"false\" [ExportFunction]=\"prepareExport.bind(this)\" [Export]=\"true\"\r\n [ExportFileName]=\"'Profiler Export.csv'\" [HidePaging]=\"true\" (onSearchRequest)=\"sendSearch($event);\">\r\n \r\n <span *th=\"'1'\">{{'ID' | localize : lc}}</span>\r\n <span *th=\"'2'\">{{'Description' | localize : lc}}</span>\r\n <span *th=\"'3'\">{{'Calls' | localize : lc}}</span>\r\n <span *th=\"'4'\">{{'Time' | localize : lc}}</span>\r\n <span *th=\"'5'\">{{'Peak Time' | localize : lc}}</span>\r\n <span *th=\"'6'\">{{'Min. Time' | localize : lc}}</span>\r\n <span *th=\"'7'\">{{'Avg. Time' | localize : lc}}</span>\r\n <span *th=\"'8'\">{{'Specific Time' | localize : lc}}</span>\r\n <span *th=\"'9'\">{{'Percentage' | localize : lc}}</span>\r\n <span *th=\"'10'\">{{'Calls for Period' | localize : lc}}</span>\r\n <span *th=\"'11'\">{{'Time for Period' | localize : lc}}</span>\r\n <span *th=\"'12'\">{{'Peak Time for Period' | localize : lc}}</span>\r\n <span *th=\"'13'\">{{'Min. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'14'\">{{'Avg. Time for Period' | localize : lc}}</span>\r\n <span *th=\"'15'\">{{'Specific Time for Period' | localize : lc}}</span>\r\n <span *th=\"'16'\">{{'Percentage for Period' | localize : lc}}</span>\r\n\r\n <span *td=\"'1'; let item\">{{item.id}}</span>\r\n <span *td=\"'2'; let item\" title=\"{{item.description}}\">{{item.description.length <= 50 ? item.description : item.description.substr(0,50) + \"[...]\" }}</span>\r\n <span *td=\"'3'; let item\">{{item.calls}}</span>\r\n <span *td=\"'4'; let item\">{{item.time}}</span>\r\n <span *td=\"'5'; let item\">{{item.peaktime}}</span>\r\n <span *td=\"'6'; let item\">{{item.mintime}}</span>\r\n <span *td=\"'7'; let item\">{{item.avgtime}}</span>\r\n <span *td=\"'8'; let item\">{{item.timewithoutchildren}}</span>\r\n <span *td=\"'9'; let item\">{{item.percentage}}</span>\r\n <span *td=\"'10' let item\">{{item.snapdeltacalls}}</span>\r\n <span *td=\"'11' let item\">{{item.snapdeltatime}}</span>\r\n <span *td=\"'12' let item\">{{item.snappeaktime}}</span>\r\n <span *td=\"'13' let item\">{{item.snapmintime}}</span>\r\n <span *td=\"'14' let item\">{{item.snapavgtime}}</span>\r\n <span *td=\"'15' let item\">{{item.snaptimewithoutchildren}}</span>\r\n <span *td=\"'16' let item\">{{item.snappercentage}}</span>\r\n </es-table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
101
100
  }], ctorParameters: function () { return [{ type: i1.ExportService }, { type: i2.LocalizationService }, { type: i3.PreferencesService }, { type: i4.Location }, { type: i5.BaseModuleCommunicationsConsumer }, { type: i6.HTTPService }, { type: i7.ActivatedRoute }, { type: undefined, decorators: [{
102
101
  type: Inject,
103
102
  args: [ADM_BACKEND_URL]
104
103
  }] }]; } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJvZmlsZXIvYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJvZmlsZXIvYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzlELFNBQVM7QUFDVCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5GLGVBQWU7QUFDZixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFJOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUy9DLE1BQU0sT0FBTyxvQkFBb0I7SUFJN0IsWUFDWSxPQUFzQixFQUN2QixFQUF1QixFQUN0QixZQUFnQyxFQUNoQyxRQUFrQixFQUNsQixNQUF3QyxFQUN4QyxJQUFpQixFQUNqQixLQUFxQixFQUNJLE9BQWU7UUFQeEMsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN2QixPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDaEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFrQztRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ0ksWUFBTyxHQUFQLE9BQU8sQ0FB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QyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pGLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGFBQWEsQ0FBQyxZQUFZO1FBQ3RCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXdCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLCtCQUErQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xILElBQUksS0FBSyxHQUF1QixJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUM3RixZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztpSEFuRlEsb0JBQW9CLHFQQVlqQixlQUFlO3FHQVpsQixvQkFBb0IsdUNBTGxCO1FBQ1AsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFO0tBQ3RFLDBCQ3pCTCx5a01Bc0VNOzJGRDFDTyxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0ksY0FBYyxhQUNiO3dCQUNQLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRTtxQkFDdEU7OzBCQWVJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBFeHBvcnRTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcbmltcG9ydCB7IFByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvcHJlZmVyZW5jZXNcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvaHR0cHNlcnZpY2VcIjtcclxuXHJcbi8vIENsYXNzaVxyXG5pbXBvcnQgeyBQcm9maWxlckRhdGFOb2RlLCBQcm9maWxlckRhdGFOb2Rlc1ZpZXcsIFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vLi4vbW9kZWxzXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgQWRtUHJvZmlsZXJDb21wb25lbnRMb2MgfSBmcm9tIFwiLi4vXCI7XHJcblxyXG4vLyBDaGlhbWF0ZSBhaSBSZXBvc2l0b3J5XHJcbmltcG9ydCB7IEJhc2VNb2R1bGVDb21tdW5pY2F0aW9uc0NvbnN1bWVyIH0gZnJvbSBcIi4uLy4uL2NvbW11bmljYXRpb25zL2Jhc2UvQmFzZU1vZHVsZUNvbW11bmljYXRpb25zQ29uc3VtZXJcIjtcclxuaW1wb3J0IHsgQURNX0JBQ0tFTkRfVVJMIH0gZnJvbSBcIi4uLy4uL3Rva2Vuc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJhZG1fcHJvZmlsZXJcIixcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEFkbVByb2ZpbGVyQ29tcG9uZW50TG9jIH1cclxuICAgIF0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2FkbV9wcm9maWxlci5jb21wb25lbnQuaHRtbFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZG1Qcm9maWxlckNvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgc2VhcmNoVmlldzogUHJvZmlsZXJEYXRhTm9kZXNWaWV3ID0gbmV3IFByb2ZpbGVyRGF0YU5vZGVzVmlldygpO1xyXG4gICAgcHVibGljIHN0b3JhZ2VTdWI6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGV4cEV4dHM6IEV4cG9ydFNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlOiBQcmVmZXJlbmNlc1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICAgICAgcHJpdmF0ZSBfc3RhdGU6IEJhc2VNb2R1bGVDb21tdW5pY2F0aW9uc0NvbnN1bWVyLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgQEluamVjdChBRE1fQkFDS0VORF9VUkwpIHByaXZhdGUgYmFja2VuZDogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIHRoaXMuX3N0YXRlLmhhbmRsZU5hdmlnYXRpb24odGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhW1widGl0bGVcIl0sIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTdWIgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLkluaXQocGFyYW1zW1wiaWdub3JlU3RvcmFnZVwiXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgSW5pdChpZ25vcmVTdG9yZSkge1xyXG4gICAgICAgIHRoaXMuZG9Jbml0KGlnbm9yZVN0b3JlKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkb0luaXQoaWdub3JlU3RvcmFnZSkge1xyXG4gICAgICAgIGxldCBpdGVtID0gYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbTxQcm9maWxlckRhdGFOb2Rlc1ZpZXc+KFwiSG90U2VhcmNoUHJvZmlsYXRvXCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIGlmICghaWdub3JlU3RvcmFnZSAmJiBpdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQobnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKFwiL3BhZ2VzL2FkbS9wcm9maWxlclwiKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyA9IFtdO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiSG90U2VhcmNoUHJvZmlsYXRvXCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0KEhvdFBvdGF0bzogUHJvZmlsZXJEYXRhTm9kZXNWaWV3KSB7XHJcbiAgICAgICAgLy9TZSBobyBsYSBIb3RQb3RhdG8gdnVvbCBkaXJlIGNoZSBzb25vIGFwcGVuYSB0b3JuYXRvIGRhbGwnZWRpdC9udW92by4gUmlmYWNjaW8gbGEgcmljZXJjYSBpbiBiYXNlIGFpIGZpbHRyaSBwcmVjZWRlbnRpXHJcbiAgICAgICAgLy9BbHRpcm1lbnRpIGdlbmVybyBpbCBtb2RlbGxvIG51b3ZvIG5vcm1hbG1lbnRlXHJcbiAgICAgICAgaWYgKEhvdFBvdGF0bykge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBIb3RQb3RhdG87XHJcbiAgICAgICAgICAgIHRoaXMuUE9TVEdldEl0ZW1zKHRoaXMuYmFja2VuZCArIFJlcG9zaXRvcnlbXCJQT1NUX0FkbV9HZXRQcm9maWxlckRhdGFOb2Rlc1wiXSwgdGhpcy5zZWFyY2hWaWV3KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IG5ldyBQcm9maWxlckRhdGFOb2Rlc1ZpZXcoKTtcclxuXHJcbiAgICAgICAgICAgIC8vUGVyIGZhcmUgdW4gcHJpbW8gZ2lybyBkaSBiaW5kaW5nIHN1bGxhIFZpZXcgY2hlIHNlcnZlIGEgdmFsb3JpenphcmUgbGUgY29sb25uZSBkZWwgbW9kZWxsbyBhbmNoZSBwZXIgbGEgcHJpbWEgY2hpYW1hdGFcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlbmRTZWFyY2goKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2VTdWIpXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbmRTZWFyY2gocmVzZXRQYWdlOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgICBpZiAocmVzZXRQYWdlKVxyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcucGFnZSA9IDE7XHJcblxyXG4gICAgICAgIHRoaXMuUE9TVEdldEl0ZW1zKHRoaXMuYmFja2VuZCArIFJlcG9zaXRvcnlbXCJQT1NUX0FkbV9HZXRQcm9maWxlckRhdGFOb2Rlc1wiXSwgdGhpcy5zZWFyY2hWaWV3KTtcclxuICAgIH1cclxuXHJcbiAgICBQT1NUR2V0SXRlbXModXJsOiBzdHJpbmcsIGRhdGE6IFByb2ZpbGVyRGF0YU5vZGVzVmlldykge1xyXG4gICAgICAgIHRoaXMuaHR0cC5wb3N0PFByb2ZpbGVyRGF0YU5vZGVzVmlldz4odXJsLCBkYXRhKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IHQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJIb3RTZWFyY2hQcm9maWxhdG9cIiwgdGhpcy5zZWFyY2hWaWV3KS5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcmVwYXJlRXhwb3J0KGRhdGFDYWxsQmFjaykge1xyXG4gICAgICAgIHZhciB2aWV3ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNlYXJjaFZpZXcpKTtcclxuICAgICAgICB2aWV3LnBhZ2UgPSAxO1xyXG4gICAgICAgIHZpZXcuaXRlbXNwZXJwYWdlb3ZlcnJpZGUgPSA5OTk5OTk5O1xyXG4gICAgICAgIHRoaXMuaHR0cC5wb3N0PFByb2ZpbGVyRGF0YU5vZGVzVmlldz4odGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldFByb2ZpbGVyRGF0YU5vZGVzXCJdLCB2aWV3KS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtczogUHJvZmlsZXJEYXRhTm9kZVtdID0gdGhpcy5leHBFeHRzLmRlc2VyaWFsaXplRm9yRXhwb3J0KHQuaXRlbXMsIFByb2ZpbGVyRGF0YU5vZGUpO1xyXG4gICAgICAgICAgICBkYXRhQ2FsbEJhY2soaXRlbXMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGFwcC1vdmVyZmxvdy12aXNpYmxlXCIgd2lkZ2V0PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC11cHBlcmNhc2VcIj57eydQcm9maWxlciBTZWFyY2gnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPiZuYnNwO1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB3aWRnZXQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBib3R0b20tMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFwcC1maXJzdC1maWx0ZXItbGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRlIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyZnJvbVwiIG5hbWU9XCJmaWx0ZXJmcm9tXCIgW1BsYWNlaG9sZGVyXT1cIidGcm9tJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0tZGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRlIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVydG9cIiBuYW1lPVwiZmlsdGVydG9cIiBbUGxhY2Vob2xkZXJdPVwiJ1RvJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0tZGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwic2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hZGRvbiBidG4gYXBwLWJ0bi1zZWFyY2ggYXBwLW1hcmdpbi10b3AtMjBcIiAoY2xpY2spPVwic2VuZFNlYXJjaCgpXCIgdHlwZT1cInN1Ym1pdFwiPjxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiIXNlYXJjaFZpZXdcIj48ZW0+e3snTG9hZGluZyBEYXRhJyB8IGxvY2FsaXplIDogbGN9fTwvZW0+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoVmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVzLXRhYmxlIFsobmdNb2RlbCldPVwic2VhcmNoVmlld1wiIFtIaWVyYXJjaHldPVwidHJ1ZVwiIFtVc2VDdXN0b21DZWxsc109XCJ0cnVlXCIgW1BhcmVudEtleV09XCIncGFyZW50aWQnXCIgW093bktleV09XCInaWQnXCIgW1N0YXJ0c0V4cGFuZGVkXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRXhwb3J0RnVuY3Rpb25dPVwicHJlcGFyZUV4cG9ydC5iaW5kKHRoaXMpXCIgW0V4cG9ydF09XCJ0cnVlXCIgW0V4cG9ydEZpbGVOYW1lXT1cIidQcm9maWxlciBFeHBvcnQuY3N2J1wiIFtIaWRlUGFnaW5nXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblNlYXJjaFJlcXVlc3QpPVwic2VuZFNlYXJjaCgkZXZlbnQpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggZXMtdGg9XCIxXCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3snSUQnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGVzLXRoPVwiMlwiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7J0Rlc2NyaXB0aW9uJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBlcy10aD1cIjNcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57eydDYWxscycgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggZXMtdGg9XCI0XCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3snVGltZScgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggZXMtdGg9XCI1XCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3snUGVhayBUaW1lJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBlcy10aD1cIjZcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57eydNaW4uIFRpbWUnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGVzLXRoPVwiN1wiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7J0F2Zy4gVGltZScgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggZXMtdGg9XCI4XCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3snU3BlY2lmaWMgVGltZScgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggZXMtdGg9XCI5XCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3snUGVyY2VudGFnZScgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggZXMtdGg9XCIxMFwiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7J0NhbGxzIGZvciBQZXJpb2QnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGVzLXRoPVwiMTFcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57eydUaW1lIGZvciBQZXJpb2QnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGVzLXRoPVwiMTJcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57eydQZWFrIFRpbWUgZm9yIFBlcmlvZCcgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggZXMtdGg9XCIxM1wiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7J01pbi4gVGltZSBmb3IgUGVyaW9kJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBlcy10aD1cIjE0XCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3snQXZnLiBUaW1lIGZvciBQZXJpb2QnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGVzLXRoPVwiMTVcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57eydTcGVjaWZpYyBUaW1lIGZvciBQZXJpb2QnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGVzLXRoPVwiMTZcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57eydQZXJjZW50YWdlIGZvciBQZXJpb2QnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYm9keSBsZXQtaXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGVzLXRkPVwiMVwiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7aXRlbS5pZH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGVzLXRkPVwiMlwiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPjxzcGFuIHRpdGxlPVwie3tpdGVtLmRlc2NyaXB0aW9ufX1cIj57e2l0ZW0uZGVzY3JpcHRpb24ubGVuZ3RoIDw9IDUwID8gaXRlbS5kZXNjcmlwdGlvbiA6IGl0ZW0uZGVzY3JpcHRpb24uc3Vic3RyKDAsNTApICsgXCJbLi4uXVwifX08L3NwYW4+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGVzLXRkPVwiM1wiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7aXRlbS5jYWxsc319PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGVzLXRkPVwiNFwiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7aXRlbS50aW1lfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgZXMtdGQ9XCI1XCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3tpdGVtLnBlYWt0aW1lfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgZXMtdGQ9XCI2XCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3tpdGVtLm1pbnRpbWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBlcy10ZD1cIjdcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57e2l0ZW0uYXZndGltZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGVzLXRkPVwiOFwiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7aXRlbS50aW1ld2l0aG91dGNoaWxkcmVufX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgZXMtdGQ9XCI5XCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3tpdGVtLnBlcmNlbnRhZ2V9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBlcy10ZD1cIjEwXCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3tpdGVtLnNuYXBkZWx0YWNhbGxzfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgZXMtdGQ9XCIxMVwiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7aXRlbS5zbmFwZGVsdGF0aW1lfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgZXMtdGQ9XCIxMlwiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7aXRlbS5zbmFwcGVha3RpbWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBlcy10ZD1cIjEzXCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3tpdGVtLnNuYXBtaW50aW1lfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgZXMtdGQ9XCIxNFwiIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7aXRlbS5zbmFwYXZndGltZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGVzLXRkPVwiMTVcIiBjbGFzcz1cImFwcC1ub3dyYXBcIj57e2l0ZW0uc25hcHRpbWV3aXRob3V0Y2hpbGRyZW59fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBlcy10ZD1cIjE2XCIgY2xhc3M9XCJhcHAtbm93cmFwXCI+e3tpdGVtLnNuYXBwZXJjZW50YWdlfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VzLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJvZmlsZXIvYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJvZmlsZXIvYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRzlELFNBQVM7QUFDVCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5GLGVBQWU7QUFDZixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFJOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUy9DLE1BQU0sT0FBTyxvQkFBb0I7SUFJN0IsWUFDWSxPQUFzQixFQUN2QixFQUF1QixFQUN0QixZQUFnQyxFQUNoQyxRQUFrQixFQUNsQixNQUF3QyxFQUN4QyxJQUFpQixFQUNqQixLQUFxQixFQUNJLE9BQWU7UUFQeEMsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN2QixPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDaEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFrQztRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ0ksWUFBTyxHQUFQLE9BQU8sQ0FB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SUFDUCxDQUFDO0lBRUQsYUFBYSxDQUFDLFlBQVk7UUFDdEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBd0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsK0JBQStCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbEgsSUFBSSxLQUFLLEdBQXVCLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzdGLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2lIQWxGUSxvQkFBb0IscVBBWWpCLGVBQWU7cUdBWmxCLG9CQUFvQix1Q0FMbEI7UUFDUCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUU7S0FDdEUsMEJDekJMLHEzS0FvRU07MkZEeENPLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDSSxjQUFjLGFBQ2I7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFO3FCQUN0RTs7MEJBZUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEV4cG9ydFNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuaW1wb3J0IHsgUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9wcmVmZXJlbmNlc1wiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IEhUVFBTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9odHRwc2VydmljZVwiO1xyXG5cclxuLy8gQ2xhc3NpXHJcbmltcG9ydCB7IFByb2ZpbGVyRGF0YU5vZGUsIFByb2ZpbGVyRGF0YU5vZGVzVmlldywgUmVwb3NpdG9yeSB9IGZyb20gXCIuLi8uLi9tb2RlbHNcIjtcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBBZG1Qcm9maWxlckNvbXBvbmVudExvYyB9IGZyb20gXCIuLi9cIjtcclxuXHJcbi8vIENoaWFtYXRlIGFpIFJlcG9zaXRvcnlcclxuaW1wb3J0IHsgQmFzZU1vZHVsZUNvbW11bmljYXRpb25zQ29uc3VtZXIgfSBmcm9tIFwiLi4vLi4vY29tbXVuaWNhdGlvbnMvYmFzZS9CYXNlTW9kdWxlQ29tbXVuaWNhdGlvbnNDb25zdW1lclwiO1xyXG5pbXBvcnQgeyBBRE1fQkFDS0VORF9VUkwgfSBmcm9tIFwiLi4vLi4vdG9rZW5zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFkbV9wcm9maWxlclwiLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogQWRtUHJvZmlsZXJDb21wb25lbnRMb2MgfVxyXG4gICAgXSxcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vYWRtX3Byb2ZpbGVyLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkbVByb2ZpbGVyQ29tcG9uZW50IHtcclxuICAgIHB1YmxpYyBzZWFyY2hWaWV3OiBQcm9maWxlckRhdGFOb2Rlc1ZpZXcgPSBuZXcgUHJvZmlsZXJEYXRhTm9kZXNWaWV3KCk7XHJcbiAgICBwdWJsaWMgc3RvcmFnZVN1YjogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgZXhwRXh0czogRXhwb3J0U2VydmljZSxcclxuICAgICAgICBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2U6IFByZWZlcmVuY2VzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgICAgICBwcml2YXRlIF9zdGF0ZTogQmFzZU1vZHVsZUNvbW11bmljYXRpb25zQ29uc3VtZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIVFRQU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBASW5qZWN0KEFETV9CQUNLRU5EX1VSTCkgcHJpdmF0ZSBiYWNrZW5kOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgdGhpcy5fc3RhdGUuaGFuZGxlTmF2aWdhdGlvbih0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbXCJ0aXRsZVwiXSwgZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVN1YiA9IHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuSW5pdChwYXJhbXNbXCJpZ25vcmVTdG9yYWdlXCJdKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBJbml0KGlnbm9yZVN0b3JlKSB7XHJcbiAgICAgICAgdGhpcy5kb0luaXQoaWdub3JlU3RvcmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRvSW5pdChpZ25vcmVTdG9yYWdlKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtPFByb2ZpbGVyRGF0YU5vZGVzVmlldz4oXCJIb3RTZWFyY2hQcm9maWxhdG9cIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgaWYgKCFpZ25vcmVTdG9yYWdlICYmIGl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoXCIvcGFnZXMvYWRtL3Byb2ZpbGVyXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zID0gW107XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJIb3RTZWFyY2hQcm9maWxhdG9cIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXQoSG90UG90YXRvOiBQcm9maWxlckRhdGFOb2Rlc1ZpZXcpIHtcclxuICAgICAgICAvL1NlIGhvIGxhIEhvdFBvdGF0byB2dW9sIGRpcmUgY2hlIHNvbm8gYXBwZW5hIHRvcm5hdG8gZGFsbCdlZGl0L251b3ZvLiBSaWZhY2NpbyBsYSByaWNlcmNhIGluIGJhc2UgYWkgZmlsdHJpIHByZWNlZGVudGlcclxuICAgICAgICAvL0FsdGlybWVudGkgZ2VuZXJvIGlsIG1vZGVsbG8gbnVvdm8gbm9ybWFsbWVudGVcclxuICAgICAgICBpZiAoSG90UG90YXRvKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IEhvdFBvdGF0bztcclxuICAgICAgICAgICAgdGhpcy5QT1NUR2V0SXRlbXModGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldFByb2ZpbGVyRGF0YU5vZGVzXCJdLCB0aGlzLnNlYXJjaFZpZXcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gbmV3IFByb2ZpbGVyRGF0YU5vZGVzVmlldygpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zZW5kU2VhcmNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2VTdWIpXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbmRTZWFyY2gocmVzZXRQYWdlOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgICBpZiAocmVzZXRQYWdlKVxyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcucGFnZSA9IDE7XHJcblxyXG4gICAgICAgIHRoaXMuUE9TVEdldEl0ZW1zKHRoaXMuYmFja2VuZCArIFJlcG9zaXRvcnlbXCJQT1NUX0FkbV9HZXRQcm9maWxlckRhdGFOb2Rlc1wiXSwgdGhpcy5zZWFyY2hWaWV3KTtcclxuICAgIH1cclxuXHJcbiAgICBQT1NUR2V0SXRlbXModXJsOiBzdHJpbmcsIGRhdGE6IFByb2ZpbGVyRGF0YU5vZGVzVmlldykge1xyXG4gICAgICAgIHRoaXMuaHR0cC5wb3N0PFByb2ZpbGVyRGF0YU5vZGVzVmlldz4odXJsLCBkYXRhKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IHQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJIb3RTZWFyY2hQcm9maWxhdG9cIiwgdGhpcy5zZWFyY2hWaWV3KS5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcmVwYXJlRXhwb3J0KGRhdGFDYWxsQmFjaykge1xyXG4gICAgICAgIHZhciB2aWV3ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNlYXJjaFZpZXcpKTtcclxuICAgICAgICB2aWV3LnBhZ2UgPSAxO1xyXG4gICAgICAgIHZpZXcuaXRlbXNwZXJwYWdlb3ZlcnJpZGUgPSA5OTk5OTk5O1xyXG4gICAgICAgIHRoaXMuaHR0cC5wb3N0PFByb2ZpbGVyRGF0YU5vZGVzVmlldz4odGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldFByb2ZpbGVyRGF0YU5vZGVzXCJdLCB2aWV3KS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgIGxldCBpdGVtczogUHJvZmlsZXJEYXRhTm9kZVtdID0gdGhpcy5leHBFeHRzLmRlc2VyaWFsaXplRm9yRXhwb3J0KHQuaXRlbXMsIFByb2ZpbGVyRGF0YU5vZGUpO1xyXG4gICAgICAgICAgICBkYXRhQ2FsbEJhY2soaXRlbXMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGFwcC1vdmVyZmxvdy12aXNpYmxlXCIgd2lkZ2V0PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC11cHBlcmNhc2VcIj57eydQcm9maWxlciBTZWFyY2gnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPiZuYnNwO1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB3aWRnZXQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBib3R0b20tMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFwcC1maXJzdC1maWx0ZXItbGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRlIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVyZnJvbVwiIG5hbWU9XCJmaWx0ZXJmcm9tXCIgW1BsYWNlaG9sZGVyXT1cIidGcm9tJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0tZGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRlIFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVydG9cIiBuYW1lPVwiZmlsdGVydG9cIiBbUGxhY2Vob2xkZXJdPVwiJ1RvJyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0tZGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwic2VhcmNoVmlldy5zZWFyY2hpbnByb2dyZXNzXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hZGRvbiBidG4gYXBwLWJ0bi1zZWFyY2ggYXBwLW1hcmdpbi10b3AtMjBcIiAoY2xpY2spPVwic2VuZFNlYXJjaCgpXCIgdHlwZT1cInN1Ym1pdFwiPjxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiIXNlYXJjaFZpZXdcIj48ZW0+e3snTG9hZGluZyBEYXRhJyB8IGxvY2FsaXplIDogbGN9fTwvZW0+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoVmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVzLXRhYmxlIFsobmdNb2RlbCldPVwic2VhcmNoVmlld1wiIFtIaWVyYXJjaHldPVwidHJ1ZVwiIFtPcmRlckJ5Q29sdW1uXT1cImZhbHNlXCIgW1BhcmVudEtleV09XCIncGFyZW50aWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3duS2V5XT1cIidpZCdcIiBbU3RhcnRzRXhwYW5kZWRdPVwiZmFsc2VcIiBbRXhwb3J0RnVuY3Rpb25dPVwicHJlcGFyZUV4cG9ydC5iaW5kKHRoaXMpXCIgW0V4cG9ydF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRXhwb3J0RmlsZU5hbWVdPVwiJ1Byb2ZpbGVyIEV4cG9ydC5jc3YnXCIgW0hpZGVQYWdpbmddPVwidHJ1ZVwiIChvblNlYXJjaFJlcXVlc3QpPVwic2VuZFNlYXJjaCgkZXZlbnQpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIicxJ1wiPnt7J0lEJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMidcIj57eydEZXNjcmlwdGlvbicgfCBsb2NhbGl6ZSA6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRoPVwiJzMnXCI+e3snQ2FsbHMnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIic0J1wiPnt7J1RpbWUnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIic1J1wiPnt7J1BlYWsgVGltZScgfCBsb2NhbGl6ZSA6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRoPVwiJzYnXCI+e3snTWluLiBUaW1lJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInNydcIj57eydBdmcuIFRpbWUnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIic4J1wiPnt7J1NwZWNpZmljIFRpbWUnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIic5J1wiPnt7J1BlcmNlbnRhZ2UnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIicxMCdcIj57eydDYWxscyBmb3IgUGVyaW9kJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMTEnXCI+e3snVGltZSBmb3IgUGVyaW9kJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMTInXCI+e3snUGVhayBUaW1lIGZvciBQZXJpb2QnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0aD1cIicxMydcIj57eydNaW4uIFRpbWUgZm9yIFBlcmlvZCcgfCBsb2NhbGl6ZSA6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRoPVwiJzE0J1wiPnt7J0F2Zy4gVGltZSBmb3IgUGVyaW9kJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMTUnXCI+e3snU3BlY2lmaWMgVGltZSBmb3IgUGVyaW9kJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGg9XCInMTYnXCI+e3snUGVyY2VudGFnZSBmb3IgUGVyaW9kJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzEnOyBsZXQgaXRlbVwiPnt7aXRlbS5pZH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIicyJzsgbGV0IGl0ZW1cIiB0aXRsZT1cInt7aXRlbS5kZXNjcmlwdGlvbn19XCI+e3tpdGVtLmRlc2NyaXB0aW9uLmxlbmd0aCA8PSA1MCA/IGl0ZW0uZGVzY3JpcHRpb24gOiBpdGVtLmRlc2NyaXB0aW9uLnN1YnN0cigwLDUwKSArIFwiWy4uLl1cIiB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInMyc7IGxldCBpdGVtXCI+e3tpdGVtLmNhbGxzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzQnOyBsZXQgaXRlbVwiPnt7aXRlbS50aW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzUnOyBsZXQgaXRlbVwiPnt7aXRlbS5wZWFrdGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIic2JzsgbGV0IGl0ZW1cIj57e2l0ZW0ubWludGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIic3JzsgbGV0IGl0ZW1cIj57e2l0ZW0uYXZndGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIic4JzsgbGV0IGl0ZW1cIj57e2l0ZW0udGltZXdpdGhvdXRjaGlsZHJlbn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIic5JzsgbGV0IGl0ZW1cIj57e2l0ZW0ucGVyY2VudGFnZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIicxMCcgbGV0IGl0ZW1cIj57e2l0ZW0uc25hcGRlbHRhY2FsbHN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInMTEnIGxldCBpdGVtXCI+e3tpdGVtLnNuYXBkZWx0YXRpbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInMTInIGxldCBpdGVtXCI+e3tpdGVtLnNuYXBwZWFrdGltZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIicxMycgbGV0IGl0ZW1cIj57e2l0ZW0uc25hcG1pbnRpbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqdGQ9XCInMTQnIGxldCBpdGVtXCI+e3tpdGVtLnNuYXBhdmd0aW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKnRkPVwiJzE1JyBsZXQgaXRlbVwiPnt7aXRlbS5zbmFwdGltZXdpdGhvdXRjaGlsZHJlbn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICp0ZD1cIicxNicgbGV0IGl0ZW1cIj57e2l0ZW0uc25hcHBlcmNlbnRhZ2V9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXMtdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -75,8 +75,7 @@ export class AdmTopActivitiesComponent {
75
75
  }
76
76
  else {
77
77
  this.searchView = new TopActivitiesDataView();
78
- //Per fare un primo giro di binding sulla View che serve a valorizzare le colonne del modello anche per la prima chiamata
79
- setTimeout(() => this.sendSearch());
78
+ this.sendSearch();
80
79
  }
81
80
  }
82
81
  ngOnDestroy() {
@@ -186,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
186
185
  type: Inject,
187
186
  args: [ADM_BACKEND_URL]
188
187
  }] }]; } });
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYWN0X3NlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3RvcGFjdC90b3BhY3Rfc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvdG9wYWN0L3RvcGFjdF9zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBc0IsU0FBUyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHckcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHOUQsU0FBUztBQUNULE9BQU8sRUFBaUIsVUFBVSxFQUFFLHFCQUFxQixFQUF1QixNQUFNLGNBQWMsQ0FBQztBQUlyRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsZUFBZTtBQUNmLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUl6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBZS9DLE1BQU0sT0FBTyx5QkFBeUI7SUFVbEMsWUFDVyxRQUFxQixFQUNyQixFQUF1QixFQUN0QixZQUFnQyxFQUNoQyxRQUFrQixFQUNsQixNQUF3QyxFQUN4QyxJQUFpQixFQUNqQixLQUFxQixFQUNJLE9BQWU7UUFQekMsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDaEMsYUFB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QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDdkUsS0FBSyxDQUFDLEtBQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUUzRiwyR0FBMkc7WUFDL0csQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztzSEFoTVEseUJBQXlCLG1QQWtCdEIsZUFBZTswR0FsQmxCLHlCQUF5Qix3Q0FMdkI7UUFDUCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7S0FDakUsMEJDcENMLGlrUkFxSE07MkZEOUVPLHlCQUF5QjtrQkFQckMsU0FBUzsrQkFDSSxlQUFlLGFBQ2Q7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO3FCQUNqRTs7MEJBcUJJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBCYXNlQ2hhcnRDb21wb25lbnQsIERhdGVWYWx1ZSwgTGltaXQsIExpbmVDaGFydERhdGEsIExpbmVTZXJpZSB9IGZyb20gXCJAZXNmYWVuemEvZXMtY2hhcnRzXCI7XHJcbmltcG9ydCB7IERhdGVTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcbmltcG9ydCB7IFByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvcHJlZmVyZW5jZXNcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvaHR0cHNlcnZpY2VcIjtcclxuXHJcbi8vIENsYXNzaVxyXG5pbXBvcnQgeyBEaXJlY3RvckluZm9zLCBSZXBvc2l0b3J5LCBUb3BBY3Rpdml0aWVzRGF0YVZpZXcsIFRvcE5vZGUsIFRvcFNlc3Npb24gfSBmcm9tIFwiLi4vLi4vbW9kZWxzXCI7XHJcblxyXG4vLyBEaXJldHRpdmUsIENvbXBvbmVudGksIExpYnJlcmllXHJcbmltcG9ydCAqIGFzIGFtNGNoYXJ0cyBmcm9tIFwiQGFtY2hhcnRzL2FtY2hhcnRzNC9jaGFydHNcIjtcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgQWRtVG9wQWN0aXZpdGllTG9jIH0gZnJvbSBcIi4uL1wiO1xyXG5cclxuLy8gQ2hpYW1hdGUgYWkgUmVwb3NpdG9yeVxyXG5pbXBvcnQgeyBCYXNlTW9kdWxlQ29tbXVuaWNhdGlvbnNDb25zdW1lciB9IGZyb20gXCIuLi8uLi9jb21tdW5pY2F0aW9ucy9iYXNlL0Jhc2VNb2R1bGVDb21tdW5pY2F0aW9uc0NvbnN1bWVyXCI7XHJcbmltcG9ydCB7IEFETV9CQUNLRU5EX1VSTCB9IGZyb20gXCIuLi8uLi90b2tlbnNcIjtcclxuXHJcbi8qKlxyXG4gKiBEaWNoaWFyYXppb25lIGRlbGxhIHZhcmlhYmlsZSBnbG9iYWxlIGRheWpzLiBMJ29uZXJlIGRpIFwiY3JlYXJsYVwiIMOoIGFmZmlkYXRvIGFsbCdhcHBsaWNhemlvbmUgY2hlIHV0aWxpenphIHF1ZXN0YSBsaWJyZXJpYSwgXHJcbiAqIGNoZSBkb3Zyw6AgaW1wb3J0YXJlIGxvIHNjcmlwdCBnbG9iYWxlIGRpIGRheWpzIG5lbGxhIENMSVxyXG4gKi9cclxuIGRlY2xhcmUgdmFyIGRheWpzOiBhbnk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcInRvcGFjdF9zZWFyY2hcIixcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IEFkbVRvcEFjdGl2aXRpZUxvYyB9XHJcbiAgICBdLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi90b3BhY3Rfc2VhcmNoLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkbVRvcEFjdGl2aXRpZXNDb21wb25lbnQge1xyXG4gICAgcHVibGljIHNlYXJjaFZpZXc6IFRvcEFjdGl2aXRpZXNEYXRhVmlldyA9IG5ldyBUb3BBY3Rpdml0aWVzRGF0YVZpZXcoKTtcclxuICAgIHB1YmxpYyBzdG9yYWdlU3ViOiBhbnk7XHJcbiAgICBwcml2YXRlIExhc3REYXRhUG9pbnQ6IGFueTtcclxuXHJcbiAgICBwdWJsaWMgYXV0b1VwZGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNlY29uZHM6IHN0cmluZyA9IFwiNVwiO1xyXG5cclxuICAgIHByaXZhdGUgQ2hhcnRJbnN0YW5jZTogQmFzZUNoYXJ0Q29tcG9uZW50O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBkYXRlRXh0czogRGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlOiBQcmVmZXJlbmNlc1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICAgICAgcHJpdmF0ZSBfc3RhdGU6IEJhc2VNb2R1bGVDb21tdW5pY2F0aW9uc0NvbnN1bWVyLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgQEluamVjdChBRE1fQkFDS0VORF9VUkwpIHByaXZhdGUgYmFja2VuZDogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIHRoaXMuX3N0YXRlLmhhbmRsZU5hdmlnYXRpb24odGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhW1widGl0bGVcIl0sIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTdWIgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLkluaXQocGFyYW1zW1wiaWdub3JlU3RvcmFnZVwiXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgSW5pdChpZ25vcmVTdG9yZSkge1xyXG4gICAgICAgIHRoaXMuZG9Jbml0KGlnbm9yZVN0b3JlKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBkb0luaXQoaWdub3JlU3RvcmFnZSkge1xyXG4gICAgICAgIGxldCBpdGVtID0gYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbTxUb3BBY3Rpdml0aWVzRGF0YVZpZXc+KFwiSG90U2VhcmNoVG9wQWN0XCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIGlmICghaWdub3JlU3RvcmFnZSAmJiBpdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQobnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKFwiL3BhZ2VzL2FkbS90b3BhY3RcIik7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMgPSBbXTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcIkhvdFNlYXJjaFRvcEFjdFwiKS50b1Byb21pc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdChIb3RQb3RhdG86IFRvcEFjdGl2aXRpZXNEYXRhVmlldykge1xyXG4gICAgICAgIC8vU2UgaG8gbGEgSG90UG90YXRvIHZ1b2wgZGlyZSBjaGUgc29ubyBhcHBlbmEgdG9ybmF0byBkYWxsJ2VkaXQvbnVvdm8uIFJpZmFjY2lvIGxhIHJpY2VyY2EgaW4gYmFzZSBhaSBmaWx0cmkgcHJlY2VkZW50aVxyXG4gICAgICAgIC8vQWx0aXJtZW50aSBnZW5lcm8gaWwgbW9kZWxsbyBudW92byBub3JtYWxtZW50ZVxyXG4gICAgICAgIGlmIChIb3RQb3RhdG8pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gSG90UG90YXRvO1xyXG4gICAgICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcyh0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0VG9wQWN0aXZpdGllc1wiXSwgdGhpcy5zZWFyY2hWaWV3LCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBuZXcgVG9wQWN0aXZpdGllc0RhdGFWaWV3KCk7XHJcblxyXG4gICAgICAgICAgICAvL1BlciBmYXJlIHVuIHByaW1vIGdpcm8gZGkgYmluZGluZyBzdWxsYSBWaWV3IGNoZSBzZXJ2ZSBhIHZhbG9yaXp6YXJlIGxlIGNvbG9ubmUgZGVsIG1vZGVsbG8gYW5jaGUgcGVyIGxhIHByaW1hIGNoaWFtYXRhXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZW5kU2VhcmNoKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdG9yYWdlU3ViKVxyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kU2VhcmNoKHJlc2V0UGFnZTogYm9vbGVhbiA9IHRydWUsIHVwZGF0ZTogYm9vbGVhbiA9IGZhbHNlLCBzZWFyY2hWaWV3T3ZlcnJpZGU6IFRvcEFjdGl2aXRpZXNEYXRhVmlldyA9IG51bGwpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHJlc2V0UGFnZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnBhZ2UgPSAxO1xyXG5cclxuICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcyh0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0VG9wQWN0aXZpdGllc1wiXSwgc2VhcmNoVmlld092ZXJyaWRlID8/IHRoaXMuc2VhcmNoVmlldywgdXBkYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBQT1NUR2V0SXRlbXModXJsOiBzdHJpbmcsIGRhdGE6IFRvcEFjdGl2aXRpZXNEYXRhVmlldywgdXBkYXRlOiBib29sZWFuKSB7XHJcblxyXG4gICAgICAgIHRoaXMuaHR0cC5wb3N0PFRvcEFjdGl2aXRpZXNEYXRhVmlldz4odXJsLCBkYXRhKS5zdWJzY3JpYmUoYXN5bmMgKHQpID0+IHtcclxuICAgICAgICAgICAgLy9TZSBzb25vIGluIG1vZGFsaXTvv70gZGkgdXBkYXRlIG5vbiBkZXZvIHRvY2NhcmUgbGEgc2VhcmNoVmlldyBhdHR1YWxlIHNlIG5vbiBwZXIgaWwgc2VhcmNoaW5wcm9ncmVzcyBjaGUgdmllbmUgbWVzc28gZGFsbCdlcyB0YWJsZVxyXG4gICAgICAgICAgICBpZiAoIXVwZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gdDtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJIb3RTZWFyY2hUb3BBY3RcIiwgdGhpcy5zZWFyY2hWaWV3KS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgZGlyaW5mb3MgPSBhd2FpdCB0aGlzLmdldERpcmVjdG9ySW5mb3MoKTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5yZXZpZXdCaW5kaW5ncyh1cGRhdGUsIHQsIGRpcmluZm9zKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREaXJlY3RvckluZm9zKCk6IFByb21pc2U8RGlyZWN0b3JJbmZvcz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERpcmVjdG9ySW5mb3M+KHRoaXMuYmFja2VuZCArIFJlcG9zaXRvcnlbXCJHRVRfQWRtX0dldEluZm9zXCJdKS5waXBlKG1hcChyZXMgPT4geyByZXR1cm4gcmVzOyB9KSkudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBUcmFzZm9ybWF6aW9uZSBkYSBzZWFyY2h2aWV3IGNvbiB1bmljbyBlbGVtZW50byBjb24gdHV0dG8gYWkgMyBlbGVtZW50aTpcclxuICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogR3JhZmljbywgVG9wTm9kZXMgZSBUb3BTZXNzaW9uc1xyXG4gICAgVG9wQWN0aXZlU2Vzc2lvbnM6IExpbmVDaGFydERhdGE7XHJcbiAgICBUb3BOb2RlczogVG9wTm9kZVtdO1xyXG4gICAgVG9wU2Vzc2lvbnM6IFRvcFNlc3Npb25bXTtcclxuICAgIERpckluZm9zOiBEaXJlY3RvckluZm9zO1xyXG4gICAgc2VyaWVzUHJvcGVydGllc01hcHBpbmc6IHsgW2luZGV4OiBzdHJpbmddOiBMaW5lU2VyaWUgfSA9IHt9O1xyXG4gICAgcHJvcGVydGllc1Nlcmllc01hcHBpbmc6IHsgW2luZGV4OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcclxuICAgICAgICBbXCJjcHV0aW1lXCJdOiBcIkNQVVwiLFxyXG4gICAgICAgIFtcIndhaXR0aW1lXCJdOiBcIldhaXRcIixcclxuICAgICAgICBbXCJzY3JpcHR0aW1lXCJdOiBcIlNjcmlwdGluZ1wiLFxyXG4gICAgICAgIFtcImRidGltZVwiXTogXCJEQlwiLFxyXG4gICAgICAgIFtcIm5ldHRpbWVcIl06IFwiTmV0d29ya1wiLFxyXG4gICAgICAgIFtcInRocm90dGxldGltZVwiXTogXCJUaHJvdHRsaW5nXCIsXHJcbiAgICAgICAgW1wic2xlZXB0aW1lXCJdOiBcIlNsZWVwXCIsXHJcbiAgICAgICAgW1wiaW90aW1lXCJdOiBcIklPXCJcclxuICAgIH07XHJcblxyXG4gICAgcmV2aWV3QmluZGluZ3ModXBkYXRlOiBib29sZWFuLCBzZWFyY2hWaWV3T3ZlcnJpZGU/LCBkaXJJbmZvcz86IERpcmVjdG9ySW5mb3MpIHtcclxuICAgICAgICBsZXQgcmVmZXJlbmNlID0gKHNlYXJjaFZpZXdPdmVycmlkZSA/PyB0aGlzLnNlYXJjaFZpZXcpLml0ZW1zWzBdO1xyXG4gICAgICAgIHRoaXMuVG9wTm9kZXMgPSByZWZlcmVuY2UudG9wbm9kZXM7XHJcbiAgICAgICAgdGhpcy5Ub3BTZXNzaW9ucyA9IHJlZmVyZW5jZS50b3BzZXNzaW9ucztcclxuICAgICAgICB0aGlzLkRpckluZm9zID0gZGlySW5mb3M7XHJcblxyXG4gICAgICAgIGlmICghcmVmZXJlbmNlLmFjdHNlc3Npb25zIHx8IHJlZmVyZW5jZS5hY3RzZXNzaW9ucy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLlRvcEFjdGl2ZVNlc3Npb25zID0gbnVsbDtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHNlcmllczogTGluZVNlcmllW10gPSBbXTsgICAgICBcclxuICAgICAgICBsZXQgcHJvcHMgPSBPYmplY3Qua2V5cyhyZWZlcmVuY2UuYWN0c2Vzc2lvbnNbMF0pO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHByb3BzW2ldICE9ICdzYW1wbGV0aW1lJykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHMgPSBuZXcgTGluZVNlcmllKHRoaXMucHJvcGVydGllc1Nlcmllc01hcHBpbmdbcHJvcHNbaV1dLCBbXSwgbnVsbCwgbnVsbCwgXCJzZXNzaW9uc1wiKTtcclxuICAgICAgICAgICAgICAgIHNlcmllcy5wdXNoKHMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXJpZXNQcm9wZXJ0aWVzTWFwcGluZ1twcm9wc1tpXV0gPSBzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlZmVyZW5jZS5hY3RzZXNzaW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbXJlZiA9IHJlZmVyZW5jZS5hY3RzZXNzaW9uc1tpXTtcclxuICAgICAgICAgICAgbGV0IHRoZUQgPSBuZXcgRGF0ZShpdGVtcmVmLnNhbXBsZXRpbWUpO1xyXG5cclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgICAgIGlmIChwcm9wc1tpXSAhPSAnc2FtcGxldGltZScgJiYgKCF1cGRhdGUgfHwgdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih0aGVEKS5pc0FmdGVyKHRoaXMuTGFzdERhdGFQb2ludCkpKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VyaWVzUHJvcGVydGllc01hcHBpbmdbcHJvcHNbaV1dLnZhbHVlcy5wdXNoKG5ldyBEYXRlVmFsdWUodGhlRCwgaXRlbXJlZltwcm9wc1tpXV0pKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh1cGRhdGUgJiYgdGhpcy5DaGFydEluc3RhbmNlKSB7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gbmV3IExpbmVDaGFydERhdGEoc2VyaWVzLCBuZXcgTGltaXQoZGlySW5mb3M/LnRocmVhZHMsIHRoaXMubGMubG9jKFwiTWF4aW11bSBUaHJlYWRzXCIpKSk7XHJcbiAgICAgICAgICAgIGlmIChzZXJpZXMuc29tZSh0ID0+IHQudmFsdWVzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkNoYXJ0SW5zdGFuY2UuYWRkRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuTGFzdERhdGFQb2ludCA9IHNlcmllcy5tYXAodCA9PiBkYXlqcy5tYXgodC52YWx1ZXMubWFwKHYgPT4gdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih2LmQpKSkpWzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLlRvcEFjdGl2ZVNlc3Npb25zID0gbmV3IExpbmVDaGFydERhdGEoc2VyaWVzLCBuZXcgTGltaXQoZGlySW5mb3M/LnRocmVhZHMsIHRoaXMubGMubG9jKFwiTWF4aW11bSBUaHJlYWRzXCIpKSk7XHJcbiAgICAgICAgICAgIHRoaXMuTGFzdERhdGFQb2ludCA9IHNlcmllcy5tYXAodCA9PiBkYXlqcy5tYXgodC52YWx1ZXMubWFwKHYgPT4gdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih2LmQpKSkpWzBdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAjcmVnaW9uIEdlc3Rpb25lIHVwZGF0ZSBhdXRvbWF0aWNvXHJcbiAgICB1cGRhdGVUaW1lcjogYW55O1xyXG4gICAgYXV0b1VwZGF0ZUNoYW5nZWQoKSB7XHJcbiAgICAgICAgaWYgKCEvXlsxLTldXFxkKiQvLnRlc3QodGhpcy5zZWNvbmRzKSlcclxuICAgICAgICAgICAgdGhpcy5zZWNvbmRzID0gJzEwJztcclxuICAgICAgICBjb25zdCBzZWNvbmRzSW5NcyA9IHBhcnNlSW50KHRoaXMuc2Vjb25kcywgbnVsbCkgKiAxMDAwO1xyXG4gICAgICAgIGlmICh0aGlzLmF1dG9VcGRhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZW5kU2VhcmNoKGZhbHNlLCB0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVUaW1lciA9IHNldEludGVydmFsKCgpID0+IHsgdGhpcy5zZW5kU2VhcmNoKGZhbHNlLCB0cnVlKTsgfSwgc2Vjb25kc0luTXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy51cGRhdGVUaW1lcik7XHJcbiAgICB9XHJcbiAgICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gICAgcHJpdmF0ZSBmcm9tOiBEYXRlO1xyXG4gICAgcHJpdmF0ZSB0bzogRGF0ZTtcclxuXHJcbiAgICBkYXRhU2VsZWN0aW9uQ2hhbmdlZChldmVudDogeyBmcm9tOiBEYXRlLCB0bzogRGF0ZSwgaW5pdGlhbDogYm9vbGVhbiB9KSB7XHJcbiAgICAgICAgdGhpcy5mcm9tID0gZXZlbnQuaW5pdGlhbCA/ICh0aGlzLnNlYXJjaFZpZXcuZmlsdGVyZnJvbSA/IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odGhpcy5zZWFyY2hWaWV3LmZpbHRlcmZyb20pLnRvRGF0ZSgpIDogXCJcIikgOiBldmVudC5mcm9tO1xyXG4gICAgICAgIHRoaXMudG8gPSBldmVudC5pbml0aWFsID8gKHRoaXMuc2VhcmNoVmlldy5maWx0ZXJ0byA/IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odGhpcy5zZWFyY2hWaWV3LmZpbHRlcnRvKS50b0RhdGUoKSA6IFwiXCIpIDogZXZlbnQudG87XHJcblxyXG4gICAgICAgIHZhciBwc2V1ZG9TZWFyY2hWaWV3OiBUb3BBY3Rpdml0aWVzRGF0YVZpZXcgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuc2VhcmNoVmlldykpO1xyXG4gICAgICAgIHBzZXVkb1NlYXJjaFZpZXcuZmlsdGVyZnJvbSA9IHRoaXMuZnJvbSA/IGRheWpzKHRoaXMuZnJvbSkuZm9ybWF0KHRoaXMubGMudG9rZW4oXCJnZXRGdWxsRGF0ZURpc3BsYXlGb3JtYXRcIikpIDogXCJcIjtcclxuICAgICAgICBwc2V1ZG9TZWFyY2hWaWV3LmZpbHRlcnRvID0gdGhpcy50byA/IGRheWpzKHRoaXMudG8pLmZvcm1hdCh0aGlzLmxjLnRva2VuKFwiZ2V0RnVsbERhdGVEaXNwbGF5Rm9ybWF0XCIpKSA6IFwiXCI7XHJcbiAgICAgICAgdGhpcy5zZW5kU2VhcmNoKHRydWUsIHRydWUsIHBzZXVkb1NlYXJjaFZpZXcpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhcnRMb2FkZWQoY2hhcnQ6IEJhc2VDaGFydENvbXBvbmVudCkge1xyXG4gICAgICAgIHRoaXMuQ2hhcnRJbnN0YW5jZSA9IGNoYXJ0O1xyXG4gICAgICAgIGNoYXJ0LkNoYXJ0LmV2ZW50cy5vbihcInJlYWR5XCIsICgpID0+IHtcclxuICAgICAgICAgICAgKDxhbTRjaGFydHMuWFlDaGFydD5jaGFydC5DaGFydCkueEF4ZXMuZWFjaCh4ID0+IHguem9vbSh7IHN0YXJ0OiAwLCBlbmQ6IDEgfSwgdHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgICAgICAgICAoPGFtNGNoYXJ0cy5YWUNoYXJ0PmNoYXJ0LkNoYXJ0KS55QXhlcy5lYWNoKHkgPT4geS56b29tKHsgc3RhcnQ6IDAsIGVuZDogMSB9LCB0cnVlLCB0cnVlKSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgKDxhbTRjaGFydHMuWFlDaGFydD5jaGFydC5DaGFydCkueEF4ZXMuZWFjaCh4ID0+IHguem9vbSh7IHN0YXJ0OiAwLCBlbmQ6IDEgfSwgdHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgICAgICAgICAgICAgKDxhbTRjaGFydHMuWFlDaGFydD5jaGFydC5DaGFydCkueUF4ZXMuZWFjaCh5ID0+IHkuem9vbSh7IHN0YXJ0OiAwLCBlbmQ6IDEgfSwgdHJ1ZSwgdHJ1ZSkpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIDUwMCBtaWxsaXNlY29uZGkgw6ggcGnDuSBvIG1lbm8gaWwgdGVtcG8gZGkgcHJpbWEgYW5pbWF6aW9uZSBkZWwgZ3JhZmljby4gRmluaXRvIHF1ZXN0byBzaSByZXNldHRhIGxvIHpvb21cclxuICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBhcHAtb3ZlcmZsb3ctdmlzaWJsZVwiIHdpZGdldD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdXBwZXJjYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3snVG9wIEFjdGl2aXRpZXMnIHwgbG9jYWxpemUgOiBsY319XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJEaXJJbmZvc1wiPiZuYnNwOy0mbmJzcDt7eycnICsgRGlySW5mb3MuY3B1cyArICcgJyArICgnQ1BVcycgfCBsb2NhbGl6ZSA6IGxjKSArIChEaXJJbmZvcy5yc3NwbGFuID8gJyAtICcgKyBEaXJJbmZvcy5yc3NwbGFuIDogJycpfX08L3NwYW4+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHdpZGdldC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGFwcC1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmb3JtIHJvbGU9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYXBwLWZpcnN0LWZpbHRlci1saW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWRhdGV0aW1lIFtSZWFkb25seV09XCJhdXRvVXBkYXRlXCIgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJmcm9tXCIgbmFtZT1cImZpbHRlcmZyb21cIiBbUGxhY2Vob2xkZXJdPVwiJ0Zyb20nIHwgbG9jYWxpemUgOiBsY1wiPjwvZm9ybS1kYXRldGltZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRldGltZSAgW1JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnRvXCIgbmFtZT1cImZpbHRlcnRvXCIgW1BsYWNlaG9sZGVyXT1cIidUbycgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWRhdGV0aW1lPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJzZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgfHwgYXV0b1VwZGF0ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gYnRuIGFwcC1idG4tc2VhcmNoIGFwcC1tYXJnaW4tdG9wLTIwXCIgKGNsaWNrKT1cInNlbmRTZWFyY2goKVwiIHR5cGU9XCJzdWJtaXRcIj48aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT48L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLWFic29sdXRlIGFwcC1yaWdodC0yNSBhcHAtdG9wLTQwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1bGwtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snVXBkYXRlIGV2ZXJ5JyB8IGxvY2FsaXplIDogbGN9fSZuYnNwOzxpbnB1dCBbcmVhZG9ubHldPVwiYXV0b1VwZGF0ZVwiIG1heGxlbmd0aD1cIjNcIiBjbGFzcz1cImZvcm0tY29udHJvbCBhcHAtdXBkZXZlcnktaW5wdXRcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2Vjb25kc1wiIG5hbWU9XCJzZWNzXCIgLz4mbmJzcDt7eydzZWNvbmQvcycgfCBsb2NhbGl6ZSA6IGxjfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHVsbC1yaWdodCBtLXQtMiBhcHAtbWFyZ2luLXJpZ2h0LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwic3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJhdXRvVXBkYXRlXCIgKG5nTW9kZWxDaGFuZ2UpPVwiYXV0b1VwZGF0ZUNoYW5nZWQoKTtcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNsaWRlciByb3VuZFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgYXBwLW1hcmdpbi10b3AtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cIiFzZWFyY2hWaWV3XCI+PGVtPnt7J0xvYWRpbmcgRGF0YScgfCBsb2NhbGl6ZSA6IGxjfX08L2VtPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlYXJjaFZpZXdcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBhcHAtbm8tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS08aDUgY2xhc3M9XCJhcHAtbWFyZ2luLXRvcC01XCI+e3snQWN0aXZlIFNlc3Npb25zJyB8IGxvY2FsaXplIDogbGN9fTwvaDU+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDI5MHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlcy1saW5lLWNoYXJ0ICpuZ0lmPVwiVG9wQWN0aXZlU2Vzc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTWluR3JpZERpc3RhbmNlXT1cIjY1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1RpbWVsaW5lXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0ZpbmFsSW5zdGFudHNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTGVnZW5kUGFkZGluZ109XCJ7dG9wOiAwLCBib3R0b206IDcsIHJpZ2h0OiAwLCBsZWZ0OiAxMH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRmlsbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW01lcmdlRGF0YXNldHNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEYXRhXT1cIlRvcEFjdGl2ZVNlc3Npb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0xlZ2VuZF09XCJ0cnVlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0b3BhY3RzZXNzaW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RhdGFHcm91cGluZ1RocmVzaG9sZF09XCI5OTk5OTk5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblNlbGVjdGlvbkNoYW5nZWQpPVwiZGF0YVNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiIChjaGFydExvYWRlZCk9XCJvbkNoYXJ0TG9hZGVkKCRldmVudClcIj48L2VzLWxpbmUtY2hhcnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNT57eydUb3AgTm9kZXMnIHwgbG9jYWxpemUgOiBsY319PC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXMtdGFibGUgWyhuZ01vZGVsKV09XCJUb3BOb2Rlc1wiIFtIaWRlUGFnaW5nXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJhcHAtY29sLW1pblwiPnt7J05vZGUnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57eydOb2RlIERlc2NyaXB0aW9uJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJhcHAtY29sLW1pblwiPnt7J0FjdGl2aXR5JyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJhcHAtY29sLW1pbiBhcHAtbm93cmFwXCI+e3snTm9kZSBUeXBlJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYm9keSBsZXQtbm9kZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFwcC1jb2wtbWluXCI+PHN0cm9uZz57e25vZGUucHJvZm5vZGVpZH19PC9zdHJvbmc+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3BhbiB0aXRsZT1cInt7bm9kZS5wcm9mbm9kZWRlc2N9fVwiPnt7bm9kZS5wcm9mbm9kZWRlc2MubGVuZ3RoID4gNDAgPyBub2RlLnByb2Zub2RlZGVzYy5zdWJzdHIoMCw0MCkgKyBcIi4uLlwiIDogbm9kZS5wcm9mbm9kZWRlc2N9fTwvc3Bhbj48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7bm9kZS5hY3Rpdml0eSB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tub2RlLm5vZGV0eXBlbmFtZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VzLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+e3snVG9wIFNlc3Npb25zJyB8IGxvY2FsaXplIDogbGN9fTwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVzLXRhYmxlIFsobmdNb2RlbCldPVwiVG9wU2Vzc2lvbnNcIiBbSGlkZVBhZ2luZ109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYXBwLWNvbC1taW5cIj5JRDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3snVXNlcicgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7J1RlbmFudCcgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7J1Byb2Nlc3MnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57eydBY3Rpdml0eScgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkNwdTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+V2FpdDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+REI8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlNjcmlwdDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+VGhyb3R0bGU8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlNsZWVwPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5OZXR3b3JraW5nPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5JTzwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2JvZHkgbGV0LXNlc3Npb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz57e3Nlc3Npb24uc2lkfX08L3N0cm9uZz48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi51c2VyfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi50ZW5hbnR9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLmJncHJvY2Vzc319PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24uYWN0aXZpdHkgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5jcHUgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi53YWl0IHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24uZGIgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5zY3JpcHQgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi50aHJvdHRsZSB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLnNsZWVwIHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24ubmV0IHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24uaW8gfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXMtdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYWN0X3NlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3RvcGFjdC90b3BhY3Rfc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkbWluLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvdG9wYWN0L3RvcGFjdF9zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsaUJBQWlCO0FBQ2pCLE9BQU8sRUFBc0IsU0FBUyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHckcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHOUQsU0FBUztBQUNULE9BQU8sRUFBaUIsVUFBVSxFQUFFLHFCQUFxQixFQUF1QixNQUFNLGNBQWMsQ0FBQztBQUlyRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsZUFBZTtBQUNmLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUl6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBZS9DLE1BQU0sT0FBTyx5QkFBeUI7SUFVbEMsWUFDVyxRQUFxQixFQUNyQixFQUF1QixFQUN0QixZQUFnQyxFQUNoQyxRQUFrQixFQUNsQixNQUF3QyxFQUN4QyxJQUFpQixFQUNqQixLQUFxQixFQUNJLE9BQWU7UUFQekMsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDaEMsYUFB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QUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN2RSxLQUFLLENBQUMsS0FBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBRTNGLDJHQUEyRztZQUMvRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3NIQS9MUSx5QkFBeUIsbVBBa0J0QixlQUFlOzBHQWxCbEIseUJBQXlCLHdDQUx2QjtRQUNQLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRTtLQUNqRSwwQkNwQ0wsaWtSQXFITTsyRkQ5RU8seUJBQXlCO2tCQVByQyxTQUFTOytCQUNJLGVBQWUsYUFDZDt3QkFDUCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7cUJBQ2pFOzswQkFxQkksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IEJhc2VDaGFydENvbXBvbmVudCwgRGF0ZVZhbHVlLCBMaW1pdCwgTGluZUNoYXJ0RGF0YSwgTGluZVNlcmllIH0gZnJvbSBcIkBlc2ZhZW56YS9lcy1jaGFydHNcIjtcclxuaW1wb3J0IHsgRGF0ZVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuaW1wb3J0IHsgUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9wcmVmZXJlbmNlc1wiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IEhUVFBTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9odHRwc2VydmljZVwiO1xyXG5cclxuLy8gQ2xhc3NpXHJcbmltcG9ydCB7IERpcmVjdG9ySW5mb3MsIFJlcG9zaXRvcnksIFRvcEFjdGl2aXRpZXNEYXRhVmlldywgVG9wTm9kZSwgVG9wU2Vzc2lvbiB9IGZyb20gXCIuLi8uLi9tb2RlbHNcIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0ICogYXMgYW00Y2hhcnRzIGZyb20gXCJAYW1jaGFydHMvYW1jaGFydHM0L2NoYXJ0c1wiO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBBZG1Ub3BBY3Rpdml0aWVMb2MgfSBmcm9tIFwiLi4vXCI7XHJcblxyXG4vLyBDaGlhbWF0ZSBhaSBSZXBvc2l0b3J5XHJcbmltcG9ydCB7IEJhc2VNb2R1bGVDb21tdW5pY2F0aW9uc0NvbnN1bWVyIH0gZnJvbSBcIi4uLy4uL2NvbW11bmljYXRpb25zL2Jhc2UvQmFzZU1vZHVsZUNvbW11bmljYXRpb25zQ29uc3VtZXJcIjtcclxuaW1wb3J0IHsgQURNX0JBQ0tFTkRfVVJMIH0gZnJvbSBcIi4uLy4uL3Rva2Vuc1wiO1xyXG5cclxuLyoqXHJcbiAqIERpY2hpYXJhemlvbmUgZGVsbGEgdmFyaWFiaWxlIGdsb2JhbGUgZGF5anMuIEwnb25lcmUgZGkgXCJjcmVhcmxhXCIgw6ggYWZmaWRhdG8gYWxsJ2FwcGxpY2F6aW9uZSBjaGUgdXRpbGl6emEgcXVlc3RhIGxpYnJlcmlhLCBcclxuICogY2hlIGRvdnLDoCBpbXBvcnRhcmUgbG8gc2NyaXB0IGdsb2JhbGUgZGkgZGF5anMgbmVsbGEgQ0xJXHJcbiAqL1xyXG4gZGVjbGFyZSB2YXIgZGF5anM6IGFueTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwidG9wYWN0X3NlYXJjaFwiLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogQWRtVG9wQWN0aXZpdGllTG9jIH1cclxuICAgIF0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3RvcGFjdF9zZWFyY2guY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRtVG9wQWN0aXZpdGllc0NvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgc2VhcmNoVmlldzogVG9wQWN0aXZpdGllc0RhdGFWaWV3ID0gbmV3IFRvcEFjdGl2aXRpZXNEYXRhVmlldygpO1xyXG4gICAgcHVibGljIHN0b3JhZ2VTdWI6IGFueTtcclxuICAgIHByaXZhdGUgTGFzdERhdGFQb2ludDogYW55O1xyXG5cclxuICAgIHB1YmxpYyBhdXRvVXBkYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2Vjb25kczogc3RyaW5nID0gXCI1XCI7XHJcblxyXG4gICAgcHJpdmF0ZSBDaGFydEluc3RhbmNlOiBCYXNlQ2hhcnRDb21wb25lbnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGRhdGVFeHRzOiBEYXRlU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2U6IFByZWZlcmVuY2VzU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgICAgICBwcml2YXRlIF9zdGF0ZTogQmFzZU1vZHVsZUNvbW11bmljYXRpb25zQ29uc3VtZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIVFRQU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBASW5qZWN0KEFETV9CQUNLRU5EX1VSTCkgcHJpdmF0ZSBiYWNrZW5kOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgdGhpcy5fc3RhdGUuaGFuZGxlTmF2aWdhdGlvbih0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbXCJ0aXRsZVwiXSwgZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVN1YiA9IHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuSW5pdChwYXJhbXNbXCJpZ25vcmVTdG9yYWdlXCJdKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBJbml0KGlnbm9yZVN0b3JlKSB7XHJcbiAgICAgICAgdGhpcy5kb0luaXQoaWdub3JlU3RvcmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGRvSW5pdChpZ25vcmVTdG9yYWdlKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtPFRvcEFjdGl2aXRpZXNEYXRhVmlldz4oXCJIb3RTZWFyY2hUb3BBY3RcIikudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgaWYgKCFpZ25vcmVTdG9yYWdlICYmIGl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChudWxsKTtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoXCIvcGFnZXMvYWRtL3RvcGFjdFwiKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyA9IFtdO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiSG90U2VhcmNoVG9wQWN0XCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0KEhvdFBvdGF0bzogVG9wQWN0aXZpdGllc0RhdGFWaWV3KSB7XHJcbiAgICAgICAgLy9TZSBobyBsYSBIb3RQb3RhdG8gdnVvbCBkaXJlIGNoZSBzb25vIGFwcGVuYSB0b3JuYXRvIGRhbGwnZWRpdC9udW92by4gUmlmYWNjaW8gbGEgcmljZXJjYSBpbiBiYXNlIGFpIGZpbHRyaSBwcmVjZWRlbnRpXHJcbiAgICAgICAgLy9BbHRpcm1lbnRpIGdlbmVybyBpbCBtb2RlbGxvIG51b3ZvIG5vcm1hbG1lbnRlXHJcbiAgICAgICAgaWYgKEhvdFBvdGF0bykge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSBIb3RQb3RhdG87XHJcbiAgICAgICAgICAgIHRoaXMuUE9TVEdldEl0ZW1zKHRoaXMuYmFja2VuZCArIFJlcG9zaXRvcnlbXCJQT1NUX0FkbV9HZXRUb3BBY3Rpdml0aWVzXCJdLCB0aGlzLnNlYXJjaFZpZXcsIGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IG5ldyBUb3BBY3Rpdml0aWVzRGF0YVZpZXcoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFNlYXJjaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdG9yYWdlU3ViKVxyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZW5kU2VhcmNoKHJlc2V0UGFnZTogYm9vbGVhbiA9IHRydWUsIHVwZGF0ZTogYm9vbGVhbiA9IGZhbHNlLCBzZWFyY2hWaWV3T3ZlcnJpZGU6IFRvcEFjdGl2aXRpZXNEYXRhVmlldyA9IG51bGwpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHJlc2V0UGFnZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnBhZ2UgPSAxO1xyXG5cclxuICAgICAgICB0aGlzLlBPU1RHZXRJdGVtcyh0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0VG9wQWN0aXZpdGllc1wiXSwgc2VhcmNoVmlld092ZXJyaWRlID8/IHRoaXMuc2VhcmNoVmlldywgdXBkYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBQT1NUR2V0SXRlbXModXJsOiBzdHJpbmcsIGRhdGE6IFRvcEFjdGl2aXRpZXNEYXRhVmlldywgdXBkYXRlOiBib29sZWFuKSB7XHJcblxyXG4gICAgICAgIHRoaXMuaHR0cC5wb3N0PFRvcEFjdGl2aXRpZXNEYXRhVmlldz4odXJsLCBkYXRhKS5zdWJzY3JpYmUoYXN5bmMgKHQpID0+IHtcclxuICAgICAgICAgICAgLy9TZSBzb25vIGluIG1vZGFsaXTvv70gZGkgdXBkYXRlIG5vbiBkZXZvIHRvY2NhcmUgbGEgc2VhcmNoVmlldyBhdHR1YWxlIHNlIG5vbiBwZXIgaWwgc2VhcmNoaW5wcm9ncmVzcyBjaGUgdmllbmUgbWVzc28gZGFsbCdlcyB0YWJsZVxyXG4gICAgICAgICAgICBpZiAoIXVwZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gdDtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJIb3RTZWFyY2hUb3BBY3RcIiwgdGhpcy5zZWFyY2hWaWV3KS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgZGlyaW5mb3MgPSBhd2FpdCB0aGlzLmdldERpcmVjdG9ySW5mb3MoKTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5yZXZpZXdCaW5kaW5ncyh1cGRhdGUsIHQsIGRpcmluZm9zKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREaXJlY3RvckluZm9zKCk6IFByb21pc2U8RGlyZWN0b3JJbmZvcz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERpcmVjdG9ySW5mb3M+KHRoaXMuYmFja2VuZCArIFJlcG9zaXRvcnlbXCJHRVRfQWRtX0dldEluZm9zXCJdKS5waXBlKG1hcChyZXMgPT4geyByZXR1cm4gcmVzOyB9KSkudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBUcmFzZm9ybWF6aW9uZSBkYSBzZWFyY2h2aWV3IGNvbiB1bmljbyBlbGVtZW50byBjb24gdHV0dG8gYWkgMyBlbGVtZW50aTpcclxuICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogR3JhZmljbywgVG9wTm9kZXMgZSBUb3BTZXNzaW9uc1xyXG4gICAgVG9wQWN0aXZlU2Vzc2lvbnM6IExpbmVDaGFydERhdGE7XHJcbiAgICBUb3BOb2RlczogVG9wTm9kZVtdO1xyXG4gICAgVG9wU2Vzc2lvbnM6IFRvcFNlc3Npb25bXTtcclxuICAgIERpckluZm9zOiBEaXJlY3RvckluZm9zO1xyXG4gICAgc2VyaWVzUHJvcGVydGllc01hcHBpbmc6IHsgW2luZGV4OiBzdHJpbmddOiBMaW5lU2VyaWUgfSA9IHt9O1xyXG4gICAgcHJvcGVydGllc1Nlcmllc01hcHBpbmc6IHsgW2luZGV4OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcclxuICAgICAgICBbXCJjcHV0aW1lXCJdOiBcIkNQVVwiLFxyXG4gICAgICAgIFtcIndhaXR0aW1lXCJdOiBcIldhaXRcIixcclxuICAgICAgICBbXCJzY3JpcHR0aW1lXCJdOiBcIlNjcmlwdGluZ1wiLFxyXG4gICAgICAgIFtcImRidGltZVwiXTogXCJEQlwiLFxyXG4gICAgICAgIFtcIm5ldHRpbWVcIl06IFwiTmV0d29ya1wiLFxyXG4gICAgICAgIFtcInRocm90dGxldGltZVwiXTogXCJUaHJvdHRsaW5nXCIsXHJcbiAgICAgICAgW1wic2xlZXB0aW1lXCJdOiBcIlNsZWVwXCIsXHJcbiAgICAgICAgW1wiaW90aW1lXCJdOiBcIklPXCJcclxuICAgIH07XHJcblxyXG4gICAgcmV2aWV3QmluZGluZ3ModXBkYXRlOiBib29sZWFuLCBzZWFyY2hWaWV3T3ZlcnJpZGU/LCBkaXJJbmZvcz86IERpcmVjdG9ySW5mb3MpIHtcclxuICAgICAgICBsZXQgcmVmZXJlbmNlID0gKHNlYXJjaFZpZXdPdmVycmlkZSA/PyB0aGlzLnNlYXJjaFZpZXcpLml0ZW1zWzBdO1xyXG4gICAgICAgIHRoaXMuVG9wTm9kZXMgPSByZWZlcmVuY2UudG9wbm9kZXM7XHJcbiAgICAgICAgdGhpcy5Ub3BTZXNzaW9ucyA9IHJlZmVyZW5jZS50b3BzZXNzaW9ucztcclxuICAgICAgICB0aGlzLkRpckluZm9zID0gZGlySW5mb3M7XHJcblxyXG4gICAgICAgIGlmICghcmVmZXJlbmNlLmFjdHNlc3Npb25zIHx8IHJlZmVyZW5jZS5hY3RzZXNzaW9ucy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLlRvcEFjdGl2ZVNlc3Npb25zID0gbnVsbDtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHNlcmllczogTGluZVNlcmllW10gPSBbXTsgICAgICBcclxuICAgICAgICBsZXQgcHJvcHMgPSBPYmplY3Qua2V5cyhyZWZlcmVuY2UuYWN0c2Vzc2lvbnNbMF0pO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHByb3BzW2ldICE9ICdzYW1wbGV0aW1lJykge1xyXG4gICAgICAgICAgICAgICAgbGV0IHMgPSBuZXcgTGluZVNlcmllKHRoaXMucHJvcGVydGllc1Nlcmllc01hcHBpbmdbcHJvcHNbaV1dLCBbXSwgbnVsbCwgbnVsbCwgXCJzZXNzaW9uc1wiKTtcclxuICAgICAgICAgICAgICAgIHNlcmllcy5wdXNoKHMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXJpZXNQcm9wZXJ0aWVzTWFwcGluZ1twcm9wc1tpXV0gPSBzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlZmVyZW5jZS5hY3RzZXNzaW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgaXRlbXJlZiA9IHJlZmVyZW5jZS5hY3RzZXNzaW9uc1tpXTtcclxuICAgICAgICAgICAgbGV0IHRoZUQgPSBuZXcgRGF0ZShpdGVtcmVmLnNhbXBsZXRpbWUpO1xyXG5cclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgICAgIGlmIChwcm9wc1tpXSAhPSAnc2FtcGxldGltZScgJiYgKCF1cGRhdGUgfHwgdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih0aGVEKS5pc0FmdGVyKHRoaXMuTGFzdERhdGFQb2ludCkpKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VyaWVzUHJvcGVydGllc01hcHBpbmdbcHJvcHNbaV1dLnZhbHVlcy5wdXNoKG5ldyBEYXRlVmFsdWUodGhlRCwgaXRlbXJlZltwcm9wc1tpXV0pKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh1cGRhdGUgJiYgdGhpcy5DaGFydEluc3RhbmNlKSB7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gbmV3IExpbmVDaGFydERhdGEoc2VyaWVzLCBuZXcgTGltaXQoZGlySW5mb3M/LnRocmVhZHMsIHRoaXMubGMubG9jKFwiTWF4aW11bSBUaHJlYWRzXCIpKSk7XHJcbiAgICAgICAgICAgIGlmIChzZXJpZXMuc29tZSh0ID0+IHQudmFsdWVzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkNoYXJ0SW5zdGFuY2UuYWRkRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuTGFzdERhdGFQb2ludCA9IHNlcmllcy5tYXAodCA9PiBkYXlqcy5tYXgodC52YWx1ZXMubWFwKHYgPT4gdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih2LmQpKSkpWzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLlRvcEFjdGl2ZVNlc3Npb25zID0gbmV3IExpbmVDaGFydERhdGEoc2VyaWVzLCBuZXcgTGltaXQoZGlySW5mb3M/LnRocmVhZHMsIHRoaXMubGMubG9jKFwiTWF4aW11bSBUaHJlYWRzXCIpKSk7XHJcbiAgICAgICAgICAgIHRoaXMuTGFzdERhdGFQb2ludCA9IHNlcmllcy5tYXAodCA9PiBkYXlqcy5tYXgodC52YWx1ZXMubWFwKHYgPT4gdGhpcy5kYXRlRXh0cy5nZXREYXRlQ29udmVydGlvbih2LmQpKSkpWzBdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAjcmVnaW9uIEdlc3Rpb25lIHVwZGF0ZSBhdXRvbWF0aWNvXHJcbiAgICB1cGRhdGVUaW1lcjogYW55O1xyXG4gICAgYXV0b1VwZGF0ZUNoYW5nZWQoKSB7XHJcbiAgICAgICAgaWYgKCEvXlsxLTldXFxkKiQvLnRlc3QodGhpcy5zZWNvbmRzKSlcclxuICAgICAgICAgICAgdGhpcy5zZWNvbmRzID0gJzEwJztcclxuICAgICAgICBjb25zdCBzZWNvbmRzSW5NcyA9IHBhcnNlSW50KHRoaXMuc2Vjb25kcywgbnVsbCkgKiAxMDAwO1xyXG4gICAgICAgIGlmICh0aGlzLmF1dG9VcGRhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZW5kU2VhcmNoKGZhbHNlLCB0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVUaW1lciA9IHNldEludGVydmFsKCgpID0+IHsgdGhpcy5zZW5kU2VhcmNoKGZhbHNlLCB0cnVlKTsgfSwgc2Vjb25kc0luTXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy51cGRhdGVUaW1lcik7XHJcbiAgICB9XHJcbiAgICAvLyAjZW5kcmVnaW9uXHJcblxyXG4gICAgcHJpdmF0ZSBmcm9tOiBEYXRlO1xyXG4gICAgcHJpdmF0ZSB0bzogRGF0ZTtcclxuXHJcbiAgICBkYXRhU2VsZWN0aW9uQ2hhbmdlZChldmVudDogeyBmcm9tOiBEYXRlLCB0bzogRGF0ZSwgaW5pdGlhbDogYm9vbGVhbiB9KSB7XHJcbiAgICAgICAgdGhpcy5mcm9tID0gZXZlbnQuaW5pdGlhbCA/ICh0aGlzLnNlYXJjaFZpZXcuZmlsdGVyZnJvbSA/IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odGhpcy5zZWFyY2hWaWV3LmZpbHRlcmZyb20pLnRvRGF0ZSgpIDogXCJcIikgOiBldmVudC5mcm9tO1xyXG4gICAgICAgIHRoaXMudG8gPSBldmVudC5pbml0aWFsID8gKHRoaXMuc2VhcmNoVmlldy5maWx0ZXJ0byA/IHRoaXMuZGF0ZUV4dHMuZ2V0RGF0ZUNvbnZlcnRpb24odGhpcy5zZWFyY2hWaWV3LmZpbHRlcnRvKS50b0RhdGUoKSA6IFwiXCIpIDogZXZlbnQudG87XHJcblxyXG4gICAgICAgIHZhciBwc2V1ZG9TZWFyY2hWaWV3OiBUb3BBY3Rpdml0aWVzRGF0YVZpZXcgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuc2VhcmNoVmlldykpO1xyXG4gICAgICAgIHBzZXVkb1NlYXJjaFZpZXcuZmlsdGVyZnJvbSA9IHRoaXMuZnJvbSA/IGRheWpzKHRoaXMuZnJvbSkuZm9ybWF0KHRoaXMubGMudG9rZW4oXCJnZXRGdWxsRGF0ZURpc3BsYXlGb3JtYXRcIikpIDogXCJcIjtcclxuICAgICAgICBwc2V1ZG9TZWFyY2hWaWV3LmZpbHRlcnRvID0gdGhpcy50byA/IGRheWpzKHRoaXMudG8pLmZvcm1hdCh0aGlzLmxjLnRva2VuKFwiZ2V0RnVsbERhdGVEaXNwbGF5Rm9ybWF0XCIpKSA6IFwiXCI7XHJcbiAgICAgICAgdGhpcy5zZW5kU2VhcmNoKHRydWUsIHRydWUsIHBzZXVkb1NlYXJjaFZpZXcpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2hhcnRMb2FkZWQoY2hhcnQ6IEJhc2VDaGFydENvbXBvbmVudCkge1xyXG4gICAgICAgIHRoaXMuQ2hhcnRJbnN0YW5jZSA9IGNoYXJ0O1xyXG4gICAgICAgIGNoYXJ0LkNoYXJ0LmV2ZW50cy5vbihcInJlYWR5XCIsICgpID0+IHtcclxuICAgICAgICAgICAgKDxhbTRjaGFydHMuWFlDaGFydD5jaGFydC5DaGFydCkueEF4ZXMuZWFjaCh4ID0+IHguem9vbSh7IHN0YXJ0OiAwLCBlbmQ6IDEgfSwgdHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgICAgICAgICAoPGFtNGNoYXJ0cy5YWUNoYXJ0PmNoYXJ0LkNoYXJ0KS55QXhlcy5lYWNoKHkgPT4geS56b29tKHsgc3RhcnQ6IDAsIGVuZDogMSB9LCB0cnVlLCB0cnVlKSk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgKDxhbTRjaGFydHMuWFlDaGFydD5jaGFydC5DaGFydCkueEF4ZXMuZWFjaCh4ID0+IHguem9vbSh7IHN0YXJ0OiAwLCBlbmQ6IDEgfSwgdHJ1ZSwgdHJ1ZSkpO1xyXG4gICAgICAgICAgICAgICAgKDxhbTRjaGFydHMuWFlDaGFydD5jaGFydC5DaGFydCkueUF4ZXMuZWFjaCh5ID0+IHkuem9vbSh7IHN0YXJ0OiAwLCBlbmQ6IDEgfSwgdHJ1ZSwgdHJ1ZSkpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIDUwMCBtaWxsaXNlY29uZGkgw6ggcGnDuSBvIG1lbm8gaWwgdGVtcG8gZGkgcHJpbWEgYW5pbWF6aW9uZSBkZWwgZ3JhZmljby4gRmluaXRvIHF1ZXN0byBzaSByZXNldHRhIGxvIHpvb21cclxuICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBhcHAtb3ZlcmZsb3ctdmlzaWJsZVwiIHdpZGdldD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdXBwZXJjYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3snVG9wIEFjdGl2aXRpZXMnIHwgbG9jYWxpemUgOiBsY319XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJEaXJJbmZvc1wiPiZuYnNwOy0mbmJzcDt7eycnICsgRGlySW5mb3MuY3B1cyArICcgJyArICgnQ1BVcycgfCBsb2NhbGl6ZSA6IGxjKSArIChEaXJJbmZvcy5yc3NwbGFuID8gJyAtICcgKyBEaXJJbmZvcy5yc3NwbGFuIDogJycpfX08L3NwYW4+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHdpZGdldC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGFwcC1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmb3JtIHJvbGU9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYXBwLWZpcnN0LWZpbHRlci1saW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWRhdGV0aW1lIFtSZWFkb25seV09XCJhdXRvVXBkYXRlXCIgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJmcm9tXCIgbmFtZT1cImZpbHRlcmZyb21cIiBbUGxhY2Vob2xkZXJdPVwiJ0Zyb20nIHwgbG9jYWxpemUgOiBsY1wiPjwvZm9ybS1kYXRldGltZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1kYXRldGltZSAgW1JlYWRvbmx5XT1cImF1dG9VcGRhdGVcIiBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnRvXCIgbmFtZT1cImZpbHRlcnRvXCIgW1BsYWNlaG9sZGVyXT1cIidUbycgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWRhdGV0aW1lPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJzZWFyY2hWaWV3LnNlYXJjaGlucHJvZ3Jlc3MgfHwgYXV0b1VwZGF0ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gYnRuIGFwcC1idG4tc2VhcmNoIGFwcC1tYXJnaW4tdG9wLTIwXCIgKGNsaWNrKT1cInNlbmRTZWFyY2goKVwiIHR5cGU9XCJzdWJtaXRcIj48aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT48L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLWFic29sdXRlIGFwcC1yaWdodC0yNSBhcHAtdG9wLTQwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB1bGwtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snVXBkYXRlIGV2ZXJ5JyB8IGxvY2FsaXplIDogbGN9fSZuYnNwOzxpbnB1dCBbcmVhZG9ubHldPVwiYXV0b1VwZGF0ZVwiIG1heGxlbmd0aD1cIjNcIiBjbGFzcz1cImZvcm0tY29udHJvbCBhcHAtdXBkZXZlcnktaW5wdXRcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2Vjb25kc1wiIG5hbWU9XCJzZWNzXCIgLz4mbmJzcDt7eydzZWNvbmQvcycgfCBsb2NhbGl6ZSA6IGxjfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHVsbC1yaWdodCBtLXQtMiBhcHAtbWFyZ2luLXJpZ2h0LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwic3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJhdXRvVXBkYXRlXCIgKG5nTW9kZWxDaGFuZ2UpPVwiYXV0b1VwZGF0ZUNoYW5nZWQoKTtcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNsaWRlciByb3VuZFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgYXBwLW1hcmdpbi10b3AtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cIiFzZWFyY2hWaWV3XCI+PGVtPnt7J0xvYWRpbmcgRGF0YScgfCBsb2NhbGl6ZSA6IGxjfX08L2VtPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlYXJjaFZpZXdcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBhcHAtbm8tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS08aDUgY2xhc3M9XCJhcHAtbWFyZ2luLXRvcC01XCI+e3snQWN0aXZlIFNlc3Npb25zJyB8IGxvY2FsaXplIDogbGN9fTwvaDU+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDI5MHB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlcy1saW5lLWNoYXJ0ICpuZ0lmPVwiVG9wQWN0aXZlU2Vzc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTWluR3JpZERpc3RhbmNlXT1cIjY1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1RpbWVsaW5lXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0ZpbmFsSW5zdGFudHNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbTGVnZW5kUGFkZGluZ109XCJ7dG9wOiAwLCBib3R0b206IDcsIHJpZ2h0OiAwLCBsZWZ0OiAxMH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRmlsbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW01lcmdlRGF0YXNldHNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtEYXRhXT1cIlRvcEFjdGl2ZVNlc3Npb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0xlZ2VuZF09XCJ0cnVlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0b3BhY3RzZXNzaW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RhdGFHcm91cGluZ1RocmVzaG9sZF09XCI5OTk5OTk5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblNlbGVjdGlvbkNoYW5nZWQpPVwiZGF0YVNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiIChjaGFydExvYWRlZCk9XCJvbkNoYXJ0TG9hZGVkKCRldmVudClcIj48L2VzLWxpbmUtY2hhcnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNT57eydUb3AgTm9kZXMnIHwgbG9jYWxpemUgOiBsY319PC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZXMtdGFibGUgWyhuZ01vZGVsKV09XCJUb3BOb2Rlc1wiIFtIaWRlUGFnaW5nXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJhcHAtY29sLW1pblwiPnt7J05vZGUnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57eydOb2RlIERlc2NyaXB0aW9uJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJhcHAtY29sLW1pblwiPnt7J0FjdGl2aXR5JyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJhcHAtY29sLW1pbiBhcHAtbm93cmFwXCI+e3snTm9kZSBUeXBlJyB8IGxvY2FsaXplIDogbGN9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYm9keSBsZXQtbm9kZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImFwcC1jb2wtbWluXCI+PHN0cm9uZz57e25vZGUucHJvZm5vZGVpZH19PC9zdHJvbmc+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48c3BhbiB0aXRsZT1cInt7bm9kZS5wcm9mbm9kZWRlc2N9fVwiPnt7bm9kZS5wcm9mbm9kZWRlc2MubGVuZ3RoID4gNDAgPyBub2RlLnByb2Zub2RlZGVzYy5zdWJzdHIoMCw0MCkgKyBcIi4uLlwiIDogbm9kZS5wcm9mbm9kZWRlc2N9fTwvc3Bhbj48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYXBwLW5vd3JhcFwiPnt7bm9kZS5hY3Rpdml0eSB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tub2RlLm5vZGV0eXBlbmFtZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2VzLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+e3snVG9wIFNlc3Npb25zJyB8IGxvY2FsaXplIDogbGN9fTwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVzLXRhYmxlIFsobmdNb2RlbCldPVwiVG9wU2Vzc2lvbnNcIiBbSGlkZVBhZ2luZ109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiYXBwLWNvbC1taW5cIj5JRDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3snVXNlcicgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7J1RlbmFudCcgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7J1Byb2Nlc3MnIHwgbG9jYWxpemUgOiBsY319PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57eydBY3Rpdml0eScgfCBsb2NhbGl6ZSA6IGxjfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkNwdTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+V2FpdDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+REI8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlNjcmlwdDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+VGhyb3R0bGU8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlNsZWVwPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5OZXR3b3JraW5nPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5JTzwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2JvZHkgbGV0LXNlc3Npb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHN0cm9uZz57e3Nlc3Npb24uc2lkfX08L3N0cm9uZz48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi51c2VyfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi50ZW5hbnR9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLmJncHJvY2Vzc319PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24uYWN0aXZpdHkgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5jcHUgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi53YWl0IHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24uZGIgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi5zY3JpcHQgfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c2Vzc2lvbi50aHJvdHRsZSB8IG51bWJlciA6ICcxLjEtMicgOiAnaXQnfX0gJTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzZXNzaW9uLnNsZWVwIHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24ubmV0IHwgbnVtYmVyIDogJzEuMS0yJyA6ICdpdCd9fSAlPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Nlc3Npb24uaW8gfCBudW1iZXIgOiAnMS4xLTInIDogJ2l0J319ICU8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXMtdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -76,8 +76,7 @@ export class AdmWrkComponent {
76
76
  }
77
77
  else {
78
78
  this.searchView = new ProcessesView();
79
- //Per fare un primo giro di binding sulla View che serve a valorizzare le colonne del modello anche per la prima chiamata
80
- setTimeout(() => this.sendSearch());
79
+ this.sendSearch();
81
80
  }
82
81
  }
83
82
  sendSearch(resetPage = true) {
@@ -176,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
176
175
  type: ViewChild,
177
176
  args: ["dlgChangeCg"]
178
177
  }] } });
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX3dyay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtlcnMvYWRtX3dyay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtlcnMvYWRtX3dyay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVFsRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc5RCxTQUFTO0FBQ1QsT0FBTyxFQUFZLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFLbkUsZUFBZTtBQUNmLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU8vQyxNQUFNLE9BQU8sZUFBZTtJQU94QixZQUNZLE9BQXVCLEVBQ3ZCLE9BQXVCLEVBQ3hCLEVBQXVCLEVBQ3RCLFlBQWdDLEVBQ2hDLE1BQXdDLEVBQ3hDLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLFFBQWtCLEVBQ08sT0FBZTtRQVJ4QyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDaEMsV0FBTSxHQUFO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SSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsb0NBQW9DLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3BLLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7NEdBbEtRLGVBQWUsb1JBZ0JaLGVBQWU7Z0dBaEJsQixlQUFlLDhPQzlCNUIsZy9MQTZGTSwrdUZEbEVhLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDOzJGQUc3RCxlQUFlO2tCQUwzQixTQUFTOytCQUNJLFNBQVMsaUJBQ0osQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUM7OzBCQW1CakUsTUFBTTsyQkFBQyxlQUFlOzRDQWlITixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBQ08sV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9leHRlbnNpb25zXCI7XHJcbmltcG9ydCB7IFByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvcHJlZmVyZW5jZXNcIjtcclxuaW1wb3J0IHsgRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb24gfSBmcm9tIFwiQGVzZmFlbnphL2VzLXRhYmxlXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgSFRUUFNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2h0dHBzZXJ2aWNlXCI7XHJcblxyXG4vLyBDbGFzc2lcclxuaW1wb3J0IHsgS2V5VmFsdWUsIFByb2Nlc3Nlc1ZpZXcsIFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vLi4vbW9kZWxzXCI7XHJcblxyXG4vLyBEaXJldHRpdmUsIENvbXBvbmVudGksIExpYnJlcmllXHJcbmltcG9ydCB7IE1vZGFsRGlyZWN0aXZlIH0gZnJvbSBcIm5neC1ib290c3RyYXAvbW9kYWxcIjtcclxuXHJcbi8vIEFwcGxpY2F6aW9uZVxyXG5pbXBvcnQgeyBBZG1XcmtMb2MgfSBmcm9tIFwiLi4vXCI7XHJcbmltcG9ydCB7IEJhc2VNb2R1bGVDb21tdW5pY2F0aW9uc0NvbnN1bWVyIH0gZnJvbSBcIi4uLy4uL2NvbW11bmljYXRpb25zL2Jhc2UvQmFzZU1vZHVsZUNvbW11bmljYXRpb25zQ29uc3VtZXJcIjtcclxuaW1wb3J0IHsgQURNX0JBQ0tFTkRfVVJMIH0gZnJvbSBcIi4uLy4uL3Rva2Vuc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJhZG1fd3JrXCIsXHJcbiAgICB2aWV3UHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogQWRtV3JrTG9jIH1dLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9hZG1fd3JrLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkbVdya0NvbXBvbmVudCB7XHJcblxyXG4gICAgcHVibGljIHNlYXJjaFZpZXc6IFByb2Nlc3Nlc1ZpZXcgPSBuZXcgUHJvY2Vzc2VzVmlldygpO1xyXG4gICAgcHVibGljIER5bmFtaWNPcHM6IEVzVGFibGVPcGVyYXRpb25EZWZpbml0aW9uW10gPSBbXTtcclxuICAgIHB1YmxpYyBzdG9yYWdlU3ViOiBhbnk7XHJcbiAgICBwdWJsaWMgdmFsdWVUb1Nob3c6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSB1dGlFeHRzOiBVdGlsaXR5U2VydmljZSwgXHJcbiAgICAgICAgcHJpdmF0ZSBtc2dFeHRzOiBNZXNzYWdlU2VydmljZSwgXHJcbiAgICAgICAgcHVibGljIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBcclxuICAgICAgICBwcml2YXRlIGxvY2FsU3RvcmFnZTogUHJlZmVyZW5jZXNTZXJ2aWNlLCBcclxuICAgICAgICBwcml2YXRlIF9zdGF0ZTogQmFzZU1vZHVsZUNvbW11bmljYXRpb25zQ29uc3VtZXIsIFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsIFxyXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBcclxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbiwgXHJcbiAgICAgICAgQEluamVjdChBRE1fQkFDS0VORF9VUkwpIHByaXZhdGUgYmFja2VuZDogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIHRoaXMuX3N0YXRlLmhhbmRsZU5hdmlnYXRpb24odGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhW1widGl0bGVcIl0sIGZhbHNlKTtcclxuXHJcbiAgICAgICAgdGhpcy5EeW5hbWljT3BzID0gW1xyXG4gICAgICAgICAgICBuZXcgRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb24oXCJ0cmFjZV9vblwiLCB0aGlzLmxjLmxvYyhcIkFjdGl2YXRlIFByb2Nlc3MgVHJhY2luZ1wiKSwgXCJmYSBmYS1jaXJjbGUgdGV4dC1kYW5nZXJcIiwgXCJcIiwgXCJ0cmFjZV9lbmFibGVkXCIsIFwiTlwiKSxcclxuICAgICAgICAgICAgbmV3IEVzVGFibGVPcGVyYXRpb25EZWZpbml0aW9uKFwidHJhY2Vfb2ZmXCIsIHRoaXMubGMubG9jKFwiRGVhY3RpdmF0ZSBQcm9jZXNzIFRyYWNpbmdcIiksIFwiZmEgZmEtY2lyY2xlIHRleHQtc3VjY2Vzc1wiLCBcIlwiLCBcInRyYWNlX2VuYWJsZWRcIiwgXCJZXCIpLFxyXG4gICAgICAgICAgICBuZXcgRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb24oXCJraWxsXCIsIHRoaXMubGMubG9jKFwiS2lsbCBQcm9jZXNzXCIpLCBcImZhIGZhLWJhbiB0ZXh0LWRhbmdlclwiKSxcclxuICAgICAgICAgICAgbmV3IEVzVGFibGVPcGVyYXRpb25EZWZpbml0aW9uKFwiY2hhbmdlX2NnXCIsIHRoaXMubGMubG9jKFwiQ2hhbmdlIENvbnN1bWVyIEdyb3VwXCIpLCBcImZhIGZhLWVkaXQgdGV4dC1pbmZvXCIpXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTdWIgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLkluaXQocGFyYW1zW1wiaWdub3JlU3RvcmFnZVwiXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvcmFnZVN1YilcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgSW5pdChpZ25vcmVTdG9yYWdlKSB7XHJcbiAgICAgICAgbGV0IGl0ZW0gPSBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtPFByb2Nlc3Nlc1ZpZXc+KFwiSG90UHJvY2Vzc2F0b1wiKS50b1Byb21pc2UoKTtcclxuICAgICAgICBpZiAoIWlnbm9yZVN0b3JhZ2UgJiYgaXRlbSkge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoaXRlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0KG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShcIi9wYWdlcy9hZG0vc2VydmVyd29ya2Vyc1wiKTtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyA9IFtdO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFwiSG90UHJvY2Vzc2F0b1wiKS50b1Byb21pc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdChIb3RQb3RhdG86IFByb2Nlc3Nlc1ZpZXcpIHtcclxuICAgICAgICAvL1NlIGhvIGxhIEhvdFBvdGF0byB2dW9sIGRpcmUgY2hlIHNvbm8gYXBwZW5hIHRvcm5hdG8gZGFsbCdlZGl0L251b3ZvLiBSaWZhY2NpbyBsYSByaWNlcmNhIGluIGJhc2UgYWkgZmlsdHJpIHByZWNlZGVudGlcclxuICAgICAgICAvL0FsdGlybWVudGkgZ2VuZXJvIGlsIG1vZGVsbG8gbnVvdm8gbm9ybWFsbWVudGVcclxuICAgICAgICBpZiAoSG90UG90YXRvKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IEhvdFBvdGF0bztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuUE9TVEdldFByb2Nlc3Nlcyh0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiUE9TVF9BZG1fR2V0U2VydmVyV29ya2Vyc1wiXSwgdGhpcy5zZWFyY2hWaWV3KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmlldyA9IG5ldyBQcm9jZXNzZXNWaWV3KCk7XHJcblxyXG4gICAgICAgICAgICAvL1BlciBmYXJlIHVuIHByaW1vIGdpcm8gZGkgYmluZGluZyBzdWxsYSBWaWV3IGNoZSBzZXJ2ZSBhIHZhbG9yaXp6YXJlIGxlIGNvbG9ubmUgZGVsIG1vZGVsbG8gYW5jaGUgcGVyIGxhIHByaW1hIGNoaWFtYXRhXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZW5kU2VhcmNoKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZW5kU2VhcmNoKHJlc2V0UGFnZTogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHJlc2V0UGFnZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnBhZ2UgPSAxO1xyXG5cclxuICAgICAgICB0aGlzLlBPU1RHZXRQcm9jZXNzZXModGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldFNlcnZlcldvcmtlcnNcIl0sIHRoaXMuc2VhcmNoVmlldyk7XHJcbiAgICB9XHJcblxyXG4gICAgUE9TVEdldFByb2Nlc3Nlcyh1cmw6IHN0cmluZywgZGF0YTogUHJvY2Vzc2VzVmlldykge1xyXG4gICAgICAgIHRoaXMuaHR0cC5wb3N0PFByb2Nlc3Nlc1ZpZXc+KHVybCwgZGF0YSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSB0O1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiSG90UHJvY2Vzc2F0b1wiLCB0aGlzLnNlYXJjaFZpZXcpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2soKSB7XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25PcGVyYXRpb24oZXZlbnQ6IHsgaWQ6IHN0cmluZywgaXRlbTogYW55IH0pIHtcclxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmlkKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ0cmFjZV9vblwiOiB0aGlzLnRvZ2dsZVRyYWNpbmcoZXZlbnQuaXRlbSwgdHJ1ZSk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidHJhY2Vfb2ZmXCI6IHRoaXMudG9nZ2xlVHJhY2luZyhldmVudC5pdGVtLCBmYWxzZSk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwia2lsbFwiOiB0aGlzLmtpbGxQcm9jZXNzKGV2ZW50Lml0ZW0pOyBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImNoYW5nZV9jZ1wiOiB0aGlzLmNoYW5nZVByb2Nlc3NDZyhldmVudC5pdGVtKTsgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVRyYWNpbmcocHJvY2VzczogYW55LCB0cmFjaW5nOiBib29sZWFuKSB7XHJcbiAgICAgICAgdmFyIHBhcnMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgICAgICAgIC5zZXQoXCJpbnN0YW5jZWlkXCIsIHByb2Nlc3MucHJvcGVydGllc1tcImluc3RfaWRcIl0pXHJcbiAgICAgICAgICAgIC5zZXQoXCJzaWRcIiwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wic2lkXCJdKVxyXG4gICAgICAgICAgICAuc2V0KFwic2VyaWFsXCIsIHByb2Nlc3MucHJvcGVydGllc1tcInNlcmlhbFwiXSlcclxuICAgICAgICAgICAgLnNldChcImVuYWJsZVwiLCB0cmFjaW5nLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8c3RyaW5nPih0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiR0VUX0FkbV9TZXRQcm9jZXNzVHJhY2luZ1wiXSwgcGFycykuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1zZ0V4dHMubWFuYWdlU3RyaW5nUmVzcG9uc2UodCwgXCJcIiwgdGhpcy5sYy5sb2MoXCJFcnJvcnMgdG9nZ2xpbmcgUHJvY2VzcyBUcmFjaW5nXCIpLCAoKSA9PiB0aGlzLnNlbmRTZWFyY2goKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAga2lsbFByb2Nlc3MocHJvY2VzczogYW55KSB7XHJcbiAgICAgICAgdGhpcy5tc2dFeHRzLnNpbXBsZVdhcm5pbmdXaXRoQ2hvaWNlKFxyXG4gICAgICAgICAgICB0aGlzLmxjLmxvYyhcIkNvbmZpcm0gUHJvY2VzcyBLaWxsXCIpLFxyXG4gICAgICAgICAgICB0aGlzLmxjLmxvYyhcIkFyZSB5b3Ugc3VyZSB5b3Ugd2lzaCB0byBraWxsIHRoZSBzZWxlY3RlZCBwcm9jZXNzPyBUaGUgYXNzb2NpYXRlZCB1c2VyIHdpbGwgYmUgZGlzY29ubmVjdGVkXCIpLFxyXG4gICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcGFycyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgICAgICAgICAgICAgICAgICAuc2V0KFwiaW5zdGFuY2VpZFwiLCBwcm9jZXNzLnByb3BlcnRpZXNbXCJpbnN0X2lkXCJdKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zZXQoXCJzaWRcIiwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wic2lkXCJdKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zZXQoXCJzZXJpYWxcIiwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wic2VyaWFsXCJdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaHR0cC5nZXQ8c3RyaW5nPih0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiR0VUX0FkbV9LaWxsUHJvY2Vzc1wiXSwgcGFycykuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubXNnRXh0cy5tYW5hZ2VTdHJpbmdSZXNwb25zZSh0LCB0aGlzLmxjLmxvYyhcIlByb2Nlc3Mgc3VjY2VzZnVsbHkga2lsbGVkXCIpLCB0aGlzLmxjLmxvYyhcIkVycm9ycyBraWxsaW5nIHRoZSBQcm9jZXNzXCIpLCAoKSA9PiB0aGlzLnNlbmRTZWFyY2goKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEdlc3Rpb25lIG1vZGlmaWNhIENvbnN1bWVyIEdyb3VwICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuICAgIG5ld0NnOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgQ0dzOiBLZXlWYWx1ZVtdID0gW107XHJcbiAgICBDZ0RpY3Rpb25hcmllc0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgUHJvY2Vzc09uRWRpdDogYW55O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoXCJjZ0Zyb21cIikgY2dGcm9tOiBOZ0Zvcm07XHJcbiAgICBAVmlld0NoaWxkKFwiZGxnQ2hhbmdlQ2dcIikgZGxnQ2hhbmdlQ2c6IE1vZGFsRGlyZWN0aXZlO1xyXG5cclxuICAgIGNoYW5nZVByb2Nlc3NDZyhwcm9jZXNzOiBhbnkpIHtcclxuICAgICAgICB0aGlzLlByb2Nlc3NPbkVkaXQgPSBwcm9jZXNzO1xyXG4gICAgICAgIGlmICghdGhpcy5DZ0RpY3Rpb25hcmllc0xvYWRlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRDZ0RpY3Rpb25hcmllcygpO1xyXG4gICAgICAgICAgICB0aGlzLkNnRGljdGlvbmFyaWVzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXR1cENoYW5nZUNnKCk7XHJcbiAgICAgICAgdGhpcy5kbGdDaGFuZ2VDZy5zaG93KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZENnRGljdGlvbmFyaWVzKCkge1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8S2V5VmFsdWVbXT4odGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIkdFVF9BZG1fR2V0Q29uc3VtZXJHcm91cHNcIl0pLnN1YnNjcmliZSh0ID0+IHRoaXMuQ0dzID0gdCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXBDaGFuZ2VDZygpIHtcclxuICAgICAgICB0aGlzLnV0aUV4dHMuY2xlYW5Gb3JtKHRoaXMuY2dGcm9tKVxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLm5ld0NnID0gXCJcIiB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkb0NoYW5nZUNnKCkge1xyXG4gICAgICAgIHZhciBwYXJzID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAgICAgICAuc2V0KFwiaW5zdGFuY2VpZFwiLCB0aGlzLlByb2Nlc3NPbkVkaXQucHJvcGVydGllc1tcImluc3RfaWRcIl0pXHJcbiAgICAgICAgICAgIC5zZXQoXCJzaWRcIiwgdGhpcy5Qcm9jZXNzT25FZGl0LnByb3BlcnRpZXNbXCJzaWRcIl0pXHJcbiAgICAgICAgICAgIC5zZXQoXCJzZXJpYWxcIiwgdGhpcy5Qcm9jZXNzT25FZGl0LnByb3BlcnRpZXNbXCJzZXJpYWxcIl0pXHJcbiAgICAgICAgICAgIC5zZXQoXCJjb25zdW1lcl9ncm91cFwiLCB0aGlzLm5ld0NnKTtcclxuICAgICAgICB0aGlzLmh0dHAuZ2V0PHN0cmluZz4odGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIkdFVF9BZG1fQ2hhbmdlUHJvY2Vzc0NvbnN1bWVyR3JvdXBcIl0sIHBhcnMpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tc2dFeHRzLm1hbmFnZVN0cmluZ1Jlc3BvbnNlKHQsIHRoaXMubGMubG9jKFwiQ29uc3VtZXIgR3JvdXAgc3VjY2VzZnVsbHkgY2hhbmdlZFwiKSwgdGhpcy5sYy5sb2MoXCJFcnJvcnMgY2hhbmdpbmcgQ29uc3VtZXIgR3JvdXBcIiksICgpID0+IHRoaXMuc2VuZFNlYXJjaCgpKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYXBwLW92ZXJmbG93LXZpc2libGVcIiB3aWRnZXQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZVwiPnt7J1NlYXJjaCBBcHBsaWNhdGlvbiBQcm9jZXNzZXMnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB3aWRnZXQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmb3JtIHJvbGU9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYXBwLWZpcnN0LWZpbHRlci1saW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWlucHV0IFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVydGVuYW50XCIgbmFtZT1cImZpbHRlclRlbmFudFwiIFtQbGFjZWhvbGRlcl09XCInVGVuYW50JyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0taW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0taW5wdXQgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJ1c2VyXCIgbmFtZT1cImZpbHRlclVzZXJcIiBbUGxhY2Vob2xkZXJdPVwiJ1VzZXInIHwgbG9jYWxpemUgOiBsY1wiPjwvZm9ybS1pbnB1dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1pbnB1dCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnN0YXRlXCIgbmFtZT1cImZpbHRlclN0YXRlXCIgW1BsYWNlaG9sZGVyXT1cIidTdGF0ZScgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlciBhcHAtcGFkZGluZy10b3AtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1jaGVja2JveCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcmdsb2JhbFwiIG5hbWU9XCJmaWx0ZXJnbG9iYWxcIj48L2Zvcm0tY2hlY2tib3g+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtcG9pbnRlclwiIChjbGljayk9XCJzZWFyY2hWaWV3LmZpbHRlcmdsb2JhbCA9ICFzZWFyY2hWaWV3LmZpbHRlcmdsb2JhbFwiPnt7J0dsb2JhbCcgfCBsb2NhbGl6ZSA6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cInNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzc1wiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gYnRuIGFwcC1idG4tc2VhcmNoIGFwcC1tYXJnaW4tdG9wLTIwXCIgKGNsaWNrKT1cInNlbmRTZWFyY2goKVwiIHR5cGU9XCJzdWJtaXRcIj48aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cIiFzZWFyY2hWaWV3XCI+PGVtPnt7J0xvYWRpbmcgQXBwbGljYXRpb24gUHJvY2Vzc2VzJyB8IGxvY2FsaXplIDogbGN9fS4uLjwvZW0+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoVmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVzLXRhYmxlIFsobmdNb2RlbCldPVwic2VhcmNoVmlld1wiIFtEeW5hbWljT3BlcmF0aW9uc109XCJEeW5hbWljT3BzXCIgW0F1dG9VcGRhdGVdPVwidHJ1ZVwiIFtPcmRlckJ5Q29sdW1uXT1cInRydWVcIiAob25TZWFyY2hSZXF1ZXN0KT1cInNlbmRTZWFyY2goJGV2ZW50KTtcIiAob25EeW5hbWljT3BlcmF0aW9uKT1cIm9uT3BlcmF0aW9uKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1ub3dyYXBcIiAqdGQ9XCInZnVsbF93YWl0X3N0YWNrJzsgbGV0IHZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtbGlzdCBhcHAtcG9pbnRlclwiIChjbGljayk9XCJ2YWx1ZVRvU2hvdyA9IHZhbHVlOyBkbGdWYWx1ZS5zaG93KCk7XCI+PC9zcGFuPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3ZhbHVlLmxlbmd0aCA+IDcwID8gdmFsdWUuc3Vic3RyKDAsIDY3KSArICcuLi4nIDogdmFsdWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXMtdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLW1hcmdpbi10b3AtMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgcHVsbC1sZWZ0XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJiYWNrKClcIj57eydCYWNrJyB8IGxvY2FsaXplIDogbGN9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBic01vZGFsICNkbGdDaGFuZ2VDZz1cImJzLW1vZGFsXCIgY2xhc3M9XCJtb2RhbCBmYWRlXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC1sZ1wiIGNka0RyYWc+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiIGNka0RyYWdIYW5kbGU+XHJcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZSBwdWxsLWxlZnRcIj57eydDaGFuZ2UgQ29uc3VtZXIgR3JvdXAnIHwgbG9jYWxpemUgOiBsY319PC9oND5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2UgcHVsbC1yaWdodFwiIChjbGljayk9XCJkbGdDaGFuZ2VDZy5oaWRlKClcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8Zm9ybSBub3ZhbGlkYXRlICNjZ0Zyb209XCJuZ0Zvcm1cIiAobmdTdWJtaXQpPVwiY2dGcm9tLnZhbGlkICYmIGRvQ2hhbmdlQ2coKSAmJiBkbGdDaGFuZ2VDZy5oaWRlKClcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZvcm0tc2VsZWN0IFtMYWJlbF09XCInTmV3IENvbnN1bWVyIEdyb3VwJyB8IGxvY2FsaXplIDogbGNcIiBbKG5nTW9kZWwpXT1cIm5ld0NnXCIgbmFtZT1cIm5ld2NnXCIgW1NvdXJjZV09XCJDR3NcIiByZXF1aXJlZCBbTGFzdF09XCJ0cnVlXCI+PC9mb3JtLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYXBwLW1hcmdpbi1yaWdodC01XCIgKGNsaWNrKT1cImRsZ0NoYW5nZUNnLmhpZGUoKVwiPnt7J0Nsb3NlJyB8IGxvY2FsaXplIDogbGN9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+e3snQ29uZmlybScgfCBsb2NhbGl6ZSA6IGxjfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuPGRpdiBic01vZGFsICNkbGdWYWx1ZT1cImJzLW1vZGFsXCIgY2xhc3M9XCJtb2RhbCBmYWRlXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC14bFwiIGFwcC1kcmFnZ2FibGU9XCIubW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGUgcHVsbC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgRnVsbCBXYWl0IFN0YWNrXHJcbiAgICAgICAgICAgICAgICA8L2g1PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZSBwdWxsLXJpZ2h0XCIgKGNsaWNrKT1cImRsZ1ZhbHVlLmhpZGUoKVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IGFwcC1wYWRpZG5nLWJvdHRvbS0yMCBhcHAtcGFkZGluZy10b3AtMjBcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e3ZhbHVlVG9TaG93fX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImRsZ1ZhbHVlLmhpZGUoKVwiPkNoaXVkaTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtX3dyay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtlcnMvYWRtX3dyay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZG1pbi1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3dvcmtlcnMvYWRtX3dyay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVFsRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc5RCxTQUFTO0FBQ1QsT0FBTyxFQUFZLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFLbkUsZUFBZTtBQUNmLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU8vQyxNQUFNLE9BQU8sZUFBZTtJQU94QixZQUNZLE9BQXVCLEVBQ3ZCLE9BQXVCLEVBQ3hCLEVBQXVCLEVBQ3RCLFlBQWdDLEVBQ2hDLE1BQXdDLEVBQ3hDLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLFFBQWtCLEVBQ08sT0FBZTtRQVJ4QyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDaEMsV0FBTSxHQUFOLE1BQU0sQ0FBa0M7UUFDeEMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ08sWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQWQ3QyxlQUFVLEdBQWtCLElBQUksYUFBYSxFQUFFLENBQUM7UUFDaEQsZUFBVSxHQUFpQyxFQUFFLENBQUM7UUFFOUMsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFvSGhDLHlIQUF5SDtRQUV6SCxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFFBQUcsR0FBZSxFQUFFLENBQUM7UUFDckIseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBM0dsQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV2RSxJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2QsSUFBSSwwQkFBMEIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsRUFBRSwwQkFBMEIsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLEdBQUcsQ0FBQztZQUN6SSxJQUFJLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLDJCQUEyQixFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsR0FBRyxDQUFDO1lBQzdJLElBQUksMEJBQTBCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLHVCQUF1QixDQUFDO1lBQzVGLElBQUksMEJBQTBCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsc0JBQXNCLENBQUM7U0FDNUcsQ0FBQztJQUNOLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsVUFBVTtZQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYTtRQUNwQixJQUFJLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFnQixlQUFlLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2RixJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksRUFBRTtZQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO2FBQU07WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ25FO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQyxTQUF3QjtRQUN6Qix3SEFBd0g7UUFDeEgsZ0RBQWdEO1FBQ2hELElBQUksU0FBUyxFQUFFO1lBQ1gsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7WUFFNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2xHO2FBQ0k7WUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7WUFFdEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ3JCO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxZQUFxQixJQUFJO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLElBQUksU0FBUztZQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUU3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsMkJBQTJCLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQVcsRUFBRSxJQUFtQjtRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBZ0IsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztZQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzVFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELElBQUk7UUFDQSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBZ0M7UUFDeEMsUUFBUSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ2QsS0FBSyxVQUFVO2dCQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFBQyxNQUFNO1lBQzdELEtBQUssV0FBVztnQkFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQUMsTUFBTTtZQUMvRCxLQUFLLE1BQU07Z0JBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQUMsTUFBTTtZQUNqRCxLQUFLLFdBQVc7Z0JBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQUMsTUFBTTtTQUM3RDtJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBWSxFQUFFLE9BQWdCO1FBQ3hDLElBQUksSUFBSSxHQUFHLElBQUksVUFBVSxFQUFFO2FBQ3RCLEdBQUcsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNoRCxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDckMsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzNDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsMkJBQTJCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDOUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDdEgsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQVk7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FDaEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsRUFDbkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsOEZBQThGLENBQUMsRUFDM0csR0FBRyxFQUFFO1lBQ0QsSUFBSSxJQUFJLEdBQUcsSUFBSSxVQUFVLEVBQUU7aUJBQ3RCLEdBQUcsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDaEQsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNyQyxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDeEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ3hKLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBWUQsZUFBZSxDQUFDLE9BQVk7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM1QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFhLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25ILENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ25DLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxJQUFJLEdBQUcsSUFBSSxVQUFVLEVBQUU7YUFDdEIsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMzRCxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2hELEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDdEQsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxvQ0FBb0MsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2RyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDcEssQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs0R0FqS1EsZUFBZSxvUkFnQlosZUFBZTtnR0FoQmxCLGVBQWUsOE9DOUI1QixnL0xBNkZNLCt1RkRsRWEsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUM7MkZBRzdELGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0ksU0FBUyxpQkFDSixDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQzs7MEJBbUJqRSxNQUFNOzJCQUFDLGVBQWU7NENBZ0hOLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDTyxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSwgVXRpbGl0eVNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2V4dGVuc2lvbnNcIjtcclxuaW1wb3J0IHsgUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9wcmVmZXJlbmNlc1wiO1xyXG5pbXBvcnQgeyBFc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbiB9IGZyb20gXCJAZXNmYWVuemEvZXMtdGFibGVcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvaHR0cHNlcnZpY2VcIjtcclxuXHJcbi8vIENsYXNzaVxyXG5pbXBvcnQgeyBLZXlWYWx1ZSwgUHJvY2Vzc2VzVmlldywgUmVwb3NpdG9yeSB9IGZyb20gXCIuLi8uLi9tb2RlbHNcIjtcclxuXHJcbi8vIERpcmV0dGl2ZSwgQ29tcG9uZW50aSwgTGlicmVyaWVcclxuaW1wb3J0IHsgTW9kYWxEaXJlY3RpdmUgfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9tb2RhbFwiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEFkbVdya0xvYyB9IGZyb20gXCIuLi9cIjtcclxuaW1wb3J0IHsgQmFzZU1vZHVsZUNvbW11bmljYXRpb25zQ29uc3VtZXIgfSBmcm9tIFwiLi4vLi4vY29tbXVuaWNhdGlvbnMvYmFzZS9CYXNlTW9kdWxlQ29tbXVuaWNhdGlvbnNDb25zdW1lclwiO1xyXG5pbXBvcnQgeyBBRE1fQkFDS0VORF9VUkwgfSBmcm9tIFwiLi4vLi4vdG9rZW5zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFkbV93cmtcIixcclxuICAgIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IExvY2FsaXphdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBBZG1XcmtMb2MgfV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2FkbV93cmsuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRtV3JrQ29tcG9uZW50IHtcclxuXHJcbiAgICBwdWJsaWMgc2VhcmNoVmlldzogUHJvY2Vzc2VzVmlldyA9IG5ldyBQcm9jZXNzZXNWaWV3KCk7XHJcbiAgICBwdWJsaWMgRHluYW1pY09wczogRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb25bXSA9IFtdO1xyXG4gICAgcHVibGljIHN0b3JhZ2VTdWI6IGFueTtcclxuICAgIHB1YmxpYyB2YWx1ZVRvU2hvdzogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHV0aUV4dHM6IFV0aWxpdHlTZXJ2aWNlLCBcclxuICAgICAgICBwcml2YXRlIG1zZ0V4dHM6IE1lc3NhZ2VTZXJ2aWNlLCBcclxuICAgICAgICBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsIFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlOiBQcmVmZXJlbmNlc1NlcnZpY2UsIFxyXG4gICAgICAgIHByaXZhdGUgX3N0YXRlOiBCYXNlTW9kdWxlQ29tbXVuaWNhdGlvbnNDb25zdW1lciwgXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIVFRQU2VydmljZSwgXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsIFxyXG4gICAgICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLCBcclxuICAgICAgICBASW5qZWN0KEFETV9CQUNLRU5EX1VSTCkgcHJpdmF0ZSBiYWNrZW5kOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgdGhpcy5fc3RhdGUuaGFuZGxlTmF2aWdhdGlvbih0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGFbXCJ0aXRsZVwiXSwgZmFsc2UpO1xyXG5cclxuICAgICAgICB0aGlzLkR5bmFtaWNPcHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBFc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbihcInRyYWNlX29uXCIsIHRoaXMubGMubG9jKFwiQWN0aXZhdGUgUHJvY2VzcyBUcmFjaW5nXCIpLCBcImZhIGZhLWNpcmNsZSB0ZXh0LWRhbmdlclwiLCBcIlwiLCBcInRyYWNlX2VuYWJsZWRcIiwgXCJOXCIpLFxyXG4gICAgICAgICAgICBuZXcgRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb24oXCJ0cmFjZV9vZmZcIiwgdGhpcy5sYy5sb2MoXCJEZWFjdGl2YXRlIFByb2Nlc3MgVHJhY2luZ1wiKSwgXCJmYSBmYS1jaXJjbGUgdGV4dC1zdWNjZXNzXCIsIFwiXCIsIFwidHJhY2VfZW5hYmxlZFwiLCBcIllcIiksXHJcbiAgICAgICAgICAgIG5ldyBFc1RhYmxlT3BlcmF0aW9uRGVmaW5pdGlvbihcImtpbGxcIiwgdGhpcy5sYy5sb2MoXCJLaWxsIFByb2Nlc3NcIiksIFwiZmEgZmEtYmFuIHRleHQtZGFuZ2VyXCIpLFxyXG4gICAgICAgICAgICBuZXcgRXNUYWJsZU9wZXJhdGlvbkRlZmluaXRpb24oXCJjaGFuZ2VfY2dcIiwgdGhpcy5sYy5sb2MoXCJDaGFuZ2UgQ29uc3VtZXIgR3JvdXBcIiksIFwiZmEgZmEtZWRpdCB0ZXh0LWluZm9cIilcclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVN1YiA9IHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuSW5pdChwYXJhbXNbXCJpZ25vcmVTdG9yYWdlXCJdKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5zdG9yYWdlU3ViKVxyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBJbml0KGlnbm9yZVN0b3JhZ2UpIHtcclxuICAgICAgICBsZXQgaXRlbSA9IGF3YWl0IHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW08UHJvY2Vzc2VzVmlldz4oXCJIb3RQcm9jZXNzYXRvXCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIGlmICghaWdub3JlU3RvcmFnZSAmJiBpdGVtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmluaXQobnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKFwiL3BhZ2VzL2FkbS9zZXJ2ZXJ3b3JrZXJzXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zID0gW107XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJIb3RQcm9jZXNzYXRvXCIpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0KEhvdFBvdGF0bzogUHJvY2Vzc2VzVmlldykge1xyXG4gICAgICAgIC8vU2UgaG8gbGEgSG90UG90YXRvIHZ1b2wgZGlyZSBjaGUgc29ubyBhcHBlbmEgdG9ybmF0byBkYWxsJ2VkaXQvbnVvdm8uIFJpZmFjY2lvIGxhIHJpY2VyY2EgaW4gYmFzZSBhaSBmaWx0cmkgcHJlY2VkZW50aVxyXG4gICAgICAgIC8vQWx0aXJtZW50aSBnZW5lcm8gaWwgbW9kZWxsbyBudW92byBub3JtYWxtZW50ZVxyXG4gICAgICAgIGlmIChIb3RQb3RhdG8pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gSG90UG90YXRvO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5QT1NUR2V0UHJvY2Vzc2VzKHRoaXMuYmFja2VuZCArIFJlcG9zaXRvcnlbXCJQT1NUX0FkbV9HZXRTZXJ2ZXJXb3JrZXJzXCJdLCB0aGlzLnNlYXJjaFZpZXcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3ID0gbmV3IFByb2Nlc3Nlc1ZpZXcoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2VuZFNlYXJjaCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZW5kU2VhcmNoKHJlc2V0UGFnZTogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHJlc2V0UGFnZSlcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hWaWV3LnBhZ2UgPSAxO1xyXG5cclxuICAgICAgICB0aGlzLlBPU1RHZXRQcm9jZXNzZXModGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIlBPU1RfQWRtX0dldFNlcnZlcldvcmtlcnNcIl0sIHRoaXMuc2VhcmNoVmlldyk7XHJcbiAgICB9XHJcblxyXG4gICAgUE9TVEdldFByb2Nlc3Nlcyh1cmw6IHN0cmluZywgZGF0YTogUHJvY2Vzc2VzVmlldykge1xyXG4gICAgICAgIHRoaXMuaHR0cC5wb3N0PFByb2Nlc3Nlc1ZpZXc+KHVybCwgZGF0YSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcgPSB0O1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiSG90UHJvY2Vzc2F0b1wiLCB0aGlzLnNlYXJjaFZpZXcpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2soKSB7XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25PcGVyYXRpb24oZXZlbnQ6IHsgaWQ6IHN0cmluZywgaXRlbTogYW55IH0pIHtcclxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmlkKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ0cmFjZV9vblwiOiB0aGlzLnRvZ2dsZVRyYWNpbmcoZXZlbnQuaXRlbSwgdHJ1ZSk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwidHJhY2Vfb2ZmXCI6IHRoaXMudG9nZ2xlVHJhY2luZyhldmVudC5pdGVtLCBmYWxzZSk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwia2lsbFwiOiB0aGlzLmtpbGxQcm9jZXNzKGV2ZW50Lml0ZW0pOyBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBcImNoYW5nZV9jZ1wiOiB0aGlzLmNoYW5nZVByb2Nlc3NDZyhldmVudC5pdGVtKTsgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZVRyYWNpbmcocHJvY2VzczogYW55LCB0cmFjaW5nOiBib29sZWFuKSB7XHJcbiAgICAgICAgdmFyIHBhcnMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgICAgICAgIC5zZXQoXCJpbnN0YW5jZWlkXCIsIHByb2Nlc3MucHJvcGVydGllc1tcImluc3RfaWRcIl0pXHJcbiAgICAgICAgICAgIC5zZXQoXCJzaWRcIiwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wic2lkXCJdKVxyXG4gICAgICAgICAgICAuc2V0KFwic2VyaWFsXCIsIHByb2Nlc3MucHJvcGVydGllc1tcInNlcmlhbFwiXSlcclxuICAgICAgICAgICAgLnNldChcImVuYWJsZVwiLCB0cmFjaW5nLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8c3RyaW5nPih0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiR0VUX0FkbV9TZXRQcm9jZXNzVHJhY2luZ1wiXSwgcGFycykuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1zZ0V4dHMubWFuYWdlU3RyaW5nUmVzcG9uc2UodCwgXCJcIiwgdGhpcy5sYy5sb2MoXCJFcnJvcnMgdG9nZ2xpbmcgUHJvY2VzcyBUcmFjaW5nXCIpLCAoKSA9PiB0aGlzLnNlbmRTZWFyY2goKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAga2lsbFByb2Nlc3MocHJvY2VzczogYW55KSB7XHJcbiAgICAgICAgdGhpcy5tc2dFeHRzLnNpbXBsZVdhcm5pbmdXaXRoQ2hvaWNlKFxyXG4gICAgICAgICAgICB0aGlzLmxjLmxvYyhcIkNvbmZpcm0gUHJvY2VzcyBLaWxsXCIpLFxyXG4gICAgICAgICAgICB0aGlzLmxjLmxvYyhcIkFyZSB5b3Ugc3VyZSB5b3Ugd2lzaCB0byBraWxsIHRoZSBzZWxlY3RlZCBwcm9jZXNzPyBUaGUgYXNzb2NpYXRlZCB1c2VyIHdpbGwgYmUgZGlzY29ubmVjdGVkXCIpLFxyXG4gICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcGFycyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgICAgICAgICAgICAgICAgICAuc2V0KFwiaW5zdGFuY2VpZFwiLCBwcm9jZXNzLnByb3BlcnRpZXNbXCJpbnN0X2lkXCJdKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zZXQoXCJzaWRcIiwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wic2lkXCJdKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zZXQoXCJzZXJpYWxcIiwgcHJvY2Vzcy5wcm9wZXJ0aWVzW1wic2VyaWFsXCJdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaHR0cC5nZXQ8c3RyaW5nPih0aGlzLmJhY2tlbmQgKyBSZXBvc2l0b3J5W1wiR0VUX0FkbV9LaWxsUHJvY2Vzc1wiXSwgcGFycykuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubXNnRXh0cy5tYW5hZ2VTdHJpbmdSZXNwb25zZSh0LCB0aGlzLmxjLmxvYyhcIlByb2Nlc3Mgc3VjY2VzZnVsbHkga2lsbGVkXCIpLCB0aGlzLmxjLmxvYyhcIkVycm9ycyBraWxsaW5nIHRoZSBQcm9jZXNzXCIpLCAoKSA9PiB0aGlzLnNlbmRTZWFyY2goKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEdlc3Rpb25lIG1vZGlmaWNhIENvbnN1bWVyIEdyb3VwICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5cclxuICAgIG5ld0NnOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgQ0dzOiBLZXlWYWx1ZVtdID0gW107XHJcbiAgICBDZ0RpY3Rpb25hcmllc0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgUHJvY2Vzc09uRWRpdDogYW55O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoXCJjZ0Zyb21cIikgY2dGcm9tOiBOZ0Zvcm07XHJcbiAgICBAVmlld0NoaWxkKFwiZGxnQ2hhbmdlQ2dcIikgZGxnQ2hhbmdlQ2c6IE1vZGFsRGlyZWN0aXZlO1xyXG5cclxuICAgIGNoYW5nZVByb2Nlc3NDZyhwcm9jZXNzOiBhbnkpIHtcclxuICAgICAgICB0aGlzLlByb2Nlc3NPbkVkaXQgPSBwcm9jZXNzO1xyXG4gICAgICAgIGlmICghdGhpcy5DZ0RpY3Rpb25hcmllc0xvYWRlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRDZ0RpY3Rpb25hcmllcygpO1xyXG4gICAgICAgICAgICB0aGlzLkNnRGljdGlvbmFyaWVzTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXR1cENoYW5nZUNnKCk7XHJcbiAgICAgICAgdGhpcy5kbGdDaGFuZ2VDZy5zaG93KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZENnRGljdGlvbmFyaWVzKCkge1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8S2V5VmFsdWVbXT4odGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIkdFVF9BZG1fR2V0Q29uc3VtZXJHcm91cHNcIl0pLnN1YnNjcmliZSh0ID0+IHRoaXMuQ0dzID0gdCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXBDaGFuZ2VDZygpIHtcclxuICAgICAgICB0aGlzLnV0aUV4dHMuY2xlYW5Gb3JtKHRoaXMuY2dGcm9tKVxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLm5ld0NnID0gXCJcIiB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkb0NoYW5nZUNnKCkge1xyXG4gICAgICAgIHZhciBwYXJzID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAgICAgICAuc2V0KFwiaW5zdGFuY2VpZFwiLCB0aGlzLlByb2Nlc3NPbkVkaXQucHJvcGVydGllc1tcImluc3RfaWRcIl0pXHJcbiAgICAgICAgICAgIC5zZXQoXCJzaWRcIiwgdGhpcy5Qcm9jZXNzT25FZGl0LnByb3BlcnRpZXNbXCJzaWRcIl0pXHJcbiAgICAgICAgICAgIC5zZXQoXCJzZXJpYWxcIiwgdGhpcy5Qcm9jZXNzT25FZGl0LnByb3BlcnRpZXNbXCJzZXJpYWxcIl0pXHJcbiAgICAgICAgICAgIC5zZXQoXCJjb25zdW1lcl9ncm91cFwiLCB0aGlzLm5ld0NnKTtcclxuICAgICAgICB0aGlzLmh0dHAuZ2V0PHN0cmluZz4odGhpcy5iYWNrZW5kICsgUmVwb3NpdG9yeVtcIkdFVF9BZG1fQ2hhbmdlUHJvY2Vzc0NvbnN1bWVyR3JvdXBcIl0sIHBhcnMpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tc2dFeHRzLm1hbmFnZVN0cmluZ1Jlc3BvbnNlKHQsIHRoaXMubGMubG9jKFwiQ29uc3VtZXIgR3JvdXAgc3VjY2VzZnVsbHkgY2hhbmdlZFwiKSwgdGhpcy5sYy5sb2MoXCJFcnJvcnMgY2hhbmdpbmcgQ29uc3VtZXIgR3JvdXBcIiksICgpID0+IHRoaXMuc2VuZFNlYXJjaCgpKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYXBwLW92ZXJmbG93LXZpc2libGVcIiB3aWRnZXQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXVwcGVyY2FzZVwiPnt7J1NlYXJjaCBBcHBsaWNhdGlvbiBQcm9jZXNzZXMnIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB3aWRnZXQtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmb3JtIHJvbGU9XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYXBwLWZpcnN0LWZpbHRlci1saW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtLWlucHV0IFtGb3JtTGF5b3V0XT1cImZhbHNlXCIgW1ZhbGlkYXRpb25dPVwiZmFsc2VcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZpZXcuZmlsdGVydGVuYW50XCIgbmFtZT1cImZpbHRlclRlbmFudFwiIFtQbGFjZWhvbGRlcl09XCInVGVuYW50JyB8IGxvY2FsaXplIDogbGNcIj48L2Zvcm0taW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteGwtMiBjb2wtbGctMiBjb2wtbWQtMTIgYXBwLWZpbHRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0taW5wdXQgW0Zvcm1MYXlvdXRdPVwiZmFsc2VcIiBbVmFsaWRhdGlvbl09XCJmYWxzZVwiIFsobmdNb2RlbCldPVwic2VhcmNoVmlldy5maWx0ZXJ1c2VyXCIgbmFtZT1cImZpbHRlclVzZXJcIiBbUGxhY2Vob2xkZXJdPVwiJ1VzZXInIHwgbG9jYWxpemUgOiBsY1wiPjwvZm9ybS1pbnB1dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14bC0yIGNvbC1sZy0yIGNvbC1tZC0xMiBhcHAtZmlsdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1pbnB1dCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcnN0YXRlXCIgbmFtZT1cImZpbHRlclN0YXRlXCIgW1BsYWNlaG9sZGVyXT1cIidTdGF0ZScgfCBsb2NhbGl6ZSA6IGxjXCI+PC9mb3JtLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhsLTIgY29sLWxnLTIgY29sLW1kLTEyIGFwcC1maWx0ZXItd3JhcHBlciBhcHAtcGFkZGluZy10b3AtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybS1jaGVja2JveCBbRm9ybUxheW91dF09XCJmYWxzZVwiIFtWYWxpZGF0aW9uXT1cImZhbHNlXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWaWV3LmZpbHRlcmdsb2JhbFwiIG5hbWU9XCJmaWx0ZXJnbG9iYWxcIj48L2Zvcm0tY2hlY2tib3g+Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtcG9pbnRlclwiIChjbGljayk9XCJzZWFyY2hWaWV3LmZpbHRlcmdsb2JhbCA9ICFzZWFyY2hWaWV3LmZpbHRlcmdsb2JhbFwiPnt7J0dsb2JhbCcgfCBsb2NhbGl6ZSA6IGxjfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cInNlYXJjaFZpZXcuc2VhcmNoaW5wcm9ncmVzc1wiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gYnRuIGFwcC1idG4tc2VhcmNoIGFwcC1tYXJnaW4tdG9wLTIwXCIgKGNsaWNrKT1cInNlbmRTZWFyY2goKVwiIHR5cGU9XCJzdWJtaXRcIj48aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cIiFzZWFyY2hWaWV3XCI+PGVtPnt7J0xvYWRpbmcgQXBwbGljYXRpb24gUHJvY2Vzc2VzJyB8IGxvY2FsaXplIDogbGN9fS4uLjwvZW0+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoVmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVzLXRhYmxlIFsobmdNb2RlbCldPVwic2VhcmNoVmlld1wiIFtEeW5hbWljT3BlcmF0aW9uc109XCJEeW5hbWljT3BzXCIgW0F1dG9VcGRhdGVdPVwidHJ1ZVwiIFtPcmRlckJ5Q29sdW1uXT1cInRydWVcIiAob25TZWFyY2hSZXF1ZXN0KT1cInNlbmRTZWFyY2goJGV2ZW50KTtcIiAob25EeW5hbWljT3BlcmF0aW9uKT1cIm9uT3BlcmF0aW9uKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1ub3dyYXBcIiAqdGQ9XCInZnVsbF93YWl0X3N0YWNrJzsgbGV0IHZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtbGlzdCBhcHAtcG9pbnRlclwiIChjbGljayk9XCJ2YWx1ZVRvU2hvdyA9IHZhbHVlOyBkbGdWYWx1ZS5zaG93KCk7XCI+PC9zcGFuPiZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3ZhbHVlLmxlbmd0aCA+IDcwID8gdmFsdWUuc3Vic3RyKDAsIDY3KSArICcuLi4nIDogdmFsdWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXMtdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLW1hcmdpbi10b3AtMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgcHVsbC1sZWZ0XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJiYWNrKClcIj57eydCYWNrJyB8IGxvY2FsaXplIDogbGN9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBic01vZGFsICNkbGdDaGFuZ2VDZz1cImJzLW1vZGFsXCIgY2xhc3M9XCJtb2RhbCBmYWRlXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC1sZ1wiIGNka0RyYWc+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiIGNka0RyYWdIYW5kbGU+XHJcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZSBwdWxsLWxlZnRcIj57eydDaGFuZ2UgQ29uc3VtZXIgR3JvdXAnIHwgbG9jYWxpemUgOiBsY319PC9oND5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2UgcHVsbC1yaWdodFwiIChjbGljayk9XCJkbGdDaGFuZ2VDZy5oaWRlKClcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8Zm9ybSBub3ZhbGlkYXRlICNjZ0Zyb209XCJuZ0Zvcm1cIiAobmdTdWJtaXQpPVwiY2dGcm9tLnZhbGlkICYmIGRvQ2hhbmdlQ2coKSAmJiBkbGdDaGFuZ2VDZy5oaWRlKClcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZvcm0tc2VsZWN0IFtMYWJlbF09XCInTmV3IENvbnN1bWVyIEdyb3VwJyB8IGxvY2FsaXplIDogbGNcIiBbKG5nTW9kZWwpXT1cIm5ld0NnXCIgbmFtZT1cIm5ld2NnXCIgW1NvdXJjZV09XCJDR3NcIiByZXF1aXJlZCBbTGFzdF09XCJ0cnVlXCI+PC9mb3JtLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYXBwLW1hcmdpbi1yaWdodC01XCIgKGNsaWNrKT1cImRsZ0NoYW5nZUNnLmhpZGUoKVwiPnt7J0Nsb3NlJyB8IGxvY2FsaXplIDogbGN9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+e3snQ29uZmlybScgfCBsb2NhbGl6ZSA6IGxjfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuPGRpdiBic01vZGFsICNkbGdWYWx1ZT1cImJzLW1vZGFsXCIgY2xhc3M9XCJtb2RhbCBmYWRlXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC14bFwiIGFwcC1kcmFnZ2FibGU9XCIubW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGUgcHVsbC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgRnVsbCBXYWl0IFN0YWNrXHJcbiAgICAgICAgICAgICAgICA8L2g1PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZSBwdWxsLXJpZ2h0XCIgKGNsaWNrKT1cImRsZ1ZhbHVlLmhpZGUoKVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IGFwcC1wYWRpZG5nLWJvdHRvbS0yMCBhcHAtcGFkZGluZy10b3AtMjBcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXBwLXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e3ZhbHVlVG9TaG93fX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImRsZ1ZhbHVlLmhpZGUoKVwiPkNoaXVkaTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=