@netgrif/components-core 6.4.1 → 6.5.0-rc.2

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.
Files changed (98) hide show
  1. package/commons/schema.d.ts +3 -0
  2. package/esm2020/assets/i18n/de.json +4 -2
  3. package/esm2020/assets/i18n/en.json +4 -2
  4. package/esm2020/assets/i18n/sk.json +4 -2
  5. package/esm2020/commons/schema.mjs +1 -1
  6. package/esm2020/lib/admin/role-assignment/abstract-role-assignment.component.mjs +11 -2
  7. package/esm2020/lib/admin/role-assignment/services/ProcessList.mjs +5 -2
  8. package/esm2020/lib/admin/role-assignment-ldap-group/abstract-ldap-group-role-assignment.component.mjs +11 -2
  9. package/esm2020/lib/admin/user-invite/abstract-user-invite.component.mjs +16 -3
  10. package/esm2020/lib/allowed-nets/services/factory/allowed-nets-service-factory.mjs +4 -1
  11. package/esm2020/lib/changed-fields/services/changed-fields.service.mjs +2 -2
  12. package/esm2020/lib/configuration/configuration.service.mjs +2 -2
  13. package/esm2020/lib/data-fields/case-ref-field/model/abstract-case-ref-base-field-component.mjs +2 -2
  14. package/esm2020/lib/dialog/components/confirm-dialog/confirm-dialog.component.mjs +2 -2
  15. package/esm2020/lib/event/public-api.mjs +2 -1
  16. package/esm2020/lib/event/services/event.service.mjs +4 -4
  17. package/esm2020/lib/header/abstract-header.component.mjs +4 -69
  18. package/esm2020/lib/header/services/overflow.service.mjs +2 -2
  19. package/esm2020/lib/logger/services/log-publisher.service.mjs +2 -2
  20. package/esm2020/lib/navigation/breadcrumbs/abstract-breadcrumbs.component.mjs +3 -3
  21. package/esm2020/lib/navigation/dashboard/abstract-dashboard.component.mjs +232 -0
  22. package/esm2020/lib/navigation/model/group-navigation-constants.mjs +27 -19
  23. package/esm2020/lib/navigation/model/navigation-configs.mjs +2 -2
  24. package/esm2020/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.mjs +104 -348
  25. package/esm2020/lib/navigation/navigation-double-drawer/service/double-drawer-navigation.service.mjs +458 -0
  26. package/esm2020/lib/navigation/navigation-double-drawer/util/double-drawer-utils.mjs +43 -0
  27. package/esm2020/lib/navigation/public-api.mjs +4 -1
  28. package/esm2020/lib/navigation/service/uri.service.mjs +2 -2
  29. package/esm2020/lib/navigation/utility/filter-extraction.service.mjs +16 -8
  30. package/esm2020/lib/navigation/utility/navigation-item-task-utility-methods.mjs +13 -1
  31. package/esm2020/lib/panel/task-panel/abstract-task-panel.component.mjs +3 -3
  32. package/esm2020/lib/panel/task-panel-list/task-panel-list-pagination/abstract-task-list-pagination.component.mjs +2 -2
  33. package/esm2020/lib/resources/engine-endpoint/petri-net-resource.service.mjs +12 -1
  34. package/esm2020/lib/resources/interface/petri-net-request-body.mjs +1 -1
  35. package/esm2020/lib/resources/resource-provider.service.mjs +6 -6
  36. package/esm2020/lib/routing/redirect-service/redirect.service.mjs +6 -3
  37. package/esm2020/lib/search/models/category/case/case-dataset.mjs +2 -2
  38. package/esm2020/lib/search/models/operator/operator.mjs +2 -2
  39. package/esm2020/lib/search/models/operator/substring.mjs +2 -2
  40. package/esm2020/lib/search/search-service/search.service.mjs +2 -9
  41. package/esm2020/lib/task/services/task-data.service.mjs +4 -4
  42. package/esm2020/lib/task-content/model/subgrid.mjs +2 -2
  43. package/esm2020/lib/task-content/services/field-converter.service.mjs +2 -2
  44. package/esm2020/lib/task-content/services/task-content.service.mjs +4 -4
  45. package/esm2020/lib/toolbar/abstract-toolbar.component.mjs +48 -11
  46. package/esm2020/lib/toolbar/public-api.mjs +2 -1
  47. package/esm2020/lib/toolbar/toolbar-config.mjs +2 -0
  48. package/esm2020/lib/user/services/user-comparator.service.mjs +2 -2
  49. package/esm2020/lib/utility/contains.pipe.mjs +2 -2
  50. package/esm2020/lib/utility/navigation-item-task-filter-factory.mjs +4 -3
  51. package/esm2020/lib/utility/navigation-item-task-search-categories-factory.mjs +4 -1
  52. package/esm2020/lib/view/abstract/view-with-headers.mjs +1 -1
  53. package/esm2020/lib/view/case-view/components/case-list-paginator/abstract-case-list-paginator.component.mjs +2 -2
  54. package/esm2020/lib/view/case-view/service/case-view-service.mjs +2 -6
  55. package/esm2020/lib/view/public-api.mjs +2 -1
  56. package/esm2020/lib/view/task-view/abstract-single-task-view.component.mjs +9 -26
  57. package/esm2020/lib/view/task-view/abstract-tabbed-single-task-view.component.mjs +32 -0
  58. package/esm2020/lib/view/workflow-view/abstract-workflow-view.component.mjs +14 -1
  59. package/esm2020/lib/view/workflow-view/workflow-view.service.mjs +17 -2
  60. package/fesm2015/netgrif-components-core.mjs +1078 -520
  61. package/fesm2015/netgrif-components-core.mjs.map +1 -1
  62. package/fesm2020/netgrif-components-core.mjs +1051 -507
  63. package/fesm2020/netgrif-components-core.mjs.map +1 -1
  64. package/lib/admin/role-assignment/abstract-role-assignment.component.d.ts +4 -1
  65. package/lib/admin/role-assignment/services/ProcessList.d.ts +1 -1
  66. package/lib/admin/role-assignment-ldap-group/abstract-ldap-group-role-assignment.component.d.ts +4 -1
  67. package/lib/admin/user-invite/abstract-user-invite.component.d.ts +9 -3
  68. package/lib/allowed-nets/services/factory/allowed-nets-service-factory.d.ts +1 -1
  69. package/lib/event/public-api.d.ts +1 -0
  70. package/lib/header/abstract-header.component.d.ts +2 -14
  71. package/lib/navigation/dashboard/abstract-dashboard.component.d.ts +73 -0
  72. package/lib/navigation/model/group-navigation-constants.d.ts +27 -19
  73. package/lib/navigation/model/navigation-configs.d.ts +1 -0
  74. package/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.d.ts +22 -57
  75. package/lib/navigation/navigation-double-drawer/service/double-drawer-navigation.service.d.ts +137 -0
  76. package/lib/navigation/navigation-double-drawer/util/double-drawer-utils.d.ts +16 -0
  77. package/lib/navigation/public-api.d.ts +3 -0
  78. package/lib/navigation/utility/filter-extraction.service.d.ts +3 -2
  79. package/lib/navigation/utility/navigation-item-task-utility-methods.d.ts +6 -0
  80. package/lib/resources/engine-endpoint/petri-net-resource.service.d.ts +8 -0
  81. package/lib/resources/interface/petri-net-request-body.d.ts +1 -0
  82. package/lib/search/search-service/search.service.d.ts +0 -5
  83. package/lib/toolbar/abstract-toolbar.component.d.ts +16 -6
  84. package/lib/toolbar/public-api.d.ts +1 -0
  85. package/lib/toolbar/toolbar-config.d.ts +11 -0
  86. package/lib/utility/navigation-item-task-filter-factory.d.ts +3 -2
  87. package/lib/utility/navigation-item-task-search-categories-factory.d.ts +1 -1
  88. package/lib/view/abstract/view-with-headers.d.ts +1 -1
  89. package/lib/view/case-view/service/case-view-service.d.ts +0 -2
  90. package/lib/view/public-api.d.ts +1 -0
  91. package/lib/view/task-view/abstract-single-task-view.component.d.ts +5 -16
  92. package/lib/view/task-view/abstract-tabbed-single-task-view.component.d.ts +15 -0
  93. package/lib/view/workflow-view/abstract-workflow-view.component.d.ts +5 -2
  94. package/lib/view/workflow-view/workflow-view.service.d.ts +2 -0
  95. package/package.json +1 -1
  96. package/src/assets/i18n/de.json +4 -2
  97. package/src/assets/i18n/en.json +4 -2
  98. package/src/assets/i18n/sk.json +4 -2
@@ -1,4 +1,4 @@
1
- import { Component, Inject, Input, Optional } from '@angular/core';
1
+ import { Component, Input, Optional } from '@angular/core';
2
2
  import { CaseHeaderService } from './case-header/case-header.service';
3
3
  import { TaskHeaderService } from './task-header/task-header.service';
4
4
  import { WorkflowHeaderService } from './workflow-header/workflow-header.service';
@@ -8,20 +8,14 @@ import { HeaderSearchService } from '../search/header-search-service/header-sear
8
8
  import { FormControl, Validators } from '@angular/forms';
9
9
  import { stopPropagation } from '../utility/stop-propagation';
10
10
  import { debounceTime } from "rxjs/operators";
11
- import { DATA_FIELD_PORTAL_DATA } from "../data-fields/models/data-field-portal-data-injection-token";
12
- import { MultichoiceField } from "../data-fields/multichoice-field/models/multichoice-field";
13
- import { EnumerationField } from "../data-fields/enumeration-field/models/enumeration-field";
14
11
  import * as i0 from "@angular/core";
15
12
  import * as i1 from "@ngx-translate/core";
16
13
  import * as i2 from "./services/overflow.service";
17
- import * as i3 from "../view/case-view/service/case-view-service";
18
14
  export class AbstractHeaderComponent {
19
- constructor(_injector, _translate, _overflowService, _caseViewService, _dataFieldPortalData) {
15
+ constructor(_injector, _translate, _overflowService) {
20
16
  this._injector = _injector;
21
17
  this._translate = _translate;
22
18
  this._overflowService = _overflowService;
23
- this._caseViewService = _caseViewService;
24
- this._dataFieldPortalData = _dataFieldPortalData;
25
19
  this.DEFAULT_COLUMN_COUNT = 6;
26
20
  this.DEFAULT_COLUMN_WIDTH = 220;
27
21
  this.INPUT_DEBOUNCE_TIME = 600;
@@ -36,7 +30,6 @@ export class AbstractHeaderComponent {
36
30
  this._initHeaderCount = undefined;
37
31
  this._initResponsiveHeaders = undefined;
38
32
  this.initializeFormControls(this._overflowService !== null);
39
- this._changeValue = true;
40
33
  }
41
34
  set maxHeaderColumns(count) {
42
35
  if (this.headerService) {
@@ -75,7 +68,6 @@ export class AbstractHeaderComponent {
75
68
  this.headerService.responsiveHeaders = this._initResponsiveHeaders;
76
69
  }
77
70
  this.headerService.preferenceColumnCount$.subscribe(value => this.columnCountControl.setValue(value));
78
- this.resolveApprovalDatafields();
79
71
  }
80
72
  ngOnDestroy() {
81
73
  if (this.canOverflow) {
@@ -83,9 +75,6 @@ export class AbstractHeaderComponent {
83
75
  this.subColumnCountControl.unsubscribe();
84
76
  this.subOverflowControl.unsubscribe();
85
77
  }
86
- if (this._subCases) {
87
- this._subCases.unsubscribe();
88
- }
89
78
  }
90
79
  /**
91
80
  * Injects the correct {@link AbstractHeaderService} instance based on this component's type
@@ -176,55 +165,8 @@ export class AbstractHeaderComponent {
176
165
  }
177
166
  });
178
167
  }
179
- indeterminate() {
180
- if (this._caseViewService) {
181
- return this._dataFieldPortalData?.dataField?.value?.length > 0 &&
182
- this._caseViewService.cases.some(value => this._dataFieldPortalData?.dataField.value.includes(value.stringId)) &&
183
- !this.resolveApprovalValue();
184
- }
185
- return this._dataFieldPortalData?.dataField?.value?.length > 0 &&
186
- this._dataFieldPortalData?.dataField?.value?.length < this._dataFieldPortalData?.dataField?.choices?.length;
187
- }
188
- typeApproval() {
189
- return this._dataFieldPortalData?.dataField instanceof MultichoiceField ? 'multichoice' : 'enumeration';
190
- }
191
- resolveApprovalDatafields() {
192
- if (this._dataFieldPortalData !== null && this._dataFieldPortalData.dataField instanceof MultichoiceField && this._caseViewService) {
193
- this.approvalFormControl.setValue(this.resolveApprovalValue());
194
- this.approvalFormControl.valueChanges.subscribe(value => {
195
- if (this._changeValue) {
196
- if (value) {
197
- this._dataFieldPortalData.dataField.value = this._caseViewService.cases.map(caze => caze.stringId);
198
- }
199
- else {
200
- this._dataFieldPortalData.dataField.value = [];
201
- }
202
- }
203
- this._changeValue = true;
204
- });
205
- this._dataFieldPortalData.dataField.valueChanges().subscribe(() => {
206
- this._changeValue = false;
207
- this.approvalFormControl.setValue(this.resolveApprovalValue());
208
- });
209
- this._subCases = this._caseViewService.cases$.subscribe(() => {
210
- this._changeValue = false;
211
- this.approvalFormControl.setValue(this.resolveApprovalValue());
212
- });
213
- }
214
- if (this._dataFieldPortalData !== null && this._dataFieldPortalData.dataField instanceof EnumerationField) {
215
- this.approvalFormControl.valueChanges.subscribe(value => {
216
- this._dataFieldPortalData.dataField.value = null;
217
- });
218
- }
219
- }
220
- resolveApprovalValue() {
221
- if (this._caseViewService.cases.length === 0) {
222
- return false;
223
- }
224
- return this._caseViewService.cases.every(value => this._dataFieldPortalData?.dataField.value.includes(value.stringId));
225
- }
226
168
  }
227
- AbstractHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractHeaderComponent, deps: [{ token: i0.Injector }, { token: i1.TranslateService }, { token: i2.OverflowService, optional: true }, { token: i3.CaseViewService, optional: true }, { token: DATA_FIELD_PORTAL_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
169
+ AbstractHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractHeaderComponent, deps: [{ token: i0.Injector }, { token: i1.TranslateService }, { token: i2.OverflowService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
228
170
  AbstractHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AbstractHeaderComponent, selector: "ncc-abstract-header", inputs: { type: "type", hideHeaderMenu: "hideHeaderMenu", showEditButton: "showEditButton", showSortButton: "showSortButton", showSearchButton: "showSearchButton", showTableSection: "showTableSection", approval: "approval", maxHeaderColumns: "maxHeaderColumns", responsiveHeaders: "responsiveHeaders" }, ngImport: i0, template: '', isInline: true });
229
171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AbstractHeaderComponent, decorators: [{
230
172
  type: Component,
@@ -234,13 +176,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
234
176
  }]
235
177
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.TranslateService }, { type: i2.OverflowService, decorators: [{
236
178
  type: Optional
237
- }] }, { type: i3.CaseViewService, decorators: [{
238
- type: Optional
239
- }] }, { type: undefined, decorators: [{
240
- type: Optional
241
- }, {
242
- type: Inject,
243
- args: [DATA_FIELD_PORTAL_DATA]
244
179
  }] }]; }, propDecorators: { type: [{
245
180
  type: Input
246
181
  }], hideHeaderMenu: [{
@@ -260,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
260
195
  }], responsiveHeaders: [{
261
196
  type: Input
262
197
  }] } });
263
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL2Fic3RyYWN0LWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQVksS0FBSyxFQUFxQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFOUYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDaEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUMxRixPQUFPLEVBQUMsV0FBVyxFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUNILHNCQUFzQixFQUV6QixNQUFNLDhEQUE4RCxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzNGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFDOzs7OztBQU0zRixNQUFNLE9BQWdCLHVCQUF1QjtJQStCekMsWUFBc0IsU0FBbUIsRUFDbkIsVUFBNEIsRUFDaEIsZ0JBQWlDLEVBQ2pDLGdCQUFpQyxFQUNELG9C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Z0JBQWdCLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUMsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzNILENBQUM7O3FIQWhQaUIsdUJBQXVCLHdLQW1DVCxzQkFBc0I7eUdBbkNwQyx1QkFBdUIsMldBRi9CLEVBQUU7NEZBRU0sdUJBQXVCO2tCQUo1QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzswQkFrQ2dCLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCOzRDQTlCN0MsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkE4QkssZ0JBQWdCO3NCQUQxQixLQUFLO2dCQWFLLGlCQUFpQjtzQkFEM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RIZWFkZXJTZXJ2aWNlfSBmcm9tICcuL2Fic3RyYWN0LWhlYWRlci1zZXJ2aWNlJztcbmltcG9ydCB7Q2FzZUhlYWRlclNlcnZpY2V9IGZyb20gJy4vY2FzZS1oZWFkZXIvY2FzZS1oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQge1Rhc2tIZWFkZXJTZXJ2aWNlfSBmcm9tICcuL3Rhc2staGVhZGVyL3Rhc2staGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrZmxvd0hlYWRlclNlcnZpY2V9IGZyb20gJy4vd29ya2Zsb3ctaGVhZGVyL3dvcmtmbG93LWhlYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7SGVhZGVyVHlwZX0gZnJvbSAnLi9tb2RlbHMvaGVhZGVyLXR5cGUnO1xuaW1wb3J0IHtIZWFkZXJNb2RlfSBmcm9tICcuL21vZGVscy9oZWFkZXItbW9kZSc7XG5pbXBvcnQge0hlYWRlclNlYXJjaFNlcnZpY2V9IGZyb20gJy4uL3NlYXJjaC9oZWFkZXItc2VhcmNoLXNlcnZpY2UvaGVhZGVyLXNlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge092ZXJmbG93U2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlcy9vdmVyZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7c3RvcFByb3BhZ2F0aW9ufSBmcm9tICcuLi91dGlsaXR5L3N0b3AtcHJvcGFnYXRpb24nO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHtDYXNlVmlld1NlcnZpY2V9IGZyb20gXCIuLi92aWV3L2Nhc2Utdmlldy9zZXJ2aWNlL2Nhc2Utdmlldy1zZXJ2aWNlXCI7XG5pbXBvcnQge1xuICAgIERBVEFfRklFTERfUE9SVEFMX0RBVEEsXG4gICAgRGF0YUZpZWxkUG9ydGFsRGF0YVxufSBmcm9tIFwiLi4vZGF0YS1maWVsZHMvbW9kZWxzL2RhdGEtZmllbGQtcG9ydGFsLWRhdGEtaW5qZWN0aW9uLXRva2VuXCI7XG5pbXBvcnQge011bHRpY2hvaWNlRmllbGR9IGZyb20gXCIuLi9kYXRhLWZpZWxkcy9tdWx0aWNob2ljZS1maWVsZC9tb2RlbHMvbXVsdGljaG9pY2UtZmllbGRcIjtcbmltcG9ydCB7RW51bWVyYXRpb25GaWVsZH0gZnJvbSBcIi4uL2RhdGEtZmllbGRzL2VudW1lcmF0aW9uLWZpZWxkL21vZGVscy9lbnVtZXJhdGlvbi1maWVsZFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1oZWFkZXInLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBERUZBVUxUX0NPTFVNTl9DT1VOVCA9IDY7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IERFRkFVTFRfQ09MVU1OX1dJRFRIID0gMjIwO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBJTlBVVF9ERUJPVU5DRV9USU1FID0gNjAwO1xuICAgIEBJbnB1dCgpIHR5cGU6IEhlYWRlclR5cGUgPSBIZWFkZXJUeXBlLkNBU0U7XG4gICAgQElucHV0KCkgaGlkZUhlYWRlck1lbnUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzaG93RWRpdEJ1dHRvbiA9IHRydWU7XG4gICAgQElucHV0KCkgc2hvd1NvcnRCdXR0b24gPSB0cnVlO1xuICAgIEBJbnB1dCgpIHNob3dTZWFyY2hCdXR0b24gPSB0cnVlO1xuICAgIEBJbnB1dCgpIHNob3dUYWJsZVNlY3Rpb24gPSB0cnVlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhcHByb3ZhbDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBoZWFkZXJTZXJ2aWNlOiBBYnN0cmFjdEhlYWRlclNlcnZpY2U7XG4gICAgcHJvdGVjdGVkIF9oZWFkZXJTZWFyY2g6IEhlYWRlclNlYXJjaFNlcnZpY2U7XG4gICAgcHVibGljIHJlYWRvbmx5IGhlYWRlck1vZGVFbnVtID0gSGVhZGVyTW9kZTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyVHlwZUVudW0gPSBIZWFkZXJUeXBlO1xuICAgIHB1YmxpYyBvdmVyZmxvd0NvbnRyb2w6IEZvcm1Db250cm9sO1xuICAgIHB1YmxpYyBjb2x1bW5Db3VudENvbnRyb2w6IEZvcm1Db250cm9sO1xuICAgIHB1YmxpYyBjb2x1bW5XaWR0aENvbnRyb2w6IEZvcm1Db250cm9sO1xuICAgIHB1YmxpYyBjYW5PdmVyZmxvdzogYm9vbGVhbjtcbiAgICBwdWJsaWMgc3ViT3ZlcmZsb3dDb250cm9sOiBTdWJzY3JpcHRpb247XG4gICAgcHVibGljIHN1YkNvbHVtbkNvdW50Q29udHJvbDogU3Vic2NyaXB0aW9uO1xuICAgIHB1YmxpYyBzdWJDb2x1bW5XaWR0aENvbnRyb2w6IFN1YnNjcmlwdGlvbjtcblxuICAgIHByb3RlY3RlZCBfaW5pdEhlYWRlckNvdW50OiBudW1iZXIgPSB1bmRlZmluZWQ7XG4gICAgcHJvdGVjdGVkIF9pbml0UmVzcG9uc2l2ZUhlYWRlcnM6IGJvb2xlYW4gPSB1bmRlZmluZWQ7XG4gICAgcHJvdGVjdGVkIF9hcHByb3ZhbEZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcbiAgICBwcm90ZWN0ZWQgX2NoYW5nZVZhbHVlOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfc3ViQ2FzZXM6IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfb3ZlcmZsb3dTZXJ2aWNlOiBPdmVyZmxvd1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF9jYXNlVmlld1NlcnZpY2U6IENhc2VWaWV3U2VydmljZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERBVEFfRklFTERfUE9SVEFMX0RBVEEpIHByb3RlY3RlZCBfZGF0YUZpZWxkUG9ydGFsRGF0YTogRGF0YUZpZWxkUG9ydGFsRGF0YTxNdWx0aWNob2ljZUZpZWxkIHwgRW51bWVyYXRpb25GaWVsZD4pIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplRm9ybUNvbnRyb2xzKHRoaXMuX292ZXJmbG93U2VydmljZSAhPT0gbnVsbCk7XG4gICAgICAgIHRoaXMuX2NoYW5nZVZhbHVlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgbWF4SGVhZGVyQ29sdW1ucyhjb3VudDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLmhlYWRlclNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyU2VydmljZS5oZWFkZXJDb2x1bW5Db3VudCA9IGNvdW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faW5pdEhlYWRlckNvdW50ID0gY291bnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX292ZXJmbG93U2VydmljZSA9PT0gbnVsbCB8fCAodGhpcy5fb3ZlcmZsb3dTZXJ2aWNlICE9PSBudWxsICYmICF0aGlzLl9vdmVyZmxvd1NlcnZpY2UuaW5pdGlhbGl6ZWRDb3VudCkpIHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1uQ291bnRDb250cm9sLnNldFZhbHVlKGNvdW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCByZXNwb25zaXZlSGVhZGVycyhyZXNwb25zaXZlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLmhlYWRlclNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyU2VydmljZS5yZXNwb25zaXZlSGVhZGVycyA9IHJlc3BvbnNpdmU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0UmVzcG9uc2l2ZUhlYWRlcnMgPSByZXNwb25zaXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGFwcHJvdmFsRm9ybUNvbnRyb2woKTogRm9ybUNvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwcm92YWxGb3JtQ29udHJvbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlSGVhZGVyc01vZGUobW9kZTogSGVhZGVyTW9kZSwgc2F2ZUxhc3RNb2RlOiBib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICBpZiAodGhpcy5oZWFkZXJTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UuY2hhbmdlTW9kZShtb2RlLCBzYXZlTGFzdE1vZGUpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNvbHZlSGVhZGVyU2VydmljZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkSGVhZGVyU2VhcmNoKCk7XG4gICAgICAgIGlmICh0aGlzLl9pbml0SGVhZGVyQ291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLmhlYWRlckNvbHVtbkNvdW50ID0gdGhpcy5faW5pdEhlYWRlckNvdW50O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pbml0UmVzcG9uc2l2ZUhlYWRlcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLnJlc3BvbnNpdmVIZWFkZXJzID0gdGhpcy5faW5pdFJlc3BvbnNpdmVIZWFkZXJzO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGVhZGVyU2VydmljZS5wcmVmZXJlbmNlQ29sdW1uQ291bnQkLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLmNvbHVtbkNvdW50Q29udHJvbC5zZXRWYWx1ZSh2YWx1ZSkpO1xuICAgICAgICB0aGlzLnJlc29sdmVBcHByb3ZhbERhdGFmaWVsZHMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2FuT3ZlcmZsb3cpIHtcbiAgICAgICAgICAgIHRoaXMuc3ViQ29sdW1uV2lkdGhDb250cm9sLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLnN1YkNvbHVtbkNvdW50Q29udHJvbC51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5zdWJPdmVyZmxvd0NvbnRyb2wudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fc3ViQ2FzZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YkNhc2VzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbmplY3RzIHRoZSBjb3JyZWN0IHtAbGluayBBYnN0cmFjdEhlYWRlclNlcnZpY2V9IGluc3RhbmNlIGJhc2VkIG9uIHRoaXMgY29tcG9uZW50J3MgdHlwZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZXNvbHZlSGVhZGVyU2VydmljZSgpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgSGVhZGVyVHlwZS5DQVNFOlxuICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChDYXNlSGVhZGVyU2VydmljZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEhlYWRlclR5cGUuVEFTSzpcbiAgICAgICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoVGFza0hlYWRlclNlcnZpY2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBIZWFkZXJUeXBlLldPUktGTE9XOlxuICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChXb3JrZmxvd0hlYWRlclNlcnZpY2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY29ycmVjdCB7QGxpbmsgQWJzdHJhY3RIZWFkZXJTZXJ2aWNlfSBpbnN0YW5jZSB0byB0aGUge0BsaW5rIEhlYWRlclNlYXJjaFNlcnZpY2V9XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVkSGVhZGVyU2VhcmNoKCkge1xuICAgICAgICBpZiAodGhpcy50eXBlID09PSBIZWFkZXJUeXBlLkNBU0UpIHtcbiAgICAgICAgICAgIHRoaXMuX2hlYWRlclNlYXJjaCA9IHRoaXMuX2luamVjdG9yLmdldChIZWFkZXJTZWFyY2hTZXJ2aWNlKTtcbiAgICAgICAgICAgIHRoaXMuX2hlYWRlclNlYXJjaC5oZWFkZXJTZXJ2aWNlID0gdGhpcy5oZWFkZXJTZXJ2aWNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xpY2tTdG9wKCRldmVudCkge1xuICAgICAgICBzdG9wUHJvcGFnYXRpb24oJGV2ZW50KTtcbiAgICB9XG5cbiAgICBnZXRNaW5XaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLl9vdmVyZmxvd1NlcnZpY2UgJiYgdGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLm92ZXJmbG93TW9kZSkgPyBgJHt0aGlzLl9vdmVyZmxvd1NlcnZpY2UuY29sdW1uV2lkdGh9cHhgIDogJzAnO1xuICAgIH1cblxuICAgIGNvbmZpcm1FZGl0TW9kZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLm92ZXJmbG93Q29udHJvbC52YWx1ZSB8fCAodGhpcy5vdmVyZmxvd0NvbnRyb2wudmFsdWUgJiYgdGhpcy5jb2x1bW5XaWR0aENvbnRyb2wudmFsaWQgJiYgdGhpcy5jb2x1bW5XaWR0aENvbnRyb2wudmFsaWQpKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UuY29uZmlybUVkaXRNb2RlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRFcnJvck1lc3NhZ2VXaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRFcnJvck1lc3NhZ2UodGhpcy5jb2x1bW5XaWR0aENvbnRyb2wsIDE4MCk7XG4gICAgfVxuXG4gICAgZ2V0RXJyb3JNZXNzYWdlQ291bnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkRXJyb3JNZXNzYWdlKHRoaXMuY29sdW1uQ291bnRDb250cm9sLCAxKTtcbiAgICB9XG5cbiAgICBidWlsZEVycm9yTWVzc2FnZShmb3JtQ29udHJvbFJlZjogRm9ybUNvbnRyb2wsIG1pbk51bWJlcikge1xuICAgICAgICBpZiAoZm9ybUNvbnRyb2xSZWYuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnZGF0YUZpZWxkLnZhbGlkYXRpb25zLnJlcXVpcmVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1Db250cm9sUmVmLmhhc0Vycm9yKCdtaW4nKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdkYXRhRmllbGQudmFsaWRhdGlvbnMubWluJywge2xlbmd0aDogbWluTnVtYmVyfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0aWFsaXplRm9ybUNvbnRyb2xzKGV4aXN0OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuY2FuT3ZlcmZsb3cgPSBleGlzdDtcbiAgICAgICAgdGhpcy5vdmVyZmxvd0NvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woZXhpc3QgPyB0aGlzLl9vdmVyZmxvd1NlcnZpY2Uub3ZlcmZsb3dNb2RlIDogZmFsc2UpO1xuICAgICAgICB0aGlzLmNvbHVtbkNvdW50Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChleGlzdCA/IHRoaXMuX292ZXJmbG93U2VydmljZS5jb2x1bW5Db3VudCA6IHRoaXMuREVGQVVMVF9DT0xVTU5fQ09VTlQsIFtcbiAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICBWYWxpZGF0b3JzLm1pbigxKV0pO1xuICAgICAgICB0aGlzLmNvbHVtbldpZHRoQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChleGlzdCA/IHRoaXMuX292ZXJmbG93U2VydmljZS5jb2x1bW5XaWR0aCA6IHRoaXMuREVGQVVMVF9DT0xVTU5fV0lEVEgsIFtcbiAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICBWYWxpZGF0b3JzLm1pbigxODApXSk7XG4gICAgICAgIHRoaXMuX2FwcHJvdmFsRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woZmFsc2UpO1xuICAgICAgICBpZiAoZXhpc3QpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVZhbHVlQ2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVWYWx1ZUNoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMuc3ViT3ZlcmZsb3dDb250cm9sID0gdGhpcy5vdmVyZmxvd0NvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9vdmVyZmxvd1NlcnZpY2Uub3ZlcmZsb3dNb2RlID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1YkNvbHVtbkNvdW50Q29udHJvbCA9IHRoaXMuY29sdW1uQ291bnRDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSh0aGlzLklOUFVUX0RFQk9VTkNFX1RJTUUpKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29sdW1uQ291bnRDb250cm9sLnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLmNvbHVtbkNvdW50ID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGVhZGVyU2VydmljZSAmJiB0aGlzLnR5cGUgPT09IEhlYWRlclR5cGUuQ0FTRSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UuaGVhZGVyQ29sdW1uQ291bnQgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaGVhZGVyU2VydmljZSBhcyBDYXNlSGVhZGVyU2VydmljZSkudXBkYXRlQ29sdW1uQ291bnQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1YkNvbHVtbldpZHRoQ29udHJvbCA9IHRoaXMuY29sdW1uV2lkdGhDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSh0aGlzLklOUFVUX0RFQk9VTkNFX1RJTUUpKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29sdW1uV2lkdGhDb250cm9sLnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLmNvbHVtbldpZHRoID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGVhZGVyU2VydmljZSAmJiB0aGlzLnR5cGUgPT09IEhlYWRlclR5cGUuQ0FTRSkge1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5oZWFkZXJTZXJ2aWNlIGFzIENhc2VIZWFkZXJTZXJ2aWNlKS51cGRhdGVDb2x1bW5Db3VudCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGluZGV0ZXJtaW5hdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLl9jYXNlVmlld1NlcnZpY2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhRmllbGRQb3J0YWxEYXRhPy5kYXRhRmllbGQ/LnZhbHVlPy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fY2FzZVZpZXdTZXJ2aWNlLmNhc2VzLnNvbWUodmFsdWUgPT4gdGhpcy5fZGF0YUZpZWxkUG9ydGFsRGF0YT8uZGF0YUZpZWxkLnZhbHVlLmluY2x1ZGVzKHZhbHVlLnN0cmluZ0lkKSkgJiZcbiAgICAgICAgICAgICAgICAhdGhpcy5yZXNvbHZlQXBwcm92YWxWYWx1ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhRmllbGRQb3J0YWxEYXRhPy5kYXRhRmllbGQ/LnZhbHVlPy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICB0aGlzLl9kYXRhRmllbGRQb3J0YWxEYXRhPy5kYXRhRmllbGQ/LnZhbHVlPy5sZW5ndGggPCB0aGlzLl9kYXRhRmllbGRQb3J0YWxEYXRhPy5kYXRhRmllbGQ/LmNob2ljZXM/Lmxlbmd0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHlwZUFwcHJvdmFsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YUZpZWxkUG9ydGFsRGF0YT8uZGF0YUZpZWxkIGluc3RhbmNlb2YgTXVsdGljaG9pY2VGaWVsZCA/ICdtdWx0aWNob2ljZScgOiAnZW51bWVyYXRpb24nO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNvbHZlQXBwcm92YWxEYXRhZmllbGRzKCkge1xuICAgICAgICBpZiAodGhpcy5fZGF0YUZpZWxkUG9ydGFsRGF0YSAhPT0gbnVsbCAmJiB0aGlzLl9kYXRhRmllbGRQb3J0YWxEYXRhLmRhdGFGaWVsZCBpbnN0YW5jZW9mIE11bHRpY2hvaWNlRmllbGQgJiYgdGhpcy5fY2FzZVZpZXdTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLmFwcHJvdmFsRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5yZXNvbHZlQXBwcm92YWxWYWx1ZSgpKTtcbiAgICAgICAgICAgIHRoaXMuYXBwcm92YWxGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fY2hhbmdlVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhRmllbGRQb3J0YWxEYXRhLmRhdGFGaWVsZC52YWx1ZSA9IHRoaXMuX2Nhc2VWaWV3U2VydmljZS5jYXNlcy5tYXAoY2F6ZSA9PiBjYXplLnN0cmluZ0lkKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFGaWVsZFBvcnRhbERhdGEuZGF0YUZpZWxkLnZhbHVlID0gW107XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlVmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHRoaXMuX2RhdGFGaWVsZFBvcnRhbERhdGEuZGF0YUZpZWxkLnZhbHVlQ2hhbmdlcygpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmFwcHJvdmFsRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5yZXNvbHZlQXBwcm92YWxWYWx1ZSgpKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB0aGlzLl9zdWJDYXNlcyA9IHRoaXMuX2Nhc2VWaWV3U2VydmljZS5jYXNlcyQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VWYWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwcm92YWxGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnJlc29sdmVBcHByb3ZhbFZhbHVlKCkpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fZGF0YUZpZWxkUG9ydGFsRGF0YSAhPT0gbnVsbCAmJiB0aGlzLl9kYXRhRmllbGRQb3J0YWxEYXRhLmRhdGFGaWVsZCBpbnN0YW5jZW9mIEVudW1lcmF0aW9uRmllbGQpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwcm92YWxGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhRmllbGRQb3J0YWxEYXRhLmRhdGFGaWVsZC52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVBcHByb3ZhbFZhbHVlKCkge1xuICAgICAgICBpZiAodGhpcy5fY2FzZVZpZXdTZXJ2aWNlLmNhc2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9jYXNlVmlld1NlcnZpY2UuY2FzZXMuZXZlcnkodmFsdWUgPT4gdGhpcy5fZGF0YUZpZWxkUG9ydGFsRGF0YT8uZGF0YUZpZWxkLnZhbHVlLmluY2x1ZGVzKHZhbHVlLnN0cmluZ0lkKSk7XG4gICAgfVxufVxuIl19
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL2Fic3RyYWN0LWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBWSxLQUFLLEVBQXFCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxXQUFXLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRTVELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU01QyxNQUFNLE9BQWdCLHVCQUF1QjtJQTZCekMsWUFBc0IsU0FBbUIsRUFDbkIsVUFBNEIsRUFDaEIsZ0JBQWlDO1FBRjdDLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQTdCaEQseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLHlCQUFvQixHQUFHLEdBQUcsQ0FBQztRQUMzQix3QkFBbUIsR0FBRyxHQUFHLENB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Q0FBQyxpQkFBaUIsRUFBRSxDQUFDO2lCQUNqRTthQUNKO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzdILElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7Z0JBQzFDLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxJQUFJLEVBQUU7b0JBQ3BELElBQUksQ0FBQyxhQUFtQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7aUJBQ2pFO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3FIQXJMaUIsdUJBQXVCO3lHQUF2Qix1QkFBdUIsMldBRi9CLEVBQUU7NEZBRU0sdUJBQXVCO2tCQUo1QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzswQkFnQ2dCLFFBQVE7NENBMUJaLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBeUJLLGdCQUFnQjtzQkFEMUIsS0FBSztnQkFhSyxpQkFBaUI7c0JBRDNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdEhlYWRlclNlcnZpY2V9IGZyb20gJy4vYWJzdHJhY3QtaGVhZGVyLXNlcnZpY2UnO1xuaW1wb3J0IHtDYXNlSGVhZGVyU2VydmljZX0gZnJvbSAnLi9jYXNlLWhlYWRlci9jYXNlLWhlYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7VGFza0hlYWRlclNlcnZpY2V9IGZyb20gJy4vdGFzay1oZWFkZXIvdGFzay1oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQge1dvcmtmbG93SGVhZGVyU2VydmljZX0gZnJvbSAnLi93b3JrZmxvdy1oZWFkZXIvd29ya2Zsb3ctaGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtIZWFkZXJUeXBlfSBmcm9tICcuL21vZGVscy9oZWFkZXItdHlwZSc7XG5pbXBvcnQge0hlYWRlck1vZGV9IGZyb20gJy4vbW9kZWxzL2hlYWRlci1tb2RlJztcbmltcG9ydCB7SGVhZGVyU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vc2VhcmNoL2hlYWRlci1zZWFyY2gtc2VydmljZS9oZWFkZXItc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7T3ZlcmZsb3dTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzL292ZXJmbG93LnNlcnZpY2UnO1xuaW1wb3J0IHtzdG9wUHJvcGFnYXRpb259IGZyb20gJy4uL3V0aWxpdHkvc3RvcC1wcm9wYWdhdGlvbic7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LWhlYWRlcicsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0SGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IERFRkFVTFRfQ09MVU1OX0NPVU5UID0gNjtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgREVGQVVMVF9DT0xVTU5fV0lEVEggPSAyMjA7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IElOUFVUX0RFQk9VTkNFX1RJTUUgPSA2MDA7XG4gICAgQElucHV0KCkgdHlwZTogSGVhZGVyVHlwZSA9IEhlYWRlclR5cGUuQ0FTRTtcbiAgICBASW5wdXQoKSBoaWRlSGVhZGVyTWVudSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNob3dFZGl0QnV0dG9uID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBzaG93U29ydEJ1dHRvbiA9IHRydWU7XG4gICAgQElucHV0KCkgc2hvd1NlYXJjaEJ1dHRvbiA9IHRydWU7XG4gICAgQElucHV0KCkgc2hvd1RhYmxlU2VjdGlvbiA9IHRydWU7XG4gICAgQElucHV0KCkgcHVibGljIGFwcHJvdmFsOiBib29sZWFuO1xuXG4gICAgcHVibGljIGhlYWRlclNlcnZpY2U6IEFic3RyYWN0SGVhZGVyU2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2hlYWRlclNlYXJjaDogSGVhZGVyU2VhcmNoU2VydmljZTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyTW9kZUVudW0gPSBIZWFkZXJNb2RlO1xuICAgIHB1YmxpYyByZWFkb25seSBoZWFkZXJUeXBlRW51bSA9IEhlYWRlclR5cGU7XG4gICAgcHVibGljIG92ZXJmbG93Q29udHJvbDogRm9ybUNvbnRyb2w7XG4gICAgcHVibGljIGNvbHVtbkNvdW50Q29udHJvbDogRm9ybUNvbnRyb2w7XG4gICAgcHVibGljIGNvbHVtbldpZHRoQ29udHJvbDogRm9ybUNvbnRyb2w7XG4gICAgcHVibGljIGNhbk92ZXJmbG93OiBib29sZWFuO1xuICAgIHB1YmxpYyBzdWJPdmVyZmxvd0NvbnRyb2w6IFN1YnNjcmlwdGlvbjtcbiAgICBwdWJsaWMgc3ViQ29sdW1uQ291bnRDb250cm9sOiBTdWJzY3JpcHRpb247XG4gICAgcHVibGljIHN1YkNvbHVtbldpZHRoQ29udHJvbDogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJvdGVjdGVkIF9pbml0SGVhZGVyQ291bnQ6IG51bWJlciA9IHVuZGVmaW5lZDtcbiAgICBwcm90ZWN0ZWQgX2luaXRSZXNwb25zaXZlSGVhZGVyczogYm9vbGVhbiA9IHVuZGVmaW5lZDtcbiAgICBwcm90ZWN0ZWQgX2FwcHJvdmFsRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF9vdmVyZmxvd1NlcnZpY2U6IE92ZXJmbG93U2VydmljZSkge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVGb3JtQ29udHJvbHModGhpcy5fb3ZlcmZsb3dTZXJ2aWNlICE9PSBudWxsKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgbWF4SGVhZGVyQ29sdW1ucyhjb3VudDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLmhlYWRlclNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyU2VydmljZS5oZWFkZXJDb2x1bW5Db3VudCA9IGNvdW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faW5pdEhlYWRlckNvdW50ID0gY291bnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX292ZXJmbG93U2VydmljZSA9PT0gbnVsbCB8fCAodGhpcy5fb3ZlcmZsb3dTZXJ2aWNlICE9PSBudWxsICYmICF0aGlzLl9vdmVyZmxvd1NlcnZpY2UuaW5pdGlhbGl6ZWRDb3VudCkpIHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1uQ291bnRDb250cm9sLnNldFZhbHVlKGNvdW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCByZXNwb25zaXZlSGVhZGVycyhyZXNwb25zaXZlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLmhlYWRlclNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyU2VydmljZS5yZXNwb25zaXZlSGVhZGVycyA9IHJlc3BvbnNpdmU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0UmVzcG9uc2l2ZUhlYWRlcnMgPSByZXNwb25zaXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGFwcHJvdmFsRm9ybUNvbnRyb2woKTogRm9ybUNvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwcm92YWxGb3JtQ29udHJvbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlSGVhZGVyc01vZGUobW9kZTogSGVhZGVyTW9kZSwgc2F2ZUxhc3RNb2RlOiBib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICBpZiAodGhpcy5oZWFkZXJTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UuY2hhbmdlTW9kZShtb2RlLCBzYXZlTGFzdE1vZGUpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNvbHZlSGVhZGVyU2VydmljZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkSGVhZGVyU2VhcmNoKCk7XG4gICAgICAgIGlmICh0aGlzLl9pbml0SGVhZGVyQ291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLmhlYWRlckNvbHVtbkNvdW50ID0gdGhpcy5faW5pdEhlYWRlckNvdW50O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pbml0UmVzcG9uc2l2ZUhlYWRlcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLnJlc3BvbnNpdmVIZWFkZXJzID0gdGhpcy5faW5pdFJlc3BvbnNpdmVIZWFkZXJzO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGVhZGVyU2VydmljZS5wcmVmZXJlbmNlQ29sdW1uQ291bnQkLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLmNvbHVtbkNvdW50Q29udHJvbC5zZXRWYWx1ZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jYW5PdmVyZmxvdykge1xuICAgICAgICAgICAgdGhpcy5zdWJDb2x1bW5XaWR0aENvbnRyb2wudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuc3ViQ29sdW1uQ291bnRDb250cm9sLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLnN1Yk92ZXJmbG93Q29udHJvbC51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5qZWN0cyB0aGUgY29ycmVjdCB7QGxpbmsgQWJzdHJhY3RIZWFkZXJTZXJ2aWNlfSBpbnN0YW5jZSBiYXNlZCBvbiB0aGlzIGNvbXBvbmVudCdzIHR5cGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZUhlYWRlclNlcnZpY2UoKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEhlYWRlclR5cGUuQ0FTRTpcbiAgICAgICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoQ2FzZUhlYWRlclNlcnZpY2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBIZWFkZXJUeXBlLlRBU0s6XG4gICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlID0gdGhpcy5faW5qZWN0b3IuZ2V0KFRhc2tIZWFkZXJTZXJ2aWNlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSGVhZGVyVHlwZS5XT1JLRkxPVzpcbiAgICAgICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoV29ya2Zsb3dIZWFkZXJTZXJ2aWNlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGNvcnJlY3Qge0BsaW5rIEFic3RyYWN0SGVhZGVyU2VydmljZX0gaW5zdGFuY2UgdG8gdGhlIHtAbGluayBIZWFkZXJTZWFyY2hTZXJ2aWNlfVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBpbml0aWFsaXplZEhlYWRlclNlYXJjaCgpIHtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gSGVhZGVyVHlwZS5DQVNFKSB7XG4gICAgICAgICAgICB0aGlzLl9oZWFkZXJTZWFyY2ggPSB0aGlzLl9pbmplY3Rvci5nZXQoSGVhZGVyU2VhcmNoU2VydmljZSk7XG4gICAgICAgICAgICB0aGlzLl9oZWFkZXJTZWFyY2guaGVhZGVyU2VydmljZSA9IHRoaXMuaGVhZGVyU2VydmljZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsaWNrU3RvcCgkZXZlbnQpIHtcbiAgICAgICAgc3RvcFByb3BhZ2F0aW9uKCRldmVudCk7XG4gICAgfVxuXG4gICAgZ2V0TWluV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5fb3ZlcmZsb3dTZXJ2aWNlICYmIHRoaXMuX292ZXJmbG93U2VydmljZS5vdmVyZmxvd01vZGUpID8gYCR7dGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLmNvbHVtbldpZHRofXB4YCA6ICcwJztcbiAgICB9XG5cbiAgICBjb25maXJtRWRpdE1vZGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5vdmVyZmxvd0NvbnRyb2wudmFsdWUgfHwgKHRoaXMub3ZlcmZsb3dDb250cm9sLnZhbHVlICYmIHRoaXMuY29sdW1uV2lkdGhDb250cm9sLnZhbGlkICYmIHRoaXMuY29sdW1uV2lkdGhDb250cm9sLnZhbGlkKSkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLmNvbmZpcm1FZGl0TW9kZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RXJyb3JNZXNzYWdlV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkRXJyb3JNZXNzYWdlKHRoaXMuY29sdW1uV2lkdGhDb250cm9sLCAxODApO1xuICAgIH1cblxuICAgIGdldEVycm9yTWVzc2FnZUNvdW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5idWlsZEVycm9yTWVzc2FnZSh0aGlzLmNvbHVtbkNvdW50Q29udHJvbCwgMSk7XG4gICAgfVxuXG4gICAgYnVpbGRFcnJvck1lc3NhZ2UoZm9ybUNvbnRyb2xSZWY6IEZvcm1Db250cm9sLCBtaW5OdW1iZXIpIHtcbiAgICAgICAgaWYgKGZvcm1Db250cm9sUmVmLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ2RhdGFGaWVsZC52YWxpZGF0aW9ucy5yZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtQ29udHJvbFJlZi5oYXNFcnJvcignbWluJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnZGF0YUZpZWxkLnZhbGlkYXRpb25zLm1pbicsIHtsZW5ndGg6IG1pbk51bWJlcn0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZUZvcm1Db250cm9scyhleGlzdDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmNhbk92ZXJmbG93ID0gZXhpc3Q7XG4gICAgICAgIHRoaXMub3ZlcmZsb3dDb250cm9sID0gbmV3IEZvcm1Db250cm9sKGV4aXN0ID8gdGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLm92ZXJmbG93TW9kZSA6IGZhbHNlKTtcbiAgICAgICAgdGhpcy5jb2x1bW5Db3VudENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woZXhpc3QgPyB0aGlzLl9vdmVyZmxvd1NlcnZpY2UuY29sdW1uQ291bnQgOiB0aGlzLkRFRkFVTFRfQ09MVU1OX0NPVU5ULCBbXG4gICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgICAgVmFsaWRhdG9ycy5taW4oMSldKTtcbiAgICAgICAgdGhpcy5jb2x1bW5XaWR0aENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woZXhpc3QgPyB0aGlzLl9vdmVyZmxvd1NlcnZpY2UuY29sdW1uV2lkdGggOiB0aGlzLkRFRkFVTFRfQ09MVU1OX1dJRFRILCBbXG4gICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgICAgVmFsaWRhdG9ycy5taW4oMTgwKV0pO1xuICAgICAgICB0aGlzLl9hcHByb3ZhbEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKGZhbHNlKTtcbiAgICAgICAgaWYgKGV4aXN0KSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVWYWx1ZUNoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0aWFsaXplVmFsdWVDaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLnN1Yk92ZXJmbG93Q29udHJvbCA9IHRoaXMub3ZlcmZsb3dDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgdGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLm92ZXJmbG93TW9kZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJDb2x1bW5Db3VudENvbnRyb2wgPSB0aGlzLmNvbHVtbkNvdW50Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUodGhpcy5JTlBVVF9ERUJPVU5DRV9USU1FKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbHVtbkNvdW50Q29udHJvbC52YWxpZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJmbG93U2VydmljZS5jb2x1bW5Db3VudCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhlYWRlclNlcnZpY2UgJiYgdGhpcy50eXBlID09PSBIZWFkZXJUeXBlLkNBU0UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLmhlYWRlckNvbHVtbkNvdW50ID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmhlYWRlclNlcnZpY2UgYXMgQ2FzZUhlYWRlclNlcnZpY2UpLnVwZGF0ZUNvbHVtbkNvdW50KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJDb2x1bW5XaWR0aENvbnRyb2wgPSB0aGlzLmNvbHVtbldpZHRoQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUodGhpcy5JTlBVVF9ERUJPVU5DRV9USU1FKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbHVtbldpZHRoQ29udHJvbC52YWxpZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJmbG93U2VydmljZS5jb2x1bW5XaWR0aCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhlYWRlclNlcnZpY2UgJiYgdGhpcy50eXBlID09PSBIZWFkZXJUeXBlLkNBU0UpIHtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaGVhZGVyU2VydmljZSBhcyBDYXNlSGVhZGVyU2VydmljZSkudXBkYXRlQ29sdW1uQ291bnQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -61,7 +61,7 @@ export class OverflowService {
61
61
  }
62
62
  const item = localStorage.getItem(viewId + '-' + id);
63
63
  if (item !== null) {
64
- if (id.includes('columnCount')) {
64
+ if (id?.includes('columnCount')) {
65
65
  this._initializedCount = true;
66
66
  }
67
67
  return item;
@@ -90,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
90
90
  }], ctorParameters: function () { return [{ type: i1.ViewIdService, decorators: [{
91
91
  type: Optional
92
92
  }] }]; } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL3NlcnZpY2VzL292ZXJmbG93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQVVuRCxNQUFNLE9BQU8sZUFBZTtJQVV4QixZQUFnQyxjQUE2QjtRQUE3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQVIxQyx5QkFBb0IsR0FBRyxHQUFHLENBQUM7UUFDM0IseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBUXhDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsS0FBSyxNQUFNLENBQUM7UUFDM0UsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzlILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNsSSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFD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bnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1ZpZXdJZFNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdmlldy1pZC5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIE92ZXJmbG93U3RhdGUge1xuICAgIG92ZXJmbG93TW9kZTogYm9vbGVhbjtcbiAgICBjb2x1bW5XaWR0aDogbnVtYmVyO1xuICAgIGNvbHVtbkNvdW50OiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVyZmxvd1NlcnZpY2Uge1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IERFRkFVTFRfQ09MVU1OX1dJRFRIID0gMjAwO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBERUZBVUxUX0NPTFVNTl9DT1VOVCA9IDY7XG4gICAgcHJpdmF0ZSBfb3ZlcmZsb3dNb2RlOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2NvbHVtbldpZHRoOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfY29sdW1uQ291bnQ6IG51bWJlcjtcbiAgICBwcml2YXRlIF9zdGF0ZTogT3ZlcmZsb3dTdGF0ZTtcbiAgICBwcml2YXRlIF9pbml0aWFsaXplZENvdW50OiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfdmlld0lkU2VydmljZTogVmlld0lkU2VydmljZSkge1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZENvdW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHRoaXMuaW5pdGlhbGl6ZUl0ZW0oJ292ZXJmbG93TW9kZScsIGZhbHNlKSA9PT0gJ3RydWUnO1xuICAgICAgICB0aGlzLl9jb2x1bW5Db3VudCA9IHRoaXMuY2hlY2tJc05hbih0aGlzLmluaXRpYWxpemVJdGVtKCdjb2x1bW5Db3VudCcsIHRoaXMuREVGQVVMVF9DT0xVTU5fQ09VTlQpLCB0aGlzLkRFRkFVTFRfQ09MVU1OX0NPVU5UKTtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB0aGlzLmNoZWNrSXNOYW4odGhpcy5pbml0aWFsaXplSXRlbSgnY29sdW1uV2lkdGgnLCB0aGlzLkRFRkFVTFRfQ09MVU1OX1dJRFRIKSwgdGhpcy5ERUZBVUxUX0NPTFVNTl9XSURUSCk7XG4gICAgfVxuXG4gICAgZ2V0IG92ZXJmbG93TW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJmbG93TW9kZTtcbiAgICB9XG5cbiAgICBzZXQgb3ZlcmZsb3dNb2RlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjb2x1bW5XaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uV2lkdGg7XG4gICAgfVxuXG4gICAgc2V0IGNvbHVtbldpZHRoKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgY29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbkNvdW50O1xuICAgIH1cblxuICAgIHNldCBjb2x1bW5Db3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbkNvdW50ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGluaXRpYWxpemVkQ291bnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXplZENvdW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N0YXRlID0ge1xuICAgICAgICAgICAgb3ZlcmZsb3dNb2RlOiB0aGlzLl9vdmVyZmxvd01vZGUsXG4gICAgICAgICAgICBjb2x1bW5XaWR0aDogdGhpcy5fY29sdW1uV2lkdGgsXG4gICAgICAgICAgICBjb2x1bW5Db3VudDogdGhpcy5fY29sdW1uQ291bnQsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmVOZXdTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgdmlld0lkID0gdGhpcy5nZXRWaWV3SWQoKTtcbiAgICAgICAgaWYgKHZpZXdJZCkge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odmlld0lkICsgJy1vdmVyZmxvd01vZGUnLCB0aGlzLl9vdmVyZmxvd01vZGUgKyAnJyk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2aWV3SWQgKyAnLWNvbHVtbkNvdW50JywgdGhpcy5fY29sdW1uQ291bnQgKyAnJyk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2aWV3SWQgKyAnLWNvbHVtbldpZHRoJywgdGhpcy5fY29sdW1uV2lkdGggKyAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc3RvcmVMYXN0U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHRoaXMuX3N0YXRlLm92ZXJmbG93TW9kZTtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB0aGlzLl9zdGF0ZS5jb2x1bW5XaWR0aDtcbiAgICAgICAgdGhpcy5fY29sdW1uQ291bnQgPSB0aGlzLl9zdGF0ZS5jb2x1bW5Db3VudDtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVJdGVtKGlkOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICBjb25zdCB2aWV3SWQgPSB0aGlzLmdldFZpZXdJZCgpO1xuICAgICAgICBpZiAoIXZpZXdJZCkge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh2aWV3SWQgKyAnLScgKyBpZCk7XG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoaWQuaW5jbHVkZXMoJ2NvbHVtbkNvdW50JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplZENvdW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjaGVja0lzTmFuKGl0ZW0sIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNOYU4ocGFyc2VJbnQoaXRlbSwgMTApKSA/IGRlZmF1bHRWYWx1ZSA6IHBhcnNlSW50KGl0ZW0sIDEwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB0aGUgSWQgb2YgdGhlIHZpZXcsIGlmIHRoZSBWaWV3SWRTZXJ2aWNlIHdhcyBpbmplY3RlZC4gUmV0dXJucyBgdW5kZWZpbmVkYCBpZiB0aGUgc2VydmljZSB3YXMgbm90IGluamVjdGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRWaWV3SWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuX3ZpZXdJZFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92aWV3SWRTZXJ2aWNlLnZpZXdJZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn1cbiJdfQ==
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL3NlcnZpY2VzL292ZXJmbG93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQVVuRCxNQUFNLE9BQU8sZUFBZTtJQVV4QixZQUFnQyxjQUE2QjtRQUE3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQVIxQyx5QkFBb0IsR0FBRyxHQUFHLENBQUM7UUFDM0IseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBUXhDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsS0FBSyxNQUFNLENBQUM7UUFDM0UsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzlILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNsSSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFD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bnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1ZpZXdJZFNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdmlldy1pZC5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIE92ZXJmbG93U3RhdGUge1xuICAgIG92ZXJmbG93TW9kZTogYm9vbGVhbjtcbiAgICBjb2x1bW5XaWR0aDogbnVtYmVyO1xuICAgIGNvbHVtbkNvdW50OiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVyZmxvd1NlcnZpY2Uge1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IERFRkFVTFRfQ09MVU1OX1dJRFRIID0gMjAwO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBERUZBVUxUX0NPTFVNTl9DT1VOVCA9IDY7XG4gICAgcHJpdmF0ZSBfb3ZlcmZsb3dNb2RlOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2NvbHVtbldpZHRoOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfY29sdW1uQ291bnQ6IG51bWJlcjtcbiAgICBwcml2YXRlIF9zdGF0ZTogT3ZlcmZsb3dTdGF0ZTtcbiAgICBwcml2YXRlIF9pbml0aWFsaXplZENvdW50OiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfdmlld0lkU2VydmljZTogVmlld0lkU2VydmljZSkge1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZENvdW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHRoaXMuaW5pdGlhbGl6ZUl0ZW0oJ292ZXJmbG93TW9kZScsIGZhbHNlKSA9PT0gJ3RydWUnO1xuICAgICAgICB0aGlzLl9jb2x1bW5Db3VudCA9IHRoaXMuY2hlY2tJc05hbih0aGlzLmluaXRpYWxpemVJdGVtKCdjb2x1bW5Db3VudCcsIHRoaXMuREVGQVVMVF9DT0xVTU5fQ09VTlQpLCB0aGlzLkRFRkFVTFRfQ09MVU1OX0NPVU5UKTtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB0aGlzLmNoZWNrSXNOYW4odGhpcy5pbml0aWFsaXplSXRlbSgnY29sdW1uV2lkdGgnLCB0aGlzLkRFRkFVTFRfQ09MVU1OX1dJRFRIKSwgdGhpcy5ERUZBVUxUX0NPTFVNTl9XSURUSCk7XG4gICAgfVxuXG4gICAgZ2V0IG92ZXJmbG93TW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJmbG93TW9kZTtcbiAgICB9XG5cbiAgICBzZXQgb3ZlcmZsb3dNb2RlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjb2x1bW5XaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uV2lkdGg7XG4gICAgfVxuXG4gICAgc2V0IGNvbHVtbldpZHRoKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgY29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbkNvdW50O1xuICAgIH1cblxuICAgIHNldCBjb2x1bW5Db3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbkNvdW50ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGluaXRpYWxpemVkQ291bnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXplZENvdW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N0YXRlID0ge1xuICAgICAgICAgICAgb3ZlcmZsb3dNb2RlOiB0aGlzLl9vdmVyZmxvd01vZGUsXG4gICAgICAgICAgICBjb2x1bW5XaWR0aDogdGhpcy5fY29sdW1uV2lkdGgsXG4gICAgICAgICAgICBjb2x1bW5Db3VudDogdGhpcy5fY29sdW1uQ291bnQsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmVOZXdTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgdmlld0lkID0gdGhpcy5nZXRWaWV3SWQoKTtcbiAgICAgICAgaWYgKHZpZXdJZCkge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odmlld0lkICsgJy1vdmVyZmxvd01vZGUnLCB0aGlzLl9vdmVyZmxvd01vZGUgKyAnJyk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2aWV3SWQgKyAnLWNvbHVtbkNvdW50JywgdGhpcy5fY29sdW1uQ291bnQgKyAnJyk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2aWV3SWQgKyAnLWNvbHVtbldpZHRoJywgdGhpcy5fY29sdW1uV2lkdGggKyAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc3RvcmVMYXN0U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHRoaXMuX3N0YXRlLm92ZXJmbG93TW9kZTtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB0aGlzLl9zdGF0ZS5jb2x1bW5XaWR0aDtcbiAgICAgICAgdGhpcy5fY29sdW1uQ291bnQgPSB0aGlzLl9zdGF0ZS5jb2x1bW5Db3VudDtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVJdGVtKGlkOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICBjb25zdCB2aWV3SWQgPSB0aGlzLmdldFZpZXdJZCgpO1xuICAgICAgICBpZiAoIXZpZXdJZCkge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh2aWV3SWQgKyAnLScgKyBpZCk7XG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoaWQ/LmluY2x1ZGVzKCdjb2x1bW5Db3VudCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWRDb3VudCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2hlY2tJc05hbihpdGVtLCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlzTmFOKHBhcnNlSW50KGl0ZW0sIDEwKSkgPyBkZWZhdWx0VmFsdWUgOiBwYXJzZUludChpdGVtLCAxMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgdGhlIElkIG9mIHRoZSB2aWV3LCBpZiB0aGUgVmlld0lkU2VydmljZSB3YXMgaW5qZWN0ZWQuIFJldHVybnMgYHVuZGVmaW5lZGAgaWYgdGhlIHNlcnZpY2Ugd2FzIG5vdCBpbmplY3RlZC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0Vmlld0lkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0aGlzLl92aWV3SWRTZXJ2aWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdmlld0lkU2VydmljZS52aWV3SWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59XG4iXX0=
@@ -16,7 +16,7 @@ export class LogPublisherService {
16
16
  this._publishers = [];
17
17
  const serviceConfig = config.get().services;
18
18
  if (serviceConfig && serviceConfig.log && serviceConfig.log.publishers) {
19
- Object.keys(PUBLISHERS).filter(p => serviceConfig.log.publishers.includes(p) && PUBLISHERS[p])
19
+ Object.keys(PUBLISHERS).filter(p => serviceConfig.log.publishers?.includes(p) && PUBLISHERS[p])
20
20
  .forEach(key => new PUBLISHERS[key](this));
21
21
  }
22
22
  }
@@ -51,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
51
51
  providedIn: 'root'
52
52
  }]
53
53
  }], ctorParameters: function () { return [{ type: i1.ConfigurationService }]; } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLXB1Ymxpc2hlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9sb2dnZXIvc2VydmljZXMvbG9nLXB1Ymxpc2hlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFDLGVBQWUsRUFBYyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFckQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7OztBQUduRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDdEIsT0FBTyxFQUFFLG1CQUFtQjtJQUM1QixZQUFZLEVBQUUsd0JBQXdCO0lBQ3RDLE9BQU8sRUFBRSxJQUFJO0NBQ2hCLENBQUM7QUFLRixNQUFNLE9BQU8sbUJBQW1CO0lBTzVCLFlBQVksTUFBNEI7UUFDcEMsdUNBQXVDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxlQUFlLENBQVcsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQztRQUM1QyxJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsR0FBRyxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFO1lBQ3BFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDekYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNsRDtJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxRQUFRLENBQUMsU0FBdUI7UUFDNUIsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNaLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBZTtRQUNuQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7O2lIQTNDUSxtQkFBbUI7cUhBQW5CLG1CQUFtQixjQUZoQixNQUFNOzRGQUVULG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ1B1Ymxpc2hlcn0gZnJvbSAnLi4vcHVibGlzaGVycy9sb2ctcHVibGlzaGVyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xvZ0VudHJ5fSBmcm9tICcuLi9tb2RlbHMvbG9nLWVudHJ5JztcbmltcG9ydCB7Q29uc29sZUxvZ1B1Ymxpc2hlcn0gZnJvbSAnLi4vcHVibGlzaGVycy9jb25zb2xlLWxvZy1wdWJsaXNoZXInO1xuaW1wb3J0IHtMb2NhbFN0b3JhZ2VMb2dQdWJsaXNoZXJ9IGZyb20gJy4uL3B1Ymxpc2hlcnMvbG9jYWwtc3RvcmFnZS1sb2ctcHVibGlzaGVyJztcbmltcG9ydCB7Q29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb24vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IFBVQkxJU0hFUlMgPSB7XG4gICAgY29uc29sZTogQ29uc29sZUxvZ1B1Ymxpc2hlcixcbiAgICBsb2NhbFN0b3JhZ2U6IExvY2FsU3RvcmFnZUxvZ1B1Ymxpc2hlcixcbiAgICBiYWNrZW5kOiBudWxsXG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIExvZ1B1Ymxpc2hlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgLy8gcHVibGljIHN0YXRpYyBpbnN0YW5jZTogTG9nUHVibGlzaGVyU2VydmljZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xvZzogQmVoYXZpb3JTdWJqZWN0PExvZ0VudHJ5PjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wdWJsaXNoZXJzOiBBcnJheTxMb2dQdWJsaXNoZXI+O1xuXG4gICAgY29uc3RydWN0b3IoY29uZmlnOiBDb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICAvLyBMb2dQdWJsaXNoZXJTZXJ2aWNlLmluc3RhbmNlID0gdGhpcztcbiAgICAgICAgdGhpcy5fbG9nID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMb2dFbnRyeT4obnVsbCk7XG4gICAgICAgIHRoaXMuX3B1Ymxpc2hlcnMgPSBbXTtcbiAgICAgICAgY29uc3Qgc2VydmljZUNvbmZpZyA9IGNvbmZpZy5nZXQoKS5zZXJ2aWNlcztcbiAgICAgICAgaWYgKHNlcnZpY2VDb25maWcgJiYgc2VydmljZUNvbmZpZy5sb2cgJiYgc2VydmljZUNvbmZpZy5sb2cucHVibGlzaGVycykge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoUFVCTElTSEVSUykuZmlsdGVyKHAgPT4gc2VydmljZUNvbmZpZy5sb2cucHVibGlzaGVycy5pbmNsdWRlcyhwKSAmJiBQVUJMSVNIRVJTW3BdKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKGtleSA9PiBuZXcgUFVCTElTSEVSU1trZXldKHRoaXMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9sb2cuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBnZXQgcHVibGlzaGVycygpOiBBcnJheTxMb2dQdWJsaXNoZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3B1Ymxpc2hlcnM7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXIocHVibGlzaGVyOiBMb2dQdWJsaXNoZXIpOiBPYnNlcnZhYmxlPExvZ0VudHJ5PiB7XG4gICAgICAgIGlmICghcHVibGlzaGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcHVibGlzaGVycy5wdXNoKHB1Ymxpc2hlcik7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2c7XG4gICAgfVxuXG4gICAgcHVibGlzaChlbnRyeTogTG9nRW50cnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFlbnRyeSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2xvZy5uZXh0KGVudHJ5KTtcbiAgICB9XG5cbiAgICBjbGVhckFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHVibGlzaGVycy5mb3JFYWNoKHB1Ymxpc2hlciA9PiBwdWJsaXNoZXIuY2xlYXIoKSk7XG4gICAgfVxufVxuIl19
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLXB1Ymxpc2hlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9sb2dnZXIvc2VydmljZXMvbG9nLXB1Ymxpc2hlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFDLGVBQWUsRUFBYyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFckQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7OztBQUduRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDdEIsT0FBTyxFQUFFLG1CQUFtQjtJQUM1QixZQUFZLEVBQUUsd0JBQXdCO0lBQ3RDLE9BQU8sRUFBRSxJQUFJO0NBQ2hCLENBQUM7QUFLRixNQUFNLE9BQU8sbUJBQW1CO0lBTzVCLFlBQVksTUFBNEI7UUFDcEMsdUNBQXVDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxlQUFlLENBQVcsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQztRQUM1QyxJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsR0FBRyxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFO1lBQ3BFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDMUYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNsRDtJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxRQUFRLENBQUMsU0FBdUI7UUFDNUIsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNaLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBZTtRQUNuQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7O2lIQTNDUSxtQkFBbUI7cUhBQW5CLG1CQUFtQixjQUZoQixNQUFNOzRGQUVULG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ1B1Ymxpc2hlcn0gZnJvbSAnLi4vcHVibGlzaGVycy9sb2ctcHVibGlzaGVyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xvZ0VudHJ5fSBmcm9tICcuLi9tb2RlbHMvbG9nLWVudHJ5JztcbmltcG9ydCB7Q29uc29sZUxvZ1B1Ymxpc2hlcn0gZnJvbSAnLi4vcHVibGlzaGVycy9jb25zb2xlLWxvZy1wdWJsaXNoZXInO1xuaW1wb3J0IHtMb2NhbFN0b3JhZ2VMb2dQdWJsaXNoZXJ9IGZyb20gJy4uL3B1Ymxpc2hlcnMvbG9jYWwtc3RvcmFnZS1sb2ctcHVibGlzaGVyJztcbmltcG9ydCB7Q29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb24vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IFBVQkxJU0hFUlMgPSB7XG4gICAgY29uc29sZTogQ29uc29sZUxvZ1B1Ymxpc2hlcixcbiAgICBsb2NhbFN0b3JhZ2U6IExvY2FsU3RvcmFnZUxvZ1B1Ymxpc2hlcixcbiAgICBiYWNrZW5kOiBudWxsXG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIExvZ1B1Ymxpc2hlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgLy8gcHVibGljIHN0YXRpYyBpbnN0YW5jZTogTG9nUHVibGlzaGVyU2VydmljZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xvZzogQmVoYXZpb3JTdWJqZWN0PExvZ0VudHJ5PjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wdWJsaXNoZXJzOiBBcnJheTxMb2dQdWJsaXNoZXI+O1xuXG4gICAgY29uc3RydWN0b3IoY29uZmlnOiBDb25maWd1cmF0aW9uU2VydmljZSkge1xuICAgICAgICAvLyBMb2dQdWJsaXNoZXJTZXJ2aWNlLmluc3RhbmNlID0gdGhpcztcbiAgICAgICAgdGhpcy5fbG9nID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMb2dFbnRyeT4obnVsbCk7XG4gICAgICAgIHRoaXMuX3B1Ymxpc2hlcnMgPSBbXTtcbiAgICAgICAgY29uc3Qgc2VydmljZUNvbmZpZyA9IGNvbmZpZy5nZXQoKS5zZXJ2aWNlcztcbiAgICAgICAgaWYgKHNlcnZpY2VDb25maWcgJiYgc2VydmljZUNvbmZpZy5sb2cgJiYgc2VydmljZUNvbmZpZy5sb2cucHVibGlzaGVycykge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoUFVCTElTSEVSUykuZmlsdGVyKHAgPT4gc2VydmljZUNvbmZpZy5sb2cucHVibGlzaGVycz8uaW5jbHVkZXMocCkgJiYgUFVCTElTSEVSU1twXSlcbiAgICAgICAgICAgICAgICAuZm9yRWFjaChrZXkgPT4gbmV3IFBVQkxJU0hFUlNba2V5XSh0aGlzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbG9nLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0IHB1Ymxpc2hlcnMoKTogQXJyYXk8TG9nUHVibGlzaGVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wdWJsaXNoZXJzO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyKHB1Ymxpc2hlcjogTG9nUHVibGlzaGVyKTogT2JzZXJ2YWJsZTxMb2dFbnRyeT4ge1xuICAgICAgICBpZiAoIXB1Ymxpc2hlcikge1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3B1Ymxpc2hlcnMucHVzaChwdWJsaXNoZXIpO1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9nO1xuICAgIH1cblxuICAgIHB1Ymxpc2goZW50cnk6IExvZ0VudHJ5KTogdm9pZCB7XG4gICAgICAgIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9sb2cubmV4dChlbnRyeSk7XG4gICAgfVxuXG4gICAgY2xlYXJBbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3B1Ymxpc2hlcnMuZm9yRWFjaChwdWJsaXNoZXIgPT4gcHVibGlzaGVyLmNsZWFyKCkpO1xuICAgIH1cbn1cbiJdfQ==
@@ -46,7 +46,7 @@ export class AbstractBreadcrumbsComponent {
46
46
  }
47
47
  const splitPath = this._uriService.splitNodePath(this._uriService.activeNode);
48
48
  const fullPath = this.createFullPath(splitPath);
49
- const fullPathQueries = fullPath.map(p => '(processIdentifier:preference_item AND dataSet.nodePath.textValue.keyword:\"' + p + '\")');
49
+ const fullPathQueries = fullPath.map(p => '(processIdentifier:menu_item AND dataSet.nodePath.textValue.keyword:\"' + p + '\")');
50
50
  fullPathQueries.push('(taskMongoIds:\"' + filterId + '\")');
51
51
  const searchBody = {
52
52
  query: fullPathQueries.join(" OR ")
@@ -128,7 +128,7 @@ export class AbstractBreadcrumbsComponent {
128
128
  let tmp = '';
129
129
  return splitPath.filter(s => s !== "").map((value) => {
130
130
  tmp += AbstractBreadcrumbsComponent.DELIMETER + value;
131
- return tmp.replace("//", AbstractBreadcrumbsComponent.DELIMETER);
131
+ return tmp?.replace("//", AbstractBreadcrumbsComponent.DELIMETER);
132
132
  });
133
133
  }
134
134
  immediateValue(aCase, fieldId) {
@@ -162,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
162
162
  }], partsAfterDots: [{
163
163
  type: Input
164
164
  }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYnJlYWRjcnVtYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9uYXZpZ2F0aW9uL2JyZWFkY3J1bWJzL2Fic3RyYWN0LWJyZWFkY3J1bWJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7QUFJekUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEMsT0FBTyxFQUFDLGVBQWUsRUFBZSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFjbkQsTUFBTSxPQUFnQiw0QkFBNEI7SUFvQjlDLFlBQWdDLFdBQXVCLEVBQ3ZCLG9CQUF5QyxFQUN6QyxlQUErQixFQUMvQixPQUFlLEVBQ2Ysc0JBQTZELEVBQzdELGlCQUFtQyxFQUNuQyxJQUFtQjtRQU5uQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QztRQUM3RCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLFNBQUksR0FBSixJQUFJLENBQWU7UUF4QjFDLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsZUFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixvQkFBZSxHQUFZLElBQUksQ0FBQztRQUNoQyxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixtQkFBYyxHQUFXLENBQUMsQ0FBQztRQVM1QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBWWhDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQWdCLFNBQVMsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7UUFDckQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzNDO0lBQ0wsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFBO1FBQ2xFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFBO1lBQ25FLE9BQU87U0FDVjtRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsOEVBQThFLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFBO1FBQ3JJLGVBQWUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFBO1FBRTNELE1BQU0sVUFBVSxHQUEwQjtZQUN0QyxLQUFLLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDdEMsQ0FBQztRQUNGLElBQUksVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFO2FBQzVCLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO2FBQ25DLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdkgsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUM3QixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSw0QkFBNEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0ssSUFBSSxlQUFlLElBQUksQ0FBQyxFQUFFO2dCQUN0QixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLDRCQUE0QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUwsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7YUFDdkY7WUFDRCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSw0QkFBNEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsNEJBQTRCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFMLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDdEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLDRCQUE0QixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssNEJBQTRCLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQ3RPO1lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFHLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFlBQVk7UUFDZixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNOLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxJQUFJLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQy9ILE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM3RCxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDbEUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDekI7b0JBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQztvQkFDaEMsT0FBTztpQkFDVjtnQkFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDMUQ7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQTtJQUNuRyxDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFFTSxVQUFVLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDekMsSUFBSSxJQUFJLEtBQUssNEJBQTRCLENBQUMsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDM0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxPQUFPO1NBQ1Y7UUFDRCxJQUFJLFFBQVEsR0FBVyxFQUFFLENBQUM7UUFDMUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RSxJQUFJLEdBQUcsS0FBSyxTQUFTO1lBQUUsT0FBTztRQUM5QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQy9CLFFBQVEsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsSUFBSSxDQUFDLEtBQUssT0FBTztnQkFBRSxRQUFRLElBQUksNEJBQTRCLENBQUMsU0FBUyxDQUFDO1NBQ3pFO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQzdELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBYSxFQUFFLEdBQWE7UUFDOUMsSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDOUgsT0FBTyxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDekQ7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU8sY0FBYyxDQUFDLFNBQXdCO1FBQzNDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNiLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqRCxHQUFHLElBQUksNEJBQTRCLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN0RCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLDRCQUE0QixDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFXLEVBQUUsT0FBZTtRQUMvQyxPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUE7SUFDdkUsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFxQjtRQUN4QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxPQUFPLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO0lBQzFGLENBQUM7O0FBMUljLGlDQUFJLEdBQVcsS0FBTSxDQUFBO0FBQ3JCLHNDQUFTLEdBQVcsR0FBSSxDQUFBO0FBQ3hCLHNDQUFTLEdBQVcsVUFBVyxDQUFBO0FBQy9CLDBDQUFhLEdBQVcsZUFBZ0IsQ0FBQTswSEFkckMsNEJBQTRCOzhHQUE1Qiw0QkFBNEIsaU9BRnBDLEVBQUU7NEZBRU0sNEJBQTRCO2tCQUpqRCxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRSxFQUFFO2lCQUNmO29TQUdZLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VXJpU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS91cmkuc2VydmljZSc7XG5pbXBvcnQge0Nhc2VSZXNvdXJjZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvZW5naW5lLWVuZHBvaW50L2Nhc2UtcmVzb3VyY2Uuc2VydmljZVwiO1xuaW1wb3J0IHtDYXNlU2VhcmNoUmVxdWVzdEJvZHl9IGZyb20gXCIuLi8uLi9maWx0ZXIvbW9kZWxzL2Nhc2Utc2VhcmNoLXJlcXVlc3QtYm9keVwiO1xuaW1wb3J0IHtIdHRwUGFyYW1zfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7UGFnaW5hdGlvblBhcmFtc30gZnJvbSBcIi4uLy4uL3V0aWxpdHkvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLXBhcmFtc1wiO1xuaW1wb3J0IHtTaW1wbGVGaWx0ZXJ9IGZyb20gXCIuLi8uLi9maWx0ZXIvbW9kZWxzL3NpbXBsZS1maWx0ZXJcIjtcbmltcG9ydCB7dGFrZX0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQge1xuICAgIER5bmFtaWNOYXZpZ2F0aW9uUm91dGVQcm92aWRlclNlcnZpY2Vcbn0gZnJvbSBcIi4uLy4uL3JvdXRpbmcvZHluYW1pYy1uYXZpZ2F0aW9uLXJvdXRlLXByb3ZpZGVyL2R5bmFtaWMtbmF2aWdhdGlvbi1yb3V0ZS1wcm92aWRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0Nhc2V9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2Nhc2VcIjtcbmltcG9ydCB7STE4bkZpZWxkVmFsdWV9IGZyb20gXCIuLi8uLi9kYXRhLWZpZWxkcy9pMThuLWZpZWxkL21vZGVscy9pMThuLWZpZWxkLXZhbHVlXCI7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gXCIuLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduY2MtYnJlYWRjcnVtYnMtY29tcG9uZW50JyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RCcmVhZGNydW1ic0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBASW5wdXQoKSBzaG93SG9tZTogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgc2hvd0ZpbHRlcjogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgcmVkaXJlY3RPbkNsaWNrOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBsZW5ndGhPZlBhdGg6IG51bWJlciA9IDMwO1xuICAgIEBJbnB1dCgpIHBhcnRzQWZ0ZXJEb3RzOiBudW1iZXIgPSAyO1xuXG4gICAgZmlsdGVyTmFtZTogc3RyaW5nO1xuICAgIGJyZWFkY3J1bWJzUGFydHM6IEFycmF5PHN0cmluZz47XG5cbiAgICBwcml2YXRlIHN0YXRpYyBET1RTOiBzdHJpbmcgPSAnLi4uJztcbiAgICBwcml2YXRlIHN0YXRpYyBERUxJTUVURVI6IHN0cmluZyA9ICcvJztcbiAgICBwcml2YXRlIHN0YXRpYyBOT0RFX1BBVEg6IHN0cmluZyA9ICdub2RlUGF0aCc7XG4gICAgcHJpdmF0ZSBzdGF0aWMgSVRFTV9TRVRUSU5HUzogc3RyaW5nID0gJ2l0ZW1fc2V0dGluZ3MnO1xuICAgIHByaXZhdGUgX3Nob3dQYXRoczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgbmljZVBhdGg6IEJlaGF2aW9yU3ViamVjdDxBcnJheTxzdHJpbmc+PjtcbiAgICBwcml2YXRlIHJlZGlyZWN0VXJsczogTWFwPHN0cmluZywgQXJyYXk8c3RyaW5nPj47XG4gICAgcHJpdmF0ZSBuaWNlUGF0aFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfdXJpU2VydmljZTogVXJpU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jYXNlUmVzb3VyY2VTZXJ2aWNlOiBDYXNlUmVzb3VyY2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9yb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9keW5hbWljUm91dGluZ1NlcnZpY2U6IER5bmFtaWNOYXZpZ2F0aW9uUm91dGVQcm92aWRlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5uaWNlUGF0aCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8c3RyaW5nPj4odW5kZWZpbmVkKTtcbiAgICAgICAgdGhpcy5yZWRpcmVjdFVybHMgPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8c3RyaW5nPj4oKTtcbiAgICAgICAgdGhpcy5pbml0TmljZVBhdGgoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMucmVzb2x2ZUJyZWFkY3J1bWJzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICghIXRoaXMubmljZVBhdGhTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMubmljZVBhdGhTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlQnJlYWRjcnVtYnMoKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcklkID0gdGhpcy5fYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zLmZpbHRlckNhc2VJZFxuICAgICAgICBpZiAoIWZpbHRlcklkKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2cuZXJyb3IoXCJNaXNzaW5nIHJlcXVpcmVkIGRhdGEgZm9yIHJlc29sdmluZyBicmVhZGNydW1icy5cIilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzcGxpdFBhdGggPSB0aGlzLl91cmlTZXJ2aWNlLnNwbGl0Tm9kZVBhdGgodGhpcy5fdXJpU2VydmljZS5hY3RpdmVOb2RlKTtcbiAgICAgICAgY29uc3QgZnVsbFBhdGggPSB0aGlzLmNyZWF0ZUZ1bGxQYXRoKHNwbGl0UGF0aCk7XG4gICAgICAgIGNvbnN0IGZ1bGxQYXRoUXVlcmllcyA9IGZ1bGxQYXRoLm1hcChwID0+ICcocHJvY2Vzc0lkZW50aWZpZXI6cHJlZmVyZW5jZV9pdGVtIEFORCBkYXRhU2V0Lm5vZGVQYXRoLnRleHRWYWx1ZS5rZXl3b3JkOlxcXCInICsgcCArICdcXFwiKScpXG4gICAgICAgIGZ1bGxQYXRoUXVlcmllcy5wdXNoKCcodGFza01vbmdvSWRzOlxcXCInICsgZmlsdGVySWQgKyAnXFxcIiknKVxuXG4gICAgICAgIGNvbnN0IHNlYXJjaEJvZHk6IENhc2VTZWFyY2hSZXF1ZXN0Qm9keSA9IHtcbiAgICAgICAgICAgIHF1ZXJ5OiBmdWxsUGF0aFF1ZXJpZXMuam9pbihcIiBPUiBcIilcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IGh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAgICAgICAuc2V0KFBhZ2luYXRpb25QYXJhbXMuUEFHRV9TSVpFLCAyNSlcbiAgICAgICAgICAgIC5zZXQoUGFnaW5hdGlvblBhcmFtcy5QQUdFX05VTUJFUiwgMCk7XG5cbiAgICAgICAgdGhpcy5fY2FzZVJlc291cmNlU2VydmljZS5zZWFyY2hDYXNlcyhTaW1wbGVGaWx0ZXIuZnJvbUNhc2VRdWVyeShzZWFyY2hCb2R5KSwgaHR0cFBhcmFtcykucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNhc2VzID0gcmVzdWx0LmNvbnRlbnQ7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJDYXNlSW5kZXggPSBjYXNlcy5maW5kSW5kZXgoYyA9PiBjLnRhc2tzLnNvbWUodCA9PiB0LnRhc2sgPT09IGZpbHRlcklkKSAmJiAhZnVsbFBhdGguaW5jbHVkZXModGhpcy5pbW1lZGlhdGVWYWx1ZShjLCBBYnN0cmFjdEJyZWFkY3J1bWJzQ29tcG9uZW50Lk5PREVfUEFUSCkpKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJDYXNlSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckNhc2UgPSBjYXNlcy5zcGxpY2UoY2FzZXMuZmluZEluZGV4KGMgPT4gYy50YXNrcy5zb21lKHQgPT4gdC50YXNrID09PSBmaWx0ZXJJZCkgJiYgIWZ1bGxQYXRoLmluY2x1ZGVzKHRoaXMuaW1tZWRpYXRlVmFsdWUoYywgQWJzdHJhY3RCcmVhZGNydW1ic0NvbXBvbmVudC5OT0RFX1BBVEgpKSksIDEpWzBdO1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyTmFtZSA9IHRoaXMuZ2V0VHJhbnNsYXRpb24odGhpcy5pbW1lZGlhdGVWYWx1ZShmaWx0ZXJDYXNlLCAnbWVudV9uYW1lJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZXMuc29ydCgoYSwgYikgPT4gZnVsbFBhdGguaW5kZXhPZih0aGlzLmltbWVkaWF0ZVZhbHVlKGEsIEFic3RyYWN0QnJlYWRjcnVtYnNDb21wb25lbnQuTk9ERV9QQVRIKSkgLSBmdWxsUGF0aC5pbmRleE9mKHRoaXMuaW1tZWRpYXRlVmFsdWUoYiwgQWJzdHJhY3RCcmVhZGNydW1ic0NvbXBvbmVudC5OT0RFX1BBVEgpKSk7XG4gICAgICAgICAgICBpZiAodGhpcy5yZWRpcmVjdE9uQ2xpY2spIHtcbiAgICAgICAgICAgICAgICBjYXNlcy5mb3JFYWNoKGMgPT4gdGhpcy5yZWRpcmVjdFVybHMuc2V0KHRoaXMuaW1tZWRpYXRlVmFsdWUoYywgQWJzdHJhY3RCcmVhZGNydW1ic0NvbXBvbmVudC5OT0RFX1BBVEgpLCBbdGhpcy5fZHluYW1pY1JvdXRpbmdTZXJ2aWNlLnJvdXRlLCBjLnRhc2tzLmZpbmQodCA9PiB0LnRyYW5zaXRpb24gPT09IEFic3RyYWN0QnJlYWRjcnVtYnNDb21wb25lbnQuSVRFTV9TRVRUSU5HUykudGFza10pKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5uaWNlUGF0aC5uZXh0KFtcIlwiLCAuLi5jYXNlcy5tYXAoYyA9PiB0aGlzLmdldFRyYW5zbGF0aW9uKHRoaXMuaW1tZWRpYXRlVmFsdWUoYywgJ21lbnVfbmFtZScpKSldKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXROaWNlUGF0aCgpIHtcbiAgICAgICAgdGhpcy5uaWNlUGF0aFN1YnNjcmlwdGlvbiA9IHRoaXMubmljZVBhdGguc3Vic2NyaWJlKG5wID0+IHtcbiAgICAgICAgICAgIGlmICghIW5wKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IG5wO1xuICAgICAgICAgICAgICAgIGlmIChwYXRoPy5sZW5ndGggPiB0aGlzLnBhcnRzQWZ0ZXJEb3RzICsgMSAmJiB0aGlzLl91cmlTZXJ2aWNlLmFjdGl2ZU5vZGU/LnVyaVBhdGgubGVuZ3RoID4gdGhpcy5sZW5ndGhPZlBhdGggJiYgIXRoaXMuX3Nob3dQYXRocykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdQYXRoID0gW3BhdGhbMF0sIEFic3RyYWN0QnJlYWRjcnVtYnNDb21wb25lbnQuRE9UU107XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBwYXRoLmxlbmd0aCAtIHRoaXMucGFydHNBZnRlckRvdHM7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXRoLnB1c2gocGF0aFtpXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5icmVhZGNydW1ic1BhcnRzID0gbmV3UGF0aDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmJyZWFkY3J1bWJzUGFydHMgPSBwYXRoID09PSB1bmRlZmluZWQgPyBbXSA6IHBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWRpcmVjdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlZGlyZWN0T25DbGljaykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZSh0aGlzLnJlZGlyZWN0VXJscy5nZXQodGhpcy5fdXJpU2VydmljZS5hY3RpdmVOb2RlLnVyaVBhdGgpKS50aGVuKHIgPT4ge30pXG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlck5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX3VyaVNlcnZpY2UucmVzZXQoKTtcbiAgICAgICAgdGhpcy5uaWNlUGF0aC5uZXh0KFtcIlwiXSlcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlUGF0aChwYXRoOiBzdHJpbmcsIGNvdW50OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHBhdGggPT09IEFic3RyYWN0QnJlYWRjcnVtYnNDb21wb25lbnQuRE9UUyAmJiBjb3VudCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5fc2hvd1BhdGhzID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubmljZVBhdGgubmV4dCh0aGlzLm5pY2VQYXRoLnZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZnVsbFBhdGg6IHN0cmluZyA9ICcnO1xuICAgICAgICBjb25zdCB0bXAgPSB0aGlzLl91cmlTZXJ2aWNlLnNwbGl0Tm9kZVBhdGgodGhpcy5fdXJpU2VydmljZS5hY3RpdmVOb2RlKTtcbiAgICAgICAgaWYgKHRtcCA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnJlc3VsdENvdW50ZXIoY291bnQsIHRtcCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGNvbnRyb2w7IGkrKykge1xuICAgICAgICAgICAgZnVsbFBhdGggKz0gdG1wW2ldO1xuICAgICAgICAgICAgaWYgKGkgIT09IGNvbnRyb2wpIGZ1bGxQYXRoICs9IEFic3RyYWN0QnJlYWRjcnVtYnNDb21wb25lbnQuREVMSU1FVEVSO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VyaVNlcnZpY2UuZ2V0Tm9kZUJ5UGF0aChmdWxsUGF0aCkuc3Vic2NyaWJlKG5vZGUgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdXJpU2VydmljZS5hY3RpdmVOb2RlID0gbm9kZTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMubmljZVBhdGgubmV4dCh0aGlzLm5pY2VQYXRoLnZhbHVlLnNsaWNlKDAsIGNvbnRyb2wgKyAxKSlcbiAgICAgICAgICAgIHRoaXMucmVkaXJlY3QoKTtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc3VsdENvdW50ZXIoY291bnQ6IG51bWJlciwgdG1wOiBzdHJpbmdbXSk6IG51bWJlciB7XG4gICAgICAgIGlmICh0bXA/Lmxlbmd0aCA+IHRoaXMucGFydHNBZnRlckRvdHMgKyAxICYmIHRoaXMuX3VyaVNlcnZpY2UuYWN0aXZlTm9kZT8udXJpUGF0aC5sZW5ndGggPiB0aGlzLmxlbmd0aE9mUGF0aCAmJiAhdGhpcy5fc2hvd1BhdGhzKSB7XG4gICAgICAgICAgICByZXR1cm4gdG1wLmxlbmd0aCAtIHRoaXMucGFydHNBZnRlckRvdHMgKyAoY291bnQgLSAyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY291bnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVGdWxsUGF0aChzcGxpdFBhdGg6IEFycmF5PHN0cmluZz4pOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgbGV0IHRtcCA9ICcnO1xuICAgICAgICByZXR1cm4gc3BsaXRQYXRoLmZpbHRlcihzID0+IHMgIT09IFwiXCIpLm1hcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRtcCArPSBBYnN0cmFjdEJyZWFkY3J1bWJzQ29tcG9uZW50LkRFTElNRVRFUiArIHZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIHRtcC5yZXBsYWNlKFwiLy9cIiwgQWJzdHJhY3RCcmVhZGNydW1ic0NvbXBvbmVudC5ERUxJTUVURVIpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW1tZWRpYXRlVmFsdWUoYUNhc2U6IENhc2UsIGZpZWxkSWQ6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHJldHVybiBhQ2FzZS5pbW1lZGlhdGVEYXRhLmZpbmQocyA9PiBzLnN0cmluZ0lkID09PSBmaWVsZElkKT8udmFsdWVcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRyYW5zbGF0aW9uKHZhbHVlOiBJMThuRmllbGRWYWx1ZSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcuc3BsaXQoJy0nKVswXTtcbiAgICAgICAgcmV0dXJuIGxvY2FsZSBpbiB2YWx1ZS50cmFuc2xhdGlvbnMgPyB2YWx1ZS50cmFuc2xhdGlvbnNbbG9jYWxlXSA6IHZhbHVlLmRlZmF1bHRWYWx1ZTtcbiAgICB9XG59XG4iXX0=
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYnJlYWRjcnVtYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9uYXZpZ2F0aW9uL2JyZWFkY3J1bWJzL2Fic3RyYWN0LWJyZWFkY3J1bWJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7QUFJekUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEMsT0FBTyxFQUFDLGVBQWUsRUFBZSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFjbkQsTUFBTSxPQUFnQiw0QkFBNEI7SUFvQjlDLFlBQWdDLFdBQXVCLEVBQ3ZCLG9CQUF5QyxFQUN6QyxlQUErQixFQUMvQixPQUFlLEVBQ2Ysc0JBQTZELEVBQzdELGlCQUFtQyxFQUNuQyxJQUFtQjtRQU5uQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QztRQUM3RCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLFNBQUksR0FBSixJQUFJLENBQWU7UUF4QjFDLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsZUFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixvQkFBZSxHQUFZLElBQUksQ0FBQztRQUNo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Q0FBQyxLQUFXLEVBQUUsT0FBZTtRQUMvQyxPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUE7SUFDdkUsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFxQjtRQUN4QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxPQUFPLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO0lBQzFGLENBQUM7O0FBMUljLGlDQUFJLEdBQVcsS0FBTSxDQUFBO0FBQ3JCLHNDQUFTLEdBQVcsR0FBSSxDQUFBO0FBQ3hCLHNDQUFTLEdBQVcsVUFBVyxDQUFBO0FBQy9CLDBDQUFhLEdBQVcsZUFBZ0IsQ0FBQTswSEFkckMsNEJBQTRCOzhHQUE1Qiw0QkFBNEIsaU9BRnBDLEVBQUU7NEZBRU0sNEJBQTRCO2tCQUpqRCxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRSxFQUFFO2lCQUNmO29TQUdZLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VXJpU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS91cmkuc2VydmljZSc7XG5pbXBvcnQge0Nhc2VSZXNvdXJjZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvZW5naW5lLWVuZHBvaW50L2Nhc2UtcmVzb3VyY2Uuc2VydmljZVwiO1xuaW1wb3J0IHtDYXNlU2VhcmNoUmVxdWVzdEJvZHl9IGZyb20gXCIuLi8uLi9maWx0ZXIvbW9kZWxzL2Nhc2Utc2VhcmNoLXJlcXVlc3QtYm9keVwiO1xuaW1wb3J0IHtIdHRwUGFyYW1zfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7UGFnaW5hdGlvblBhcmFtc30gZnJvbSBcIi4uLy4uL3V0aWxpdHkvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLXBhcmFtc1wiO1xuaW1wb3J0IHtTaW1wbGVGaWx0ZXJ9IGZyb20gXCIuLi8uLi9maWx0ZXIvbW9kZWxzL3NpbXBsZS1maWx0ZXJcIjtcbmltcG9ydCB7dGFrZX0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQge1xuICAgIER5bmFtaWNOYXZpZ2F0aW9uUm91dGVQcm92aWRlclNlcnZpY2Vcbn0gZnJvbSBcIi4uLy4uL3JvdXRpbmcvZHluYW1pYy1uYXZpZ2F0aW9uLXJvdXRlLXByb3ZpZGVyL2R5bmFtaWMtbmF2aWdhdGlvbi1yb3V0ZS1wcm92aWRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0Nhc2V9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2Nhc2VcIjtcbmltcG9ydCB7STE4bkZpZWxkVmFsdWV9IGZyb20gXCIuLi8uLi9kYXRhLWZpZWxkcy9pMThuLWZpZWxkL21vZGVscy9pMThuLWZpZWxkLXZhbHVlXCI7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gXCIuLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduY2MtYnJlYWRjcnVtYnMtY29tcG9uZW50JyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RCcmVhZGNydW1ic0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBASW5wdXQoKSBzaG93SG9tZTogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgc2hvd0ZpbHRlcjogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgcmVkaXJlY3RPbkNsaWNrOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBsZW5ndGhPZlBhdGg6IG51bWJlciA9IDMwO1xuICAgIEBJbnB1dCgpIHBhcnRzQWZ0ZXJEb3RzOiBudW1iZXIgPSAyO1xuXG4gICAgZmlsdGVyTmFtZTogc3RyaW5nO1xuICAgIGJyZWFkY3J1bWJzUGFydHM6IEFycmF5PHN0cmluZz47XG5cbiAgICBwcml2YXRlIHN0YXRpYyBET1RTOiBzdHJpbmcgPSAnLi4uJztcbiAgICBwcml2YXRlIHN0YXRpYyBERUxJTUVURVI6IHN0cmluZyA9ICcvJztcbiAgICBwcml2YXRlIHN0YXRpYyBOT0RFX1BBVEg6IHN0cmluZyA9ICdub2RlUGF0aCc7XG4gICAgcHJpdmF0ZSBzdGF0aWMgSVRFTV9TRVRUSU5HUzogc3RyaW5nID0gJ2l0ZW1fc2V0dGluZ3MnO1xuICAgIHByaXZhdGUgX3Nob3dQYXRoczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgbmljZVBhdGg6IEJlaGF2aW9yU3ViamVjdDxBcnJheTxzdHJpbmc+PjtcbiAgICBwcml2YXRlIHJlZGlyZWN0VXJsczogTWFwPHN0cmluZywgQXJyYXk8c3RyaW5nPj47XG4gICAgcHJpdmF0ZSBuaWNlUGF0aFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfdXJpU2VydmljZTogVXJpU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jYXNlUmVzb3VyY2VTZXJ2aWNlOiBDYXNlUmVzb3VyY2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9yb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9keW5hbWljUm91dGluZ1NlcnZpY2U6IER5bmFtaWNOYXZpZ2F0aW9uUm91dGVQcm92aWRlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5uaWNlUGF0aCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8c3RyaW5nPj4odW5kZWZpbmVkKTtcbiAgICAgICAgdGhpcy5yZWRpcmVjdFVybHMgPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8c3RyaW5nPj4oKTtcbiAgICAgICAgdGhpcy5pbml0TmljZVBhdGgoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMucmVzb2x2ZUJyZWFkY3J1bWJzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICghIXRoaXMubmljZVBhdGhTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMubmljZVBhdGhTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlQnJlYWRjcnVtYnMoKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcklkID0gdGhpcy5fYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zLmZpbHRlckNhc2VJZFxuICAgICAgICBpZiAoIWZpbHRlcklkKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2cuZXJyb3IoXCJNaXNzaW5nIHJlcXVpcmVkIGRhdGEgZm9yIHJlc29sdmluZyBicmVhZGNydW1icy5cIilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzcGxpdFBhdGggPSB0aGlzLl91cmlTZXJ2aWNlLnNwbGl0Tm9kZVBhdGgodGhpcy5fdXJpU2VydmljZS5hY3RpdmVOb2RlKTtcbiAgICAgICAgY29uc3QgZnVsbFBhdGggPSB0aGlzLmNyZWF0ZUZ1bGxQYXRoKHNwbGl0UGF0aCk7XG4gICAgICAgIGNvbnN0IGZ1bGxQYXRoUXVlcmllcyA9IGZ1bGxQYXRoLm1hcChwID0+ICcocHJvY2Vzc0lkZW50aWZpZXI6bWVudV9pdGVtIEFORCBkYXRhU2V0Lm5vZGVQYXRoLnRleHRWYWx1ZS5rZXl3b3JkOlxcXCInICsgcCArICdcXFwiKScpXG4gICAgICAgIGZ1bGxQYXRoUXVlcmllcy5wdXNoKCcodGFza01vbmdvSWRzOlxcXCInICsgZmlsdGVySWQgKyAnXFxcIiknKVxuXG4gICAgICAgIGNvbnN0IHNlYXJjaEJvZHk6IENhc2VTZWFyY2hSZXF1ZXN0Qm9keSA9IHtcbiAgICAgICAgICAgIHF1ZXJ5OiBmdWxsUGF0aFF1ZXJpZXMuam9pbihcIiBPUiBcIilcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IGh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAgICAgICAuc2V0KFBhZ2luYXRpb25QYXJhbXMuUEFHRV9TSVpFLCAyNSlcbiAgICAgICAgICAgIC5zZXQoUGFnaW5hdGlvblBhcmFtcy5QQUdFX05VTUJFUiwgMCk7XG5cbiAgICAgICAgdGhpcy5fY2FzZVJlc291cmNlU2VydmljZS5zZWFyY2hDYXNlcyhTaW1wbGVGaWx0ZXIuZnJvbUNhc2VRdWVyeShzZWFyY2hCb2R5KSwgaHR0cFBhcmFtcykucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNhc2VzID0gcmVzdWx0LmNvbnRlbnQ7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJDYXNlSW5kZXggPSBjYXNlcy5maW5kSW5kZXgoYyA9PiBjLnRhc2tzLnNvbWUodCA9PiB0LnRhc2sgPT09IGZpbHRlcklkKSAmJiAhZnVsbFBhdGguaW5jbHVkZXModGhpcy5pbW1lZGlhdGVWYWx1ZShjLCBBYnN0cmFjdEJyZWFkY3J1bWJzQ29tcG9uZW50Lk5PREVfUEFUSCkpKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJDYXNlSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckNhc2UgPSBjYXNlcy5zcGxpY2UoY2FzZXMuZmluZEluZGV4KGMgPT4gYy50YXNrcy5zb21lKHQgPT4gdC50YXNrID09PSBmaWx0ZXJJZCkgJiYgIWZ1bGxQYXRoLmluY2x1ZGVzKHRoaXMuaW1tZWRpYXRlVmFsdWUoYywgQWJzdHJhY3RCcmVhZGNydW1ic0NvbXBvbmVudC5OT0RFX1BBVEgpKSksIDEpWzBdO1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyTmFtZSA9IHRoaXMuZ2V0VHJhbnNsYXRpb24odGhpcy5pbW1lZGlhdGVWYWx1ZShmaWx0ZXJDYXNlLCAnbWVudV9uYW1lJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZXMuc29ydCgoYSwgYikgPT4gZnVsbFBhdGguaW5kZXhPZih0aGlzLmltbWVkaWF0ZVZhbHVlKGEsIEFic3RyYWN0QnJlYWRjcnVtYnNDb21wb25lbnQuTk9ERV9QQVRIKSkgLSBmdWxsUGF0aC5pbmRleE9mKHRoaXMuaW1tZWRpYXRlVmFsdWUoYiwgQWJzdHJhY3RCcmVhZGNydW1ic0NvbXBvbmVudC5OT0RFX1BBVEgpKSk7XG4gICAgICAgICAgICBpZiAodGhpcy5yZWRpcmVjdE9uQ2xpY2spIHtcbiAgICAgICAgICAgICAgICBjYXNlcy5mb3JFYWNoKGMgPT4gdGhpcy5yZWRpcmVjdFVybHMuc2V0KHRoaXMuaW1tZWRpYXRlVmFsdWUoYywgQWJzdHJhY3RCcmVhZGNydW1ic0NvbXBvbmVudC5OT0RFX1BBVEgpLCBbdGhpcy5fZHluYW1pY1JvdXRpbmdTZXJ2aWNlLnJvdXRlLCBjLnRhc2tzLmZpbmQodCA9PiB0LnRyYW5zaXRpb24gPT09IEFic3RyYWN0QnJlYWRjcnVtYnNDb21wb25lbnQuSVRFTV9TRVRUSU5HUykudGFza10pKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5uaWNlUGF0aC5uZXh0KFtcIlwiLCAuLi5jYXNlcy5tYXAoYyA9PiB0aGlzLmdldFRyYW5zbGF0aW9uKHRoaXMuaW1tZWRpYXRlVmFsdWUoYywgJ21lbnVfbmFtZScpKSldKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXROaWNlUGF0aCgpIHtcbiAgICAgICAgdGhpcy5uaWNlUGF0aFN1YnNjcmlwdGlvbiA9IHRoaXMubmljZVBhdGguc3Vic2NyaWJlKG5wID0+IHtcbiAgICAgICAgICAgIGlmICghIW5wKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IG5wO1xuICAgICAgICAgICAgICAgIGlmIChwYXRoPy5sZW5ndGggPiB0aGlzLnBhcnRzQWZ0ZXJEb3RzICsgMSAmJiB0aGlzLl91cmlTZXJ2aWNlLmFjdGl2ZU5vZGU/LnVyaVBhdGgubGVuZ3RoID4gdGhpcy5sZW5ndGhPZlBhdGggJiYgIXRoaXMuX3Nob3dQYXRocykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdQYXRoID0gW3BhdGhbMF0sIEFic3RyYWN0QnJlYWRjcnVtYnNDb21wb25lbnQuRE9UU107XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBwYXRoLmxlbmd0aCAtIHRoaXMucGFydHNBZnRlckRvdHM7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdQYXRoLnB1c2gocGF0aFtpXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5icmVhZGNydW1ic1BhcnRzID0gbmV3UGF0aDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmJyZWFkY3J1bWJzUGFydHMgPSBwYXRoID09PSB1bmRlZmluZWQgPyBbXSA6IHBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWRpcmVjdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlZGlyZWN0T25DbGljaykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZSh0aGlzLnJlZGlyZWN0VXJscy5nZXQodGhpcy5fdXJpU2VydmljZS5hY3RpdmVOb2RlLnVyaVBhdGgpKS50aGVuKHIgPT4ge30pXG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlck5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX3VyaVNlcnZpY2UucmVzZXQoKTtcbiAgICAgICAgdGhpcy5uaWNlUGF0aC5uZXh0KFtcIlwiXSlcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlUGF0aChwYXRoOiBzdHJpbmcsIGNvdW50OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHBhdGggPT09IEFic3RyYWN0QnJlYWRjcnVtYnNDb21wb25lbnQuRE9UUyAmJiBjb3VudCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5fc2hvd1BhdGhzID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubmljZVBhdGgubmV4dCh0aGlzLm5pY2VQYXRoLnZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZnVsbFBhdGg6IHN0cmluZyA9ICcnO1xuICAgICAgICBjb25zdCB0bXAgPSB0aGlzLl91cmlTZXJ2aWNlLnNwbGl0Tm9kZVBhdGgodGhpcy5fdXJpU2VydmljZS5hY3RpdmVOb2RlKTtcbiAgICAgICAgaWYgKHRtcCA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnJlc3VsdENvdW50ZXIoY291bnQsIHRtcCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGNvbnRyb2w7IGkrKykge1xuICAgICAgICAgICAgZnVsbFBhdGggKz0gdG1wW2ldO1xuICAgICAgICAgICAgaWYgKGkgIT09IGNvbnRyb2wpIGZ1bGxQYXRoICs9IEFic3RyYWN0QnJlYWRjcnVtYnNDb21wb25lbnQuREVMSU1FVEVSO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VyaVNlcnZpY2UuZ2V0Tm9kZUJ5UGF0aChmdWxsUGF0aCkuc3Vic2NyaWJlKG5vZGUgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdXJpU2VydmljZS5hY3RpdmVOb2RlID0gbm9kZTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyTmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMubmljZVBhdGgubmV4dCh0aGlzLm5pY2VQYXRoLnZhbHVlLnNsaWNlKDAsIGNvbnRyb2wgKyAxKSlcbiAgICAgICAgICAgIHRoaXMucmVkaXJlY3QoKTtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc3VsdENvdW50ZXIoY291bnQ6IG51bWJlciwgdG1wOiBzdHJpbmdbXSk6IG51bWJlciB7XG4gICAgICAgIGlmICh0bXA/Lmxlbmd0aCA+IHRoaXMucGFydHNBZnRlckRvdHMgKyAxICYmIHRoaXMuX3VyaVNlcnZpY2UuYWN0aXZlTm9kZT8udXJpUGF0aC5sZW5ndGggPiB0aGlzLmxlbmd0aE9mUGF0aCAmJiAhdGhpcy5fc2hvd1BhdGhzKSB7XG4gICAgICAgICAgICByZXR1cm4gdG1wLmxlbmd0aCAtIHRoaXMucGFydHNBZnRlckRvdHMgKyAoY291bnQgLSAyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY291bnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVGdWxsUGF0aChzcGxpdFBhdGg6IEFycmF5PHN0cmluZz4pOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgbGV0IHRtcCA9ICcnO1xuICAgICAgICByZXR1cm4gc3BsaXRQYXRoLmZpbHRlcihzID0+IHMgIT09IFwiXCIpLm1hcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRtcCArPSBBYnN0cmFjdEJyZWFkY3J1bWJzQ29tcG9uZW50LkRFTElNRVRFUiArIHZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIHRtcD8ucmVwbGFjZShcIi8vXCIsIEFic3RyYWN0QnJlYWRjcnVtYnNDb21wb25lbnQuREVMSU1FVEVSKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGltbWVkaWF0ZVZhbHVlKGFDYXNlOiBDYXNlLCBmaWVsZElkOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICByZXR1cm4gYUNhc2UuaW1tZWRpYXRlRGF0YS5maW5kKHMgPT4gcy5zdHJpbmdJZCA9PT0gZmllbGRJZCk/LnZhbHVlXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUcmFuc2xhdGlvbih2YWx1ZTogSTE4bkZpZWxkVmFsdWUpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBsb2NhbGUgPSB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nLnNwbGl0KCctJylbMF07XG4gICAgICAgIHJldHVybiBsb2NhbGUgaW4gdmFsdWUudHJhbnNsYXRpb25zID8gdmFsdWUudHJhbnNsYXRpb25zW2xvY2FsZV0gOiB2YWx1ZS5kZWZhdWx0VmFsdWU7XG4gICAgfVxufVxuIl19