@huntsman-cancer-institute/navigation 17.0.4 → 17.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -34,9 +34,9 @@ let SearchTreeControllerComponent = class SearchTreeControllerComponent extends
34
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SearchTreeControllerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
35
35
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SearchTreeControllerComponent, selector: "hci-search-tree-controller", inputs: { buttonTemplate: "buttonTemplate", hideElements: "hideElements" }, exportAs: ["searchTreeControllerComponent"], usesInheritance: true, ngImport: i0, template: `
36
36
  <div *ngIf="!hideElements" id="search-title" class="d-flex flex-column">
37
- <div *ngIf="showTitle" class="d-flex pl-2">
37
+ <div *ngIf="showTitle" class="d-flex">
38
38
  {{title}}
39
- <div class="d-flex flex-row ml-auto mr-2">
39
+ <div class="d-flex flex-row ms-auto">
40
40
  <div *ngIf="buttonTemplate"><ng-container *ngTemplateOutlet="buttonTemplate"></ng-container></div>
41
41
  <a (click)="toggleShowOptions($event)"><i class="fas fa-cog"></i></a>
42
42
  </div>
@@ -56,8 +56,8 @@ let SearchTreeControllerComponent = class SearchTreeControllerComponent extends
56
56
  </div>
57
57
  </ng-container>
58
58
  <div class="d-flex flex-grow-1 m-1">
59
- <button (click)="applyFilters()" class="ml-auto mr-1"><i class="fas fa-check-circle"></i></button>
60
- <button (click)="setupFilters(true)" class="mr-0"><i class="fas fa-times-circle"></i></button>
59
+ <button (click)="applyFilters()" class="ms-auto me-1"><i class="fas fa-check-circle"></i></button>
60
+ <button (click)="setupFilters(true)" class="me-0"><i class="fas fa-times-circle"></i></button>
61
61
  </div>
62
62
  </div>
63
63
  </ng-template>
@@ -87,8 +87,8 @@ let SearchTreeControllerComponent = class SearchTreeControllerComponent extends
87
87
  </div>
88
88
  </div>
89
89
  <div class="d-flex mb-1 global-search" style="align-items: center;">
90
- <input [ngModel]="globalSearch" (keyup)="doGlobalSearch($event)" class="ml-2" placeholder="Search"/>
91
- <div class="ml-1 mr-1">
90
+ <input [ngModel]="globalSearch" (keyup)="doGlobalSearch($event)" class="ms-2" placeholder="Search"/>
91
+ <div class="ms-1 me-1">
92
92
  <i class="fal fa-search"></i>
93
93
  </div>
94
94
  </div>
@@ -97,7 +97,7 @@ let SearchTreeControllerComponent = class SearchTreeControllerComponent extends
97
97
  <ng-container *ngFor="let filter of filters">
98
98
  <ng-container *ngIf="filter.valid">
99
99
  <div (click)="clearFilter(filter)" class="d-flex pill">
100
- <div class="mr-2">
100
+ <div class="me-2">
101
101
  {{filter.field}}
102
102
  </div>
103
103
  <div class="close-icon">
@@ -118,7 +118,7 @@ let SearchTreeControllerComponent = class SearchTreeControllerComponent extends
118
118
  </div>
119
119
  <div *ngIf="hideElements" class="sidebar-container">
120
120
  <div id="search-title" class="d-flex flex-column pt-1">
121
- <div *ngIf="showTitle" class="d-flex pl-3">
121
+ <div *ngIf="showTitle" class="d-flex ps-3">
122
122
  {{title}}
123
123
  </div>
124
124
  </div>
@@ -133,9 +133,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
133
133
  type: Component,
134
134
  args: [{ selector: "hci-search-tree-controller", exportAs: "searchTreeControllerComponent", template: `
135
135
  <div *ngIf="!hideElements" id="search-title" class="d-flex flex-column">
136
- <div *ngIf="showTitle" class="d-flex pl-2">
136
+ <div *ngIf="showTitle" class="d-flex">
137
137
  {{title}}
138
- <div class="d-flex flex-row ml-auto mr-2">
138
+ <div class="d-flex flex-row ms-auto">
139
139
  <div *ngIf="buttonTemplate"><ng-container *ngTemplateOutlet="buttonTemplate"></ng-container></div>
140
140
  <a (click)="toggleShowOptions($event)"><i class="fas fa-cog"></i></a>
141
141
  </div>
@@ -155,8 +155,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
155
155
  </div>
156
156
  </ng-container>
157
157
  <div class="d-flex flex-grow-1 m-1">
158
- <button (click)="applyFilters()" class="ml-auto mr-1"><i class="fas fa-check-circle"></i></button>
159
- <button (click)="setupFilters(true)" class="mr-0"><i class="fas fa-times-circle"></i></button>
158
+ <button (click)="applyFilters()" class="ms-auto me-1"><i class="fas fa-check-circle"></i></button>
159
+ <button (click)="setupFilters(true)" class="me-0"><i class="fas fa-times-circle"></i></button>
160
160
  </div>
161
161
  </div>
162
162
  </ng-template>
@@ -186,8 +186,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
186
186
  </div>
187
187
  </div>
188
188
  <div class="d-flex mb-1 global-search" style="align-items: center;">
189
- <input [ngModel]="globalSearch" (keyup)="doGlobalSearch($event)" class="ml-2" placeholder="Search"/>
190
- <div class="ml-1 mr-1">
189
+ <input [ngModel]="globalSearch" (keyup)="doGlobalSearch($event)" class="ms-2" placeholder="Search"/>
190
+ <div class="ms-1 me-1">
191
191
  <i class="fal fa-search"></i>
192
192
  </div>
193
193
  </div>
@@ -196,7 +196,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
196
196
  <ng-container *ngFor="let filter of filters">
197
197
  <ng-container *ngIf="filter.valid">
198
198
  <div (click)="clearFilter(filter)" class="d-flex pill">
199
- <div class="mr-2">
199
+ <div class="me-2">
200
200
  {{filter.field}}
201
201
  </div>
202
202
  <div class="close-icon">
@@ -217,7 +217,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
217
217
  </div>
218
218
  <div *ngIf="hideElements" class="sidebar-container">
219
219
  <div id="search-title" class="d-flex flex-column pt-1">
220
- <div *ngIf="showTitle" class="d-flex pl-3">
220
+ <div *ngIf="showTitle" class="d-flex ps-3">
221
221
  {{title}}
222
222
  </div>
223
223
  </div>
@@ -228,4 +228,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
228
228
  }], hideElements: [{
229
229
  type: Input
230
230
  }] } });
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXRyZWUtY29udHJvbGxlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXZpZ2F0aW9uL3NyYy9jb21wb25lbnRzL3NlYXJjaC10cmVlL3NlYXJjaC10cmVlLWNvbnRyb2xsZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFDOUIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7QUFFOUY7Ozs7R0FJRztBQStHSSxJQUFNLDZCQUE2QixHQUFuQyxNQUFNLDZCQUE4QixTQUFRLDZCQUE2QjtJQUF6RTs7UUFHSSxpQkFBWSxHQUFZLEtBQUssQ0FBQztLQVl4QztJQVZDLFlBQVksQ0FBQyxNQUFNO1FBQ2pCLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0IsSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7OEdBZFUsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsa05BN0Y5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJGVDs7QUFFVSw2QkFBNkI7SUE5R3pDLGFBQWEsQ0FBQywrQkFBK0IsQ0FBQztHQThHbEMsNkJBQTZCLENBZXpDOzsyRkFmWSw2QkFBNkI7a0JBN0d6QyxTQUFTOytCQUNFLDRCQUE0QixZQUM1QiwrQkFBK0IsWUFjL0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyRlQ7OEJBSVEsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gXCJAaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS91dGlsc1wiO1xyXG5pbXBvcnQge1NlYXJjaExpc3RDb250cm9sbGVyQ29tcG9uZW50fSBmcm9tIFwiLi4vc2VhcmNoLWxpc3Qvc2VhcmNoLWxpc3QtY29udHJvbGxlci5jb21wb25lbnRcIjtcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2VhcmNoIHRyZWUgY29udHJvbGxlciByZW5kZXJzIGFzIGEgaGVhZGVyIHRvIG9uZSBvciBtb3JlIHNlYXJjaCB0cmVlcy4gIE9ubHkgb25lIHNlYXJjaCB0cmVlIGNhbiBiZSBzaG93biBhdCBhIHRpbWUuXHJcbiAqIFRoZSBjb250cm9sbGVyIGZlYXR1cmVzIHRoZSBhYmlsaXR5IHRvIGhhbmRsZSBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcuICBXaXRob3V0IHRoZSBjb250cm9sbGVyLCB0aGUgc2VhcmNoIGxpc3QgY2FuIGV4aXN0LFxyXG4gKiBidXQgaXQgY2FuIG9ubHkgaGFuZGxlIHBhZ2luZyBpbnRlcm5hbGx5LlxyXG4gKi9cclxuQENvbXBvbmVudFR5cGUoXCJTZWFyY2hUcmVlQ29udHJvbGxlckNvbXBvbmVudFwiKVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJoY2ktc2VhcmNoLXRyZWUtY29udHJvbGxlclwiLFxyXG4gIGV4cG9ydEFzOiBcInNlYXJjaFRyZWVDb250cm9sbGVyQ29tcG9uZW50XCIsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgLnNpZGViYXItY29udGFpbmVyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0U3RTdFNztcclxuICAgICAgY29sb3I6ICNmZmYgO1xyXG4gICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgICB6LWluZGV4OiAxMDAwO1xyXG4gICAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgICBtYXJnaW4tbGVmdDogLThweDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMzJweDtcclxuICAgIH1cclxuXHJcbiAgYF0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgKm5nSWY9XCIhaGlkZUVsZW1lbnRzXCIgaWQ9XCJzZWFyY2gtdGl0bGVcIiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd1RpdGxlXCIgY2xhc3M9XCJkLWZsZXggcGwtMlwiPlxyXG4gICAgICAgIHt7dGl0bGV9fVxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cgbWwtYXV0byBtci0yXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYnV0dG9uVGVtcGxhdGVcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj48L2Rpdj5cclxuICAgICAgICAgIDxhIChjbGljayk9XCJ0b2dnbGVTaG93T3B0aW9ucygkZXZlbnQpXCI+PGkgY2xhc3M9XCJmYXMgZmEtY29nXCI+PC9pPjwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLW9wdGlvbnNcIiBbY2xhc3MuZXhwYW5kZWRdPVwic2hvd09wdGlvbnNcIiAqbmdJZj1cImZpbHRlckJ5QWxsb3dlZEZpZWxkcy5sZW5ndGggPiAwICYmIHNvcnRCeUFsbG93ZWRGaWVsZHMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPHVsIG5nYk5hdiAjbmF2PVwibmdiTmF2XCIgY2xhc3M9XCJuYXYtdGFic1wiPlxyXG4gICAgICAgICAgICA8bGkgbmdiTmF2SXRlbSAgKm5nSWY9XCJmaWx0ZXJCeUFsbG93ZWRGaWVsZHMubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgICAgICAgIDxhIG5nYk5hdkxpbmsgPiBGaWx0ZXJpbmcgPC9hPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgYm91bmRGaWx0ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtLTFcIiBzdHlsZT1cImFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleDogMCAwIDQwJTtcIj57e2dldEZpZWxkRGlzcGxheShmaWx0ZXIuZmllbGQpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbbmdNb2RlbF09XCJmaWx0ZXIudmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldEZpbHRlcigkZXZlbnQsIGZpbHRlcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImFwcGx5RmlsdGVycygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImZsZXg6IDEgMSA2MCU7XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTEgbS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiYXBwbHlGaWx0ZXJzKClcIiBjbGFzcz1cIm1sLWF1dG8gbXItMVwiPjxpIGNsYXNzPVwiZmFzIGZhLWNoZWNrLWNpcmNsZVwiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzZXR1cEZpbHRlcnModHJ1ZSlcIiBjbGFzcz1cIm1yLTBcIj48aSBjbGFzcz1cImZhcyBmYS10aW1lcy1jaXJjbGVcIj48L2k+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPGxpIG5nYk5hdkl0ZW0gKm5nSWY9XCJzb3J0QnlBbGxvd2VkRmllbGRzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICA8YSBuZ2JOYXZMaW5rID4gU29ydGluZyA8L2E+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYk5hdkNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNvcnRGaWVsZCBvZiBzb3J0QnlBbGxvd2VkRmllbGRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtLTJcIiBzdHlsZT1cImFsaWduLWl0ZW1zOiBjZW50ZXI7XCIgKGNsaWNrKT1cInNldFNvcnQoJGV2ZW50LCBzb3J0RmllbGQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEuNXJlbTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzU29ydChzb3J0RmllbGQpICYmIGlzU29ydEFzYyhzb3J0RmllbGQpXCIgW3N0eWxlLmNvbG9yXT1cImlzRmlyc3RTb3J0KHNvcnRGaWVsZCkgPyAnZ3JlZW4nIDogJ2luaGVyaXQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEgZmEtYXJyb3ctY2lyY2xlLXVwIGZhLWxnXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzU29ydChzb3J0RmllbGQpICYmICFpc1NvcnRBc2Moc29ydEZpZWxkKVwiIFtzdHlsZS5jb2xvcl09XCJpc0ZpcnN0U29ydChzb3J0RmllbGQpID8gJ2dyZWVuJyA6ICdpbmhlcml0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhIGZhLWFycm93LWNpcmNsZS1kb3duIGZhLWxnXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tnZXRGaWVsZERpc3BsYXkoc29ydEZpZWxkKX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8ZGl2IFtuZ2JOYXZPdXRsZXRdPVwibmF2XCIgPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtYi0xIGdsb2JhbC1zZWFyY2hcIiBzdHlsZT1cImFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgPGlucHV0IFtuZ01vZGVsXT1cImdsb2JhbFNlYXJjaFwiIChrZXl1cCk9XCJkb0dsb2JhbFNlYXJjaCgkZXZlbnQpXCIgY2xhc3M9XCJtbC0yXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIi8+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTEgbXItMVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYWwgZmEtc2VhcmNoXCI+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBwLTEgeC1hdXRvXCIgKm5nSWY9XCJoYXNWYWxpZEZpbHRlcnMoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBmaWx0ZXJzXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXIudmFsaWRcIj5cclxuICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJjbGVhckZpbHRlcihmaWx0ZXIpXCIgY2xhc3M9XCJkLWZsZXggcGlsbFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLTJcIj5cclxuICAgICAgICAgICAgICAgICAge3tmaWx0ZXIuZmllbGR9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2UtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzLWNpcmNsZSBmYS14c1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cInNlYXJjaExpc3RzLmxlbmd0aCA+IDFcIiBjbGFzcz1cImQtZmxleCB4LWhpZGRlbiBsaXN0LXRvZ2dsZVwiPlxyXG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBbbmdNb2RlbF09XCJzZWxlY3RlZFNlYXJjaExpc3RcIiAobmdNb2RlbENoYW5nZSk9XCJzZXRTZWxlY3RlZFNlYXJjaExpc3QoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlICpuZ0Zvcj1cImxldCBzZWFyY2hMaXN0IG9mIHNlYXJjaExpc3RzXCIgbWF0LXJhaXNlZC1idXR0b24tdG9nZ2xlIGNvbG9yPVwicHJpbWFyeVwiIFt2YWx1ZV09XCJzZWFyY2hMaXN0XCI+XHJcbiAgICAgICAgICAgIHt7c2VhcmNoTGlzdH19XHJcbiAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiaGlkZUVsZW1lbnRzXCIgY2xhc3M9XCJzaWRlYmFyLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGlkPVwic2VhcmNoLXRpdGxlXCIgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gcHQtMVwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dUaXRsZVwiIGNsYXNzPVwiZC1mbGV4IHBsLTNcIj5cclxuICAgICAgICAgICAge3t0aXRsZX19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hUcmVlQ29udHJvbGxlckNvbXBvbmVudCBleHRlbmRzIFNlYXJjaExpc3RDb250cm9sbGVyQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgYnV0dG9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgaGlkZUVsZW1lbnRzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHVwZGF0ZUNvbmZpZyhjb25maWcpIHtcclxuICAgIHN1cGVyLnVwZGF0ZUNvbmZpZyhjb25maWcpO1xyXG5cclxuICAgIGlmIChjb25maWcuYnV0dG9uVGVtcGxhdGUpIHtcclxuICAgICAgdGhpcy5idXR0b25UZW1wbGF0ZSA9IGNvbmZpZy5idXR0b25UZW1wbGF0ZTtcclxuICAgIH1cclxuICAgIGlmIChjb25maWcuaGlkZUVsZW1lbnRzKSB7XHJcbiAgICAgIHRoaXMuaGlkZUVsZW1lbnRzID0gY29uZmlnLmhpZGVFbGVtZW50cztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXRyZWUtY29udHJvbGxlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXZpZ2F0aW9uL3NyYy9jb21wb25lbnRzL3NlYXJjaC10cmVlL3NlYXJjaC10cmVlLWNvbnRyb2xsZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFDOUIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7QUFFOUY7Ozs7R0FJRztBQStHSSxJQUFNLDZCQUE2QixHQUFuQyxNQUFNLDZCQUE4QixTQUFRLDZCQUE2QjtJQUF6RTs7UUFHSSxpQkFBWSxHQUFZLEtBQUssQ0FBQztLQVl4QztJQVZDLFlBQVksQ0FBQyxNQUFNO1FBQ2pCLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0IsSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7OEdBZFUsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsa05BN0Y5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJGVDs7QUFFVSw2QkFBNkI7SUE5R3pDLGFBQWEsQ0FBQywrQkFBK0IsQ0FBQztHQThHbEMsNkJBQTZCLENBZXpDOzsyRkFmWSw2QkFBNkI7a0JBN0d6QyxTQUFTOytCQUNFLDRCQUE0QixZQUM1QiwrQkFBK0IsWUFjL0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyRlQ7OEJBSVEsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gXCJAaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS91dGlsc1wiO1xyXG5pbXBvcnQge1NlYXJjaExpc3RDb250cm9sbGVyQ29tcG9uZW50fSBmcm9tIFwiLi4vc2VhcmNoLWxpc3Qvc2VhcmNoLWxpc3QtY29udHJvbGxlci5jb21wb25lbnRcIjtcclxuXHJcbi8qKlxyXG4gKiBUaGUgc2VhcmNoIHRyZWUgY29udHJvbGxlciByZW5kZXJzIGFzIGEgaGVhZGVyIHRvIG9uZSBvciBtb3JlIHNlYXJjaCB0cmVlcy4gIE9ubHkgb25lIHNlYXJjaCB0cmVlIGNhbiBiZSBzaG93biBhdCBhIHRpbWUuXHJcbiAqIFRoZSBjb250cm9sbGVyIGZlYXR1cmVzIHRoZSBhYmlsaXR5IHRvIGhhbmRsZSBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcuICBXaXRob3V0IHRoZSBjb250cm9sbGVyLCB0aGUgc2VhcmNoIGxpc3QgY2FuIGV4aXN0LFxyXG4gKiBidXQgaXQgY2FuIG9ubHkgaGFuZGxlIHBhZ2luZyBpbnRlcm5hbGx5LlxyXG4gKi9cclxuQENvbXBvbmVudFR5cGUoXCJTZWFyY2hUcmVlQ29udHJvbGxlckNvbXBvbmVudFwiKVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJoY2ktc2VhcmNoLXRyZWUtY29udHJvbGxlclwiLFxyXG4gIGV4cG9ydEFzOiBcInNlYXJjaFRyZWVDb250cm9sbGVyQ29tcG9uZW50XCIsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgLnNpZGViYXItY29udGFpbmVyIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0U3RTdFNztcclxuICAgICAgY29sb3I6ICNmZmYgO1xyXG4gICAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgICB6LWluZGV4OiAxMDAwO1xyXG4gICAgICBwYWRkaW5nLXRvcDogM3B4O1xyXG4gICAgICBtYXJnaW4tbGVmdDogLThweDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAtOHB4O1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMzJweDtcclxuICAgIH1cclxuXHJcbiAgYF0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgKm5nSWY9XCIhaGlkZUVsZW1lbnRzXCIgaWQ9XCJzZWFyY2gtdGl0bGVcIiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd1RpdGxlXCIgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICB7e3RpdGxlfX1cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IG1zLWF1dG9cIj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJidXR0b25UZW1wbGF0ZVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPjwvZGl2PlxyXG4gICAgICAgICAgPGEgKGNsaWNrKT1cInRvZ2dsZVNob3dPcHRpb25zKCRldmVudClcIj48aSBjbGFzcz1cImZhcyBmYS1jb2dcIj48L2k+PC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtb3B0aW9uc1wiIFtjbGFzcy5leHBhbmRlZF09XCJzaG93T3B0aW9uc1wiICpuZ0lmPVwiZmlsdGVyQnlBbGxvd2VkRmllbGRzLmxlbmd0aCA+IDAgJiYgc29ydEJ5QWxsb3dlZEZpZWxkcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8dWwgbmdiTmF2ICNuYXY9XCJuZ2JOYXZcIiBjbGFzcz1cIm5hdi10YWJzXCI+XHJcbiAgICAgICAgICAgIDxsaSBuZ2JOYXZJdGVtICAqbmdJZj1cImZpbHRlckJ5QWxsb3dlZEZpZWxkcy5sZW5ndGggPiAxXCI+XHJcbiAgICAgICAgICAgICAgPGEgbmdiTmF2TGluayA+IEZpbHRlcmluZyA8L2E+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYk5hdkNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBib3VuZEZpbHRlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG0tMVwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4OiAwIDAgNDAlO1wiPnt7Z2V0RmllbGREaXNwbGF5KGZpbHRlci5maWVsZCl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtuZ01vZGVsXT1cImZpbHRlci52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0RmlsdGVyKCRldmVudCwgZmlsdGVyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwiYXBwbHlGaWx0ZXJzKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZmxleDogMSAxIDYwJTtcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWdyb3ctMSBtLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJhcHBseUZpbHRlcnMoKVwiIGNsYXNzPVwibXMtYXV0byBtZS0xXCI+PGkgY2xhc3M9XCJmYXMgZmEtY2hlY2stY2lyY2xlXCI+PC9pPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNldHVwRmlsdGVycyh0cnVlKVwiIGNsYXNzPVwibWUtMFwiPjxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzLWNpcmNsZVwiPjwvaT48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8bGkgbmdiTmF2SXRlbSAqbmdJZj1cInNvcnRCeUFsbG93ZWRGaWVsZHMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgIDxhIG5nYk5hdkxpbmsgPiBTb3J0aW5nIDwvYT5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiTmF2Q29udGVudD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc29ydEZpZWxkIG9mIHNvcnRCeUFsbG93ZWRGaWVsZHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG0tMlwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGNlbnRlcjtcIiAoY2xpY2spPVwic2V0U29ydCgkZXZlbnQsIHNvcnRGaWVsZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMS41cmVtO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTb3J0KHNvcnRGaWVsZCkgJiYgaXNTb3J0QXNjKHNvcnRGaWVsZClcIiBbc3R5bGUuY29sb3JdPVwiaXNGaXJzdFNvcnQoc29ydEZpZWxkKSA/ICdncmVlbicgOiAnaW5oZXJpdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYSBmYS1hcnJvdy1jaXJjbGUtdXAgZmEtbGdcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTb3J0KHNvcnRGaWVsZCkgJiYgIWlzU29ydEFzYyhzb3J0RmllbGQpXCIgW3N0eWxlLmNvbG9yXT1cImlzRmlyc3RTb3J0KHNvcnRGaWVsZCkgPyAnZ3JlZW4nIDogJ2luaGVyaXQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEgZmEtYXJyb3ctY2lyY2xlLWRvd24gZmEtbGdcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7e2dldEZpZWxkRGlzcGxheShzb3J0RmllbGQpfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDxkaXYgW25nYk5hdk91dGxldF09XCJuYXZcIiA+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG1iLTEgZ2xvYmFsLXNlYXJjaFwiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICA8aW5wdXQgW25nTW9kZWxdPVwiZ2xvYmFsU2VhcmNoXCIgKGtleXVwKT1cImRvR2xvYmFsU2VhcmNoKCRldmVudClcIiBjbGFzcz1cIm1zLTJcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiLz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXMtMSBtZS0xXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhbCBmYS1zZWFyY2hcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHAtMSB4LWF1dG9cIiAqbmdJZj1cImhhc1ZhbGlkRmlsdGVycygpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGZpbHRlcnNcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlci52YWxpZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImNsZWFyRmlsdGVyKGZpbHRlcilcIiBjbGFzcz1cImQtZmxleCBwaWxsXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWUtMlwiPlxyXG4gICAgICAgICAgICAgICAgICB7e2ZpbHRlci5maWVsZH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXMtY2lyY2xlIGZhLXhzXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwic2VhcmNoTGlzdHMubGVuZ3RoID4gMVwiIGNsYXNzPVwiZC1mbGV4IHgtaGlkZGVuIGxpc3QtdG9nZ2xlXCI+XHJcbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIFtuZ01vZGVsXT1cInNlbGVjdGVkU2VhcmNoTGlzdFwiIChuZ01vZGVsQ2hhbmdlKT1cInNldFNlbGVjdGVkU2VhcmNoTGlzdCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgKm5nRm9yPVwibGV0IHNlYXJjaExpc3Qgb2Ygc2VhcmNoTGlzdHNcIiBtYXQtcmFpc2VkLWJ1dHRvbi10b2dnbGUgY29sb3I9XCJwcmltYXJ5XCIgW3ZhbHVlXT1cInNlYXJjaExpc3RcIj5cclxuICAgICAgICAgICAge3tzZWFyY2hMaXN0fX1cclxuICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XHJcbiAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJoaWRlRWxlbWVudHNcIiBjbGFzcz1cInNpZGViYXItY29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXYgaWQ9XCJzZWFyY2gtdGl0bGVcIiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBwdC0xXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd1RpdGxlXCIgY2xhc3M9XCJkLWZsZXggcHMtM1wiPlxyXG4gICAgICAgICAgICB7e3RpdGxlfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGBcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaFRyZWVDb250cm9sbGVyQ29tcG9uZW50IGV4dGVuZHMgU2VhcmNoTGlzdENvbnRyb2xsZXJDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBidXR0b25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBoaWRlRWxlbWVudHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgdXBkYXRlQ29uZmlnKGNvbmZpZykge1xyXG4gICAgc3VwZXIudXBkYXRlQ29uZmlnKGNvbmZpZyk7XHJcblxyXG4gICAgaWYgKGNvbmZpZy5idXR0b25UZW1wbGF0ZSkge1xyXG4gICAgICB0aGlzLmJ1dHRvblRlbXBsYXRlID0gY29uZmlnLmJ1dHRvblRlbXBsYXRlO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbmZpZy5oaWRlRWxlbWVudHMpIHtcclxuICAgICAgdGhpcy5oaWRlRWxlbWVudHMgPSBjb25maWcuaGlkZUVsZW1lbnRzO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -545,7 +545,7 @@ let SearchTreeComponent = class SearchTreeComponent extends NavComponent {
545
545
  </div>
546
546
 
547
547
  <!-- Paging footer -->
548
- <div *ngIf="paging.pageSize > 0" class="d-flex flex-shrink-0 paging-footer justify-content-between pl-3 pr-3" style="min-height: 1rem; align-items: center;">
548
+ <div *ngIf="paging.pageSize > 0" class="d-flex flex-shrink-0 paging-footer justify-content-between ps-3 pe-3" style="min-height: 1rem; align-items: center;">
549
549
  <ng-container *ngIf="!selectedRowGroup">
550
550
  <div (click)="doPageFirst()" class="d-flex mt-1 mb-1" [class.disabled]="paging.page === 0"><i class="fas fa-fast-backward fa-xs"></i></div>
551
551
  <div (click)="doPagePrevious()" class="d-flex mt-1 mb-1" [class.disabled]="paging.page === 0"><i class="fas fa-backward fa-xs"></i></div>
@@ -586,7 +586,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
586
586
  </div>
587
587
 
588
588
  <!-- Paging footer -->
589
- <div *ngIf="paging.pageSize > 0" class="d-flex flex-shrink-0 paging-footer justify-content-between pl-3 pr-3" style="min-height: 1rem; align-items: center;">
589
+ <div *ngIf="paging.pageSize > 0" class="d-flex flex-shrink-0 paging-footer justify-content-between ps-3 pe-3" style="min-height: 1rem; align-items: center;">
590
590
  <ng-container *ngIf="!selectedRowGroup">
591
591
  <div (click)="doPageFirst()" class="d-flex mt-1 mb-1" [class.disabled]="paging.page === 0"><i class="fas fa-fast-backward fa-xs"></i></div>
592
592
  <div (click)="doPagePrevious()" class="d-flex mt-1 mb-1" [class.disabled]="paging.page === 0"><i class="fas fa-backward fa-xs"></i></div>
@@ -651,4 +651,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
651
651
  }], sortChildren: [{
652
652
  type: Input
653
653
  }] } });
654
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF2aWdhdGlvbi9zcmMvY29tcG9uZW50cy9zZWFyY2gtdHJlZS9zZWFyY2gtdHJlZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFDdkYsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUErQixXQUFXLEVBQUUsU0FBUyxFQUN2RyxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsZUFBZSxFQUEwQixNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RCxPQUFPLEVBQTJCLFVBQVUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFhLE1BQU0sNENBQTRDLENBQUM7QUFDMUksT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRS9ELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNqRixPQUFPLEVBQUMsYUFBYSxFQUEwQixNQUFNLG1EQUFtRCxDQUFDOzs7Ozs7O0FBeURsRyxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFvQixTQUFRLFlBQVk7SUFtRm5ELFlBQVksVUFBc0IsRUFDdEIsUUFB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S0FBSzt1QkFBQyxVQUFVO2dCQUVXLGlCQUFpQjtzQkFBNUMsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBRWpCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFFRSxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsXHJcbiAgaXNEZXZNb2RlLCBPcHRpb25hbCwgT3V0cHV0LCBRdWVyeUxpc3QsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlLCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW5cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge2RlbGF5LCBmaW5hbGl6ZX0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7TmdiRHJvcGRvd259IGZyb20gXCJAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcFwiO1xyXG5cclxuaW1wb3J0IHtIY2lEYXRhRHRvLCBIY2lGaWx0ZXJEdG8sIEhjaUdyaWREdG8sIEhjaUdyb3VwaW5nRHRvLCBIY2lQYWdpbmdEdG8sIEhjaVNvcnREdG99IGZyb20gXCJAaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9oY2ktbmctZ3JpZC1kdG9cIjtcclxuaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tIFwiQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvdXRpbHNcIjtcclxuXHJcbmltcG9ydCB7TmF2Q29tcG9uZW50fSBmcm9tIFwiLi4vbmF2LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge05hdmlnYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7TmF2aWdhdGlvbkdsb2JhbFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLWdsb2JhbC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U2VhcmNoVHJlZUNvbnRyb2xsZXJDb21wb25lbnR9IGZyb20gXCIuL3NlYXJjaC10cmVlLWNvbnRyb2xsZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJlZUNvbXBvbmVudCwgSVRyZWVPcHRpb25zLCBUcmVlTW9kZWx9IGZyb20gXCJAaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9hbmd1bGFyLXRyZWUtY29tcG9uZW50XCI7XHJcbmltcG9ydCB7SVRyZWVOb2RlfSBmcm9tIFwiQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvYW5ndWxhci10cmVlLWNvbXBvbmVudC9saWIvZGVmcy9hcGlcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50VHlwZShcIlNlYXJjaFRyZWVDb21wb25lbnRcIilcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaGNpLXNlYXJjaC10cmVlXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggc2Nyb2xsYWJsZSB0cmVlQm94XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gdHJlZUJveFwiPlxyXG4gICAgICAgIDxoY2ktYnVzeSBbYnVzeVN1YmplY3RzXT1cImxvYWRpbmdTdWJqZWN0c1wiIHBhcmVudFNlbGVjdG9yPVwiLnNjcm9sbGFibGVcIiBbaWNvbl09XCJidXN5SWNvblwiPjwvaGNpLWJ1c3k+XHJcbiAgICAgICAgPHRyZWUtcm9vdCAjc2VhcmNoVHJlZUNvbnRyb2wgW25vZGVzXT1cInZpZXdEYXRhXCIgW29wdGlvbnNdPVwic2VhcmNoVHJlZU9wdGlvbnNcIiAoYWN0aXZhdGUpPVwib25Ob2RlQ2xpY2soJGV2ZW50KVwiICh1cGRhdGVEYXRhKT1cIm9uVXBkYXRlRGF0YSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgIChtb3ZlTm9kZSk9XCJvbk1vdmVOb2RlKCRldmVudClcIiBjbGFzcz1cInNlYXJjaFRyZWVcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdHJlZU5vZGVUZW1wbGF0ZSBsZXQtbm9kZSBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7bm9kZTogbm9kZX1cIj4gPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvdHJlZS1yb290PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gUGFnaW5nIGZvb3RlciAtLT5cclxuICAgIDxkaXYgKm5nSWY9XCJwYWdpbmcucGFnZVNpemUgPiAwXCIgY2xhc3M9XCJkLWZsZXggZmxleC1zaHJpbmstMCBwYWdpbmctZm9vdGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHBsLTMgcHItM1wiIHN0eWxlPVwibWluLWhlaWdodDogMXJlbTsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWxlY3RlZFJvd0dyb3VwXCI+XHJcbiAgICAgICAgPGRpdiAoY2xpY2spPVwiZG9QYWdlRmlyc3QoKVwiIGNsYXNzPVwiZC1mbGV4IG10LTEgbWItMVwiIFtjbGFzcy5kaXNhYmxlZF09XCJwYWdpbmcucGFnZSA9PT0gMFwiPjxpIGNsYXNzPVwiZmFzIGZhLWZhc3QtYmFja3dhcmQgZmEteHNcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPGRpdiAoY2xpY2spPVwiZG9QYWdlUHJldmlvdXMoKVwiIGNsYXNzPVwiZC1mbGV4IG10LTEgbWItMVwiIFtjbGFzcy5kaXNhYmxlZF09XCJwYWdpbmcucGFnZSA9PT0gMFwiPjxpIGNsYXNzPVwiZmFzIGZhLWJhY2t3YXJkIGZhLXhzXCI+PC9pPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmb250LXNpemU6IDAuOHJlbTtcIj57e3BhZ2luZy5wYWdlICsgMX19IG9mIHt7cGFnaW5nLm51bVBhZ2VzfX08L2Rpdj5cclxuICAgICAgICA8ZGl2IChjbGljayk9XCJkb1BhZ2VOZXh0KClcIiBjbGFzcz1cImQtZmxleCBtdC0xIG1iLTFcIiBbY2xhc3MuZGlzYWJsZWRdPVwicGFnaW5nLnBhZ2UgPT09IHBhZ2luZy5udW1QYWdlcyAtIDFcIj48aSBjbGFzcz1cImZhcyBmYS1mb3J3YXJkIGZhLXhzXCI+PC9pPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgKGNsaWNrKT1cImRvUGFnZUxhc3QoKVwiIGNsYXNzPVwiZC1mbGV4IG10LTEgbWItMVwiIFtjbGFzcy5kaXNhYmxlZF09XCJwYWdpbmcucGFnZSA9PT0gcGFnaW5nLm51bVBhZ2VzIC0gMVwiPjxpIGNsYXNzPVwiZmFzIGZhLWZhc3QtZm9yd2FyZCBmYS14c1wiPjwvaT48L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wbGF0ZSBsZXQtZGF0YT1cIm5vZGUuZGF0YVwiPlxyXG4gICAgICA8c3Bhbj57eyBkYXRhLm5hbWUgfX08L3NwYW4+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgOmhvc3Qge1xyXG4gICAgICBtaW4taGVpZ2h0OiAwcHg7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgICAgZmxleC1zaHJpbms6IDE7XHJcbiAgICAgfVxyXG5cclxuICAgICAudHJlZUJveCB7XHJcbiAgICAgICBtaW4taGVpZ2h0OiAwcHg7XHJcbiAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgICAgIGZsZXgtc2hyaW5rOiAxO1xyXG4gICAgIH1cclxuXHJcbiAgICAgLnNlYXJjaFRyZWUge1xyXG4gICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgIH1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoVHJlZUNvbXBvbmVudCBleHRlbmRzIE5hdkNvbXBvbmVudCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzZWFyY2hUcmVlQ29udHJvbFwiLCB7c3RhdGljOiBmYWxzZX0pIHRyZWVDb21wb25lbnQ6IFRyZWVDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcImRlZmF1bHRUZW1wbGF0ZVwiLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZX0pIGRlZmF1bHRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLy8gVGhlIGRhdGEgdGhhdCBpcyBhY3R1YWxseSByZW5kZXJlZC5cclxuICB2aWV3RGF0YTogYW55W107XHJcblxyXG4gIC8vIEEgcmVmZXJlbmNlIHRvIHRoZSBzZWFyY2ggbGlzdCBjb250cm9sbGVyIGlmIGFwcGxpY2FibGUuXHJcbiAgQElucHV0KCkgY29udHJvbGxlcjogU2VhcmNoVHJlZUNvbnRyb2xsZXJDb21wb25lbnQ7XHJcblxyXG4gIC8vIEFuIGFycmF5IG9mIGRhdGEuXHJcbiAgQElucHV0KFwiZGF0YVwiKSBib3VuZERhdGE6IE9iamVjdFtdO1xyXG5cclxuICAvLyBBIHN1YmplY3QgdGhhdCByZXByZXNlbnRzIGFuIGFycmF5IG9mIGRhdGEuXHJcbiAgQElucHV0KFwiZGF0YVN1YmplY3RcIikgZGF0YVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxPYmplY3RbXT47XHJcblxyXG4gIC8vIEEgZnVuY3Rpb24gd2hpY2ggdGFrZXMgaW4gYSBIY2lHcmlkRHRvIGFuZCByZXR1cm5zIGEgSGNpRGF0YUR0byB3aGljaCB3cmFwcyBhbiBhcnJheSBvZiBkYXRhLlxyXG4gIEBJbnB1dChcImRhdGFDYWxsXCIpIGV4dGVybmFsRGF0YUNhbGw6IChkdG86IEhjaUdyaWREdG8pID0+IE9ic2VydmFibGU8SGNpRGF0YUR0bz47XHJcblxyXG4gIEBJbnB1dChcInNlYXJjaFRyZWVPcHRpb25zXCIpIHNlYXJjaFRyZWVPcHRpb25zOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLy8gQW4gYXJyYXkgb2Ygc3ViamVjdHMgd2l0aCBib29sZWFucyB0byBjb250cm9sIHRoZSBoY2ktYnVzeSBvdmVybGF5aW5nIHRoZSBzZWFyY2gtbGlzdC5cclxuICBASW5wdXQoKSBsb2FkaW5nU3ViamVjdHM6IFN1YmplY3Q8Ym9vbGVhbj5bXTtcclxuXHJcbiAgLy8gQW4gYXJyYXkgb2YgYm9vbGVhbnMgdG8gY29udHJvbCB0aGUgaGNpLWJ1c3kgb3ZlcmxheWluZyB0aGUgc2VhcmNoLWxpc3QuXHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbltdID0gW2ZhbHNlXTtcclxuXHJcbiAgLy8gSWYgY2xpY2tpbmcgYSByb3cgY2hhbmdlcyBhIHJvdXRlLCB0aGlzIGZ1bmN0aW9uIHNwZWNpZmllcyB0aGUgcm91dGUgdG8gdXNlLlxyXG4gIEBJbnB1dCgpIHJvdXRlOiAocm93R3JvdXA6IGFueSwgcm93OiBhbnkpID0+IGFueVtdO1xyXG5cclxuICAvLyBUaGUgcGFnZSBzaXplIG9mIHJvdyBncm91cHMgb3Igcm93cyBpZiBubyBncm91cGluZy5cclxuICBASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyO1xyXG5cclxuICAvLyBBIHJlZmVyZW5jZSB0byBhIHBhcmVudCBkcm9wZG93biBpZiBhcHBsaWNhYmxlLlxyXG4gIEBJbnB1dCgpIGRyb3Bkb3duOiBOZ2JEcm9wZG93bjtcclxuXHJcbiAgLy9XaGljaCBpY29uIHRvIHVzZSBmb3IgdGhlIGJ1c3kgc3Bpbm5lclxyXG4gIEBJbnB1dCgpIGJ1c3lJY29uOiBzdHJpbmcgPSBcImZhcyBmYS1zeW5jIGZhLXNwaW5cIjtcclxuICAvL0VpdGhlciBhbiBhcnJheSBvZiBub2RlIGlkcyBmb3IgZXhwYW5kaW5nIG9yIGEgc3RyaW5nICdhbGwnIGZvciBleHBhbmRpbmcgd2hvbGUgdHJlZVxyXG4gIEBJbnB1dCgpIGV4cGFuZFRyZWVOb2RlSURzOiBzdHJpbmcgfCBhbnlbXTtcclxuXHJcbiAgQElucHV0KCkgb25DbGljazogKGNtcHQ6IFNlYXJjaFRyZWVDb21wb25lbnQsIHRyZWU6IFRyZWVDb21wb25lbnQsIGV2ZW50OiBhbnkpID0+IHZvaWQ7XHJcblxyXG4gIEBJbnB1dCgpIG9uTm9kZU1vdmVkOiAoY21wdDogU2VhcmNoVHJlZUNvbXBvbmVudCwgdHJlZTogVHJlZUNvbXBvbmVudCwgZXZlbnQ6IGFueSkgPT4gdm9pZDtcclxuXHJcbiAgQElucHV0KCkgb25EYXRhVXBkYXRlOiAoY21wdDogU2VhcmNoVHJlZUNvbXBvbmVudCwgdHJlZTogVHJlZUNvbXBvbmVudCwgZXZlbnQ6IGFueSkgPT4gdm9pZDtcclxuXHJcbiAgQE91dHB1dCgpIG5vZGVTZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZGF0YUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBcclxuICBASW5wdXQoKSBzb3J0Q2hpbGRyZW46IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHJcbiAgLy8gR3JpZCBEVE8gaW5mbyBuZWVkZWQgdG8gYnVpbGQgZXh0ZXJuYWwgZGF0YSByZXF1ZXN0cy5cclxuICBzb3J0czogSGNpU29ydER0b1tdID0gW107XHJcbiAgZmlsdGVyczogSGNpRmlsdGVyRHRvW10gPSBbXTtcclxuICBwYWdpbmc6IEhjaVBhZ2luZ0R0byA9IG5ldyBIY2lQYWdpbmdEdG8oMCwgLTEpO1xyXG4gIHBhZ2luZ1N1YmplY3Q6IFN1YmplY3Q8SGNpUGFnaW5nRHRvPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SGNpUGFnaW5nRHRvPih0aGlzLnBhZ2luZyk7XHJcblxyXG4gIGRlZmF1bHRTZWFyY2hUcmVlT3B0aW9uczogSVRyZWVPcHRpb25zID0ge1xyXG4gICAgICBpZEZpZWxkOiBcImlkXCIsXHJcbiAgICAgIGRpc3BsYXlGaWVsZDogXCJuYW1lXCIsXHJcbiAgICAgIGNoaWxkcmVuRmllbGQ6IFwiY2hpbGRyZW5cIixcclxuICAgICAgdXNlVmlydHVhbFNjcm9sbDogdHJ1ZSxcclxuICAgICAgbm9kZUhlaWdodDogMjJcclxuICAgIH07XHJcblxyXG4gIC8vIEEgZHVtbXkgbnVtYmVyIHRoYXQgaW5jcmVtZW50cyBiYXNlZCBvbiBzZWxlY3Rpb24gY2hhbmdlcy4gIEZvcmNlcyByb3V0ZXJMaW5rQWN0aXZlIHRvIHJlY2hlY2suXHJcbiAgcm93UmVmcmVzaDogbnVtYmVyID0gMDtcclxuXHJcbiAgYnVzeTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBsYXN0U2Nyb2xsVG9wOiBudW1iZXIgPSAtMTtcclxuICBsYXN0U2Nyb2xsUG9zaXRpb246IG51bWJlciA9IDE7XHJcbiAgc2V0U2Nyb2xsVG9wOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNtcHQ6IFNlYXJjaFRyZWVDb21wb25lbnQgPSB0aGlzO1xyXG5cclxuICBsYXN0RXZlbnQ6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICAgICAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgICAgICAgIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgICAgICAgbmF2aWdhdGlvbkdsb2JhbFNlcnZpY2U6IE5hdmlnYXRpb25HbG9iYWxTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIG5hdmlnYXRpb25TZXJ2aWNlOiBOYXZpZ2F0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHN1cGVyKGVsZW1lbnRSZWYsIHJlbmRlcmVyLCByZXNvbHZlciwgbmF2aWdhdGlvblNlcnZpY2UsIGNoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgICBpZiAoIW5hdmlnYXRpb25TZXJ2aWNlKSB7XHJcbiAgICAgIHRoaXMubmF2aWdhdGlvblNlcnZpY2UgPSBuZXcgTmF2aWdhdGlvblNlcnZpY2UobmF2aWdhdGlvbkdsb2JhbFNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmdldElkKCkgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmlzUm9vdCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2V0Q29uZmlnKHt9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIGluaXQsIGxpc3RlbiBmb3IgbG9hZGluZyBzdWJqZWN0cyBhbmQgbGlzdGVuIGZvciBwYWdlIGNoYW5nZXMuXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAgIGlmICh0aGlzLmxvYWRpbmdTdWJqZWN0cykge1xyXG4gICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0c1swXS5zdWJzY3JpYmUoKGJ1c3k6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICB0aGlzLmJ1c3kgPSBidXN5O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBhZ2luZ1N1YmplY3Quc3Vic2NyaWJlKChwYWdpbmc6IEhjaVBhZ2luZ0R0bykgPT4ge1xyXG4gICAgICB0aGlzLnBhZ2luZyA9IHBhZ2luZztcclxuICAgICAgdGhpcy5zZXREYXRhKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCB3aGVuIGlucHV0cyBjaGFuZ2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1NpbXBsZUNoYW5nZXN9IGNoYW5nZXNcclxuICAgKi9cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuXHJcbiAgICB0aGlzLnJlZnJlc2hUcmVlKCk7XHJcbiAgfVxyXG5cclxuICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gICAgIGlmICh0aGlzLnRyZWVDb21wb25lbnQudHJlZU1vZGVsICYmIHRoaXMuZXhwYW5kVHJlZU5vZGVJRHMgKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgbGV0IHRyZWVNb2RlbDogVHJlZU1vZGVsID0gdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbDtcclxuICAgICAgIGlmKEFycmF5LmlzQXJyYXkodGhpcy5leHBhbmRUcmVlTm9kZUlEcykpIHtcclxuICAgICAgICAgZm9yKGxldCBub2RlSWQgb2YgdGhpcy5leHBhbmRUcmVlTm9kZUlEcykge1xyXG4gICAgICAgICAgIGxldCBub2RlOiBJVHJlZU5vZGUgPSB0cmVlTW9kZWwuZ2V0Tm9kZUJ5SWQobm9kZUlkKTtcclxuICAgICAgICAgICBpZihub2RlKSB7XHJcbiAgICAgICAgICAgICBub2RlLmV4cGFuZCgpO1xyXG4gICAgICAgICAgIH1cclxuICAgICAgICAgfVxyXG4gICAgICAgfSBlbHNlIGlmKHR5cGVvZiB0aGlzLmV4cGFuZFRyZWVOb2RlSURzID09PSBcInN0cmluZ1wiXHJcbiAgICAgICAgICYmIHRoaXMuZXhwYW5kVHJlZU5vZGVJRHMgPT09IFwiYWxsXCIpIHtcclxuICAgICAgICAgdHJlZU1vZGVsLmV4cGFuZEFsbCgpO1xyXG4gICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgfVxyXG4gICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBTZXQgZGF0YSBvbmx5IHdoZW4gdGhlIGNvbXBvbmVudCBoYXMgZnVsbHkgaW5pdGlhbGl6ZWQgYW5kIGlzIHJlbmRlcmVkLlxyXG4gICAqL1xyXG4gIGNoZWNrSW5pdGlhbGl6ZWQoKSB7XHJcbiAgICBpZiAodGhpcy5hZnRlclZpZXdJbml0KSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUNvbmZpZyh0aGlzLmNvbmZpZyk7XHJcbiAgICAgIHRoaXMucG9zdEluaXQoKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmRhdGFTdWJqZWN0KSB7XHJcbiAgICAgICAgLy9NYXkgYXMgd2VsbCBtYWtlIGl0IHNwaW4gd2hpbGUgcHJvY2Vzc2luZywgYXMgd2VsbCBhcyBsb2FkaW5nLiBPdGhlcndpc2UgaXQgbG9va3MgZnJvemVuXHJcbiAgICAgICAgaWYgKHRoaXMubG9hZGluZ1N1YmplY3RzKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0c1swXS5uZXh0KHRydWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5kYXRhU3ViamVjdFxyXG4gICAgICAgICAgLnBpcGUoZGVsYXkoMCkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiBPYmplY3RbXSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmJvdW5kRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RGF0YSgpO1xyXG5cclxuICAgICAgICAgICAgLy9Ob3cgZG9uZSBsb2FkaW5nXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmxvYWRpbmdTdWJqZWN0cykge1xyXG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3RzWzBdLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBvc3RJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJTZWFyY2hUcmVlQ29tcG9uZW50LnBvc3RJbml0OiBcIiArIHRoaXMuaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmdldFBhcmVudCgpKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbGxlciA9IDxTZWFyY2hUcmVlQ29udHJvbGxlckNvbXBvbmVudD50aGlzLmdldFBhcmVudCgpLmdldENvbXBvbmVudEJ5VHlwZShcIlNlYXJjaFRyZWVDb250cm9sbGVyQ29tcG9uZW50XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbnRyb2xsZXIpIHtcclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhcIlNlYXJjaFRyZWVDb21wb25lbnQ6IHVzaW5nIGNvbnRyb2xsZXJcIik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuY29udHJvbGxlci5hZGRTZWFyY2hMaXN0KHRoaXMudGl0bGUpO1xyXG5cclxuICAgICAgdGhpcy5jb250cm9sbGVyLmZpbHRlcnNTdWJqZWN0LnN1YnNjcmliZSgoZmlsdGVyczogSGNpRmlsdGVyRHRvW10pID0+IHtcclxuICAgICAgICB0aGlzLmZpbHRlcnMgPSBmaWx0ZXJzO1xyXG4gICAgICAgIHRoaXMuc2V0RGF0YSgpO1xyXG4gICAgICAgIHRoaXMucmVzZXRQYWdpbmcoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmNvbnRyb2xsZXIuc29ydHNTdWJqZWN0LnN1YnNjcmliZSgoc29ydHM6IEhjaVNvcnREdG9bXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc29ydHMgPSBzb3J0cztcclxuICAgICAgICB0aGlzLnNldERhdGEoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmNvbnRyb2xsZXIuc2VsZWN0ZWRTZWFyY2hMaXN0U3ViamVjdC5zdWJzY3JpYmUoKHRpdGxlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgIGNvbnNvbGUuZGVidWcoXCJzZWxlY3RlZFNlYXJjaExpc3RTdWJqZWN0LnN1YnNjcmliZTogXCIgKyB0aGlzLnRpdGxlICsgXCIsIFwiICsgdGl0bGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHZpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy50aXRsZSAmJiB0aXRsZSAmJiB0aGlzLnRpdGxlICE9PSB0aXRsZSkge1xyXG4gICAgICAgICAgdmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHZpc2libGUpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiZGlzcGxheVwiLCBcImZsZXhcIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiZGlzcGxheVwiLCBcIm5vbmVcIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJlZnJlc2hUcmVlKCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5yZWZyZXNoVHJlZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBmdW5jdGlvbiB3b3VsZCByZXNldCBwYWdpbmcgYW5kIGZpcmVzXHJcbiAgICovXHJcbiAgcmVzZXRQYWdpbmcoKXtcclxuICAgIHRoaXMucGFnaW5nLnNldFBhZ2UoMCk7XHJcbiAgICB0aGlzLnBhZ2luZ1N1YmplY3QubmV4dCh0aGlzLnBhZ2luZyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBjb25maWcgd2l0aCBvcHRpb25zIGFuZCByZS1mZXRjaGVzIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY29uZmlnXHJcbiAgICovXHJcbiAgdXBkYXRlQ29uZmlnKGNvbmZpZykge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJ1cGRhdGVDb25maWdcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICB0aGlzLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY29uZmlnLCBjb25maWcpO1xyXG5cclxuICAgICAgaWYgKGNvbmZpZy5yb3V0ZSkge1xyXG4gICAgICAgIHRoaXMucm91dGUgPSBjb25maWcucm91dGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbmZpZy5wYWdlU2l6ZSkge1xyXG4gICAgICAgIHRoaXMucGFnZVNpemUgPSBjb25maWcucGFnZVNpemU7XHJcbiAgICAgICAgdGhpcy5wYWdpbmcuc2V0UGFnZVNpemUoY29uZmlnLnBhZ2VTaXplKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29uZmlnLmRhdGEpIHtcclxuICAgICAgICB0aGlzLmJvdW5kRGF0YSA9IGNvbmZpZy5kYXRhO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb25maWcuZGF0YVN1YmplY3QpIHtcclxuICAgICAgICB0aGlzLmRhdGFTdWJqZWN0ID0gY29uZmlnLmRhdGFTdWJqZWN0O1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb25maWcuZGF0YUNhbGwpIHtcclxuICAgICAgICB0aGlzLmV4dGVybmFsRGF0YUNhbGwgPSBjb25maWcuZGF0YUNhbGw7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbmZpZy5zZWFyY2hUcmVlT3B0aW9ucykge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVHJlZU9wdGlvbnMgPSBjb25maWcuc2VhcmNoVHJlZU9wdGlvbnM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hUcmVlT3B0aW9ucyA9IHRoaXMuZGVmYXVsdFNlYXJjaFRyZWVPcHRpb25zO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb25maWcuaXRlbVRlbXBsYXRlKSB7XHJcbiAgICAgICAgdGhpcy5pdGVtVGVtcGxhdGUgPSBjb25maWcuaXRlbVRlbXBsYXRlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5pdGVtVGVtcGxhdGUpIHtcclxuICAgICAgICB0aGlzLml0ZW1UZW1wbGF0ZSA9IHRoaXMuZGVmYXVsdFRlbXBsYXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY29uZmlnLmxvYWRpbmdTdWJqZWN0cykge1xyXG4gICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3RzID0gY29uZmlnLmxvYWRpbmdTdWJqZWN0cztcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29uZmlnLm9uQ2xpY2spIHtcclxuICAgICAgICB0aGlzLm9uQ2xpY2sgPSBjb25maWcub25DbGljaztcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29uZmlnLm9uTm9kZU1vdmVkKSB7XHJcbiAgICAgICAgdGhpcy5vbk5vZGVNb3ZlZCA9IGNvbmZpZy5vbk5vZGVNb3ZlZDtcclxuICAgICAgfVxyXG4gICAgICBpZihjb25maWcub25EYXRhVXBkYXRlKSB7XHJcbiAgICAgICAgdGhpcy5vbkRhdGFVcGRhdGUgPSBjb25maWcub25EYXRhVXBkYXRlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGNvbmZpZy5leHBhbmRUcmVlTm9kZUlEcykge1xyXG4gICAgICAgIHRoaXMuZXhwYW5kVHJlZU5vZGVJRHMgPSBjb25maWcuZXhwYW5kVHJlZU5vZGVJRHM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5leHRlcm5hbERhdGFDYWxsKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZ1N1YmplY3RzID0gW25ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpXTtcclxuICAgIH1cclxuXHJcbiAgICBzdXBlci51cGRhdGVDb25maWcoY29uZmlnKTtcclxuXHJcbiAgICB0aGlzLnNldERhdGEoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdlbmVyYXRlcyB0aGUgZGF0YSBpZiBhbiBhcnJheSwgY2FsbHMgdGhlIGRhdGEgaWYgZXh0ZXJuYWwgY2FsbC5cclxuICAgKi9cclxuICBzZXREYXRhKGRhdGE/OiBPYmplY3RbXSk6IHZvaWQge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJzZXREYXRhXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkYXRhKSB7XHJcbiAgICAgIHRoaXMuYm91bmREYXRhID0gZGF0YTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKHRoaXMuZXh0ZXJuYWxEYXRhQ2FsbCkge1xyXG4gICAgICBpZiAoIXRoaXMuYnVzeSkge1xyXG4gICAgICAgIHRoaXMuYnVzeSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdHNbMF0ubmV4dCh0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5leHRlcm5hbERhdGFDYWxsKG5ldyBIY2lHcmlkRHRvKHRoaXMuZmlsdGVycywgdGhpcy5zb3J0cywgdGhpcy5wYWdpbmcsIG5ldyBIY2lHcm91cGluZ0R0bygpKSlcclxuICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdHNbMF0ubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuYnVzeSA9IGZhbHNlO1xyXG4gICAgICAgICAgfSkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChleHRlcm5hbERhdGE6IEhjaURhdGFEdG8pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZURhdGEoZXh0ZXJuYWxEYXRhKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdlbmVyYXRlRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIHRoZSBkYXRhIGFycmF5IHRoYXQgdGhlIGludGVyZmFjZSB1c2VzIHRvIHJlbmRlciAocmVnYXJkbGVzcyBvZiBzb3VyY2UpLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtIY2lEYXRhRHRvfSBleHRlcm5hbERhdGFcclxuICAgKi9cclxuICBnZW5lcmF0ZURhdGEoZXh0ZXJuYWxEYXRhPzogSGNpRGF0YUR0byk6IHZvaWQge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJnZW5lcmF0ZURhdGFcIik7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoZXh0ZXJuYWxEYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZXh0ZXJuYWxEYXRhKSB7XHJcbiAgICAgIHRoaXMuYm91bmREYXRhID0gZXh0ZXJuYWxEYXRhLmRhdGE7XHJcbiAgICAgIHRoaXMucGFnaW5nLnNldERhdGFTaXplKGV4dGVybmFsRGF0YS5ncmlkRHRvLnBhZ2luZy5kYXRhU2l6ZSk7XHJcblxyXG4gICAgICAvLyBDcmVhdGUgcm93IGdyb3Vwcy5cclxuICAgICAgdGhpcy52aWV3RGF0YSA9IFtdO1xyXG5cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJvdW5kRGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHRoaXMudmlld0RhdGEucHVzaCh0aGlzLmJvdW5kRGF0YVtpXSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIENyZWF0ZSBhbmQgcG9wdWxhdGUgcm93IGdyb3Vwcy5cclxuICAgICAgdGhpcy5wb3B1bGF0ZUZyb21Cb3VuZERhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuZGF0YUNoYW5nZS5lbWl0KE9iamVjdC5hc3NpZ24oe3R5cGU6IFwibm9uZVwifSwgdGhpcy5sYXN0RXZlbnQsIHtwYWdpbmc6IHRoaXMucGFnaW5nLCBuVmlld0RhdGE6IHRoaXMudmlld0RhdGEubGVuZ3RofSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIHRoZSBkYXRhIGlmIHRoZSBkYXRhIGlzIGFuIGFycmF5IChub3QgZXh0ZXJuYWwpLlxyXG4gICAqL1xyXG4gIHBvcHVsYXRlRnJvbUJvdW5kRGF0YSgpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcInBvcHVsYXRlRnJvbUJvdW5kRGF0YVwiKTtcclxuICAgICAgY29uc29sZS5kZWJ1Zyh0aGlzLmJvdW5kRGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmJvdW5kRGF0YSkge1xyXG4gICAgICB0aGlzLnZpZXdEYXRhID0gW107XHJcbiAgICAgIHRoaXMucGFnaW5nLnNldFBhZ2UoMCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5ib3VuZERhdGEubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJCb3VuZCBEYXRhIGxlbmd0aCBmb3VuZCBhcyAwXCIpO1xyXG4gICAgICB0aGlzLnBhZ2luZy5zZXRQYWdlKDApO1xyXG4gICAgICB0aGlzLnBhZ2luZy5zZXROdW1QYWdlcygxKTtcclxuICAgICAgdGhpcy5wYWdpbmcuc2V0RGF0YVNpemUoMCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHByZXBhcmVkRGF0YSA9IHRoaXMuZmlsdGVyVHJlZUluY2x1ZGVDaGlsZHJlbih0aGlzLmJvdW5kRGF0YSk7XHJcblxyXG4gICAgaWYgKHRoaXMuc29ydHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnNvcnREYXRhKHByZXBhcmVkRGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wYWdpbmcuc2V0RGF0YVNpemUocHJlcGFyZWREYXRhLmxlbmd0aCk7XHJcblxyXG5cclxuICAgIGlmICh0aGlzLnBhZ2luZy5nZXRQYWdlU2l6ZSgpID4gMCkge1xyXG4gICAgICB0aGlzLnZpZXdEYXRhID0gW107XHJcbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnBhZ2luZy5nZXRQYWdlKCkgKiB0aGlzLnBhZ2luZy5nZXRQYWdlU2l6ZSgpOyBpIDwgTWF0aC5taW4ocHJlcGFyZWREYXRhLmxlbmd0aCwgKHRoaXMucGFnaW5nLmdldFBhZ2UoKSArIDEpICogdGhpcy5wYWdpbmcuZ2V0UGFnZVNpemUoKSk7IGkrKykge1xyXG4gICAgICAgIHRoaXMudmlld0RhdGEucHVzaChwcmVwYXJlZERhdGFbaV0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBhZ2luZy5zZXREYXRhU2l6ZShwcmVwYXJlZERhdGEubGVuZ3RoKTtcclxuICAgICAgdGhpcy52aWV3RGF0YSA9IHByZXBhcmVkRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIkZpbHRlcmVkIFRyZWUgRGF0YTpcIik7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcodGhpcy52aWV3RGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZWZyZXNoVHJlZSgpO1xyXG4gIH1cclxuICBcclxuICBzb3J0RGF0YShkYXRhOiBhbnkpIHtcclxuICAgIGRhdGEuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHY6IG51bWJlciA9IDA7XHJcblxyXG4gICAgICBmb3IgKGxldCBzb3J0IG9mIHRoaXMuc29ydHMpIHtcclxuICAgICAgICBpZiAoc29ydC5nZXRBc2MoKSkge1xyXG4gICAgICAgICAgaWYgKHRoaXMudXBwZXIoYVtzb3J0LmdldEZpZWxkKCldKSA8IHRoaXMudXBwZXIoYltzb3J0LmdldEZpZWxkKCldKSkge1xyXG4gICAgICAgICAgICB2ID0gLTE7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXBwZXIoYVtzb3J0LmdldEZpZWxkKCldKSA+IHRoaXMudXBwZXIoYltzb3J0LmdldEZpZWxkKCldKSkge1xyXG4gICAgICAgICAgICB2ID0gMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHRoaXMudXBwZXIoYVtzb3J0LmdldEZpZWxkKCldKSA+IHRoaXMudXBwZXIoYltzb3J0LmdldEZpZWxkKCldKSkge1xyXG4gICAgICAgICAgICB2ID0gLTE7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXBwZXIoYVtzb3J0LmdldEZpZWxkKCldKSA8IHRoaXMudXBwZXIoYltzb3J0LmdldEZpZWxkKCldKSkge1xyXG4gICAgICAgICAgICB2ID0gMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2ICE9IDApIHtcclxuICAgICAgICAgIHJldHVybiB2O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHY7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgLy9Tb3J0IGNoaWxkcmVuXHJcbiAgICBpZiAodGhpcy5zb3J0Q2hpbGRyZW4pIHtcclxuICAgICAgZm9yIChsZXQgY2hpbGQgb2YgZGF0YSkge1xyXG4gICAgICAgIGlmIChjaGlsZFt0aGlzLnNlYXJjaFRyZWVPcHRpb25zLmNoaWxkcmVuRmllbGRdKSB7XHJcbiAgICAgICAgICB0aGlzLnNvcnREYXRhKGNoaWxkW3RoaXMuc2VhcmNoVHJlZU9wdGlvbnMuY2hpbGRyZW5GaWVsZF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBwZXIodmFsdWU6IE9iamVjdCkge1xyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZnJlc2hUcmVlICgpIHtcclxuICAgIHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwudXBkYXRlKCk7XHJcbiAgICB0aGlzLnRyZWVDb21wb25lbnQuc2l6ZUNoYW5nZWQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlY3Vyc2l2ZSB0cmVlIHNlYXJjaC4gIEl0IHdpbGwgaW5jbHVkZSBjaGlsZHJlbiBub2RlcyBpZiBhIHBhcmVudCBub2RlIG1hdGNoZXMgdGhlIHNlYXJjaCBzdHJpbmcuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge2FueVtdfSBkYXRhXHJcbiAgICogQHJldHVybnMge2FueVtdfVxyXG4gICAqL1xyXG4gIGZpbHRlclRyZWVJbmNsdWRlQ2hpbGRyZW4oZGF0YTogYW55W10pOiBhbnlbXSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcImZpbHRlclRyZWVJbmNsdWRlQ2hpbGRyZW5cIik7XHJcbiAgICB9XHJcbiAgICBsZXQgZmlsdGVyZWREYXRhOiBhbnlbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgY2hpbGQgb2YgZGF0YSkge1xyXG4gICAgICBpZiAodGhpcy5pbmNsdWRlTm9kZShjaGlsZCkpICB7XHJcbiAgICAgICAgZmlsdGVyZWREYXRhLnB1c2goY2hpbGQpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChjaGlsZFt0aGlzLnNlYXJjaFRyZWVPcHRpb25zLmNoaWxkcmVuRmllbGRdKSB7XHJcbiAgICAgICAgICBsZXQgZmlsdGVyZWRDaGlsZHJlbiA9IHRoaXMuZmlsdGVyVHJlZUluY2x1ZGVDaGlsZHJlbihjaGlsZFt0aGlzLnNlYXJjaFRyZWVPcHRpb25zLmNoaWxkcmVuRmllbGRdKTtcclxuICAgICAgICAgIGlmIChmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgLy9Db3B5IHRoZSBub2RlIGFuZCByZXBsYWNlIGl0cyBjaGlsZHJlbiB3aXRoIHRoZSBmaWx0ZXJlZCBjaGlsZHJlblxyXG4gICAgICAgICAgICBsZXQgbm9kZTogYW55ID0gT2JqZWN0LmFzc2lnbih7fSwgY2hpbGQpO1xyXG4gICAgICAgICAgICBub2RlW3RoaXMuc2VhcmNoVHJlZU9wdGlvbnMuY2hpbGRyZW5GaWVsZF0gPSBmaWx0ZXJlZENoaWxkcmVuO1xyXG4gICAgICAgICAgICBmaWx0ZXJlZERhdGEucHVzaChub2RlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XHJcbiAgfVxyXG5cclxuXHJcbiAgaW5jbHVkZU5vZGUocm93OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGxldCBpbmNsdWRlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAodGhpcy5maWx0ZXJzICYmIHRoaXMuZmlsdGVycy5sZW5ndGggPiAwKSB7XHJcblxyXG4gICAgICBmb3IgKGxldCBmaWx0ZXIgb2YgdGhpcy5maWx0ZXJzKSB7XHJcbiAgICAgICAgaWYgKCFmaWx0ZXIudmFsaWQgfHwgIWZpbHRlci5nZXRWYWx1ZSgpIHx8IGZpbHRlci5nZXRWYWx1ZSgpID09PSBcIlwiKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmaWx0ZXIuZ2V0RmllbGQoKS5pbmRleE9mKFwiIG9yIFwiKSAhPT0gLTEpIHtcclxuICAgICAgICAgIGxldCBpbm5lckluY2x1ZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiBmaWx0ZXIuZ2V0RmllbGQoKS5zcGxpdChcIiBvciBcIikpIHtcclxuICAgICAgICAgICAgaWYgKHJvd1tmaWVsZF0gJiYgcm93W2ZpZWxkXS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZmlsdGVyLmdldFZhbHVlKCkudG9Mb3dlckNhc2UoKSkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgaW5uZXJJbmNsdWRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICghaW5uZXJJbmNsdWRlKSB7XHJcbiAgICAgICAgICAgIGluY2x1ZGUgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKCFyb3dbZmlsdGVyLmZpZWxkXSkge1xyXG4gICAgICAgICAgICBpbmNsdWRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChyb3dbZmlsdGVyLmZpZWxkXS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZmlsdGVyLmdldFZhbHVlKCkudG9Mb3dlckNhc2UoKSkgPT09IC0xKSB7XHJcbiAgICAgICAgICAgIGluY2x1ZGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGluY2x1ZGU7XHJcbiAgfVxyXG4gIG9uVXBkYXRlRGF0YShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vbkRhdGFVcGRhdGUpIHtcclxuICAgICAgdGhpcy5vbkRhdGFVcGRhdGUodGhpcywgdGhpcy50cmVlQ29tcG9uZW50LCBldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk1vdmVOb2RlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9uTm9kZU1vdmVkKSB7XHJcbiAgICAgIHRoaXMub25Ob2RlTW92ZWQodGhpcywgdGhpcy50cmVlQ29tcG9uZW50LCBldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk5vZGVDbGljayhldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vbkNsaWNrKSB7XHJcbiAgICAgIHRoaXMub25DbGljayh0aGlzLCB0aGlzLnRyZWVDb21wb25lbnQsIGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC5hY3RpdmVOb2Rlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMubm9kZVNlbGVjdGVkLmVtaXQoe1xyXG4gICAgICAgIGV2ZW50OiBldmVudCxcclxuICAgICAgICBpZDogdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC5hY3RpdmVOb2Rlc1swXS5kYXRhLmlkLFxyXG4gICAgICAgIG5vZGU6IHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwuYWN0aXZlTm9kZXNbMF1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHbyB0byB0aGUgZmlyc3QgcGFnZS5cclxuICAgKi9cclxuICBwdWJsaWMgZG9QYWdlRmlyc3QoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYnVzeSkge1xyXG4gICAgICB0aGlzLnBhZ2luZy5zZXRQYWdlKDApO1xyXG4gICAgICB0aGlzLnBhZ2luZ1N1YmplY3QubmV4dCh0aGlzLnBhZ2luZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHbyB0byB0aGUgcHJldmlvdXMgcGFnZS5cclxuICAgKi9cclxuICBwdWJsaWMgZG9QYWdlUHJldmlvdXMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYnVzeSkge1xyXG4gICAgICBpZiAodGhpcy5wYWdpbmcuZ2V0UGFnZSgpID4gMCkge1xyXG4gICAgICAgIHRoaXMucGFnaW5nLnNldFBhZ2UodGhpcy5wYWdpbmcuZ2V0UGFnZSgpIC0gMSk7XHJcbiAgICAgICAgdGhpcy5wYWdpbmdTdWJqZWN0Lm5leHQodGhpcy5wYWdpbmcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHbyB0byB0aGUgbmV4dCBwYWdlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBkb1BhZ2VOZXh0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmJ1c3kpIHtcclxuICAgICAgaWYgKHRoaXMucGFnaW5nLmdldFBhZ2UoKSA8IHRoaXMucGFnaW5nLmdldE51bVBhZ2VzKCkgLSAxKSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmcuc2V0UGFnZSh0aGlzLnBhZ2luZy5nZXRQYWdlKCkgKyAxKTtcclxuICAgICAgICB0aGlzLnBhZ2luZ1N1YmplY3QubmV4dCh0aGlzLnBhZ2luZyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdvIHRvIHRoZSBsYXN0IHBhZ2UuXHJcbiAgICovXHJcbiAgcHVibGljIGRvUGFnZUxhc3QoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYnVzeSkge1xyXG4gICAgICB0aGlzLnBhZ2luZy5zZXRQYWdlKHRoaXMucGFnaW5nLmdldE51bVBhZ2VzKCkgLSAxKTtcclxuICAgICAgdGhpcy5wYWdpbmdTdWJqZWN0Lm5leHQodGhpcy5wYWdpbmcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8vVE9EbyA6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgdXNlciB1c2VzIGEgY3VzdG9tIGdyb3VwVGVtcGxhdGVcclxuICAvKipcclxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgY2F1c2UgU2VhcmNoTGlzdENvbXBvbmVudCB0byBuYXZpZ2F0ZSB0byBhIHBhZ2UgYW5kIGhpZ2hsaWdodCB0aGUgZ2l2ZW4gZ3JvdXAgaXRlbSwgb3JcclxuICAgKiB0aGUgcm93IChpbi1jYXNlIG9mIG5vbi1ncm91cGVkIGxpc3QpXHJcbiAgICogVGhpc1xyXG4gICAqIEBwYXJhbSBncm91cElkIDogVGhpcyBzaG91bGQgY29udGFpbiBhIHN0cmluZyB0byB1bmlxdWVseSBpZGVudGlmeSBhIHBhcnRpY3VsYXIgZ3JvdXAtZGlzcGxheVxyXG4gICAqIEBwYXJhbSByb3dJZCA6IFRoaXMgaXMgdGhlIGFjdHVhbCByb3dJZCBmb3IgdGhlIHJvdyB0byBiZSBzZWxlY3RlZC5cclxuICAgKi9cclxuICBuYXZpZ2F0ZVRvUGFnZUNvbnRhaW5pbmdFbGVtZW50KGlkOiBhbnkpe1xyXG5cclxuICAgIGlmICh0aGlzLmJvdW5kRGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYm91bmREYXRhLmZvckVhY2goKHJvdywgaW5kZXgpID0+IHtcclxuICAgICAgaWYgKHJvd1tcImlkXCJdID09PSBpZCkge1xyXG4gICAgICAgIGlmICghdGhpcy5idXN5KSB7XHJcbiAgICAgICAgICBsZXQgcGFnZSA9IE1hdGguZmxvb3IoaW5kZXggLyB0aGlzLnBhZ2luZy5nZXRQYWdlU2l6ZSgpKTtcclxuICAgICAgICAgIGlmICh0aGlzLnBhZ2luZy5nZXROdW1QYWdlcygpIC0gMSA+PSBwYWdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5nLnNldFBhZ2UocGFnZSk7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5nU3ViamVjdC5uZXh0KHRoaXMucGFnaW5nKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
654
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF2aWdhdGlvbi9zcmMvY29tcG9uZW50cy9zZWFyY2gtdHJlZS9zZWFyY2gtdHJlZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFDdkYsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUErQixXQUFXLEVBQUUsU0FBUyxFQUN2RyxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsZUFBZSxFQUEwQixNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RCxPQUFPLEVBQTJCLFVBQVUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFhLE1BQU0sNENBQTRDLENBQUM7QUFDMUksT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRS9ELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNqRixPQUFPLEVBQUMsYUFBYSxFQUEwQixNQUFNLG1EQUFtRCxDQUFDOzs7Ozs7O0FBeURsRyxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFvQixTQUFRLFlBQVk7SUFtRm5ELFlBQVksVUFBc0IsRUFDdEIsUUFB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S0FBSzt1QkFBQyxVQUFVO2dCQUVXLGlCQUFpQjtzQkFBNUMsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBRWpCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFFRSxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsXHJcbiAgaXNEZXZNb2RlLCBPcHRpb25hbCwgT3V0cHV0LCBRdWVyeUxpc3QsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlLCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW5cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge2RlbGF5LCBmaW5hbGl6ZX0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7TmdiRHJvcGRvd259IGZyb20gXCJAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcFwiO1xyXG5cclxuaW1wb3J0IHtIY2lEYXRhRHRvLCBIY2lGaWx0ZXJEdG8sIEhjaUdyaWREdG8sIEhjaUdyb3VwaW5nRHRvLCBIY2lQYWdpbmdEdG8sIEhjaVNvcnREdG99IGZyb20gXCJAaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9oY2ktbmctZ3JpZC1kdG9cIjtcclxuaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tIFwiQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvdXRpbHNcIjtcclxuXHJcbmltcG9ydCB7TmF2Q29tcG9uZW50fSBmcm9tIFwiLi4vbmF2LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge05hdmlnYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7TmF2aWdhdGlvbkdsb2JhbFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLWdsb2JhbC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U2VhcmNoVHJlZUNvbnRyb2xsZXJDb21wb25lbnR9IGZyb20gXCIuL3NlYXJjaC10cmVlLWNvbnRyb2xsZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJlZUNvbXBvbmVudCwgSVRyZWVPcHRpb25zLCBUcmVlTW9kZWx9IGZyb20gXCJAaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9hbmd1bGFyLXRyZWUtY29tcG9uZW50XCI7XHJcbmltcG9ydCB7SVRyZWVOb2RlfSBmcm9tIFwiQGh1bnRzbWFuLWNhbmNlci1pbnN0aXR1dGUvYW5ndWxhci10cmVlLWNvbXBvbmVudC9saWIvZGVmcy9hcGlcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50VHlwZShcIlNlYXJjaFRyZWVDb21wb25lbnRcIilcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaGNpLXNlYXJjaC10cmVlXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggc2Nyb2xsYWJsZSB0cmVlQm94XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gdHJlZUJveFwiPlxyXG4gICAgICAgIDxoY2ktYnVzeSBbYnVzeVN1YmplY3RzXT1cImxvYWRpbmdTdWJqZWN0c1wiIHBhcmVudFNlbGVjdG9yPVwiLnNjcm9sbGFibGVcIiBbaWNvbl09XCJidXN5SWNvblwiPjwvaGNpLWJ1c3k+XHJcbiAgICAgICAgPHRyZWUtcm9vdCAjc2VhcmNoVHJlZUNvbnRyb2wgW25vZGVzXT1cInZpZXdEYXRhXCIgW29wdGlvbnNdPVwic2VhcmNoVHJlZU9wdGlvbnNcIiAoYWN0aXZhdGUpPVwib25Ob2RlQ2xpY2soJGV2ZW50KVwiICh1cGRhdGVEYXRhKT1cIm9uVXBkYXRlRGF0YSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgIChtb3ZlTm9kZSk9XCJvbk1vdmVOb2RlKCRldmVudClcIiBjbGFzcz1cInNlYXJjaFRyZWVcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdHJlZU5vZGVUZW1wbGF0ZSBsZXQtbm9kZSBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7bm9kZTogbm9kZX1cIj4gPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvdHJlZS1yb290PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gUGFnaW5nIGZvb3RlciAtLT5cclxuICAgIDxkaXYgKm5nSWY9XCJwYWdpbmcucGFnZVNpemUgPiAwXCIgY2xhc3M9XCJkLWZsZXggZmxleC1zaHJpbmstMCBwYWdpbmctZm9vdGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHBzLTMgcGUtM1wiIHN0eWxlPVwibWluLWhlaWdodDogMXJlbTsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWxlY3RlZFJvd0dyb3VwXCI+XHJcbiAgICAgICAgPGRpdiAoY2xpY2spPVwiZG9QYWdlRmlyc3QoKVwiIGNsYXNzPVwiZC1mbGV4IG10LTEgbWItMVwiIFtjbGFzcy5kaXNhYmxlZF09XCJwYWdpbmcucGFnZSA9PT0gMFwiPjxpIGNsYXNzPVwiZmFzIGZhLWZhc3QtYmFja3dhcmQgZmEteHNcIj48L2k+PC9kaXY+XHJcbiAgICAgICAgPGRpdiAoY2xpY2spPVwiZG9QYWdlUHJldmlvdXMoKVwiIGNsYXNzPVwiZC1mbGV4IG10LTEgbWItMVwiIFtjbGFzcy5kaXNhYmxlZF09XCJwYWdpbmcucGFnZSA9PT0gMFwiPjxpIGNsYXNzPVwiZmFzIGZhLWJhY2t3YXJkIGZhLXhzXCI+PC9pPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmb250LXNpemU6IDAuOHJlbTtcIj57e3BhZ2luZy5wYWdlICsgMX19IG9mIHt7cGFnaW5nLm51bVBhZ2VzfX08L2Rpdj5cclxuICAgICAgICA8ZGl2IChjbGljayk9XCJkb1BhZ2VOZXh0KClcIiBjbGFzcz1cImQtZmxleCBtdC0xIG1iLTFcIiBbY2xhc3MuZGlzYWJsZWRdPVwicGFnaW5nLnBhZ2UgPT09IHBhZ2luZy5udW1QYWdlcyAtIDFcIj48aSBjbGFzcz1cImZhcyBmYS1mb3J3YXJkIGZhLXhzXCI+PC9pPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgKGNsaWNrKT1cImRvUGFnZUxhc3QoKVwiIGNsYXNzPVwiZC1mbGV4IG10LTEgbWItMVwiIFtjbGFzcy5kaXNhYmxlZF09XCJwYWdpbmcucGFnZSA9PT0gcGFnaW5nLm51bVBhZ2VzIC0gMVwiPjxpIGNsYXNzPVwiZmFzIGZhLWZhc3QtZm9yd2FyZCBmYS14c1wiPjwvaT48L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wbGF0ZSBsZXQtZGF0YT1cIm5vZGUuZGF0YVwiPlxyXG4gICAgICA8c3Bhbj57eyBkYXRhLm5hbWUgfX08L3NwYW4+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgOmhvc3Qge1xyXG4gICAgICBtaW4taGVpZ2h0OiAwcHg7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgICAgZmxleC1zaHJpbms6IDE7XHJcbiAgICAgfVxyXG5cclxuICAgICAudHJlZUJveCB7XHJcbiAgICAgICBtaW4taGVpZ2h0OiAwcHg7XHJcbiAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgIGZsZXgtZ3JvdzogMTtcclxuICAgICAgIGZsZXgtc2hyaW5rOiAxO1xyXG4gICAgIH1cclxuXHJcbiAgICAgLnNlYXJjaFRyZWUge1xyXG4gICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgIH1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoVHJlZUNvbXBvbmVudCBleHRlbmRzIE5hdkNvbXBvbmVudCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzZWFyY2hUcmVlQ29udHJvbFwiLCB7c3RhdGljOiBmYWxzZX0pIHRyZWVDb21wb25lbnQ6IFRyZWVDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChcImRlZmF1bHRUZW1wbGF0ZVwiLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZX0pIGRlZmF1bHRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLy8gVGhlIGRhdGEgdGhhdCBpcyBhY3R1YWxseSByZW5kZXJlZC5cclxuICB2aWV3RGF0YTogYW55W107XHJcblxyXG4gIC8vIEEgcmVmZXJlbmNlIHRvIHRoZSBzZWFyY2ggbGlzdCBjb250cm9sbGVyIGlmIGFwcGxpY2FibGUuXHJcbiAgQElucHV0KCkgY29udHJvbGxlcjogU2VhcmNoVHJlZUNvbnRyb2xsZXJDb21wb25lbnQ7XHJcblxyXG4gIC8vIEFuIGFycmF5IG9mIGRhdGEuXHJcbiAgQElucHV0KFwiZGF0YVwiKSBib3VuZERhdGE6IE9iamVjdFtdO1xyXG5cclxuICAvLyBBIHN1YmplY3QgdGhhdCByZXByZXNlbnRzIGFuIGFycmF5IG9mIGRhdGEuXHJcbiAgQElucHV0KFwiZGF0YVN1YmplY3RcIikgZGF0YVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxPYmplY3RbXT47XHJcblxyXG4gIC8vIEEgZnVuY3Rpb24gd2hpY2ggdGFrZXMgaW4gYSBIY2lHcmlkRHRvIGFuZCByZXR1cm5zIGEgSGNpRGF0YUR0byB3aGljaCB3cmFwcyBhbiBhcnJheSBvZiBkYXRhLlxyXG4gIEBJbnB1dChcImRhdGFDYWxsXCIpIGV4dGVybmFsRGF0YUNhbGw6IChkdG86IEhjaUdyaWREdG8pID0+IE9ic2VydmFibGU8SGNpRGF0YUR0bz47XHJcblxyXG4gIEBJbnB1dChcInNlYXJjaFRyZWVPcHRpb25zXCIpIHNlYXJjaFRyZWVPcHRpb25zOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLy8gQW4gYXJyYXkgb2Ygc3ViamVjdHMgd2l0aCBib29sZWFucyB0byBjb250cm9sIHRoZSBoY2ktYnVzeSBvdmVybGF5aW5nIHRoZSBzZWFyY2gtbGlzdC5cclxuICBASW5wdXQoKSBsb2FkaW5nU3ViamVjdHM6IFN1YmplY3Q8Ym9vbGVhbj5bXTtcclxuXHJcbiAgLy8gQW4gYXJyYXkgb2YgYm9vbGVhbnMgdG8gY29udHJvbCB0aGUgaGNpLWJ1c3kgb3ZlcmxheWluZyB0aGUgc2VhcmNoLWxpc3QuXHJcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbltdID0gW2ZhbHNlXTtcclxuXHJcbiAgLy8gSWYgY2xpY2tpbmcgYSByb3cgY2hhbmdlcyBhIHJvdXRlLCB0aGlzIGZ1bmN0aW9uIHNwZWNpZmllcyB0aGUgcm91dGUgdG8gdXNlLlxyXG4gIEBJbnB1dCgpIHJvdXRlOiAocm93R3JvdXA6IGFueSwgcm93OiBhbnkpID0+IGFueVtdO1xyXG5cclxuICAvLyBUaGUgcGFnZSBzaXplIG9mIHJvdyBncm91cHMgb3Igcm93cyBpZiBubyBncm91cGluZy5cclxuICBASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyO1xyXG5cclxuICAvLyBBIHJlZmVyZW5jZSB0byBhIHBhcmVudCBkcm9wZG93biBpZiBhcHBsaWNhYmxlLlxyXG4gIEBJbnB1dCgpIGRyb3Bkb3duOiBOZ2JEcm9wZG93bjtcclxuXHJcbiAgLy9XaGljaCBpY29uIHRvIHVzZSBmb3IgdGhlIGJ1c3kgc3Bpbm5lclxyXG4gIEBJbnB1dCgpIGJ1c3lJY29uOiBzdHJpbmcgPSBcImZhcyBmYS1zeW5jIGZhLXNwaW5cIjtcclxuICAvL0VpdGhlciBhbiBhcnJheSBvZiBub2RlIGlkcyBmb3IgZXhwYW5kaW5nIG9yIGEgc3RyaW5nICdhbGwnIGZvciBleHBhbmRpbmcgd2hvbGUgdHJlZVxyXG4gIEBJbnB1dCgpIGV4cGFuZFRyZWVOb2RlSURzOiBzdHJpbmcgfCBhbnlbXTtcclxuXHJcbiAgQElucHV0KCkgb25DbGljazogKGNtcHQ6IFNlYXJjaFRyZWVDb21wb25lbnQsIHRyZWU6IFRyZWVDb21wb25lbnQsIGV2ZW50OiBhbnkpID0+IHZvaWQ7XHJcblxyXG4gIEBJbnB1dCgpIG9uTm9kZU1vdmVkOiAoY21wdDogU2VhcmNoVHJlZUNvbXBvbmVudCwgdHJlZTogVHJlZUNvbXBvbmVudCwgZXZlbnQ6IGFueSkgPT4gdm9pZDtcclxuXHJcbiAgQElucHV0KCkgb25EYXRhVXBkYXRlOiAoY21wdDogU2VhcmNoVHJlZUNvbXBvbmVudCwgdHJlZTogVHJlZUNvbXBvbmVudCwgZXZlbnQ6IGFueSkgPT4gdm9pZDtcclxuXHJcbiAgQE91dHB1dCgpIG5vZGVTZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgZGF0YUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBcclxuICBASW5wdXQoKSBzb3J0Q2hpbGRyZW46IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHJcbiAgLy8gR3JpZCBEVE8gaW5mbyBuZWVkZWQgdG8gYnVpbGQgZXh0ZXJuYWwgZGF0YSByZXF1ZXN0cy5cclxuICBzb3J0czogSGNpU29ydER0b1tdID0gW107XHJcbiAgZmlsdGVyczogSGNpRmlsdGVyRHRvW10gPSBbXTtcclxuICBwYWdpbmc6IEhjaVBhZ2luZ0R0byA9IG5ldyBIY2lQYWdpbmdEdG8oMCwgLTEpO1xyXG4gIHBhZ2luZ1N1YmplY3Q6IFN1YmplY3Q8SGNpUGFnaW5nRHRvPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SGNpUGFnaW5nRHRvPih0aGlzLnBhZ2luZyk7XHJcblxyXG4gIGRlZmF1bHRTZWFyY2hUcmVlT3B0aW9uczogSVRyZWVPcHRpb25zID0ge1xyXG4gICAgICBpZEZpZWxkOiBcImlkXCIsXHJcbiAgICAgIGRpc3BsYXlGaWVsZDogXCJuYW1lXCIsXHJcbiAgICAgIGNoaWxkcmVuRmllbGQ6IFwiY2hpbGRyZW5cIixcclxuICAgICAgdXNlVmlydHVhbFNjcm9sbDogdHJ1ZSxcclxuICAgICAgbm9kZUhlaWdodDogMjJcclxuICAgIH07XHJcblxyXG4gIC8vIEEgZHVtbXkgbnVtYmVyIHRoYXQgaW5jcmVtZW50cyBiYXNlZCBvbiBzZWxlY3Rpb24gY2hhbmdlcy4gIEZvcmNlcyByb3V0ZXJMaW5rQWN0aXZlIHRvIHJlY2hlY2suXHJcbiAgcm93UmVmcmVzaDogbnVtYmVyID0gMDtcclxuXHJcbiAgYnVzeTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBsYXN0U2Nyb2xsVG9wOiBudW1iZXIgPSAtMTtcclxuICBsYXN0U2Nyb2xsUG9zaXRpb246IG51bWJlciA9IDE7XHJcbiAgc2V0U2Nyb2xsVG9wOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNtcHQ6IFNlYXJjaFRyZWVDb21wb25lbnQgPSB0aGlzO1xyXG5cclxuICBsYXN0RXZlbnQ6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICAgICAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgICAgICAgIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgICAgICAgbmF2aWdhdGlvbkdsb2JhbFNlcnZpY2U6IE5hdmlnYXRpb25HbG9iYWxTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIG5hdmlnYXRpb25TZXJ2aWNlOiBOYXZpZ2F0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHN1cGVyKGVsZW1lbnRSZWYsIHJlbmRlcmVyLCByZXNvbHZlciwgbmF2aWdhdGlvblNlcnZpY2UsIGNoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgICBpZiAoIW5hdmlnYXRpb25TZXJ2aWNlKSB7XHJcbiAgICAgIHRoaXMubmF2aWdhdGlvblNlcnZpY2UgPSBuZXcgTmF2aWdhdGlvblNlcnZpY2UobmF2aWdhdGlvbkdsb2JhbFNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm5hdmlnYXRpb25TZXJ2aWNlLmdldElkKCkgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmlzUm9vdCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2V0Q29uZmlnKHt9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIGluaXQsIGxpc3RlbiBmb3IgbG9hZGluZyBzdWJqZWN0cyBhbmQgbGlzdGVuIGZvciBwYWdlIGNoYW5nZXMuXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAgIGlmICh0aGlzLmxvYWRpbmdTdWJqZWN0cykge1xyXG4gICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0c1swXS5zdWJzY3JpYmUoKGJ1c3k6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICB0aGlzLmJ1c3kgPSBidXN5O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBhZ2luZ1N1YmplY3Quc3Vic2NyaWJlKChwYWdpbmc6IEhjaVBhZ2luZ0R0bykgPT4ge1xyXG4gICAgICB0aGlzLnBhZ2luZyA9IHBhZ2luZztcclxuICAgICAgdGhpcy5zZXREYXRhKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCB3aGVuIGlucHV0cyBjaGFuZ2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1NpbXBsZUNoYW5nZXN9IGNoYW5nZXNcclxuICAgKi9cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuXHJcbiAgICB0aGlzLnJlZnJlc2hUcmVlKCk7XHJcbiAgfVxyXG5cclxuICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gICAgIGlmICh0aGlzLnRyZWVDb21wb25lbnQudHJlZU1vZGVsICYmIHRoaXMuZXhwYW5kVHJlZU5vZGVJRHMgKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgbGV0IHRyZWVNb2RlbDogVHJlZU1vZGVsID0gdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbDtcclxuICAgICAgIGlmKEFycmF5LmlzQXJyYXkodGhpcy5leHBhbmRUcmVlTm9kZUlEcykpIHtcclxuICAgICAgICAgZm9yKGxldCBub2RlSWQgb2YgdGhpcy5leHBhbmRUcmVlTm9kZUlEcykge1xyXG4gICAgICAgICAgIGxldCBub2RlOiBJVHJlZU5vZGUgPSB0cmVlTW9kZWwuZ2V0Tm9kZUJ5SWQobm9kZUlkKTtcclxuICAgICAgICAgICBpZihub2RlKSB7XHJcbiAgICAgICAgICAgICBub2RlLmV4cGFuZCgpO1xyXG4gICAgICAgICAgIH1cclxuICAgICAgICAgfVxyXG4gICAgICAgfSBlbHNlIGlmKHR5cGVvZiB0aGlzLmV4cGFuZFRyZWVOb2RlSURzID09PSBcInN0cmluZ1wiXHJcbiAgICAgICAgICYmIHRoaXMuZXhwYW5kVHJlZU5vZGVJRHMgPT09IFwiYWxsXCIpIHtcclxuICAgICAgICAgdHJlZU1vZGVsLmV4cGFuZEFsbCgpO1xyXG4gICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgfVxyXG4gICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBTZXQgZGF0YSBvbmx5IHdoZW4gdGhlIGNvbXBvbmVudCBoYXMgZnVsbHkgaW5pdGlhbGl6ZWQgYW5kIGlzIHJlbmRlcmVkLlxyXG4gICAqL1xyXG4gIGNoZWNrSW5pdGlhbGl6ZWQoKSB7XHJcbiAgICBpZiAodGhpcy5hZnRlclZpZXdJbml0KSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUNvbmZpZyh0aGlzLmNvbmZpZyk7XHJcbiAgICAgIHRoaXMucG9zdEluaXQoKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmRhdGFTdWJqZWN0KSB7XHJcbiAgICAgICAgLy9NYXkgYXMgd2VsbCBtYWtlIGl0IHNwaW4gd2hpbGUgcHJvY2Vzc2luZywgYXMgd2VsbCBhcyBsb2FkaW5nLiBPdGhlcndpc2UgaXQgbG9va3MgZnJvemVuXHJcbiAgICAgICAgaWYgKHRoaXMubG9hZGluZ1N1YmplY3RzKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0c1swXS5uZXh0KHRydWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5kYXRhU3ViamVjdFxyXG4gICAgICAgICAgLnBpcGUoZGVsYXkoMCkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiBPYmplY3RbXSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmJvdW5kRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RGF0YSgpO1xyXG5cclxuICAgICAgICAgICAgLy9Ob3cgZG9uZSBsb2FkaW5nXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmxvYWRpbmdTdWJqZWN0cykge1xyXG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3RzWzBdLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXREYXRhKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBvc3RJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJTZWFyY2hUcmVlQ29tcG9uZW50LnBvc3RJbml0OiBcIiArIHRoaXMuaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmdldFBhcmVudCgpKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbGxlciA9IDxTZWFyY2hUcmVlQ29udHJvbGxlckNvbXBvbmVudD50aGlzLmdldFBhcmVudCgpLmdldENvbXBvbmVudEJ5VHlwZShcIlNlYXJjaFRyZWVDb250cm9sbGVyQ29tcG9uZW50XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbnRyb2xsZXIpIHtcclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhcIlNlYXJjaFRyZWVDb21wb25lbnQ6IHVzaW5nIGNvbnRyb2xsZXJcIik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuY29udHJvbGxlci5hZGRTZWFyY2hMaXN0KHRoaXMudGl0bGUpO1xyXG5cclxuICAgICAgdGhpcy5jb250cm9sbGVyLmZpbHRlcnNTdWJqZWN0LnN1YnNjcmliZSgoZmlsdGVyczogSGNpRmlsdGVyRHRvW10pID0+IHtcclxuICAgICAgICB0aGlzLmZpbHRlcnMgPSBmaWx0ZXJzO1xyXG4gICAgICAgIHRoaXMuc2V0RGF0YSgpO1xyXG4gICAgICAgIHRoaXMucmVzZXRQYWdpbmcoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmNvbnRyb2xsZXIuc29ydHNTdWJqZWN0LnN1YnNjcmliZSgoc29ydHM6IEhjaVNvcnREdG9bXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc29ydHMgPSBzb3J0cztcclxuICAgICAgICB0aGlzLnNldERhdGEoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLmNvbnRyb2xsZXIuc2VsZWN0ZWRTZWFyY2hMaXN0U3ViamVjdC5zdWJzY3JpYmUoKHRpdGxlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgIGNvbnNvbGUuZGVidWcoXCJzZWxlY3RlZFNlYXJjaExpc3RTdWJqZWN0LnN1YnNjcmliZTogXCIgKyB0aGlzLnRpdGxlICsgXCIsIFwiICsgdGl0bGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHZpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy50aXRsZSAmJiB0aXRsZSAmJiB0aGlzLnRpdGxlICE9PSB0aXRsZSkge1xyXG4gICAgICAgICAgdmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHZpc2libGUpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiZGlzcGxheVwiLCBcImZsZXhcIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiZGlzcGxheVwiLCBcIm5vbmVcIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJlZnJlc2hUcmVlKCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5yZWZyZXNoVHJlZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBmdW5jdGlvbiB3b3VsZCByZXNldCBwYWdpbmcgYW5kIGZpcmVzXHJcbiAgICovXHJcbiAgcmVzZXRQYWdpbmcoKXtcclxuICAgIHRoaXMucGFnaW5nLnNldFBhZ2UoMCk7XHJcbiAgICB0aGlzLnBhZ2luZ1N1YmplY3QubmV4dCh0aGlzLnBhZ2luZyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBjb25maWcgd2l0aCBvcHRpb25zIGFuZCByZS1mZXRjaGVzIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY29uZmlnXHJcbiAgICovXHJcbiAgdXBkYXRlQ29uZmlnKGNvbmZpZykge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJ1cGRhdGVDb25maWdcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICB0aGlzLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY29uZmlnLCBjb25maWcpO1xyXG5cclxuICAgICAgaWYgKGNvbmZpZy5yb3V0ZSkge1xyXG4gICAgICAgIHRoaXMucm91dGUgPSBjb25maWcucm91dGU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbmZpZy5wYWdlU2l6ZSkge1xyXG4gICAgICAgIHRoaXMucGFnZVNpemUgPSBjb25maWcucGFnZVNpemU7XHJcbiAgICAgICAgdGhpcy5wYWdpbmcuc2V0UGFnZVNpemUoY29uZmlnLnBhZ2VTaXplKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29uZmlnLmRhdGEpIHtcclxuICAgICAgICB0aGlzLmJvdW5kRGF0YSA9IGNvbmZpZy5kYXRhO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb25maWcuZGF0YVN1YmplY3QpIHtcclxuICAgICAgICB0aGlzLmRhdGFTdWJqZWN0ID0gY29uZmlnLmRhdGFTdWJqZWN0O1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb25maWcuZGF0YUNhbGwpIHtcclxuICAgICAgICB0aGlzLmV4dGVybmFsRGF0YUNhbGwgPSBjb25maWcuZGF0YUNhbGw7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbmZpZy5zZWFyY2hUcmVlT3B0aW9ucykge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVHJlZU9wdGlvbnMgPSBjb25maWcuc2VhcmNoVHJlZU9wdGlvbnM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hUcmVlT3B0aW9ucyA9IHRoaXMuZGVmYXVsdFNlYXJjaFRyZWVPcHRpb25zO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb25maWcuaXRlbVRlbXBsYXRlKSB7XHJcbiAgICAgICAgdGhpcy5pdGVtVGVtcGxhdGUgPSBjb25maWcuaXRlbVRlbXBsYXRlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5pdGVtVGVtcGxhdGUpIHtcclxuICAgICAgICB0aGlzLml0ZW1UZW1wbGF0ZSA9IHRoaXMuZGVmYXVsdFRlbXBsYXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY29uZmlnLmxvYWRpbmdTdWJqZWN0cykge1xyXG4gICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3RzID0gY29uZmlnLmxvYWRpbmdTdWJqZWN0cztcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29uZmlnLm9uQ2xpY2spIHtcclxuICAgICAgICB0aGlzLm9uQ2xpY2sgPSBjb25maWcub25DbGljaztcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29uZmlnLm9uTm9kZU1vdmVkKSB7XHJcbiAgICAgICAgdGhpcy5vbk5vZGVNb3ZlZCA9IGNvbmZpZy5vbk5vZGVNb3ZlZDtcclxuICAgICAgfVxyXG4gICAgICBpZihjb25maWcub25EYXRhVXBkYXRlKSB7XHJcbiAgICAgICAgdGhpcy5vbkRhdGFVcGRhdGUgPSBjb25maWcub25EYXRhVXBkYXRlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGNvbmZpZy5leHBhbmRUcmVlTm9kZUlEcykge1xyXG4gICAgICAgIHRoaXMuZXhwYW5kVHJlZU5vZGVJRHMgPSBjb25maWcuZXhwYW5kVHJlZU5vZGVJRHM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5leHRlcm5hbERhdGFDYWxsKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZ1N1YmplY3RzID0gW25ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpXTtcclxuICAgIH1cclxuXHJcbiAgICBzdXBlci51cGRhdGVDb25maWcoY29uZmlnKTtcclxuXHJcbiAgICB0aGlzLnNldERhdGEoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdlbmVyYXRlcyB0aGUgZGF0YSBpZiBhbiBhcnJheSwgY2FsbHMgdGhlIGRhdGEgaWYgZXh0ZXJuYWwgY2FsbC5cclxuICAgKi9cclxuICBzZXREYXRhKGRhdGE/OiBPYmplY3RbXSk6IHZvaWQge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJzZXREYXRhXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkYXRhKSB7XHJcbiAgICAgIHRoaXMuYm91bmREYXRhID0gZGF0YTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKHRoaXMuZXh0ZXJuYWxEYXRhQ2FsbCkge1xyXG4gICAgICBpZiAoIXRoaXMuYnVzeSkge1xyXG4gICAgICAgIHRoaXMuYnVzeSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdHNbMF0ubmV4dCh0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5leHRlcm5hbERhdGFDYWxsKG5ldyBIY2lHcmlkRHRvKHRoaXMuZmlsdGVycywgdGhpcy5zb3J0cywgdGhpcy5wYWdpbmcsIG5ldyBIY2lHcm91cGluZ0R0bygpKSlcclxuICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdHNbMF0ubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuYnVzeSA9IGZhbHNlO1xyXG4gICAgICAgICAgfSkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChleHRlcm5hbERhdGE6IEhjaURhdGFEdG8pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZURhdGEoZXh0ZXJuYWxEYXRhKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdlbmVyYXRlRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIHRoZSBkYXRhIGFycmF5IHRoYXQgdGhlIGludGVyZmFjZSB1c2VzIHRvIHJlbmRlciAocmVnYXJkbGVzcyBvZiBzb3VyY2UpLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtIY2lEYXRhRHRvfSBleHRlcm5hbERhdGFcclxuICAgKi9cclxuICBnZW5lcmF0ZURhdGEoZXh0ZXJuYWxEYXRhPzogSGNpRGF0YUR0byk6IHZvaWQge1xyXG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJnZW5lcmF0ZURhdGFcIik7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoZXh0ZXJuYWxEYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZXh0ZXJuYWxEYXRhKSB7XHJcbiAgICAgIHRoaXMuYm91bmREYXRhID0gZXh0ZXJuYWxEYXRhLmRhdGE7XHJcbiAgICAgIHRoaXMucGFnaW5nLnNldERhdGFTaXplKGV4dGVybmFsRGF0YS5ncmlkRHRvLnBhZ2luZy5kYXRhU2l6ZSk7XHJcblxyXG4gICAgICAvLyBDcmVhdGUgcm93IGdyb3Vwcy5cclxuICAgICAgdGhpcy52aWV3RGF0YSA9IFtdO1xyXG5cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJvdW5kRGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHRoaXMudmlld0RhdGEucHVzaCh0aGlzLmJvdW5kRGF0YVtpXSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIENyZWF0ZSBhbmQgcG9wdWxhdGUgcm93IGdyb3Vwcy5cclxuICAgICAgdGhpcy5wb3B1bGF0ZUZyb21Cb3VuZERhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuZGF0YUNoYW5nZS5lbWl0KE9iamVjdC5hc3NpZ24oe3R5cGU6IFwibm9uZVwifSwgdGhpcy5sYXN0RXZlbnQsIHtwYWdpbmc6IHRoaXMucGFnaW5nLCBuVmlld0RhdGE6IHRoaXMudmlld0RhdGEubGVuZ3RofSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIHRoZSBkYXRhIGlmIHRoZSBkYXRhIGlzIGFuIGFycmF5IChub3QgZXh0ZXJuYWwpLlxyXG4gICAqL1xyXG4gIHBvcHVsYXRlRnJvbUJvdW5kRGF0YSgpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcInBvcHVsYXRlRnJvbUJvdW5kRGF0YVwiKTtcclxuICAgICAgY29uc29sZS5kZWJ1Zyh0aGlzLmJvdW5kRGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmJvdW5kRGF0YSkge1xyXG4gICAgICB0aGlzLnZpZXdEYXRhID0gW107XHJcbiAgICAgIHRoaXMucGFnaW5nLnNldFBhZ2UoMCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5ib3VuZERhdGEubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcoXCJCb3VuZCBEYXRhIGxlbmd0aCBmb3VuZCBhcyAwXCIpO1xyXG4gICAgICB0aGlzLnBhZ2luZy5zZXRQYWdlKDApO1xyXG4gICAgICB0aGlzLnBhZ2luZy5zZXROdW1QYWdlcygxKTtcclxuICAgICAgdGhpcy5wYWdpbmcuc2V0RGF0YVNpemUoMCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHByZXBhcmVkRGF0YSA9IHRoaXMuZmlsdGVyVHJlZUluY2x1ZGVDaGlsZHJlbih0aGlzLmJvdW5kRGF0YSk7XHJcblxyXG4gICAgaWYgKHRoaXMuc29ydHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnNvcnREYXRhKHByZXBhcmVkRGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wYWdpbmcuc2V0RGF0YVNpemUocHJlcGFyZWREYXRhLmxlbmd0aCk7XHJcblxyXG5cclxuICAgIGlmICh0aGlzLnBhZ2luZy5nZXRQYWdlU2l6ZSgpID4gMCkge1xyXG4gICAgICB0aGlzLnZpZXdEYXRhID0gW107XHJcbiAgICAgIGZvciAodmFyIGkgPSB0aGlzLnBhZ2luZy5nZXRQYWdlKCkgKiB0aGlzLnBhZ2luZy5nZXRQYWdlU2l6ZSgpOyBpIDwgTWF0aC5taW4ocHJlcGFyZWREYXRhLmxlbmd0aCwgKHRoaXMucGFnaW5nLmdldFBhZ2UoKSArIDEpICogdGhpcy5wYWdpbmcuZ2V0UGFnZVNpemUoKSk7IGkrKykge1xyXG4gICAgICAgIHRoaXMudmlld0RhdGEucHVzaChwcmVwYXJlZERhdGFbaV0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBhZ2luZy5zZXREYXRhU2l6ZShwcmVwYXJlZERhdGEubGVuZ3RoKTtcclxuICAgICAgdGhpcy52aWV3RGF0YSA9IHByZXBhcmVkRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcIkZpbHRlcmVkIFRyZWUgRGF0YTpcIik7XHJcbiAgICAgIGNvbnNvbGUuZGVidWcodGhpcy52aWV3RGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZWZyZXNoVHJlZSgpO1xyXG4gIH1cclxuICBcclxuICBzb3J0RGF0YShkYXRhOiBhbnkpIHtcclxuICAgIGRhdGEuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHY6IG51bWJlciA9IDA7XHJcblxyXG4gICAgICBmb3IgKGxldCBzb3J0IG9mIHRoaXMuc29ydHMpIHtcclxuICAgICAgICBpZiAoc29ydC5nZXRBc2MoKSkge1xyXG4gICAgICAgICAgaWYgKHRoaXMudXBwZXIoYVtzb3J0LmdldEZpZWxkKCldKSA8IHRoaXMudXBwZXIoYltzb3J0LmdldEZpZWxkKCldKSkge1xyXG4gICAgICAgICAgICB2ID0gLTE7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXBwZXIoYVtzb3J0LmdldEZpZWxkKCldKSA+IHRoaXMudXBwZXIoYltzb3J0LmdldEZpZWxkKCldKSkge1xyXG4gICAgICAgICAgICB2ID0gMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHRoaXMudXBwZXIoYVtzb3J0LmdldEZpZWxkKCldKSA+IHRoaXMudXBwZXIoYltzb3J0LmdldEZpZWxkKCldKSkge1xyXG4gICAgICAgICAgICB2ID0gLTE7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXBwZXIoYVtzb3J0LmdldEZpZWxkKCldKSA8IHRoaXMudXBwZXIoYltzb3J0LmdldEZpZWxkKCldKSkge1xyXG4gICAgICAgICAgICB2ID0gMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2ICE9IDApIHtcclxuICAgICAgICAgIHJldHVybiB2O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHY7XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgLy9Tb3J0IGNoaWxkcmVuXHJcbiAgICBpZiAodGhpcy5zb3J0Q2hpbGRyZW4pIHtcclxuICAgICAgZm9yIChsZXQgY2hpbGQgb2YgZGF0YSkge1xyXG4gICAgICAgIGlmIChjaGlsZFt0aGlzLnNlYXJjaFRyZWVPcHRpb25zLmNoaWxkcmVuRmllbGRdKSB7XHJcbiAgICAgICAgICB0aGlzLnNvcnREYXRhKGNoaWxkW3RoaXMuc2VhcmNoVHJlZU9wdGlvbnMuY2hpbGRyZW5GaWVsZF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBwZXIodmFsdWU6IE9iamVjdCkge1xyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZnJlc2hUcmVlICgpIHtcclxuICAgIHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwudXBkYXRlKCk7XHJcbiAgICB0aGlzLnRyZWVDb21wb25lbnQuc2l6ZUNoYW5nZWQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlY3Vyc2l2ZSB0cmVlIHNlYXJjaC4gIEl0IHdpbGwgaW5jbHVkZSBjaGlsZHJlbiBub2RlcyBpZiBhIHBhcmVudCBub2RlIG1hdGNoZXMgdGhlIHNlYXJjaCBzdHJpbmcuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge2FueVtdfSBkYXRhXHJcbiAgICogQHJldHVybnMge2FueVtdfVxyXG4gICAqL1xyXG4gIGZpbHRlclRyZWVJbmNsdWRlQ2hpbGRyZW4oZGF0YTogYW55W10pOiBhbnlbXSB7XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgY29uc29sZS5kZWJ1ZyhcImZpbHRlclRyZWVJbmNsdWRlQ2hpbGRyZW5cIik7XHJcbiAgICB9XHJcbiAgICBsZXQgZmlsdGVyZWREYXRhOiBhbnlbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgY2hpbGQgb2YgZGF0YSkge1xyXG4gICAgICBpZiAodGhpcy5pbmNsdWRlTm9kZShjaGlsZCkpICB7XHJcbiAgICAgICAgZmlsdGVyZWREYXRhLnB1c2goY2hpbGQpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmIChjaGlsZFt0aGlzLnNlYXJjaFRyZWVPcHRpb25zLmNoaWxkcmVuRmllbGRdKSB7XHJcbiAgICAgICAgICBsZXQgZmlsdGVyZWRDaGlsZHJlbiA9IHRoaXMuZmlsdGVyVHJlZUluY2x1ZGVDaGlsZHJlbihjaGlsZFt0aGlzLnNlYXJjaFRyZWVPcHRpb25zLmNoaWxkcmVuRmllbGRdKTtcclxuICAgICAgICAgIGlmIChmaWx0ZXJlZENoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgLy9Db3B5IHRoZSBub2RlIGFuZCByZXBsYWNlIGl0cyBjaGlsZHJlbiB3aXRoIHRoZSBmaWx0ZXJlZCBjaGlsZHJlblxyXG4gICAgICAgICAgICBsZXQgbm9kZTogYW55ID0gT2JqZWN0LmFzc2lnbih7fSwgY2hpbGQpO1xyXG4gICAgICAgICAgICBub2RlW3RoaXMuc2VhcmNoVHJlZU9wdGlvbnMuY2hpbGRyZW5GaWVsZF0gPSBmaWx0ZXJlZENoaWxkcmVuO1xyXG4gICAgICAgICAgICBmaWx0ZXJlZERhdGEucHVzaChub2RlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XHJcbiAgfVxyXG5cclxuXHJcbiAgaW5jbHVkZU5vZGUocm93OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGxldCBpbmNsdWRlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAodGhpcy5maWx0ZXJzICYmIHRoaXMuZmlsdGVycy5sZW5ndGggPiAwKSB7XHJcblxyXG4gICAgICBmb3IgKGxldCBmaWx0ZXIgb2YgdGhpcy5maWx0ZXJzKSB7XHJcbiAgICAgICAgaWYgKCFmaWx0ZXIudmFsaWQgfHwgIWZpbHRlci5nZXRWYWx1ZSgpIHx8IGZpbHRlci5nZXRWYWx1ZSgpID09PSBcIlwiKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmaWx0ZXIuZ2V0RmllbGQoKS5pbmRleE9mKFwiIG9yIFwiKSAhPT0gLTEpIHtcclxuICAgICAgICAgIGxldCBpbm5lckluY2x1ZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiBmaWx0ZXIuZ2V0RmllbGQoKS5zcGxpdChcIiBvciBcIikpIHtcclxuICAgICAgICAgICAgaWYgKHJvd1tmaWVsZF0gJiYgcm93W2ZpZWxkXS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZmlsdGVyLmdldFZhbHVlKCkudG9Mb3dlckNhc2UoKSkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgaW5uZXJJbmNsdWRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICghaW5uZXJJbmNsdWRlKSB7XHJcbiAgICAgICAgICAgIGluY2x1ZGUgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKCFyb3dbZmlsdGVyLmZpZWxkXSkge1xyXG4gICAgICAgICAgICBpbmNsdWRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChyb3dbZmlsdGVyLmZpZWxkXS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZmlsdGVyLmdldFZhbHVlKCkudG9Mb3dlckNhc2UoKSkgPT09IC0xKSB7XHJcbiAgICAgICAgICAgIGluY2x1ZGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGluY2x1ZGU7XHJcbiAgfVxyXG4gIG9uVXBkYXRlRGF0YShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vbkRhdGFVcGRhdGUpIHtcclxuICAgICAgdGhpcy5vbkRhdGFVcGRhdGUodGhpcywgdGhpcy50cmVlQ29tcG9uZW50LCBldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk1vdmVOb2RlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9uTm9kZU1vdmVkKSB7XHJcbiAgICAgIHRoaXMub25Ob2RlTW92ZWQodGhpcywgdGhpcy50cmVlQ29tcG9uZW50LCBldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk5vZGVDbGljayhldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vbkNsaWNrKSB7XHJcbiAgICAgIHRoaXMub25DbGljayh0aGlzLCB0aGlzLnRyZWVDb21wb25lbnQsIGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC5hY3RpdmVOb2Rlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMubm9kZVNlbGVjdGVkLmVtaXQoe1xyXG4gICAgICAgIGV2ZW50OiBldmVudCxcclxuICAgICAgICBpZDogdGhpcy50cmVlQ29tcG9uZW50LnRyZWVNb2RlbC5hY3RpdmVOb2Rlc1swXS5kYXRhLmlkLFxyXG4gICAgICAgIG5vZGU6IHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwuYWN0aXZlTm9kZXNbMF1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHbyB0byB0aGUgZmlyc3QgcGFnZS5cclxuICAgKi9cclxuICBwdWJsaWMgZG9QYWdlRmlyc3QoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYnVzeSkge1xyXG4gICAgICB0aGlzLnBhZ2luZy5zZXRQYWdlKDApO1xyXG4gICAgICB0aGlzLnBhZ2luZ1N1YmplY3QubmV4dCh0aGlzLnBhZ2luZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHbyB0byB0aGUgcHJldmlvdXMgcGFnZS5cclxuICAgKi9cclxuICBwdWJsaWMgZG9QYWdlUHJldmlvdXMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYnVzeSkge1xyXG4gICAgICBpZiAodGhpcy5wYWdpbmcuZ2V0UGFnZSgpID4gMCkge1xyXG4gICAgICAgIHRoaXMucGFnaW5nLnNldFBhZ2UodGhpcy5wYWdpbmcuZ2V0UGFnZSgpIC0gMSk7XHJcbiAgICAgICAgdGhpcy5wYWdpbmdTdWJqZWN0Lm5leHQodGhpcy5wYWdpbmcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHbyB0byB0aGUgbmV4dCBwYWdlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBkb1BhZ2VOZXh0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmJ1c3kpIHtcclxuICAgICAgaWYgKHRoaXMucGFnaW5nLmdldFBhZ2UoKSA8IHRoaXMucGFnaW5nLmdldE51bVBhZ2VzKCkgLSAxKSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmcuc2V0UGFnZSh0aGlzLnBhZ2luZy5nZXRQYWdlKCkgKyAxKTtcclxuICAgICAgICB0aGlzLnBhZ2luZ1N1YmplY3QubmV4dCh0aGlzLnBhZ2luZyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdvIHRvIHRoZSBsYXN0IHBhZ2UuXHJcbiAgICovXHJcbiAgcHVibGljIGRvUGFnZUxhc3QoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYnVzeSkge1xyXG4gICAgICB0aGlzLnBhZ2luZy5zZXRQYWdlKHRoaXMucGFnaW5nLmdldE51bVBhZ2VzKCkgLSAxKTtcclxuICAgICAgdGhpcy5wYWdpbmdTdWJqZWN0Lm5leHQodGhpcy5wYWdpbmcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8vVE9EbyA6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgdXNlciB1c2VzIGEgY3VzdG9tIGdyb3VwVGVtcGxhdGVcclxuICAvKipcclxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgY2F1c2UgU2VhcmNoTGlzdENvbXBvbmVudCB0byBuYXZpZ2F0ZSB0byBhIHBhZ2UgYW5kIGhpZ2hsaWdodCB0aGUgZ2l2ZW4gZ3JvdXAgaXRlbSwgb3JcclxuICAgKiB0aGUgcm93IChpbi1jYXNlIG9mIG5vbi1ncm91cGVkIGxpc3QpXHJcbiAgICogVGhpc1xyXG4gICAqIEBwYXJhbSBncm91cElkIDogVGhpcyBzaG91bGQgY29udGFpbiBhIHN0cmluZyB0byB1bmlxdWVseSBpZGVudGlmeSBhIHBhcnRpY3VsYXIgZ3JvdXAtZGlzcGxheVxyXG4gICAqIEBwYXJhbSByb3dJZCA6IFRoaXMgaXMgdGhlIGFjdHVhbCByb3dJZCBmb3IgdGhlIHJvdyB0byBiZSBzZWxlY3RlZC5cclxuICAgKi9cclxuICBuYXZpZ2F0ZVRvUGFnZUNvbnRhaW5pbmdFbGVtZW50KGlkOiBhbnkpe1xyXG5cclxuICAgIGlmICh0aGlzLmJvdW5kRGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYm91bmREYXRhLmZvckVhY2goKHJvdywgaW5kZXgpID0+IHtcclxuICAgICAgaWYgKHJvd1tcImlkXCJdID09PSBpZCkge1xyXG4gICAgICAgIGlmICghdGhpcy5idXN5KSB7XHJcbiAgICAgICAgICBsZXQgcGFnZSA9IE1hdGguZmxvb3IoaW5kZXggLyB0aGlzLnBhZ2luZy5nZXRQYWdlU2l6ZSgpKTtcclxuICAgICAgICAgIGlmICh0aGlzLnBhZ2luZy5nZXROdW1QYWdlcygpIC0gMSA+PSBwYWdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5nLnNldFBhZ2UocGFnZSk7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5nU3ViamVjdC5uZXh0KHRoaXMucGFnaW5nKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -79,13 +79,13 @@ export class AppFooterComponent extends NavComponent {
79
79
  NavigationService
80
80
  ], viewQueries: [{ propertyName: "leftContainerSetter", first: true, predicate: ["leftContainer"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "middleContainerSetter", first: true, predicate: ["middleContainer"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "rightContainerSetter", first: true, predicate: ["rightContainer"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: `
81
81
  <div class="hci-app-footer {{ footerClasses ? ' ' + footerClasses : '' }}">
82
- <div id="footer-left-container" class="ml-3">
82
+ <div id="footer-left-container" class="ms-3">
83
83
  <ng-container #leftContainer></ng-container>
84
84
  </div>
85
- <div id="footer-middle-container" class="ml-auto mr-auto">
85
+ <div id="footer-middle-container" class="ms-auto me-auto">
86
86
  <ng-container #middleContainer></ng-container>
87
87
  </div>
88
- <div id="footer-right-container" class="mr-3">
88
+ <div id="footer-right-container" class="me-3">
89
89
  <ng-container #rightContainer></ng-container>
90
90
  </div>
91
91
  </div>
@@ -97,13 +97,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
97
97
  selector: "hci-app-footer",
98
98
  template: `
99
99
  <div class="hci-app-footer {{ footerClasses ? ' ' + footerClasses : '' }}">
100
- <div id="footer-left-container" class="ml-3">
100
+ <div id="footer-left-container" class="ms-3">
101
101
  <ng-container #leftContainer></ng-container>
102
102
  </div>
103
- <div id="footer-middle-container" class="ml-auto mr-auto">
103
+ <div id="footer-middle-container" class="ms-auto me-auto">
104
104
  <ng-container #middleContainer></ng-container>
105
105
  </div>
106
- <div id="footer-right-container" class="mr-3">
106
+ <div id="footer-right-container" class="me-3">
107
107
  <ng-container #rightContainer></ng-container>
108
108
  </div>
109
109
  </div>
@@ -127,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
127
127
  type: ViewChild,
128
128
  args: ["rightContainer", { read: ViewContainerRef, static: true }]
129
129
  }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWZvb3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXZpZ2F0aW9uL3NyYy9pbXBsL2FwcC1mb290ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFDekYsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQzs7OztBQUc5RTs7Ozs7OztHQU9HO0FBb0JILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxZQUFZO0lBWWxELFlBQVksVUFBc0IsRUFDdEIsUUFBbUIsRUFDbkIsUUFBa0MsRUFDbEMsdUJBQWdELEVBQ2hELGlCQUFvQyxFQUNwQyxpQkFBb0M7UUFDOUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFoQnhELGNBQVMsR0FBVyxlQUFlLENBQUM7UUFFakQsa0JBQWEsR0FBVyxrQkFBa0IsQ0FBQztRQWdCbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUF3RSxtQkFBbUIsQ0FBQyxhQUErQjtRQUN6SCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEs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O3NCQUE1RixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYgSHVudHNtYW4gQ2FuY2VyIEluc3RpdHV0ZSBhdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoLCBDb25maWRlbnRpYWwgYW5kIFByb3ByaWV0YXJ5XHJcbiAqL1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIFJlbmRlcmVyMiwgVmlld0NoaWxkLFxyXG4gIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtOYXZpZ2F0aW9uU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge05hdkNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvbmF2LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge05hdmlnYXRpb25HbG9iYWxTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvbmF2aWdhdGlvbi1nbG9iYWwuc2VydmljZVwiO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBBIGNvbXBvbmVudCB0byBwcm92aWRlIGFuIGFwcGxpY2F0aW9uIHdpZGUgZml4ZWQgZm9vdGVyIGV4cG9zaW5nIGFwcGxpY2F0aW9uIG5hbWUsIHZlcnNpb24sIGEgbmF2aWdhdGlvbiBlbGVtZW50IHRvIGFcclxuICogZmVlZGJhY2sgZm9ybSBhbmQgYSBuYXZpZ2F0aW9uIGVsZW1lbnQgdG8gY29udGFjdCBpbmZvcm1hdGlvbi5cclxuICogPHA+XHJcbiAqIFRoaXMgY29tcG9uZW50IGV4cGVjdHMgYm9vdHN0cmFwIDQueCBzdHlsaW5nIHRvIGJlIGFwcGxpZWQuXHJcbiAqXHJcbiAqIEBzaW5jZSAxLjAuMFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaGNpLWFwcC1mb290ZXJcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cImhjaS1hcHAtZm9vdGVyIHt7IGZvb3RlckNsYXNzZXMgPyAnICcgKyBmb290ZXJDbGFzc2VzIDogJycgfX1cIj5cclxuICAgICAgPGRpdiBpZD1cImZvb3Rlci1sZWZ0LWNvbnRhaW5lclwiIGNsYXNzPVwibWwtM1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgI2xlZnRDb250YWluZXI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGlkPVwiZm9vdGVyLW1pZGRsZS1jb250YWluZXJcIiBjbGFzcz1cIm1sLWF1dG8gbXItYXV0b1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgI21pZGRsZUNvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgaWQ9XCJmb290ZXItcmlnaHQtY29udGFpbmVyXCIgY2xhc3M9XCJtci0zXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAjcmlnaHRDb250YWluZXI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIE5hdmlnYXRpb25TZXJ2aWNlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwRm9vdGVyQ29tcG9uZW50IGV4dGVuZHMgTmF2Q29tcG9uZW50IHtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3NcIikgY2xhc3NMaXN0OiBTdHJpbmcgPSBcImZsZXgtc2hyaW5rLTBcIjtcclxuXHJcbiAgQElucHV0KCkgZm9vdGVyQ2xhc3Nlczogc3RyaW5nID0gXCJkLW5vbmUgZC1tZC1mbGV4XCI7XHJcblxyXG4gIG5hdmlnYXRpb25HbG9iYWxTZXJ2aWNlOiBOYXZpZ2F0aW9uR2xvYmFsU2VydmljZTtcclxuXHJcbiAgbGVmdENvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICBtaWRkbGVDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgcmlnaHRDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgICAgICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICAgICAgICByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgICAgICAgIG5hdmlnYXRpb25HbG9iYWxTZXJ2aWNlOiBOYXZpZ2F0aW9uR2xvYmFsU2VydmljZSxcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uU2VydmljZTogTmF2aWdhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCByZW5kZXJlciwgcmVzb2x2ZXIsIG5hdmlnYXRpb25TZXJ2aWNlLCBjaGFuZ2VEZXRlY3RvclJlZik7XHJcblxyXG4gICAgdGhpcy5pc1Jvb3QgPSB0cnVlO1xyXG4gICAgdGhpcy5uYXZpZ2F0aW9uR2xvYmFsU2VydmljZSA9IG5hdmlnYXRpb25HbG9iYWxTZXJ2aWNlO1xyXG4gICAgdGhpcy5jb250YWluZXJTZXQuYWRkKFwiY29udGFpbmVyXCIpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZChcImxlZnRDb250YWluZXJcIiwge3JlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZX0pIHNldCBsZWZ0Q29udGFpbmVyU2V0dGVyKGxlZnRDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYpIHtcclxuICAgIHRoaXMubGVmdENvbnRhaW5lciA9IGxlZnRDb250YWluZXI7XHJcbiAgICB0aGlzLmNoZWNrSW5pdGlhbGl6ZWQoKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJtaWRkbGVDb250YWluZXJcIiwge3JlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZX0pIHNldCBtaWRkbGVDb250YWluZXJTZXR0ZXIobWlkZGxlQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICB0aGlzLm1pZGRsZUNvbnRhaW5lciA9IG1pZGRsZUNvbnRhaW5lcjtcclxuICAgIHRoaXMuY2hlY2tJbml0aWFsaXplZCgpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZChcInJpZ2h0Q29udGFpbmVyXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWV9KSBzZXQgcmlnaHRDb250YWluZXJTZXR0ZXIocmlnaHRDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYpIHtcclxuICAgIHRoaXMucmlnaHRDb250YWluZXIgPSByaWdodENvbnRhaW5lcjtcclxuICAgIHRoaXMuY2hlY2tJbml0aWFsaXplZCgpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tJbml0aWFsaXplZCgpIHtcclxuICAgIGlmICh0aGlzLmFmdGVyVmlld0luaXQgJiYgdGhpcy5sZWZ0Q29udGFpbmVyICYmIHRoaXMubWlkZGxlQ29udGFpbmVyICYmIHRoaXMucmlnaHRDb250YWluZXIpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlnKHRoaXMuY29uZmlnKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhcigpIHtcclxuICAgIHN1cGVyLmNsZWFyKCk7XHJcblxyXG4gICAgaWYgKHRoaXMubGVmdENvbnRhaW5lcikge1xyXG4gICAgICB0aGlzLmxlZnRDb250YWluZXIuY2xlYXIoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1pZGRsZUNvbnRhaW5lcikge1xyXG4gICAgICB0aGlzLm1pZGRsZUNvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmlnaHRDb250YWluZXIpIHtcclxuICAgICAgdGhpcy5yaWdodENvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGFpbmVyKGNvbnRhaW5lck5hbWU/OiBzdHJpbmcpOiBWaWV3Q29udGFpbmVyUmVmIHtcclxuICAgIGlmIChjb250YWluZXJOYW1lID09PSB1bmRlZmluZWQgfHwgY29udGFpbmVyTmFtZSA9PT0gXCJkZWZhdWx0XCIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubWlkZGxlQ29udGFpbmVyO1xyXG4gICAgfSBlbHNlIGlmIChjb250YWluZXJOYW1lID09PSBcImxlZnRDb250YWluZXJcIikge1xyXG4gICAgICByZXR1cm4gdGhpcy5sZWZ0Q29udGFpbmVyO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmlnaHRDb250YWluZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDb25maWcoY29uZmlnKSB7XHJcbiAgICBpZiAoY29uZmlnLm5hdmJhckNsYXNzZXMpIHtcclxuICAgICAgdGhpcy5mb290ZXJDbGFzc2VzID0gY29uZmlnLmZvb3RlckNsYXNzZXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3VwZXIudXBkYXRlQ29uZmlnKGNvbmZpZyk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWZvb3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXZpZ2F0aW9uL3NyYy9pbXBsL2FwcC1mb290ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFDekYsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQzs7OztBQUc5RTs7Ozs7OztHQU9HO0FBb0JILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxZQUFZO0lBWWxELFlBQVksVUFBc0IsRUFDdEIsUUFBbUIsRUFDbkIsUUFBa0MsRUFDbEMsdUJBQWdELEVBQ2hELGlCQUFvQyxFQUNwQyxpQkFBb0M7UUFDOUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFoQnhELGNBQVMsR0FBVyxlQUFlLENBQUM7UUFFakQsa0JBQWEsR0FBVyxrQkFBa0IsQ0FBQztRQWdCbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUF3RSxtQkFBbUIsQ0FBQyxhQUErQjtRQUN6SCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEs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O3NCQUE1RixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYgSHVudHNtYW4gQ2FuY2VyIEluc3RpdHV0ZSBhdCB0aGUgVW5pdmVyc2l0eSBvZiBVdGFoLCBDb25maWRlbnRpYWwgYW5kIFByb3ByaWV0YXJ5XHJcbiAqL1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIFJlbmRlcmVyMiwgVmlld0NoaWxkLFxyXG4gIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtOYXZpZ2F0aW9uU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge05hdkNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvbmF2LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge05hdmlnYXRpb25HbG9iYWxTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvbmF2aWdhdGlvbi1nbG9iYWwuc2VydmljZVwiO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBBIGNvbXBvbmVudCB0byBwcm92aWRlIGFuIGFwcGxpY2F0aW9uIHdpZGUgZml4ZWQgZm9vdGVyIGV4cG9zaW5nIGFwcGxpY2F0aW9uIG5hbWUsIHZlcnNpb24sIGEgbmF2aWdhdGlvbiBlbGVtZW50IHRvIGFcclxuICogZmVlZGJhY2sgZm9ybSBhbmQgYSBuYXZpZ2F0aW9uIGVsZW1lbnQgdG8gY29udGFjdCBpbmZvcm1hdGlvbi5cclxuICogPHA+XHJcbiAqIFRoaXMgY29tcG9uZW50IGV4cGVjdHMgYm9vdHN0cmFwIDQueCBzdHlsaW5nIHRvIGJlIGFwcGxpZWQuXHJcbiAqXHJcbiAqIEBzaW5jZSAxLjAuMFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaGNpLWFwcC1mb290ZXJcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cImhjaS1hcHAtZm9vdGVyIHt7IGZvb3RlckNsYXNzZXMgPyAnICcgKyBmb290ZXJDbGFzc2VzIDogJycgfX1cIj5cclxuICAgICAgPGRpdiBpZD1cImZvb3Rlci1sZWZ0LWNvbnRhaW5lclwiIGNsYXNzPVwibXMtM1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgI2xlZnRDb250YWluZXI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGlkPVwiZm9vdGVyLW1pZGRsZS1jb250YWluZXJcIiBjbGFzcz1cIm1zLWF1dG8gbWUtYXV0b1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgI21pZGRsZUNvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgaWQ9XCJmb290ZXItcmlnaHQtY29udGFpbmVyXCIgY2xhc3M9XCJtZS0zXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAjcmlnaHRDb250YWluZXI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIE5hdmlnYXRpb25TZXJ2aWNlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwRm9vdGVyQ29tcG9uZW50IGV4dGVuZHMgTmF2Q29tcG9uZW50IHtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3NcIikgY2xhc3NMaXN0OiBTdHJpbmcgPSBcImZsZXgtc2hyaW5rLTBcIjtcclxuXHJcbiAgQElucHV0KCkgZm9vdGVyQ2xhc3Nlczogc3RyaW5nID0gXCJkLW5vbmUgZC1tZC1mbGV4XCI7XHJcblxyXG4gIG5hdmlnYXRpb25HbG9iYWxTZXJ2aWNlOiBOYXZpZ2F0aW9uR2xvYmFsU2VydmljZTtcclxuXHJcbiAgbGVmdENvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICBtaWRkbGVDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgcmlnaHRDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgICAgICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICAgICAgICByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgICAgICAgIG5hdmlnYXRpb25HbG9iYWxTZXJ2aWNlOiBOYXZpZ2F0aW9uR2xvYmFsU2VydmljZSxcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uU2VydmljZTogTmF2aWdhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCByZW5kZXJlciwgcmVzb2x2ZXIsIG5hdmlnYXRpb25TZXJ2aWNlLCBjaGFuZ2VEZXRlY3RvclJlZik7XHJcblxyXG4gICAgdGhpcy5pc1Jvb3QgPSB0cnVlO1xyXG4gICAgdGhpcy5uYXZpZ2F0aW9uR2xvYmFsU2VydmljZSA9IG5hdmlnYXRpb25HbG9iYWxTZXJ2aWNlO1xyXG4gICAgdGhpcy5jb250YWluZXJTZXQuYWRkKFwiY29udGFpbmVyXCIpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZChcImxlZnRDb250YWluZXJcIiwge3JlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZX0pIHNldCBsZWZ0Q29udGFpbmVyU2V0dGVyKGxlZnRDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYpIHtcclxuICAgIHRoaXMubGVmdENvbnRhaW5lciA9IGxlZnRDb250YWluZXI7XHJcbiAgICB0aGlzLmNoZWNrSW5pdGlhbGl6ZWQoKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJtaWRkbGVDb250YWluZXJcIiwge3JlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZX0pIHNldCBtaWRkbGVDb250YWluZXJTZXR0ZXIobWlkZGxlQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICB0aGlzLm1pZGRsZUNvbnRhaW5lciA9IG1pZGRsZUNvbnRhaW5lcjtcclxuICAgIHRoaXMuY2hlY2tJbml0aWFsaXplZCgpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZChcInJpZ2h0Q29udGFpbmVyXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWV9KSBzZXQgcmlnaHRDb250YWluZXJTZXR0ZXIocmlnaHRDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYpIHtcclxuICAgIHRoaXMucmlnaHRDb250YWluZXIgPSByaWdodENvbnRhaW5lcjtcclxuICAgIHRoaXMuY2hlY2tJbml0aWFsaXplZCgpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tJbml0aWFsaXplZCgpIHtcclxuICAgIGlmICh0aGlzLmFmdGVyVmlld0luaXQgJiYgdGhpcy5sZWZ0Q29udGFpbmVyICYmIHRoaXMubWlkZGxlQ29udGFpbmVyICYmIHRoaXMucmlnaHRDb250YWluZXIpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlnKHRoaXMuY29uZmlnKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhcigpIHtcclxuICAgIHN1cGVyLmNsZWFyKCk7XHJcblxyXG4gICAgaWYgKHRoaXMubGVmdENvbnRhaW5lcikge1xyXG4gICAgICB0aGlzLmxlZnRDb250YWluZXIuY2xlYXIoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1pZGRsZUNvbnRhaW5lcikge1xyXG4gICAgICB0aGlzLm1pZGRsZUNvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmlnaHRDb250YWluZXIpIHtcclxuICAgICAgdGhpcy5yaWdodENvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGFpbmVyKGNvbnRhaW5lck5hbWU/OiBzdHJpbmcpOiBWaWV3Q29udGFpbmVyUmVmIHtcclxuICAgIGlmIChjb250YWluZXJOYW1lID09PSB1bmRlZmluZWQgfHwgY29udGFpbmVyTmFtZSA9PT0gXCJkZWZhdWx0XCIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubWlkZGxlQ29udGFpbmVyO1xyXG4gICAgfSBlbHNlIGlmIChjb250YWluZXJOYW1lID09PSBcImxlZnRDb250YWluZXJcIikge1xyXG4gICAgICByZXR1cm4gdGhpcy5sZWZ0Q29udGFpbmVyO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmlnaHRDb250YWluZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDb25maWcoY29uZmlnKSB7XHJcbiAgICBpZiAoY29uZmlnLm5hdmJhckNsYXNzZXMpIHtcclxuICAgICAgdGhpcy5mb290ZXJDbGFzc2VzID0gY29uZmlnLmZvb3RlckNsYXNzZXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3VwZXIudXBkYXRlQ29uZmlnKGNvbmZpZyk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -81,7 +81,7 @@ export class AppHeaderComponent extends NavComponent {
81
81
  <nav [id]="id + '-nav'"
82
82
  class="navbar navbar-expand-md navbar-dark {{ navbarClasses ? ' ' + navbarClasses : '' }}"
83
83
  [style.display]="hidden ? 'none' : 'flex'">
84
- <div id="leftHeaderContainer" class="mr-auto left-header">
84
+ <div id="leftHeaderContainer" class="me-auto left-header">
85
85
  <ng-container #leftContainer></ng-container>
86
86
  </div>
87
87
  <div id="rightHeaderContainer" class="d-none d-md-flex right-header">
@@ -98,7 +98,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
98
98
  <nav [id]="id + '-nav'"
99
99
  class="navbar navbar-expand-md navbar-dark {{ navbarClasses ? ' ' + navbarClasses : '' }}"
100
100
  [style.display]="hidden ? 'none' : 'flex'">
101
- <div id="leftHeaderContainer" class="mr-auto left-header">
101
+ <div id="leftHeaderContainer" class="me-auto left-header">
102
102
  <ng-container #leftContainer></ng-container>
103
103
  </div>
104
104
  <div id="rightHeaderContainer" class="d-none d-md-flex right-header">
@@ -127,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
127
127
  type: ViewChild,
128
128
  args: ["rightContainer", { read: ViewContainerRef, static: true }]
129
129
  }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXZpZ2F0aW9uL3NyYy9pbXBsL2FwcC1oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFDNUcsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDOzs7O0FBRTlFOzs7OztHQUtHO0FBbUJILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxZQUFZO0lBWWxELFlBQVksVUFBc0IsRUFDdEIsUUFBbUIsRUFDbkIsUUFBa0MsRUFDbEMsdUJBQWdELEVBQ2hELGlCQUFvQyxFQUNwQyxpQkFBb0M7UUFDOUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFoQnhDLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFcEQsV0FBTSxHQUFZLEtBQUssQ0FBQztRQWlCL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFeEMsSUFBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsU0FB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Z0IsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSAyMDE2IEh1bnRzbWFuIENhbmNlciBJbnN0aXR1dGUgYXQgdGhlIFVuaXZlcnNpdHkgb2YgVXRhaCwgQ29uZmlkZW50aWFsIGFuZCBQcm9wcmlldGFyeVxyXG4gKi9cclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge05hdmlnYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7TmF2Q29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50cy9uYXYuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TmF2aWdhdGlvbkdsb2JhbFNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLWdsb2JhbC5zZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogQSBjb21wb25lbnQgaW50ZW5kZWQgdG8gcHJvdmlkZSBhIGNvbW1vbiwgY29uZmlndXJhYmxlIGFwcGxpY2F0aW9uIGhlYWRlci4gVGhpcyBjb21wb25lbnQgZXhwZWN0cyB0byBiZSB1c2VkIHdpdGggYVxyXG4gKiBWaWV3Q2hpbGQgcGF0dGVybi4gU2VlIHRoZSBkZW1vIGFwcGxpY2F0aW9uIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZm9yIGV4YW1wbGVzIGFuZCBkZXRhaWxzLlxyXG4gKlxyXG4gKiBAc2luY2UgMS4wLjBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImhjaS1hcHAtaGVhZGVyXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxuYXYgW2lkXT1cImlkICsgJy1uYXYnXCJcclxuICAgICAgICAgY2xhc3M9XCJuYXZiYXIgbmF2YmFyLWV4cGFuZC1tZCBuYXZiYXItZGFyayB7eyBuYXZiYXJDbGFzc2VzID8gJyAnICsgbmF2YmFyQ2xhc3NlcyA6ICcnIH19XCJcclxuICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiaGlkZGVuID8gJ25vbmUnIDogJ2ZsZXgnXCI+XHJcbiAgICAgIDxkaXYgaWQ9XCJsZWZ0SGVhZGVyQ29udGFpbmVyXCIgY2xhc3M9XCJtci1hdXRvIGxlZnQtaGVhZGVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAjbGVmdENvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgaWQ9XCJyaWdodEhlYWRlckNvbnRhaW5lclwiIGNsYXNzPVwiZC1ub25lIGQtbWQtZmxleCByaWdodC1oZWFkZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICNyaWdodENvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25hdj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgTmF2aWdhdGlvblNlcnZpY2VcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBOYXZDb21wb25lbnQge1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKSBASW5wdXQoXCJjbGFzc1wiKSBjbGFzc0xpc3Q6IFN0cmluZyA9IFwiXCI7XHJcblxyXG4gIEBJbnB1dCgpIGhpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG5hdmJhckNsYXNzZXM6IHN0cmluZztcclxuXHJcbiAgbmF2aWdhdGlvbkdsb2JhbFNlcnZpY2U6IE5hdmlnYXRpb25HbG9iYWxTZXJ2aWNlO1xyXG5cclxuICBsZWZ0Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gIHJpZ2h0Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgICAgICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgICAgICAgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uR2xvYmFsU2VydmljZTogTmF2aWdhdGlvbkdsb2JhbFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgbmF2aWdhdGlvblNlcnZpY2U6IE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZiwgcmVuZGVyZXIsIHJlc29sdmVyLCBuYXZpZ2F0aW9uU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG5cclxuXHJcbiAgICB0aGlzLmlzUm9vdCA9IHRydWU7XHJcbiAgICB0aGlzLm5hdmlnYXRpb25HbG9iYWxTZXJ2aWNlID0gbmF2aWdhdGlvbkdsb2JhbFNlcnZpY2U7XHJcbiAgICB0aGlzLmNvbnRhaW5lclNldC5hZGQoXCJyaWdodENvbnRhaW5lclwiKTtcclxuXHJcbiAgICBpZih0aGlzLmNsYXNzTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuY2xhc3NMaXN0ICs9IFwiIGZsZXgtc2hyaW5rLTBcIjtcclxuICAgIH1lbHNlIHtcclxuICAgICAgdGhpcy5jbGFzc0xpc3QgPSBcImZsZXgtc2hyaW5rLTBcIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJsZWZ0Q29udGFpbmVyXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWV9KSBzZXQgbGVmdENvbnRhaW5lclNldHRlcihsZWZ0Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICB0aGlzLmxlZnRDb250YWluZXIgPSBsZWZ0Q29udGFpbmVyO1xyXG4gICAgdGhpcy5jaGVja0luaXRpYWxpemVkKCk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKFwicmlnaHRDb250YWluZXJcIiwge3JlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZX0pIHNldCByaWdodENvbnRhaW5lclNldHRlcihyaWdodENvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gICAgdGhpcy5yaWdodENvbnRhaW5lciA9IHJpZ2h0Q29udGFpbmVyO1xyXG4gICAgdGhpcy5jaGVja0luaXRpYWxpemVkKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja0luaXRpYWxpemVkKCkge1xyXG4gICAgaWYgKHRoaXMuYWZ0ZXJWaWV3SW5pdCAmJiB0aGlzLmxlZnRDb250YWluZXIgJiYgdGhpcy5yaWdodENvbnRhaW5lcikge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy51cGRhdGVDb25maWcodGhpcy5jb25maWcpO1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyKCkge1xyXG4gICAgc3VwZXIuY2xlYXIoKTtcclxuXHJcbiAgICBpZiAodGhpcy5sZWZ0Q29udGFpbmVyKSB7XHJcbiAgICAgIHRoaXMubGVmdENvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmlnaHRDb250YWluZXIpIHtcclxuICAgICAgdGhpcy5yaWdodENvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGFpbmVyKGNvbnRhaW5lck5hbWU/OiBzdHJpbmcpOiBWaWV3Q29udGFpbmVyUmVmIHtcclxuICAgIGlmIChjb250YWluZXJOYW1lID09PSB1bmRlZmluZWQgfHwgY29udGFpbmVyTmFtZSA9PT0gXCJkZWZhdWx0XCIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGVmdENvbnRhaW5lcjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJpZ2h0Q29udGFpbmVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q29uZmlnKGNvbmZpZzogYW55KSB7XHJcbiAgICBzdXBlci5zZXRDb25maWcoY29uZmlnKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNvbmZpZyhjb25maWc6IGFueSkge1xyXG4gICAgaWYgKGNvbmZpZy5uYXZiYXJDbGFzc2VzKSB7XHJcbiAgICAgIHRoaXMubmF2YmFyQ2xhc3NlcyA9IGNvbmZpZy5uYXZiYXJDbGFzc2VzO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbmZpZy5oaWRkZW4gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmhpZGRlbiA9IGNvbmZpZy5oaWRkZW47XHJcbiAgICB9XHJcblxyXG4gICAgc3VwZXIudXBkYXRlQ29uZmlnKGNvbmZpZyk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXZpZ2F0aW9uL3NyYy9pbXBsL2FwcC1oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFDNUcsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDOzs7O0FBRTlFOzs7OztHQUtHO0FBbUJILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxZQUFZO0lBWWxELFlBQVksVUFBc0IsRUFDdEIsUUFBbUIsRUFDbkIsUUFBa0MsRUFDbEMsdUJBQWdELEVBQ2hELGlCQUFvQyxFQUNwQyxpQkFBb0M7UUFDOUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFoQnhDLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFcEQsV0FBTSxHQUFZLEtBQUssQ0FBQztRQWlCL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFeEMsSUFBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxJQUFJLGdCQUFnQixDQUFDO1FBQ3JDLENBQUM7YUFBSyxDQUFDO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUF3RSxtQkFBbUIsQ0FBQyxhQUErQjtRQUN6SCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBeUUsb0JBQW9CLENBQUMsY0FBZ0M7UUFDNUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFZLENBQUMsYUFBc0I7UUFDakMsSUFBSSxhQUFhLEtBQUssU0FBUyxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMvRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDNUIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsTUFBVztRQUNuQixLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBVztRQUN0QixJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDNUMsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDOUIsQ0FBQztRQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs4R0FwRlUsa0JBQWtCO2tHQUFsQixrQkFBa0IsK0xBSmxCO1lBQ1QsaUJBQWlCO1NBQ2xCLDJIQWtDa0MsZ0JBQWdCLCtIQUtmLGdCQUFnQixrRUFyRDFDOzs7Ozs7Ozs7OztHQVdUOzsyRkFLVSxrQkFBa0I7a0JBbEI5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7R0FXVDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsaUJBQWlCO3FCQUNsQjtpQkFDRjtvUEFHdUMsU0FBUztzQkFBOUMsV0FBVzt1QkFBQyxPQUFPOztzQkFBRyxLQUFLO3VCQUFDLE9BQU87Z0JBRTNCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQTJCa0UsbUJBQW1CO3NCQUExRixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUtPLG9CQUFvQjtzQkFBNUYsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSAyMDE2IEh1bnRzbWFuIENhbmNlciBJbnN0aXR1dGUgYXQgdGhlIFVuaXZlcnNpdHkgb2YgVXRhaCwgQ29uZmlkZW50aWFsIGFuZCBQcm9wcmlldGFyeVxyXG4gKi9cclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge05hdmlnYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7TmF2Q29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50cy9uYXYuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TmF2aWdhdGlvbkdsb2JhbFNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLWdsb2JhbC5zZXJ2aWNlXCI7XHJcblxyXG4vKipcclxuICogQSBjb21wb25lbnQgaW50ZW5kZWQgdG8gcHJvdmlkZSBhIGNvbW1vbiwgY29uZmlndXJhYmxlIGFwcGxpY2F0aW9uIGhlYWRlci4gVGhpcyBjb21wb25lbnQgZXhwZWN0cyB0byBiZSB1c2VkIHdpdGggYVxyXG4gKiBWaWV3Q2hpbGQgcGF0dGVybi4gU2VlIHRoZSBkZW1vIGFwcGxpY2F0aW9uIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZm9yIGV4YW1wbGVzIGFuZCBkZXRhaWxzLlxyXG4gKlxyXG4gKiBAc2luY2UgMS4wLjBcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImhjaS1hcHAtaGVhZGVyXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxuYXYgW2lkXT1cImlkICsgJy1uYXYnXCJcclxuICAgICAgICAgY2xhc3M9XCJuYXZiYXIgbmF2YmFyLWV4cGFuZC1tZCBuYXZiYXItZGFyayB7eyBuYXZiYXJDbGFzc2VzID8gJyAnICsgbmF2YmFyQ2xhc3NlcyA6ICcnIH19XCJcclxuICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiaGlkZGVuID8gJ25vbmUnIDogJ2ZsZXgnXCI+XHJcbiAgICAgIDxkaXYgaWQ9XCJsZWZ0SGVhZGVyQ29udGFpbmVyXCIgY2xhc3M9XCJtZS1hdXRvIGxlZnQtaGVhZGVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAjbGVmdENvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgaWQ9XCJyaWdodEhlYWRlckNvbnRhaW5lclwiIGNsYXNzPVwiZC1ub25lIGQtbWQtZmxleCByaWdodC1oZWFkZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICNyaWdodENvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25hdj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgTmF2aWdhdGlvblNlcnZpY2VcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBOYXZDb21wb25lbnQge1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKSBASW5wdXQoXCJjbGFzc1wiKSBjbGFzc0xpc3Q6IFN0cmluZyA9IFwiXCI7XHJcblxyXG4gIEBJbnB1dCgpIGhpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG5hdmJhckNsYXNzZXM6IHN0cmluZztcclxuXHJcbiAgbmF2aWdhdGlvbkdsb2JhbFNlcnZpY2U6IE5hdmlnYXRpb25HbG9iYWxTZXJ2aWNlO1xyXG5cclxuICBsZWZ0Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gIHJpZ2h0Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgICAgICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgICAgICAgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgICAgICAgICAgICBuYXZpZ2F0aW9uR2xvYmFsU2VydmljZTogTmF2aWdhdGlvbkdsb2JhbFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgbmF2aWdhdGlvblNlcnZpY2U6IE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZiwgcmVuZGVyZXIsIHJlc29sdmVyLCBuYXZpZ2F0aW9uU2VydmljZSwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG5cclxuXHJcbiAgICB0aGlzLmlzUm9vdCA9IHRydWU7XHJcbiAgICB0aGlzLm5hdmlnYXRpb25HbG9iYWxTZXJ2aWNlID0gbmF2aWdhdGlvbkdsb2JhbFNlcnZpY2U7XHJcbiAgICB0aGlzLmNvbnRhaW5lclNldC5hZGQoXCJyaWdodENvbnRhaW5lclwiKTtcclxuXHJcbiAgICBpZih0aGlzLmNsYXNzTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuY2xhc3NMaXN0ICs9IFwiIGZsZXgtc2hyaW5rLTBcIjtcclxuICAgIH1lbHNlIHtcclxuICAgICAgdGhpcy5jbGFzc0xpc3QgPSBcImZsZXgtc2hyaW5rLTBcIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJsZWZ0Q29udGFpbmVyXCIsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWV9KSBzZXQgbGVmdENvbnRhaW5lclNldHRlcihsZWZ0Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICB0aGlzLmxlZnRDb250YWluZXIgPSBsZWZ0Q29udGFpbmVyO1xyXG4gICAgdGhpcy5jaGVja0luaXRpYWxpemVkKCk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKFwicmlnaHRDb250YWluZXJcIiwge3JlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZX0pIHNldCByaWdodENvbnRhaW5lclNldHRlcihyaWdodENvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gICAgdGhpcy5yaWdodENvbnRhaW5lciA9IHJpZ2h0Q29udGFpbmVyO1xyXG4gICAgdGhpcy5jaGVja0luaXRpYWxpemVkKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja0luaXRpYWxpemVkKCkge1xyXG4gICAgaWYgKHRoaXMuYWZ0ZXJWaWV3SW5pdCAmJiB0aGlzLmxlZnRDb250YWluZXIgJiYgdGhpcy5yaWdodENvbnRhaW5lcikge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy51cGRhdGVDb25maWcodGhpcy5jb25maWcpO1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyKCkge1xyXG4gICAgc3VwZXIuY2xlYXIoKTtcclxuXHJcbiAgICBpZiAodGhpcy5sZWZ0Q29udGFpbmVyKSB7XHJcbiAgICAgIHRoaXMubGVmdENvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmlnaHRDb250YWluZXIpIHtcclxuICAgICAgdGhpcy5yaWdodENvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGFpbmVyKGNvbnRhaW5lck5hbWU/OiBzdHJpbmcpOiBWaWV3Q29udGFpbmVyUmVmIHtcclxuICAgIGlmIChjb250YWluZXJOYW1lID09PSB1bmRlZmluZWQgfHwgY29udGFpbmVyTmFtZSA9PT0gXCJkZWZhdWx0XCIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGVmdENvbnRhaW5lcjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJpZ2h0Q29udGFpbmVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q29uZmlnKGNvbmZpZzogYW55KSB7XHJcbiAgICBzdXBlci5zZXRDb25maWcoY29uZmlnKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNvbmZpZyhjb25maWc6IGFueSkge1xyXG4gICAgaWYgKGNvbmZpZy5uYXZiYXJDbGFzc2VzKSB7XHJcbiAgICAgIHRoaXMubmF2YmFyQ2xhc3NlcyA9IGNvbmZpZy5uYXZiYXJDbGFzc2VzO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbmZpZy5oaWRkZW4gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmhpZGRlbiA9IGNvbmZpZy5oaWRkZW47XHJcbiAgICB9XHJcblxyXG4gICAgc3VwZXIudXBkYXRlQ29uZmlnKGNvbmZpZyk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=