ngx-wapp-components 1.27.0 → 1.27.1-alpha.1

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.
@@ -40,10 +40,16 @@ export class WTableLazyComponent {
40
40
  this.onSelectedElementsChange = new EventEmitter();
41
41
  this.onSecondaryCheckboxChange = new EventEmitter();
42
42
  }
43
+ set wappTableLazyLoadingObject(value) {
44
+ this._wappTableLazyLoadingObject = value;
45
+ }
46
+ get wappTableLazyLoadingObject() {
47
+ return this._wappTableLazyLoadingObject;
48
+ }
43
49
  ngOnInit() {
44
50
  this.loading = true;
45
- if (this.wappTableLazyLoadingObject.hasSelectAllCheckbox == undefined) {
46
- this.wappTableLazyLoadingObject.hasSelectAllCheckbox = true;
51
+ if (this._wappTableLazyLoadingObject.hasSelectAllCheckbox == undefined) {
52
+ this._wappTableLazyLoadingObject.hasSelectAllCheckbox = true;
47
53
  }
48
54
  }
49
55
  loadElements(event) {
@@ -111,9 +117,9 @@ export class WTableLazyComponent {
111
117
  confirmDeleteSelection(event) {
112
118
  this.confirmationService.confirm({
113
119
  target: event.target,
114
- message: this.wappTableLazyLoadingObject.confirmMultipleDeleteLabel,
120
+ message: this._wappTableLazyLoadingObject.confirmMultipleDeleteLabel,
115
121
  icon: "pi pi-exclamation-triangle",
116
- acceptLabel: this.wappTableLazyLoadingObject.confirmDeleteBtnLabel,
122
+ acceptLabel: this._wappTableLazyLoadingObject.confirmDeleteBtnLabel,
117
123
  accept: () => {
118
124
  this.deleteSelectedElements();
119
125
  }
@@ -126,9 +132,9 @@ export class WTableLazyComponent {
126
132
  confirmDelete(event, element) {
127
133
  this.confirmationService.confirm({
128
134
  target: event.target,
129
- message: this.wappTableLazyLoadingObject.confirmSingleDeleteLabel,
135
+ message: this._wappTableLazyLoadingObject.confirmSingleDeleteLabel,
130
136
  icon: "pi pi-exclamation-triangle",
131
- acceptLabel: this.wappTableLazyLoadingObject.confirmDeleteBtnLabel,
137
+ acceptLabel: this._wappTableLazyLoadingObject.confirmDeleteBtnLabel,
132
138
  accept: () => {
133
139
  this.deleteSingleElement(element);
134
140
  }
@@ -143,9 +149,9 @@ export class WTableLazyComponent {
143
149
  confirmCopy(event, element) {
144
150
  this.confirmationService.confirm({
145
151
  target: event.target,
146
- message: this.wappTableLazyLoadingObject.confirmCopyLabel,
152
+ message: this._wappTableLazyLoadingObject.confirmCopyLabel,
147
153
  icon: "pi pi-exclamation-triangle",
148
- acceptLabel: this.wappTableLazyLoadingObject.confirmCopyBtnLabel,
154
+ acceptLabel: this._wappTableLazyLoadingObject.confirmCopyBtnLabel,
149
155
  accept: () => {
150
156
  this.copyElement(element);
151
157
  }
@@ -162,7 +168,7 @@ export class WTableLazyComponent {
162
168
  this.onAllElementSelect.emit(true);
163
169
  this.loading = true;
164
170
  setTimeout(() => {
165
- this.selectedElements = this.wappTableLazyLoadingObject.disableCheckbox ? this.getSelectableElements(this.allElements) : this.allElements;
171
+ this.selectedElements = this._wappTableLazyLoadingObject.disableCheckbox ? this.getSelectableElements(this.allElements) : this.allElements;
166
172
  this.selectAll = true;
167
173
  this.loading = false;
168
174
  }, 1000);
@@ -174,21 +180,21 @@ export class WTableLazyComponent {
174
180
  this.onSelectedElementsChange.emit(this.selectedElements);
175
181
  }
176
182
  getSelectableElements(allElements) {
177
- return allElements.filter((element) => !this.readProperty(element, this.wappTableLazyLoadingObject.disableCheckbox));
183
+ return allElements.filter((element) => !this.readProperty(element, this._wappTableLazyLoadingObject.disableCheckbox));
178
184
  }
179
185
  getBooleanColumnClass(index, valueProperty) {
180
186
  const booleanIconClasses = [];
181
187
  if (valueProperty == true) {
182
- booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].trueIcon ?? '');
183
- booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].trueIconColor ?? '');
188
+ booleanIconClasses.push(this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].trueIcon ?? '');
189
+ booleanIconClasses.push(this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].trueIconColor ?? '');
184
190
  }
185
191
  else if (valueProperty == false) {
186
- booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].falseIcon ?? '');
187
- booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].falseIconColor) ?? '';
192
+ booleanIconClasses.push(this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].falseIcon ?? '');
193
+ booleanIconClasses.push(this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].falseIconColor) ?? '';
188
194
  }
189
195
  else if (valueProperty == null) {
190
- booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].nullIcon ?? '');
191
- booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].nullIconColor ?? '');
196
+ booleanIconClasses.push(this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].nullIcon ?? '');
197
+ booleanIconClasses.push(this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].nullIconColor ?? '');
192
198
  }
193
199
  return booleanIconClasses;
194
200
  }
@@ -234,19 +240,19 @@ export class WTableLazyComponent {
234
240
  return 'text-left';
235
241
  }
236
242
  calculateColspan() {
237
- let colspan = this.wappTableLazyLoadingObject.headers.length;
238
- this.wappTableLazyLoadingObject.hasCheckbox ?
243
+ let colspan = this._wappTableLazyLoadingObject.headers.length;
244
+ this._wappTableLazyLoadingObject.hasCheckbox ?
239
245
  colspan += 1 : '';
240
246
  this.hasActionButtons() ?
241
247
  colspan += 1 : '';
242
248
  return colspan;
243
249
  }
244
250
  hasActionButtons() {
245
- return this.wappTableLazyLoadingObject.hasCopyButton ||
246
- this.wappTableLazyLoadingObject.hasEditButton ||
247
- this.wappTableLazyLoadingObject.hasViewButton ||
248
- this.wappTableLazyLoadingObject.hasDeleteButton ||
249
- this.wappTableLazyLoadingObject?.hasCustomButton ?
251
+ return this._wappTableLazyLoadingObject.hasCopyButton ||
252
+ this._wappTableLazyLoadingObject.hasEditButton ||
253
+ this._wappTableLazyLoadingObject.hasViewButton ||
254
+ this._wappTableLazyLoadingObject.hasDeleteButton ||
255
+ this._wappTableLazyLoadingObject?.hasCustomButton ?
250
256
  true : false;
251
257
  }
252
258
  refreshPagination(first) {
@@ -364,4 +370,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
364
370
  type: ViewChild,
365
371
  args: ['table', { static: false }]
366
372
  }] } });
367
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidy10YWJsZS1sYXp5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhcHAtY29tcG9uZW50cy9zcmMvbGliL3RhYmxlcy93LXRhYmxlLWxhenkvdy10YWJsZS1sYXp5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhcHAtY29tcG9uZW50cy9zcmMvbGliL3RhYmxlcy93LXRhYmxlLWxhenkvdy10YWJsZS1sYXp5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVN4SixNQUFNLE9BQU8sbUJBQW1CO0lBZ0M5QixZQUNVLG1CQUF3QyxFQUN6QyxxQkFBNEM7UUFEM0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN6QywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBakNyRCxxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFJN0IsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQix3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFDaEMsbUJBQWMsR0FBK0IsbUJBQW1CLENBQUM7UUFJM0MsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFHdEIsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFHNUIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUUxRCxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdEMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUM1QywwQkFBcUIs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T0FBTyxXQUFXLENBQUE7U0FBRTtRQUMvRCxJQUFHLFdBQVcsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFO1lBQUUsT0FBTyxXQUFXLENBQUE7U0FBRTtRQUMvRCxJQUFHLFdBQVcsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFO1lBQUUsT0FBTyxXQUFXLENBQUE7U0FBRTtRQUMvRCxJQUFHLFdBQVcsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFO1lBQUUsT0FBTyxTQUFTLENBQUE7U0FBRTtRQUMzRCxJQUFHLFdBQVcsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFO1lBQUUsT0FBTyxTQUFTLENBQUE7U0FBRTtRQUMzRCxJQUFHLFdBQVcsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFO1lBQUUsT0FBTyxTQUFTLENBQUE7U0FBRTtRQUMzRCxJQUFHLFdBQVcsSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxPQUFPLENBQUE7U0FBRTtRQUN2RCxJQUFHLFdBQVcsSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxPQUFPLENBQUE7U0FBRTtRQUN2RCxJQUFHLFdBQVcsSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxPQUFPLENBQUE7U0FBRTtRQUN2RCxJQUFHLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxRQUFRLENBQUE7U0FBRTtRQUN6RCxJQUFHLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxRQUFRLENBQUE7U0FBRTtRQUN6RCxJQUFHLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxRQUFRLENBQUE7U0FBRTtRQUN6RCxJQUFHLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxRQUFRLENBQUE7U0FBRTtRQUN6RCxJQUFHLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxRQUFRLENBQUE7U0FBRTtRQUN6RCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7O2dIQW5TVSxtQkFBbUI7b0dBQW5CLG1CQUFtQiwyMkJDZGhDLHkvNUJBaVRpQzsyRkRuU3BCLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxjQUFjOzhJQWFOLE9BQU87c0JBQXhCLEtBQUs7dUJBQUMsU0FBUztnQkFDRyxRQUFRO3NCQUExQixLQUFLO3VCQUFDLFVBQVU7Z0JBQ0ssV0FBVztzQkFBaEMsS0FBSzt1QkFBQyxhQUFhO2dCQUNFLFdBQVc7c0JBQWhDLEtBQUs7dUJBQUMsYUFBYTtnQkFDRyxZQUFZO3NCQUFsQyxLQUFLO3VCQUFDLGNBQWM7Z0JBQ0ksY0FBYztzQkFBdEMsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBQ2MsMEJBQTBCO3NCQUE5RCxLQUFLO3VCQUFDLDRCQUE0QjtnQkFFVixhQUFhO3NCQUFyQyxNQUFNO3VCQUFDLGVBQWU7Z0JBRUksZUFBZTtzQkFBekMsTUFBTTt1QkFBQyxpQkFBaUI7Z0JBQ00sbUJBQW1CO3NCQUFqRCxNQUFNO3VCQUFDLHFCQUFxQjtnQkFDSSxxQkFBcUI7c0JBQXJELE1BQU07dUJBQUMsdUJBQXVCO2dCQUNBLG1CQUFtQjtzQkFBakQsTUFBTTt1QkFBQyxxQkFBcUI7Z0JBQ0UsbUJBQW1CO3NCQUFqRCxNQUFNO3VCQUFDLHFCQUFxQjtnQkFDSSxxQkFBcUI7c0JBQXJELE1BQU07dUJBQUMsdUJBQXVCO2dCQUNELGtCQUFrQjtzQkFBL0MsTUFBTTt1QkFBQyxvQkFBb0I7Z0JBQ0osWUFBWTtzQkFBbkMsTUFBTTt1QkFBQyxjQUFjO2dCQUNjLHdCQUF3QjtzQkFBM0QsTUFBTTt1QkFBQywwQkFBMEI7Z0JBQ0cseUJBQXlCO3NCQUE3RCxNQUFNO3VCQUFDLDJCQUEyQjtnQkFFSSxTQUFTO3NCQUEvQyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTGF6eUxvYWRFdmVudCB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVGFibGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcclxuaW1wb3J0IHsgTGF6eUVsZW1lbnRRdWVyeVJlcXVlc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL2xhenktZWxlbWVudC1xdWVyeS1yZXF1ZXN0Lm1vZGVsJztcclxuaW1wb3J0IHsgV2FwcFRhYmxlTGF6eUxvYWRpbmcgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL3dhcHAtdGFibGUtbGF6eS1sb2FkaW5nLm1vZGVsJztcclxuaW1wb3J0IHsgQ3VzdG9tQ29sb3IsIFRhYmxlQ29sdW1uRmlsdGVyVHlwZXMsIFRhYmxlQ29sdW1uVHlwZXMsIFdEYXRlUGlwZUZvcm1hdFR5cGUsIFdhcHBUYWJsZUNvbHVtbkFsaWduVHlwZXMgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL2VudW1zLm1vZGVsJztcclxuaW1wb3J0IHsgRGF0ZUNvbnZlcnNpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2RhdGUtY29udmVyc2lvbi5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3ctdGFibGUtbGF6eScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ctdGFibGUtbGF6eS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdy10YWJsZS1sYXp5LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFdUYWJsZUxhenlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHNlbGVjdGVkRWxlbWVudHM6IGFueVtdID0gW107XHJcbiAgdHJhbnNsYXRpb25zOiBhbnk7XHJcbiAgbGFzdFF1ZXJ5ITogTGF6eUVsZW1lbnRRdWVyeVJlcXVlc3Q7XHJcblxyXG4gIHNlbGVjdEFsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGZpbHRlckVsZW1lbnRzSW5kZXg6IG51bWJlciA9IDA7XHJcbiAgd2FwcERhdGVGb3JtYXQ6IHR5cGVvZiBXRGF0ZVBpcGVGb3JtYXRUeXBlID0gV0RhdGVQaXBlRm9ybWF0VHlwZTtcclxuXHJcbiAgQElucHV0KCdsb2FkaW5nJykgbG9hZGluZyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCdlbGVtZW50cycpIGVsZW1lbnRzITogYW55W107XHJcbiAgQElucHV0KCdyb3dzUGVyUGFnZScpIHJvd3NQZXJQYWdlOiBudW1iZXIgPSAxMDtcclxuICBASW5wdXQoJ2FsbEVsZW1lbnRzJykgYWxsRWxlbWVudHMhOiBhbnlbXTtcclxuICBASW5wdXQoJ3RvdGFsUmVjb3JkcycpIHRvdGFsUmVjb3JkcyE6IG51bWJlcjtcclxuICBASW5wdXQoJ21heFJvd3NQZXJQYWdlJykgbWF4Um93c1BlclBhZ2U6IG51bWJlciA9IDUwO1xyXG4gIEBJbnB1dCgnd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QnKSB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdCE6IFdhcHBUYWJsZUxhenlMb2FkaW5nO1xyXG5cclxuICBAT3V0cHV0KCdxdWVyeUVsZW1lbnRzJykgcXVlcnlFbGVtZW50cyA9IG5ldyBFdmVudEVtaXR0ZXI8TGF6eUVsZW1lbnRRdWVyeVJlcXVlc3Q+KCk7XHJcblxyXG4gIEBPdXRwdXQoJ29uRWxlbWVudFNlbGVjdCcpIG9uRWxlbWVudFNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoJ29uVmlld0VsZW1lbnRTZWxlY3QnKSBvblZpZXdFbGVtZW50U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgnb25DdXN0b21FbGVtZW50U2VsZWN0Jykgb25DdXN0b21FbGVtZW50U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgnb25Db3B5RWxlbWVudFNlbGVjdCcpIG9uQ29weUVsZW1lbnRTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCdvbkVkaXRFbGVtZW50U2VsZWN0Jykgb25FZGl0RWxlbWVudFNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoJ29uRGVsZXRlRWxlbWVudFNlbGVjdCcpIG9uRGVsZXRlRWxlbWVudFNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcbiAgQE91dHB1dCgnb25BbGxFbGVtZW50U2VsZWN0Jykgb25BbGxFbGVtZW50U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoJ29uUGFnZUNoYW5nZScpIG9uUGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoJ29uU2VsZWN0ZWRFbGVtZW50c0NoYW5nZScpIG9uU2VsZWN0ZWRFbGVtZW50c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoJ29uU2Vjb25kYXJ5Q2hlY2tib3hDaGFuZ2UnKSBvblNlY29uZGFyeUNoZWNrYm94Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRhdGFUYWJsZSE6IFRhYmxlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSwgXHJcbiAgICBwdWJsaWMgZGF0ZUNvbnZlcnNpb25TZXJ2aWNlOiBEYXRlQ29udmVyc2lvblNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBcclxuICAgIGlmKHRoaXMud2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzU2VsZWN0QWxsQ2hlY2tib3ggPT0gdW5kZWZpbmVkKXtcclxuICAgICAgdGhpcy53YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNTZWxlY3RBbGxDaGVja2JveCA9IHRydWU7IFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9hZEVsZW1lbnRzKGV2ZW50OiBMYXp5TG9hZEV2ZW50KSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgbGV0IGFkYXB0ZWRRdWVyeTogTGF6eUVsZW1lbnRRdWVyeVJlcXVlc3QgPSB7XHJcbiAgICAgIGZpcnN0OiBldmVudC5maXJzdCEsXHJcbiAgICAgIHJvd3M6IHRoaXMucm93c1BlclBhZ2UhLFxyXG4gICAgICBzb3J0T3JkZXI6IGV2ZW50LnNvcnRPcmRlciEsXHJcbiAgICAgIHNvcnRGaWVsZDogZXZlbnQuc29ydEZpZWxkISxcclxuICAgICAgZmlsdGVyczogT2JqZWN0LmtleXMoZXZlbnQuZmlsdGVycyEpLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGNvbHVtbk5hbWU6IGtleSEsXHJcbiAgICAgICAgICB2YWx1ZTogZXZlbnQuZmlsdGVycyFba2V5XS52YWx1ZSxcclxuICAgICAgICAgIG1hdGNoTW9kZTogZXZlbnQuZmlsdGVycyFba2V5XS5tYXRjaE1vZGUhXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgdGhpcy5sYXN0UXVlcnkgPSBhZGFwdGVkUXVlcnk7XHJcbiAgICB0aGlzLnF1ZXJ5RWxlbWVudHMuZW1pdChhZGFwdGVkUXVlcnkpO1xyXG4gIH1cclxuXHJcbiAgcmVsb2FkRWxlbWVudHMoKSB7XHJcbiAgICB0aGlzLmxhc3RRdWVyeS5yb3dzID0gdGhpcy5yb3dzUGVyUGFnZTtcclxuICAgIHRoaXMucXVlcnlFbGVtZW50cy5lbWl0KHRoaXMubGFzdFF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIHJlYWRQcm9wZXJ0eShvYmo6IGFueSwgcHJvcDogc3RyaW5nKTogYW55IHtcclxuICAgIGlmIChwcm9wID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIG9iaiA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBwcm9wLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgcmVzdWx0ID0gb2JqO1xyXG5cclxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xyXG4gICAgICBjb25zdCBtYXRjaCA9IHByb3BlcnR5Lm1hdGNoKC8oLis/KVxcWyhcXGQrKVxcXS8pO1xyXG4gICAgICBpZiAobWF0Y2gpIHtcclxuICAgICAgICBjb25zdCBhcnJheVByb3AgPSBtYXRjaFsxXTtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHBhcnNlSW50KG1hdGNoWzJdLCAxMCk7XHJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHJlc3VsdFthcnJheVByb3BdKSB8fCBpc05hTihpbmRleCkgfHwgaW5kZXggPCAwIHx8IGluZGV4ID49IHJlc3VsdFthcnJheVByb3BdLmxlbmd0aCkge1xyXG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0W2FycmF5UHJvcF1baW5kZXhdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0eXBlb2YgcmVzdWx0W3Byb3BlcnR5XSA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdFtwcm9wZXJ0eV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgb25FbGVtZW50KGVsZW1lbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vbkVsZW1lbnRTZWxlY3QuZW1pdChlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIHZpZXdFbGVtZW50KGVsZW1lbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vblZpZXdFbGVtZW50U2VsZWN0LmVtaXQoZWxlbWVudCk7XHJcbiAgfVxyXG4gIGN1c3RvbUVsZW1lbnQoZWxlbWVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uQ3VzdG9tRWxlbWVudFNlbGVjdC5lbWl0KGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgZWRpdEVsZW1lbnQoZWxlbWVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uRWRpdEVsZW1lbnRTZWxlY3QuZW1pdChlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIGNvbmZpcm1EZWxldGVTZWxlY3Rpb24oZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xyXG4gICAgICB0YXJnZXQ6IGV2ZW50LnRhcmdldCBhcyBFdmVudFRhcmdldCxcclxuICAgICAgbWVzc2FnZTogdGhpcy53YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb25maXJtTXVsdGlwbGVEZWxldGVMYWJlbCxcclxuICAgICAgaWNvbjogXCJwaSBwaS1leGNsYW1hdGlvbi10cmlhbmdsZVwiLFxyXG4gICAgICBhY2NlcHRMYWJlbDogdGhpcy53YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb25maXJtRGVsZXRlQnRuTGFiZWwsXHJcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWRFbGVtZW50cygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVNlbGVjdGVkRWxlbWVudHMoKSB7XHJcbiAgICB0aGlzLm9uRGVsZXRlRWxlbWVudFNlbGVjdC5lbWl0KHRoaXMuc2VsZWN0ZWRFbGVtZW50cylcclxuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50cyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgY29uZmlybURlbGV0ZShldmVudDogRXZlbnQsIGVsZW1lbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xyXG4gICAgICB0YXJnZXQ6IGV2ZW50LnRhcmdldCBhcyBFdmVudFRhcmdldCxcclxuICAgICAgbWVzc2FnZTogdGhpcy53YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb25maXJtU2luZ2xlRGVsZXRlTGFiZWwsXHJcbiAgICAgIGljb246IFwicGkgcGktZXhjbGFtYXRpb24tdHJpYW5nbGVcIixcclxuICAgICAgYWNjZXB0TGFiZWw6IHRoaXMud2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29uZmlybURlbGV0ZUJ0bkxhYmVsLFxyXG4gICAgICBhY2NlcHQ6ICgpID0+IHtcclxuICAgICAgICB0aGlzLmRlbGV0ZVNpbmdsZUVsZW1lbnQoZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlU2luZ2xlRWxlbWVudChlbGVtZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25EZWxldGVFbGVtZW50U2VsZWN0LmVtaXQoW2VsZW1lbnRdKVxyXG4gIH1cclxuXHJcbiAgY29weUVsZW1lbnQoZWxlbWVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uQ29weUVsZW1lbnRTZWxlY3QuZW1pdChlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIGNvbmZpcm1Db3B5KGV2ZW50OiBFdmVudCwgZWxlbWVudDogYW55KSB7XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XHJcbiAgICAgIHRhcmdldDogZXZlbnQudGFyZ2V0IGFzIEV2ZW50VGFyZ2V0LFxyXG4gICAgICBtZXNzYWdlOiB0aGlzLndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbmZpcm1Db3B5TGFiZWwsXHJcbiAgICAgIGljb246IFwicGkgcGktZXhjbGFtYXRpb24tdHJpYW5nbGVcIixcclxuICAgICAgYWNjZXB0TGFiZWw6IHRoaXMud2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29uZmlybUNvcHlCdG5MYWJlbCxcclxuICAgICAgYWNjZXB0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb3B5RWxlbWVudChlbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGlvbkNoYW5nZSh2YWx1ZSA9IFtdKSB7XHJcbiAgICB0aGlzLnNlbGVjdEFsbCA9IHZhbHVlLmxlbmd0aCA9PT0gdGhpcy50b3RhbFJlY29yZHM7XHJcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudHMgPSB2YWx1ZTtcclxuICAgIHRoaXMub25TZWxlY3RlZEVsZW1lbnRzQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEVsZW1lbnRzKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0QWxsQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGNoZWNrZWQgPSBldmVudC5jaGVja2VkO1xyXG5cclxuICAgIGlmIChjaGVja2VkKSB7XHJcbiAgICAgIHRoaXMub25BbGxFbGVtZW50U2VsZWN0LmVtaXQodHJ1ZSk7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50cyA9IHRoaXMud2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuZGlzYWJsZUNoZWNrYm94ID8gdGhpcy5nZXRTZWxlY3RhYmxlRWxlbWVudHModGhpcy5hbGxFbGVtZW50cykgOiB0aGlzLmFsbEVsZW1lbnRzO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0QWxsID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSwgMTAwMCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEVsZW1lbnRzID0gW107XHJcbiAgICAgIHRoaXMuc2VsZWN0QWxsID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHRoaXMub25TZWxlY3RlZEVsZW1lbnRzQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEVsZW1lbnRzKTtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGFibGVFbGVtZW50cyhhbGxFbGVtZW50czogYW55W10pIHtcclxuICAgIHJldHVybiBhbGxFbGVtZW50cy5maWx0ZXIoKGVsZW1lbnQ6IGFueSkgPT4gIXRoaXMucmVhZFByb3BlcnR5KGVsZW1lbnQsIHRoaXMud2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuZGlzYWJsZUNoZWNrYm94ISkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Qm9vbGVhbkNvbHVtbkNsYXNzKGluZGV4OiBudW1iZXIsIHZhbHVlUHJvcGVydHk6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IGJvb2xlYW5JY29uQ2xhc3NlcyA9IFtdO1xyXG5cclxuICAgIGlmICh2YWx1ZVByb3BlcnR5ID09IHRydWUpIHtcclxuICAgICAgYm9vbGVhbkljb25DbGFzc2VzLnB1c2godGhpcy53YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5Cb29sZWFuVHlwZUljb25zW2luZGV4XS50cnVlSWNvbiA/PyAnJyk7XHJcbiAgICAgIGJvb2xlYW5JY29uQ2xhc3Nlcy5wdXNoKHRoaXMud2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQm9vbGVhblR5cGVJY29uc1tpbmRleF0udHJ1ZUljb25Db2xvciA/PyAnJyk7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlUHJvcGVydHkgPT0gZmFsc2UpIHtcclxuICAgICAgYm9vbGVhbkljb25DbGFzc2VzLnB1c2godGhpcy53YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5Cb29sZWFuVHlwZUljb25zW2luZGV4XS5mYWxzZUljb24gPz8gJycpO1xyXG4gICAgICBib29sZWFuSWNvbkNsYXNzZXMucHVzaCh0aGlzLndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkJvb2xlYW5UeXBlSWNvbnNbaW5kZXhdLmZhbHNlSWNvbkNvbG9yKSA/PyAnJztcclxuICAgIH0gZWxzZSBpZiAodmFsdWVQcm9wZXJ0eSA9PSBudWxsKSB7XHJcbiAgICAgIGJvb2xlYW5JY29uQ2xhc3Nlcy5wdXNoKHRoaXMud2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQm9vbGVhblR5cGVJY29uc1tpbmRleF0ubnVsbEljb24gPz8gJycpO1xyXG4gICAgICBib29sZWFuSWNvbkNsYXNzZXMucHVzaCh0aGlzLndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkJvb2xlYW5UeXBlSWNvbnNbaW5kZXhdLm51bGxJY29uQ29sb3IgPz8gJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBib29sZWFuSWNvbkNsYXNzZXM7XHJcbiAgfVxyXG5cclxuICBvblNlY29uZGFyeUNoZWNrYm94Q2hhbmdlcyhlbGVtZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25TZWNvbmRhcnlDaGVja2JveENoYW5nZS5lbWl0KGVsZW1lbnQpXHJcbiAgfVxyXG5cclxuICBjbGVhcih0YWJsZTogVGFibGUpIHtcclxuICAgIHRhYmxlLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRhYmxlQ29sdW1uRmlsdGVyVHlwZXMoKTogdHlwZW9mIFRhYmxlQ29sdW1uRmlsdGVyVHlwZXMge1xyXG4gICAgcmV0dXJuIFRhYmxlQ29sdW1uRmlsdGVyVHlwZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRhYmxlQ29sdW1uVHlwZXMoKTogdHlwZW9mIFRhYmxlQ29sdW1uVHlwZXMge1xyXG4gICAgcmV0dXJuIFRhYmxlQ29sdW1uVHlwZXM7XHJcbiAgfVxyXG5cclxuICBjbGVhckZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLmRhdGFUYWJsZS5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKGFsaWdubWVudDogbnVtYmVyKSB7XHJcbiAgICBpZihhbGlnbm1lbnQgPT0gV2FwcFRhYmxlQ29sdW1uQWxpZ25UeXBlcy5SaWdodCkgcmV0dXJuICd0ZXh0LXJpZ2h0JztcclxuICAgIGlmKGFsaWdubWVudCA9PSBXYXBwVGFibGVDb2x1bW5BbGlnblR5cGVzLkxlZnQpIHJldHVybiAndGV4dC1sZWZ0JztcclxuICAgIGlmKGFsaWdubWVudCA9PSBXYXBwVGFibGVDb2x1bW5BbGlnblR5cGVzLkNlbnRlcikgcmV0dXJuICd0ZXh0LWNlbnRlcic7XHJcbiAgICByZXR1cm4gJ3RleHQtbGVmdCdcclxuICB9XHJcblxyXG4gIGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzc0RlZmF1bHRCeUNvbHVtblR5cGUoY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlcykge1xyXG4gICAgaWYoY29sdW1uVHlwZSA9PSBUYWJsZUNvbHVtblR5cGVzLlRleHQpIHJldHVybiAndGV4dC1sZWZ0JztcclxuICAgIGlmKGNvbHVtblR5cGUgPT0gVGFibGVDb2x1bW5UeXBlcy5DdXJyZW5jeSkgcmV0dXJuICd0ZXh0LWxlZnQnO1xyXG4gICAgaWYoY29sdW1uVHlwZSA9PSBUYWJsZUNvbHVtblR5cGVzLkRhdGUpIHJldHVybiAndGV4dC1sZWZ0JztcclxuICAgIGlmKGNvbHVtblR5cGUgPT0gVGFibGVDb2x1bW5UeXBlcy5CYWRnZSkgcmV0dXJuICd0ZXh0LWNlbnRlcic7XHJcbiAgICBpZihjb2x1bW5UeXBlID09IFRhYmxlQ29sdW1uVHlwZXMuQm9vbGVhbikgcmV0dXJuICd0ZXh0LWNlbnRlcic7XHJcbiAgICBpZihjb2x1bW5UeXBlID09IFRhYmxlQ29sdW1uVHlwZXMuSW1hZ2UpIHJldHVybiAndGV4dC1jZW50ZXInO1xyXG4gICAgaWYoY29sdW1uVHlwZSA9PSBUYWJsZUNvbHVtblR5cGVzLk51bWJlcikgcmV0dXJuICd0ZXh0LXJpZ2h0JztcclxuICAgIHJldHVybiAndGV4dC1sZWZ0J1xyXG4gIH1cclxuXHJcbiAgY2FsY3VsYXRlQ29sc3BhbigpIHtcclxuICAgIGxldCBjb2xzcGFuID0gdGhpcy53YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oZWFkZXJzLmxlbmd0aDtcclxuICAgIHRoaXMud2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2hlY2tib3ggPyBcclxuICAgICAgY29sc3BhbiArPSAxIDogJyc7XHJcbiAgICAgIHRoaXMuaGFzQWN0aW9uQnV0dG9ucygpID9cclxuICAgICAgICBjb2xzcGFuICs9IDEgOiAnJztcclxuICAgICAgcmV0dXJuIGNvbHNwYW47XHJcbiAgfVxyXG5cclxuICBoYXNBY3Rpb25CdXR0b25zKCkgOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NvcHlCdXR0b24gfHxcclxuICAgICAgICAgICAgdGhpcy53YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNFZGl0QnV0dG9uIHx8XHJcbiAgICAgICAgICAgIHRoaXMud2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzVmlld0J1dHRvbiB8fFxyXG4gICAgICAgICAgICB0aGlzLndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0RlbGV0ZUJ1dHRvbiB8fCBcclxuICAgICAgICAgICAgdGhpcy53YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdD8uaGFzQ3VzdG9tQnV0dG9uID9cclxuICAgICAgICAgIHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2hQYWdpbmF0aW9uKGZpcnN0OiBudW1iZXIpIHtcclxuICAgIHRoaXMuZGF0YVRhYmxlLl9maXJzdCA9IGZpcnN0O1xyXG4gIH1cclxuXHJcbiAgcGFnZUNoYW5nZShlbGVtZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25QYWdlQ2hhbmdlLmVtaXQoZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBnZXRCdXR0b25DdXN0b21Db2xvckNsYXNzKGN1c3RvbUNvbG9yOiBDdXN0b21Db2xvcikge1xyXG4gICAgaWYoY3VzdG9tQ29sb3IgPT0gQ3VzdG9tQ29sb3IuZGFya0JsdWUxKSB7IHJldHVybiAnZGFya0JsdWUxJyB9XHJcbiAgICBpZihjdXN0b21Db2xvciA9PSBDdXN0b21Db2xvci5kYXJrQmx1ZTIpIHsgcmV0dXJuICdkYXJrQmx1ZTInIH1cclxuICAgIGlmKGN1c3RvbUNvbG9yID09IEN1c3RvbUNvbG9yLmRhcmtCbHVlMykgeyByZXR1cm4gJ2RhcmtCbHVlMycgfVxyXG4gICAgaWYoY3VzdG9tQ29sb3IgPT0gQ3VzdG9tQ29sb3IucHVycGxlMSkgeyByZXR1cm4gJ3B1cnBsZTEnIH1cclxuICAgIGlmKGN1c3RvbUNvbG9yID09IEN1c3RvbUNvbG9yLnB1cnBsZTIpIHsgcmV0dXJuICdwdXJwbGUyJyB9XHJcbiAgICBpZihjdXN0b21Db2xvciA9PSBDdXN0b21Db2xvci5wdXJwbGUzKSB7IHJldHVybiAncHVycGxlMycgfVxyXG4gICAgaWYoY3VzdG9tQ29sb3IgPT0gQ3VzdG9tQ29sb3IucGluazEpIHsgcmV0dXJuICdwaW5rMScgfVxyXG4gICAgaWYoY3VzdG9tQ29sb3IgPT0gQ3VzdG9tQ29sb3IucGluazIpIHsgcmV0dXJuICdwaW5rMicgfVxyXG4gICAgaWYoY3VzdG9tQ29sb3IgPT0gQ3VzdG9tQ29sb3IucGluazMpIHsgcmV0dXJuICdwaW5rMycgfVxyXG4gICAgaWYoY3VzdG9tQ29sb3IgPT0gQ3VzdG9tQ29sb3IuZ3JlZW4xKSB7IHJldHVybiAnZ3JlZW4xJyB9XHJcbiAgICBpZihjdXN0b21Db2xvciA9PSBDdXN0b21Db2xvci5ncmVlbjIpIHsgcmV0dXJuICdncmVlbjInIH1cclxuICAgIGlmKGN1c3RvbUNvbG9yID09IEN1c3RvbUNvbG9yLmdyZWVuMykgeyByZXR1cm4gJ2dyZWVuMycgfVxyXG4gICAgaWYoY3VzdG9tQ29sb3IgPT0gQ3VzdG9tQ29sb3IuZXJyb3IxKSB7IHJldHVybiAnZXJyb3IxJyB9XHJcbiAgICBpZihjdXN0b21Db2xvciA9PSBDdXN0b21Db2xvci5lcnJvcjIpIHsgcmV0dXJuICdlcnJvcjInIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiLmZpbHRlci1wYW5lbFwiPjwvbmctY29udGVudD5cclxuPGRpdiAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0XCIgW2NsYXNzLnRhYmxlLWNvbnRhaW5lcl09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC50YWJsZUNvbnRhaW5lclwiPlxyXG4gICAgPHAtdGFibGUgY2xhc3M9XCJ3LXRhYmxlLXN0eWxlc1wiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsndy10YWJsZS1uby1idXR0b25zJyA6ICF3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNFZGl0QnV0dG9uICYmICF3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNEZWxldGVCdXR0b24gJiYgIXdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NvcHlCdXR0b24gJiYgIXdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmN1c3RvbUJ1dHRvbkNvbmZpZyAmJiAhd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzVmlld0J1dHRvbn1cIlxyXG4gICAgICAgICAgICAjdGFibGUgW3ZhbHVlXT1cImVsZW1lbnRzXCIgXHJcbiAgICAgICAgICAgIGRhdGFLZXk9XCJ7e3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmlkZW50aWZpY2F0b3J9fVwiXHJcbiAgICAgICAgICAgIFtsYXp5XT1cInRydWVcIiBcclxuICAgICAgICAgICAgW3Jvd0hvdmVyXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc1ZpZXdCdXR0b24hXCJcclxuICAgICAgICAgICAgKG9uTGF6eUxvYWQpPVwibG9hZEVsZW1lbnRzKCRldmVudClcIlxyXG4gICAgICAgICAgICBbc2VsZWN0aW9uXT1cInNlbGVjdGVkRWxlbWVudHNcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICBbc2VsZWN0QWxsXT1cInNlbGVjdEFsbFwiIChzZWxlY3RBbGxDaGFuZ2UpPVwib25TZWxlY3RBbGxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtwYWdpbmF0b3JdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzUGFnaW5hdG9yISAmJiB0b3RhbFJlY29yZHMgPj0gMTBcIlxyXG4gICAgICAgICAgICBbcm93c109XCJyb3dzUGVyUGFnZVwiIFxyXG4gICAgICAgICAgICBbY3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZV09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlID8gd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZSArICcgJyArICByb3dzUGVyUGFnZSArICcgZGUgJyArIHRvdGFsUmVjb3JkcyEgOiAnU2hvd2luZyAnICsgcm93c1BlclBhZ2UgKyAnIG9mICcgKyB0b3RhbFJlY29yZHMhXCJcclxuICAgICAgICAgICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gICAgICAgICAgICBbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICAgICAgICAgIFtzaG93TG9hZGVyXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgW2dsb2JhbEZpbHRlckZpZWxkc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5nbG9iYWxGaWx0ZXJGaWVsZHMhXCJcclxuICAgICAgICAgICAgW3RhYmxlU3R5bGVdPVwieydtaW4td2lkdGgnOiB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC50YWJsZU1pbldpZHRoIX1cIlxyXG4gICAgICAgICAgICAob25QYWdlKT1cInBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJwLWRhdGF0YWJsZS1zdHJpcGVkXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xlYXJCdXR0b24gfHwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzR2xvYmFsU2VhcmNoXCIgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIHRhYmxlLXBhZ2luYXRvciBwLTBcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzVG90YWxQYWdpbmdTZWxlY3RvclwiIGNsYXNzPVwic2hvd2luZy1wZXItcGFnZVwiPiB7e3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmN1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGV9fSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc1RvdGFsUGFnaW5nU2VsZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicGwtMiBzaG93aW5nLXBlci1wYWdlXCIgW3NpemVdPVwiMVwiIFsobmdNb2RlbCldPVwicm93c1BlclBhZ2VcIiBbc2hvd0J1dHRvbnNdPVwidHJ1ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbkxheW91dD1cImhvcml6b250YWxcIiBpbnB1dElkPVwiaG9yaXpvbnRhbFwiIHNwaW5uZXJNb2RlPVwiaG9yaXpvbnRhbFwiIFtzdGVwXT1cIjFcIiBbbWluXT1cIjFcIiBbbWF4XT1cIm1heFJvd3NQZXJQYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICBkZWNyZW1lbnRCdXR0b25DbGFzcz1cInAtYnV0dG9uLW91dGxpbmVkXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50QnV0dG9uQ2xhc3M9XCJwLWJ1dHRvbi1vdXRsaW5lZFwiIFxyXG4gICAgICAgICAgICAgICAgICAgIGluY3JlbWVudEJ1dHRvbkljb249XCJwaSBwaS1wbHVzXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgZGVjcmVtZW50QnV0dG9uSWNvbj1cInBpIHBpLW1pbnVzXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgbW9kZT1cImRlY2ltYWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInJlbG9hZEVsZW1lbnRzKClcIj5cclxuICAgICAgICAgICAgICAgIDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3Q/Lmhhc0dsb2JhbFNlYXJjaFwiIGNsYXNzPVwicC1pbnB1dC1pY29uLWxlZnQgbWwtYXV0b1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktc2VhcmNoXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImhlaWdodC1pbnB1dCB3LWlucHV0XCIgcElucHV0VGV4dCB0eXBlPVwidGV4dFwiIChpbnB1dCk9XCJ0YWJsZS5maWx0ZXJHbG9iYWwoJGV2ZW50LCAnY29udGFpbnMnKVwiIHBsYWNlaG9sZGVyPVwie3t3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5zZWFyY2hQbGFjZWhvbGRlcn19XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICA8dGggKm5nSWY9XCIhd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ29sdW1uRmlsdGVycyAmJiB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDaGVja2JveDsgZWxzZSBub0NoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduWzBdKSA6ICd0ZXh0LWNlbnRlcidcIj5cclxuICAgICAgICAgICAgICAgIDxwLXRhYmxlSGVhZGVyQ2hlY2tib3ggKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNTZWxlY3RBbGxDaGVja2JveCA9PSB0cnVlXCI+PC9wLXRhYmxlSGVhZGVyQ2hlY2tib3g+XHJcbiAgICAgICAgICAgIDwvdGg+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vQ2hlY2tib3g+PHRoICpuZ0lmPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2hlY2tib3hcIj48L3RoPjwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc1NvcnRhYmxlQ29sdW1uczsgZWxzZSBzb21ldGhpbmdcIj5cclxuICAgICAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Py5oZWFkZXJzOyBpbmRleCBhcyBpXCIgW2NsYXNzXT1cImhlYWRlciA9PSAoJ0ltYWdlbicgfHwgJ0ltYWdlJykgPyAnaW1hZ2UtaGVhZGVyJzogJydcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ24gPyBnZXRUYWJsZUNvbHVtbkFsaWduQ2xhc3Mod2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ25bd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2hlY2tib3ggPyBpKzEgOiBpXSkgOiBnZXRUYWJsZUNvbHVtbkFsaWduQ2xhc3NEZWZhdWx0QnlDb2x1bW5UeXBlKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtblR5cGVzW3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NoZWNrYm94ID8gaSsxIDogaV0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3toZWFkZXJ9fVxyXG4gICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NvbWV0aGluZz5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc29tZXRoaW5nIG5nRm9yIGxldC1maWx0ZXJUeXBlIFtuZ0Zvck9mXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmhlYWRlcnNcIiBsZXQtaT1cImluZGV4XCI+IFxyXG4gICAgICAgICAgICAgICAgICAgIDx0aCBbcFNvcnRhYmxlQ29sdW1uXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LnNvcnRhYmxlTmFtZXNbaV1cIiBbY2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGVhZGVyc1tpXSA9PSAoJ0ltYWdlbicgfHwgJ0ltYWdlJykgPyAnaW1hZ2UtaGVhZGVyJzogJydcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NoZWNrYm94ID8gaSsxIDogaV0pIDogZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzRGVmYXVsdEJ5Q29sdW1uVHlwZSh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5UeXBlc1t3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDaGVja2JveCA/IGkrMSA6IGldKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7d2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGVhZGVyc1tpXX19IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXNvcnRJY29uICpuZ0lmPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3Quc29ydGFibGVOYW1lc1tpXSAhPSBudWxsXCIgW2ZpZWxkXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LnNvcnRhYmxlTmFtZXNbaV1cIj48L3Atc29ydEljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDx0aCAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0RlbGV0ZUJ1dHRvbiB8fCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNFZGl0QnV0dG9uIHx8IHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc1ZpZXdCdXR0b24gfHwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ29weUJ1dHRvbiB8fCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdD8uaGFzQ3VzdG9tQnV0dG9uXCI+PC90aD5cclxuICAgICAgICA8L3RyPlxyXG5cclxuICAgICAgICA8dHIgKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDb2x1bW5GaWx0ZXJzXCI+XHJcbiAgICAgICAgICAgIDx0aCAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NoZWNrYm94XCIgW25nQ2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ24gPyBnZXRUYWJsZUNvbHVtbkFsaWduQ2xhc3Mod2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ25bMF0pIDogJ3RleHQtbGVmdCdcIj5cclxuICAgICAgICAgICAgICAgIDxwLXRhYmxlSGVhZGVyQ2hlY2tib3g+PC9wLXRhYmxlSGVhZGVyQ2hlY2tib3g+XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDx0aCAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0ltYWdlXCIgXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnblt3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDaGVja2JveCA/IDEgOiAwXSkgOiBnZXRUYWJsZUNvbHVtbkFsaWduQ2xhc3NEZWZhdWx0QnlDb2x1bW5UeXBlKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtblR5cGVzW3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NoZWNrYm94ID8gMSA6IDBdKVwiPlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWZpbHRlclR5cGUgW25nRm9yT2ZdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uRmlsdGVyVHlwZXNcIiBsZXQtaT1cImluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCJmaWx0ZXJUeXBlID09IHRhYmxlQ29sdW1uRmlsdGVyVHlwZXMuVGV4dFwiIFxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ24gPyBnZXRUYWJsZUNvbHVtbkFsaWduQ2xhc3Mod2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ25baV0pIDogJ3RleHQtbGVmdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cC1jb2x1bW5GaWx0ZXIgdHlwZT1cInRleHRcIiBbZmllbGRdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuZmlsdGVyTmFtZXNbaV1cIj48L3AtY29sdW1uRmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cImZpbHRlclR5cGUgPT0gdGFibGVDb2x1bW5GaWx0ZXJUeXBlcy5NdWx0aXNlbGVjdFwiIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW2ldKSA6ICd0ZXh0LWxlZnQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtY29sdW1uRmlsdGVyIFtmaWVsZF09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5maWx0ZXJOYW1lc1tpXVwiIG1hdGNoTW9kZT1cImluXCIgW3Nob3dNZW51XT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmaWx0ZXJcIiBsZXQtdmFsdWUgbGV0LWZpbHRlcj1cImZpbHRlckNhbGxiYWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1tdWx0aVNlbGVjdCBbbmdNb2RlbF09XCJ2YWx1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIFtvcHRpb25zXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LnNlbGVjdEZpbHRlckVsZW1lbnRzW2ldXCIgcGxhY2Vob2xkZXI9XCJBbnlcIiAob25DaGFuZ2UpPVwiZmlsdGVyKCRldmVudC52YWx1ZSlcIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBbbWF4U2VsZWN0ZWRMYWJlbHNdPVwiMVwiIFtzZWxlY3RlZEl0ZW1zTGFiZWxdPVwiJ3swfSBpdGVtcydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LW9wdGlvbiBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLW11bHRpc2VsZWN0LXJlcHJlc2VudGF0aXZlLW9wdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0xXCI+e3tvcHRpb24ubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wLW11bHRpU2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcC1jb2x1bW5GaWx0ZXI+XHJcbiAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiZmlsdGVyVHlwZSA9PSB0YWJsZUNvbHVtbkZpbHRlclR5cGVzLk5vbmVcIj48L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiZmlsdGVyVHlwZSA9PSB0YWJsZUNvbHVtbkZpbHRlclR5cGVzLkJvb2xlYW5cIiBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1jZW50ZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtY29sdW1uRmlsdGVyIHR5cGU9XCJib29sZWFuXCIgW2ZpZWxkXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmZpbHRlck5hbWVzW2ldXCI+PC9wLWNvbHVtbkZpbHRlcj5cclxuICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCJmaWx0ZXJUeXBlID09IHRhYmxlQ29sdW1uRmlsdGVyVHlwZXMuRGF0ZVwiIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW2ldKSA6ICd0ZXh0LWxlZnQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtY29sdW1uRmlsdGVyIHR5cGU9XCJkYXRlXCIgW2ZpZWxkXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmZpbHRlck5hbWVzW2ldXCI+PC9wLWNvbHVtbkZpbHRlcj5cclxuICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDx0aCAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0RlbGV0ZUJ1dHRvbiB8fCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNFZGl0QnV0dG9uIHx8IHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc1ZpZXdCdXR0b24gfHwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ29weUJ1dHRvbiB8fCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdD8uaGFzQ3VzdG9tQnV0dG9uXCI+PC90aD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWVsZW1lbnQgbGV0LWluZGV4PVwiaW5kZXhcIj5cclxuICAgICAgICA8dHIgKm5nSWY9XCIhbG9hZGluZ1wiIFtuZ0NsYXNzXT1cInsncm93LWhvdmVyJzogd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzVmlld0J1dHRvbn1cIiBcclxuICAgICAgICAoY2xpY2spPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gb25FbGVtZW50KGVsZW1lbnQpIDogJydcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWNvbHVtblR5cGUgW25nRm9yT2ZdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uVHlwZXNcIiBsZXQtaT1cImluZGV4XCI+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cImNvbHVtblR5cGUgPT0gdGFibGVDb2x1bW5UeXBlcy5DaGVja2JveCAmJiB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDaGVja2JveFwiIFtzdHlsZV09XCInd2lkdGg6ICcrd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uV2lkdGhzW2ldXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmRpc2FibGVDaGVja2JveDsgZWxzZSBhY3RpdmVDaGVja2JveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwLXRhYmxlQ2hlY2tib3ggW3ZhbHVlXT1cImVsZW1lbnRcIiBbZGlzYWJsZWRdPVwicmVhZFByb3BlcnR5KGVsZW1lbnQsIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmRpc2FibGVDaGVja2JveClcIj48L3AtdGFibGVDaGVja2JveD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNhY3RpdmVDaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICA8cC10YWJsZUNoZWNrYm94IFt2YWx1ZV09XCJlbGVtZW50XCI+PC9wLXRhYmxlQ2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJjb2x1bW5UeXBlID09IHRhYmxlQ29sdW1uVHlwZXMuSW1hZ2VcIiBbc3R5bGVdPVwiJ3dpZHRoOiAnK3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbldpZHRoc1tpXVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1jZW50ZXInXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyB2aWV3RWxlbWVudChlbGVtZW50KSA6ICcnXCIgW2NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/ICd3LXRhYmxlLWxhenktc2VsZWN0YWJsZS1yb3cnIDogJydcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJyZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSlcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJyZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSlcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbGVtZW50LWltYWdlLXdpZHRoXCIvPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJjb2x1bW5UeXBlID09IHRhYmxlQ29sdW1uVHlwZXMuVGV4dFwiICBbc3R5bGVdPVwiJ3dpZHRoOiAnK3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbldpZHRoc1tpXVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1sZWZ0J1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gdmlld0VsZW1lbnQoZWxlbWVudCkgOiAnJ1wiIFtjbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyAndy10YWJsZS1sYXp5LXNlbGVjdGFibGUtcm93JyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICB7eyByZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSkgfX1cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiY29sdW1uVHlwZSA9PSB0YWJsZUNvbHVtblR5cGVzLk51bWJlclwiICBbc3R5bGVdPVwiJ3dpZHRoOiAnK3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbldpZHRoc1tpXVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1yaWdodCdcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/IHZpZXdFbGVtZW50KGVsZW1lbnQpIDogJydcIiBbY2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gJ3ctdGFibGUtbGF6eS1zZWxlY3RhYmxlLXJvdycgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAge3sgcmVhZFByb3BlcnR5KGVsZW1lbnQsIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbnNbaV0pIH19XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cImNvbHVtblR5cGUgPT0gdGFibGVDb2x1bW5UeXBlcy5QZXJjZW50YWdlXCIgIFtzdHlsZV09XCInd2lkdGg6ICcrd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uV2lkdGhzW2ldXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW2ldKSA6ICd0ZXh0LXJpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gdmlld0VsZW1lbnQoZWxlbWVudCkgOiAnJ1wiIFtjbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyAndy10YWJsZS1sYXp5LXNlbGVjdGFibGUtcm93JyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICB7eyByZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSkgfCB3YXBwUGVyY2VudGFnZSB9fVxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJjb2x1bW5UeXBlID09IHRhYmxlQ29sdW1uVHlwZXMuQ3VycmVuY3lcIiBbc3R5bGVdPVwiJ3dpZHRoOiAnK3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbldpZHRoc1tpXVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1sZWZ0J1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gdmlld0VsZW1lbnQoZWxlbWVudCkgOiAnJ1wiIFtjbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyAndy10YWJsZS1sYXp5LXNlbGVjdGFibGUtcm93JyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICB7eyByZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSkgfCB3YXBwQ3VycmVuY3kgfX1cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiY29sdW1uVHlwZSA9PSB0YWJsZUNvbHVtblR5cGVzLkJhZGdlXCIgW3N0eWxlXT1cIid3aWR0aDogJyt3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5XaWR0aHNbaV1cIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ24gPyBnZXRUYWJsZUNvbHVtbkFsaWduQ2xhc3Mod2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ25baV0pIDogJ3RleHQtY2VudGVyJ1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gdmlld0VsZW1lbnQoZWxlbWVudCkgOiAnJ1wiIFtjbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyAndy10YWJsZS1sYXp5LXNlbGVjdGFibGUtcm93JyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICA8dy1iYWRnZSBbbGFiZWxdPVwicmVhZFByb3BlcnR5KGVsZW1lbnQsIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbnNbaV0pXCIgW2NvbG9yXT1cIidpbmZvJ1wiPjwvdy1iYWRnZT4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiY29sdW1uVHlwZSA9PSB0YWJsZUNvbHVtblR5cGVzLkNvbG9yZWRCYWRnZVwiIFtzdHlsZV09XCInd2lkdGg6ICcrd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uV2lkdGhzW2ldXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW2ldKSA6ICd0ZXh0LWNlbnRlcidcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/IHZpZXdFbGVtZW50KGVsZW1lbnQpIDogJydcIiBbY2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gJ3ctdGFibGUtbGF6eS1zZWxlY3RhYmxlLXJvdycgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYmFkZ2Ugb2Ygd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sb3JlZEJhZGdlOyBpbmRleCBhcyBpbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dy1iYWRnZSAqbmdJZj1cImJhZGdlLmNvbG9yZWRCYWRnZVByb3BlcnR5ID09IHJlYWRQcm9wZXJ0eShlbGVtZW50LCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5zW2ldKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInJlYWRQcm9wZXJ0eShlbGVtZW50LCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5zW2ldKVwiIFtjb2xvcl09XCJiYWRnZS5jb2xvciA/IGJhZGdlLmNvbG9yIDogJ2luZm8nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC93LWJhZGdlPiAgXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gXHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cImNvbHVtblR5cGUgPT0gdGFibGVDb2x1bW5UeXBlcy5Cb29sZWFuXCIgW3N0eWxlXT1cIid3aWR0aDogJyt3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5XaWR0aHNbaV1cIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ24gPyBnZXRUYWJsZUNvbHVtbkFsaWduQ2xhc3Mod2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ25baV0pIDogJ3RleHQtY2VudGVyJ1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gdmlld0VsZW1lbnQoZWxlbWVudCkgOiAnJ1wiIFtjbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyAndy10YWJsZS1sYXp5LXNlbGVjdGFibGUtcm93JyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpXCIgW25nQ2xhc3NdPVwiZ2V0Qm9vbGVhbkNvbHVtbkNsYXNzKGksIHJlYWRQcm9wZXJ0eShlbGVtZW50LCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5zW2ldKSlcIj48L2k+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cImNvbHVtblR5cGUgPT0gdGFibGVDb2x1bW5UeXBlcy5TZWNvbmRhcnlDaGVja2JveFwiIFtzdHlsZV09XCInd2lkdGg6ICcrd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uV2lkdGhzW2ldXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW2ldKSA6ICd0ZXh0LWNlbnRlcidcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/IHZpZXdFbGVtZW50KGVsZW1lbnQpIDogJydcIiBbY2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gJ3ctdGFibGUtbGF6eS1zZWxlY3RhYmxlLXJvdycgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtY2hlY2tib3ggWyhuZ01vZGVsKV09XCJlbGVtZW50W3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbnNbaV1dXCIgW2JpbmFyeV09XCJ0cnVlXCIgaW5wdXRJZD1cImJpbmFyeVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2Vjb25kYXJ5Q2hlY2tib3hDaGFuZ2VzKGVsZW1lbnQpXCI+PC9wLWNoZWNrYm94PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJjb2x1bW5UeXBlID09IHRhYmxlQ29sdW1uVHlwZXMuRGF0ZVwiIFtzdHlsZV09XCInd2lkdGg6ICcrd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uV2lkdGhzW2ldXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW2ldKSA6ICd0ZXh0LWxlZnQnXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyB2aWV3RWxlbWVudChlbGVtZW50KSA6ICcnXCIgW2NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/ICd3LXRhYmxlLWxhenktc2VsZWN0YWJsZS1yb3cnIDogJydcIj5cclxuICAgICAgICAgICAgICAgIHt7IGRhdGVDb252ZXJzaW9uU2VydmljZS5mb3JtYXRVVENEYXRlKHJlYWRQcm9wZXJ0eShlbGVtZW50LCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5zW2ldKSkgfCB3YXBwRGF0ZSB9fVxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJjb2x1bW5UeXBlID09IHRhYmxlQ29sdW1uVHlwZXMuRGF0ZVJhd1wiIFtzdHlsZV09XCInd2lkdGg6ICcrd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uV2lkdGhzW2ldXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW2ldKSA6ICd0ZXh0LWxlZnQnXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyB2aWV3RWxlbWVudChlbGVtZW50KSA6ICcnXCIgW2NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/ICd3LXRhYmxlLWxhenktc2VsZWN0YWJsZS1yb3cnIDogJydcIj5cclxuICAgICAgICAgICAgICAgIHt7IHJlYWRQcm9wZXJ0eShlbGVtZW50LCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5zW2ldKSB8IHdhcHBEYXRlIH19XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cImNvbHVtblR5cGUgPT0gdGFibGVDb2x1bW5UeXBlcy5TaG9ydERhdGVcIiBbc3R5bGVdPVwiJ3dpZHRoOiAnK3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbldpZHRoc1tpXVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1sZWZ0J1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gdmlld0VsZW1lbnQoZWxlbWVudCkgOiAnJ1wiIFtjbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyAndy10YWJsZS1sYXp5LXNlbGVjdGFibGUtcm93JyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBkYXRlQ29udmVyc2lvblNlcnZpY2UuZm9ybWF0VVRDRGF0ZShyZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSkpIHwgd2FwcERhdGUgOiB3YXBwRGF0ZUZvcm1hdC5kIH19XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cImNvbHVtblR5cGUgPT0gdGFibGVDb2x1bW5UeXBlcy5Mb25nRGF0ZVwiIFtzdHlsZV09XCInd2lkdGg6ICcrd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uV2lkdGhzW2ldXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW2ldKSA6ICd0ZXh0LWxlZnQnXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyB2aWV3RWxlbWVudChlbGVtZW50KSA6ICcnXCIgW2NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/ICd3LXRhYmxlLWxhenktc2VsZWN0YWJsZS1yb3cnIDogJydcIj5cclxuICAgICAgICAgICAgICAgIHt7IGRhdGVDb252ZXJzaW9uU2VydmljZS5mb3JtYXRVVENEYXRlKHJlYWRQcm9wZXJ0eShlbGVtZW50LCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5zW2ldKSkgfCB3YXBwRGF0ZSA6IHdhcHBEYXRlRm9ybWF0LkQgfX1cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiY29sdW1uVHlwZSA9PSB0YWJsZUNvbHVtblR5cGVzLkdlbmVyYWxEYXRlVGltZVNob3J0VGltZVwiIFtzdHlsZV09XCInd2lkdGg6ICcrd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uV2lkdGhzW2ldXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW2ldKSA6ICd0ZXh0LWxlZnQnXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyB2aWV3RWxlbWVudChlbGVtZW50KSA6ICcnXCIgW2NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/ICd3LXRhYmxlLWxhenktc2VsZWN0YWJsZS1yb3cnIDogJydcIj5cclxuICAgICAgICAgICAgICAgIHt7IGRhdGVDb252ZXJzaW9uU2VydmljZS5mb3JtYXRVVENEYXRlKHJlYWRQcm9wZXJ0eShlbGVtZW50LCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5zW2ldKSkgfCB3YXBwRGF0ZSA6IHdhcHBEYXRlRm9ybWF0LmcgfX1cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiY29sdW1uVHlwZSA9PSB0YWJsZUNvbHVtblR5cGVzLkdlbmVyYWxEYXRlVGltZUxvbmdUaW1lXCIgW3N0eWxlXT1cIid3aWR0aDogJyt3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5XaWR0aHNbaV1cIiBcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW2ldKSA6ICd0ZXh0LWxlZnQnXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyB2aWV3RWxlbWVudChlbGVtZW50KSA6ICcnXCIgW2NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/ICd3LXRhYmxlLWxhenktc2VsZWN0YWJsZS1yb3cnIDogJydcIj5cclxuICAgICAgICAgICAgICAgIHt7IGRhdGVDb252ZXJzaW9uU2VydmljZS5mb3JtYXRVVENEYXRlKHJlYWRQcm9wZXJ0eShlbGVtZW50LCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5zW2ldKSkgfCB3YXBwRGF0ZSA6IHdhcHBEYXRlRm9ybWF0LkcgfX1cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiY29sdW1uVHlwZSA9PSB0YWJsZUNvbHVtblR5cGVzLkJ1aXNpbmVzc0RhdGVUaW1lXCIgW3N0eWxlXT1cIid3aWR0aDogJyt3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5XaWR0aHNbaV1cIiBcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW2ldKSA6ICd0ZXh0LWxlZnQnXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyB2aWV3RWxlbWVudChlbGVtZW50KSA6ICcnXCIgW2NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/ICd3LXRhYmxlLWxhenktc2VsZWN0YWJsZS1yb3cnIDogJydcIj5cclxuICAgICAgICAgICAgICAgIHt7IHJlYWRQcm9wZXJ0eShlbGVtZW50LCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5zW2ldKSB8IHdhcHBEYXRlIDogd2FwcERhdGVGb3JtYXQuRGF0ZSB9fVxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJjb2x1bW5UeXBlID09IHRhYmxlQ29sdW1uVHlwZXMuV2Vla1wiIFtzdHlsZV09XCInd2lkdGg6ICcrd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uV2lkdGhzW2ldXCIgXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1jZW50ZXInXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyB2aWV3RWxlbWVudChlbGVtZW50KSA6ICcnXCIgW2NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/ICd3LXRhYmxlLWxhenktc2VsZWN0YWJsZS1yb3cnIDogJydcIj5cclxuICAgICAgICAgICAgICAgIDx3LWJ1dHRvbi13ZWVrIFt2YWx1ZV09XCJyZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSlcIiBbdHJhbnNsYXRpb25zXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LndlZWtCdXR0b25UcmFuc2xhdGlvbnMgPyB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC53ZWVrQnV0dG9uVHJhbnNsYXRpb25zIDogW11cIiBbZGVmYXVsdEVzcF09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC53ZWVrQnV0dG9uRGVmYXVsdEVzcCA/PyBmYWxzZVwiPjwvdy1idXR0b24td2Vlaz5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctdGFibGUtYnV0dG9ucyBmbGV4IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtZW5kXCI+XHJcbiAgICAgICAgICAgIDx3LWJ1dHRvbiAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Py5oYXNWaWV3QnV0dG9uXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwidmlld0VsZW1lbnQoZWxlbWVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmJ1dHRvblRvb2x0aXBzPy52aWV3VG9vbHRpcCFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuYnV0dG9uVG9vbHRpcHM/LnBvc2l0aW9uIVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJwaS1leWVcIiB0eXBlPVwidGFibGVcIiBidXR0b25DbGFzcz1cInctdGFibGUtYnV0dG9uLXZpZXdcIj5cclxuICAgICAgICAgICAgPC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3Q/Lmhhc0N1c3RvbUJ1dHRvblwiIG5nRm9yIGxldC1jdXN0b21CdXR0b25Db25maWcgW25nRm9yT2ZdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY3VzdG9tQnV0dG9uQ29uZmlnXCIgbGV0LWk9XCJpbmRleFwiPiBcclxuICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiAqbmdJZj1cIiFjdXN0b21CdXR0b25Db25maWc/LmRpc2FibGVQcm9wZXJ0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImN1c3RvbUVsZW1lbnQoe2J1dHRvbklkOiBjdXN0b21CdXR0b25Db25maWcuYnV0dG9uSWQsIGVsZW1lbnQ6IGVsZW1lbnR9KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImN1c3RvbUJ1dHRvbkNvbmZpZz8uaWNvbiFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcF09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5idXR0b25Ub29sdGlwcz8uY3VzdG9tVG9vbHRpcCFbaV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmJ1dHRvblRvb2x0aXBzPy5wb3NpdGlvbiFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGFibGVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvbkNsYXNzXT1cIid3LXRhYmxlLWJ1dHRvbi12aWV3ICcgKyBnZXRCdXR0b25DdXN0b21Db2xvckNsYXNzKGN1c3RvbUJ1dHRvbkNvbmZpZy5jb2xvciEpXCI+XHJcbiAgICAgICAgICAgICAgICA8L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPHctYnV0dG9uICpuZ0lmPVwiY3VzdG9tQnV0dG9uQ29uZmlnPy5kaXNhYmxlUHJvcGVydHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJjdXN0b21FbGVtZW50KHtidXR0b25JZDogY3VzdG9tQnV0dG9uQ29uZmlnLmJ1dHRvbklkLCBlbGVtZW50OiBlbGVtZW50fSlcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRQcm9wZXJ0eShlbGVtZW50LCBjdXN0b21CdXR0b25Db25maWc/LmRpc2FibGVQcm9wZXJ0eSEpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiY3VzdG9tQnV0dG9uQ29uZmlnPy5pY29uIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmJ1dHRvblRvb2x0aXBzPy5jdXN0b21Ub29sdGlwIVtpXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuYnV0dG9uVG9vbHRpcHM/LnBvc2l0aW9uIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0YWJsZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uQ2xhc3NdPVwiJ3ctdGFibGUtYnV0dG9uLXZpZXcgJyArIGdldEJ1dHRvbkN1c3RvbUNvbG9yQ2xhc3MoY3VzdG9tQnV0dG9uQ29uZmlnLmNvbG9yISlcIj5cclxuICAgICAgICAgICAgICAgIDwvdy1idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDx3LWJ1dHRvbiAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0VkaXRCdXR0b24gJiYgIXdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmRpc2FibGVFZGl0UHJvcGVydHlcIiBcclxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJlZGl0RWxlbWVudChlbGVtZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuYnV0dG9uVG9vbHRpcHM/LmVkaXRUb29sdGlwIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5idXR0b25Ub29sdGlwcz8ucG9zaXRpb24hXCJcclxuICAgICAgICAgICAgICAgICAgICBpY29uPVwicGktcGVuY2lsXCIgdHlwZT1cInRhYmxlXCIgYnV0dG9uQ2xhc3M9XCJ3LXRhYmxlLWJ1dHRvbi1lZGl0XCI+XHJcbiAgICAgICAgICAgIDwvdy1idXR0b24+XHJcbiAgICAgICAgICAgIDx3LWJ1dHRvbiAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0VkaXRCdXR0b24gJiYgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuZGlzYWJsZUVkaXRQcm9wZXJ0eVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImVkaXRFbGVtZW50KGVsZW1lbnQpXCIgW2Rpc2FibGVkXT1cInJlYWRQcm9wZXJ0eShlbGVtZW50LCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5kaXNhYmxlRWRpdFByb3BlcnR5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuYnV0dG9uVG9vbHRpcHM/LmVkaXRUb29sdGlwIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5idXR0b25Ub29sdGlwcz8ucG9zaXRpb24hXCJcclxuICAgICAgICAgICAgICAgICAgICBpY29uPVwicGktcGVuY2lsXCIgdHlwZT1cInRhYmxlXCIgYnV0dG9uQ2xhc3M9XCJ3LXRhYmxlLWJ1dHRvbi1lZGl0XCI+XHJcbiAgICAgICAgICAgIDwvdy1idXR0b24+XHJcbiAgICAgICAgICAgIDx3LWJ1dHRvbiAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Py5oYXNDb3B5QnV0dG9uXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiY29uZmlybUNvcHkoJGV2ZW50LCBlbGVtZW50KVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmJ1dHRvblRvb2x0aXBzPy5jb3B5VG9vbHRpcCFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuYnV0dG9uVG9vbHRpcHM/LnBvc2l0aW9uIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cInBpLWNvcHlcIiB0eXBlPVwidGFibGVcIiBidXR0b25DbGFzcz1cInctdGFibGUtYnV0dG9uLXZpZXdcIj5cclxuICAgICAgICAgICAgPC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdD8uaGFzRGVsZXRlQnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICA8dy1idXR0b24gKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5kaXNhYmxlRGVsZXRlUHJvcGVydHk7IGVsc2Ugbm9EaXNhYmxlRGVsZXRlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImNvbmZpcm1EZWxldGUoJGV2ZW50LCBlbGVtZW50KVwiIFtkaXNhYmxlZF09XCJyZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuZGlzYWJsZURlbGV0ZVByb3BlcnR5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmJ1dHRvblRvb2x0aXBzPy5kZWxldGVUb29sdGlwIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuYnV0dG9uVG9vbHRpcHM/LnBvc2l0aW9uIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJwaS10cmFzaFwiIHR5cGU9XCJ0YWJsZVwiIGJ1dHRvbkNsYXNzPVwidy10YWJsZS1idXR0b24tZGVsZXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0Rpc2FibGVEZWxldGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHctYnV0dG9uIChvbkNsaWNrKT1cImNvbmZpcm1EZWxldGUoJGV2ZW50LCBlbGVtZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcF09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5idXR0b25Ub29sdGlwcz8uZGVsZXRlVG9vbHRpcCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5idXR0b25Ub29sdGlwcz8ucG9zaXRpb24hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJwaS10cmFzaFwiIHR5cGU9XCJ0YWJsZVwiIGJ1dHRvbkNsYXNzPVwidy10YWJsZS1idXR0b24tZGVsZXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJsb2FkaW5nYm9keVwiPlxyXG4gICAgICAgICAgICA8dHIgaGVpZ2h0PVwiNzBweFwiICpuZ0Zvcj1cImxldCBuIG9mIFswLDEsMiwzLDRdXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uVHlwZXNcIiBbc3R5bGUud2lkdGhdPVwiaXRlbSA9PSB0YWJsZUNvbHVtblR5cGVzLkNoZWNrYm94ID8gJzhyZW0nIDogJydcIiA+XHJcbiAgICAgICAgICAgICAgICA8cC10YWJsZUNoZWNrYm94ICpuZ0lmPVwiaXRlbSA9PSB0YWJsZUNvbHVtblR5cGVzLkNoZWNrYm94ICYmIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NoZWNrYm94XCI+PC9wLXRhYmxlQ2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8cC1za2VsZXRvbiAqbmdJZj1cIml0ZW0gPT0gdGFibGVDb2x1bW5UeXBlcy5JbWFnZVwiIHdpZHRoPVwiNnJlbVwiIGhlaWdodD1cIjRyZW1cIj48L3Atc2tlbGV0b24+XHJcbiAgICAgICAgICAgICAgICA8cC1za2VsZXRvbiAqbmdJZj1cIml0ZW0gIT0gdGFibGVDb2x1bW5UeXBlcy5DaGVja2JveCAmJiBpdGVtICE9IHRhYmxlQ29sdW1uVHlwZXMuSW1hZ2VcIj48L3Atc2tlbGV0b24+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkICpuZ0lmPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzRWRpdEJ1dHRvbiB8fCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNEZWxldGVCdXR0b25cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LXRhYmxlLWJ1dHRvbnMgZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHctYnV0dG9uICpuZ0lmPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3Q/Lmhhc0VkaXRCdXR0b25cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJwaS1wZW5jaWxcIiB0eXBlPVwidGFibGVcIiBidXR0b25DbGFzcz1cInctdGFibGUtYnV0dG9uLWVkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Py5oYXNDdXN0b21CdXR0b25cIiBuZ0ZvciBsZXQtY3VzdG9tQnV0dG9uQ29uZmlnIFtuZ0Zvck9mXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmN1c3RvbUJ1dHRvbkNvbmZpZ1wiIGxldC1pPVwiaW5kZXhcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx3LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuYnV0dG9uVG9vbHRpcHM/LmN1c3RvbVRvb2x0aXAhW2ldXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImN1c3RvbUJ1dHRvbkNvbmZpZz8uaWNvbiFcIiB0eXBlPVwidGFibGVcIiBbYnV0dG9uQ2xhc3NdPVwiJ3ctdGFibGUtYnV0dG9uLXZpZXcgJyArIGdldEJ1dHRvbkN1c3RvbUNvbG9yQ2xhc3MoY3VzdG9tQnV0dG9uQ29uZmlnLmNvbG9yISlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Py5oYXNEZWxldGVCdXR0b25cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJwaS10cmFzaFwiIHR5cGU9XCJ0YWJsZVwiIGJ1dHRvbkNsYXNzPVwidy10YWJsZS1idXR0b24tZGVsZXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XHJcbiAgICAgICAgPHRyIGNsYXNzPVwidy10YWJsZS1sYXp5LWVtcHR5LW1lc3NhZ2UtcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJjYWxjdWxhdGVDb2xzcGFuKClcIj57e3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmVtcHR5TWVzc2FnZSA/IHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmVtcHR5TWVzc2FnZSA6ICdObyBtYXRjaGVzLid9fTwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3AtdGFibGU+XHJcbjwvZGl2PlxyXG48cC1jb25maXJtUG9wdXA+PC9wLWNvbmZpcm1Qb3B1cD4iXX0=
373
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidy10YWJsZS1sYXp5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhcHAtY29tcG9uZW50cy9zcmMvbGliL3RhYmxlcy93LXRhYmxlLWxhenkvdy10YWJsZS1sYXp5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhcHAtY29tcG9uZW50cy9zcmMvbGliL3RhYmxlcy93LXRhYmxlLWxhenkvdy10YWJsZS1sYXp5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUErQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLbEksT0FBTyxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU3hKLE1BQU0sT0FBTyxtQkFBbUI7SUF5QzlCLFlBQ1UsbUJBQXdDLEVBQ3pDLHFCQUE0QztRQUQzQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3pDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUExQ3JELHFCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUk3QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLHdCQUFtQixHQUFXLENBQUMsQ0FBQztRQUNoQyxtQkFBYyxHQUErQixtQkFBbUIsQ0FBQztRQUkzQyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUd0QixtQkFBYyxHQUFXLEVBQUUsQ0FBQztRQVk1QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO1FBRTFELG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN0Qyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzVDLDBCQUFx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O3NCQUEvQyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZSwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIExhenlMb2FkRXZlbnQgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XHJcbmltcG9ydCB7IExhenlFbGVtZW50UXVlcnlSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9sYXp5LWVsZW1lbnQtcXVlcnktcmVxdWVzdC5tb2RlbCc7XHJcbmltcG9ydCB7IFdhcHBUYWJsZUxhenlMb2FkaW5nIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy93YXBwLXRhYmxlLWxhenktbG9hZGluZy5tb2RlbCc7XHJcbmltcG9ydCB7IEN1c3RvbUNvbG9yLCBUYWJsZUNvbHVtbkZpbHRlclR5cGVzLCBUYWJsZUNvbHVtblR5cGVzLCBXRGF0ZVBpcGVGb3JtYXRUeXBlLCBXYXBwVGFibGVDb2x1bW5BbGlnblR5cGVzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9lbnVtcy5tb2RlbCc7XHJcbmltcG9ydCB7IERhdGVDb252ZXJzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9kYXRlLWNvbnZlcnNpb24uc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3LXRhYmxlLWxhenknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93LXRhYmxlLWxhenkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ctdGFibGUtbGF6eS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXVGFibGVMYXp5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBzZWxlY3RlZEVsZW1lbnRzOiBhbnlbXSA9IFtdO1xyXG4gIHRyYW5zbGF0aW9uczogYW55O1xyXG4gIGxhc3RRdWVyeSE6IExhenlFbGVtZW50UXVlcnlSZXF1ZXN0O1xyXG5cclxuICBzZWxlY3RBbGw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmaWx0ZXJFbGVtZW50c0luZGV4OiBudW1iZXIgPSAwO1xyXG4gIHdhcHBEYXRlRm9ybWF0OiB0eXBlb2YgV0RhdGVQaXBlRm9ybWF0VHlwZSA9IFdEYXRlUGlwZUZvcm1hdFR5cGU7XHJcblxyXG4gIEBJbnB1dCgnbG9hZGluZycpIGxvYWRpbmchOiBib29sZWFuO1xyXG4gIEBJbnB1dCgnZWxlbWVudHMnKSBlbGVtZW50cyE6IGFueVtdO1xyXG4gIEBJbnB1dCgncm93c1BlclBhZ2UnKSByb3dzUGVyUGFnZTogbnVtYmVyID0gMTA7XHJcbiAgQElucHV0KCdhbGxFbGVtZW50cycpIGFsbEVsZW1lbnRzITogYW55W107XHJcbiAgQElucHV0KCd0b3RhbFJlY29yZHMnKSB0b3RhbFJlY29yZHMhOiBudW1iZXI7XHJcbiAgQElucHV0KCdtYXhSb3dzUGVyUGFnZScpIG1heFJvd3NQZXJQYWdlOiBudW1iZXIgPSA1MDtcclxuICAvLyBASW5wdXQoJ3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Jykgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QhOiBXYXBwVGFibGVMYXp5TG9hZGluZztcclxuICBwcml2YXRlIF93YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdCE6IFdhcHBUYWJsZUxhenlMb2FkaW5nO1xyXG5cclxuICBASW5wdXQoJ3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Jykgc2V0IHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0KHZhbHVlOiBXYXBwVGFibGVMYXp5TG9hZGluZykge1xyXG4gICAgdGhpcy5fd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdCgpIHtcclxuICAgIHJldHVybiB0aGlzLl93YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdDtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoJ3F1ZXJ5RWxlbWVudHMnKSBxdWVyeUVsZW1lbnRzID0gbmV3IEV2ZW50RW1pdHRlcjxMYXp5RWxlbWVudFF1ZXJ5UmVxdWVzdD4oKTtcclxuXHJcbiAgQE91dHB1dCgnb25FbGVtZW50U2VsZWN0Jykgb25FbGVtZW50U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgnb25WaWV3RWxlbWVudFNlbGVjdCcpIG9uVmlld0VsZW1lbnRTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCdvbkN1c3RvbUVsZW1lbnRTZWxlY3QnKSBvbkN1c3RvbUVsZW1lbnRTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCdvbkNvcHlFbGVtZW50U2VsZWN0Jykgb25Db3B5RWxlbWVudFNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoJ29uRWRpdEVsZW1lbnRTZWxlY3QnKSBvbkVkaXRFbGVtZW50U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgnb25EZWxldGVFbGVtZW50U2VsZWN0Jykgb25EZWxldGVFbGVtZW50U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcclxuICBAT3V0cHV0KCdvbkFsbEVsZW1lbnRTZWxlY3QnKSBvbkFsbEVsZW1lbnRTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQE91dHB1dCgnb25QYWdlQ2hhbmdlJykgb25QYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgnb25TZWxlY3RlZEVsZW1lbnRzQ2hhbmdlJykgb25TZWxlY3RlZEVsZW1lbnRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgnb25TZWNvbmRhcnlDaGVja2JveENoYW5nZScpIG9uU2Vjb25kYXJ5Q2hlY2tib3hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgndGFibGUnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGF0YVRhYmxlITogVGFibGU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLCBcclxuICAgIHB1YmxpYyBkYXRlQ29udmVyc2lvblNlcnZpY2U6IERhdGVDb252ZXJzaW9uU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIFxyXG4gICAgaWYodGhpcy5fd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzU2VsZWN0QWxsQ2hlY2tib3ggPT0gdW5kZWZpbmVkKXtcclxuICAgICAgdGhpcy5fd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzU2VsZWN0QWxsQ2hlY2tib3ggPSB0cnVlOyBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvYWRFbGVtZW50cyhldmVudDogTGF6eUxvYWRFdmVudCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIGxldCBhZGFwdGVkUXVlcnk6IExhenlFbGVtZW50UXVlcnlSZXF1ZXN0ID0ge1xyXG4gICAgICBmaXJzdDogZXZlbnQuZmlyc3QhLFxyXG4gICAgICByb3dzOiB0aGlzLnJvd3NQZXJQYWdlISxcclxuICAgICAgc29ydE9yZGVyOiBldmVudC5zb3J0T3JkZXIhLFxyXG4gICAgICBzb3J0RmllbGQ6IGV2ZW50LnNvcnRGaWVsZCEsXHJcbiAgICAgIGZpbHRlcnM6IE9iamVjdC5rZXlzKGV2ZW50LmZpbHRlcnMhKS5tYXAoKGtleSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBjb2x1bW5OYW1lOiBrZXkhLFxyXG4gICAgICAgICAgdmFsdWU6IGV2ZW50LmZpbHRlcnMhW2tleV0udmFsdWUsXHJcbiAgICAgICAgICBtYXRjaE1vZGU6IGV2ZW50LmZpbHRlcnMhW2tleV0ubWF0Y2hNb2RlIVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIHRoaXMubGFzdFF1ZXJ5ID0gYWRhcHRlZFF1ZXJ5O1xyXG4gICAgdGhpcy5xdWVyeUVsZW1lbnRzLmVtaXQoYWRhcHRlZFF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIHJlbG9hZEVsZW1lbnRzKCkge1xyXG4gICAgdGhpcy5sYXN0UXVlcnkucm93cyA9IHRoaXMucm93c1BlclBhZ2U7XHJcbiAgICB0aGlzLnF1ZXJ5RWxlbWVudHMuZW1pdCh0aGlzLmxhc3RRdWVyeSk7XHJcbiAgfVxyXG5cclxuICByZWFkUHJvcGVydHkob2JqOiBhbnksIHByb3A6IHN0cmluZyk6IGFueSB7XHJcbiAgICBpZiAocHJvcCA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gcHJvcC5zcGxpdCgnLicpO1xyXG4gICAgbGV0IHJlc3VsdCA9IG9iajtcclxuXHJcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcclxuICAgICAgY29uc3QgbWF0Y2ggPSBwcm9wZXJ0eS5tYXRjaCgvKC4rPylcXFsoXFxkKylcXF0vKTtcclxuICAgICAgaWYgKG1hdGNoKSB7XHJcbiAgICAgICAgY29uc3QgYXJyYXlQcm9wID0gbWF0Y2hbMV07XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSBwYXJzZUludChtYXRjaFsyXSwgMTApO1xyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShyZXN1bHRbYXJyYXlQcm9wXSkgfHwgaXNOYU4oaW5kZXgpIHx8IGluZGV4IDwgMCB8fCBpbmRleCA+PSByZXN1bHRbYXJyYXlQcm9wXS5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdFthcnJheVByb3BdW2luZGV4XTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdFtwcm9wZXJ0eV0gPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXN1bHQgPSByZXN1bHRbcHJvcGVydHldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIG9uRWxlbWVudChlbGVtZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25FbGVtZW50U2VsZWN0LmVtaXQoZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICB2aWV3RWxlbWVudChlbGVtZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25WaWV3RWxlbWVudFNlbGVjdC5lbWl0KGVsZW1lbnQpO1xyXG4gIH1cclxuICBjdXN0b21FbGVtZW50KGVsZW1lbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vbkN1c3RvbUVsZW1lbnRTZWxlY3QuZW1pdChlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIGVkaXRFbGVtZW50KGVsZW1lbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vbkVkaXRFbGVtZW50U2VsZWN0LmVtaXQoZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBjb25maXJtRGVsZXRlU2VsZWN0aW9uKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcclxuICAgICAgdGFyZ2V0OiBldmVudC50YXJnZXQgYXMgRXZlbnRUYXJnZXQsXHJcbiAgICAgIG1lc3NhZ2U6IHRoaXMuX3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbmZpcm1NdWx0aXBsZURlbGV0ZUxhYmVsLFxyXG4gICAgICBpY29uOiBcInBpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCIsXHJcbiAgICAgIGFjY2VwdExhYmVsOiB0aGlzLl93YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb25maXJtRGVsZXRlQnRuTGFiZWwsXHJcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWRFbGVtZW50cygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVNlbGVjdGVkRWxlbWVudHMoKSB7XHJcbiAgICB0aGlzLm9uRGVsZXRlRWxlbWVudFNlbGVjdC5lbWl0KHRoaXMuc2VsZWN0ZWRFbGVtZW50cylcclxuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50cyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgY29uZmlybURlbGV0ZShldmVudDogRXZlbnQsIGVsZW1lbnQ6IGFueSkge1xyXG4gICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xyXG4gICAgICB0YXJnZXQ6IGV2ZW50LnRhcmdldCBhcyBFdmVudFRhcmdldCxcclxuICAgICAgbWVzc2FnZTogdGhpcy5fd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29uZmlybVNpbmdsZURlbGV0ZUxhYmVsLFxyXG4gICAgICBpY29uOiBcInBpIHBpLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCIsXHJcbiAgICAgIGFjY2VwdExhYmVsOiB0aGlzLl93YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb25maXJtRGVsZXRlQnRuTGFiZWwsXHJcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGVsZXRlU2luZ2xlRWxlbWVudChlbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVTaW5nbGVFbGVtZW50KGVsZW1lbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vbkRlbGV0ZUVsZW1lbnRTZWxlY3QuZW1pdChbZWxlbWVudF0pXHJcbiAgfVxyXG5cclxuICBjb3B5RWxlbWVudChlbGVtZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25Db3B5RWxlbWVudFNlbGVjdC5lbWl0KGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgY29uZmlybUNvcHkoZXZlbnQ6IEV2ZW50LCBlbGVtZW50OiBhbnkpIHtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcclxuICAgICAgdGFyZ2V0OiBldmVudC50YXJnZXQgYXMgRXZlbnRUYXJnZXQsXHJcbiAgICAgIG1lc3NhZ2U6IHRoaXMuX3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbmZpcm1Db3B5TGFiZWwsXHJcbiAgICAgIGljb246IFwicGkgcGktZXhjbGFtYXRpb24tdHJpYW5nbGVcIixcclxuICAgICAgYWNjZXB0TGFiZWw6IHRoaXMuX3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbmZpcm1Db3B5QnRuTGFiZWwsXHJcbiAgICAgIGFjY2VwdDogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY29weUVsZW1lbnQoZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3Rpb25DaGFuZ2UodmFsdWUgPSBbXSkge1xyXG4gICAgdGhpcy5zZWxlY3RBbGwgPSB2YWx1ZS5sZW5ndGggPT09IHRoaXMudG90YWxSZWNvcmRzO1xyXG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnRzID0gdmFsdWU7XHJcbiAgICB0aGlzLm9uU2VsZWN0ZWRFbGVtZW50c0NoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRFbGVtZW50cyk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdEFsbENoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBjaGVja2VkID0gZXZlbnQuY2hlY2tlZDtcclxuXHJcbiAgICBpZiAoY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLm9uQWxsRWxlbWVudFNlbGVjdC5lbWl0KHRydWUpO1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudHMgPSB0aGlzLl93YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5kaXNhYmxlQ2hlY2tib3ggPyB0aGlzLmdldFNlbGVjdGFibGVFbGVtZW50cyh0aGlzLmFsbEVsZW1lbnRzKSA6IHRoaXMuYWxsRWxlbWVudHM7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RBbGwgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LCAxMDAwKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudHMgPSBbXTtcclxuICAgICAgdGhpcy5zZWxlY3RBbGwgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5vblNlbGVjdGVkRWxlbWVudHNDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkRWxlbWVudHMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0YWJsZUVsZW1lbnRzKGFsbEVsZW1lbnRzOiBhbnlbXSkge1xyXG4gICAgcmV0dXJuIGFsbEVsZW1lbnRzLmZpbHRlcigoZWxlbWVudDogYW55KSA9PiAhdGhpcy5yZWFkUHJvcGVydHkoZWxlbWVudCwgdGhpcy5fd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuZGlzYWJsZUNoZWNrYm94ISkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Qm9vbGVhbkNvbHVtbkNsYXNzKGluZGV4OiBudW1iZXIsIHZhbHVlUHJvcGVydHk6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IGJvb2xlYW5JY29uQ2xhc3NlcyA9IFtdO1xyXG5cclxuICAgIGlmICh2YWx1ZVByb3BlcnR5ID09IHRydWUpIHtcclxuICAgICAgYm9vbGVhbkljb25DbGFzc2VzLnB1c2godGhpcy5fd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQm9vbGVhblR5cGVJY29uc1tpbmRleF0udHJ1ZUljb24gPz8gJycpO1xyXG4gICAgICBib29sZWFuSWNvbkNsYXNzZXMucHVzaCh0aGlzLl93YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5Cb29sZWFuVHlwZUljb25zW2luZGV4XS50cnVlSWNvbkNvbG9yID8/ICcnKTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWVQcm9wZXJ0eSA9PSBmYWxzZSkge1xyXG4gICAgICBib29sZWFuSWNvbkNsYXNzZXMucHVzaCh0aGlzLl93YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5Cb29sZWFuVHlwZUljb25zW2luZGV4XS5mYWxzZUljb24gPz8gJycpO1xyXG4gICAgICBib29sZWFuSWNvbkNsYXNzZXMucHVzaCh0aGlzLl93YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5Cb29sZWFuVHlwZUljb25zW2luZGV4XS5mYWxzZUljb25Db2xvcikgPz8gJyc7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlUHJvcGVydHkgPT0gbnVsbCkge1xyXG4gICAgICBib29sZWFuSWNvbkNsYXNzZXMucHVzaCh0aGlzLl93YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5Cb29sZWFuVHlwZUljb25zW2luZGV4XS5udWxsSWNvbiA/PyAnJyk7XHJcbiAgICAgIGJvb2xlYW5JY29uQ2xhc3Nlcy5wdXNoKHRoaXMuX3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkJvb2xlYW5UeXBlSWNvbnNbaW5kZXhdLm51bGxJY29uQ29sb3IgPz8gJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBib29sZWFuSWNvbkNsYXNzZXM7XHJcbiAgfVxyXG5cclxuICBvblNlY29uZGFyeUNoZWNrYm94Q2hhbmdlcyhlbGVtZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25TZWNvbmRhcnlDaGVja2JveENoYW5nZS5lbWl0KGVsZW1lbnQpXHJcbiAgfVxyXG5cclxuICBjbGVhcih0YWJsZTogVGFibGUpIHtcclxuICAgIHRhYmxlLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRhYmxlQ29sdW1uRmlsdGVyVHlwZXMoKTogdHlwZW9mIFRhYmxlQ29sdW1uRmlsdGVyVHlwZXMge1xyXG4gICAgcmV0dXJuIFRhYmxlQ29sdW1uRmlsdGVyVHlwZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRhYmxlQ29sdW1uVHlwZXMoKTogdHlwZW9mIFRhYmxlQ29sdW1uVHlwZXMge1xyXG4gICAgcmV0dXJuIFRhYmxlQ29sdW1uVHlwZXM7XHJcbiAgfVxyXG5cclxuICBjbGVhckZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLmRhdGFUYWJsZS5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKGFsaWdubWVudDogbnVtYmVyKSB7XHJcbiAgICBpZihhbGlnbm1lbnQgPT0gV2FwcFRhYmxlQ29sdW1uQWxpZ25UeXBlcy5SaWdodCkgcmV0dXJuICd0ZXh0LXJpZ2h0JztcclxuICAgIGlmKGFsaWdubWVudCA9PSBXYXBwVGFibGVDb2x1bW5BbGlnblR5cGVzLkxlZnQpIHJldHVybiAndGV4dC1sZWZ0JztcclxuICAgIGlmKGFsaWdubWVudCA9PSBXYXBwVGFibGVDb2x1bW5BbGlnblR5cGVzLkNlbnRlcikgcmV0dXJuICd0ZXh0LWNlbnRlcic7XHJcbiAgICByZXR1cm4gJ3RleHQtbGVmdCdcclxuICB9XHJcblxyXG4gIGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzc0RlZmF1bHRCeUNvbHVtblR5cGUoY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlcykge1xyXG4gICAgaWYoY29sdW1uVHlwZSA9PSBUYWJsZUNvbHVtblR5cGVzLlRleHQpIHJldHVybiAndGV4dC1sZWZ0JztcclxuICAgIGlmKGNvbHVtblR5cGUgPT0gVGFibGVDb2x1bW5UeXBlcy5DdXJyZW5jeSkgcmV0dXJuICd0ZXh0LWxlZnQnO1xyXG4gICAgaWYoY29sdW1uVHlwZSA9PSBUYWJsZUNvbHVtblR5cGVzLkRhdGUpIHJldHVybiAndGV4dC1sZWZ0JztcclxuICAgIGlmKGNvbHVtblR5cGUgPT0gVGFibGVDb2x1bW5UeXBlcy5CYWRnZSkgcmV0dXJuICd0ZXh0LWNlbnRlcic7XHJcbiAgICBpZihjb2x1bW5UeXBlID09IFRhYmxlQ29sdW1uVHlwZXMuQm9vbGVhbikgcmV0dXJuICd0ZXh0LWNlbnRlcic7XHJcbiAgICBpZihjb2x1bW5UeXBlID09IFRhYmxlQ29sdW1uVHlwZXMuSW1hZ2UpIHJldHVybiAndGV4dC1jZW50ZXInO1xyXG4gICAgaWYoY29sdW1uVHlwZSA9PSBUYWJsZUNvbHVtblR5cGVzLk51bWJlcikgcmV0dXJuICd0ZXh0LXJpZ2h0JztcclxuICAgIHJldHVybiAndGV4dC1sZWZ0J1xyXG4gIH1cclxuXHJcbiAgY2FsY3VsYXRlQ29sc3BhbigpIHtcclxuICAgIGxldCBjb2xzcGFuID0gdGhpcy5fd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGVhZGVycy5sZW5ndGg7XHJcbiAgICB0aGlzLl93YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDaGVja2JveCA/IFxyXG4gICAgICBjb2xzcGFuICs9IDEgOiAnJztcclxuICAgICAgdGhpcy5oYXNBY3Rpb25CdXR0b25zKCkgP1xyXG4gICAgICAgIGNvbHNwYW4gKz0gMSA6ICcnO1xyXG4gICAgICByZXR1cm4gY29sc3BhbjtcclxuICB9XHJcblxyXG4gIGhhc0FjdGlvbkJ1dHRvbnMoKSA6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NvcHlCdXR0b24gfHxcclxuICAgICAgICAgICAgdGhpcy5fd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzRWRpdEJ1dHRvbiB8fFxyXG4gICAgICAgICAgICB0aGlzLl93YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNWaWV3QnV0dG9uIHx8XHJcbiAgICAgICAgICAgIHRoaXMuX3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0RlbGV0ZUJ1dHRvbiB8fCBcclxuICAgICAgICAgICAgdGhpcy5fd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3Q/Lmhhc0N1c3RvbUJ1dHRvbiA/XHJcbiAgICAgICAgICB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoUGFnaW5hdGlvbihmaXJzdDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmRhdGFUYWJsZS5fZmlyc3QgPSBmaXJzdDtcclxuICB9XHJcblxyXG4gIHBhZ2VDaGFuZ2UoZWxlbWVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uUGFnZUNoYW5nZS5lbWl0KGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnV0dG9uQ3VzdG9tQ29sb3JDbGFzcyhjdXN0b21Db2xvcjogQ3VzdG9tQ29sb3IpIHtcclxuICAgIGlmKGN1c3RvbUNvbG9yID09IEN1c3RvbUNvbG9yLmRhcmtCbHVlMSkgeyByZXR1cm4gJ2RhcmtCbHVlMScgfVxyXG4gICAgaWYoY3VzdG9tQ29sb3IgPT0gQ3VzdG9tQ29sb3IuZGFya0JsdWUyKSB7IHJldHVybiAnZGFya0JsdWUyJyB9XHJcbiAgICBpZihjdXN0b21Db2xvciA9PSBDdXN0b21Db2xvci5kYXJrQmx1ZTMpIHsgcmV0dXJuICdkYXJrQmx1ZTMnIH1cclxuICAgIGlmKGN1c3RvbUNvbG9yID09IEN1c3RvbUNvbG9yLnB1cnBsZTEpIHsgcmV0dXJuICdwdXJwbGUxJyB9XHJcbiAgICBpZihjdXN0b21Db2xvciA9PSBDdXN0b21Db2xvci5wdXJwbGUyKSB7IHJldHVybiAncHVycGxlMicgfVxyXG4gICAgaWYoY3VzdG9tQ29sb3IgPT0gQ3VzdG9tQ29sb3IucHVycGxlMykgeyByZXR1cm4gJ3B1cnBsZTMnIH1cclxuICAgIGlmKGN1c3RvbUNvbG9yID09IEN1c3RvbUNvbG9yLnBpbmsxKSB7IHJldHVybiAncGluazEnIH1cclxuICAgIGlmKGN1c3RvbUNvbG9yID09IEN1c3RvbUNvbG9yLnBpbmsyKSB7IHJldHVybiAncGluazInIH1cclxuICAgIGlmKGN1c3RvbUNvbG9yID09IEN1c3RvbUNvbG9yLnBpbmszKSB7IHJldHVybiAncGluazMnIH1cclxuICAgIGlmKGN1c3RvbUNvbG9yID09IEN1c3RvbUNvbG9yLmdyZWVuMSkgeyByZXR1cm4gJ2dyZWVuMScgfVxyXG4gICAgaWYoY3VzdG9tQ29sb3IgPT0gQ3VzdG9tQ29sb3IuZ3JlZW4yKSB7IHJldHVybiAnZ3JlZW4yJyB9XHJcbiAgICBpZihjdXN0b21Db2xvciA9PSBDdXN0b21Db2xvci5ncmVlbjMpIHsgcmV0dXJuICdncmVlbjMnIH1cclxuICAgIGlmKGN1c3RvbUNvbG9yID09IEN1c3RvbUNvbG9yLmVycm9yMSkgeyByZXR1cm4gJ2Vycm9yMScgfVxyXG4gICAgaWYoY3VzdG9tQ29sb3IgPT0gQ3VzdG9tQ29sb3IuZXJyb3IyKSB7IHJldHVybiAnZXJyb3IyJyB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cIi5maWx0ZXItcGFuZWxcIj48L25nLWNvbnRlbnQ+XHJcbjxkaXYgKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdFwiIFtjbGFzcy50YWJsZS1jb250YWluZXJdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QudGFibGVDb250YWluZXJcIj5cclxuICAgIDxwLXRhYmxlIGNsYXNzPVwidy10YWJsZS1zdHlsZXNcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J3ctdGFibGUtbm8tYnV0dG9ucycgOiAhd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzRWRpdEJ1dHRvbiAmJiAhd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzRGVsZXRlQnV0dG9uICYmICF3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDb3B5QnV0dG9uICYmICF3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jdXN0b21CdXR0b25Db25maWcgJiYgIXdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc1ZpZXdCdXR0b259XCJcclxuICAgICAgICAgICAgI3RhYmxlIFt2YWx1ZV09XCJlbGVtZW50c1wiIFxyXG4gICAgICAgICAgICBkYXRhS2V5PVwie3t3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5pZGVudGlmaWNhdG9yfX1cIlxyXG4gICAgICAgICAgICBbbGF6eV09XCJ0cnVlXCIgXHJcbiAgICAgICAgICAgIFtyb3dIb3Zlcl09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNWaWV3QnV0dG9uIVwiXHJcbiAgICAgICAgICAgIChvbkxhenlMb2FkKT1cImxvYWRFbGVtZW50cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgW3NlbGVjdGlvbl09XCJzZWxlY3RlZEVsZW1lbnRzXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgW3NlbGVjdEFsbF09XCJzZWxlY3RBbGxcIiAoc2VsZWN0QWxsQ2hhbmdlKT1cIm9uU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICBbcGFnaW5hdG9yXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc1BhZ2luYXRvciEgJiYgdG90YWxSZWNvcmRzID49IDEwXCJcclxuICAgICAgICAgICAgW3Jvd3NdPVwicm93c1BlclBhZ2VcIiBcclxuICAgICAgICAgICAgW2N1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGVdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZSA/IHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmN1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGUgKyAnICcgKyAgcm93c1BlclBhZ2UgKyAnIGRlICcgKyB0b3RhbFJlY29yZHMhIDogJ1Nob3dpbmcgJyArIHJvd3NQZXJQYWdlICsgJyBvZiAnICsgdG90YWxSZWNvcmRzIVwiXHJcbiAgICAgICAgICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuICAgICAgICAgICAgW3Nob3dDdXJyZW50UGFnZVJlcG9ydF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgICAgICAgICBbc2hvd0xvYWRlcl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFtnbG9iYWxGaWx0ZXJGaWVsZHNdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuZ2xvYmFsRmlsdGVyRmllbGRzIVwiXHJcbiAgICAgICAgICAgIFt0YWJsZVN0eWxlXT1cInsnbWluLXdpZHRoJzogd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QudGFibGVNaW5XaWR0aCF9XCJcclxuICAgICAgICAgICAgKG9uUGFnZSk9XCJwYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICBzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc3RyaXBlZFwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsZWFyQnV0dG9uIHx8IHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0dsb2JhbFNlYXJjaFwiIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB0YWJsZS1wYWdpbmF0b3IgcC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc1RvdGFsUGFnaW5nU2VsZWN0b3JcIiBjbGFzcz1cInNob3dpbmctcGVyLXBhZ2VcIj4ge3t3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNUb3RhbFBhZ2luZ1NlbGVjdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBsLTIgc2hvd2luZy1wZXItcGFnZVwiIFtzaXplXT1cIjFcIiBbKG5nTW9kZWwpXT1cInJvd3NQZXJQYWdlXCIgW3Nob3dCdXR0b25zXT1cInRydWVcIiBcclxuICAgICAgICAgICAgICAgICAgICBidXR0b25MYXlvdXQ9XCJob3Jpem9udGFsXCIgaW5wdXRJZD1cImhvcml6b250YWxcIiBzcGlubmVyTW9kZT1cImhvcml6b250YWxcIiBbc3RlcF09XCIxXCIgW21pbl09XCIxXCIgW21heF09XCJtYXhSb3dzUGVyUGFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGVjcmVtZW50QnV0dG9uQ2xhc3M9XCJwLWJ1dHRvbi1vdXRsaW5lZFwiIFxyXG4gICAgICAgICAgICAgICAgICAgIGluY3JlbWVudEJ1dHRvbkNsYXNzPVwicC1idXR0b24tb3V0bGluZWRcIiBcclxuICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRCdXR0b25JY29uPVwicGkgcGktcGx1c1wiIFxyXG4gICAgICAgICAgICAgICAgICAgIGRlY3JlbWVudEJ1dHRvbkljb249XCJwaSBwaS1taW51c1wiIFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGU9XCJkZWNpbWFsXCJcclxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJyZWxvYWRFbGVtZW50cygpXCI+XHJcbiAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Py5oYXNHbG9iYWxTZWFyY2hcIiBjbGFzcz1cInAtaW5wdXQtaWNvbi1sZWZ0IG1sLWF1dG9cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLXNlYXJjaFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJoZWlnaHQtaW5wdXQgdy1pbnB1dFwiIHBJbnB1dFRleHQgdHlwZT1cInRleHRcIiAoaW5wdXQpPVwidGFibGUuZmlsdGVyR2xvYmFsKCRldmVudCwgJ2NvbnRhaW5zJylcIiBwbGFjZWhvbGRlcj1cInt7d2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3Quc2VhcmNoUGxhY2Vob2xkZXJ9fVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgICAgIDx0cj5cclxuICAgICAgICAgICAgPHRoICpuZ0lmPVwiIXdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NvbHVtbkZpbHRlcnMgJiYgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2hlY2tib3g7IGVsc2Ugbm9DaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnblswXSkgOiAndGV4dC1jZW50ZXInXCI+XHJcbiAgICAgICAgICAgICAgICA8cC10YWJsZUhlYWRlckNoZWNrYm94ICpuZ0lmPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzU2VsZWN0QWxsQ2hlY2tib3ggPT0gdHJ1ZVwiPjwvcC10YWJsZUhlYWRlckNoZWNrYm94PlxyXG4gICAgICAgICAgICA8L3RoPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0NoZWNrYm94Pjx0aCAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NoZWNrYm94XCI+PC90aD48L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNTb3J0YWJsZUNvbHVtbnM7IGVsc2Ugc29tZXRoaW5nXCI+XHJcbiAgICAgICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGhlYWRlciBvZiB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdD8uaGVhZGVyczsgaW5kZXggYXMgaVwiIFtjbGFzc109XCJoZWFkZXIgPT0gKCdJbWFnZW4nIHx8ICdJbWFnZScpID8gJ2ltYWdlLWhlYWRlcic6ICcnXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NoZWNrYm94ID8gaSsxIDogaV0pIDogZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzRGVmYXVsdEJ5Q29sdW1uVHlwZSh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5UeXBlc1t3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDaGVja2JveCA/IGkrMSA6IGldKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7aGVhZGVyfX1cclxuICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzb21ldGhpbmc+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NvbWV0aGluZyBuZ0ZvciBsZXQtZmlsdGVyVHlwZSBbbmdGb3JPZl09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oZWFkZXJzXCIgbGV0LWk9XCJpbmRleFwiPiBcclxuICAgICAgICAgICAgICAgICAgICA8dGggW3BTb3J0YWJsZUNvbHVtbl09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5zb3J0YWJsZU5hbWVzW2ldXCIgW2NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmhlYWRlcnNbaV0gPT0gKCdJbWFnZW4nIHx8ICdJbWFnZScpID8gJ2ltYWdlLWhlYWRlcic6ICcnXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnblt3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDaGVja2JveCA/IGkrMSA6IGldKSA6IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzc0RlZmF1bHRCeUNvbHVtblR5cGUod2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uVHlwZXNbd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2hlY2tib3ggPyBpKzEgOiBpXSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmhlYWRlcnNbaV19fSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1zb3J0SWNvbiAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LnNvcnRhYmxlTmFtZXNbaV0gIT0gbnVsbFwiIFtmaWVsZF09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5zb3J0YWJsZU5hbWVzW2ldXCI+PC9wLXNvcnRJY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8dGggKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNEZWxldGVCdXR0b24gfHwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzRWRpdEJ1dHRvbiB8fCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNWaWV3QnV0dG9uIHx8IHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NvcHlCdXR0b24gfHwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3Q/Lmhhc0N1c3RvbUJ1dHRvblwiPjwvdGg+XHJcbiAgICAgICAgPC90cj5cclxuXHJcbiAgICAgICAgPHRyICpuZ0lmPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ29sdW1uRmlsdGVyc1wiPlxyXG4gICAgICAgICAgICA8dGggKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDaGVja2JveFwiIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduWzBdKSA6ICd0ZXh0LWxlZnQnXCI+XHJcbiAgICAgICAgICAgICAgICA8cC10YWJsZUhlYWRlckNoZWNrYm94PjwvcC10YWJsZUhlYWRlckNoZWNrYm94PlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8dGggKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNJbWFnZVwiIFxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ24gPyBnZXRUYWJsZUNvbHVtbkFsaWduQ2xhc3Mod2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ25bd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2hlY2tib3ggPyAxIDogMF0pIDogZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzRGVmYXVsdEJ5Q29sdW1uVHlwZSh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5UeXBlc1t3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDaGVja2JveCA/IDEgOiAwXSlcIj5cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1maWx0ZXJUeXBlIFtuZ0Zvck9mXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkZpbHRlclR5cGVzXCIgbGV0LWk9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiZmlsdGVyVHlwZSA9PSB0YWJsZUNvbHVtbkZpbHRlclR5cGVzLlRleHRcIiBcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW2ldKSA6ICd0ZXh0LWxlZnQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtY29sdW1uRmlsdGVyIHR5cGU9XCJ0ZXh0XCIgW2ZpZWxkXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmZpbHRlck5hbWVzW2ldXCI+PC9wLWNvbHVtbkZpbHRlcj5cclxuICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCJmaWx0ZXJUeXBlID09IHRhYmxlQ29sdW1uRmlsdGVyVHlwZXMuTXVsdGlzZWxlY3RcIiBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1sZWZ0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwLWNvbHVtbkZpbHRlciBbZmllbGRdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuZmlsdGVyTmFtZXNbaV1cIiBtYXRjaE1vZGU9XCJpblwiIFtzaG93TWVudV09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZmlsdGVyXCIgbGV0LXZhbHVlIGxldC1maWx0ZXI9XCJmaWx0ZXJDYWxsYmFja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtbXVsdGlTZWxlY3QgW25nTW9kZWxdPVwidmFsdWVcIiBhcHBlbmRUbz1cImJvZHlcIiBbb3B0aW9uc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5zZWxlY3RGaWx0ZXJFbGVtZW50c1tpXVwiIHBsYWNlaG9sZGVyPVwiQW55XCIgKG9uQ2hhbmdlKT1cImZpbHRlcigkZXZlbnQudmFsdWUpXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgW21heFNlbGVjdGVkTGFiZWxzXT1cIjFcIiBbc2VsZWN0ZWRJdGVtc0xhYmVsXT1cIid7MH0gaXRlbXMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1vcHRpb24gcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1tdWx0aXNlbGVjdC1yZXByZXNlbnRhdGl2ZS1vcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMVwiPnt7b3B0aW9uLm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1tdWx0aVNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L3AtY29sdW1uRmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cImZpbHRlclR5cGUgPT0gdGFibGVDb2x1bW5GaWx0ZXJUeXBlcy5Ob25lXCI+PC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cImZpbHRlclR5cGUgPT0gdGFibGVDb2x1bW5GaWx0ZXJUeXBlcy5Cb29sZWFuXCIgW25nQ2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ24gPyBnZXRUYWJsZUNvbHVtbkFsaWduQ2xhc3Mod2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ25baV0pIDogJ3RleHQtY2VudGVyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwLWNvbHVtbkZpbHRlciB0eXBlPVwiYm9vbGVhblwiIFtmaWVsZF09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5maWx0ZXJOYW1lc1tpXVwiPjwvcC1jb2x1bW5GaWx0ZXI+XHJcbiAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiZmlsdGVyVHlwZSA9PSB0YWJsZUNvbHVtbkZpbHRlclR5cGVzLkRhdGVcIiBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1sZWZ0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwLWNvbHVtbkZpbHRlciB0eXBlPVwiZGF0ZVwiIFtmaWVsZF09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5maWx0ZXJOYW1lc1tpXVwiPjwvcC1jb2x1bW5GaWx0ZXI+XHJcbiAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8dGggKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNEZWxldGVCdXR0b24gfHwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzRWRpdEJ1dHRvbiB8fCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNWaWV3QnV0dG9uIHx8IHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NvcHlCdXR0b24gfHwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3Q/Lmhhc0N1c3RvbUJ1dHRvblwiPjwvdGg+XHJcbiAgICAgICAgPC90cj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1lbGVtZW50IGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgICAgICAgPHRyICpuZ0lmPVwiIWxvYWRpbmdcIiBbbmdDbGFzc109XCJ7J3Jvdy1ob3Zlcic6IHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc1ZpZXdCdXR0b259XCIgXHJcbiAgICAgICAgKGNsaWNrKT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/IG9uRWxlbWVudChlbGVtZW50KSA6ICcnXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1jb2x1bW5UeXBlIFtuZ0Zvck9mXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtblR5cGVzXCIgbGV0LWk9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJjb2x1bW5UeXBlID09IHRhYmxlQ29sdW1uVHlwZXMuQ2hlY2tib3ggJiYgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2hlY2tib3hcIiBbc3R5bGVdPVwiJ3dpZHRoOiAnK3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbldpZHRoc1tpXVwiIGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5kaXNhYmxlQ2hlY2tib3g7IGVsc2UgYWN0aXZlQ2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cC10YWJsZUNoZWNrYm94IFt2YWx1ZV09XCJlbGVtZW50XCIgW2Rpc2FibGVkXT1cInJlYWRQcm9wZXJ0eShlbGVtZW50LCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5kaXNhYmxlQ2hlY2tib3gpXCI+PC9wLXRhYmxlQ2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYWN0aXZlQ2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtdGFibGVDaGVja2JveCBbdmFsdWVdPVwiZWxlbWVudFwiPjwvcC10YWJsZUNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiY29sdW1uVHlwZSA9PSB0YWJsZUNvbHVtblR5cGVzLkltYWdlXCIgW3N0eWxlXT1cIid3aWR0aDogJyt3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5XaWR0aHNbaV1cIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ24gPyBnZXRUYWJsZUNvbHVtbkFsaWduQ2xhc3Mod2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ25baV0pIDogJ3RleHQtY2VudGVyJ1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gdmlld0VsZW1lbnQoZWxlbWVudCkgOiAnJ1wiIFtjbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyAndy10YWJsZS1sYXp5LXNlbGVjdGFibGUtcm93JyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwicmVhZFByb3BlcnR5KGVsZW1lbnQsIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbnNbaV0pXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwicmVhZFByb3BlcnR5KGVsZW1lbnQsIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbnNbaV0pXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWxlbWVudC1pbWFnZS13aWR0aFwiLz5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiY29sdW1uVHlwZSA9PSB0YWJsZUNvbHVtblR5cGVzLlRleHRcIiAgW3N0eWxlXT1cIid3aWR0aDogJyt3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5XaWR0aHNbaV1cIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ24gPyBnZXRUYWJsZUNvbHVtbkFsaWduQ2xhc3Mod2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ25baV0pIDogJ3RleHQtbGVmdCdcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/IHZpZXdFbGVtZW50KGVsZW1lbnQpIDogJydcIiBbY2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gJ3ctdGFibGUtbGF6eS1zZWxlY3RhYmxlLXJvdycgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAge3sgcmVhZFByb3BlcnR5KGVsZW1lbnQsIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbnNbaV0pIH19XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cImNvbHVtblR5cGUgPT0gdGFibGVDb2x1bW5UeXBlcy5OdW1iZXJcIiAgW3N0eWxlXT1cIid3aWR0aDogJyt3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5XaWR0aHNbaV1cIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ24gPyBnZXRUYWJsZUNvbHVtbkFsaWduQ2xhc3Mod2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ25baV0pIDogJ3RleHQtcmlnaHQnXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyB2aWV3RWxlbWVudChlbGVtZW50KSA6ICcnXCIgW2NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/ICd3LXRhYmxlLWxhenktc2VsZWN0YWJsZS1yb3cnIDogJydcIj5cclxuICAgICAgICAgICAgICAgIHt7IHJlYWRQcm9wZXJ0eShlbGVtZW50LCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5zW2ldKSB9fVxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJjb2x1bW5UeXBlID09IHRhYmxlQ29sdW1uVHlwZXMuUGVyY2VudGFnZVwiICBbc3R5bGVdPVwiJ3dpZHRoOiAnK3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbldpZHRoc1tpXVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1yaWdodCdcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/IHZpZXdFbGVtZW50KGVsZW1lbnQpIDogJydcIiBbY2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gJ3ctdGFibGUtbGF6eS1zZWxlY3RhYmxlLXJvdycgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAge3sgcmVhZFByb3BlcnR5KGVsZW1lbnQsIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbnNbaV0pIHwgd2FwcFBlcmNlbnRhZ2UgfX1cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiY29sdW1uVHlwZSA9PSB0YWJsZUNvbHVtblR5cGVzLkN1cnJlbmN5XCIgW3N0eWxlXT1cIid3aWR0aDogJyt3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5XaWR0aHNbaV1cIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ24gPyBnZXRUYWJsZUNvbHVtbkFsaWduQ2xhc3Mod2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ25baV0pIDogJ3RleHQtbGVmdCdcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/IHZpZXdFbGVtZW50KGVsZW1lbnQpIDogJydcIiBbY2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gJ3ctdGFibGUtbGF6eS1zZWxlY3RhYmxlLXJvdycgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAge3sgcmVhZFByb3BlcnR5KGVsZW1lbnQsIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbnNbaV0pIHwgd2FwcEN1cnJlbmN5IH19XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cImNvbHVtblR5cGUgPT0gdGFibGVDb2x1bW5UeXBlcy5CYWRnZVwiIFtzdHlsZV09XCInd2lkdGg6ICcrd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uV2lkdGhzW2ldXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW2ldKSA6ICd0ZXh0LWNlbnRlcidcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/IHZpZXdFbGVtZW50KGVsZW1lbnQpIDogJydcIiBbY2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gJ3ctdGFibGUtbGF6eS1zZWxlY3RhYmxlLXJvdycgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgPHctYmFkZ2UgW2xhYmVsXT1cInJlYWRQcm9wZXJ0eShlbGVtZW50LCB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5zW2ldKVwiIFtjb2xvcl09XCInaW5mbydcIj48L3ctYmFkZ2U+ICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cImNvbHVtblR5cGUgPT0gdGFibGVDb2x1bW5UeXBlcy5Db2xvcmVkQmFkZ2VcIiBbc3R5bGVdPVwiJ3dpZHRoOiAnK3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbldpZHRoc1tpXVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1jZW50ZXInXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyB2aWV3RWxlbWVudChlbGVtZW50KSA6ICcnXCIgW2NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/ICd3LXRhYmxlLWxhenktc2VsZWN0YWJsZS1yb3cnIDogJydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGJhZGdlIG9mIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbG9yZWRCYWRnZTsgaW5kZXggYXMgaW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHctYmFkZ2UgKm5nSWY9XCJiYWRnZS5jb2xvcmVkQmFkZ2VQcm9wZXJ0eSA9PSByZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSlcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJyZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSlcIiBbY29sb3JdPVwiYmFkZ2UuY29sb3IgPyBiYWRnZS5jb2xvciA6ICdpbmZvJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdy1iYWRnZT4gIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJjb2x1bW5UeXBlID09IHRhYmxlQ29sdW1uVHlwZXMuQm9vbGVhblwiIFtzdHlsZV09XCInd2lkdGg6ICcrd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uV2lkdGhzW2ldXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduID8gZ2V0VGFibGVDb2x1bW5BbGlnbkNsYXNzKHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbkFsaWduW2ldKSA6ICd0ZXh0LWNlbnRlcidcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/IHZpZXdFbGVtZW50KGVsZW1lbnQpIDogJydcIiBbY2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gJ3ctdGFibGUtbGF6eS1zZWxlY3RhYmxlLXJvdycgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaVwiIFtuZ0NsYXNzXT1cImdldEJvb2xlYW5Db2x1bW5DbGFzcyhpLCByZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSkpXCI+PC9pPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJjb2x1bW5UeXBlID09IHRhYmxlQ29sdW1uVHlwZXMuU2Vjb25kYXJ5Q2hlY2tib3hcIiBbc3R5bGVdPVwiJ3dpZHRoOiAnK3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbldpZHRoc1tpXVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1jZW50ZXInXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyB2aWV3RWxlbWVudChlbGVtZW50KSA6ICcnXCIgW2NsYXNzXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/ICd3LXRhYmxlLWxhenktc2VsZWN0YWJsZS1yb3cnIDogJydcIj5cclxuICAgICAgICAgICAgICAgIDxwLWNoZWNrYm94IFsobmdNb2RlbCldPVwiZWxlbWVudFt3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5zW2ldXVwiIFtiaW5hcnldPVwidHJ1ZVwiIGlucHV0SWQ9XCJiaW5hcnlcIiAobmdNb2RlbENoYW5nZSk9XCJvblNlY29uZGFyeUNoZWNrYm94Q2hhbmdlcyhlbGVtZW50KVwiPjwvcC1jaGVja2JveD5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiY29sdW1uVHlwZSA9PSB0YWJsZUNvbHVtblR5cGVzLkRhdGVcIiBbc3R5bGVdPVwiJ3dpZHRoOiAnK3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbldpZHRoc1tpXVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1sZWZ0J1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gdmlld0VsZW1lbnQoZWxlbWVudCkgOiAnJ1wiIFtjbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyAndy10YWJsZS1sYXp5LXNlbGVjdGFibGUtcm93JyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBkYXRlQ29udmVyc2lvblNlcnZpY2UuZm9ybWF0VVRDRGF0ZShyZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSkpIHwgd2FwcERhdGUgfX1cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiY29sdW1uVHlwZSA9PSB0YWJsZUNvbHVtblR5cGVzLkRhdGVSYXdcIiBbc3R5bGVdPVwiJ3dpZHRoOiAnK3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbldpZHRoc1tpXVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1sZWZ0J1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gdmlld0VsZW1lbnQoZWxlbWVudCkgOiAnJ1wiIFtjbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyAndy10YWJsZS1sYXp5LXNlbGVjdGFibGUtcm93JyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICB7eyByZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSkgfCB3YXBwRGF0ZSB9fVxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJjb2x1bW5UeXBlID09IHRhYmxlQ29sdW1uVHlwZXMuU2hvcnREYXRlXCIgW3N0eWxlXT1cIid3aWR0aDogJyt3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5XaWR0aHNbaV1cIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ24gPyBnZXRUYWJsZUNvbHVtbkFsaWduQ2xhc3Mod2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ25baV0pIDogJ3RleHQtbGVmdCdcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0NsaWNrYWJsZVJvdyA/IHZpZXdFbGVtZW50KGVsZW1lbnQpIDogJydcIiBbY2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gJ3ctdGFibGUtbGF6eS1zZWxlY3RhYmxlLXJvdycgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAge3sgZGF0ZUNvbnZlcnNpb25TZXJ2aWNlLmZvcm1hdFVUQ0RhdGUocmVhZFByb3BlcnR5KGVsZW1lbnQsIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbnNbaV0pKSB8IHdhcHBEYXRlIDogd2FwcERhdGVGb3JtYXQuZCB9fVxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJjb2x1bW5UeXBlID09IHRhYmxlQ29sdW1uVHlwZXMuTG9uZ0RhdGVcIiBbc3R5bGVdPVwiJ3dpZHRoOiAnK3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbldpZHRoc1tpXVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1sZWZ0J1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gdmlld0VsZW1lbnQoZWxlbWVudCkgOiAnJ1wiIFtjbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyAndy10YWJsZS1sYXp5LXNlbGVjdGFibGUtcm93JyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBkYXRlQ29udmVyc2lvblNlcnZpY2UuZm9ybWF0VVRDRGF0ZShyZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSkpIHwgd2FwcERhdGUgOiB3YXBwRGF0ZUZvcm1hdC5EIH19XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cImNvbHVtblR5cGUgPT0gdGFibGVDb2x1bW5UeXBlcy5HZW5lcmFsRGF0ZVRpbWVTaG9ydFRpbWVcIiBbc3R5bGVdPVwiJ3dpZHRoOiAnK3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbldpZHRoc1tpXVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1sZWZ0J1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gdmlld0VsZW1lbnQoZWxlbWVudCkgOiAnJ1wiIFtjbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyAndy10YWJsZS1sYXp5LXNlbGVjdGFibGUtcm93JyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBkYXRlQ29udmVyc2lvblNlcnZpY2UuZm9ybWF0VVRDRGF0ZShyZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSkpIHwgd2FwcERhdGUgOiB3YXBwRGF0ZUZvcm1hdC5nIH19XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cImNvbHVtblR5cGUgPT0gdGFibGVDb2x1bW5UeXBlcy5HZW5lcmFsRGF0ZVRpbWVMb25nVGltZVwiIFtzdHlsZV09XCInd2lkdGg6ICcrd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uV2lkdGhzW2ldXCIgXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1sZWZ0J1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gdmlld0VsZW1lbnQoZWxlbWVudCkgOiAnJ1wiIFtjbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyAndy10YWJsZS1sYXp5LXNlbGVjdGFibGUtcm93JyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBkYXRlQ29udmVyc2lvblNlcnZpY2UuZm9ybWF0VVRDRGF0ZShyZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSkpIHwgd2FwcERhdGUgOiB3YXBwRGF0ZUZvcm1hdC5HIH19XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cImNvbHVtblR5cGUgPT0gdGFibGVDb2x1bW5UeXBlcy5CdWlzaW5lc3NEYXRlVGltZVwiIFtzdHlsZV09XCInd2lkdGg6ICcrd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uV2lkdGhzW2ldXCIgXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbiA/IGdldFRhYmxlQ29sdW1uQWxpZ25DbGFzcyh3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jb2x1bW5BbGlnbltpXSkgOiAndGV4dC1sZWZ0J1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gdmlld0VsZW1lbnQoZWxlbWVudCkgOiAnJ1wiIFtjbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyAndy10YWJsZS1sYXp5LXNlbGVjdGFibGUtcm93JyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICB7eyByZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uc1tpXSkgfCB3YXBwRGF0ZSA6IHdhcHBEYXRlRm9ybWF0LkRhdGUgfX1cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiY29sdW1uVHlwZSA9PSB0YWJsZUNvbHVtblR5cGVzLldlZWtcIiBbc3R5bGVdPVwiJ3dpZHRoOiAnK3dhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbldpZHRoc1tpXVwiIFxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ24gPyBnZXRUYWJsZUNvbHVtbkFsaWduQ2xhc3Mod2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuY29sdW1uQWxpZ25baV0pIDogJ3RleHQtY2VudGVyJ1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzQ2xpY2thYmxlUm93ID8gdmlld0VsZW1lbnQoZWxlbWVudCkgOiAnJ1wiIFtjbGFzc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDbGlja2FibGVSb3cgPyAndy10YWJsZS1sYXp5LXNlbGVjdGFibGUtcm93JyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICA8dy1idXR0b24td2VlayBbdmFsdWVdPVwicmVhZFByb3BlcnR5KGVsZW1lbnQsIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtbnNbaV0pXCIgW3RyYW5zbGF0aW9uc109XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC53ZWVrQnV0dG9uVHJhbnNsYXRpb25zID8gd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3Qud2Vla0J1dHRvblRyYW5zbGF0aW9ucyA6IFtdXCIgW2RlZmF1bHRFc3BdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3Qud2Vla0J1dHRvbkRlZmF1bHRFc3AgPz8gZmFsc2VcIj48L3ctYnV0dG9uLXdlZWs+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LXRhYmxlLWJ1dHRvbnMgZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWVuZFwiPlxyXG4gICAgICAgICAgICA8dy1idXR0b24gKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdD8uaGFzVmlld0J1dHRvblwiIFxyXG4gICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInZpZXdFbGVtZW50KGVsZW1lbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcF09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5idXR0b25Ub29sdGlwcz8udmlld1Rvb2x0aXAhXCJcclxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmJ1dHRvblRvb2x0aXBzPy5wb3NpdGlvbiFcIiBcclxuICAgICAgICAgICAgICAgICAgICBpY29uPVwicGktZXllXCIgdHlwZT1cInRhYmxlXCIgYnV0dG9uQ2xhc3M9XCJ3LXRhYmxlLWJ1dHRvbi12aWV3XCI+XHJcbiAgICAgICAgICAgIDwvdy1idXR0b24+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Py5oYXNDdXN0b21CdXR0b25cIiBuZ0ZvciBsZXQtY3VzdG9tQnV0dG9uQ29uZmlnIFtuZ0Zvck9mXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmN1c3RvbUJ1dHRvbkNvbmZpZ1wiIGxldC1pPVwiaW5kZXhcIj4gXHJcbiAgICAgICAgICAgICAgICA8dy1idXR0b24gKm5nSWY9XCIhY3VzdG9tQnV0dG9uQ29uZmlnPy5kaXNhYmxlUHJvcGVydHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJjdXN0b21FbGVtZW50KHtidXR0b25JZDogY3VzdG9tQnV0dG9uQ29uZmlnLmJ1dHRvbklkLCBlbGVtZW50OiBlbGVtZW50fSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJjdXN0b21CdXR0b25Db25maWc/Lmljb24hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuYnV0dG9uVG9vbHRpcHM/LmN1c3RvbVRvb2x0aXAhW2ldXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5idXR0b25Ub29sdGlwcz8ucG9zaXRpb24hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRhYmxlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25DbGFzc109XCIndy10YWJsZS1idXR0b24tdmlldyAnICsgZ2V0QnV0dG9uQ3VzdG9tQ29sb3JDbGFzcyhjdXN0b21CdXR0b25Db25maWcuY29sb3IhKVwiPlxyXG4gICAgICAgICAgICAgICAgPC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiAqbmdJZj1cImN1c3RvbUJ1dHRvbkNvbmZpZz8uZGlzYWJsZVByb3BlcnR5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiY3VzdG9tRWxlbWVudCh7YnV0dG9uSWQ6IGN1c3RvbUJ1dHRvbkNvbmZpZy5idXR0b25JZCwgZWxlbWVudDogZWxlbWVudH0pXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkUHJvcGVydHkoZWxlbWVudCwgY3VzdG9tQnV0dG9uQ29uZmlnPy5kaXNhYmxlUHJvcGVydHkhKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImN1c3RvbUJ1dHRvbkNvbmZpZz8uaWNvbiFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcF09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5idXR0b25Ub29sdGlwcz8uY3VzdG9tVG9vbHRpcCFbaV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmJ1dHRvblRvb2x0aXBzPy5wb3NpdGlvbiFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGFibGVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvbkNsYXNzXT1cIid3LXRhYmxlLWJ1dHRvbi12aWV3ICcgKyBnZXRCdXR0b25DdXN0b21Db2xvckNsYXNzKGN1c3RvbUJ1dHRvbkNvbmZpZy5jb2xvciEpXCI+XHJcbiAgICAgICAgICAgICAgICA8L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8dy1idXR0b24gKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNFZGl0QnV0dG9uICYmICF3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5kaXNhYmxlRWRpdFByb3BlcnR5XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZWRpdEVsZW1lbnQoZWxlbWVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmJ1dHRvblRvb2x0aXBzPy5lZGl0VG9vbHRpcCFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuYnV0dG9uVG9vbHRpcHM/LnBvc2l0aW9uIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cInBpLXBlbmNpbFwiIHR5cGU9XCJ0YWJsZVwiIGJ1dHRvbkNsYXNzPVwidy10YWJsZS1idXR0b24tZWRpdFwiPlxyXG4gICAgICAgICAgICA8L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICA8dy1idXR0b24gKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNFZGl0QnV0dG9uICYmIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmRpc2FibGVFZGl0UHJvcGVydHlcIiBcclxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJlZGl0RWxlbWVudChlbGVtZW50KVwiIFtkaXNhYmxlZF09XCJyZWFkUHJvcGVydHkoZWxlbWVudCwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuZGlzYWJsZUVkaXRQcm9wZXJ0eSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmJ1dHRvblRvb2x0aXBzPy5lZGl0VG9vbHRpcCFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuYnV0dG9uVG9vbHRpcHM/LnBvc2l0aW9uIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cInBpLXBlbmNpbFwiIHR5cGU9XCJ0YWJsZVwiIGJ1dHRvbkNsYXNzPVwidy10YWJsZS1idXR0b24tZWRpdFwiPlxyXG4gICAgICAgICAgICA8L3ctYnV0dG9uPlxyXG4gICAgICAgICAgICA8dy1idXR0b24gKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdD8uaGFzQ29weUJ1dHRvblwiIFxyXG4gICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImNvbmZpcm1Db3B5KCRldmVudCwgZWxlbWVudClcIiBcclxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcF09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5idXR0b25Ub29sdGlwcz8uY29weVRvb2x0aXAhXCJcclxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmJ1dHRvblRvb2x0aXBzPy5wb3NpdGlvbiFcIlxyXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJwaS1jb3B5XCIgdHlwZT1cInRhYmxlXCIgYnV0dG9uQ2xhc3M9XCJ3LXRhYmxlLWJ1dHRvbi12aWV3XCI+XHJcbiAgICAgICAgICAgIDwvdy1idXR0b24+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3Q/Lmhhc0RlbGV0ZUJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgPHctYnV0dG9uICpuZ0lmPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuZGlzYWJsZURlbGV0ZVByb3BlcnR5OyBlbHNlIG5vRGlzYWJsZURlbGV0ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJjb25maXJtRGVsZXRlKCRldmVudCwgZWxlbWVudClcIiBbZGlzYWJsZWRdPVwicmVhZFByb3BlcnR5KGVsZW1lbnQsIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmRpc2FibGVEZWxldGVQcm9wZXJ0eSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcF09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5idXR0b25Ub29sdGlwcz8uZGVsZXRlVG9vbHRpcCFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmJ1dHRvblRvb2x0aXBzPy5wb3NpdGlvbiFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwicGktdHJhc2hcIiB0eXBlPVwidGFibGVcIiBidXR0b25DbGFzcz1cInctdGFibGUtYnV0dG9uLWRlbGV0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9EaXNhYmxlRGVsZXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiAob25DbGljayk9XCJjb25maXJtRGVsZXRlKCRldmVudCwgZWxlbWVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuYnV0dG9uVG9vbHRpcHM/LmRlbGV0ZVRvb2x0aXAhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwid2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuYnV0dG9uVG9vbHRpcHM/LnBvc2l0aW9uIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwicGktdHJhc2hcIiB0eXBlPVwidGFibGVcIiBidXR0b25DbGFzcz1cInctdGFibGUtYnV0dG9uLWRlbGV0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdy1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwibG9hZGluZ2JvZHlcIj5cclxuICAgICAgICAgICAgPHRyIGhlaWdodD1cIjcwcHhcIiAqbmdGb3I9XCJsZXQgbiBvZiBbMCwxLDIsMyw0XVwiPlxyXG4gICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBpdGVtIG9mIHdhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmNvbHVtblR5cGVzXCIgW3N0eWxlLndpZHRoXT1cIml0ZW0gPT0gdGFibGVDb2x1bW5UeXBlcy5DaGVja2JveCA/ICc4cmVtJyA6ICcnXCIgPlxyXG4gICAgICAgICAgICAgICAgPHAtdGFibGVDaGVja2JveCAqbmdJZj1cIml0ZW0gPT0gdGFibGVDb2x1bW5UeXBlcy5DaGVja2JveCAmJiB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5oYXNDaGVja2JveFwiPjwvcC10YWJsZUNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPHAtc2tlbGV0b24gKm5nSWY9XCJpdGVtID09IHRhYmxlQ29sdW1uVHlwZXMuSW1hZ2VcIiB3aWR0aD1cIjZyZW1cIiBoZWlnaHQ9XCI0cmVtXCI+PC9wLXNrZWxldG9uPlxyXG4gICAgICAgICAgICAgICAgPHAtc2tlbGV0b24gKm5nSWY9XCJpdGVtICE9IHRhYmxlQ29sdW1uVHlwZXMuQ2hlY2tib3ggJiYgaXRlbSAhPSB0YWJsZUNvbHVtblR5cGVzLkltYWdlXCI+PC9wLXNrZWxldG9uPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Lmhhc0VkaXRCdXR0b24gfHwgd2FwcFRhYmxlTGF6eUxvYWRpbmdPYmplY3QuaGFzRGVsZXRlQnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy10YWJsZS1idXR0b25zIGZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx3LWJ1dHRvbiAqbmdJZj1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0Py5oYXNFZGl0QnV0dG9uXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwicGktcGVuY2lsXCIgdHlwZT1cInRhYmxlXCIgYnV0dG9uQ2xhc3M9XCJ3LXRhYmxlLWJ1dHRvbi1lZGl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC93LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdD8uaGFzQ3VzdG9tQnV0dG9uXCIgbmdGb3IgbGV0LWN1c3RvbUJ1dHRvbkNvbmZpZyBbbmdGb3JPZl09XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5jdXN0b21CdXR0b25Db25maWdcIiBsZXQtaT1cImluZGV4XCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dy1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwXT1cIndhcHBUYWJsZUxhenlMb2FkaW5nT2JqZWN0LmJ1dHRvblRvb2x0aXBzPy5jdXN0b21Ub29sdGlwIVtpXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJjdXN0b21CdXR0b25Db25maWc/Lmljb24hXCIgdHlwZT1cInRhYmxlXCIgW2J1dHRvbkNsYXNzXT1cIid3LXRhYmxlLWJ1dHRvbi12aWV3ICcgKyBnZXRCdXR0b25DdXN0b21Db2xvckNsYXNzKGN1c3RvbUJ1dHRvbkNvbmZpZy5jb2xvciEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdy1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8dy1idXR0b24gKm5nSWY9XCJ3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdD8uaGFzRGVsZXRlQnV0dG9uXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwicGktdHJhc2hcIiB0eXBlPVwidGFibGVcIiBidXR0b25DbGFzcz1cInctdGFibGUtYnV0dG9uLWRlbGV0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdy1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxyXG4gICAgICAgIDx0ciBjbGFzcz1cInctdGFibGUtbGF6eS1lbXB0eS1tZXNzYWdlLXBhZGRpbmdcIj5cclxuICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiY2FsY3VsYXRlQ29sc3BhbigpXCI+e3t3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5lbXB0eU1lc3NhZ2UgPyB3YXBwVGFibGVMYXp5TG9hZGluZ09iamVjdC5lbXB0eU1lc3NhZ2UgOiAnTm8gbWF0Y2hlcy4nfX08L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9wLXRhYmxlPlxyXG48L2Rpdj5cclxuPHAtY29uZmlybVBvcHVwPjwvcC1jb25maXJtUG9wdXA+Il19
@@ -1526,10 +1526,16 @@ class WTableLazyComponent {
1526
1526
  this.onSelectedElementsChange = new EventEmitter();
1527
1527
  this.onSecondaryCheckboxChange = new EventEmitter();
1528
1528
  }
1529
+ set wappTableLazyLoadingObject(value) {
1530
+ this._wappTableLazyLoadingObject = value;
1531
+ }
1532
+ get wappTableLazyLoadingObject() {
1533
+ return this._wappTableLazyLoadingObject;
1534
+ }
1529
1535
  ngOnInit() {
1530
1536
  this.loading = true;
1531
- if (this.wappTableLazyLoadingObject.hasSelectAllCheckbox == undefined) {
1532
- this.wappTableLazyLoadingObject.hasSelectAllCheckbox = true;
1537
+ if (this._wappTableLazyLoadingObject.hasSelectAllCheckbox == undefined) {
1538
+ this._wappTableLazyLoadingObject.hasSelectAllCheckbox = true;
1533
1539
  }
1534
1540
  }
1535
1541
  loadElements(event) {
@@ -1597,9 +1603,9 @@ class WTableLazyComponent {
1597
1603
  confirmDeleteSelection(event) {
1598
1604
  this.confirmationService.confirm({
1599
1605
  target: event.target,
1600
- message: this.wappTableLazyLoadingObject.confirmMultipleDeleteLabel,
1606
+ message: this._wappTableLazyLoadingObject.confirmMultipleDeleteLabel,
1601
1607
  icon: "pi pi-exclamation-triangle",
1602
- acceptLabel: this.wappTableLazyLoadingObject.confirmDeleteBtnLabel,
1608
+ acceptLabel: this._wappTableLazyLoadingObject.confirmDeleteBtnLabel,
1603
1609
  accept: () => {
1604
1610
  this.deleteSelectedElements();
1605
1611
  }
@@ -1612,9 +1618,9 @@ class WTableLazyComponent {
1612
1618
  confirmDelete(event, element) {
1613
1619
  this.confirmationService.confirm({
1614
1620
  target: event.target,
1615
- message: this.wappTableLazyLoadingObject.confirmSingleDeleteLabel,
1621
+ message: this._wappTableLazyLoadingObject.confirmSingleDeleteLabel,
1616
1622
  icon: "pi pi-exclamation-triangle",
1617
- acceptLabel: this.wappTableLazyLoadingObject.confirmDeleteBtnLabel,
1623
+ acceptLabel: this._wappTableLazyLoadingObject.confirmDeleteBtnLabel,
1618
1624
  accept: () => {
1619
1625
  this.deleteSingleElement(element);
1620
1626
  }
@@ -1629,9 +1635,9 @@ class WTableLazyComponent {
1629
1635
  confirmCopy(event, element) {
1630
1636
  this.confirmationService.confirm({
1631
1637
  target: event.target,
1632
- message: this.wappTableLazyLoadingObject.confirmCopyLabel,
1638
+ message: this._wappTableLazyLoadingObject.confirmCopyLabel,
1633
1639
  icon: "pi pi-exclamation-triangle",
1634
- acceptLabel: this.wappTableLazyLoadingObject.confirmCopyBtnLabel,
1640
+ acceptLabel: this._wappTableLazyLoadingObject.confirmCopyBtnLabel,
1635
1641
  accept: () => {
1636
1642
  this.copyElement(element);
1637
1643
  }
@@ -1648,7 +1654,7 @@ class WTableLazyComponent {
1648
1654
  this.onAllElementSelect.emit(true);
1649
1655
  this.loading = true;
1650
1656
  setTimeout(() => {
1651
- this.selectedElements = this.wappTableLazyLoadingObject.disableCheckbox ? this.getSelectableElements(this.allElements) : this.allElements;
1657
+ this.selectedElements = this._wappTableLazyLoadingObject.disableCheckbox ? this.getSelectableElements(this.allElements) : this.allElements;
1652
1658
  this.selectAll = true;
1653
1659
  this.loading = false;
1654
1660
  }, 1000);
@@ -1660,22 +1666,22 @@ class WTableLazyComponent {
1660
1666
  this.onSelectedElementsChange.emit(this.selectedElements);
1661
1667
  }
1662
1668
  getSelectableElements(allElements) {
1663
- return allElements.filter((element) => !this.readProperty(element, this.wappTableLazyLoadingObject.disableCheckbox));
1669
+ return allElements.filter((element) => !this.readProperty(element, this._wappTableLazyLoadingObject.disableCheckbox));
1664
1670
  }
1665
1671
  getBooleanColumnClass(index, valueProperty) {
1666
1672
  var _a, _b, _c, _d, _e, _f;
1667
1673
  const booleanIconClasses = [];
1668
1674
  if (valueProperty == true) {
1669
- booleanIconClasses.push((_a = this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].trueIcon) !== null && _a !== void 0 ? _a : '');
1670
- booleanIconClasses.push((_b = this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].trueIconColor) !== null && _b !== void 0 ? _b : '');
1675
+ booleanIconClasses.push((_a = this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].trueIcon) !== null && _a !== void 0 ? _a : '');
1676
+ booleanIconClasses.push((_b = this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].trueIconColor) !== null && _b !== void 0 ? _b : '');
1671
1677
  }
1672
1678
  else if (valueProperty == false) {
1673
- booleanIconClasses.push((_c = this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].falseIcon) !== null && _c !== void 0 ? _c : '');
1674
- (_d = booleanIconClasses.push(this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].falseIconColor)) !== null && _d !== void 0 ? _d : '';
1679
+ booleanIconClasses.push((_c = this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].falseIcon) !== null && _c !== void 0 ? _c : '');
1680
+ (_d = booleanIconClasses.push(this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].falseIconColor)) !== null && _d !== void 0 ? _d : '';
1675
1681
  }
1676
1682
  else if (valueProperty == null) {
1677
- booleanIconClasses.push((_e = this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].nullIcon) !== null && _e !== void 0 ? _e : '');
1678
- booleanIconClasses.push((_f = this.wappTableLazyLoadingObject.columnBooleanTypeIcons[index].nullIconColor) !== null && _f !== void 0 ? _f : '');
1683
+ booleanIconClasses.push((_e = this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].nullIcon) !== null && _e !== void 0 ? _e : '');
1684
+ booleanIconClasses.push((_f = this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].nullIconColor) !== null && _f !== void 0 ? _f : '');
1679
1685
  }
1680
1686
  return booleanIconClasses;
1681
1687
  }
@@ -1721,8 +1727,8 @@ class WTableLazyComponent {
1721
1727
  return 'text-left';
1722
1728
  }
1723
1729
  calculateColspan() {
1724
- let colspan = this.wappTableLazyLoadingObject.headers.length;
1725
- this.wappTableLazyLoadingObject.hasCheckbox ?
1730
+ let colspan = this._wappTableLazyLoadingObject.headers.length;
1731
+ this._wappTableLazyLoadingObject.hasCheckbox ?
1726
1732
  colspan += 1 : '';
1727
1733
  this.hasActionButtons() ?
1728
1734
  colspan += 1 : '';
@@ -1730,11 +1736,11 @@ class WTableLazyComponent {
1730
1736
  }
1731
1737
  hasActionButtons() {
1732
1738
  var _a;
1733
- return this.wappTableLazyLoadingObject.hasCopyButton ||
1734
- this.wappTableLazyLoadingObject.hasEditButton ||
1735
- this.wappTableLazyLoadingObject.hasViewButton ||
1736
- this.wappTableLazyLoadingObject.hasDeleteButton ||
1737
- ((_a = this.wappTableLazyLoadingObject) === null || _a === void 0 ? void 0 : _a.hasCustomButton) ?
1739
+ return this._wappTableLazyLoadingObject.hasCopyButton ||
1740
+ this._wappTableLazyLoadingObject.hasEditButton ||
1741
+ this._wappTableLazyLoadingObject.hasViewButton ||
1742
+ this._wappTableLazyLoadingObject.hasDeleteButton ||
1743
+ ((_a = this._wappTableLazyLoadingObject) === null || _a === void 0 ? void 0 : _a.hasCustomButton) ?
1738
1744
  true : false;
1739
1745
  }
1740
1746
  refreshPagination(first) {