@colijnit/transaction 258.1.6 → 258.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/bundles/colijnit-transaction.umd.js +99 -53
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.metadata.json +1 -1
  4. package/esm2015/lib/component/delivery-planning/service/delivery-planning.service.js +5 -3
  5. package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/delivery-planning-overview-tile.component.js +6 -8
  6. package/esm2015/lib/component/delivery-planning-main/component/delivery-planning-overview/delivery-planning-overview.component.js +5 -2
  7. package/esm2015/lib/component/transaction-line/transaction-planning-line/components/transaction-planning-line-planned-resource/transaction-planning-line-planned-resource.component.js +1 -2
  8. package/esm2015/lib/component/transaction-line/transaction-planning-line/transaction-planning-line.component.js +25 -12
  9. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.js +7 -5
  10. package/esm2015/lib/service/transaction-event.service.js +2 -1
  11. package/esm2015/lib/transaction-version.js +3 -3
  12. package/fesm2015/colijnit-transaction.js +46 -28
  13. package/fesm2015/colijnit-transaction.js.map +1 -1
  14. package/lib/component/delivery-planning/service/delivery-planning.service.d.ts +2 -2
  15. package/lib/component/delivery-planning-main/component/delivery-planning-overview/component/delivery-planning-overview-tile/delivery-planning-overview-tile.component.d.ts +2 -2
  16. package/lib/component/transaction-line/transaction-planning-line/components/transaction-planning-line-planned-resource/style/_layout.scss +1 -0
  17. package/lib/component/transaction-line/transaction-planning-line/style/_layout.scss +6 -0
  18. package/lib/component/transaction-line/transaction-planning-line/transaction-planning-line.component.d.ts +1 -0
  19. package/lib/service/transaction-event.service.d.ts +1 -0
  20. package/package.json +1 -1
  21. package/colijnit-transaction-258.1.5.tgz +0 -0
@@ -113,28 +113,32 @@ export class TransactionPlanningLineComponent extends TransactionLineBaseCompone
113
113
  }
114
114
  changeLineValue(value) {
115
115
  this.transactionLine.selected = value;
116
+ if (!this.transactionLine.amountSelected) {
117
+ this.transactionLine.amountSelected = this.planOrderLine.amountToPlan;
118
+ }
116
119
  this.detectChanges();
117
120
  }
118
121
  dragStarted(ev) {
119
- var _a, _b, _c, _d;
122
+ var _a, _b, _c, _d, _e;
120
123
  return __awaiter(this, void 0, void 0, function* () {
121
124
  if (!this.checkedAvailibility) {
122
125
  this._deliveryPlanningService.availabilityCheckEvent.emit(this.transactionService.currentPlanOrder);
123
126
  this.checkedAvailibility = true;
124
127
  }
125
- if (this.transactionLine.amountSelected <= 0 || ((_a = this.planOrderLine) === null || _a === void 0 ? void 0 : _a.amountToPlan) === 0) {
128
+ console.log(this.transactionLine.amountSelected);
129
+ console.log((_a = this.planOrderLine) === null || _a === void 0 ? void 0 : _a.amountToPlan);
130
+ if (this.transactionLine.amountSelected <= 0 || ((_b = this.planOrderLine) === null || _b === void 0 ? void 0 : _b.amountToPlan) === 0) {
126
131
  yield this._dialog.showError(this._dictionary.get('ORDER_CAN_NOT_BE_PLANNED_ON_RESOURCE'), true);
127
- return;
128
132
  }
129
133
  else {
130
134
  this._deliveryPlanningService.currentTransId = this.transactionInfo.id;
131
- (_b = ev.dataTransfer) === null || _b === void 0 ? void 0 : _b.setData('text', 'lines');
135
+ (_c = ev.dataTransfer) === null || _c === void 0 ? void 0 : _c.setData('text', 'lines');
132
136
  }
133
137
  ev.target.classList.add('dragging');
134
138
  const lineElement = ev.target.closest('co-transaction-base-line');
135
139
  if (!lineElement)
136
140
  return;
137
- const dragBox = (_c = lineElement.querySelector('.co-transaction-line-image-and-description')) === null || _c === void 0 ? void 0 : _c.cloneNode(true);
141
+ const dragBox = (_d = lineElement.querySelector('.co-transaction-line-image-and-description')) === null || _d === void 0 ? void 0 : _d.cloneNode(true);
138
142
  const dragImage = document.createElement('div');
139
143
  dragImage.style.display = 'flex';
140
144
  dragImage.style.flexDirection = 'row';
@@ -157,7 +161,7 @@ export class TransactionPlanningLineComponent extends TransactionLineBaseCompone
157
161
  dragImage.style.top = '-1000px';
158
162
  dragImage.style.left = '-1000px';
159
163
  // Set the custom drag image
160
- (_d = ev.dataTransfer) === null || _d === void 0 ? void 0 : _d.setDragImage(dragImage, 50, 25);
164
+ (_e = ev.dataTransfer) === null || _e === void 0 ? void 0 : _e.setDragImage(dragImage, 50, 25);
161
165
  // Cleanup: Remove the drag image after it's set
162
166
  setTimeout(() => document.body.removeChild(dragImage), 0);
163
167
  });
@@ -178,6 +182,14 @@ export class TransactionPlanningLineComponent extends TransactionLineBaseCompone
178
182
  }
179
183
  return !((_b = (_a = this._deliveryPlanningService.linesPlanOrder) === null || _a === void 0 ? void 0 : _a.lines) === null || _b === void 0 ? void 0 : _b.find(line => line.originalLineNr === this.transactionLine.lineNr));
180
184
  }
185
+ get lineFullyPlanned() {
186
+ if (this.planOrderLine) {
187
+ return this.planOrderLine.amountToPlan === 0;
188
+ }
189
+ else {
190
+ return false;
191
+ }
192
+ }
181
193
  handleQuantityToPlanChange(amount) {
182
194
  this.transactionLine.amountSelected = amount;
183
195
  }
@@ -200,9 +212,9 @@ TransactionPlanningLineComponent.decorators = [
200
212
  [transactionLine]="transactionLine"
201
213
  [preview]="preview"
202
214
  [isFirst]="isFirst"
203
- [draggable]="!linePlanned"
215
+ [draggable]="!lineFullyPlanned"
204
216
  (dragstart)="dragStarted($event)"
205
- [checkbox]="true"
217
+ [checkbox]="!lineFullyPlanned"
206
218
  [checkboxValue]="transactionLine.selected || !transactionInfo?.allowPartialDelivery"
207
219
  [checkboxReadonly]="!transactionInfo?.allowPartialDelivery"
208
220
  (checkboxValueChanged)="handleCheckBoxValueChanged($event, transactionLine)"
@@ -259,16 +271,17 @@ TransactionPlanningLineComponent.decorators = [
259
271
  <div class="transaction-field-wrapper small">
260
272
  <div class="inside-field">
261
273
  <co-transaction-line-label [insideLabel]="'QUANTITY'"></co-transaction-line-label>
262
- <co-input-number-picker class="amount-number-picker"
274
+ <co-input-number-picker *ngIf="planOrderLine?.amountToPlan && planOrderLine.amountToPlan !== 0" class="amount-number-picker"
263
275
  [min]="0"
264
276
  [max]="planOrderLine?.amountToPlan"
265
- [model]="planOrderLine?.amountToPlan"
277
+ [model]="planOrderLine?.amountToPlan ? planOrderLine?.amountToPlan : 0"
266
278
  (modelChange)="handleQuantityToPlanChange($event)"></co-input-number-picker>
267
279
  </div>
268
280
  </div>
269
281
  <div class="transaction-field-wrapper small" *ngIf="this.plannedResourceForTransactionLine?.length > 0">
270
282
  <div class="inside-field">
271
- <div class="row">
283
+ <co-transaction-line-label [insideLabel]="'PLANNED'"></co-transaction-line-label>
284
+ <div class="column">
272
285
  <co-transaction-planning-line-planned-resource
273
286
  *ngFor="let plannedResource of this.plannedResourceForTransactionLine"
274
287
  [plannedResource]="plannedResource"
@@ -316,4 +329,4 @@ TransactionPlanningLineComponent.propDecorators = {
316
329
  handleMouseLeave: [{ type: HostListener, args: ['mouseleave', ['$event'],] }],
317
330
  dragEnded: [{ type: HostListener, args: ['dragend', ['$event'],] }]
318
331
  };
319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLXBsYW5uaW5nLWxpbmUvdHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFHWixNQUFNLEVBQ04saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUdyRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNoSCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUVsRyxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUM3RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUM1RixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFB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WUFLdkIsd0JBQXdCO1lBUnhCLGlCQUFpQjs7O2tDQTBIdEIsTUFBTTt3QkFHTixXQUFXLFNBQUMsb0NBQW9DOzhCQUtoRCxZQUFZLFNBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDOytCQUtwQyxZQUFZLFNBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO3dCQXNKckMsWUFBWSxTQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTdG9ja1N0YXR1c30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcmVmY29kZS9zdG9jay1zdGF0dXMuZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uLy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcclxuaW1wb3J0IHtTdGF0dXNCYXJDZmdOYW1lc30gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlL3N0YXR1cy1iYXItY2ZnLW5hbWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7TGluZURpc2NvdW50Q2ZnTmFtZXN9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZS9saW5lLWRpc2NvdW50LWNmZy1uYW1lcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm8nO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlfSBmcm9tICcuLi8uLi9kZWxpdmVyeS1wbGFubmluZy9zZXJ2aWNlL2RlbGl2ZXJ5LXBsYW5uaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWxpbmUtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyU2VydmljZX0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL3NlcnZpY2UvdHJhbnNhY3Rpb24taGVhZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZVNlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS9zZXJ2aWNlL3RyYW5zYWN0aW9uLWxpbmUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25EaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtQbGFuT3JkZXJ9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFuLW9yZGVyLmJvJztcclxuaW1wb3J0IHtQbGFubmVkUmVzb3VyY2VGb3JUcmFuc2FjdGlvbkxpbmV9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmVkLXJlc291cmNlLWZvci10cmFuc2FjdGlvbi1saW5lLmJvJztcclxuaW1wb3J0IHtQbGFuT3JkZXJMaW5lfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi1vcmRlci1saW5lLmJvJztcclxuaW1wb3J0IHtQbGFubmluZ30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbi1wbGFubmluZy1saW5lJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8Y28tdHJhbnNhY3Rpb24tYmFzZS1saW5lXHJcbiAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICBbcHJldmlld109XCJwcmV2aWV3XCJcclxuICAgICAgICAgICAgICBbaXNGaXJzdF09XCJpc0ZpcnN0XCJcclxuICAgICAgICAgICAgICBbZHJhZ2dhYmxlXT1cIiFsaW5lUGxhbm5lZFwiXHJcbiAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnRlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBbY2hlY2tib3hdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrYm94VmFsdWVdPVwidHJhbnNhY3Rpb25MaW5lLnNlbGVjdGVkIHx8ICF0cmFuc2FjdGlvbkluZm8/LmFsbG93UGFydGlhbERlbGl2ZXJ5XCJcclxuICAgICAgICAgICAgICBbY2hlY2tib3hSZWFkb25seV09XCIhdHJhbnNhY3Rpb25JbmZvPy5hbGxvd1BhcnRpYWxEZWxpdmVyeVwiXHJcbiAgICAgICAgICAgICAgKGNoZWNrYm94VmFsdWVDaGFuZ2VkKT1cImhhbmRsZUNoZWNrQm94VmFsdWVDaGFuZ2VkKCRldmVudCwgdHJhbnNhY3Rpb25MaW5lKVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUxpbmVDbGlja2VkKCRldmVudClcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0cmFuc2FjdGlvbkxpbmUuaXNBcnRpY2xlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPSFwcmV2aWV3IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1leHRlbmRlZC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLWZ1bGwgYWxpZ24tcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlN0YXR1c0JhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnTmFtZXNdPVwic3RhdHVzQmFyQ29uZmlnTmFtZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZUNhdGVnb3J5XT1cImNhdGVnb3J5LlNhbGVzT3JkZXJPdmVydmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtY29tbWlzc2lvbi1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tZmllbGQtd3JhcHBlciBtZWRpdW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZUNvbW1pc3Npb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lucHV0TGFiZWxdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1jb21taXNzaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS13YXJlaG91c2UtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXIgbWVkaXVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVXYXJlaG91c2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lucHV0TGFiZWxdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS13YXJlaG91c2UtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC13cmFwcGVyIG1lZGl1bVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lRGVsaXZlcnlNZXRob2RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lucHV0TGFiZWxdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1kZWxpdmVyeS1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtZGVsaXZlcnktZGF0ZS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tZmllbGQtd3JhcHBlciBtZWRpdW0gdHJhbnNhY3Rpb24tbGluZS1kZWxpdmVyeS1kYXRlIHR3by1jb2x1bW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZURlbGl2ZXJ5RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRMYWJlbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWRhdGUtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXZhdC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXByZXZpZXdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC13cmFwcGVyIHNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVWYXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lucHV0TGFiZWxdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS12YXQtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXByaWNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXIgc21hbGwgdHJhbnNhY3Rpb24tbGluZS10b3RhbHMtcHJpY2UgcHJpY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZVByaWNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRFZGl0TW9kZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRMYWJlbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLXByaWNlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWRpc2NvdW50LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhcHJldmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXIgc21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZURpc2NvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWdOYW1lc109XCJkaXNjb3VudENvbmZpZ05hbWVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dExhYmVsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtZGlzY291bnQtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC13cmFwcGVyIHNtYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnNpZGUtZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWxhYmVsIFtpbnNpZGVMYWJlbF09XCInUVVBTlRJVFknXCI+PC9jby10cmFuc2FjdGlvbi1saW5lLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LW51bWJlci1waWNrZXIgY2xhc3M9XCJhbW91bnQtbnVtYmVyLXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJwbGFuT3JkZXJMaW5lPy5hbW91bnRUb1BsYW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cInBsYW5PcmRlckxpbmU/LmFtb3VudFRvUGxhblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlUXVhbnRpdHlUb1BsYW5DaGFuZ2UoJGV2ZW50KVwiPjwvY28taW5wdXQtbnVtYmVyLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXIgc21hbGxcIiAqbmdJZj1cInRoaXMucGxhbm5lZFJlc291cmNlRm9yVHJhbnNhY3Rpb25MaW5lPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnNpZGUtZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZS1wbGFubmVkLXJlc291cmNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcGxhbm5lZFJlc291cmNlIG9mIHRoaXMucGxhbm5lZFJlc291cmNlRm9yVHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFubmVkUmVzb3VyY2VdPVwicGxhbm5lZFJlc291cmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbGFubmVkUmVzb3VyY2VDbGlja2VkRXZlbnQpPVwiaGFuZGxlUGxhbm5lZFJlc291cmNlQ2xpY2tlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1wbGFubmluZy1saW5lLXBsYW5uZWQtcmVzb3VyY2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWVkaXRhYmxlLWxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXIgc21hbGwgdHJhbnNhY3Rpb24tbGluZS10b3RhbHMtdG90YWwgcHJpY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cInRyYW5zYWN0aW9uTGluZS5kaXNwbGF5TmV0TGluZVRvdGFsIHwgY29DdXJyZW5jeTogdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWRpdE1vZGVsXT1cInRyYW5zYWN0aW9uTGluZS5kaXNwbGF5TmV0TGluZVRvdGFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dExhYmVsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWVkaXRhYmxlLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvY28tdHJhbnNhY3Rpb24tYmFzZS1saW5lPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25QbGFubmluZ0xpbmVDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkxpbmVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBjYXRlZ29yeTogdHlwZW9mIFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5ID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcbiAgcHVibGljIGNoZWNrZWRBdmFpbGliaWxpdHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcGxhbm5lZFJlc291cmNlRm9yVHJhbnNhY3Rpb25MaW5lOiBQbGFubmVkUmVzb3VyY2VGb3JUcmFuc2FjdGlvbkxpbmVbXTtcclxuICBwdWJsaWMgcGxhbk9yZGVyTGluZTogUGxhbk9yZGVyTGluZSA9IG5ldyBQbGFuT3JkZXJMaW5lKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZXNjcmlwdGlvbkRibENsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZScpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VvdmVyJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgaGFuZGxlTW91c2VPdmVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLm1vdXNlT3ZlciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgaGFuZGxlTW91c2VMZWF2ZShldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5tb3VzZU92ZXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9jazogU3RvY2tTdGF0dXMgPSBTdG9ja1N0YXR1cy5Mb3c7XHJcbiAgcHVibGljIG1vdXNlT3ZlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBoYXNPcGVuZWRTaWRlUGFuZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIHN0YXR1c0JhckNvbmZpZ05hbWVzOiBTdGF0dXNCYXJDZmdOYW1lcyA9IHtcclxuICAgIHN0YXR1c0JhckJUOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckJULFxyXG4gICAgc3RhdHVzQmFyVEc6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyVEcsXHJcbiAgICBzdGF0dXNCYXJQQTogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJQQSxcclxuICAgIHN0YXR1c0JhclBWOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclBWLFxyXG4gICAgc3RhdHVzQmFyVFA6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyVFAsXHJcbiAgICBzdGF0dXNCYXJHVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHVCxcclxuICAgIHN0YXR1c0JhckdQOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckdQLFxyXG4gICAgc3RhdHVzQmFyR0w6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR0wsXHJcbiAgICBzdGF0dXNCYXJHRjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHRlxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBkaXNjb3VudENvbmZpZ05hbWVzOiBMaW5lRGlzY291bnRDZmdOYW1lcyA9IHtcclxuICAgIGxpbmVQcmljZUxpc3Q6IHRoaXMuY2ZnTmFtZXMuTGluZVByaWNlTGlzdCxcclxuICAgIGxpbmVEaXNjb3VudEFtb3VudDogdGhpcy5jZmdOYW1lcy5MaW5lRGlzY291bnRBbW91bnQsXHJcbiAgICBsaW5lRGlzY291bnRQZXJjZW50YWdlOiB0aGlzLmNmZ05hbWVzLkxpbmVEaXNjb3VudFBlcmNlbnRhZ2UsXHJcbiAgICBsaW5lRGlzY291bnRTcGVjaWFsOiB0aGlzLmNmZ05hbWVzLkxpbmVEaXNjb3VudFNwZWNpYWwsXHJcbiAgICBsaW5lRGlzY291bnRRdWFudHVtOiB0aGlzLmNmZ05hbWVzLkxpbmVEaXNjb3VudFF1YW50dW1cclxuICB9O1xyXG5cclxuICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lVG9CZVBpY2tlZENvbXBsZXRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2U6IFRyYW5zYWN0aW9uSGVhZGVyU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkxpbmVTZXJ2aWNlOiBUcmFuc2FjdGlvbkxpbmVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNjcmVlbkNvbmZpZ1NlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZTogVHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGVsaXZlcnlQbGFubmluZ1NlcnZpY2U6IERlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBUcmFuc2FjdGlvbkRpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zYWN0aW9uSGVhZGVyU2VydmljZSwgdHJhbnNhY3Rpb25MaW5lU2VydmljZSwgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsIGljb25DYWNoZVNlcnZpY2UsIHNjcmVlbkNvbmZpZ1NlcnZpY2UsIGltYWdlU2VydmljZSwgZGljdGlvbmFyeVNlcnZpY2UsIHRyYW5zYWN0aW9uU2VydmljZSxjaGFuZ2VEZXRlY3Rvcik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uuc2VsZWN0QWxsU2FsZXNPcmRlckxpbmVzVG9CZVBpY2tlZC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUuc2VsZWN0ZWQgPSB2YWx1ZSAmJiAhdGhpcy50cmFuc2FjdGlvbkxpbmVUb0JlUGlja2VkQ29tcGxldGVkO1xyXG4gICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5uZXdQbGFuT3JkZXJFdmVudC5zdWJzY3JpYmUoIG5ld1BsYW5PcmRlckV2ZW50ID0+IHtcclxuICAgICAgICB0aGlzLnBsYW5PcmRlckxpbmUgPSB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5jdXJyZW50UGxhbk9yZGVyLmxpbmVzLmZpbmQoIGxpbmUgPT4gbGluZS5vcmlnaW5hbExpbmVOciA9PT0gdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yKTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRQbGFubmVkUmVzb3VyY2VzRm9yVHJhbnNhY3Rpb25MaW5lKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIpLnRoZW4oIChyZXN1bHQ6IFBsYW5uZWRSZXNvdXJjZUZvclRyYW5zYWN0aW9uTGluZVtdKSA9PiB7XHJcbiAgICAgIHRoaXMucGxhbm5lZFJlc291cmNlRm9yVHJhbnNhY3Rpb25MaW5lID0gcmVzdWx0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBpZiAodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UucGxhbk9yZGVyRGF0ZSkge1xyXG4gICAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5wbGFuT3JkZXJEYXRlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVDaGVja0JveFZhbHVlQ2hhbmdlZCh2YWx1ZTogYm9vbGVhbiwgbGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UubHNwTW9kZSkge1xyXG4gICAgICBsZXQgcGFja2FnZVJlc3BvbnNlID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0UGFja2FnZUluZm9ybWF0aW9uKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQsIGxpbmUudXVpZCk7XHJcbiAgICAgIGlmKHBhY2thZ2VSZXNwb25zZT8ubGVuZ3RoICYmIHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VMaW5lVmFsdWUoZmFsc2UpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuX2RpYWxvZy5zaG93RXJyb3IoXCJMU1BfQUxSRUFEWV9DUkVBVEVEX0ZPUl9USElTX0xJTkVcIiwgdHJ1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VMaW5lVmFsdWUodmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNoYW5nZUxpbmVWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlTGluZUNsaWNrZWQobW91c2VDbGljazogUG9pbnRlckV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UubGluZXNQbGFuT3JkZXI/LmxpbmVzPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UucGxhbk9yZGVyRGF0ZSA9IG5ldyBEYXRlKHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmxpbmVzUGxhbk9yZGVyLmxpbmVzWzBdLmRlbGl2ZXJ5RGF0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlTGluZVZhbHVlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uTGluZS5zZWxlY3RlZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZHJhZ1N0YXJ0ZWQoZXY6IERyYWdFdmVudCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLmNoZWNrZWRBdmFpbGliaWxpdHkpIHtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuYXZhaWxhYmlsaXR5Q2hlY2tFdmVudC5lbWl0KHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmN1cnJlbnRQbGFuT3JkZXIpO1xyXG4gICAgICB0aGlzLmNoZWNrZWRBdmFpbGliaWxpdHkgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy50cmFuc2FjdGlvbkxpbmUuYW1vdW50U2VsZWN0ZWQgPD0gMCB8fCB0aGlzLnBsYW5PcmRlckxpbmU/LmFtb3VudFRvUGxhbiA9PT0gMCkge1xyXG4gICAgICAgYXdhaXQgdGhpcy5fZGlhbG9nLnNob3dFcnJvcih0aGlzLl9kaWN0aW9uYXJ5LmdldCgnT1JERVJfQ0FOX05PVF9CRV9QTEFOTkVEX09OX1JFU09VUkNFJyksIHRydWUpO1xyXG4gICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFRyYW5zSWQgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgICAgZXYuZGF0YVRyYW5zZmVyPy5zZXREYXRhKCd0ZXh0JywgJ2xpbmVzJyk7XHJcbiAgICB9XHJcbiAgICAoZXYudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbGFzc0xpc3QuYWRkKCdkcmFnZ2luZycpO1xyXG4gICAgY29uc3QgbGluZUVsZW1lbnQgPSAoZXYudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbG9zZXN0KCdjby10cmFuc2FjdGlvbi1iYXNlLWxpbmUnKTtcclxuICAgIGlmICghbGluZUVsZW1lbnQpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBkcmFnQm94ID0gbGluZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNvLXRyYW5zYWN0aW9uLWxpbmUtaW1hZ2UtYW5kLWRlc2NyaXB0aW9uJyk/LmNsb25lTm9kZSh0cnVlKSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICBjb25zdCBkcmFnSW1hZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLmZsZXhEaXJlY3Rpb24gPSAncm93JztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5hbGlnbkl0ZW1zID0gJ2NlbnRlcic7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUuanVzdGlmeUNvbnRlbnQgPSAnc3BhY2UtYXJvdW5kJztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS53aWR0aCA9ICcyNTBweCc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUubWluSGVpZ2h0ID0gJzUwcHgnO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLnBhZGRpbmcgPSAnMTBweCc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJyNmZmZmZmYnO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgI2NjYyc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUuYm94U2hhZG93ID0gJzAgNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSknO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLmJvcmRlclJhZGl1cyA9ICc1cHgnO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLmZvbnRTaXplID0gJzEycHgnO1xyXG5cclxuICAgIGlmIChkcmFnQm94KSB7XHJcbiAgICAgIGRyYWdCb3guc3R5bGUuZmxleCA9ICcxJztcclxuICAgICAgZHJhZ0ltYWdlLmFwcGVuZENoaWxkKGRyYWdCb3gpO1xyXG4gICAgfVxyXG5cclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZHJhZ0ltYWdlKTtcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUudG9wID0gJy0xMDAwcHgnO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLmxlZnQgPSAnLTEwMDBweCc7XHJcblxyXG4gICAgLy8gU2V0IHRoZSBjdXN0b20gZHJhZyBpbWFnZVxyXG4gICAgZXYuZGF0YVRyYW5zZmVyPy5zZXREcmFnSW1hZ2UoZHJhZ0ltYWdlLCA1MCwgMjUpO1xyXG5cclxuICAgIC8vIENsZWFudXA6IFJlbW92ZSB0aGUgZHJhZyBpbWFnZSBhZnRlciBpdCdzIHNldFxyXG4gICAgc2V0VGltZW91dCgoKSA9PiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRyYWdJbWFnZSksIDApO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VuZCcsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIGRyYWdFbmRlZChldjogRHJhZ0V2ZW50KTogdm9pZCB7XHJcbiAgICBpZih0aGlzLmNoZWNrZWRBdmFpbGliaWxpdHkpIHtcclxuICAgICAgdGhpcy5jaGVja2VkQXZhaWxpYmlsaXR5ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmF2YWlsYWJpbGl0eVJlc2V0RXZlbnQuZW1pdCgpO1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIChldi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWdnaW5nJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGxpbmVQbGFubmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5saW5lc1BsYW5PcmRlcikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICF0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5saW5lc1BsYW5PcmRlcj8ubGluZXM/LmZpbmQobGluZSA9PiBsaW5lLm9yaWdpbmFsTGluZU5yID09PSB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVF1YW50aXR5VG9QbGFuQ2hhbmdlKGFtb3VudDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uTGluZS5hbW91bnRTZWxlY3RlZCA9IGFtb3VudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVQbGFubmVkUmVzb3VyY2VDbGlja2VkKHBsYW5uZWRSZXNvdXJjZTogUGxhbm5lZFJlc291cmNlRm9yVHJhbnNhY3Rpb25MaW5lKSB7XHJcbiAgICAgIGxldCBwbGFubmluZ3M6IFBsYW5uaW5nW10gPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZS5nZXRQbGFubmluZ1NvdXJjZXMoKTtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFN0YXJ0RGF0ZSA9IHBsYW5uZWRSZXNvdXJjZS5wbGFubmluZ1N0YXJ0VGltZTtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFBsYW5uaW5nID0gcGxhbm5pbmdzLmZpbmQoIHBsYW5uaW5nID0+IHBsYW5uaW5nLnBsYW5uaW5nSWQgPT09IHBsYW5uZWRSZXNvdXJjZS5wbGFubmluZ0lkKTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5vcGVuU2lkZVBhbmVsLm5leHQodGhpcy50cmFuc2FjdGlvbkxpbmUpO1xyXG4gICAgICB0aGlzLmhhc09wZW5lZFNpZGVQYW5lbCA9IHRydWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
332
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLXBsYW5uaW5nLWxpbmUvdHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFHWixNQUFNLEVBQ04saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUdyRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNoSCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUVsRyxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUM3RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUM1RixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFB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QTs7O1lBeFRGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsOEJBQThCO2dCQUN4QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdHVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7OztZQTlHTyx3QkFBd0I7WUFDeEIsc0JBQXNCO1lBWHRCLHVCQUF1QjtZQUN2QixnQkFBZ0I7WUFDaEIscUNBQXFDO1lBQ3JDLHVCQUF1QjtZQUN2QixpQkFBaUI7WUFDakIsa0JBQWtCO1lBbkJ4QixpQkFBaUI7WUErQlgsMkJBQTJCO1lBVjNCLHVCQUF1QjtZQUt2Qix3QkFBd0I7WUFSeEIsaUJBQWlCOzs7a0NBMkh0QixNQUFNO3dCQUdOLFdBQVcsU0FBQyxvQ0FBb0M7OEJBS2hELFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7K0JBS3BDLFlBQVksU0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUM7d0JBMEpyQyxZQUFZLFNBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1N0b2NrU3RhdHVzfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9yZWZjb2RlL3N0b2NrLXN0YXR1cy5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0gZnJvbSAnLi4vLi4vLi4vZW51bS90cmFuc2FjdGlvbi10eXBlLWNhdGVnb3J5LmVudW0nO1xyXG5pbXBvcnQge1N0YXR1c0JhckNmZ05hbWVzfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2Uvc3RhdHVzLWJhci1jZmctbmFtZXMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtMaW5lRGlzY291bnRDZmdOYW1lc30gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlL2xpbmUtZGlzY291bnQtY2ZnLW5hbWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ibyc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1NlcnZpY2V9IGZyb20gJy4uLy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tbGluZS1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2Uvc2VydmljZS90cmFuc2FjdGlvbi1oZWFkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lU2VydmljZX0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL3NlcnZpY2UvdHJhbnNhY3Rpb24tbGluZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkRpYWxvZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQge1BsYW5PcmRlcn0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXIuYm8nO1xyXG5pbXBvcnQge1BsYW5uZWRSZXNvdXJjZUZvclRyYW5zYWN0aW9uTGluZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uZWQtcmVzb3VyY2UtZm9yLXRyYW5zYWN0aW9uLWxpbmUuYm8nO1xyXG5pbXBvcnQge1BsYW5PcmRlckxpbmV9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFuLW9yZGVyLWxpbmUuYm8nO1xyXG5pbXBvcnQge1BsYW5uaW5nfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmcuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLXBsYW5uaW5nLWxpbmUnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxjby10cmFuc2FjdGlvbi1iYXNlLWxpbmVcclxuICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgIFtwcmV2aWV3XT1cInByZXZpZXdcIlxyXG4gICAgICAgICAgICAgIFtpc0ZpcnN0XT1cImlzRmlyc3RcIlxyXG4gICAgICAgICAgICAgIFtkcmFnZ2FibGVdPVwiIWxpbmVGdWxseVBsYW5uZWRcIlxyXG4gICAgICAgICAgICAgIChkcmFnc3RhcnQpPVwiZHJhZ1N0YXJ0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrYm94XT1cIiFsaW5lRnVsbHlQbGFubmVkXCJcclxuICAgICAgICAgICAgICBbY2hlY2tib3hWYWx1ZV09XCJ0cmFuc2FjdGlvbkxpbmUuc2VsZWN0ZWQgfHwgIXRyYW5zYWN0aW9uSW5mbz8uYWxsb3dQYXJ0aWFsRGVsaXZlcnlcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2JveFJlYWRvbmx5XT1cIiF0cmFuc2FjdGlvbkluZm8/LmFsbG93UGFydGlhbERlbGl2ZXJ5XCJcclxuICAgICAgICAgICAgICAoY2hlY2tib3hWYWx1ZUNoYW5nZWQpPVwiaGFuZGxlQ2hlY2tCb3hWYWx1ZUNoYW5nZWQoJGV2ZW50LCB0cmFuc2FjdGlvbkxpbmUpXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlTGluZUNsaWNrZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyYW5zYWN0aW9uTGluZS5pc0FydGljbGVcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9IXByZXZpZXcgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWV4dGVuZGVkLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tZnVsbCBhbGlnbi1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXN0YXR1c2JhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuU3RhdHVzQmFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWdOYW1lc109XCJzdGF0dXNCYXJDb25maWdOYW1lc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiY2F0ZWdvcnkuU2FsZXNPcmRlck92ZXJ2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1saW5lLXN0YXR1c2Jhcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1jb21taXNzaW9uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC13cmFwcGVyIG1lZGl1bVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lQ29tbWlzc2lvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRMYWJlbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWNvbW1pc3Npb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tZmllbGQtd3JhcHBlciBtZWRpdW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZVdhcmVob3VzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRMYWJlbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtZGVsaXZlcnktYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXIgbWVkaXVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVEZWxpdmVyeU1ldGhvZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRMYWJlbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1kZWxpdmVyeS1kYXRlLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC13cmFwcGVyIG1lZGl1bSB0cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWRhdGUgdHdvLWNvbHVtblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lRGVsaXZlcnlEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dExhYmVsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtZGVsaXZlcnktZGF0ZS1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtdmF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhcHJldmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXIgc21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZVZhdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRMYWJlbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLXZhdC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtcHJpY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tZmllbGQtd3JhcHBlciBzbWFsbCB0cmFuc2FjdGlvbi1saW5lLXRvdGFscy1wcmljZSBwcmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lUHJpY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dMYWJlbF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdEVkaXRNb2RlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dExhYmVsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtcHJpY2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtZGlzY291bnQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFwcmV2aWV3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tZmllbGQtd3JhcHBlciBzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lRGlzY291bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ05hbWVzXT1cImRpc2NvdW50Q29uZmlnTmFtZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lucHV0TGFiZWxdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1kaXNjb3VudC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXIgc21hbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluc2lkZS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWwgW2luc2lkZUxhYmVsXT1cIidRVUFOVElUWSdcIj48L2NvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtbnVtYmVyLXBpY2tlciAqbmdJZj1cInBsYW5PcmRlckxpbmU/LmFtb3VudFRvUGxhbiAmJiBwbGFuT3JkZXJMaW5lLmFtb3VudFRvUGxhbiAhPT0gMFwiIGNsYXNzPVwiYW1vdW50LW51bWJlci1waWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwicGxhbk9yZGVyTGluZT8uYW1vdW50VG9QbGFuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJwbGFuT3JkZXJMaW5lPy5hbW91bnRUb1BsYW4gPyBwbGFuT3JkZXJMaW5lPy5hbW91bnRUb1BsYW4gOiAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVRdWFudGl0eVRvUGxhbkNoYW5nZSgkZXZlbnQpXCI+PC9jby1pbnB1dC1udW1iZXItcGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZmllbGQtd3JhcHBlciBzbWFsbFwiICpuZ0lmPVwidGhpcy5wbGFubmVkUmVzb3VyY2VGb3JUcmFuc2FjdGlvbkxpbmU/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluc2lkZS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtbGFiZWwgW2luc2lkZUxhYmVsXT1cIidQTEFOTkVEJ1wiPjwvY28tdHJhbnNhY3Rpb24tbGluZS1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZS1wbGFubmVkLXJlc291cmNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcGxhbm5lZFJlc291cmNlIG9mIHRoaXMucGxhbm5lZFJlc291cmNlRm9yVHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFubmVkUmVzb3VyY2VdPVwicGxhbm5lZFJlc291cmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbGFubmVkUmVzb3VyY2VDbGlja2VkRXZlbnQpPVwiaGFuZGxlUGxhbm5lZFJlc291cmNlQ2xpY2tlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1wbGFubmluZy1saW5lLXBsYW5uZWQtcmVzb3VyY2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWVkaXRhYmxlLWxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLXdyYXBwZXIgc21hbGwgdHJhbnNhY3Rpb24tbGluZS10b3RhbHMtdG90YWwgcHJpY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cInRyYW5zYWN0aW9uTGluZS5kaXNwbGF5TmV0TGluZVRvdGFsIHwgY29DdXJyZW5jeTogdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWRpdE1vZGVsXT1cInRyYW5zYWN0aW9uTGluZS5kaXNwbGF5TmV0TGluZVRvdGFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dExhYmVsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWVkaXRhYmxlLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvY28tdHJhbnNhY3Rpb24tYmFzZS1saW5lPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25QbGFubmluZ0xpbmVDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkxpbmVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBjYXRlZ29yeTogdHlwZW9mIFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5ID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcbiAgcHVibGljIGNoZWNrZWRBdmFpbGliaWxpdHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcGxhbm5lZFJlc291cmNlRm9yVHJhbnNhY3Rpb25MaW5lOiBQbGFubmVkUmVzb3VyY2VGb3JUcmFuc2FjdGlvbkxpbmVbXTtcclxuICBwdWJsaWMgcGxhbk9yZGVyTGluZTogUGxhbk9yZGVyTGluZSA9IG5ldyBQbGFuT3JkZXJMaW5lKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZXNjcmlwdGlvbkRibENsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZScpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VvdmVyJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgaGFuZGxlTW91c2VPdmVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLm1vdXNlT3ZlciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgaGFuZGxlTW91c2VMZWF2ZShldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5tb3VzZU92ZXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9jazogU3RvY2tTdGF0dXMgPSBTdG9ja1N0YXR1cy5Mb3c7XHJcbiAgcHVibGljIG1vdXNlT3ZlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBoYXNPcGVuZWRTaWRlUGFuZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIHN0YXR1c0JhckNvbmZpZ05hbWVzOiBTdGF0dXNCYXJDZmdOYW1lcyA9IHtcclxuICAgIHN0YXR1c0JhckJUOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckJULFxyXG4gICAgc3RhdHVzQmFyVEc6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyVEcsXHJcbiAgICBzdGF0dXNCYXJQQTogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJQQSxcclxuICAgIHN0YXR1c0JhclBWOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclBWLFxyXG4gICAgc3RhdHVzQmFyVFA6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyVFAsXHJcbiAgICBzdGF0dXNCYXJHVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHVCxcclxuICAgIHN0YXR1c0JhckdQOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckdQLFxyXG4gICAgc3RhdHVzQmFyR0w6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR0wsXHJcbiAgICBzdGF0dXNCYXJHRjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHRlxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBkaXNjb3VudENvbmZpZ05hbWVzOiBMaW5lRGlzY291bnRDZmdOYW1lcyA9IHtcclxuICAgIGxpbmVQcmljZUxpc3Q6IHRoaXMuY2ZnTmFtZXMuTGluZVByaWNlTGlzdCxcclxuICAgIGxpbmVEaXNjb3VudEFtb3VudDogdGhpcy5jZmdOYW1lcy5MaW5lRGlzY291bnRBbW91bnQsXHJcbiAgICBsaW5lRGlzY291bnRQZXJjZW50YWdlOiB0aGlzLmNmZ05hbWVzLkxpbmVEaXNjb3VudFBlcmNlbnRhZ2UsXHJcbiAgICBsaW5lRGlzY291bnRTcGVjaWFsOiB0aGlzLmNmZ05hbWVzLkxpbmVEaXNjb3VudFNwZWNpYWwsXHJcbiAgICBsaW5lRGlzY291bnRRdWFudHVtOiB0aGlzLmNmZ05hbWVzLkxpbmVEaXNjb3VudFF1YW50dW1cclxuICB9O1xyXG5cclxuICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lVG9CZVBpY2tlZENvbXBsZXRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2U6IFRyYW5zYWN0aW9uSGVhZGVyU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkxpbmVTZXJ2aWNlOiBUcmFuc2FjdGlvbkxpbmVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNjcmVlbkNvbmZpZ1NlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZTogVHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGVsaXZlcnlQbGFubmluZ1NlcnZpY2U6IERlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBUcmFuc2FjdGlvbkRpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zYWN0aW9uSGVhZGVyU2VydmljZSwgdHJhbnNhY3Rpb25MaW5lU2VydmljZSwgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsIGljb25DYWNoZVNlcnZpY2UsIHNjcmVlbkNvbmZpZ1NlcnZpY2UsIGltYWdlU2VydmljZSwgZGljdGlvbmFyeVNlcnZpY2UsIHRyYW5zYWN0aW9uU2VydmljZSxjaGFuZ2VEZXRlY3Rvcik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uuc2VsZWN0QWxsU2FsZXNPcmRlckxpbmVzVG9CZVBpY2tlZC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUuc2VsZWN0ZWQgPSB2YWx1ZSAmJiAhdGhpcy50cmFuc2FjdGlvbkxpbmVUb0JlUGlja2VkQ29tcGxldGVkO1xyXG4gICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5uZXdQbGFuT3JkZXJFdmVudC5zdWJzY3JpYmUoIG5ld1BsYW5PcmRlckV2ZW50ID0+IHtcclxuICAgICAgICB0aGlzLnBsYW5PcmRlckxpbmUgPSB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5jdXJyZW50UGxhbk9yZGVyLmxpbmVzLmZpbmQoIGxpbmUgPT4gbGluZS5vcmlnaW5hbExpbmVOciA9PT0gdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yKTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRQbGFubmVkUmVzb3VyY2VzRm9yVHJhbnNhY3Rpb25MaW5lKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIpLnRoZW4oIChyZXN1bHQ6IFBsYW5uZWRSZXNvdXJjZUZvclRyYW5zYWN0aW9uTGluZVtdKSA9PiB7XHJcbiAgICAgIHRoaXMucGxhbm5lZFJlc291cmNlRm9yVHJhbnNhY3Rpb25MaW5lID0gcmVzdWx0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBpZiAodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UucGxhbk9yZGVyRGF0ZSkge1xyXG4gICAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5wbGFuT3JkZXJEYXRlID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVDaGVja0JveFZhbHVlQ2hhbmdlZCh2YWx1ZTogYm9vbGVhbiwgbGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UubHNwTW9kZSkge1xyXG4gICAgICBsZXQgcGFja2FnZVJlc3BvbnNlID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0UGFja2FnZUluZm9ybWF0aW9uKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQsIGxpbmUudXVpZCk7XHJcbiAgICAgIGlmKHBhY2thZ2VSZXNwb25zZT8ubGVuZ3RoICYmIHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VMaW5lVmFsdWUoZmFsc2UpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuX2RpYWxvZy5zaG93RXJyb3IoXCJMU1BfQUxSRUFEWV9DUkVBVEVEX0ZPUl9USElTX0xJTkVcIiwgdHJ1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VMaW5lVmFsdWUodmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNoYW5nZUxpbmVWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlTGluZUNsaWNrZWQobW91c2VDbGljazogUG9pbnRlckV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UubGluZXNQbGFuT3JkZXI/LmxpbmVzPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UucGxhbk9yZGVyRGF0ZSA9IG5ldyBEYXRlKHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmxpbmVzUGxhbk9yZGVyLmxpbmVzWzBdLmRlbGl2ZXJ5RGF0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlTGluZVZhbHVlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uTGluZS5zZWxlY3RlZCA9IHZhbHVlO1xyXG4gICAgaWYoIXRoaXMudHJhbnNhY3Rpb25MaW5lLmFtb3VudFNlbGVjdGVkKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lLmFtb3VudFNlbGVjdGVkID0gdGhpcy5wbGFuT3JkZXJMaW5lLmFtb3VudFRvUGxhbjtcclxuICAgIH1cclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRyYWdTdGFydGVkKGV2OiBEcmFnRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5jaGVja2VkQXZhaWxpYmlsaXR5KSB7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmF2YWlsYWJpbGl0eUNoZWNrRXZlbnQuZW1pdCh0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5jdXJyZW50UGxhbk9yZGVyKTtcclxuICAgICAgdGhpcy5jaGVja2VkQXZhaWxpYmlsaXR5ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKHRoaXMudHJhbnNhY3Rpb25MaW5lLmFtb3VudFNlbGVjdGVkKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMucGxhbk9yZGVyTGluZT8uYW1vdW50VG9QbGFuKTtcclxuICAgIGlmKHRoaXMudHJhbnNhY3Rpb25MaW5lLmFtb3VudFNlbGVjdGVkIDw9IDAgfHwgdGhpcy5wbGFuT3JkZXJMaW5lPy5hbW91bnRUb1BsYW4gPT09IDApIHtcclxuICAgICAgIGF3YWl0IHRoaXMuX2RpYWxvZy5zaG93RXJyb3IodGhpcy5fZGljdGlvbmFyeS5nZXQoJ09SREVSX0NBTl9OT1RfQkVfUExBTk5FRF9PTl9SRVNPVVJDRScpLCB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRUcmFuc0lkID0gdGhpcy50cmFuc2FjdGlvbkluZm8uaWQ7XHJcbiAgICAgIGV2LmRhdGFUcmFuc2Zlcj8uc2V0RGF0YSgndGV4dCcsICdsaW5lcycpO1xyXG4gICAgfVxyXG4gICAgKGV2LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0LmFkZCgnZHJhZ2dpbmcnKTtcclxuICAgIGNvbnN0IGxpbmVFbGVtZW50ID0gKGV2LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdCgnY28tdHJhbnNhY3Rpb24tYmFzZS1saW5lJyk7XHJcbiAgICBpZiAoIWxpbmVFbGVtZW50KSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgZHJhZ0JveCA9IGxpbmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jby10cmFuc2FjdGlvbi1saW5lLWltYWdlLWFuZC1kZXNjcmlwdGlvbicpPy5jbG9uZU5vZGUodHJ1ZSkgYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgY29uc3QgZHJhZ0ltYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5mbGV4RGlyZWN0aW9uID0gJ3Jvdyc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUuYWxpZ25JdGVtcyA9ICdjZW50ZXInO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ3NwYWNlLWFyb3VuZCc7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUud2lkdGggPSAnMjUwcHgnO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLm1pbkhlaWdodCA9ICc1MHB4JztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5wYWRkaW5nID0gJzEwcHgnO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICcjZmZmZmZmJztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5ib3JkZXIgPSAnMXB4IHNvbGlkICNjY2MnO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLmJveFNoYWRvdyA9ICcwIDRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEpJztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5ib3JkZXJSYWRpdXMgPSAnNXB4JztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5mb250U2l6ZSA9ICcxMnB4JztcclxuXHJcbiAgICBpZiAoZHJhZ0JveCkge1xyXG4gICAgICBkcmFnQm94LnN0eWxlLmZsZXggPSAnMSc7XHJcbiAgICAgIGRyYWdJbWFnZS5hcHBlbmRDaGlsZChkcmFnQm94KTtcclxuICAgIH1cclxuXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRyYWdJbWFnZSk7XHJcbiAgICBkcmFnSW1hZ2Uuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4gICAgZHJhZ0ltYWdlLnN0eWxlLnRvcCA9ICctMTAwMHB4JztcclxuICAgIGRyYWdJbWFnZS5zdHlsZS5sZWZ0ID0gJy0xMDAwcHgnO1xyXG5cclxuICAgIC8vIFNldCB0aGUgY3VzdG9tIGRyYWcgaW1hZ2VcclxuICAgIGV2LmRhdGFUcmFuc2Zlcj8uc2V0RHJhZ0ltYWdlKGRyYWdJbWFnZSwgNTAsIDI1KTtcclxuXHJcbiAgICAvLyBDbGVhbnVwOiBSZW1vdmUgdGhlIGRyYWcgaW1hZ2UgYWZ0ZXIgaXQncyBzZXRcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkcmFnSW1hZ2UpLCAwKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbmQnLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBkcmFnRW5kZWQoZXY6IERyYWdFdmVudCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5jaGVja2VkQXZhaWxpYmlsaXR5KSB7XHJcbiAgICAgIHRoaXMuY2hlY2tlZEF2YWlsaWJpbGl0eSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5hdmFpbGFiaWxpdHlSZXNldEV2ZW50LmVtaXQoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgICAoZXYudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbGFzc0xpc3QucmVtb3ZlKCdkcmFnZ2luZycpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBsaW5lUGxhbm5lZCgpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UubGluZXNQbGFuT3JkZXIpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAhdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UubGluZXNQbGFuT3JkZXI/LmxpbmVzPy5maW5kKGxpbmUgPT4gbGluZS5vcmlnaW5hbExpbmVOciA9PT0gdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbGluZUZ1bGx5UGxhbm5lZCgpOiBib29sZWFuIHtcclxuICAgIGlmKHRoaXMucGxhbk9yZGVyTGluZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5wbGFuT3JkZXJMaW5lLmFtb3VudFRvUGxhbiA9PT0gMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVRdWFudGl0eVRvUGxhbkNoYW5nZShhbW91bnQ6IG51bWJlcikge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkxpbmUuYW1vdW50U2VsZWN0ZWQgPSBhbW91bnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlUGxhbm5lZFJlc291cmNlQ2xpY2tlZChwbGFubmVkUmVzb3VyY2U6IFBsYW5uZWRSZXNvdXJjZUZvclRyYW5zYWN0aW9uTGluZSkge1xyXG4gICAgICBsZXQgcGxhbm5pbmdzOiBQbGFubmluZ1tdID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuZ2V0UGxhbm5pbmdTb3VyY2VzKCk7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRTdGFydERhdGUgPSBwbGFubmVkUmVzb3VyY2UucGxhbm5pbmdTdGFydFRpbWU7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRQbGFubmluZyA9IHBsYW5uaW5ncy5maW5kKCBwbGFubmluZyA9PiBwbGFubmluZy5wbGFubmluZ0lkID09PSBwbGFubmVkUmVzb3VyY2UucGxhbm5pbmdJZCk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3BlblNpZGVQYW5lbC5uZXh0KHRoaXMudHJhbnNhY3Rpb25MaW5lKTtcclxuICAgICAgdGhpcy5oYXNPcGVuZWRTaWRlUGFuZWwgPSB0cnVlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -69,13 +69,15 @@ export class TransactionSearchResultComponent {
69
69
  }
70
70
  }), this.transactionEventService.selectedTransportDay.subscribe((transportDay) => __awaiter(this, void 0, void 0, function* () {
71
71
  const filteredTransactions = yield Promise.all(this.searchService.transactions.map((order) => __awaiter(this, void 0, void 0, function* () {
72
- let available = true;
73
72
  const planOrder = yield this.transactionService.getPlanOrder(order.transId);
74
- yield this._deliveryPlanningService.deliveryMethodAvailabilityCheck(planOrder, available, transportDay);
75
- yield this._deliveryPlanningService.districtAvailabilityCheck(planOrder, available, transportDay);
76
- return available ? order : null;
73
+ const isAvailable = (yield this._deliveryPlanningService.deliveryMethodAvailabilityCheck(planOrder, transportDay)) &&
74
+ (yield this._deliveryPlanningService.districtAvailabilityCheck(planOrder, transportDay)) &&
75
+ transportDay.availableOnDate;
76
+ return isAvailable ? order : null;
77
77
  })));
78
78
  this.searchService.transactions = filteredTransactions.filter((order) => order !== null);
79
+ })), this.transactionEventService.resetTransportDayFilteredOrders.subscribe((event) => __awaiter(this, void 0, void 0, function* () {
80
+ yield this.searchService.searchTransactions();
79
81
  })));
80
82
  }
81
83
  ngOnChanges(changes) {
@@ -363,4 +365,4 @@ TransactionSearchResultComponent.propDecorators = {
363
365
  transactionClick: [{ type: Output }],
364
366
  showClass: [{ type: HostBinding, args: ['class.co-transaction-search-result',] }]
365
367
  };
366
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZWFyY2gvdHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC90cmFuc2FjdGlvbi1zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVySyxPQUFPLEVBQUMsNkJBQTZCLEVBQUUsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDNUYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBR2hILE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUMxRixPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUV0SCxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFHeEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFrSG5GLE1BQU0sT0FBTyxnQ0FBZ0M7SUEyRDNDLFlBQ1MsYUFBdUMsRUFDdkMsbUJB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aUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBN0hPLHdCQUF3QjtZQUN4QixxQ0FBcUM7WUFJckMsa0JBQWtCO1lBT2xCLHVCQUF1QjtZQWhCdkIsaUJBQWlCO1lBUWpCLHVCQUF1Qjs7O29DQTJINUIsS0FBSzsyQkFHTCxLQUFLOzRCQUdMLEtBQUs7d0NBR0wsS0FBSztvQ0FHTCxLQUFLO3lCQVNMLEtBQUs7K0JBU0wsTUFBTTt3QkFHTixXQUFXLFNBQUMsb0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hWaWV3fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXZpZXcuYm8nO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCBDb250ZW50Vmlld01vZGV9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXZpZXctcmVxdWVzdCc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1NlcnZpY2V9IGZyb20gJy4uLy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtCYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9iYXRjaC10cmFuc2FjdGlvbi1zZW5kaW5nLXJlcXVlc3QnO1xyXG5pbXBvcnQge0JhdGNoSm9iUHJvZ3Jlc3N9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9iYXRjaC1qb2ItcHJvZ3Jlc3MuYm8nO1xyXG5pbXBvcnQge2FuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9ufSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vYmplY3QtY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7UGxhbk9yZGVyfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi1vcmRlci5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7UGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmctdHJhbnNwb3J0LXdlZWstZGF5LmJvJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tdHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNjcmVlbkNvbmZpZ0xvYWRlZFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnMtd3JhcHBlclwiXHJcbiAgICAgICAgICAgICAgICpuZ0lmPVwic2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnM/Lmxlbmd0aCA+IDAgJiYgc2FsZXNPcmRlcnNQYWdlQWN0aXZlICYmIHNob3dCYXRjaE9wdGlvbnNcIj5cclxuICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJjaGVja0lmQWxsU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY2hlY2tJZkFsbFNlbGVjdGVkKCkgPyAnREVTRUxFQ1RfQUxMJyA6ICdTRUxFQ1RfQUxMX09SREVSUycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwib25Ub2dnbGVBbGxPcmRlcnMoY2hlY2tJZkFsbFNlbGVjdGVkKCkpXCI+XHJcbiAgICAgICAgICAgICAgPC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgICA8Y28tcXVpY2stc2VuZC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2hlY2tJZlNlbGVjdGVkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Nob3dTZW5kTWV0aG9kRGlhbG9nSWNvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2hvd0xvYWRlcl09XCJzaG93UHJvY2Vzc09yZGVyc0xvYWRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoc2VuZEljb25DbGlja2VkKT1cInNob3dBZGRpdGlvbmFsT3B0aW9ucygpXCI+XHJcbiAgICAgICAgICAgICAgPC9jby1xdWljay1zZW5kLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1zZWFyY2gtcmVzdWx0LWNvbnRlbnQtdGlsZXMtd3JhcHBlclwiIFtuZ0NsYXNzXT1cImZ1bGxzY3JlZW4gPyAnZnVsbHNjcmVlbicgOiAnc2lkZWJhcidcIlxyXG4gICAgICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUNvbnRlbnRWaWV3TW9kZSA9PT0gY29udGVudFZpZXdNb2Rlcy5UaWxlcyAmJiAhZXh0ZW5kZWRUcmFuc2FjdGlvblNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi10aWxlXCIgKm5nRm9yPVwibGV0IHRyYW5zYWN0aW9uIG9mIHNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1zZWFyY2gtdGlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtkcmFnZ2FibGVdPVwiZHJhZ2dhYmxlVHJhbnNhY3Rpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhZ3N0YXJ0KT1cImRyYWdTdGFydGVkKCRldmVudCwgdHJhbnNhY3Rpb24pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhZ2VuZCk9XCJkcmFnRW5kKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dDaGVja2JveF09XCJzYWxlc09yZGVyc1BhZ2VBY3RpdmUgJiYgc2hvd0JhdGNoT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cInRyYW5zYWN0aW9uLnNlbGVjdGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwidHJhbnNhY3Rpb24gPT09IHNlbGVjdGVkVHJhbnNhY3Rpb24gPyAnc2VsZWN0ZWQnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuc2FjdGlvbkNsaWNrKT1cIm9uVHJhbnNhY3Rpb25DbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDbGljayk9XCJvblNlbGVjdGVkQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLXNlYXJjaC10aWxlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHQtY29udGVudC1ncmlkLXdyYXBwZXJcIlxyXG4gICAgICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUNvbnRlbnRWaWV3TW9kZSA9PT0gY29udGVudFZpZXdNb2Rlcy5HcmlkICYmICFleHRlbmRlZFRyYW5zYWN0aW9uU2VhcmNoXCI+XHJcbiAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLXNlYXJjaC1ncmlkXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2hvd0NoZWNrYm94XT1cInNhbGVzT3JkZXJzUGFnZUFjdGl2ZSAmJiBzaG93QmF0Y2hPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICh0cmFuc2FjdGlvbkNsaWNrKT1cIm9uVHJhbnNhY3Rpb25DbGljaygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1zZWFyY2gtZ3JpZD5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1leHRlbmRlZC1zZWFyY2gtcmVzdWx0LXRpbGUtd3JhcHBlclwiICpuZ0lmPVwiZXh0ZW5kZWRUcmFuc2FjdGlvblNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi10aWxlXCIgKm5nRm9yPVwibGV0IHRyYW5zYWN0aW9uIG9mIHNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1zZWFyY2gtc2FsZXMtbGluZS1zZWxlY3QtdGlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5zYWN0aW9uQ2xpY2spPVwib25UcmFuc2FjdGlvbkNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENsaWNrKT1cIm9uU2VsZWN0ZWRDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZXh0ZW5kZWRUcmFuc2FjdGlvblNlYXJjaF09XCJleHRlbmRlZFRyYW5zYWN0aW9uU2VhcmNoXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tc2VhcmNoLXNhbGVzLWxpbmUtc2VsZWN0LXRpbGU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8Y28tcGFnaW5hdGlvbi1iYXJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucz8ubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICAgICAgICAgIFtjdXJyZW50UGFnZV09XCJzZWFyY2hTZXJ2aWNlLmN1cnJlbnRQYWdlXCJcclxuICAgICAgICAgICAgICAgICAgW2l0ZW1zUGVyUGFnZV09XCJzZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9uc1BlclBhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICBbdG90YWxJdGVtc109XCJzZWFyY2hTZXJ2aWNlLnJlc3VsdENvdW50XCJcclxuICAgICAgICAgICAgICAgICAgW3ByZXZpb3VzTGFiZWxdPVwiJ1BSRVZJT1VTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgW25leHRMYWJlbF09XCInTkVYVCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFthdXRvSGlkZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW2RpcmVjdGlvbkxpbmtzXT1cImZ1bGxzY3JlZW5cIlxyXG4gICAgICAgICAgICAgICAgICBbcGFnaW5hdGlvblJhbmdlXT1cIiFmdWxsc2NyZWVuID8gNiA6IDhcIlxyXG4gICAgICAgICAgICAgICAgICAocHJldmlvdXNDbGljayk9XCJvblByZXZpb3VzQ2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgICAgIChuZXh0Q2xpY2spPVwib25OZXh0Q2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgICAgIChwYWdlQ2xpY2spPVwib25QYWdlQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPC9jby1wYWdpbmF0aW9uLWJhcj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGUtd3JhcHBlclwiICpuZ0lmPVwic2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnMgJiYgc2VhcmNoU2VydmljZS5yZXN1bHRDb3VudCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInMF9SRVNVTFRTX0ZPVU5EJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPGNvLXNoaXBwaW5nLW1ldGhvZC1kaWFsb2dcclxuICAgICAgICAgICAgICAqbmdJZj1cInNob3dTaGlwcGluZ01ldGhvZERpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgW2NhdGVnb3J5XT1cImJhdGNoQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgIFtzZWxlY3RlZFRyYW5zYWN0aW9uc109XCJzZWxlY3RlZFRyYW5zYWN0aW9uc1wiXHJcbiAgICAgICAgICAgICAgKGNhbmNlbENsaWNrZWQpPVwic2hvd1NoaXBwaW5nTWV0aG9kRGlhbG9nID0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgIChzYXZlQ2xpY2tlZCk9XCJzaGlwcGluZ0RpYWxvZ1NhdmVDbGlja2VkKCRldmVudClcIj5cclxuICAgICAgPC9jby1zaGlwcGluZy1tZXRob2QtZGlhbG9nPlxyXG5cclxuICAgICAgPGNvLWJhdGNoLXByb2Nlc3MtZGlhbG9nXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzaG93QmF0Y2hQcm9jZXNzRGlhbG9nXCJcclxuICAgICAgICAgICAgICBAZmFkZUluT3V0XHJcbiAgICAgICAgICAgICAgW2JhdGNoSm9iUHJvZ3Jlc3NdPVwiYmF0Y2hKb2JQcm9ncmVzc1wiXHJcbiAgICAgICAgICAgICAgKGNsb3NlKT1cInNob3dCYXRjaFByb2Nlc3NEaWFsb2cgPSBmYWxzZVwiPlxyXG4gICAgICA8L2NvLWJhdGNoLXByb2Nlc3MtZGlhbG9nPlxyXG5cclxuICAgICAgPGNvLXRyYW5zYWN0aW9uLWRhdGUtcGljay1kaWFsb2dcclxuICAgICAgICAgICAgICAqbmdJZj1cInNob3dEYXRlUGlja0RpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgKGNhbmNlbENsaWNrZWQpPVwic2hvd0RhdGVQaWNrRGlhbG9nID0gZmFsc2VcIj5cclxuICAgICAgPC9jby10cmFuc2FjdGlvbi1kYXRlLXBpY2stZGlhbG9nPlxyXG4gIGAsXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignZmFkZUluT3V0JywgW1xyXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXHJcbiAgICAgICAgc3R5bGUoe29wYWNpdHk6IDB9KSxcclxuICAgICAgICBhbmltYXRlKCc1MDBtcyBlYXNlLWluJywgc3R5bGUoe29wYWNpdHk6IDF9KSlcclxuICAgICAgXSksXHJcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcclxuICAgICAgICBhbmltYXRlKCc1MDBtcyBlYXNlLW91dCcsIHN0eWxlKHtvcGFjaXR5OiAwfSkpXHJcbiAgICAgIF0pXHJcbiAgICBdKVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7cHJvdmlkZTogQmFzZU1vZHVsZVNjcmVlbkNvbmZpZ1NlcnZpY2UsIHVzZUV4aXN0aW5nOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfVxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25TZWFyY2hSZXN1bHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkcmFnZ2FibGVUcmFuc2FjdGlvbnM6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dDaGVja2JveDogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBiYXRjaENhdGVnb3J5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGV4dGVuZGVkVHJhbnNhY3Rpb25TZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGFjdGl2ZUNvbnRlbnRWaWV3TW9kZSh2YWx1ZTogQ29udGVudFZpZXdNb2RlKSB7XHJcbiAgICB0aGlzLl9hY3RpdmVDb250ZW50Vmlld01vZGUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWN0aXZlQ29udGVudFZpZXdNb2RlKCk6IENvbnRlbnRWaWV3TW9kZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlQ29udGVudFZpZXdNb2RlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGZ1bGxzY3JlZW4odmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2Z1bGxzY3JlZW4gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZnVsbHNjcmVlbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9mdWxsc2NyZWVuO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxUcmFuc2FjdGlvblNlYXJjaFZpZXc+ID0gbmV3IEV2ZW50RW1pdHRlcjxUcmFuc2FjdGlvblNlYXJjaFZpZXc+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdCcpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IGljb246IHR5cGVvZiBJY29uID0gSWNvbjtcclxuICBwdWJsaWMgcmVhZG9ubHkgY29udGVudFZpZXdNb2RlczogdHlwZW9mIENvbnRlbnRWaWV3TW9kZSA9IENvbnRlbnRWaWV3TW9kZTtcclxuXHJcbiAgcHVibGljIHNlbGVjdGVkVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uU2VhcmNoVmlldztcclxuICBwdWJsaWMgc2NyZWVuQ29uZmlnTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNhbGVzT3JkZXJzUGFnZUFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93UHJvY2Vzc09yZGVyc0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93QmF0Y2hPcHRpb25zOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dTaGlwcGluZ01ldGhvZERpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93RGF0ZVBpY2tEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0JhdGNoUHJvY2Vzc0RpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjaGVja2VkQXZhaWxhYmlsaXR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNlbGVjdGVkVHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvblNlYXJjaFZpZXdbXSA9IFtdO1xyXG4gIHB1YmxpYyBiYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3Q6IEJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdCA9IG5ldyBCYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3QoKTtcclxuICBwdWJsaWMgYmF0Y2hKb2JQcm9ncmVzczogQmF0Y2hKb2JQcm9ncmVzc1tdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2FjdGl2ZUNvbnRlbnRWaWV3TW9kZTogQ29udGVudFZpZXdNb2RlO1xyXG4gIHByaXZhdGUgX2Z1bGxzY3JlZW46IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2VhcmNoU2VydmljZTogVHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNjcmVlbkNvbmZpZ1NlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfZGVsaXZlcnlQbGFubmluZ1NlcnZpY2U6IERlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hSZXF1ZXN0U2V0LnN1YnNjcmliZSgocmVxdWVzdDogVHJhbnNhY3Rpb25TZWFyY2hWaWV3UmVxdWVzdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXF1ZXN0KSB7XHJcbiAgICAgICAgICB0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UubG9hZENvbmZpZyhbcmVxdWVzdC50cmFuc2FjdGlvbktpbmRdKTtcclxuICAgICAgICAgIHRoaXMuc2FsZXNPcmRlcnNQYWdlQWN0aXZlID0gcmVxdWVzdC50cmFuc2FjdGlvbktpbmQgPT09ICdWJztcclxuICAgICAgICAgIGlmICh0aGlzLnNhbGVzT3JkZXJzUGFnZUFjdGl2ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS50cmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG5cclxuICAgICAgdGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmNvbmZpZ1NldC5zdWJzY3JpYmUoKGNvbmZpZzogT2JqZWN0Q29uZmlndXJhdGlvbltdKSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbmZpZyAmJiBjb25maWcubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5zY3JlZW5Db25maWdMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5yZXN1bHRzVXBkYXRlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnNhbGVzT3JkZXJzUGFnZUFjdGl2ZSAmJiB0aGlzLnNob3dCYXRjaE9wdGlvbnMpIHtcclxuICAgICAgICAgIHRoaXMubWFya1NlbGVjdGVkVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5zZWxlY3RlZFRyYW5zcG9ydERheS5zdWJzY3JpYmUoIGFzeW5jICh0cmFuc3BvcnREYXk6IFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkVHJhbnNhY3Rpb25zID0gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zLm1hcChhc3luYyAob3JkZXI6IFRyYW5zYWN0aW9uU2VhcmNoVmlldykgPT4ge1xyXG4gICAgICAgICAgICBsZXQgYXZhaWxhYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgY29uc3QgcGxhbk9yZGVyID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0UGxhbk9yZGVyKG9yZGVyLnRyYW5zSWQpO1xyXG5cclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuZGVsaXZlcnlNZXRob2RBdmFpbGFiaWxpdHlDaGVjayhwbGFuT3JkZXIsIGF2YWlsYWJsZSwgdHJhbnNwb3J0RGF5KTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuZGlzdHJpY3RBdmFpbGFiaWxpdHlDaGVjayhwbGFuT3JkZXIsIGF2YWlsYWJsZSwgdHJhbnNwb3J0RGF5KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBhdmFpbGFibGUgPyBvcmRlciA6IG51bGw7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnMgPSBmaWx0ZXJlZFRyYW5zYWN0aW9ucy5maWx0ZXIoKG9yZGVyKTogb3JkZXIgaXMgVHJhbnNhY3Rpb25TZWFyY2hWaWV3ID0+IG9yZGVyICE9PSBudWxsKTtcclxuICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydiYXRjaENhdGVnb3J5J10pIHtcclxuICAgICAgdGhpcy5iYXRjaENhdGVnb3J5ID0gY2hhbmdlc1snYmF0Y2hDYXRlZ29yeSddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgdGhpcy5fc2hvd0JhdGNoT3B0aW9ucyh0aGlzLmJhdGNoQ2F0ZWdvcnkpO1xyXG4gICAgICBpZiAoY2hhbmdlc1snYmF0Y2hDYXRlZ29yeSddLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZXNbJ2JhdGNoQ2F0ZWdvcnknXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9jbGVhclNlbGVjdGVkKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25UcmFuc2FjdGlvbkNsaWNrKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlYXJjaFZpZXcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkNsaWNrLmVtaXQodHJhbnNhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2VsZWN0ZWRDbGljayh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25TZWFyY2hWaWV3KTogdm9pZCB7XHJcbiAgICBpZiAodHJhbnNhY3Rpb24uc2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5wdXNoKHRyYW5zYWN0aW9uKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHRyYW5zSWQgPSB0cmFuc2FjdGlvbi50cmFuc0lkO1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMuZmluZEluZGV4KHRyYW5zYWN0aW9uID0+IHRyYW5zYWN0aW9uLnRyYW5zSWQgPT09IHRyYW5zSWQpO1xyXG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25QcmV2aW91c0NsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmN1cnJlbnRQYWdlIC09IDE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25OZXh0Q2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UuY3VycmVudFBhZ2UgKz0gMTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblBhZ2VDbGljayhwYWdlTnI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmN1cnJlbnRQYWdlID0gcGFnZU5yO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1hcmtTZWxlY3RlZFRyYW5zYWN0aW9ucygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlYXJjaFNlcnZpY2UucmVzdWx0c1VwZGF0ZWQpIHtcclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucy5mb3JFYWNoKHRyYW5zYWN0aW9uID0+IHtcclxuICAgICAgICBjb25zdCBtYXRjaGluZ09iamVjdCA9IHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMuZmluZChzZWxlY3RlZFRyYW5zYWN0aW9uID0+IHNlbGVjdGVkVHJhbnNhY3Rpb24udHJhbnNJZCA9PT0gdHJhbnNhY3Rpb24udHJhbnNJZCk7XHJcbiAgICAgICAgaWYgKG1hdGNoaW5nT2JqZWN0KSB7XHJcbiAgICAgICAgICB0cmFuc2FjdGlvbi5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBkcmFnU3RhcnRlZChldjogYW55LCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25TZWFyY2hWaWV3KSB7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5kcmFnZ2luZyA9IHRydWU7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50VHJhbnNJZCA9IHRyYW5zYWN0aW9uLnRyYW5zSWQ7XHJcbiAgICBldi5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dCcsIHRyYW5zYWN0aW9uLnRyYW5zSWQpO1xyXG4gICAgaWYgKCF0aGlzLmNoZWNrZWRBdmFpbGFiaWxpdHkpIHtcclxuICAgICAgbGV0IHBsYW5PcmRlcjogUGxhbk9yZGVyID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0UGxhbk9yZGVyKHRyYW5zYWN0aW9uLnRyYW5zSWQpO1xyXG4gICAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5hdmFpbGFiaWxpdHlDaGVja0V2ZW50LmVtaXQocGxhbk9yZGVyKTtcclxuICAgICAgdGhpcy5jaGVja2VkQXZhaWxhYmlsaXR5ID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkcmFnRW5kKGV2OiBhbnkpIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmRyYWdnaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50VHJhbnNJZCA9IHVuZGVmaW5lZDtcclxuICAgIGlmICh0aGlzLmNoZWNrZWRBdmFpbGFiaWxpdHkpIHtcclxuICAgICAgdGhpcy5jaGVja2VkQXZhaWxhYmlsaXR5ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmF2YWlsYWJpbGl0eVJlc2V0RXZlbnQuZW1pdCgpO1xyXG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrSWZTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVHJhbnNhY3Rpb25zLnNvbWUoaXRlbSA9PiBpdGVtLnNlbGVjdGVkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVja0lmQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucy5ldmVyeShpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dBZGRpdGlvbmFsT3B0aW9ucygpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkVHJhbnNhY3Rpb25zSWRzOiBudW1iZXJbXSA9IHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMubWFwKHRyYW5zYWN0aW9uID0+IHRyYW5zYWN0aW9uLnRyYW5zSWQpO1xyXG5cclxuICAgIGlmICh0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICdhbGxvY2F0ZScgfHwgdGhpcy5iYXRjaENhdGVnb3J5ID09PSAndG9ld2lqemVuJykge1xyXG4gICAgICB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2Uuc3RhcnRUb0FsbG9jYXRlVW5BbGxvY2F0ZWRMaW5lc0JhdGNoKHNlbGVjdGVkVHJhbnNhY3Rpb25zSWRzKVxyXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuX3Nob3dCYXRjaFByb2Nlc3Nlc1N0YXR1cygpKVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICd0byBiZSBwaWNrZWQnKSB7XHJcbiAgICAgIHRoaXMuc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5zdGFydEdvb2RzVG9CZVBpY2tlZEJhdGNoKHNlbGVjdGVkVHJhbnNhY3Rpb25zSWRzKVxyXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuX3Nob3dCYXRjaFByb2Nlc3Nlc1N0YXR1cygpKVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICdwaWNrZWQnKSB7XHJcbiAgICAgIHRoaXMuc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5zdGFydEdvb2RzUGlja2VkQmF0Y2goc2VsZWN0ZWRUcmFuc2FjdGlvbnNJZHMpXHJcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5fc2hvd0JhdGNoUHJvY2Vzc2VzU3RhdHVzKCkpXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHRoaXMuc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXIgPSBmYWxzZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3dTaGlwcGluZ01ldGhvZERpYWxvZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Ub2dnbGVBbGxPcmRlcnMoYWxsU2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaXRlbS5zZWxlY3RlZCA9ICFhbGxTZWxlY3RlZDtcclxuICAgICAgY29uc3QgdHJhbnNhY3Rpb25FeGlzdHM6IGJvb2xlYW4gPSB0aGlzLnNlbGVjdGVkVHJhbnNhY3Rpb25zLnNvbWUodHJhbnMgPT4gdHJhbnMudHJhbnNJZCA9PT0gaXRlbS50cmFuc0lkKTtcclxuICAgICAgaWYgKCFhbGxTZWxlY3RlZCAmJiAhdHJhbnNhY3Rpb25FeGlzdHMpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVHJhbnNhY3Rpb25zLnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGFsbFNlbGVjdGVkKSB7XHJcbiAgICAgICAgY29uc3QgdHJhbnNhY3Rpb25JbmRleCA9IHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMuZmluZEluZGV4KHRyYW5zID0+IHRyYW5zLnRyYW5zSWQgPT09IGl0ZW0udHJhbnNJZCk7XHJcbiAgICAgICAgaWYgKHRyYW5zYWN0aW9uSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVHJhbnNhY3Rpb25zLnNwbGljZSh0cmFuc2FjdGlvbkluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNoaXBwaW5nRGlhbG9nU2F2ZUNsaWNrZWQocmVxdWVzdDogQmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICB0aGlzLmJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdCA9IHJlcXVlc3Q7XHJcbiAgICB0aGlzLnNob3dTaGlwcGluZ01ldGhvZERpYWxvZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93UHJvY2Vzc09yZGVyc0xvYWRlciA9IHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ292ZXJ2aWV3JyB8fCB0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICdvdmVyemljaHQnKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXJ0T3JkZXJDb25maXJtYXRpb25CYXRjaCh0aGlzLmJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdClcclxuICAgICAgICAudGhlbigoKSA9PiB0aGlzLl9zaG93QmF0Y2hQcm9jZXNzZXNTdGF0dXMoKSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4gdGhpcy5zaG93UHJvY2Vzc09yZGVyc0xvYWRlciA9IGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5iYXRjaENhdGVnb3J5ID09PSAncHVyY2hhc2UnIHx8IHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ2lua29vcCcpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2Uuc3RhcnRQdXJjaGFzZU9yZGVyRm9ybUJhdGNoKHRoaXMuYmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuX3Nob3dCYXRjaFByb2Nlc3Nlc1N0YXR1cygpKVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICdkZWxpdmVyeSBvcmRlcicgfHwgdGhpcy5iYXRjaENhdGVnb3J5ID09PSAnYWZsZXZlcmJvbicpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2Uuc3RhcnREZWxpdmVyeU5vdGVzQmF0Y2godGhpcy5iYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3QpXHJcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5fc2hvd0JhdGNoUHJvY2Vzc2VzU3RhdHVzKCkpXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHRoaXMuc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXIgPSBmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ2ludm9pY2UnIHx8IHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ2ZhY3R1dXInKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXJ0SW52b2ljZUJhdGNoKHRoaXMuYmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuX3Nob3dCYXRjaFByb2Nlc3Nlc1N0YXR1cygpKVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2hvd0JhdGNoT3B0aW9ucyhjYXRlZ29yeTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dCYXRjaE9wdGlvbnMgPSBbJ292ZXJ2aWV3JywgJ3B1cmNoYXNlJywgJ2FsbG9jYXRlJywgJ3RvIGJlIHBpY2tlZCcsICdwaWNrZWQnLCAnZGVsaXZlcnkgb3JkZXInLCAnaW52b2ljZScsICdvdmVyemljaHQnLCAnaW5rb29wJywgJ3RvZXdpanplbicsICdhZmxldmVyYm9uJywgJ2ZhY3R1dXInXS5pbmNsdWRlcyhjYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zaG93QmF0Y2hQcm9jZXNzZXNTdGF0dXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gZmFsc2U7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRCYXRjaEpvYlByb2dyZXNzZXNGb3JUaGVVc2VyKCkudGhlbigoYmF0Y2hKb2JQcm9ncmVzc2VzOiBCYXRjaEpvYlByb2dyZXNzW10pID0+IHtcclxuICAgICAgdGhpcy5iYXRjaEpvYlByb2dyZXNzID0gYmF0Y2hKb2JQcm9ncmVzc2VzO1xyXG4gICAgICB0aGlzLnNob3dCYXRjaFByb2Nlc3NEaWFsb2cgPSB0cnVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jbGVhclNlbGVjdGVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucy5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCA9IGZhbHNlKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMgPSBbXTtcclxuICB9XHJcbn1cclxuIl19
368
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZWFyY2gvdHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC90cmFuc2FjdGlvbi1zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVySyxPQUFPLEVBQUMsNkJBQTZCLEVBQUUsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDNUYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBR2hILE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUMxRixPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUV0SCxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFHeEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFrSG5GLE1BQU0sT0FBTyxnQ0FBZ0M7SUEyRDNDLFlBQ1MsYUFBdUMsRUFDdkMsbUJB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Q0FBQzt5QkFDL0MsQ0FBQztxQkFDSCxDQUFDO2lCQUNIO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxFQUFDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxXQUFXLEVBQUUscUNBQXFDLEVBQUM7aUJBQzdGO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUE3SE8sd0JBQXdCO1lBQ3hCLHFDQUFxQztZQUlyQyxrQkFBa0I7WUFPbEIsdUJBQXVCO1lBaEJ2QixpQkFBaUI7WUFRakIsdUJBQXVCOzs7b0NBMkg1QixLQUFLOzJCQUdMLEtBQUs7NEJBR0wsS0FBSzt3Q0FHTCxLQUFLO29DQUdMLEtBQUs7eUJBU0wsS0FBSzsrQkFTTCxNQUFNO3dCQUdOLFdBQVcsU0FBQyxvQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFZpZXd9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1zZWFyY2gtdmlldy5ibyc7XHJcbmltcG9ydCB7QmFzZU1vZHVsZVNjcmVlbkNvbmZpZ1NlcnZpY2UsIENvbnRlbnRWaWV3TW9kZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS90cmFuc2FjdGlvbi1zZWFyY2guc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VhcmNoVmlld1JlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1zZWFyY2gtdmlldy1yZXF1ZXN0JztcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nU2VydmljZX0gZnJvbSAnLi4vLi4vZGVsaXZlcnktcGxhbm5pbmcvc2VydmljZS9kZWxpdmVyeS1wbGFubmluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge0JhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2JhdGNoLXRyYW5zYWN0aW9uLXNlbmRpbmctcmVxdWVzdCc7XHJcbmltcG9ydCB7QmF0Y2hKb2JQcm9ncmVzc30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2JhdGNoLWpvYi1wcm9ncmVzcy5ibyc7XHJcbmltcG9ydCB7YW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQge09iamVjdENvbmZpZ3VyYXRpb259IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL29iamVjdC1jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHtQbGFuT3JkZXJ9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFuLW9yZGVyLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXl9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy10cmFuc3BvcnQtd2Vlay1kYXkuYm8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbi1zZWFyY2gtcmVzdWx0JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2NyZWVuQ29uZmlnTG9hZGVkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9ucy13cmFwcGVyXCJcclxuICAgICAgICAgICAgICAgKm5nSWY9XCJzZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucz8ubGVuZ3RoID4gMCAmJiBzYWxlc09yZGVyc1BhZ2VBY3RpdmUgJiYgc2hvd0JhdGNoT3B0aW9uc1wiPlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cImNoZWNrSWZBbGxTZWxlY3RlZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJjaGVja0lmQWxsU2VsZWN0ZWQoKSA/ICdERVNFTEVDVF9BTEwnIDogJ1NFTEVDVF9BTExfT1JERVJTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJvblRvZ2dsZUFsbE9yZGVycyhjaGVja0lmQWxsU2VsZWN0ZWQoKSlcIj5cclxuICAgICAgICAgICAgICA8L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDxjby1xdWljay1zZW5kLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjaGVja0lmU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2hvd1NlbmRNZXRob2REaWFsb2dJY29uXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93TG9hZGVyXT1cInNob3dQcm9jZXNzT3JkZXJzTG9hZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChzZW5kSWNvbkNsaWNrZWQpPVwic2hvd0FkZGl0aW9uYWxPcHRpb25zKClcIj5cclxuICAgICAgICAgICAgICA8L2NvLXF1aWNrLXNlbmQtYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHQtY29udGVudC10aWxlcy13cmFwcGVyXCIgW25nQ2xhc3NdPVwiZnVsbHNjcmVlbiA/ICdmdWxsc2NyZWVuJyA6ICdzaWRlYmFyJ1wiXHJcbiAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlQ29udGVudFZpZXdNb2RlID09PSBjb250ZW50Vmlld01vZGVzLlRpbGVzICYmICFleHRlbmRlZFRyYW5zYWN0aW9uU2VhcmNoXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLXRpbGVcIiAqbmdGb3I9XCJsZXQgdHJhbnNhY3Rpb24gb2Ygc2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLXNlYXJjaC10aWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2RyYWdnYWJsZV09XCJkcmFnZ2FibGVUcmFuc2FjdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkcmFnc3RhcnQpPVwiZHJhZ1N0YXJ0ZWQoJGV2ZW50LCB0cmFuc2FjdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkcmFnZW5kKT1cImRyYWdFbmQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0NoZWNrYm94XT1cInNhbGVzT3JkZXJzUGFnZUFjdGl2ZSAmJiBzaG93QmF0Y2hPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwidHJhbnNhY3Rpb24uc2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJ0cmFuc2FjdGlvbiA9PT0gc2VsZWN0ZWRUcmFuc2FjdGlvbiA/ICdzZWxlY3RlZCcgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5zYWN0aW9uQ2xpY2spPVwib25UcmFuc2FjdGlvbkNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENsaWNrKT1cIm9uU2VsZWN0ZWRDbGljaygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tc2VhcmNoLXRpbGU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC1jb250ZW50LWdyaWQtd3JhcHBlclwiXHJcbiAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlQ29udGVudFZpZXdNb2RlID09PSBjb250ZW50Vmlld01vZGVzLkdyaWQgJiYgIWV4dGVuZGVkVHJhbnNhY3Rpb25TZWFyY2hcIj5cclxuICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tc2VhcmNoLWdyaWRcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q2hlY2tib3hdPVwic2FsZXNPcmRlcnNQYWdlQWN0aXZlICYmIHNob3dCYXRjaE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKHRyYW5zYWN0aW9uQ2xpY2spPVwib25UcmFuc2FjdGlvbkNsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLXNlYXJjaC1ncmlkPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWV4dGVuZGVkLXNlYXJjaC1yZXN1bHQtdGlsZS13cmFwcGVyXCIgKm5nSWY9XCJleHRlbmRlZFRyYW5zYWN0aW9uU2VhcmNoXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLXRpbGVcIiAqbmdGb3I9XCJsZXQgdHJhbnNhY3Rpb24gb2Ygc2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLXNlYXJjaC1zYWxlcy1saW5lLXNlbGVjdC10aWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbnNhY3Rpb25DbGljayk9XCJvblRyYW5zYWN0aW9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2xpY2spPVwib25TZWxlY3RlZENsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtleHRlbmRlZFRyYW5zYWN0aW9uU2VhcmNoXT1cImV4dGVuZGVkVHJhbnNhY3Rpb25TZWFyY2hcIj5cclxuICAgICAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1zZWFyY2gtc2FsZXMtbGluZS1zZWxlY3QtdGlsZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxjby1wYWdpbmF0aW9uLWJhclxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zPy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgICAgICAgW2N1cnJlbnRQYWdlXT1cInNlYXJjaFNlcnZpY2UuY3VycmVudFBhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICBbaXRlbXNQZXJQYWdlXT1cInNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zUGVyUGFnZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt0b3RhbEl0ZW1zXT1cInNlYXJjaFNlcnZpY2UucmVzdWx0Q291bnRcIlxyXG4gICAgICAgICAgICAgICAgICBbcHJldmlvdXNMYWJlbF09XCInUFJFVklPVVMnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICBbbmV4dExhYmVsXT1cIidORVhUJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgW2F1dG9IaWRlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbZGlyZWN0aW9uTGlua3NdPVwiZnVsbHNjcmVlblwiXHJcbiAgICAgICAgICAgICAgICAgIFtwYWdpbmF0aW9uUmFuZ2VdPVwiIWZ1bGxzY3JlZW4gPyA2IDogOFwiXHJcbiAgICAgICAgICAgICAgICAgIChwcmV2aW91c0NsaWNrKT1cIm9uUHJldmlvdXNDbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgKG5leHRDbGljayk9XCJvbk5leHRDbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgKHBhZ2VDbGljayk9XCJvblBhZ2VDbGljaygkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L2NvLXBhZ2luYXRpb24tYmFyPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZS13cmFwcGVyXCIgKm5nSWY9XCJzZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucyAmJiBzZWFyY2hTZXJ2aWNlLnJlc3VsdENvdW50ID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIicwX1JFU1VMVFNfRk9VTkQnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8Y28tc2hpcHBpbmctbWV0aG9kLWRpYWxvZ1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwic2hvd1NoaXBwaW5nTWV0aG9kRGlhbG9nXCJcclxuICAgICAgICAgICAgICBbY2F0ZWdvcnldPVwiYmF0Y2hDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgW3NlbGVjdGVkVHJhbnNhY3Rpb25zXT1cInNlbGVjdGVkVHJhbnNhY3Rpb25zXCJcclxuICAgICAgICAgICAgICAoY2FuY2VsQ2xpY2tlZCk9XCJzaG93U2hpcHBpbmdNZXRob2REaWFsb2cgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgKHNhdmVDbGlja2VkKT1cInNoaXBwaW5nRGlhbG9nU2F2ZUNsaWNrZWQoJGV2ZW50KVwiPlxyXG4gICAgICA8L2NvLXNoaXBwaW5nLW1ldGhvZC1kaWFsb2c+XHJcblxyXG4gICAgICA8Y28tYmF0Y2gtcHJvY2Vzcy1kaWFsb2dcclxuICAgICAgICAgICAgICAqbmdJZj1cInNob3dCYXRjaFByb2Nlc3NEaWFsb2dcIlxyXG4gICAgICAgICAgICAgIEBmYWRlSW5PdXRcclxuICAgICAgICAgICAgICBbYmF0Y2hKb2JQcm9ncmVzc109XCJiYXRjaEpvYlByb2dyZXNzXCJcclxuICAgICAgICAgICAgICAoY2xvc2UpPVwic2hvd0JhdGNoUHJvY2Vzc0RpYWxvZyA9IGZhbHNlXCI+XHJcbiAgICAgIDwvY28tYmF0Y2gtcHJvY2Vzcy1kaWFsb2c+XHJcblxyXG4gICAgICA8Y28tdHJhbnNhY3Rpb24tZGF0ZS1waWNrLWRpYWxvZ1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwic2hvd0RhdGVQaWNrRGlhbG9nXCJcclxuICAgICAgICAgICAgICAoY2FuY2VsQ2xpY2tlZCk9XCJzaG93RGF0ZVBpY2tEaWFsb2cgPSBmYWxzZVwiPlxyXG4gICAgICA8L2NvLXRyYW5zYWN0aW9uLWRhdGUtcGljay1kaWFsb2c+XHJcbiAgYCxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdmYWRlSW5PdXQnLCBbXHJcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICBzdHlsZSh7b3BhY2l0eTogMH0pLFxyXG4gICAgICAgIGFuaW1hdGUoJzUwMG1zIGVhc2UtaW4nLCBzdHlsZSh7b3BhY2l0eTogMX0pKVxyXG4gICAgICBdKSxcclxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xyXG4gICAgICAgIGFuaW1hdGUoJzUwMG1zIGVhc2Utb3V0Jywgc3R5bGUoe29wYWNpdHk6IDB9KSlcclxuICAgICAgXSlcclxuICAgIF0pXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtwcm92aWRlOiBCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZSwgdXNlRXhpc3Rpbmc6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9XHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblNlYXJjaFJlc3VsdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRyYWdnYWJsZVRyYW5zYWN0aW9uczogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0NoZWNrYm94OiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGJhdGNoQ2F0ZWdvcnk6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZXh0ZW5kZWRUcmFuc2FjdGlvblNlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYWN0aXZlQ29udGVudFZpZXdNb2RlKHZhbHVlOiBDb250ZW50Vmlld01vZGUpIHtcclxuICAgIHRoaXMuX2FjdGl2ZUNvbnRlbnRWaWV3TW9kZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhY3RpdmVDb250ZW50Vmlld01vZGUoKTogQ29udGVudFZpZXdNb2RlIHtcclxuICAgIHJldHVybiB0aGlzLl9hY3RpdmVDb250ZW50Vmlld01vZGU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZnVsbHNjcmVlbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZnVsbHNjcmVlbiA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBmdWxsc2NyZWVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Z1bGxzY3JlZW47XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uU2VhcmNoVmlldz4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uU2VhcmNoVmlldz4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby10cmFuc2FjdGlvbi1zZWFyY2gtcmVzdWx0JylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbjogdHlwZW9mIEljb24gPSBJY29uO1xyXG4gIHB1YmxpYyByZWFkb25seSBjb250ZW50Vmlld01vZGVzOiB0eXBlb2YgQ29udGVudFZpZXdNb2RlID0gQ29udGVudFZpZXdNb2RlO1xyXG5cclxuICBwdWJsaWMgc2VsZWN0ZWRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25TZWFyY2hWaWV3O1xyXG4gIHB1YmxpYyBzY3JlZW5Db25maWdMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2FsZXNPcmRlcnNQYWdlQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dQcm9jZXNzT3JkZXJzTG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dCYXRjaE9wdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1NoaXBwaW5nTWV0aG9kRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dEYXRlUGlja0RpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93QmF0Y2hQcm9jZXNzRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGNoZWNrZWRBdmFpbGFiaWxpdHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2VsZWN0ZWRUcmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uU2VhcmNoVmlld1tdID0gW107XHJcbiAgcHVibGljIGJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdDogQmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0ID0gbmV3IEJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdCgpO1xyXG4gIHB1YmxpYyBiYXRjaEpvYlByb2dyZXNzOiBCYXRjaEpvYlByb2dyZXNzW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfYWN0aXZlQ29udGVudFZpZXdNb2RlOiBDb250ZW50Vmlld01vZGU7XHJcbiAgcHJpdmF0ZSBfZnVsbHNjcmVlbjogYm9vbGVhbjtcclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzZWFyY2hTZXJ2aWNlOiBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2NyZWVuQ29uZmlnU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9kZWxpdmVyeVBsYW5uaW5nU2VydmljZTogRGVsaXZlcnlQbGFubmluZ1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFJlcXVlc3RTZXQuc3Vic2NyaWJlKChyZXF1ZXN0OiBUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcXVlc3QpIHtcclxuICAgICAgICAgIHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5sb2FkQ29uZmlnKFtyZXF1ZXN0LnRyYW5zYWN0aW9uS2luZF0pO1xyXG4gICAgICAgICAgdGhpcy5zYWxlc09yZGVyc1BhZ2VBY3RpdmUgPSByZXF1ZXN0LnRyYW5zYWN0aW9uS2luZCA9PT0gJ1YnO1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2FsZXNPcmRlcnNQYWdlQWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcblxyXG4gICAgICB0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuY29uZmlnU2V0LnN1YnNjcmliZSgoY29uZmlnOiBPYmplY3RDb25maWd1cmF0aW9uW10pID0+IHtcclxuICAgICAgICBpZiAoY29uZmlnICYmIGNvbmZpZy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnNjcmVlbkNvbmZpZ0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnJlc3VsdHNVcGRhdGVkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2FsZXNPcmRlcnNQYWdlQWN0aXZlICYmIHRoaXMuc2hvd0JhdGNoT3B0aW9ucykge1xyXG4gICAgICAgICAgdGhpcy5tYXJrU2VsZWN0ZWRUcmFuc2FjdGlvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnNlbGVjdGVkVHJhbnNwb3J0RGF5LnN1YnNjcmliZSggYXN5bmMgKHRyYW5zcG9ydERheTogUGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyZWRUcmFuc2FjdGlvbnMgPSBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnMubWFwKGFzeW5jIChvcmRlcjogVHJhbnNhY3Rpb25TZWFyY2hWaWV3KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBsYW5PcmRlciA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldFBsYW5PcmRlcihvcmRlci50cmFuc0lkKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGlzQXZhaWxhYmxlOiBib29sZWFuID1cclxuICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5kZWxpdmVyeU1ldGhvZEF2YWlsYWJpbGl0eUNoZWNrKHBsYW5PcmRlciwgdHJhbnNwb3J0RGF5KSAmJlxyXG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmRpc3RyaWN0QXZhaWxhYmlsaXR5Q2hlY2socGxhbk9yZGVyLCB0cmFuc3BvcnREYXkpICYmXHJcbiAgICAgICAgICAgICAgdHJhbnNwb3J0RGF5LmF2YWlsYWJsZU9uRGF0ZTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBpc0F2YWlsYWJsZSA/IG9yZGVyIDogbnVsbDtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucyA9IGZpbHRlcmVkVHJhbnNhY3Rpb25zLmZpbHRlcigob3JkZXIpOiBvcmRlciBpcyBUcmFuc2FjdGlvblNlYXJjaFZpZXcgPT4gb3JkZXIgIT09IG51bGwpO1xyXG5cclxuICAgIH0pLFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnJlc2V0VHJhbnNwb3J0RGF5RmlsdGVyZWRPcmRlcnMuc3Vic2NyaWJlKCBhc3luYyBldmVudCA9PiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICB9KVxyXG5cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2JhdGNoQ2F0ZWdvcnknXSkge1xyXG4gICAgICB0aGlzLmJhdGNoQ2F0ZWdvcnkgPSBjaGFuZ2VzWydiYXRjaENhdGVnb3J5J10uY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLl9zaG93QmF0Y2hPcHRpb25zKHRoaXMuYmF0Y2hDYXRlZ29yeSk7XHJcbiAgICAgIGlmIChjaGFuZ2VzWydiYXRjaENhdGVnb3J5J10ucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlc1snYmF0Y2hDYXRlZ29yeSddLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuX2NsZWFyU2VsZWN0ZWQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblRyYW5zYWN0aW9uQ2xpY2sodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uU2VhcmNoVmlldyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uQ2xpY2suZW1pdCh0cmFuc2FjdGlvbik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TZWxlY3RlZENsaWNrKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlYXJjaFZpZXcpOiB2b2lkIHtcclxuICAgIGlmICh0cmFuc2FjdGlvbi5zZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVHJhbnNhY3Rpb25zLnB1c2godHJhbnNhY3Rpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdHJhbnNJZCA9IHRyYW5zYWN0aW9uLnRyYW5zSWQ7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5maW5kSW5kZXgodHJhbnNhY3Rpb24gPT4gdHJhbnNhY3Rpb24udHJhbnNJZCA9PT0gdHJhbnNJZCk7XHJcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVHJhbnNhY3Rpb25zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblByZXZpb3VzQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UuY3VycmVudFBhZ2UgLT0gMTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk5leHRDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoU2VydmljZS5jdXJyZW50UGFnZSArPSAxO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uUGFnZUNsaWNrKHBhZ2VOcjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UuY3VycmVudFBhZ2UgPSBwYWdlTnI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbWFya1NlbGVjdGVkVHJhbnNhY3Rpb25zKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoU2VydmljZS5yZXN1bHRzVXBkYXRlZCkge1xyXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zLmZvckVhY2godHJhbnNhY3Rpb24gPT4ge1xyXG4gICAgICAgIGNvbnN0IG1hdGNoaW5nT2JqZWN0ID0gdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5maW5kKHNlbGVjdGVkVHJhbnNhY3Rpb24gPT4gc2VsZWN0ZWRUcmFuc2FjdGlvbi50cmFuc0lkID09PSB0cmFuc2FjdGlvbi50cmFuc0lkKTtcclxuICAgICAgICBpZiAobWF0Y2hpbmdPYmplY3QpIHtcclxuICAgICAgICAgIHRyYW5zYWN0aW9uLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRyYWdTdGFydGVkKGV2OiBhbnksIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlYXJjaFZpZXcpIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmRyYWdnaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRUcmFuc0lkID0gdHJhbnNhY3Rpb24udHJhbnNJZDtcclxuICAgIGV2LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0JywgdHJhbnNhY3Rpb24udHJhbnNJZCk7XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tlZEF2YWlsYWJpbGl0eSkge1xyXG4gICAgICBsZXQgcGxhbk9yZGVyOiBQbGFuT3JkZXIgPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRQbGFuT3JkZXIodHJhbnNhY3Rpb24udHJhbnNJZCk7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmF2YWlsYWJpbGl0eUNoZWNrRXZlbnQuZW1pdChwbGFuT3JkZXIpO1xyXG4gICAgICB0aGlzLmNoZWNrZWRBdmFpbGFiaWxpdHkgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGRyYWdFbmQoZXY6IGFueSkge1xyXG4gICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuZHJhZ2dpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRUcmFuc0lkID0gdW5kZWZpbmVkO1xyXG4gICAgaWYgKHRoaXMuY2hlY2tlZEF2YWlsYWJpbGl0eSkge1xyXG4gICAgICB0aGlzLmNoZWNrZWRBdmFpbGFiaWxpdHkgPSBmYWxzZTtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuYXZhaWxhYmlsaXR5UmVzZXRFdmVudC5lbWl0KCk7XHJcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2tJZlNlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMuc29tZShpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrSWZBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zLmV2ZXJ5KGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0FkZGl0aW9uYWxPcHRpb25zKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRUcmFuc2FjdGlvbnNJZHM6IG51bWJlcltdID0gdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5tYXAodHJhbnNhY3Rpb24gPT4gdHJhbnNhY3Rpb24udHJhbnNJZCk7XHJcblxyXG4gICAgaWYgKHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ2FsbG9jYXRlJyB8fCB0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICd0b2V3aWp6ZW4nKSB7XHJcbiAgICAgIHRoaXMuc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5zdGFydFRvQWxsb2NhdGVVbkFsbG9jYXRlZExpbmVzQmF0Y2goc2VsZWN0ZWRUcmFuc2FjdGlvbnNJZHMpXHJcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5fc2hvd0JhdGNoUHJvY2Vzc2VzU3RhdHVzKCkpXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHRoaXMuc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXIgPSBmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ3RvIGJlIHBpY2tlZCcpIHtcclxuICAgICAgdGhpcy5zaG93UHJvY2Vzc09yZGVyc0xvYWRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXJ0R29vZHNUb0JlUGlja2VkQmF0Y2goc2VsZWN0ZWRUcmFuc2FjdGlvbnNJZHMpXHJcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5fc2hvd0JhdGNoUHJvY2Vzc2VzU3RhdHVzKCkpXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHRoaXMuc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXIgPSBmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ3BpY2tlZCcpIHtcclxuICAgICAgdGhpcy5zaG93UHJvY2Vzc09yZGVyc0xvYWRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXJ0R29vZHNQaWNrZWRCYXRjaChzZWxlY3RlZFRyYW5zYWN0aW9uc0lkcylcclxuICAgICAgICAudGhlbigoKSA9PiB0aGlzLl9zaG93QmF0Y2hQcm9jZXNzZXNTdGF0dXMoKSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4gdGhpcy5zaG93UHJvY2Vzc09yZGVyc0xvYWRlciA9IGZhbHNlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd1NoaXBwaW5nTWV0aG9kRGlhbG9nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblRvZ2dsZUFsbE9yZGVycyhhbGxTZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBpdGVtLnNlbGVjdGVkID0gIWFsbFNlbGVjdGVkO1xyXG4gICAgICBjb25zdCB0cmFuc2FjdGlvbkV4aXN0czogYm9vbGVhbiA9IHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMuc29tZSh0cmFucyA9PiB0cmFucy50cmFuc0lkID09PSBpdGVtLnRyYW5zSWQpO1xyXG4gICAgICBpZiAoIWFsbFNlbGVjdGVkICYmICF0cmFuc2FjdGlvbkV4aXN0cykge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYWxsU2VsZWN0ZWQpIHtcclxuICAgICAgICBjb25zdCB0cmFuc2FjdGlvbkluZGV4ID0gdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5maW5kSW5kZXgodHJhbnMgPT4gdHJhbnMudHJhbnNJZCA9PT0gaXRlbS50cmFuc0lkKTtcclxuICAgICAgICBpZiAodHJhbnNhY3Rpb25JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMuc3BsaWNlKHRyYW5zYWN0aW9uSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hpcHBpbmdEaWFsb2dTYXZlQ2xpY2tlZChyZXF1ZXN0OiBCYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3QpOiB2b2lkIHtcclxuICAgIHRoaXMuYmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0ID0gcmVxdWVzdDtcclxuICAgIHRoaXMuc2hvd1NoaXBwaW5nTWV0aG9kRGlhbG9nID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAodGhpcy5iYXRjaENhdGVnb3J5ID09PSAnb3ZlcnZpZXcnIHx8IHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ292ZXJ6aWNodCcpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2Uuc3RhcnRPcmRlckNvbmZpcm1hdGlvbkJhdGNoKHRoaXMuYmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuX3Nob3dCYXRjaFByb2Nlc3Nlc1N0YXR1cygpKVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICdwdXJjaGFzZScgfHwgdGhpcy5iYXRjaENhdGVnb3J5ID09PSAnaW5rb29wJykge1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5zdGFydFB1cmNoYXNlT3JkZXJGb3JtQmF0Y2godGhpcy5iYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3QpXHJcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5fc2hvd0JhdGNoUHJvY2Vzc2VzU3RhdHVzKCkpXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHRoaXMuc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXIgPSBmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ2RlbGl2ZXJ5IG9yZGVyJyB8fCB0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICdhZmxldmVyYm9uJykge1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5zdGFydERlbGl2ZXJ5Tm90ZXNCYXRjaCh0aGlzLmJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdClcclxuICAgICAgICAudGhlbigoKSA9PiB0aGlzLl9zaG93QmF0Y2hQcm9jZXNzZXNTdGF0dXMoKSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4gdGhpcy5zaG93UHJvY2Vzc09yZGVyc0xvYWRlciA9IGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5iYXRjaENhdGVnb3J5ID09PSAnaW52b2ljZScgfHwgdGhpcy5iYXRjaENhdGVnb3J5ID09PSAnZmFjdHV1cicpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2Uuc3RhcnRJbnZvaWNlQmF0Y2godGhpcy5iYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3QpXHJcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5fc2hvd0JhdGNoUHJvY2Vzc2VzU3RhdHVzKCkpXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHRoaXMuc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXIgPSBmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zaG93QmF0Y2hPcHRpb25zKGNhdGVnb3J5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0JhdGNoT3B0aW9ucyA9IFsnb3ZlcnZpZXcnLCAncHVyY2hhc2UnLCAnYWxsb2NhdGUnLCAndG8gYmUgcGlja2VkJywgJ3BpY2tlZCcsICdkZWxpdmVyeSBvcmRlcicsICdpbnZvaWNlJywgJ292ZXJ6aWNodCcsICdpbmtvb3AnLCAndG9ld2lqemVuJywgJ2FmbGV2ZXJib24nLCAnZmFjdHV1ciddLmluY2x1ZGVzKGNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Nob3dCYXRjaFByb2Nlc3Nlc1N0YXR1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXIgPSBmYWxzZTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEJhdGNoSm9iUHJvZ3Jlc3Nlc0ZvclRoZVVzZXIoKS50aGVuKChiYXRjaEpvYlByb2dyZXNzZXM6IEJhdGNoSm9iUHJvZ3Jlc3NbXSkgPT4ge1xyXG4gICAgICB0aGlzLmJhdGNoSm9iUHJvZ3Jlc3MgPSBiYXRjaEpvYlByb2dyZXNzZXM7XHJcbiAgICAgIHRoaXMuc2hvd0JhdGNoUHJvY2Vzc0RpYWxvZyA9IHRydWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NsZWFyU2VsZWN0ZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zLmZvckVhY2goaXRlbSA9PiBpdGVtLnNlbGVjdGVkID0gZmFsc2UpO1xyXG4gICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucyA9IFtdO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -44,6 +44,7 @@ export class TransactionEventService {
44
44
  this.selectAllSalesOrderLinesToBePicked = new Subject();
45
45
  this.togglePurchaseOrderMarginInfo = new Subject();
46
46
  this.selectedTransportDay = new Subject();
47
+ this.resetTransportDayFilteredOrders = new Subject();
47
48
  this.selectAllPurchaseOrderLinesForReceiveGoods = new Subject();
48
49
  this.updatingSalesOrderGeneratePurchaseOrders = new Subject();
49
50
  this.updatingSalesOrderConfirmation = new Subject();
@@ -119,4 +120,4 @@ TransactionEventService.ɵprov = i0.ɵɵdefineInjectable({ factory: function Tra
119
120
  TransactionEventService.decorators = [
120
121
  { type: Injectable, args: [{ providedIn: "root" },] }
121
122
  ];
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFNOUMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sd0NBQXdDLENBQUM7O0FBVy9FLE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFFa0IsbUJBQWMsR0FBNkQsSUFBSSxPQUFPLEVBQW1ELENBQUM7UUFDMUksOEJBQXlCLEdBQ3ZDLElBQUksT0FBTyxFQUFpSCxDQUFDO1FBQy9HLDJCQUFzQixHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzVELGFBQVEsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUM5QyxtQ0FBOEIsR0FBb0IsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUN4RSxzQ0FBaUMsR0FBd0MsSUFBSSxPQUFPLEVBQThCLENBQUM7UUFDbkgsbUJBQWMsR0FBOEQsSUFBSSxPQUFPLEVBQW9ELENBQUM7UUFDNUksZ0JBQVcsR0FBOEQsSUFBSSxPQUFPLEVBQW9ELENBQUM7UUFDekkscUJBQWdCLEdBQTJGLElBQUksT0FBTyxFQUFpRixDQUFDO1FBQ3hNLGtCQUFhLEdBQTRFLElBQUksT0FBTyxFQUFrRSxDQUFDO1FBQ3ZLLHVCQUFrQixHQUFvRCxJQUFJLE9BQU8sRUFBd0MsQ0FBQztRQUMxSCwyQkFBc0IsR0FBNEIsSUFBSSxPQUFPLEVBQWtCLENBQUM7UUFDaEYsc0JBQWlCLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFDdkQsa0JBQWEsR0FBb0IsSUFBSSxPQUFPLEVBQVUsQ0FBQztR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R0FBb0IsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNoRiwwQkFBcUIsR0FBOEMsSUFBSSxPQUFPLEVBQW9DLENBQUM7UUFDbkgscUNBQWdDLEdBQStDLElBQUksT0FBTyxFQUFxQyxDQUFDO1FBQ2hJLGlEQUE0QyxHQUFvRSxJQUFJLE9BQU8sRUFBMEQsQ0FBQztRQUV0TCxnQkFBVyxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUU1RSx5QkFBb0IsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUMxRCwyQkFBc0IsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUU1RCw0QkFBdUIsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztLQUNwRjs7OztZQXhIQSxVQUFVLFNBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7UG9zaXRpb25HcmlkUm93fSBmcm9tICcuLi9lbnVtL3Bvc2l0aW9uLWdyaWQtcm93LmVudW0nO1xuaW1wb3J0IHtTY3JvbGx9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm8nO1xuaW1wb3J0IHtCdXNpbmVzc09iamVjdH0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvYnVzaW5lc3Mtb2JqZWN0JztcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvJztcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcbmltcG9ydCB7T3JkZXJMaW5lU2V0SW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLWxpbmUtc2V0LWluZm8uYm8nO1xuaW1wb3J0IHtPcmRlckNvbmZpcm1hdGlvbkRyb3BwZWR9IGZyb20gJy4uL2ludGVyZmFjZS9vcmRlci1jb25maXJtYXRpb24tZHJvcHBlZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtQdXJjaGFzZVJlc2VydmF0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLXJlc2VydmF0aW9uLmJvXCI7XG5pbXBvcnQge1xuICBQdXJjaGFzZVJlc2VydmF0aW9uUHVyY2hhc2VMaW5lXG59IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcHVyY2hhc2UtcmVzZXJ2YXRpb24tcHVyY2hhc2UtbGluZS5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW1cIjtcbmltcG9ydCB7UGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmctdHJhbnNwb3J0LXdlZWstZGF5LmJvJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46IFwicm9vdFwifSlcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSB7XG4gIHB1YmxpYyByZWFkb25seSBhZGRUb0NhcnRCeVNrdTogU3ViamVjdDx7c2t1OiBzdHJpbmcsIGFtb3VudDogbnVtYmVyLCBwb3BDYXJ0OiBib29sZWFufT4gPSBuZXcgU3ViamVjdDx7c2t1OiBzdHJpbmcsIGFtb3VudDogbnVtYmVyLCBwb3BDYXJ0OiBib29sZWFufT4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGFkZFRvQ2FydEJ5U2VsZWN0b3JSZXN1bHQ6IFN1YmplY3Q8e3NlbGVjdG9yUmVzdWx0OiB7Z29vZElkOiBudW1iZXIsIGJhc2VHb29kSWQ6IG51bWJlciwgc2VsZWN0b3JEYXRhOiBhbnksIHF1YW50aXR5OiBudW1iZXJ9LCBwb3BDYXJ0OiBib29sZWFufT4gPVxuICAgIG5ldyBTdWJqZWN0PHtzZWxlY3RvclJlc3VsdDoge2dvb2RJZDogbnVtYmVyLCBiYXNlR29vZElkOiBudW1iZXIsIHNlbGVjdG9yRGF0YTogYW55LCBxdWFudGl0eTogbnVtYmVyfSwgcG9wQ2FydDogYm9vbGVhbn0+KCk7XG4gIHB1YmxpYyByZWFkb25seSBvcGVuU2hvcHBpbmdDYXJ0TW9kdWxlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGxvZ2dlZEluOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGFkZE5ld1VzZXJUb1Nob3BwaW5nQ2FydE1vZHVsZTogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgYWRkVXNlclJlbGF0aW9uU2hvcHBpbmdDYXJ0TW9kdWxlOiBTdWJqZWN0PHt1c2VyOiBzdHJpbmcsIHB3OiBzdHJpbmd9PiA9IG5ldyBTdWJqZWN0PHt1c2VyOiBzdHJpbmcsIHB3OiBzdHJpbmd9PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgYWRkQXJ0aWNsZUxpbmU6IFN1YmplY3Q8e2xpbmVOcjogbnVtYmVyLCBiZWZvcmVPckFmdGVyOiBQb3NpdGlvbkdyaWRSb3d9PiA9IG5ldyBTdWJqZWN0PHtsaW5lTnI6IG51bWJlciwgYmVmb3JlT3JBZnRlcjogUG9zaXRpb25HcmlkUm93fT4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGFkZFRleHRMaW5lOiBTdWJqZWN0PHtsaW5lTnI6IG51bWJlciwgYmVmb3JlT3JBZnRlcjogUG9zaXRpb25HcmlkUm93fT4gPSBuZXcgU3ViamVjdDx7bGluZU5yOiBudW1iZXIsIGJlZm9yZU9yQWZ0ZXI6IFBvc2l0aW9uR3JpZFJvd30+KCk7XG4gIHB1YmxpYyByZWFkb25seSBhZGRBcnRpY2xlTGluZUF0OiBTdWJqZWN0PHtza3U6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIGxpbmVOcjogbnVtYmVyLCBiZWZvcmVPckFmdGVyOiBQb3NpdGlvbkdyaWRSb3d9PiA9IG5ldyBTdWJqZWN0PHtza3U6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIGxpbmVOcjogbnVtYmVyLCBiZWZvcmVPckFmdGVyOiBQb3NpdGlvbkdyaWRSb3d9PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgYWRkVGV4dExpbmVBdDogU3ViamVjdDx7dGV4dDogc3RyaW5nLCBsaW5lTnI6IG51bWJlciwgYmVmb3JlT3JBZnRlcjogUG9zaXRpb25HcmlkUm93fT4gPSBuZXcgU3ViamVjdDx7dGV4dDogc3RyaW5nLCBsaW5lTnI6IG51bWJlciwgYmVmb3JlT3JBZnRlcjogUG9zaXRpb25HcmlkUm93fT4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZUxpbmVTZXF1ZW5jZTogU3ViamVjdDwoe2Zyb21JbmRleDogbnVtYmVyLCB0b0luZGV4OiBudW1iZXJ9KT4gPSBuZXcgU3ViamVjdDx7ZnJvbUluZGV4OiBudW1iZXIsIHRvSW5kZXg6IG51bWJlcn0+KCk7XG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbkxpbmVDbGlja2VkOiBTdWJqZWN0PEJ1c2luZXNzT2JqZWN0PiA9IG5ldyBTdWJqZWN0PEJ1c2luZXNzT2JqZWN0PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgcmlnaHRTaWRlYmFyQ2xvc2U6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2Nyb2xsQ29udGVudDogU3ViamVjdDxTY3JvbGw+ID0gbmV3IFN1YmplY3Q8U2Nyb2xsPigpO1xuICAvLyBwdWJsaWMgcmVhZG9ubHkgY29tbWl0UmVjZWl2ZVB1cmNoYXNlT3JkZXJzOiBTdWJqZWN0PHtkYXRlOiBEYXRlLCBpZDogc3RyaW5nfT4gPSBuZXcgU3ViamVjdDx7ZGF0ZTogRGF0ZSwgaWQ6IHN0cmluZ30+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RBbGxMaW5lczogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbkRpcnR5OiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zYWN0aW9uTGluZUNoYW5nZWQ6IFN1YmplY3Q8VHJhbnNhY3Rpb25MaW5lSW5mbz4gPSBuZXcgU3ViamVjdDxUcmFuc2FjdGlvbkxpbmVJbmZvPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNhY3Rpb25MaW5lQ2hlY2tib3hDaGFuZ2VkOiBTdWJqZWN0PHtsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvLCBjaGVja2VkOiBib29sZWFufT4gPSBuZXcgU3ViamVjdDx7bGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbywgY2hlY2tlZDogYm9vbGVhbn0+KCk7XG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbkxpbmVSZWZUcmFuc2FjdGlvbnNDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8VHJhbnNhY3Rpb25MaW5lSW5mbz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRyYW5zYWN0aW9uTGluZUluZm8+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbkxpbmVBZGRlZDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IG9wZW5BcnRpY2xlVGV4dE92ZXJ2aWV3OiBTdWJqZWN0PFRyYW5zYWN0aW9uTGluZUluZm8+ID0gbmV3IFN1YmplY3Q8VHJhbnNhY3Rpb25MaW5lSW5mbz4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGFkZEFydGljbGVUZXh0OiBTdWJqZWN0PFRyYW5zYWN0aW9uTGluZUluZm8+ID0gbmV3IFN1YmplY3Q8VHJhbnNhY3Rpb25MaW5lSW5mbz4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGVkaXRBcnRpY2xlVGV4dDogU3ViamVjdDxUcmFuc2FjdGlvbkxpbmVJbmZvPiA9IG5ldyBTdWJqZWN0PFRyYW5zYWN0aW9uTGluZUluZm8+KCk7XG4gIHB1YmxpYyByZWFkb25seSBhZGRUcmFuc2FjdGlvblRleHQ6IFN1YmplY3Q8VHJhbnNhY3Rpb25MaW5lSW5mbz4gPSBuZXcgU3ViamVjdDxUcmFuc2FjdGlvbkxpbmVJbmZvPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgZWRpdFRyYW5zYWN0aW9uVGV4dDogU3ViamVjdDxUcmFuc2FjdGlvbkxpbmVJbmZvPiA9IG5ldyBTdWJqZWN0PFRyYW5zYWN0aW9uTGluZUluZm8+KCk7XG4gIHB1YmxpYyByZWFkb25seSBhcnRpY2xlTGluZVRleHRBZGRlZE9yQ2hhbmdlZDogU3ViamVjdDxudW1iZXI+ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgbmV3UGxhbk9yZGVyRXZlbnQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgb3BlblNpZGVQYW5lbDogU3ViamVjdDxUcmFuc2FjdGlvbkxpbmVJbmZvPiA9IG5ldyBTdWJqZWN0PFRyYW5zYWN0aW9uTGluZUluZm8+KCk7XG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGVTZXJ2aWNlQnV0dG9uQ2xpY2tlZDogU3ViamVjdDxudW1iZXI+ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdmlld1N0b2NrQnV0dG9uQ2xpY2s6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGNvcHlMaW5lQnV0dG9uQ2xpY2s6IFN1YmplY3Q8VHJhbnNhY3Rpb25MaW5lSW5mbz4gPSBuZXcgU3ViamVjdDxUcmFuc2FjdGlvbkxpbmVJbmZvPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0QWxsU2FsZXNPcmRlckxpbmVzRm9yUHVyY2hhc2U6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0QWxsU2FsZXNPcmRlckxpbmVzRm9yRGVsaXZlcnk6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0QWxsU2FsZXNPcmRlckxpbmVzRm9ySW52b2ljZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RBbGxTYWxlc09yZGVyTGluZXNGb3JBbGxvY2F0aW9uOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdEFsbFNhbGVzT3JkZXJMaW5lc1RvUGljazogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RBbGxTYWxlc09yZGVyTGluZXNUb0JlUGlja2VkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHRvZ2dsZVB1cmNoYXNlT3JkZXJNYXJnaW5JbmZvOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkVHJhbnNwb3J0RGF5OiBTdWJqZWN0PFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheT4gPSBuZXcgU3ViamVjdDxQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXk+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RBbGxQdXJjaGFzZU9yZGVyTGluZXNGb3JSZWNlaXZlR29vZHM6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRpbmdTYWxlc09yZGVyR2VuZXJhdGVQdXJjaGFzZU9yZGVyczogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSB1cGRhdGluZ1NhbGVzT3JkZXJDb25maXJtYXRpb246IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRpbmdTYWxlc09yZGVyR29vZHNUb0JlUGlja2VkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHVwZGF0aW5nU2FsZXNPcmRlckdvb2RzUGlja2VkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHVwZGF0aW5nU2FsZXNPcmRlckRlbGl2ZXJ5OiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHVwZGF0aW5nU2FsZXNPcmRlclF1b3RhdGlvbjogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSB1cGRhdGluZ0ludm9pY2U6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRpbmdQdXJjaGFzZU9yZGVyUmVjZWl2ZUdvb2RzOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHVwZGF0aW5nUHVyY2hhc2VPcmRlckFsbG9jYXRlR29vZHM6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRpbmdQdXJjaGFzZU9yZGVyQ29uZmlybWF0aW9uOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGFsbG93UGFydGlhbERlbGl2ZXJ5Q2hhbmdlZDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzYWxlc09yZGVyR2VuZXJhdGVQdXJjaGFzZU9yZGVyc0NvbXBsZXRlZENoYW5nZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IHNhbGVzT3JkZXJQaWNraW5nR29vZHNDb21wbGV0ZWRDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBzYWxlc09yZGVyUGlja2VkQ29tcGxldGVkQ2hhbmdlZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih1bmRlZmluZWQpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2FsZXNPcmRlclRvQmVQaWNrZWRDb21wbGV0ZWRDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBzYWxlc09yZGVyRGVsaXZlcnlDb21wbGV0ZWRDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBpbnZvaWNlQ29tcGxldGVkQ2hhbmdlZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih1bmRlZmluZWQpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2FsZXNPcmRlckFsbG9jYXRlR29vZHNDb21wbGV0ZWRDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBwdXJjaGFzZU9yZGVyUmVjZWl2ZUdvb2RzQ29tcGxldGVkQ2hhbmdlZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih1bmRlZmluZWQpO1xuICBwdWJsaWMgcmVhZG9ubHkgcHVyY2hhc2VPcmRlckNvbmZpcm1hdGlvbkNvbXBsZXRlZENoYW5nZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IG92ZXJ3cml0ZVB1cmNoYXNlT3JkZXJDb25maXJtYXRpb25Db21wbGV0ZWRDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNhbGVzT3JkZXJDb25maXJtYXRpb25TZW50Q2hhbmdlZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih1bmRlZmluZWQpO1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlVHJhbnNhY3Rpb246IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNhY3Rpb25TZXQ6IFN1YmplY3Q8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+ID0gbmV3IFN1YmplY3Q8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+KCk7XG4gIHB1YmxpYyByZWFkb25seSBwdXJjaGFzZU9yZGVyTmF2aWdhdGlvbjogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgcHVyY2hhc2VFeGlzdGluZ09yZGVyTmF2aWdhdGlvbjogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VydmljZUV4aXN0aW5nT3JkZXJOYXZpZ2F0aW9uOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzYWxlc1F1b3RhdGlvbk9yZGVyTmF2aWdhdGlvbjogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVsYXRpb25OYXZpZ2F0aW9uOiBTdWJqZWN0PG51bWJlcj4gPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHB1YmxpYyByZWFkb25seSBhcnRpY2xlTmF2aWdhdGlvbjogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNhY3Rpb25OYXZpZ2F0aW9uOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbkNvcHlOYXZpZ2F0aW9uOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbkRlbGV0ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNhY3Rpb25QYXltZW50RG9uZTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBjb3B5T3JkZXI6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRlVHJhbnNhY3Rpb25SZWZlcmVuY2VzOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zYWN0aW9uTGluZVZpc2liaWxpdHlDaGFuZ2U6IEJlaGF2aW9yU3ViamVjdDx7bGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbywgdmlzaWJsZTogYm9vbGVhbn0+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7bGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbzsgdmlzaWJsZTogYm9vbGVhbn0+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBzaG93RXJyb3I6IFN1YmplY3Q8e21lc3NhZ2U6IHN0cmluZywgbG9jYWxpemU6IGJvb2xlYW4sIGRldGFpbHM/OiBzdHJpbmd9PiA9IG5ldyBTdWJqZWN0PHttZXNzYWdlOiBzdHJpbmcsIGxvY2FsaXplOiBib29sZWFuLCBkZXRhaWxzPzogc3RyaW5nfT4oKVxuICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyUG9wdXBTYXZlQnV0dG9uRW5hYmxlQ2hhbmdlOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGhlYWRlclBvcHVwU2F2aW5nOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGhlYWRlclBvcHVwU2F2ZUJ1dHRvbkNsaWNrOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGhlYWRlclBvcHVwV2FudHNUb0Nsb3NlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGhlYWRlclBvcHVwQ2xvc2U6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgb3JkZXJMaW5lU2V0QnV0dG9uQ2xpY2s6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBhZGREb2N1bWVudFRvTGluZUNsaWNrZWQ6IFN1YmplY3Q8VHJhbnNhY3Rpb25MaW5lSW5mbz4gPSBuZXcgU3ViamVjdDxUcmFuc2FjdGlvbkxpbmVJbmZvPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVvcGVuRXh0ZXJuYWxPcmRlckNsaWNrZWQ6IFN1YmplY3Q8e3NldDogT3JkZXJMaW5lU2V0SW5mbywgYXJ0aWNsZU5yOiBzdHJpbmcsIHRyYW5zS2luZDogVHJhbnNhY3Rpb25LaW5kfT4gPSBuZXcgU3ViamVjdDx7c2V0OiBPcmRlckxpbmVTZXRJbmZvLCBhcnRpY2xlTnI6IHN0cmluZywgdHJhbnNLaW5kOiBUcmFuc2FjdGlvbktpbmR9PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlUnVicmljQ2hhbmdlOiBCZWhhdmlvclN1YmplY3Q8eyBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnksIHNpZGVwYW5lbD86IGJvb2xlYW4gfT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LCBzaWRlcGFuZWw/OiBib29sZWFuIH0+KHtjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlck92ZXJ2aWV3fSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHF1YW50aXR5U2VsZWN0ZWRMaW5lQ2hhbmdlZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih1bmRlZmluZWQpO1xuICBwdWJsaWMgcmVhZG9ubHkgbGluZVNlbGVjdGVkRm9yRGVsaXZlcnk6IEJlaGF2aW9yU3ViamVjdDx7bGluZVV1aWQ6IHN0cmluZywgc2VsZWN0ZWQ6IGJvb2xlYW59PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8e2xpbmVVdWlkOiBzdHJpbmcsIHNlbGVjdGVkOiBib29sZWFufT4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IGxpbmVTZWxlY3RlZEZvckludm9pY2U6IEJlaGF2aW9yU3ViamVjdDx7bGluZVV1aWQ6IHN0cmluZywgc2VsZWN0ZWQ6IGJvb2xlYW59PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8e2xpbmVVdWlkOiBzdHJpbmcsIHNlbGVjdGVkOiBib29sZWFufT4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IGxpbmVTZWxlY3RlZEZvclRvUGljazogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBhbGxMaW5lc1NlbGVjdGVkRm9yRGVsaXZlcnk6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgYWxsTGluZXNTZWxlY3RlZEZvckludm9pY2U6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNhY3Rpb25MaW5lRHJhZ2dlZE92ZXI6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGFjdGl2ZUNhdGVnb3J5Q2hhbmdlZDogU3ViamVjdDxUcmFuc2FjdGlvblR5cGVDYXRlZ29yeT4gPSBuZXcgU3ViamVjdDxUcmFuc2FjdGlvblR5cGVDYXRlZ29yeT4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb3JkZXJDb25maXJtYXRpb25Ecm9wcGVkOiBCZWhhdmlvclN1YmplY3Q8T3JkZXJDb25maXJtYXRpb25Ecm9wcGVkPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T3JkZXJDb25maXJtYXRpb25Ecm9wcGVkPih1bmRlZmluZWQpO1xuICBwdWJsaWMgcmVhZG9ubHkgb3JkZXJDb25maXJtYXRpb25SZXNldDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHBvc09yZGVyUGF5ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2hvd0xvYWRlcjogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzaG93QnVzeUxvYWRlcjogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNyZWF0ZWRTYWxlc09yZGVyRnJvbUNhc2hSZWdpc3Rlck9yZGVyOiBTdWJqZWN0PG51bWJlcj4gPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHB1YmxpYyByZWFkb25seSByZXNlcnZhdGlvbk1vZGVUb2dnbGU6IFN1YmplY3Q8W2Jvb2xlYW4sIFB1cmNoYXNlUmVzZXJ2YXRpb25bXV0+ID0gbmV3IFN1YmplY3Q8W2Jvb2xlYW4sIFB1cmNoYXNlUmVzZXJ2YXRpb25bXV0+KCk7XG4gIHB1YmxpYyByZWFkb25seSByZXNlcnZhdGlvblNhbGVzT3JkZXJMaW5lQ2xpY2tlZDogU3ViamVjdDxQdXJjaGFzZVJlc2VydmF0aW9uUHVyY2hhc2VMaW5lW10+ID0gbmV3IFN1YmplY3Q8UHVyY2hhc2VSZXNlcnZhdGlvblB1cmNoYXNlTGluZVtdPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWVzdENyZWF0ZVNlcnZpY2VPcmRlckZyb21UcmFuc2FjdGlvbkxpbmU6IFN1YmplY3Q8e3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgbGluZU5yOiBudW1iZXJ9PiA9IG5ldyBTdWJqZWN0PHt0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIGxpbmVOcjogbnVtYmVyfT4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgYmxvY2tTY3JlZW46IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSBzYXZlVHJhbnNhY3Rpb25DbGljazogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBjYW5jZWxUcmFuc2FjdGlvbkNsaWNrOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgYWZ0ZXJBZGRUcmFuc2FjdGlvbkxpbmU6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xufVxuIl19
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFNOUMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sd0NBQXdDLENBQUM7O0FBVy9FLE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFFa0IsbUJBQWMsR0FBNkQsSUFBSSxPQUFPLEVBQW1ELENBQUM7UUFDMUksOEJBQXlCLEdBQ3ZDLElBQUksT0FBTyxFQUFpSCxDQUFDO1FBQy9HLDJCQUFzQixHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzVELGFBQVEsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUM5QyxtQ0FBOEIsR0FBb0IsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUN4RSxzQ0FBaUMsR0FBd0MsSUFBSSxPQUFPLEVBQThCLENBQUM7UUFDbkgsbUJBQWMsR0FBOEQsSUFBSSxPQUFPLEVBQW9ELENBQUM7UUFDNUksZ0JBQVcsR0FBOEQsSUFBSSxPQUFPLEVBQW9ELENBQUM7UUFDekkscUJBQWdCLEdBQTJGLElBQUksT0FBTyxFQUFpRixDQUFDO1FBQ3hNLGtCQUFhLEdBQTRFLElBQUksT0FBTyxFQUFrRSxDQUFDO1FBQ3ZLLHVCQUFrQixHQUFvRCxJQUFJLE9BQU8sRUFBd0MsQ0FBQztRQUMxSCwyQkFBc0IsR0FBNEIsSUFBSSxPQUFPLEVBQWtCLENBQUM7UUFDaEYsc0JBQWlCLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFDdkQsa0JBQWEsR0FBb0IsSUFBSSxPQUFPLEVBQVUsQ0FBQztR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R0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUUxRCwyQ0FBc0MsR0FBb0IsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNoRiwwQkFBcUIsR0FBOEMsSUFBSSxPQUFPLEVBQW9DLENBQUM7UUFDbkgscUNBQWdDLEdBQStDLElBQUksT0FBTyxFQUFxQyxDQUFDO1FBQ2hJLGlEQUE0QyxHQUFvRSxJQUFJLE9BQU8sRUFBMEQsQ0FBQztRQUV0TCxnQkFBVyxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUU1RSx5QkFBb0IsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUMxRCwyQkFBc0IsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUU1RCw0QkFBdUIsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztLQUNwRjs7OztZQXpIQSxVQUFVLFNBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7UG9zaXRpb25HcmlkUm93fSBmcm9tICcuLi9lbnVtL3Bvc2l0aW9uLWdyaWQtcm93LmVudW0nO1xuaW1wb3J0IHtTY3JvbGx9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm8nO1xuaW1wb3J0IHtCdXNpbmVzc09iamVjdH0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvYnVzaW5lc3Mtb2JqZWN0JztcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvJztcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcbmltcG9ydCB7T3JkZXJMaW5lU2V0SW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLWxpbmUtc2V0LWluZm8uYm8nO1xuaW1wb3J0IHtPcmRlckNvbmZpcm1hdGlvbkRyb3BwZWR9IGZyb20gJy4uL2ludGVyZmFjZS9vcmRlci1jb25maXJtYXRpb24tZHJvcHBlZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtQdXJjaGFzZVJlc2VydmF0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLXJlc2VydmF0aW9uLmJvXCI7XG5pbXBvcnQge1xuICBQdXJjaGFzZVJlc2VydmF0aW9uUHVyY2hhc2VMaW5lXG59IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcHVyY2hhc2UtcmVzZXJ2YXRpb24tcHVyY2hhc2UtbGluZS5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW1cIjtcbmltcG9ydCB7UGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmctdHJhbnNwb3J0LXdlZWstZGF5LmJvJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46IFwicm9vdFwifSlcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSB7XG4gIHB1YmxpYyByZWFkb25seSBhZGRUb0NhcnRCeVNrdTogU3ViamVjdDx7c2t1OiBzdHJpbmcsIGFtb3VudDogbnVtYmVyLCBwb3BDYXJ0OiBib29sZWFufT4gPSBuZXcgU3ViamVjdDx7c2t1OiBzdHJpbmcsIGFtb3VudDogbnVtYmVyLCBwb3BDYXJ0OiBib29sZWFufT4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGFkZFRvQ2FydEJ5U2VsZWN0b3JSZXN1bHQ6IFN1YmplY3Q8e3NlbGVjdG9yUmVzdWx0OiB7Z29vZElkOiBudW1iZXIsIGJhc2VHb29kSWQ6IG51bWJlciwgc2VsZWN0b3JEYXRhOiBhbnksIHF1YW50aXR5OiBudW1iZXJ9LCBwb3BDYXJ0OiBib29sZWFufT4gPVxuICAgIG5ldyBTdWJqZWN0PHtzZWxlY3RvclJlc3VsdDoge2dvb2RJZDogbnVtYmVyLCBiYXNlR29vZElkOiBudW1iZXIsIHNlbGVjdG9yRGF0YTogYW55LCBxdWFudGl0eTogbnVtYmVyfSwgcG9wQ2FydDogYm9vbGVhbn0+KCk7XG4gIHB1YmxpYyByZWFkb25seSBvcGVuU2hvcHBpbmdDYXJ0TW9kdWxlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGxvZ2dlZEluOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGFkZE5ld1VzZXJUb1Nob3BwaW5nQ2FydE1vZHVsZTogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgYWRkVXNlclJlbGF0aW9uU2hvcHBpbmdDYXJ0TW9kdWxlOiBTdWJqZWN0PHt1c2VyOiBzdHJpbmcsIHB3OiBzdHJpbmd9PiA9IG5ldyBTdWJqZWN0PHt1c2VyOiBzdHJpbmcsIHB3OiBzdHJpbmd9PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgYWRkQXJ0aWNsZUxpbmU6IFN1YmplY3Q8e2xpbmVOcjogbnVtYmVyLCBiZWZvcmVPckFmdGVyOiBQb3NpdGlvbkdyaWRSb3d9PiA9IG5ldyBTdWJqZWN0PHtsaW5lTnI6IG51bWJlciwgYmVmb3JlT3JBZnRlcjogUG9zaXRpb25HcmlkUm93fT4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGFkZFRleHRMaW5lOiBTdWJqZWN0PHtsaW5lTnI6IG51bWJlciwgYmVmb3JlT3JBZnRlcjogUG9zaXRpb25HcmlkUm93fT4gPSBuZXcgU3ViamVjdDx7bGluZU5yOiBudW1iZXIsIGJlZm9yZU9yQWZ0ZXI6IFBvc2l0aW9uR3JpZFJvd30+KCk7XG4gIHB1YmxpYyByZWFkb25seSBhZGRBcnRpY2xlTGluZUF0OiBTdWJqZWN0PHtza3U6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIGxpbmVOcjogbnVtYmVyLCBiZWZvcmVPckFmdGVyOiBQb3NpdGlvbkdyaWRSb3d9PiA9IG5ldyBTdWJqZWN0PHtza3U6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIGxpbmVOcjogbnVtYmVyLCBiZWZvcmVPckFmdGVyOiBQb3NpdGlvbkdyaWRSb3d9PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgYWRkVGV4dExpbmVBdDogU3ViamVjdDx7dGV4dDogc3RyaW5nLCBsaW5lTnI6IG51bWJlciwgYmVmb3JlT3JBZnRlcjogUG9zaXRpb25HcmlkUm93fT4gPSBuZXcgU3ViamVjdDx7dGV4dDogc3RyaW5nLCBsaW5lTnI6IG51bWJlciwgYmVmb3JlT3JBZnRlcjogUG9zaXRpb25HcmlkUm93fT4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZUxpbmVTZXF1ZW5jZTogU3ViamVjdDwoe2Zyb21JbmRleDogbnVtYmVyLCB0b0luZGV4OiBudW1iZXJ9KT4gPSBuZXcgU3ViamVjdDx7ZnJvbUluZGV4OiBudW1iZXIsIHRvSW5kZXg6IG51bWJlcn0+KCk7XG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbkxpbmVDbGlja2VkOiBTdWJqZWN0PEJ1c2luZXNzT2JqZWN0PiA9IG5ldyBTdWJqZWN0PEJ1c2luZXNzT2JqZWN0PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgcmlnaHRTaWRlYmFyQ2xvc2U6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2Nyb2xsQ29udGVudDogU3ViamVjdDxTY3JvbGw+ID0gbmV3IFN1YmplY3Q8U2Nyb2xsPigpO1xuICAvLyBwdWJsaWMgcmVhZG9ubHkgY29tbWl0UmVjZWl2ZVB1cmNoYXNlT3JkZXJzOiBTdWJqZWN0PHtkYXRlOiBEYXRlLCBpZDogc3RyaW5nfT4gPSBuZXcgU3ViamVjdDx7ZGF0ZTogRGF0ZSwgaWQ6IHN0cmluZ30+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RBbGxMaW5lczogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbkRpcnR5OiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zYWN0aW9uTGluZUNoYW5nZWQ6IFN1YmplY3Q8VHJhbnNhY3Rpb25MaW5lSW5mbz4gPSBuZXcgU3ViamVjdDxUcmFuc2FjdGlvbkxpbmVJbmZvPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNhY3Rpb25MaW5lQ2hlY2tib3hDaGFuZ2VkOiBTdWJqZWN0PHtsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvLCBjaGVja2VkOiBib29sZWFufT4gPSBuZXcgU3ViamVjdDx7bGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbywgY2hlY2tlZDogYm9vbGVhbn0+KCk7XG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbkxpbmVSZWZUcmFuc2FjdGlvbnNDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8VHJhbnNhY3Rpb25MaW5lSW5mbz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRyYW5zYWN0aW9uTGluZUluZm8+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbkxpbmVBZGRlZDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IG9wZW5BcnRpY2xlVGV4dE92ZXJ2aWV3OiBTdWJqZWN0PFRyYW5zYWN0aW9uTGluZUluZm8+ID0gbmV3IFN1YmplY3Q8VHJhbnNhY3Rpb25MaW5lSW5mbz4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGFkZEFydGljbGVUZXh0OiBTdWJqZWN0PFRyYW5zYWN0aW9uTGluZUluZm8+ID0gbmV3IFN1YmplY3Q8VHJhbnNhY3Rpb25MaW5lSW5mbz4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGVkaXRBcnRpY2xlVGV4dDogU3ViamVjdDxUcmFuc2FjdGlvbkxpbmVJbmZvPiA9IG5ldyBTdWJqZWN0PFRyYW5zYWN0aW9uTGluZUluZm8+KCk7XG4gIHB1YmxpYyByZWFkb25seSBhZGRUcmFuc2FjdGlvblRleHQ6IFN1YmplY3Q8VHJhbnNhY3Rpb25MaW5lSW5mbz4gPSBuZXcgU3ViamVjdDxUcmFuc2FjdGlvbkxpbmVJbmZvPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgZWRpdFRyYW5zYWN0aW9uVGV4dDogU3ViamVjdDxUcmFuc2FjdGlvbkxpbmVJbmZvPiA9IG5ldyBTdWJqZWN0PFRyYW5zYWN0aW9uTGluZUluZm8+KCk7XG4gIHB1YmxpYyByZWFkb25seSBhcnRpY2xlTGluZVRleHRBZGRlZE9yQ2hhbmdlZDogU3ViamVjdDxudW1iZXI+ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgbmV3UGxhbk9yZGVyRXZlbnQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgb3BlblNpZGVQYW5lbDogU3ViamVjdDxUcmFuc2FjdGlvbkxpbmVJbmZvPiA9IG5ldyBTdWJqZWN0PFRyYW5zYWN0aW9uTGluZUluZm8+KCk7XG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGVTZXJ2aWNlQnV0dG9uQ2xpY2tlZDogU3ViamVjdDxudW1iZXI+ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdmlld1N0b2NrQnV0dG9uQ2xpY2s6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGNvcHlMaW5lQnV0dG9uQ2xpY2s6IFN1YmplY3Q8VHJhbnNhY3Rpb25MaW5lSW5mbz4gPSBuZXcgU3ViamVjdDxUcmFuc2FjdGlvbkxpbmVJbmZvPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0QWxsU2FsZXNPcmRlckxpbmVzRm9yUHVyY2hhc2U6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0QWxsU2FsZXNPcmRlckxpbmVzRm9yRGVsaXZlcnk6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0QWxsU2FsZXNPcmRlckxpbmVzRm9ySW52b2ljZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RBbGxTYWxlc09yZGVyTGluZXNGb3JBbGxvY2F0aW9uOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdEFsbFNhbGVzT3JkZXJMaW5lc1RvUGljazogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RBbGxTYWxlc09yZGVyTGluZXNUb0JlUGlja2VkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHRvZ2dsZVB1cmNoYXNlT3JkZXJNYXJnaW5JbmZvOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkVHJhbnNwb3J0RGF5OiBTdWJqZWN0PFBsYW5uaW5nVHJhbnNwb3J0V2Vla0RheT4gPSBuZXcgU3ViamVjdDxQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXk+KCk7XG4gIHB1YmxpYyByZWFkb25seSByZXNldFRyYW5zcG9ydERheUZpbHRlcmVkT3JkZXJzOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdEFsbFB1cmNoYXNlT3JkZXJMaW5lc0ZvclJlY2VpdmVHb29kczogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSB1cGRhdGluZ1NhbGVzT3JkZXJHZW5lcmF0ZVB1cmNoYXNlT3JkZXJzOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHVwZGF0aW5nU2FsZXNPcmRlckNvbmZpcm1hdGlvbjogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSB1cGRhdGluZ1NhbGVzT3JkZXJHb29kc1RvQmVQaWNrZWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRpbmdTYWxlc09yZGVyR29vZHNQaWNrZWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRpbmdTYWxlc09yZGVyRGVsaXZlcnk6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRpbmdTYWxlc09yZGVyUXVvdGF0aW9uOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHVwZGF0aW5nSW52b2ljZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSB1cGRhdGluZ1B1cmNoYXNlT3JkZXJSZWNlaXZlR29vZHM6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRpbmdQdXJjaGFzZU9yZGVyQWxsb2NhdGVHb29kczogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSB1cGRhdGluZ1B1cmNoYXNlT3JkZXJDb25maXJtYXRpb246IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgYWxsb3dQYXJ0aWFsRGVsaXZlcnlDaGFuZ2VkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNhbGVzT3JkZXJHZW5lcmF0ZVB1cmNoYXNlT3JkZXJzQ29tcGxldGVkQ2hhbmdlZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih1bmRlZmluZWQpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2FsZXNPcmRlclBpY2tpbmdHb29kc0NvbXBsZXRlZENoYW5nZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IHNhbGVzT3JkZXJQaWNrZWRDb21wbGV0ZWRDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBzYWxlc09yZGVyVG9CZVBpY2tlZENvbXBsZXRlZENoYW5nZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IHNhbGVzT3JkZXJEZWxpdmVyeUNvbXBsZXRlZENoYW5nZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IGludm9pY2VDb21wbGV0ZWRDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBzYWxlc09yZGVyQWxsb2NhdGVHb29kc0NvbXBsZXRlZENoYW5nZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IHB1cmNoYXNlT3JkZXJSZWNlaXZlR29vZHNDb21wbGV0ZWRDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBwdXJjaGFzZU9yZGVyQ29uZmlybWF0aW9uQ29tcGxldGVkQ2hhbmdlZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih1bmRlZmluZWQpO1xuICBwdWJsaWMgcmVhZG9ubHkgb3ZlcndyaXRlUHVyY2hhc2VPcmRlckNvbmZpcm1hdGlvbkNvbXBsZXRlZENoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2FsZXNPcmRlckNvbmZpcm1hdGlvblNlbnRDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGVUcmFuc2FjdGlvbjogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvblNldDogU3ViamVjdDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4gPSBuZXcgU3ViamVjdDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHB1cmNoYXNlT3JkZXJOYXZpZ2F0aW9uOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHB1YmxpYyByZWFkb25seSBwdXJjaGFzZUV4aXN0aW5nT3JkZXJOYXZpZ2F0aW9uOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlRXhpc3RpbmdPcmRlck5hdmlnYXRpb246IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNhbGVzUXVvdGF0aW9uT3JkZXJOYXZpZ2F0aW9uOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHB1YmxpYyByZWFkb25seSByZWxhdGlvbk5hdmlnYXRpb246IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGFydGljbGVOYXZpZ2F0aW9uOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbk5hdmlnYXRpb246IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zYWN0aW9uQ29weU5hdmlnYXRpb246IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zYWN0aW9uRGVsZXRlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvblBheW1lbnREb25lOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGNvcHlPcmRlcjogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSB1cGRhdGVUcmFuc2FjdGlvblJlZmVyZW5jZXM6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNhY3Rpb25MaW5lVmlzaWJpbGl0eUNoYW5nZTogQmVoYXZpb3JTdWJqZWN0PHtsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvLCB2aXNpYmxlOiBib29sZWFufT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHtsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvOyB2aXNpYmxlOiBib29sZWFufT4odW5kZWZpbmVkKTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dFcnJvcjogU3ViamVjdDx7bWVzc2FnZTogc3RyaW5nLCBsb2NhbGl6ZTogYm9vbGVhbiwgZGV0YWlscz86IHN0cmluZ30+ID0gbmV3IFN1YmplY3Q8e21lc3NhZ2U6IHN0cmluZywgbG9jYWxpemU6IGJvb2xlYW4sIGRldGFpbHM/OiBzdHJpbmd9PigpXG4gIHB1YmxpYyByZWFkb25seSBoZWFkZXJQb3B1cFNhdmVCdXR0b25FbmFibGVDaGFuZ2U6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyUG9wdXBTYXZpbmc6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyUG9wdXBTYXZlQnV0dG9uQ2xpY2s6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyUG9wdXBXYW50c1RvQ2xvc2U6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyUG9wdXBDbG9zZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSBvcmRlckxpbmVTZXRCdXR0b25DbGljazogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGFkZERvY3VtZW50VG9MaW5lQ2xpY2tlZDogU3ViamVjdDxUcmFuc2FjdGlvbkxpbmVJbmZvPiA9IG5ldyBTdWJqZWN0PFRyYW5zYWN0aW9uTGluZUluZm8+KCk7XG4gIHB1YmxpYyByZWFkb25seSByZW9wZW5FeHRlcm5hbE9yZGVyQ2xpY2tlZDogU3ViamVjdDx7c2V0OiBPcmRlckxpbmVTZXRJbmZvLCBhcnRpY2xlTnI6IHN0cmluZywgdHJhbnNLaW5kOiBUcmFuc2FjdGlvbktpbmR9PiA9IG5ldyBTdWJqZWN0PHtzZXQ6IE9yZGVyTGluZVNldEluZm8sIGFydGljbGVOcjogc3RyaW5nLCB0cmFuc0tpbmQ6IFRyYW5zYWN0aW9uS2luZH0+KCk7XG4gIHB1YmxpYyByZWFkb25seSBhY3RpdmVSdWJyaWNDaGFuZ2U6IEJlaGF2aW9yU3ViamVjdDx7IGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSwgc2lkZXBhbmVsPzogYm9vbGVhbiB9PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnksIHNpZGVwYW5lbD86IGJvb2xlYW4gfT4oe2NhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeS5TYWxlc09yZGVyT3ZlcnZpZXd9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcXVhbnRpdHlTZWxlY3RlZExpbmVDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBsaW5lU2VsZWN0ZWRGb3JEZWxpdmVyeTogQmVoYXZpb3JTdWJqZWN0PHtsaW5lVXVpZDogc3RyaW5nLCBzZWxlY3RlZDogYm9vbGVhbn0+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7bGluZVV1aWQ6IHN0cmluZywgc2VsZWN0ZWQ6IGJvb2xlYW59Pih1bmRlZmluZWQpO1xuICBwdWJsaWMgcmVhZG9ubHkgbGluZVNlbGVjdGVkRm9ySW52b2ljZTogQmVoYXZpb3JTdWJqZWN0PHtsaW5lVXVpZDogc3RyaW5nLCBzZWxlY3RlZDogYm9vbGVhbn0+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7bGluZVV1aWQ6IHN0cmluZywgc2VsZWN0ZWQ6IGJvb2xlYW59Pih1bmRlZmluZWQpO1xuICBwdWJsaWMgcmVhZG9ubHkgbGluZVNlbGVjdGVkRm9yVG9QaWNrOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGFsbExpbmVzU2VsZWN0ZWRGb3JEZWxpdmVyeTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBhbGxMaW5lc1NlbGVjdGVkRm9ySW52b2ljZTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbkxpbmVEcmFnZ2VkT3ZlcjogU3ViamVjdDxudW1iZXI+ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlQ2F0ZWdvcnlDaGFuZ2VkOiBTdWJqZWN0PFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5PiA9IG5ldyBTdWJqZWN0PFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5PigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBvcmRlckNvbmZpcm1hdGlvbkRyb3BwZWQ6IEJlaGF2aW9yU3ViamVjdDxPcmRlckNvbmZpcm1hdGlvbkRyb3BwZWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPcmRlckNvbmZpcm1hdGlvbkRyb3BwZWQ+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyByZWFkb25seSBvcmRlckNvbmZpcm1hdGlvblJlc2V0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcG9zT3JkZXJQYXllZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzaG93TG9hZGVyOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dCdXN5TG9hZGVyOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZFNhbGVzT3JkZXJGcm9tQ2FzaFJlZ2lzdGVyT3JkZXI6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHJlc2VydmF0aW9uTW9kZVRvZ2dsZTogU3ViamVjdDxbYm9vbGVhbiwgUHVyY2hhc2VSZXNlcnZhdGlvbltdXT4gPSBuZXcgU3ViamVjdDxbYm9vbGVhbiwgUHVyY2hhc2VSZXNlcnZhdGlvbltdXT4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHJlc2VydmF0aW9uU2FsZXNPcmRlckxpbmVDbGlja2VkOiBTdWJqZWN0PFB1cmNoYXNlUmVzZXJ2YXRpb25QdXJjaGFzZUxpbmVbXT4gPSBuZXcgU3ViamVjdDxQdXJjaGFzZVJlc2VydmF0aW9uUHVyY2hhc2VMaW5lW10+KCk7XG4gIHB1YmxpYyByZWFkb25seSByZXF1ZXN0Q3JlYXRlU2VydmljZU9yZGVyRnJvbVRyYW5zYWN0aW9uTGluZTogU3ViamVjdDx7dHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCBsaW5lTnI6IG51bWJlcn0+ID0gbmV3IFN1YmplY3Q8e3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgbGluZU5yOiBudW1iZXJ9PigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBibG9ja1NjcmVlbjogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNhdmVUcmFuc2FjdGlvbkNsaWNrOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGNhbmNlbFRyYW5zYWN0aW9uQ2xpY2s6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBhZnRlckFkZFRyYW5zYWN0aW9uTGluZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG59XG4iXX0=