@colijnit/transaction 257.1.38 → 257.1.39

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 (49) hide show
  1. package/bundles/colijnit-transaction.umd.js +179 -51
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.metadata.json +1 -1
  4. package/esm2015/lib/component/add-product/add-product.component.js +8 -10
  5. package/esm2015/lib/component/transaction-internal/transaction-internal.component.js +2 -2
  6. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-invoice/transaction-quick-access-invoice.component.js +12 -4
  7. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.component.js +12 -4
  8. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.component.js +9 -10
  9. package/esm2015/lib/component/transaction-reservation/service/transaction-sales-reservation.service.js +3 -3
  10. package/esm2015/lib/component/transaction-reservation/transaction-sales-reservation-popup/transaction-sales-reservation-popup.component.js +3 -2
  11. package/esm2015/lib/component/transaction-search/transaction-batch-process-dialog/transaction-batch-process-dialog.component.js +34 -25
  12. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-invoice-check-order-tile/transaction-invoice-check-order-tile.component.js +148 -0
  13. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-invoice-check-order-tile/transaction-invoice-check-order-tile.module.js +33 -0
  14. package/esm2015/lib/component/transaction-search/transaction-shipping-method-dialog/transaction-shipping-method-dialog.component.js +6 -21
  15. package/esm2015/lib/interface/invoice-check-order-line.interface.js +2 -0
  16. package/esm2015/lib/interface/invoice-check-order.interface.js +2 -0
  17. package/esm2015/lib/model/transaction-invoice-check-order-line.js +18 -0
  18. package/esm2015/lib/model/transaction-invoice-check-order.js +14 -0
  19. package/esm2015/lib/service/transaction-connector-adapter.service.js +13 -1
  20. package/esm2015/lib/service/transaction-connector.service.js +6 -1
  21. package/esm2015/lib/service/transaction.service.js +6 -1
  22. package/esm2015/lib/transaction-version.js +3 -3
  23. package/esm2015/public_api.js +6 -1
  24. package/fesm2015/colijnit-transaction.js +287 -76
  25. package/fesm2015/colijnit-transaction.js.map +1 -1
  26. package/lib/component/add-product/add-product.component.d.ts +0 -2
  27. package/lib/component/transaction-quick-access/transaction-quick-access-invoice/transaction-quick-access-invoice.component.d.ts +1 -1
  28. package/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.component.d.ts +1 -1
  29. package/lib/component/transaction-reservation/service/transaction-sales-reservation.service.d.ts +1 -1
  30. package/lib/component/transaction-reservation/transaction-sales-reservation-popup/transaction-sales-reservation-popup.component.d.ts +1 -0
  31. package/lib/component/transaction-search/transaction-batch-process-dialog/style/_layout.scss +12 -0
  32. package/lib/component/transaction-search/transaction-batch-process-dialog/transaction-batch-process-dialog.component.d.ts +1 -0
  33. package/lib/component/transaction-search/transaction-search-tile/transaction-invoice-check-order-tile/style/_layout.scss +81 -0
  34. package/lib/component/transaction-search/transaction-search-tile/transaction-invoice-check-order-tile/style/_material-definition.scss +0 -0
  35. package/lib/component/transaction-search/transaction-search-tile/transaction-invoice-check-order-tile/style/_theme.scss +4 -0
  36. package/lib/component/transaction-search/transaction-search-tile/transaction-invoice-check-order-tile/style/material.scss +3 -0
  37. package/lib/component/transaction-search/transaction-search-tile/transaction-invoice-check-order-tile/transaction-invoice-check-order-tile.component.d.ts +21 -0
  38. package/lib/component/transaction-search/transaction-search-tile/transaction-invoice-check-order-tile/transaction-invoice-check-order-tile.module.d.ts +2 -0
  39. package/lib/component/transaction-search/transaction-shipping-method-dialog/transaction-shipping-method-dialog.component.d.ts +1 -4
  40. package/lib/interface/invoice-check-order-line.interface.d.ts +27 -0
  41. package/lib/interface/invoice-check-order.interface.d.ts +14 -0
  42. package/lib/model/transaction-invoice-check-order-line.d.ts +27 -0
  43. package/lib/model/transaction-invoice-check-order.d.ts +12 -0
  44. package/lib/service/transaction-connector-adapter.service.d.ts +1 -0
  45. package/lib/service/transaction-connector.service.d.ts +1 -0
  46. package/lib/service/transaction.service.d.ts +1 -0
  47. package/package.json +3 -3
  48. package/public_api.d.ts +5 -0
  49. package/colijnit-transaction-257.1.35.tgz +0 -0
@@ -15,6 +15,7 @@ import { ReportingDocumentPrintSignDocBaseRequest } from '@colijnit/mainapi/buil
15
15
  import { ReportingDocumentEmailSignDocBaseRequest } from '@colijnit/mainapi/build/model/reporting-document-email-sign-doc-base-request';
16
16
  import { CoDocument } from '@colijnit/mainapi/build/model/co-document';
17
17
  import { SendMethodType } from '@colijnit/mainapi/build/enum/send-method-type.enum';
18
+ import { LayoutCode } from "@colijnit/transactionapi/build/enum/layout-code.enum";
18
19
  export class TransactionQuickAccessInvoiceComponent extends TransactionQuickAccessSendMethodBaseComponent {
19
20
  constructor() {
20
21
  super(...arguments);
@@ -34,6 +35,7 @@ export class TransactionQuickAccessInvoiceComponent extends TransactionQuickAcce
34
35
  yield this.transactionService.updateQuantitySelectedForAllLines(this.transactionInfo, this.transactionLines, this.deliveryCostLines, this.allSelected || !this.transactionInfo.allowPartialDelivery);
35
36
  })));
36
37
  super.ngOnInit();
38
+ this.getHistoricDocuments();
37
39
  this._getInternalParameterAllowPartialInvoicing();
38
40
  }
39
41
  ngOnDestroy() {
@@ -128,8 +130,14 @@ export class TransactionQuickAccessInvoiceComponent extends TransactionQuickAcce
128
130
  return false;
129
131
  }
130
132
  }
131
- historicDocuments() {
132
- return this.sendDocumentsComponent && this.sendDocumentsComponent.historicReports.length > 0 && !!this.sendDocumentsComponent.activeReport;
133
+ getHistoricDocuments() {
134
+ this.transactionService.getHistoricDocuments(this.transactionInfo.id, LayoutCode.Invoice)
135
+ .then((result) => {
136
+ if (result) {
137
+ this.historicReports = result;
138
+ this.detectChanges();
139
+ }
140
+ });
133
141
  }
134
142
  handleSendDocument(defaultSendMethod) {
135
143
  this.handleSend(defaultSendMethod).then(() => this.sendDocumentsComponent.getHistoricDocuments());
@@ -177,7 +185,7 @@ TransactionQuickAccessInvoiceComponent.decorators = [
177
185
  (modelChange)="handleSelectAllLines($event)"
178
186
  ></co-input-checkbox>
179
187
  </div>
180
- <co-quick-send-button *ngIf="canInvoice || historicDocuments()"
188
+ <co-quick-send-button *ngIf="canInvoice"
181
189
  [defaultMethodIcon]="defaultSendMethodIcon"
182
190
  [showLoader]="showLoader"
183
191
  (sendIconClicked)="handleSendDocument(defaultSendMethod)"
@@ -218,4 +226,4 @@ TransactionQuickAccessInvoiceComponent.propDecorators = {
218
226
  sendDocumentsComponent: [{ type: ViewChild, args: [TransactionSendDocumentsComponent,] }],
219
227
  showClass: [{ type: HostBinding, args: ["class.co-transaction-quick-access-invoice",] }]
220
228
  };
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLWludm9pY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1pbnZvaWNlL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1pbnZvaWNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQXFCLFNBQVMsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUMsNkNBQTZDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUdySCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUMvRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUMvRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUUzRixPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSw0RUFBNEUsQ0FBQztBQUMzSCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDL0UsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sdUVBQXVFLENBQUM7QUFDeEgsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFDbEgsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFDNUcsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFDaEgsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFDaEgsT0FBTyxFQUFDLHdDQUF3QyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFD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LEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVPLHVCQUF1QixDQUFDLE9BQThGO1FBQzVILE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDM0UsQ0FBQzs7O1lBM05GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUNBQXFDO2dCQUMvQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBDVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O3FDQUdFLFNBQVMsU0FBQyxpQ0FBaUM7d0JBRzNDLFdBQVcsU0FBQywyQ0FBMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblF1aWNrQWNjZXNzU2VuZE1ldGhvZEJhc2VDb21wb25lbnR9IGZyb20gJy4uL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1zZW5kLW1ldGhvZC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWx9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLWVtYWlsLmJvJztcclxuaW1wb3J0IHtSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0LWxheW91dC1zZWxlY3Rpb24tcHJpbnQuYm8nO1xyXG5pbXBvcnQge0VtYWlsSW52b2ljZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9lbWFpbC1pbnZvaWNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1ByaW50SW52b2ljZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wcmludC1pbnZvaWNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1BkZkludm9pY2VSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGRmLWludm9pY2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lUmVwb3J0aW5nUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtcmVwb3J0aW5nLXJlcXVlc3QuYm8nO1xyXG5pbXBvcnQge0ludGVybmFsUGFyYW19IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vaW50ZXJuYWwtcGFyYW0uZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZW5kRG9jdW1lbnRzQ29tcG9uZW50fSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50cy90cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1wZGYtYmFzZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtQZGZIaXN0b3JpY0ludm9pY2VSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGRmLWhpc3RvcmljLWludm9pY2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7RW1haWxIaXN0b3JpY0ludm9pY2VSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZW1haWwtaGlzdG9yaWMtaW52b2ljZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtQcmludEhpc3RvcmljSW52b2ljZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wcmludC1oaXN0b3JpYy1pbnZvaWNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1wcmludC1zaWduLWRvYy1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1lbWFpbC1zaWduLWRvYy1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvY3VtZW50JztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1NlbmRNZXRob2RUeXBlfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3NlbmQtbWV0aG9kLXR5cGUuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1xdWljay1hY2Nlc3MtaW52b2ljZVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJxdWljay1hY2Nlc3MtY29udGVudC13cmFwcGVyXCIgKm5nSWY9XCJ0cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25EZWZpbml0aXZlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LWFsbC13cmFwcGVyXCIgW2NsYXNzLmhpZGRlbl09XCIhaGFzTGluZXNUb0ludm9pY2UgfHwgIXRyYW5zYWN0aW9uSW5mby5hbGxvd1BhcnRpYWxEZWxpdmVyeVwiPlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiYWxsU2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTRUxFQ1RfQUxMX0xJTkVTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVTZWxlY3RBbGxMaW5lcygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICA+PC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGNvLXF1aWNrLXNlbmQtYnV0dG9uICpuZ0lmPVwiY2FuSW52b2ljZSB8fCBoaXN0b3JpY0RvY3VtZW50cygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdE1ldGhvZEljb25dPVwiZGVmYXVsdFNlbmRNZXRob2RJY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0xvYWRlcl09XCJzaG93TG9hZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VuZEljb25DbGlja2VkKT1cImhhbmRsZVNlbmREb2N1bWVudChkZWZhdWx0U2VuZE1ldGhvZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcGVuU2VuZE1ldGhvZERpYWxvZyk9XCJzaG93U2VuZE1ldGhvZERpYWxvZyA9IHRydWVcIlxyXG4gICAgICAgICAgPjwvY28tcXVpY2stc2VuZC1idXR0b24+XHJcbiAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tc2VuZC1kb2N1bWVudHNcclxuICAgICAgICAgICAgICAgICAgW2hpc3RvcmljUmVwb3J0c109XCJoaXN0b3JpY1JlcG9ydHNcIlxyXG4gICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnldPVwidHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlckludm9pY2VcIlxyXG4gICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tc2VuZC1kb2N1bWVudHM+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8Y28tc2VuZC1tZXRob2QtZGlhbG9nICpuZ0lmPVwic2hvd1NlbmRNZXRob2REaWFsb2dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJUaXRsZV09XCInVmVyemVuZG1ldGhvZGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJpbnRlckxpc3RdPVwicHJpbnRlckxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0U2VuZE1ldGhvZF09XCJkZWZhdWx0U2VuZE1ldGhvZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Zpc2libGVNZXRob2RzXT1cIltzZW5kTWV0aG9kVHlwZS5QcmludCwgc2VuZE1ldGhvZFR5cGUuRW1haWwsIHNlbmRNZXRob2RUeXBlLlBkZl1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbWFpbEFkZHJlc3Nlc109XCJlbWFpbEFkZHJlc3Nlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VtYWlsTGF5b3V0c109XCJlbWFpbExheW91dHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmludExheW91dHNdPVwicHJpbnRMYXlvdXRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNEb2NTaWduRW5hYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGRmRG9jXT1cInBkZkRvY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVQZGZQcmV2aWV3XT1cImRpc2FibGVQZGZQcmV2aWV3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlcG9ydGluZ0RvY3VtZW50RW1haWxSZXF1ZXN0KV09XCJyZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZXBvcnRpbmdEb2N1bWVudFByaW50UmVxdWVzdCldPVwicmVwb3J0RG9jdW1lbnRQcmludFJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVwb3J0aW5nRG9jdW1lbnRQZGZSZXF1ZXN0KV09XCJyZXBvcnREb2N1bWVudFBkZlJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cInNob3dTZW5kTWV0aG9kRGlhbG9nID0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChva0NsaWNrKT1cImhhbmRsZVNlbmRNZXRob2RPa0NsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaG93RmlsZVByZXZpZXcpPVwib25TaG93RmlsZVByZXZpZXcoJGV2ZW50KVwiXHJcbiAgICAgID48L2NvLXNlbmQtbWV0aG9kLWRpYWxvZz5cclxuICAgICAgPGNvLWRpZ2l0YWwtc2lnbmF0dXJlXHJcbiAgICAgICAgICAgICAgW2RvY3VtZW50SWRdPVwic2lnbmF0dXJlRG9jdW1lbnRJZFwiXHJcbiAgICAgICAgICAgICAgKGRvY3VtZW50U3RvcmVkKT1cImNvbW1pdEFuZFJlZnJlc2hUcmFuc2FjdGlvbigpXCJcclxuICAgICAgPjwvY28tZGlnaXRhbC1zaWduYXR1cmU+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblF1aWNrQWNjZXNzSW52b2ljZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NTZW5kTWV0aG9kQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQFZpZXdDaGlsZChUcmFuc2FjdGlvblNlbmREb2N1bWVudHNDb21wb25lbnQpXHJcbiAgcHVibGljIHNlbmREb2N1bWVudHNDb21wb25lbnQ6IFRyYW5zYWN0aW9uU2VuZERvY3VtZW50c0NvbXBvbmVudDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLWludm9pY2VcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QgPSBuZXcgUmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdCgpO1xyXG4gIHB1YmxpYyByZXBvcnREb2N1bWVudFByaW50UmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdCA9IG5ldyBSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0KCk7XHJcbiAgcHVibGljIHJlcG9ydERvY3VtZW50UGRmUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCA9IG5ldyBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KCk7XHJcblxyXG4gIHB1YmxpYyBjYW5JbnZvaWNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGludGVybmFsUGFyYW1ldGVyQWxsb3dzUGFydGlhbEludm9pY2luZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBhbGxTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmFsbExpbmVzU2VsZWN0ZWRGb3JJbnZvaWNlLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS51cGRhdGVRdWFudGl0eVNlbGVjdGVkRm9yQWxsTGluZXModGhpcy50cmFuc2FjdGlvbkluZm8sIHRoaXMudHJhbnNhY3Rpb25MaW5lcyxcclxuICAgICAgICAgICAgdGhpcy5kZWxpdmVyeUNvc3RMaW5lcywgdGhpcy5hbGxTZWxlY3RlZCB8fCAhdGhpcy50cmFuc2FjdGlvbkluZm8uYWxsb3dQYXJ0aWFsRGVsaXZlcnkpO1xyXG4gICAgICAgIH0pXHJcbiAgICApXHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5fZ2V0SW50ZXJuYWxQYXJhbWV0ZXJBbGxvd1BhcnRpYWxJbnZvaWNpbmcoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2VsZWN0QWxsTGluZXModmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uuc2VsZWN0QWxsU2FsZXNPcmRlckxpbmVzRm9ySW52b2ljZS5uZXh0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0RW1haWxBZGRyZXNzTGlzdCgpOiBQcm9taXNlPHN0cmluZ1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0RGVmYXVsdEVtYWlsQWRkcmVzc0xpc3RGb3JJbnZvaWNlKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldERlZmF1bHRTZW5kTWV0aG9kKCk6IFByb21pc2U8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCtTZW5kTWV0aG9kVHlwZS5QcmludCk7IC8vIE5vdCB5ZXQgcHJvdmlkZWQgYnkgbWlkZGxlIHRpZXJcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRFbWFpbExheW91dHMoKTogUHJvbWlzZTxSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0SW52b2ljZUVtYWlsTGF5b3V0cyh0aGlzLnRyYW5zYWN0aW9uSW5mby51dWlkKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRQcmludExheW91dHMoKTogUHJvbWlzZTxSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0SW52b2ljZVByaW50TGF5b3V0cyh0aGlzLnRyYW5zYWN0aW9uSW5mby51dWlkKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBwZGZEb2N1bWVudChyZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KSB7XHJcbiAgICBpZiAodGhpcy5zZW5kRG9jdW1lbnRzQ29tcG9uZW50LnNlbGVjdGVkKSB7XHJcbiAgICAgIGNvbnN0IHBkZkhpc3RvcmljSW52b2ljZVJlcXVlc3Q6IFBkZkhpc3RvcmljSW52b2ljZVJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IFBkZkhpc3RvcmljSW52b2ljZVJlcXVlc3QoKSwgcmVxdWVzdCk7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVIaXN0b3JpY1JlcXVlc3QocGRmSGlzdG9yaWNJbnZvaWNlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnBkZkhpc3RvcmljSW52b2ljZShwZGZIaXN0b3JpY0ludm9pY2VSZXF1ZXN0KS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcGRmSW52b2ljZVJlcXVlc3Q6IFBkZkludm9pY2VSZXF1ZXN0ID1cclxuICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBQZGZJbnZvaWNlUmVxdWVzdCgpLCByZXF1ZXN0KTtcclxuICAgICAgaWYgKHRoaXMuX3ByZXBhcmVSZXF1ZXN0KHBkZkludm9pY2VSZXF1ZXN0KSkge1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnBkZkludm9pY2UocGRmSW52b2ljZVJlcXVlc3QpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcHJpbnREb2N1bWVudChyZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0KSB7XHJcbiAgICBpZiAodGhpcy5zZW5kRG9jdW1lbnRzQ29tcG9uZW50LnNlbGVjdGVkKSB7XHJcbiAgICAgIGNvbnN0IHByaW50SGlzdG9yaWNJbnZvaWNlUmVxdWVzdDogUHJpbnRIaXN0b3JpY0ludm9pY2VSZXF1ZXN0ID1cclxuICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBQcmludEhpc3RvcmljSW52b2ljZVJlcXVlc3QoKSwgcmVxdWVzdCk7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVIaXN0b3JpY1JlcXVlc3QocHJpbnRIaXN0b3JpY0ludm9pY2VSZXF1ZXN0KTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UucHJpbnRIaXN0b3JpY0ludm9pY2UocHJpbnRIaXN0b3JpY0ludm9pY2VSZXF1ZXN0KS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcHJpbnRJbnZvaWNlUmVxdWVzdDogUHJpbnRJbnZvaWNlUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgUHJpbnRJbnZvaWNlUmVxdWVzdCgpLCByZXF1ZXN0KTtcclxuICAgICAgaWYgKHRoaXMuX3ByZXBhcmVSZXF1ZXN0KHByaW50SW52b2ljZVJlcXVlc3QpKSB7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UucHJpbnRJbnZvaWNlKHByaW50SW52b2ljZVJlcXVlc3QpLnRoZW4oKHJlc3VsdDogQ29Eb2N1bWVudCB8IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBDb0RvY3VtZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2lnbmF0dXJlRG9jdW1lbnRJZCA9IHJlc3VsdC5kb2N1bWVudElkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZW1haWxEb2N1bWVudChyZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZW5kRG9jdW1lbnRzQ29tcG9uZW50LnNlbGVjdGVkKSB7XHJcbiAgICAgIGNvbnN0IGVtYWlsSGlzdG9yaWNJbnZvaWNlUmVxdWVzdDogRW1haWxIaXN0b3JpY0ludm9pY2VSZXF1ZXN0ID1cclxuICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBFbWFpbEhpc3RvcmljSW52b2ljZVJlcXVlc3QoKSwgcmVxdWVzdCk7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVIaXN0b3JpY1JlcXVlc3QoZW1haWxIaXN0b3JpY0ludm9pY2VSZXF1ZXN0KTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZW1haWxIaXN0b3JpY0ludm9pY2UoZW1haWxIaXN0b3JpY0ludm9pY2VSZXF1ZXN0KS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZW1haWxJbnZvaWNlUmVxdWVzdDogRW1haWxJbnZvaWNlUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgRW1haWxJbnZvaWNlUmVxdWVzdCgpLCByZXF1ZXN0KTtcclxuICAgICAgaWYgKHRoaXMuX3ByZXBhcmVSZXF1ZXN0KGVtYWlsSW52b2ljZVJlcXVlc3QpKSB7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZW1haWxJbnZvaWNlKGVtYWlsSW52b2ljZVJlcXVlc3QpLnRoZW4oKHJlc3VsdDogQ29Eb2N1bWVudCB8IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBDb0RvY3VtZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2lnbmF0dXJlRG9jdW1lbnRJZCA9IHJlc3VsdC5kb2N1bWVudElkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhbnNhY3Rpb25TZXQoKSB7XHJcbiAgICBzdXBlci50cmFuc2FjdGlvblNldCgpO1xyXG4gICAgdGhpcy5jYW5JbnZvaWNlID0gIXRoaXMudHJhbnNhY3Rpb25JbmZvLmhlYWRlckluZm9TdGF0dXMuaXNGdWxseUludm9pY2VkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIF9wcmVwYXJlUmVxdWVzdChyZXF1ZXN0OiBFbWFpbEludm9pY2VSZXF1ZXN0IHwgUHJpbnRJbnZvaWNlUmVxdWVzdCB8IFBkZkludm9pY2VSZXF1ZXN0KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgc2VsZWN0ZWRMaW5lczogVHJhbnNhY3Rpb25MaW5lSW5mb1tdID0gdGhpcy50cmFuc2FjdGlvbkxpbmVzLmZpbHRlcigobGluZSkgPT4gbGluZS5zZWxlY3RlZCAmJiBsaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9JbnZvaWNlICE9PSAwKTtcclxuICAgIHNlbGVjdGVkTGluZXMgPSBzZWxlY3RlZExpbmVzLmNvbmNhdCh0aGlzLmRlbGl2ZXJ5Q29zdExpbmVzKTtcclxuICAgIGlmIChzZWxlY3RlZExpbmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmVxdWVzdC50cmFuc2FjdGlvbkxpbmVzID0gdGhpcy5fY3JlYXRlUmVxdWVzdExpbmVzKHNlbGVjdGVkTGluZXMpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uuc2hvd0Vycm9yLm5leHQoe21lc3NhZ2U6ICdOT19JTlZPSUNFX0xJTkVTJywgbG9jYWxpemU6IHRydWV9KTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhpc3RvcmljRG9jdW1lbnRzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudCAmJiB0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuaGlzdG9yaWNSZXBvcnRzLmxlbmd0aCA+IDAgJiYgISF0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuYWN0aXZlUmVwb3J0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlbmREb2N1bWVudChkZWZhdWx0U2VuZE1ldGhvZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmhhbmRsZVNlbmQoZGVmYXVsdFNlbmRNZXRob2QpLnRoZW4oKCkgPT4gdGhpcy5zZW5kRG9jdW1lbnRzQ29tcG9uZW50LmdldEhpc3RvcmljRG9jdW1lbnRzKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVNlbmRNZXRob2RPa0NsaWNrKG1ldGhvZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0gZmFsc2U7XHJcbiAgICBpZiAobWV0aG9kID09PSBTZW5kTWV0aG9kVHlwZS5QcmludCkge1xyXG4gICAgICB0aGlzLnByaW50RG9jdW1lbnQodGhpcy5yZXBvcnREb2N1bWVudFByaW50UmVxdWVzdCk7XHJcbiAgICB9IGVsc2UgaWYgKG1ldGhvZCA9PT0gU2VuZE1ldGhvZFR5cGUuRW1haWwpIHtcclxuICAgICAgdGhpcy5lbWFpbERvY3VtZW50KHRoaXMucmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3QpO1xyXG4gICAgfSBlbHNlIGlmIChtZXRob2QgPT09IFNlbmRNZXRob2RUeXBlLlBkZikge1xyXG4gICAgICB0aGlzLnBkZkRvY3VtZW50KHRoaXMucmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0KTtcclxuICAgIH1cclxuICAgIHRoaXMuX3NldERlZmF1bHRNZXRob2QobWV0aG9kKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZVJlcXVlc3RMaW5lcyhzZWxlY3RlZExpbmVzOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10pOiBUcmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0W10ge1xyXG4gICAgcmV0dXJuIHNlbGVjdGVkTGluZXMubWFwKChsaW5lKSA9PiB7XHJcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uTGluZVJlcG9ydGluZ1JlcXVlc3Q6IFRyYW5zYWN0aW9uTGluZVJlcG9ydGluZ1JlcXVlc3QgPSBuZXcgVHJhbnNhY3Rpb25MaW5lUmVwb3J0aW5nUmVxdWVzdCgpO1xyXG4gICAgICB0cmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0LmxpbmVOciA9IGxpbmUubGluZU5yO1xyXG4gICAgICB0cmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0LmFtb3VudCA9IHRoaXMudHJhbnNhY3Rpb25JbmZvLmFsbG93UGFydGlhbERlbGl2ZXJ5ID8gbGluZS5hbW91bnRTZWxlY3RlZCA6IGxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb0ludm9pY2U7XHJcbiAgICAgIHJldHVybiB0cmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRJbnRlcm5hbFBhcmFtZXRlckFsbG93UGFydGlhbEludm9pY2luZygpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEludGVybmFsUGFyYW1ldGVyKEludGVybmFsUGFyYW0uUGFydGlhbEludm9pY2luZylcclxuICAgICAgLnRoZW4oKHJlc3VsdCkgPT4gdGhpcy5pbnRlcm5hbFBhcmFtZXRlckFsbG93c1BhcnRpYWxJbnZvaWNpbmcgPSByZXN1bHQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZUhpc3RvcmljUmVxdWVzdChyZXF1ZXN0OiBFbWFpbEhpc3RvcmljSW52b2ljZVJlcXVlc3QgfCBQcmludEhpc3RvcmljSW52b2ljZVJlcXVlc3QgfCBQZGZIaXN0b3JpY0ludm9pY2VSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICByZXF1ZXN0LnJlcG9ydERhdGFJZCA9IHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5hY3RpdmVSZXBvcnQucmVwb3J0SWQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLWludm9pY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1pbnZvaWNlL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1pbnZvaWNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQXFCLFNBQVMsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUMsNkNBQTZDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUdySCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUMvRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUMvRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUUzRixPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSw0RUFBNEUsQ0FBQztBQUMzSCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDL0UsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sdUVBQXVFLENBQUM7QUFDeEgsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFDbEgsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFDNUcsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFDaEgsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFDaEgsT0FBTyxFQUFDLHdDQUF3QyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFD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QUM7WUFDcEosT0FBTywrQkFBK0IsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTywwQ0FBMEM7UUFDaEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQzthQUN6RSxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsR0FBRyxNQUFNLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRU8sdUJBQXVCLENBQUMsT0FBOEY7UUFDNUgsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUMzRSxDQUFDOzs7WUFsT0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQ0FBcUM7Z0JBQy9DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMENUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7cUNBR0UsU0FBUyxTQUFDLGlDQUFpQzt3QkFHM0MsV0FBVyxTQUFDLDJDQUEyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUXVpY2tBY2Nlc3NTZW5kTWV0aG9kQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLXNlbmQtbWV0aG9kLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0LWxheW91dC1zZWxlY3Rpb24tZW1haWwuYm8nO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvblByaW50fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1wcmludC5ibyc7XHJcbmltcG9ydCB7RW1haWxJbnZvaWNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2VtYWlsLWludm9pY2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7UHJpbnRJbnZvaWNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3ByaW50LWludm9pY2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7UGRmSW52b2ljZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wZGYtaW52b2ljZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1yZXBvcnRpbmctcmVxdWVzdC5ibyc7XHJcbmltcG9ydCB7SW50ZXJuYWxQYXJhbX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9pbnRlcm5hbC1wYXJhbS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlbmREb2N1bWVudHNDb21wb25lbnR9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uLXNlbmQtZG9jdW1lbnRzL3RyYW5zYWN0aW9uLXNlbmQtZG9jdW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LXBkZi1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1BkZkhpc3RvcmljSW52b2ljZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wZGYtaGlzdG9yaWMtaW52b2ljZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtFbWFpbEhpc3RvcmljSW52b2ljZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9lbWFpbC1oaXN0b3JpYy1pbnZvaWNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1ByaW50SGlzdG9yaWNJbnZvaWNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3ByaW50LWhpc3RvcmljLWludm9pY2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7UmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LXByaW50LXNpZ24tZG9jLWJhc2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7UmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LWVtYWlsLXNpZ24tZG9jLWJhc2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7Q29Eb2N1bWVudH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZG9jdW1lbnQnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7U2VuZE1ldGhvZFR5cGV9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vc2VuZC1tZXRob2QtdHlwZS5lbnVtJztcclxuaW1wb3J0IHtMYXlvdXRDb2RlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vbGF5b3V0LWNvZGUuZW51bVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLWludm9pY2VcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwicXVpY2stYWNjZXNzLWNvbnRlbnQtd3JhcHBlclwiICpuZ0lmPVwidHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uRGVmaW5pdGl2ZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC1hbGwtd3JhcHBlclwiIFtjbGFzcy5oaWRkZW5dPVwiIWhhc0xpbmVzVG9JbnZvaWNlIHx8ICF0cmFuc2FjdGlvbkluZm8uYWxsb3dQYXJ0aWFsRGVsaXZlcnlcIj5cclxuICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImFsbFNlbGVjdGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInU0VMRUNUX0FMTF9MSU5FUycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlU2VsZWN0QWxsTGluZXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgPjwvY28taW5wdXQtY2hlY2tib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxjby1xdWljay1zZW5kLWJ1dHRvbiAqbmdJZj1cImNhbkludm9pY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0TWV0aG9kSWNvbl09XCJkZWZhdWx0U2VuZE1ldGhvZEljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93TG9hZGVyXT1cInNob3dMb2FkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZW5kSWNvbkNsaWNrZWQpPVwiaGFuZGxlU2VuZERvY3VtZW50KGRlZmF1bHRTZW5kTWV0aG9kKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9wZW5TZW5kTWV0aG9kRGlhbG9nKT1cInNob3dTZW5kTWV0aG9kRGlhbG9nID0gdHJ1ZVwiXHJcbiAgICAgICAgICA+PC9jby1xdWljay1zZW5kLWJ1dHRvbj5cclxuICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50c1xyXG4gICAgICAgICAgICAgICAgICBbaGlzdG9yaWNSZXBvcnRzXT1cImhpc3RvcmljUmVwb3J0c1wiXHJcbiAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvblR5cGVDYXRlZ29yeV09XCJ0cmFuc2FjdGlvblR5cGVDYXRlZ29yeS5TYWxlc09yZGVySW52b2ljZVwiXHJcbiAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50cz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxjby1zZW5kLW1ldGhvZC1kaWFsb2cgKm5nSWY9XCJzaG93U2VuZE1ldGhvZERpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlYWRlclRpdGxlXT1cIidWZXJ6ZW5kbWV0aG9kZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmludGVyTGlzdF09XCJwcmludGVyTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRTZW5kTWV0aG9kXT1cImRlZmF1bHRTZW5kTWV0aG9kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmlzaWJsZU1ldGhvZHNdPVwiW3NlbmRNZXRob2RUeXBlLlByaW50LCBzZW5kTWV0aG9kVHlwZS5FbWFpbCwgc2VuZE1ldGhvZFR5cGUuUGRmXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VtYWlsQWRkcmVzc2VzXT1cImVtYWlsQWRkcmVzc2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1haWxMYXlvdXRzXT1cImVtYWlsTGF5b3V0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByaW50TGF5b3V0c109XCJwcmludExheW91dHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc0RvY1NpZ25FbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwZGZEb2NdPVwicGRmRG9jXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZVBkZlByZXZpZXddPVwiZGlzYWJsZVBkZlByZXZpZXdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVwb3J0aW5nRG9jdW1lbnRFbWFpbFJlcXVlc3QpXT1cInJlcG9ydERvY3VtZW50RW1haWxSZXF1ZXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlcG9ydGluZ0RvY3VtZW50UHJpbnRSZXF1ZXN0KV09XCJyZXBvcnREb2N1bWVudFByaW50UmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZXBvcnRpbmdEb2N1bWVudFBkZlJlcXVlc3QpXT1cInJlcG9ydERvY3VtZW50UGRmUmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwic2hvd1NlbmRNZXRob2REaWFsb2cgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9rQ2xpY2spPVwiaGFuZGxlU2VuZE1ldGhvZE9rQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNob3dGaWxlUHJldmlldyk9XCJvblNob3dGaWxlUHJldmlldygkZXZlbnQpXCJcclxuICAgICAgPjwvY28tc2VuZC1tZXRob2QtZGlhbG9nPlxyXG4gICAgICA8Y28tZGlnaXRhbC1zaWduYXR1cmVcclxuICAgICAgICAgICAgICBbZG9jdW1lbnRJZF09XCJzaWduYXR1cmVEb2N1bWVudElkXCJcclxuICAgICAgICAgICAgICAoZG9jdW1lbnRTdG9yZWQpPVwiY29tbWl0QW5kUmVmcmVzaFRyYW5zYWN0aW9uKClcIlxyXG4gICAgICA+PC9jby1kaWdpdGFsLXNpZ25hdHVyZT5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NJbnZvaWNlQ29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25RdWlja0FjY2Vzc1NlbmRNZXRob2RCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBAVmlld0NoaWxkKFRyYW5zYWN0aW9uU2VuZERvY3VtZW50c0NvbXBvbmVudClcclxuICBwdWJsaWMgc2VuZERvY3VtZW50c0NvbXBvbmVudDogVHJhbnNhY3Rpb25TZW5kRG9jdW1lbnRzQ29tcG9uZW50O1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1xdWljay1hY2Nlc3MtaW52b2ljZVwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdCA9IG5ldyBSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0KCk7XHJcbiAgcHVibGljIHJlcG9ydERvY3VtZW50UHJpbnRSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0ID0gbmV3IFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3QoKTtcclxuICBwdWJsaWMgcmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0ID0gbmV3IFJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3QoKTtcclxuXHJcbiAgcHVibGljIGNhbkludm9pY2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaW50ZXJuYWxQYXJhbWV0ZXJBbGxvd3NQYXJ0aWFsSW52b2ljaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGFsbFNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuYWxsTGluZXNTZWxlY3RlZEZvckludm9pY2Uuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnVwZGF0ZVF1YW50aXR5U2VsZWN0ZWRGb3JBbGxMaW5lcyh0aGlzLnRyYW5zYWN0aW9uSW5mbywgdGhpcy50cmFuc2FjdGlvbkxpbmVzLFxyXG4gICAgICAgICAgICB0aGlzLmRlbGl2ZXJ5Q29zdExpbmVzLCB0aGlzLmFsbFNlbGVjdGVkIHx8ICF0aGlzLnRyYW5zYWN0aW9uSW5mby5hbGxvd1BhcnRpYWxEZWxpdmVyeSk7XHJcbiAgICAgICAgfSlcclxuICAgIClcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmdldEhpc3RvcmljRG9jdW1lbnRzKCk7XHJcbiAgICB0aGlzLl9nZXRJbnRlcm5hbFBhcmFtZXRlckFsbG93UGFydGlhbEludm9pY2luZygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTZWxlY3RBbGxMaW5lcyh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5zZWxlY3RBbGxTYWxlc09yZGVyTGluZXNGb3JJbnZvaWNlLm5leHQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldERlZmF1bHRFbWFpbEFkZHJlc3NMaXN0KCk6IFByb21pc2U8c3RyaW5nW10+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXREZWZhdWx0RW1haWxBZGRyZXNzTGlzdEZvckludm9pY2UodGhpcy50cmFuc2FjdGlvbkluZm8udXVpZCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdFNlbmRNZXRob2QoKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoK1NlbmRNZXRob2RUeXBlLlByaW50KTsgLy8gTm90IHlldCBwcm92aWRlZCBieSBtaWRkbGUgdGllclxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldEVtYWlsTGF5b3V0cygpOiBQcm9taXNlPFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsW10+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRJbnZvaWNlRW1haWxMYXlvdXRzKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldFByaW50TGF5b3V0cygpOiBQcm9taXNlPFJlcG9ydExheW91dFNlbGVjdGlvblByaW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRJbnZvaWNlUHJpbnRMYXlvdXRzKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHBkZkRvY3VtZW50KHJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3QpIHtcclxuICAgIGlmICh0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuc2VsZWN0ZWQpIHtcclxuICAgICAgY29uc3QgcGRmSGlzdG9yaWNJbnZvaWNlUmVxdWVzdDogUGRmSGlzdG9yaWNJbnZvaWNlUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgUGRmSGlzdG9yaWNJbnZvaWNlUmVxdWVzdCgpLCByZXF1ZXN0KTtcclxuICAgICAgdGhpcy5fcHJlcGFyZUhpc3RvcmljUmVxdWVzdChwZGZIaXN0b3JpY0ludm9pY2VSZXF1ZXN0KTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UucGRmSGlzdG9yaWNJbnZvaWNlKHBkZkhpc3RvcmljSW52b2ljZVJlcXVlc3QpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBwZGZJbnZvaWNlUmVxdWVzdDogUGRmSW52b2ljZVJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IFBkZkludm9pY2VSZXF1ZXN0KCksIHJlcXVlc3QpO1xyXG4gICAgICBpZiAodGhpcy5fcHJlcGFyZVJlcXVlc3QocGRmSW52b2ljZVJlcXVlc3QpKSB7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UucGRmSW52b2ljZShwZGZJbnZvaWNlUmVxdWVzdCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBwcmludERvY3VtZW50KHJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3QpIHtcclxuICAgIGlmICh0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuc2VsZWN0ZWQpIHtcclxuICAgICAgY29uc3QgcHJpbnRIaXN0b3JpY0ludm9pY2VSZXF1ZXN0OiBQcmludEhpc3RvcmljSW52b2ljZVJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IFByaW50SGlzdG9yaWNJbnZvaWNlUmVxdWVzdCgpLCByZXF1ZXN0KTtcclxuICAgICAgdGhpcy5fcHJlcGFyZUhpc3RvcmljUmVxdWVzdChwcmludEhpc3RvcmljSW52b2ljZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5wcmludEhpc3RvcmljSW52b2ljZShwcmludEhpc3RvcmljSW52b2ljZVJlcXVlc3QpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBwcmludEludm9pY2VSZXF1ZXN0OiBQcmludEludm9pY2VSZXF1ZXN0ID1cclxuICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBQcmludEludm9pY2VSZXF1ZXN0KCksIHJlcXVlc3QpO1xyXG4gICAgICBpZiAodGhpcy5fcHJlcGFyZVJlcXVlc3QocHJpbnRJbnZvaWNlUmVxdWVzdCkpIHtcclxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5wcmludEludm9pY2UocHJpbnRJbnZvaWNlUmVxdWVzdCkudGhlbigocmVzdWx0OiBDb0RvY3VtZW50IHwgYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIENvRG9jdW1lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5zaWduYXR1cmVEb2N1bWVudElkID0gcmVzdWx0LmRvY3VtZW50SWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBlbWFpbERvY3VtZW50KHJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuc2VsZWN0ZWQpIHtcclxuICAgICAgY29uc3QgZW1haWxIaXN0b3JpY0ludm9pY2VSZXF1ZXN0OiBFbWFpbEhpc3RvcmljSW52b2ljZVJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IEVtYWlsSGlzdG9yaWNJbnZvaWNlUmVxdWVzdCgpLCByZXF1ZXN0KTtcclxuICAgICAgdGhpcy5fcHJlcGFyZUhpc3RvcmljUmVxdWVzdChlbWFpbEhpc3RvcmljSW52b2ljZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5lbWFpbEhpc3RvcmljSW52b2ljZShlbWFpbEhpc3RvcmljSW52b2ljZVJlcXVlc3QpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBlbWFpbEludm9pY2VSZXF1ZXN0OiBFbWFpbEludm9pY2VSZXF1ZXN0ID1cclxuICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBFbWFpbEludm9pY2VSZXF1ZXN0KCksIHJlcXVlc3QpO1xyXG4gICAgICBpZiAodGhpcy5fcHJlcGFyZVJlcXVlc3QoZW1haWxJbnZvaWNlUmVxdWVzdCkpIHtcclxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5lbWFpbEludm9pY2UoZW1haWxJbnZvaWNlUmVxdWVzdCkudGhlbigocmVzdWx0OiBDb0RvY3VtZW50IHwgYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIENvRG9jdW1lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5zaWduYXR1cmVEb2N1bWVudElkID0gcmVzdWx0LmRvY3VtZW50SWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblNldCgpIHtcclxuICAgIHN1cGVyLnRyYW5zYWN0aW9uU2V0KCk7XHJcbiAgICB0aGlzLmNhbkludm9pY2UgPSAhdGhpcy50cmFuc2FjdGlvbkluZm8uaGVhZGVySW5mb1N0YXR1cy5pc0Z1bGx5SW52b2ljZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgX3ByZXBhcmVSZXF1ZXN0KHJlcXVlc3Q6IEVtYWlsSW52b2ljZVJlcXVlc3QgfCBQcmludEludm9pY2VSZXF1ZXN0IHwgUGRmSW52b2ljZVJlcXVlc3QpOiBib29sZWFuIHtcclxuICAgIGxldCBzZWxlY3RlZExpbmVzOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10gPSB0aGlzLnRyYW5zYWN0aW9uTGluZXMuZmlsdGVyKChsaW5lKSA9PiBsaW5lLnNlbGVjdGVkICYmIGxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb0ludm9pY2UgIT09IDApO1xyXG4gICAgc2VsZWN0ZWRMaW5lcyA9IHNlbGVjdGVkTGluZXMuY29uY2F0KHRoaXMuZGVsaXZlcnlDb3N0TGluZXMpO1xyXG4gICAgaWYgKHNlbGVjdGVkTGluZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXF1ZXN0LnRyYW5zYWN0aW9uTGluZXMgPSB0aGlzLl9jcmVhdGVSZXF1ZXN0TGluZXMoc2VsZWN0ZWRMaW5lcyk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5zaG93RXJyb3IubmV4dCh7bWVzc2FnZTogJ05PX0lOVk9JQ0VfTElORVMnLCBsb2NhbGl6ZTogdHJ1ZX0pO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SGlzdG9yaWNEb2N1bWVudHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRIaXN0b3JpY0RvY3VtZW50cyh0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCwgTGF5b3V0Q29kZS5JbnZvaWNlKVxyXG4gICAgICAudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgdGhpcy5oaXN0b3JpY1JlcG9ydHMgPSByZXN1bHQ7XHJcbiAgICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlbmREb2N1bWVudChkZWZhdWx0U2VuZE1ldGhvZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmhhbmRsZVNlbmQoZGVmYXVsdFNlbmRNZXRob2QpLnRoZW4oKCkgPT4gdGhpcy5zZW5kRG9jdW1lbnRzQ29tcG9uZW50LmdldEhpc3RvcmljRG9jdW1lbnRzKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVNlbmRNZXRob2RPa0NsaWNrKG1ldGhvZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0gZmFsc2U7XHJcbiAgICBpZiAobWV0aG9kID09PSBTZW5kTWV0aG9kVHlwZS5QcmludCkge1xyXG4gICAgICB0aGlzLnByaW50RG9jdW1lbnQodGhpcy5yZXBvcnREb2N1bWVudFByaW50UmVxdWVzdCk7XHJcbiAgICB9IGVsc2UgaWYgKG1ldGhvZCA9PT0gU2VuZE1ldGhvZFR5cGUuRW1haWwpIHtcclxuICAgICAgdGhpcy5lbWFpbERvY3VtZW50KHRoaXMucmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3QpO1xyXG4gICAgfSBlbHNlIGlmIChtZXRob2QgPT09IFNlbmRNZXRob2RUeXBlLlBkZikge1xyXG4gICAgICB0aGlzLnBkZkRvY3VtZW50KHRoaXMucmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0KTtcclxuICAgIH1cclxuICAgIHRoaXMuX3NldERlZmF1bHRNZXRob2QobWV0aG9kKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZVJlcXVlc3RMaW5lcyhzZWxlY3RlZExpbmVzOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10pOiBUcmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0W10ge1xyXG4gICAgcmV0dXJuIHNlbGVjdGVkTGluZXMubWFwKChsaW5lKSA9PiB7XHJcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uTGluZVJlcG9ydGluZ1JlcXVlc3Q6IFRyYW5zYWN0aW9uTGluZVJlcG9ydGluZ1JlcXVlc3QgPSBuZXcgVHJhbnNhY3Rpb25MaW5lUmVwb3J0aW5nUmVxdWVzdCgpO1xyXG4gICAgICB0cmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0LmxpbmVOciA9IGxpbmUubGluZU5yO1xyXG4gICAgICB0cmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0LmFtb3VudCA9IHRoaXMudHJhbnNhY3Rpb25JbmZvLmFsbG93UGFydGlhbERlbGl2ZXJ5ID8gbGluZS5hbW91bnRTZWxlY3RlZCA6IGxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb0ludm9pY2U7XHJcbiAgICAgIHJldHVybiB0cmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRJbnRlcm5hbFBhcmFtZXRlckFsbG93UGFydGlhbEludm9pY2luZygpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEludGVybmFsUGFyYW1ldGVyKEludGVybmFsUGFyYW0uUGFydGlhbEludm9pY2luZylcclxuICAgICAgLnRoZW4oKHJlc3VsdCkgPT4gdGhpcy5pbnRlcm5hbFBhcmFtZXRlckFsbG93c1BhcnRpYWxJbnZvaWNpbmcgPSByZXN1bHQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZUhpc3RvcmljUmVxdWVzdChyZXF1ZXN0OiBFbWFpbEhpc3RvcmljSW52b2ljZVJlcXVlc3QgfCBQcmludEhpc3RvcmljSW52b2ljZVJlcXVlc3QgfCBQZGZIaXN0b3JpY0ludm9pY2VSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICByZXF1ZXN0LnJlcG9ydERhdGFJZCA9IHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5hY3RpdmVSZXBvcnQucmVwb3J0SWQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -15,6 +15,7 @@ import { ReportingDocumentPrintSignDocBaseRequest } from '@colijnit/mainapi/buil
15
15
  import { CoDocument } from '@colijnit/mainapi/build/model/co-document';
16
16
  import { SendMethodType } from "@colijnit/mainapi/build/enum/send-method-type.enum";
17
17
  import { TransactionLineType } from "@colijnit/transactionapi/build/enum/transaction-line-type.enum";
18
+ import { LayoutCode } from "@colijnit/transactionapi/build/enum/layout-code.enum";
18
19
  export class TransactionQuickAccessOrderDeliveryComponent extends TransactionQuickAccessSendMethodBaseComponent {
19
20
  constructor() {
20
21
  super(...arguments);
@@ -33,6 +34,7 @@ export class TransactionQuickAccessOrderDeliveryComponent extends TransactionQui
33
34
  this._subs.push(this.transactionEventService.allLinesSelectedForDelivery.subscribe(() => __awaiter(this, void 0, void 0, function* () {
34
35
  yield this.transactionService.updateQuantitySelectedForAllLines(this.transactionInfo, this.transactionLines, this.deliveryCostLines, this.allSelected || !this.transactionInfo.allowPartialDelivery);
35
36
  })));
37
+ this.getHistoricDocuments();
36
38
  super.ngOnInit();
37
39
  }
38
40
  ngAfterViewInit() {
@@ -132,8 +134,14 @@ export class TransactionQuickAccessOrderDeliveryComponent extends TransactionQui
132
134
  _prepareHistoricRequest(request) {
133
135
  request.reportDataId = this.sendDocumentsComponent.activeReport.reportId;
134
136
  }
135
- historicDocuments() {
136
- return this.sendDocumentsComponent && this.sendDocumentsComponent.historicReports.length > 0 && !!this.sendDocumentsComponent.activeReport;
137
+ getHistoricDocuments() {
138
+ this.transactionService.getHistoricDocuments(this.transactionInfo.id, LayoutCode.DeliveryNote)
139
+ .then((result) => {
140
+ if (result) {
141
+ this.historicReports = result;
142
+ this.detectChanges();
143
+ }
144
+ });
137
145
  }
138
146
  handleSendDocument(defaultSendMethod) {
139
147
  this.handleSend(defaultSendMethod).then(() => this.sendDocumentsComponent.getHistoricDocuments());
@@ -174,7 +182,7 @@ TransactionQuickAccessOrderDeliveryComponent.decorators = [
174
182
  (modelChange)="handleSelectAllLines($event)"
175
183
  ></co-input-checkbox>
176
184
  </div>
177
- <co-quick-send-button *ngIf="canDeliver || historicDocuments()"
185
+ <co-quick-send-button *ngIf="canDeliver"
178
186
  [defaultMethodIcon]="defaultSendMethodIcon"
179
187
  [showLoader]="showLoader"
180
188
  (sendIconClicked)="handleSendDocument(defaultSendMethod)"
@@ -218,4 +226,4 @@ TransactionQuickAccessOrderDeliveryComponent.propDecorators = {
218
226
  sendDocumentsComponent: [{ type: ViewChild, args: [TransactionSendDocumentsComponent,] }],
219
227
  showClass: [{ type: HostBinding, args: ["class.co-transaction-quick-access-order-delivery",] }]
220
228
  };
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLWRlbGl2ZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3JkZXItZGVsaXZlcnkvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLWRlbGl2ZXJ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsV0FBVyxFQUFxQixTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFDLDZDQUE2QyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFHckgsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFFdEcsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sNEVBQTRFLENBQUM7QUFDM0gsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sdUVBQXVFLENBQUM7QUFDeEgsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFDbEgsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sMkVBQTJFLENBQUM7QUFDM0gsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sMkVBQTJFLENBQUM7QUFDM0gsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDdkgsT0FBTyxFQUFDLHdDQUF3QyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFDdEksT0FBTyxFQUFDLHdDQUF3QyxF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LE1BQU0sK0JBQStCLEdBQW9DLElBQUksK0JBQStCLEVBQUUsQ0FBQztZQUMvRywrQkFBK0IsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNyRCwrQkFBK0IsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDO1lBQ3BKLE9BQU8sK0JBQStCLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUE3TkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0Q0FBNEM7Z0JBQ3RELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkNUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7cUNBR0UsU0FBUyxTQUFDLGlDQUFpQzt3QkFHM0MsV0FBVyxTQUFDLGtEQUFrRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUXVpY2tBY2Nlc3NTZW5kTWV0aG9kQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLXNlbmQtbWV0aG9kLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0LWxheW91dC1zZWxlY3Rpb24tcHJpbnQuYm8nO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1lbWFpbC5ibyc7XHJcbmltcG9ydCB7RW1haWxEZWxpdmVyeU5vdGVSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZW1haWwtZGVsaXZlcnktbm90ZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtQcmludERlbGl2ZXJ5Tm90ZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wcmludC1kZWxpdmVyeS1ub3RlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1BkZkRlbGl2ZXJ5Tm90ZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wZGYtZGVsaXZlcnktbm90ZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1yZXBvcnRpbmctcmVxdWVzdC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZW5kRG9jdW1lbnRzQ29tcG9uZW50fSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50cy90cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1wZGYtYmFzZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtFbWFpbEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2VtYWlsLWhpc3RvcmljLWRlbGl2ZXJ5LW5vdGUtcmVxdWVzdCc7XHJcbmltcG9ydCB7UHJpbnRIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wcmludC1oaXN0b3JpYy1kZWxpdmVyeS1ub3RlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1BkZkhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BkZi1oaXN0b3JpYy1kZWxpdmVyeS1ub3RlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1lbWFpbC1zaWduLWRvYy1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1wcmludC1zaWduLWRvYy1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvY3VtZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkRlbGl2ZXJ5Q29zdExpbmVJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tZGVsaXZlcnktY29zdC1saW5lLWluZm8uYm8nO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7U2VuZE1ldGhvZFR5cGV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3NlbmQtbWV0aG9kLXR5cGUuZW51bVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZVR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1saW5lLXR5cGUuZW51bVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLWRlbGl2ZXJ5XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJxdWljay1hY2Nlc3MtY29udGVudC13cmFwcGVyXCIgKm5nSWY9XCJ0cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25EZWZpbml0aXZlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtYWxsLXdyYXBwZXJcIiBbY2xhc3MuaGlkZGVuXT1cIiFoYXNMaW5lc1RvRGVsaXZlciB8fCAhdHJhbnNhY3Rpb25JbmZvLmFsbG93UGFydGlhbERlbGl2ZXJ5XCI+XHJcbiAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICBbKG1vZGVsKV09XCJhbGxTZWxlY3RlZFwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwiJ1NFTEVDVF9BTExfTElORVMnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZVNlbGVjdEFsbExpbmVzKCRldmVudClcIlxyXG4gICAgICAgID48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGNvLXF1aWNrLXNlbmQtYnV0dG9uICpuZ0lmPVwiY2FuRGVsaXZlciB8fCBoaXN0b3JpY0RvY3VtZW50cygpXCJcclxuICAgICAgICBbZGVmYXVsdE1ldGhvZEljb25dPVwiZGVmYXVsdFNlbmRNZXRob2RJY29uXCJcclxuICAgICAgICBbc2hvd0xvYWRlcl09XCJzaG93TG9hZGVyXCJcclxuICAgICAgICAoc2VuZEljb25DbGlja2VkKT1cImhhbmRsZVNlbmREb2N1bWVudChkZWZhdWx0U2VuZE1ldGhvZClcIlxyXG4gICAgICAgIChvcGVuU2VuZE1ldGhvZERpYWxvZyk9XCJzaG93U2VuZE1ldGhvZERpYWxvZyA9IHRydWVcIlxyXG4gICAgICA+PC9jby1xdWljay1zZW5kLWJ1dHRvbj5cclxuICAgICAgPGNvLXRyYW5zYWN0aW9uLXNlbmQtZG9jdW1lbnRzXHJcbiAgICAgICAgW2hpc3RvcmljUmVwb3J0c109XCJoaXN0b3JpY1JlcG9ydHNcIlxyXG4gICAgICAgIFt0cmFuc2FjdGlvblR5cGVDYXRlZ29yeV09XCJ0cmFuc2FjdGlvblR5cGVDYXRlZ29yeS5TYWxlc09yZGVyRGVsaXZlcnlOb3RlXCJcclxuICAgICAgPjwvY28tdHJhbnNhY3Rpb24tc2VuZC1kb2N1bWVudHM+XHJcbiAgICAgIDxjby11bmRvLWRlbGl2ZXJ5XHJcbiAgICAgICAgW3RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5XT1cInRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJEZWxpdmVyeU5vdGVcIlxyXG4gICAgICA+PC9jby11bmRvLWRlbGl2ZXJ5PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8Y28tc2VuZC1tZXRob2QtZGlhbG9nICpuZ0lmPVwic2hvd1NlbmRNZXRob2REaWFsb2dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyVGl0bGVdPVwiJ1ZlcnplbmRtZXRob2RlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmludGVyTGlzdF09XCJwcmludGVyTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0U2VuZE1ldGhvZF09XCJkZWZhdWx0U2VuZE1ldGhvZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2aXNpYmxlTWV0aG9kc109XCJbc2VuZE1ldGhvZFR5cGUuUHJpbnQsIHNlbmRNZXRob2RUeXBlLkVtYWlsLCBzZW5kTWV0aG9kVHlwZS5QZGZdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VtYWlsQWRkcmVzc2VzXT1cImVtYWlsQWRkcmVzc2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VtYWlsTGF5b3V0c109XCJlbWFpbExheW91dHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJpbnRMYXlvdXRzXT1cInByaW50TGF5b3V0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc0RvY1NpZ25FbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGRmRG9jXT1cInBkZkRvY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlUGRmUHJldmlld109XCJkaXNhYmxlUGRmUHJldmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVwb3J0aW5nRG9jdW1lbnRFbWFpbFJlcXVlc3QpXT1cInJlcG9ydERvY3VtZW50RW1haWxSZXF1ZXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZXBvcnRpbmdEb2N1bWVudFByaW50UmVxdWVzdCldPVwicmVwb3J0RG9jdW1lbnRQcmludFJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlcG9ydGluZ0RvY3VtZW50UGRmUmVxdWVzdCldPVwicmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwic2hvd1NlbmRNZXRob2REaWFsb2cgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChva0NsaWNrKT1cImhhbmRsZVNlbmRNZXRob2RPa0NsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoc2hvd0ZpbGVQcmV2aWV3KT1cIm9uU2hvd0ZpbGVQcmV2aWV3KCRldmVudClcIlxyXG4gICAgPjwvY28tc2VuZC1tZXRob2QtZGlhbG9nPlxyXG4gICAgPGNvLWRpZ2l0YWwtc2lnbmF0dXJlXHJcbiAgICAgIFtkb2N1bWVudElkXT1cInNpZ25hdHVyZURvY3VtZW50SWRcIlxyXG4gICAgICAoZG9jdW1lbnRTdG9yZWQpPVwiY29tbWl0QW5kUmVmcmVzaFRyYW5zYWN0aW9uKClcIlxyXG4gICAgPjwvY28tZGlnaXRhbC1zaWduYXR1cmU+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblF1aWNrQWNjZXNzT3JkZXJEZWxpdmVyeUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NTZW5kTWV0aG9kQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQFZpZXdDaGlsZChUcmFuc2FjdGlvblNlbmREb2N1bWVudHNDb21wb25lbnQpXHJcbiAgcHVibGljIHNlbmREb2N1bWVudHNDb21wb25lbnQ6IFRyYW5zYWN0aW9uU2VuZERvY3VtZW50c0NvbXBvbmVudDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLWRlbGl2ZXJ5XCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlcG9ydERvY3VtZW50RW1haWxSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0ID0gbmV3IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QoKTtcclxuICBwdWJsaWMgcmVwb3J0RG9jdW1lbnRQcmludFJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3QgPSBuZXcgUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdCgpO1xyXG4gIHB1YmxpYyByZXBvcnREb2N1bWVudFBkZlJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3QgPSBuZXcgUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCgpO1xyXG5cclxuICBwdWJsaWMgYWxsb3dEZWxpdmVyeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjYW5EZWxpdmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGFsbFNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuYWxsTGluZXNTZWxlY3RlZEZvckRlbGl2ZXJ5LnN1YnNjcmliZShhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS51cGRhdGVRdWFudGl0eVNlbGVjdGVkRm9yQWxsTGluZXModGhpcy50cmFuc2FjdGlvbkluZm8sIHRoaXMudHJhbnNhY3Rpb25MaW5lcyxcclxuICAgICAgICAgICAgdGhpcy5kZWxpdmVyeUNvc3RMaW5lcyx0aGlzLmFsbFNlbGVjdGVkIHx8ICF0aGlzLnRyYW5zYWN0aW9uSW5mby5hbGxvd1BhcnRpYWxEZWxpdmVyeSk7XHJcbiAgICAgICAgfSlcclxuICAgIClcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5hbGxvd0RlbGl2ZXJ5ID0gdGhpcy50cmFuc2FjdGlvbkluZm8uYWxsb3dQYXJ0aWFsRGVsaXZlcnk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlbGVjdEFsbExpbmVzKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnNlbGVjdEFsbFNhbGVzT3JkZXJMaW5lc0ZvckRlbGl2ZXJ5Lm5leHQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldERlZmF1bHRFbWFpbEFkZHJlc3NMaXN0KCk6IFByb21pc2U8c3RyaW5nW10+IHtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pOyAvLyBOb3QgeWV0IHByb3ZpZGVkIGJ5IG1pZGRsZSB0aWVyXHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdFNlbmRNZXRob2QoKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXREZWxpdmVyeU5vdGVEZWZhdWx0U2VuZE1ldGhvZCh0aGlzLnRyYW5zYWN0aW9uSW5mby5yZWxhdGlvbi5yZWxhdGlvbklkKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRFbWFpbExheW91dHMoKTogUHJvbWlzZTxSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0RGVsaXZlcnlOb3RlRW1haWxMYXlvdXRzKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldFByaW50TGF5b3V0cygpOiBQcm9taXNlPFJlcG9ydExheW91dFNlbGVjdGlvblByaW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXREZWxpdmVyeU5vdGVQcmludExheW91dHModGhpcy50cmFuc2FjdGlvbkluZm8udXVpZCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcGRmRG9jdW1lbnQocmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCkge1xyXG4gICAgaWYgKHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5zZWxlY3RlZCkge1xyXG4gICAgICBjb25zdCBwZGZIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3Q6IFBkZkhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgUGRmSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0KCksIHJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlSGlzdG9yaWNSZXF1ZXN0KHBkZkhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnBkZkhpc3RvcmljRGVsaXZlcnlOb3RlKHBkZkhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHBkZkRlbGl2ZXJ5Tm90ZVJlcXVlc3Q6IFBkZkRlbGl2ZXJ5Tm90ZVJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IFBkZkRlbGl2ZXJ5Tm90ZVJlcXVlc3QoKSwgcmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVSZXF1ZXN0KHBkZkRlbGl2ZXJ5Tm90ZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5wZGZEZWxpdmVyeU5vdGUocGRmRGVsaXZlcnlOb3RlUmVxdWVzdCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBwcmludERvY3VtZW50KHJlcG9ydGluZ0RvY3VtZW50UHJpbnRCYXNlUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdCkge1xyXG4gICAgaWYgKHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5zZWxlY3RlZCkge1xyXG4gICAgICBjb25zdCBwcmludEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdDogUHJpbnRIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IFByaW50SGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0KCksIHJlcG9ydGluZ0RvY3VtZW50UHJpbnRCYXNlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVIaXN0b3JpY1JlcXVlc3QocHJpbnRIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5wcmludEhpc3RvcmljRGVsaXZlcnlOb3RlKHByaW50SGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0KS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcHJpbnREZWxpdmVyeU5vdGVSZXF1ZXN0OiBQcmludERlbGl2ZXJ5Tm90ZVJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IFByaW50RGVsaXZlcnlOb3RlUmVxdWVzdCgpLCByZXBvcnRpbmdEb2N1bWVudFByaW50QmFzZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlUmVxdWVzdChwcmludERlbGl2ZXJ5Tm90ZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5wcmludERlbGl2ZXJ5Tm90ZShwcmludERlbGl2ZXJ5Tm90ZVJlcXVlc3QpLnRoZW4oKHJlc3VsdDogQ29Eb2N1bWVudCB8IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgQ29Eb2N1bWVudCkge1xyXG4gICAgICAgICAgdGhpcy5zaWduYXR1cmVEb2N1bWVudElkID0gcmVzdWx0LmRvY3VtZW50SWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZW1haWxEb2N1bWVudChyZXBvcnRpbmdEb2N1bWVudEVtYWlsQmFzZVJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuc2VsZWN0ZWQpIHtcclxuICAgICAgY29uc3QgZW1haWxIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3Q6IEVtYWlsSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0ID1cclxuICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBFbWFpbEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCgpLCByZXBvcnRpbmdEb2N1bWVudEVtYWlsQmFzZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlSGlzdG9yaWNSZXF1ZXN0KGVtYWlsSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0KTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZW1haWxIaXN0b3JpY0RlbGl2ZXJ5Tm90ZShlbWFpbEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGVtYWlsRGVsaXZlcnlOb3RlUmVxdWVzdDogRW1haWxEZWxpdmVyeU5vdGVSZXF1ZXN0ID1cclxuICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBFbWFpbERlbGl2ZXJ5Tm90ZVJlcXVlc3QoKSwgcmVwb3J0aW5nRG9jdW1lbnRFbWFpbEJhc2VSZXF1ZXN0KTtcclxuICAgICAgdGhpcy5fcHJlcGFyZVJlcXVlc3QoZW1haWxEZWxpdmVyeU5vdGVSZXF1ZXN0KTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZW1haWxEZWxpdmVyeU5vdGUoZW1haWxEZWxpdmVyeU5vdGVSZXF1ZXN0KS50aGVuKChyZXN1bHQ6IENvRG9jdW1lbnQgfCBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIENvRG9jdW1lbnQpIHtcclxuICAgICAgICAgIHRoaXMuc2lnbmF0dXJlRG9jdW1lbnRJZCA9IHJlc3VsdC5kb2N1bWVudElkO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uU2V0KCkge1xyXG4gICAgc3VwZXIudHJhbnNhY3Rpb25TZXQoKTtcclxuICAgIHRoaXMuY2FuRGVsaXZlciA9ICF0aGlzLnRyYW5zYWN0aW9uSW5mby5oZWFkZXJJbmZvU3RhdHVzLmlzRnVsbHlEZWxpdmVyZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgX3ByZXBhcmVSZXF1ZXN0KHJlcXVlc3Q6IEVtYWlsRGVsaXZlcnlOb3RlUmVxdWVzdCB8IFByaW50RGVsaXZlcnlOb3RlUmVxdWVzdCB8IFBkZkRlbGl2ZXJ5Tm90ZVJlcXVlc3QpOiB2b2lkIHtcclxuICAgIGxldCBzZWxlY3RlZExpbmVzOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10gPSB0aGlzLnRyYW5zYWN0aW9uTGluZXMuZmlsdGVyKChsaW5lKSA9PiB7XHJcbiAgICAgIHJldHVybiAobGluZS5saW5lVHlwZSAhPT0gVHJhbnNhY3Rpb25MaW5lVHlwZS5UZXh0TGluZSAmJiAoIXRoaXMudHJhbnNhY3Rpb25JbmZvLmFsbG93UGFydGlhbERlbGl2ZXJ5ID8gdHJ1ZSA6IGxpbmUuc2VsZWN0ZWQgJiYgbGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVRvRGVsaXZlciAhPT0gMCkpXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5kZWxpdmVyeUNvc3RMaW5lcykge1xyXG4gICAgICBjb25zdCBkZWxpdmVyeUNvc3RMaW5lczogVHJhbnNhY3Rpb25EZWxpdmVyeUNvc3RMaW5lSW5mb1tdID0gdGhpcy5kZWxpdmVyeUNvc3RMaW5lcy5maWx0ZXIoKGxpbmUpID0+IHtcclxuICAgICAgICByZXR1cm4gIXRoaXMudHJhbnNhY3Rpb25JbmZvLmFsbG93UGFydGlhbERlbGl2ZXJ5ID8gdHJ1ZSA6IGxpbmUuc2VsZWN0ZWQgJiYgbGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVRvRGVsaXZlciA+IDBcclxuICAgICAgfSk7XHJcbiAgICAgIHNlbGVjdGVkTGluZXMucHVzaCguLi5kZWxpdmVyeUNvc3RMaW5lcyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNlbGVjdGVkTGluZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXF1ZXN0LnRyYW5zYWN0aW9uTGluZXMgPSB0aGlzLl9jcmVhdGVSZXF1ZXN0TGluZXMoc2VsZWN0ZWRMaW5lcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgX3ByZXBhcmVIaXN0b3JpY1JlcXVlc3QocmVxdWVzdDogRW1haWxIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QgfCBQcmludEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCB8IFBkZkhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCk6IHZvaWQge1xyXG4gICAgcmVxdWVzdC5yZXBvcnREYXRhSWQgPSB0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuYWN0aXZlUmVwb3J0LnJlcG9ydElkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhpc3RvcmljRG9jdW1lbnRzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudCAmJiB0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuaGlzdG9yaWNSZXBvcnRzLmxlbmd0aCA+IDAgJiYgISF0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuYWN0aXZlUmVwb3J0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlbmREb2N1bWVudChkZWZhdWx0U2VuZE1ldGhvZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmhhbmRsZVNlbmQoZGVmYXVsdFNlbmRNZXRob2QpLnRoZW4oKCkgPT4gdGhpcy5zZW5kRG9jdW1lbnRzQ29tcG9uZW50LmdldEhpc3RvcmljRG9jdW1lbnRzKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVNlbmRNZXRob2RPa0NsaWNrKG1ldGhvZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0gZmFsc2U7XHJcbiAgICBpZiAobWV0aG9kID09PSBTZW5kTWV0aG9kVHlwZS5QcmludCkge1xyXG4gICAgICB0aGlzLnByaW50RG9jdW1lbnQodGhpcy5yZXBvcnREb2N1bWVudFByaW50UmVxdWVzdCk7XHJcbiAgICB9IGVsc2UgaWYgKG1ldGhvZCA9PT0gU2VuZE1ldGhvZFR5cGUuRW1haWwpIHtcclxuICAgICAgdGhpcy5lbWFpbERvY3VtZW50KHRoaXMucmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3QpO1xyXG4gICAgfSBlbHNlIGlmIChtZXRob2QgPT09IFNlbmRNZXRob2RUeXBlLlBkZikge1xyXG4gICAgICB0aGlzLnBkZkRvY3VtZW50KHRoaXMucmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0KTtcclxuICAgIH1cclxuICAgIHRoaXMuX3NldERlZmF1bHRNZXRob2QobWV0aG9kKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY3JlYXRlUmVxdWVzdExpbmVzKHNlbGVjdGVkTGluZXM6IFRyYW5zYWN0aW9uTGluZUluZm9bXSk6IFRyYW5zYWN0aW9uTGluZVJlcG9ydGluZ1JlcXVlc3RbXSB7XHJcbiAgICByZXR1cm4gc2VsZWN0ZWRMaW5lcy5tYXAoKGxpbmUpID0+IHtcclxuICAgICAgY29uc3QgdHJhbnNhY3Rpb25MaW5lUmVwb3J0aW5nUmVxdWVzdDogVHJhbnNhY3Rpb25MaW5lUmVwb3J0aW5nUmVxdWVzdCA9IG5ldyBUcmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0KCk7XHJcbiAgICAgIHRyYW5zYWN0aW9uTGluZVJlcG9ydGluZ1JlcXVlc3QubGluZU5yID0gbGluZS5saW5lTnI7XHJcbiAgICAgIHRyYW5zYWN0aW9uTGluZVJlcG9ydGluZ1JlcXVlc3QuYW1vdW50ID0gdGhpcy50cmFuc2FjdGlvbkluZm8uYWxsb3dQYXJ0aWFsRGVsaXZlcnkgPyBsaW5lLmFtb3VudFNlbGVjdGVkIDogbGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVRvRGVsaXZlcjtcclxuICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uTGluZVJlcG9ydGluZ1JlcXVlc3Q7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLWRlbGl2ZXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3JkZXItZGVsaXZlcnkvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLWRlbGl2ZXJ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsV0FBVyxFQUFxQixTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFDLDZDQUE2QyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFHckgsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sa0VBQWtFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFFdEcsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sNEVBQTRFLENBQUM7QUFDM0gsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sdUVBQXVFLENBQUM7QUFDeEgsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFDbEgsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sMkVBQTJFLENBQUM7QUFDM0gsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sMkVBQTJFLENBQUM7QUFDM0gsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDdkgsT0FBTyxFQUFDLHdDQUF3QyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFDdEksT0FBTyxFQUFDLHdDQUF3QyxF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QUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7YUFDakQ7WUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsQ0FBQztLQUFBO0lBQ08sbUJBQW1CLENBQUMsYUFBb0M7UUFDOUQsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDaEMsTUFBTSwrQkFBK0IsR0FBb0MsSUFBSSwrQkFBK0IsRUFBRSxDQUFDO1lBQy9HLCtCQUErQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3JELCtCQUErQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUM7WUFDcEosT0FBTywrQkFBK0IsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQXBPRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDRDQUE0QztnQkFDdEQsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Q1Q7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztxQ0FHRSxTQUFTLFNBQUMsaUNBQWlDO3dCQUczQyxXQUFXLFNBQUMsa0RBQWtEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25RdWlja0FjY2Vzc1NlbmRNZXRob2RCYXNlQ29tcG9uZW50fSBmcm9tICcuLi90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtc2VuZC1tZXRob2QtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvblByaW50fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1wcmludC5ibyc7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWx9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLWVtYWlsLmJvJztcclxuaW1wb3J0IHtFbWFpbERlbGl2ZXJ5Tm90ZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9lbWFpbC1kZWxpdmVyeS1ub3RlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1ByaW50RGVsaXZlcnlOb3RlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3ByaW50LWRlbGl2ZXJ5LW5vdGUtcmVxdWVzdCc7XHJcbmltcG9ydCB7UGRmRGVsaXZlcnlOb3RlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BkZi1kZWxpdmVyeS1ub3RlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZVJlcG9ydGluZ1JlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLXJlcG9ydGluZy1yZXF1ZXN0LmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlbmREb2N1bWVudHNDb21wb25lbnR9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uLXNlbmQtZG9jdW1lbnRzL3RyYW5zYWN0aW9uLXNlbmQtZG9jdW1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LXBkZi1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge0VtYWlsSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZW1haWwtaGlzdG9yaWMtZGVsaXZlcnktbm90ZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtQcmludEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3ByaW50LWhpc3RvcmljLWRlbGl2ZXJ5LW5vdGUtcmVxdWVzdCc7XHJcbmltcG9ydCB7UGRmSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGRmLWhpc3RvcmljLWRlbGl2ZXJ5LW5vdGUtcmVxdWVzdCc7XHJcbmltcG9ydCB7UmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LWVtYWlsLXNpZ24tZG9jLWJhc2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7UmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LXByaW50LXNpZ24tZG9jLWJhc2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7Q29Eb2N1bWVudH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZG9jdW1lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRGVsaXZlcnlDb3N0TGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1kZWxpdmVyeS1jb3N0LWxpbmUtaW5mby5ibyc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtTZW5kTWV0aG9kVHlwZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vc2VuZC1tZXRob2QtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lVHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWxpbmUtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7TGF5b3V0Q29kZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL2xheW91dC1jb2RlLmVudW1cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1vcmRlci1kZWxpdmVyeVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwicXVpY2stYWNjZXNzLWNvbnRlbnQtd3JhcHBlclwiICpuZ0lmPVwidHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uRGVmaW5pdGl2ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LWFsbC13cmFwcGVyXCIgW2NsYXNzLmhpZGRlbl09XCIhaGFzTGluZXNUb0RlbGl2ZXIgfHwgIXRyYW5zYWN0aW9uSW5mby5hbGxvd1BhcnRpYWxEZWxpdmVyeVwiPlxyXG4gICAgICAgIDxjby1pbnB1dC1jaGVja2JveFxyXG4gICAgICAgICAgWyhtb2RlbCldPVwiYWxsU2VsZWN0ZWRcIlxyXG4gICAgICAgICAgW2xhYmVsXT1cIidTRUxFQ1RfQUxMX0xJTkVTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVTZWxlY3RBbGxMaW5lcygkZXZlbnQpXCJcclxuICAgICAgICA+PC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxjby1xdWljay1zZW5kLWJ1dHRvbiAqbmdJZj1cImNhbkRlbGl2ZXJcIlxyXG4gICAgICAgIFtkZWZhdWx0TWV0aG9kSWNvbl09XCJkZWZhdWx0U2VuZE1ldGhvZEljb25cIlxyXG4gICAgICAgIFtzaG93TG9hZGVyXT1cInNob3dMb2FkZXJcIlxyXG4gICAgICAgIChzZW5kSWNvbkNsaWNrZWQpPVwiaGFuZGxlU2VuZERvY3VtZW50KGRlZmF1bHRTZW5kTWV0aG9kKVwiXHJcbiAgICAgICAgKG9wZW5TZW5kTWV0aG9kRGlhbG9nKT1cInNob3dTZW5kTWV0aG9kRGlhbG9nID0gdHJ1ZVwiXHJcbiAgICAgID48L2NvLXF1aWNrLXNlbmQtYnV0dG9uPlxyXG4gICAgICA8Y28tdHJhbnNhY3Rpb24tc2VuZC1kb2N1bWVudHNcclxuICAgICAgICBbaGlzdG9yaWNSZXBvcnRzXT1cImhpc3RvcmljUmVwb3J0c1wiXHJcbiAgICAgICAgW3RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5XT1cInRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJEZWxpdmVyeU5vdGVcIlxyXG4gICAgICA+PC9jby10cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50cz5cclxuICAgICAgPGNvLXVuZG8tZGVsaXZlcnlcclxuICAgICAgICBbdHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnldPVwidHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlckRlbGl2ZXJ5Tm90ZVwiXHJcbiAgICAgID48L2NvLXVuZG8tZGVsaXZlcnk+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxjby1zZW5kLW1ldGhvZC1kaWFsb2cgKm5nSWY9XCJzaG93U2VuZE1ldGhvZERpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJUaXRsZV09XCInVmVyemVuZG1ldGhvZGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByaW50ZXJMaXN0XT1cInByaW50ZXJMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRTZW5kTWV0aG9kXT1cImRlZmF1bHRTZW5kTWV0aG9kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Zpc2libGVNZXRob2RzXT1cIltzZW5kTWV0aG9kVHlwZS5QcmludCwgc2VuZE1ldGhvZFR5cGUuRW1haWwsIHNlbmRNZXRob2RUeXBlLlBkZl1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1haWxBZGRyZXNzZXNdPVwiZW1haWxBZGRyZXNzZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1haWxMYXlvdXRzXT1cImVtYWlsTGF5b3V0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmludExheW91dHNdPVwicHJpbnRMYXlvdXRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzRG9jU2lnbkVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwZGZEb2NdPVwicGRmRG9jXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVQZGZQcmV2aWV3XT1cImRpc2FibGVQZGZQcmV2aWV3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZXBvcnRpbmdEb2N1bWVudEVtYWlsUmVxdWVzdCldPVwicmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlcG9ydGluZ0RvY3VtZW50UHJpbnRSZXF1ZXN0KV09XCJyZXBvcnREb2N1bWVudFByaW50UmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVwb3J0aW5nRG9jdW1lbnRQZGZSZXF1ZXN0KV09XCJyZXBvcnREb2N1bWVudFBkZlJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJzaG93U2VuZE1ldGhvZERpYWxvZyA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9rQ2xpY2spPVwiaGFuZGxlU2VuZE1ldGhvZE9rQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaG93RmlsZVByZXZpZXcpPVwib25TaG93RmlsZVByZXZpZXcoJGV2ZW50KVwiXHJcbiAgICA+PC9jby1zZW5kLW1ldGhvZC1kaWFsb2c+XHJcbiAgICA8Y28tZGlnaXRhbC1zaWduYXR1cmVcclxuICAgICAgW2RvY3VtZW50SWRdPVwic2lnbmF0dXJlRG9jdW1lbnRJZFwiXHJcbiAgICAgIChkb2N1bWVudFN0b3JlZCk9XCJjb21taXRBbmRSZWZyZXNoVHJhbnNhY3Rpb24oKVwiXHJcbiAgICA+PC9jby1kaWdpdGFsLXNpZ25hdHVyZT5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NPcmRlckRlbGl2ZXJ5Q29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25RdWlja0FjY2Vzc1NlbmRNZXRob2RCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBAVmlld0NoaWxkKFRyYW5zYWN0aW9uU2VuZERvY3VtZW50c0NvbXBvbmVudClcclxuICBwdWJsaWMgc2VuZERvY3VtZW50c0NvbXBvbmVudDogVHJhbnNhY3Rpb25TZW5kRG9jdW1lbnRzQ29tcG9uZW50O1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3JkZXItZGVsaXZlcnlcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QgPSBuZXcgUmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdCgpO1xyXG4gIHB1YmxpYyByZXBvcnREb2N1bWVudFByaW50UmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdCA9IG5ldyBSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0KCk7XHJcbiAgcHVibGljIHJlcG9ydERvY3VtZW50UGRmUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCA9IG5ldyBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KCk7XHJcblxyXG4gIHB1YmxpYyBhbGxvd0RlbGl2ZXJ5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGNhbkRlbGl2ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYWxsU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5hbGxMaW5lc1NlbGVjdGVkRm9yRGVsaXZlcnkuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnVwZGF0ZVF1YW50aXR5U2VsZWN0ZWRGb3JBbGxMaW5lcyh0aGlzLnRyYW5zYWN0aW9uSW5mbywgdGhpcy50cmFuc2FjdGlvbkxpbmVzLFxyXG4gICAgICAgICAgICB0aGlzLmRlbGl2ZXJ5Q29zdExpbmVzLHRoaXMuYWxsU2VsZWN0ZWQgfHwgIXRoaXMudHJhbnNhY3Rpb25JbmZvLmFsbG93UGFydGlhbERlbGl2ZXJ5KTtcclxuICAgICAgICB9KVxyXG4gICAgKVxyXG4gICAgdGhpcy5nZXRIaXN0b3JpY0RvY3VtZW50cygpO1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmFsbG93RGVsaXZlcnkgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby5hbGxvd1BhcnRpYWxEZWxpdmVyeTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2VsZWN0QWxsTGluZXModmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uuc2VsZWN0QWxsU2FsZXNPcmRlckxpbmVzRm9yRGVsaXZlcnkubmV4dCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdEVtYWlsQWRkcmVzc0xpc3QoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7IC8vIE5vdCB5ZXQgcHJvdmlkZWQgYnkgbWlkZGxlIHRpZXJcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0U2VuZE1ldGhvZCgpOiBQcm9taXNlPG51bWJlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldERlbGl2ZXJ5Tm90ZURlZmF1bHRTZW5kTWV0aG9kKHRoaXMudHJhbnNhY3Rpb25JbmZvLnJlbGF0aW9uLnJlbGF0aW9uSWQpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldEVtYWlsTGF5b3V0cygpOiBQcm9taXNlPFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsW10+IHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXREZWxpdmVyeU5vdGVFbWFpbExheW91dHModGhpcy50cmFuc2FjdGlvbkluZm8udXVpZCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0UHJpbnRMYXlvdXRzKCk6IFByb21pc2U8UmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnRbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldERlbGl2ZXJ5Tm90ZVByaW50TGF5b3V0cyh0aGlzLnRyYW5zYWN0aW9uSW5mby51dWlkKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBwZGZEb2N1bWVudChyZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KSB7XHJcbiAgICBpZiAodGhpcy5zZW5kRG9jdW1lbnRzQ29tcG9uZW50LnNlbGVjdGVkKSB7XHJcbiAgICAgIGNvbnN0IHBkZkhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdDogUGRmSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0ID1cclxuICAgICAgICBPYmplY3QuYXNzaWduKG5ldyBQZGZIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QoKSwgcmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVIaXN0b3JpY1JlcXVlc3QocGRmSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0KTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UucGRmSGlzdG9yaWNEZWxpdmVyeU5vdGUocGRmSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0KS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcGRmRGVsaXZlcnlOb3RlUmVxdWVzdDogUGRmRGVsaXZlcnlOb3RlUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgUGRmRGVsaXZlcnlOb3RlUmVxdWVzdCgpLCByZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KTtcclxuICAgICAgdGhpcy5fcHJlcGFyZVJlcXVlc3QocGRmRGVsaXZlcnlOb3RlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnBkZkRlbGl2ZXJ5Tm90ZShwZGZEZWxpdmVyeU5vdGVSZXF1ZXN0KS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHByaW50RG9jdW1lbnQocmVwb3J0aW5nRG9jdW1lbnRQcmludEJhc2VSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0KSB7XHJcbiAgICBpZiAodGhpcy5zZW5kRG9jdW1lbnRzQ29tcG9uZW50LnNlbGVjdGVkKSB7XHJcbiAgICAgIGNvbnN0IHByaW50SGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0OiBQcmludEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgUHJpbnRIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QoKSwgcmVwb3J0aW5nRG9jdW1lbnRQcmludEJhc2VSZXF1ZXN0KTtcclxuICAgICAgdGhpcy5fcHJlcGFyZUhpc3RvcmljUmVxdWVzdChwcmludEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnByaW50SGlzdG9yaWNEZWxpdmVyeU5vdGUocHJpbnRIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBwcmludERlbGl2ZXJ5Tm90ZVJlcXVlc3Q6IFByaW50RGVsaXZlcnlOb3RlUmVxdWVzdCA9XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXcgUHJpbnREZWxpdmVyeU5vdGVSZXF1ZXN0KCksIHJlcG9ydGluZ0RvY3VtZW50UHJpbnRCYXNlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVSZXF1ZXN0KHByaW50RGVsaXZlcnlOb3RlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnByaW50RGVsaXZlcnlOb3RlKHByaW50RGVsaXZlcnlOb3RlUmVxdWVzdCkudGhlbigocmVzdWx0OiBDb0RvY3VtZW50IHwgYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBDb0RvY3VtZW50KSB7XHJcbiAgICAgICAgICB0aGlzLnNpZ25hdHVyZURvY3VtZW50SWQgPSByZXN1bHQuZG9jdW1lbnRJZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBlbWFpbERvY3VtZW50KHJlcG9ydGluZ0RvY3VtZW50RW1haWxCYXNlUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5zZWxlY3RlZCkge1xyXG4gICAgICBjb25zdCBlbWFpbEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdDogRW1haWxIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IEVtYWlsSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0KCksIHJlcG9ydGluZ0RvY3VtZW50RW1haWxCYXNlUmVxdWVzdCk7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVIaXN0b3JpY1JlcXVlc3QoZW1haWxIaXN0b3JpY0RlbGl2ZXJ5Tm90ZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5lbWFpbEhpc3RvcmljRGVsaXZlcnlOb3RlKGVtYWlsSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0KS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoVHJhbnNhY3Rpb25zKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZW1haWxEZWxpdmVyeU5vdGVSZXF1ZXN0OiBFbWFpbERlbGl2ZXJ5Tm90ZVJlcXVlc3QgPVxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24obmV3IEVtYWlsRGVsaXZlcnlOb3RlUmVxdWVzdCgpLCByZXBvcnRpbmdEb2N1bWVudEVtYWlsQmFzZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlUmVxdWVzdChlbWFpbERlbGl2ZXJ5Tm90ZVJlcXVlc3QpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5lbWFpbERlbGl2ZXJ5Tm90ZShlbWFpbERlbGl2ZXJ5Tm90ZVJlcXVlc3QpLnRoZW4oKHJlc3VsdDogQ29Eb2N1bWVudCB8IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgQ29Eb2N1bWVudCkge1xyXG4gICAgICAgICAgdGhpcy5zaWduYXR1cmVEb2N1bWVudElkID0gcmVzdWx0LmRvY3VtZW50SWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hUcmFuc2FjdGlvbnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhbnNhY3Rpb25TZXQoKSB7XHJcbiAgICBzdXBlci50cmFuc2FjdGlvblNldCgpO1xyXG4gICAgdGhpcy5jYW5EZWxpdmVyID0gIXRoaXMudHJhbnNhY3Rpb25JbmZvLmhlYWRlckluZm9TdGF0dXMuaXNGdWxseURlbGl2ZXJlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBfcHJlcGFyZVJlcXVlc3QocmVxdWVzdDogRW1haWxEZWxpdmVyeU5vdGVSZXF1ZXN0IHwgUHJpbnREZWxpdmVyeU5vdGVSZXF1ZXN0IHwgUGRmRGVsaXZlcnlOb3RlUmVxdWVzdCk6IHZvaWQge1xyXG4gICAgbGV0IHNlbGVjdGVkTGluZXM6IFRyYW5zYWN0aW9uTGluZUluZm9bXSA9IHRoaXMudHJhbnNhY3Rpb25MaW5lcy5maWx0ZXIoKGxpbmUpID0+IHtcclxuICAgICAgcmV0dXJuIChsaW5lLmxpbmVUeXBlICE9PSBUcmFuc2FjdGlvbkxpbmVUeXBlLlRleHRMaW5lICYmICghdGhpcy50cmFuc2FjdGlvbkluZm8uYWxsb3dQYXJ0aWFsRGVsaXZlcnkgPyB0cnVlIDogbGluZS5zZWxlY3RlZCAmJiBsaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9EZWxpdmVyICE9PSAwKSlcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLmRlbGl2ZXJ5Q29zdExpbmVzKSB7XHJcbiAgICAgIGNvbnN0IGRlbGl2ZXJ5Q29zdExpbmVzOiBUcmFuc2FjdGlvbkRlbGl2ZXJ5Q29zdExpbmVJbmZvW10gPSB0aGlzLmRlbGl2ZXJ5Q29zdExpbmVzLmZpbHRlcigobGluZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy50cmFuc2FjdGlvbkluZm8uYWxsb3dQYXJ0aWFsRGVsaXZlcnkgPyB0cnVlIDogbGluZS5zZWxlY3RlZCAmJiBsaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9EZWxpdmVyID4gMFxyXG4gICAgICB9KTtcclxuICAgICAgc2VsZWN0ZWRMaW5lcy5wdXNoKC4uLmRlbGl2ZXJ5Q29zdExpbmVzKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc2VsZWN0ZWRMaW5lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJlcXVlc3QudHJhbnNhY3Rpb25MaW5lcyA9IHRoaXMuX2NyZWF0ZVJlcXVlc3RMaW5lcyhzZWxlY3RlZExpbmVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBfcHJlcGFyZUhpc3RvcmljUmVxdWVzdChyZXF1ZXN0OiBFbWFpbEhpc3RvcmljRGVsaXZlcnlOb3RlUmVxdWVzdCB8IFByaW50SGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0IHwgUGRmSGlzdG9yaWNEZWxpdmVyeU5vdGVSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICByZXF1ZXN0LnJlcG9ydERhdGFJZCA9IHRoaXMuc2VuZERvY3VtZW50c0NvbXBvbmVudC5hY3RpdmVSZXBvcnQucmVwb3J0SWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SGlzdG9yaWNEb2N1bWVudHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRIaXN0b3JpY0RvY3VtZW50cyh0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCwgTGF5b3V0Q29kZS5EZWxpdmVyeU5vdGUpXHJcbiAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICB0aGlzLmhpc3RvcmljUmVwb3J0cyA9IHJlc3VsdDtcclxuICAgICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2VuZERvY3VtZW50KGRlZmF1bHRTZW5kTWV0aG9kOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuaGFuZGxlU2VuZChkZWZhdWx0U2VuZE1ldGhvZCkudGhlbigoKSA9PiB0aGlzLnNlbmREb2N1bWVudHNDb21wb25lbnQuZ2V0SGlzdG9yaWNEb2N1bWVudHMoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2VuZE1ldGhvZE9rQ2xpY2sobWV0aG9kOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuc2hvd1NlbmRNZXRob2REaWFsb2cgPSBmYWxzZTtcclxuICAgIGlmIChtZXRob2QgPT09IFNlbmRNZXRob2RUeXBlLlByaW50KSB7XHJcbiAgICAgIHRoaXMucHJpbnREb2N1bWVudCh0aGlzLnJlcG9ydERvY3VtZW50UHJpbnRSZXF1ZXN0KTtcclxuICAgIH0gZWxzZSBpZiAobWV0aG9kID09PSBTZW5kTWV0aG9kVHlwZS5FbWFpbCkge1xyXG4gICAgICB0aGlzLmVtYWlsRG9jdW1lbnQodGhpcy5yZXBvcnREb2N1bWVudEVtYWlsUmVxdWVzdCk7XHJcbiAgICB9IGVsc2UgaWYgKG1ldGhvZCA9PT0gU2VuZE1ldGhvZFR5cGUuUGRmKSB7XHJcbiAgICAgIHRoaXMucGRmRG9jdW1lbnQodGhpcy5yZXBvcnREb2N1bWVudFBkZlJlcXVlc3QpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fc2V0RGVmYXVsdE1ldGhvZChtZXRob2QpO1xyXG4gIH1cclxuICBwcml2YXRlIF9jcmVhdGVSZXF1ZXN0TGluZXMoc2VsZWN0ZWRMaW5lczogVHJhbnNhY3Rpb25MaW5lSW5mb1tdKTogVHJhbnNhY3Rpb25MaW5lUmVwb3J0aW5nUmVxdWVzdFtdIHtcclxuICAgIHJldHVybiBzZWxlY3RlZExpbmVzLm1hcCgobGluZSkgPT4ge1xyXG4gICAgICBjb25zdCB0cmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0OiBUcmFuc2FjdGlvbkxpbmVSZXBvcnRpbmdSZXF1ZXN0ID0gbmV3IFRyYW5zYWN0aW9uTGluZVJlcG9ydGluZ1JlcXVlc3QoKTtcclxuICAgICAgdHJhbnNhY3Rpb25MaW5lUmVwb3J0aW5nUmVxdWVzdC5saW5lTnIgPSBsaW5lLmxpbmVOcjtcclxuICAgICAgdHJhbnNhY3Rpb25MaW5lUmVwb3J0aW5nUmVxdWVzdC5hbW91bnQgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby5hbGxvd1BhcnRpYWxEZWxpdmVyeSA/IGxpbmUuYW1vdW50U2VsZWN0ZWQgOiBsaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9EZWxpdmVyO1xyXG4gICAgICByZXR1cm4gdHJhbnNhY3Rpb25MaW5lUmVwb3J0aW5nUmVxdWVzdDtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -56,15 +56,14 @@ export class TransactionQuickAccessOrderPurchaseComponent extends TransactionQui
56
56
  }
57
57
  handleSend(method) {
58
58
  return __awaiter(this, void 0, void 0, function* () {
59
- const isPrintDefaultMethod = yield this.transactionService.isPrintIsDefaultSendMethodForPurchaseOrder(this.transactionInfo.id);
60
- if (isPrintDefaultMethod) {
61
- this.showSendMethodDialog = true;
62
- this.changeDetector.detectChanges();
63
- }
64
- else {
65
- yield this.printDocument(this.reportDocumentPrintRequest);
66
- this._setDefaultMethod(method);
67
- }
59
+ // const isPrintDefaultMethod: boolean = await this.transactionService.isPrintIsDefaultSendMethodForPurchaseOrder(this.transactionInfo.id);
60
+ // if (isPrintDefaultMethod) {
61
+ this.showSendMethodDialog = true;
62
+ this.changeDetector.detectChanges();
63
+ /* } else {
64
+ await this.printDocument(this.reportDocumentPrintRequest);
65
+ this._setDefaultMethod(method);
66
+ } */
68
67
  });
69
68
  }
70
69
  handleSendMethodOkClick(methodData) {
@@ -250,4 +249,4 @@ TransactionQuickAccessOrderPurchaseComponent.propDecorators = {
250
249
  showClass: [{ type: HostBinding, args: ['class.co-transaction-quick-access-order-purchase',] }],
251
250
  sendDocumentsComponent: [{ type: ViewChild, args: [TransactionSendDocumentsComponent,] }]
252
251
  };
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLXB1cmNoYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3JkZXItcHVyY2hhc2UvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLXB1cmNoYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXRHLE9BQU8sRUFBQyw2Q0FBNkMsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JILE9BQU8sRUFBQyx3Q0FBd0MsRUFBQyxNQUFNLDhFQUE4RSxDQUFDO0FBQ3RJLE9BQU8sRUFBQyx3Q0FBd0MsRUFBQyxNQUFNLDhFQUE4RSxDQUFDO0FBQ3RJLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBR2xILE9BQU8sRUFBQyxzQ0FBc0MsRUFBQyxNQUFNLG1GQUFtRixDQUFDO0FBQ3pJLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ2hILE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBQ3JHLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFB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QyxDQUFDLGdCQUFnQixDQUFDO1lBQ3ZILHNDQUFzQyxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQywwQkFBMEIsQ0FBQztZQUMzSSxzQ0FBc0MsQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUMsc0NBQXNDLENBQUMsNkJBQTZCLENBQUM7WUFDakosc0NBQXNDLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLHdCQUF3QixDQUFDO1lBQ3ZJLHNDQUFzQyxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQyx5QkFBeUIsQ0FBQztZQUN6SSxzQ0FBc0MsQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUMsc0NBQXNDLENBQUMsNkJBQTZCLENBQUM7WUFDakosTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsMENBQTBDLENBQUMsc0NBQXNDLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQzs7S0FDaEo7OztZQTdQRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDRDQUE0QztnQkFDdEQsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Q1Q7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQWhFTyx3QkFBd0I7WUFNeEIsd0JBQXdCO1lBVHhCLHVCQUF1QjtZQUN2QixnQkFBZ0I7WUFDaEIscUNBQXFDO1lBRXJDLHVCQUF1QjtZQUN2QixpQkFBaUI7WUFDakIsa0JBQWtCO1lBZmxCLGlCQUFpQjtZQWdCakIsd0JBQXdCO1lBQ3hCLGtDQUFrQzs7O3dCQThEdkMsV0FBVyxTQUFDLGtEQUFrRDtxQ0FLOUQsU0FBUyxTQUFDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25RdWlja0FjY2Vzc1NlbmRNZXRob2RCYXNlQ29tcG9uZW50fSBmcm9tICcuLi90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtc2VuZC1tZXRob2QtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1wcmludC1zaWduLWRvYy1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1lbWFpbC1zaWduLWRvYy1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1wZGYtYmFzZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0LWxheW91dC1zZWxlY3Rpb24tZW1haWwuYm8nO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvblByaW50fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1wcmludC5ibyc7XHJcbmltcG9ydCB7UHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wcmludC1wdXJjaGFzZS1vcmRlci1mb3Itc2FsZXMtb3JkZXItcmVxdWVzdCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlfSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi1zZWFyY2gvc2VydmljZS90cmFuc2FjdGlvbi1zZWFyY2guc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25EaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNhbGVzUmVzZXJ2YXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi1yZXNlcnZhdGlvbi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNhbGVzLXJlc2VydmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyU2VydmljZX0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL3NlcnZpY2UvdHJhbnNhY3Rpb24taGVhZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VhcmNoVmlld30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLXNlYXJjaC12aWV3LmJvJztcclxuaW1wb3J0IHtCYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9iYXRjaC10cmFuc2FjdGlvbi1zZW5kaW5nLXJlcXVlc3QnO1xyXG5pbXBvcnQge1ByaW50ZXJ9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9wcmludGVyLmJvXCI7XHJcbmltcG9ydCB7TGF5b3V0Q29kZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL2xheW91dC1jb2RlLmVudW1cIjtcclxuaW1wb3J0IHtQZGZIaXN0b3JpY0ludm9pY2VSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BkZi1oaXN0b3JpYy1pbnZvaWNlLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtQZGZJbnZvaWNlUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wZGYtaW52b2ljZS1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZW5kRG9jdW1lbnRzQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vdHJhbnNhY3Rpb24tc2VuZC1kb2N1bWVudHMvdHJhbnNhY3Rpb24tc2VuZC1kb2N1bWVudHMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xyXG5cclxuaW50ZXJmYWNlIE92ZXJydWxlT3B0aW9ucyB7XHJcbiAgY29kZTogbnVtYmVyO1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLXB1cmNoYXNlJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInF1aWNrLWFjY2Vzcy1jb250ZW50LXdyYXBwZXJcIiAqbmdJZj1cImNhbkdlbmVyYXRlICYmIHRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbkRlZmluaXRpdmVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC1hbGwtd3JhcHBlclwiPlxyXG4gICAgICAgIDxjby1pbnB1dC1jaGVja2JveFxyXG4gICAgICAgICAgW2xhYmVsXT1cIidTRUxFQ1RfQUxMX0xJTkVTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVTZWxlY3RBbGxMaW5lcygkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxjby1xdWljay1zZW5kLWJ1dHRvblxyXG4gICAgICAgIFtkZWZhdWx0TWV0aG9kSWNvbl09XCJkZWZhdWx0U2VuZE1ldGhvZEljb25cIlxyXG4gICAgICAgIFtzaG93TG9hZGVyXT1cInNob3dMb2FkZXJcIlxyXG4gICAgICAgIChzZW5kSWNvbkNsaWNrZWQpPVwiaGFuZGxlU2VuZChkZWZhdWx0U2VuZE1ldGhvZClcIlxyXG4gICAgICAgIChvcGVuU2VuZE1ldGhvZERpYWxvZyk9XCJvcGVuU2VuZERpYWxvZygpXCI+XHJcbiAgICAgIDwvY28tcXVpY2stc2VuZC1idXR0b24+XHJcblxyXG4gICAgICA8c3BhbiBjbGFzcz1cImJ1dHRvblwiIFtjbGFzcy5zZWxlY3RlZF09XCJ0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UucmVzZXJ2YXRpb25Nb2RlXCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIChjbGljayk9XCJoYW5kbGVSZXNlcnZhdGlvbk1vZGVDbGljaygpXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5QYWxsZXRCb3hlc1JvdGF0ZSlcIj48L2NvLWljb24+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGNvLXNlbmQtbWV0aG9kLWRpYWxvZyAqbmdJZj1cInNob3dTZW5kTWV0aG9kRGlhbG9nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlYWRlclRpdGxlXT1cIidDUkVBVEVfUFVSQ0hBU0VfT1JERVInIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJpbnRlckxpc3RdPVwicHJpbnRlckxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdFNlbmRNZXRob2RdPVwiZGVmYXVsdFNlbmRNZXRob2RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbdmlzaWJsZU1ldGhvZHNdPVwiW3NlbmRNZXRob2RUeXBlLlByaW50LCBzZW5kTWV0aG9kVHlwZS5FbWFpbF1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1haWxBZGRyZXNzZXNdPVwiZW1haWxBZGRyZXNzZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZW1haWxMYXlvdXRzXT1cImVtYWlsTGF5b3V0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmludExheW91dHNdPVwicHJpbnRMYXlvdXRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRQcmludGVyTmFtZV09XCJkZWZhdWx0UHJpbnRlck5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZVBkZlByZXZpZXddPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc0RvY1NpZ25FbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGRmRG9jXT1cInBkZkRvY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVwb3J0aW5nRG9jdW1lbnRFbWFpbFJlcXVlc3QpXT1cInJlcG9ydERvY3VtZW50RW1haWxSZXF1ZXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZXBvcnRpbmdEb2N1bWVudFByaW50UmVxdWVzdCldPVwicmVwb3J0RG9jdW1lbnRQcmludFJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlcG9ydGluZ0RvY3VtZW50UGRmUmVxdWVzdCldPVwicmVwb3J0RG9jdW1lbnRQZGZSZXF1ZXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwic2hvd1NlbmRNZXRob2REaWFsb2cgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChva0NsaWNrKT1cImhhbmRsZVNlbmRNZXRob2RPa0NsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbdXNlUHVyY2hhc2VTZW5kTWV0aG9kXT1cInRydWVcIlxyXG4gICAgPjwvY28tc2VuZC1tZXRob2QtZGlhbG9nPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25RdWlja0FjY2Vzc09yZGVyUHVyY2hhc2VDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvblF1aWNrQWNjZXNzU2VuZE1ldGhvZEJhc2VDb21wb25lbnQge1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1vcmRlci1wdXJjaGFzZScpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZChUcmFuc2FjdGlvblNlbmREb2N1bWVudHNDb21wb25lbnQpXHJcbiAgcHVibGljIHNlbmREb2N1bWVudHNDb21wb25lbnQ6IFRyYW5zYWN0aW9uU2VuZERvY3VtZW50c0NvbXBvbmVudDtcclxuXHJcbiAgcHVibGljIGNhbkdlbmVyYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dTaGlwcGluZ01ldGhvZERpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzZWxlY3RlZFRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25TZWFyY2hWaWV3W10gPSBbXTtcclxuXHJcbiAgcHVibGljIHJlcG9ydERvY3VtZW50RW1haWxSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0ID0gbmV3IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QoKTtcclxuICBwdWJsaWMgcmVwb3J0RG9jdW1lbnRQcmludFJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3QgPSBuZXcgUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdCgpO1xyXG4gIHB1YmxpYyByZXBvcnREb2N1bWVudFBkZlJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3QgPSBuZXcgUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCgpO1xyXG4gIHB1YmxpYyBiYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3Q6IEJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdCA9IG5ldyBCYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3QoKTtcclxuICBwdWJsaWMgcHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3Q6IFByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0ID0gbmV3IFByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0KCk7XHJcblxyXG4gIHB1YmxpYyB1c2VEZWZhdWx0TGF5b3V0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHVzZURlZmF1bHRTaGlwcGluZ01ldGhvZHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2F2ZURlZmF1bHRQcmludGVyRm9yVXNlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzYXZlRGVmYXVsdFByaW50ZXJGb3JBbGxVc2VyczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBwcmludGVyTGlzdDogUHJpbnRlcltdID0gW107XHJcbiAgcHVibGljIHNlbGVjdGVkUHJpbnRlcjogUHJpbnRlcjtcclxuICBwdWJsaWMgb3ZlcnJ1bGVkRW1haWw6IE92ZXJydWxlT3B0aW9ucztcclxuICBwdWJsaWMgb3ZlcnJ1bGVkRWRpOiBPdmVycnVsZU9wdGlvbnM7XHJcbiAgcHVibGljIG92ZXJydWxlZFByaW50OiBPdmVycnVsZU9wdGlvbnM7XHJcbiAgcHVibGljIHJlcG9ydElkRm9yUHJpbnRpbmc6IG51bWJlcjtcclxuICBwdWJsaWMgcmVwb3J0SWRGb3JFbWFpbDogbnVtYmVyO1xyXG5cclxuICBwdWJsaWMgZGVmYXVsdFNlbmRNZXRob2Q6IHN0cmluZztcclxuICBwcml2YXRlIGRlZmF1bHRTZW5kTWV0aG9kSW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBzZWFyY2hTZXJ2aWNlOiBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2UsXHJcbiAgICB0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2U6IFRyYW5zYWN0aW9uSGVhZGVyU2VydmljZSxcclxuICAgIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBzY3JlZW5Db25maWdTZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgZGlhbG9nU2VydmljZTogVHJhbnNhY3Rpb25EaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNhbGVzUmVzZXJ2YXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNhbGVzUmVzZXJ2YXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihzZWFyY2hTZXJ2aWNlLCB0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UsIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCBzY3JlZW5Db25maWdTZXJ2aWNlLCBpbWFnZVNlcnZpY2UsIGRpY3Rpb25hcnlTZXJ2aWNlLCB0cmFuc2FjdGlvblNlcnZpY2UsIGNoYW5nZURldGVjdG9yLCBkaWFsb2dTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvbkxpbmVDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9jaGVja1B1cmNoYXNlT3JkZXJzKCkpXHJcbiAgICApO1xyXG4gICAgY29uc3QgdHJhbnNJdGVtID0gdGhpcy50cmFuc2FjdGlvbiBhcyB1bmtub3duIGFzIFRyYW5zYWN0aW9uU2VhcmNoVmlldztcclxuICAgIHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMucHVzaCh0cmFuc0l0ZW0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTZWxlY3RBbGxMaW5lcyh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5zZWxlY3RBbGxTYWxlc09yZGVyTGluZXNGb3JQdXJjaGFzZS5uZXh0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTZW5kKG1ldGhvZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBpc1ByaW50RGVmYXVsdE1ldGhvZDogYm9vbGVhbiA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmlzUHJpbnRJc0RlZmF1bHRTZW5kTWV0aG9kRm9yUHVyY2hhc2VPcmRlcih0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCk7XHJcbiAgICBpZiAoaXNQcmludERlZmF1bHRNZXRob2QpIHtcclxuICAgICAgdGhpcy5zaG93U2VuZE1ldGhvZERpYWxvZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYXdhaXQgdGhpcy5wcmludERvY3VtZW50KHRoaXMucmVwb3J0RG9jdW1lbnRQcmludFJlcXVlc3QpO1xyXG4gICAgICB0aGlzLl9zZXREZWZhdWx0TWV0aG9kKG1ldGhvZCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTZW5kTWV0aG9kT2tDbGljayhtZXRob2REYXRhOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuc2hvd1NlbmRNZXRob2REaWFsb2cgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnVzZURlZmF1bHRMYXlvdXQgPSBtZXRob2REYXRhLnVzZURlZmF1bHRMYXlvdXQ7XHJcbiAgICB0aGlzLnVzZURlZmF1bHRTaGlwcGluZ01ldGhvZHMgPSBtZXRob2REYXRhLnVzZURlZmF1bHRTaGlwcGluZ01ldGhvZHM7XHJcbiAgICB0aGlzLnNhdmVEZWZhdWx0UHJpbnRlckZvclVzZXIgPSBtZXRob2REYXRhLnNhdmVEZWZhdWx0UHJpbnRlckZvclVzZXI7XHJcbiAgICB0aGlzLnNhdmVEZWZhdWx0UHJpbnRlckZvckFsbFVzZXJzID0gbWV0aG9kRGF0YS5zYXZlRGVmYXVsdFByaW50ZXJGb3JBbGxVc2VycztcclxuICAgIHRoaXMucmVwb3J0SWRGb3JQcmludGluZyA9IG1ldGhvZERhdGEucmVwb3J0SWRGb3JQcmludGluZz8ucmVwb3J0SWQ7XHJcbiAgICB0aGlzLnJlcG9ydElkRm9yRW1haWwgPSBtZXRob2REYXRhLnJlcG9ydElkRm9yRW1haWw/LnJlcG9ydElkO1xyXG5cclxuICAgIGlmICghdGhpcy51c2VEZWZhdWx0U2hpcHBpbmdNZXRob2RzKSB7XHJcbiAgICAgIHRoaXMub3ZlcnJ1bGVkRW1haWwgPSBtZXRob2REYXRhLm92ZXJydWxlZEVtYWlsO1xyXG4gICAgICB0aGlzLm92ZXJydWxlZEVkaSA9IG1ldGhvZERhdGEub3ZlcnJ1bGVkRWRpO1xyXG4gICAgICB0aGlzLm92ZXJydWxlZFByaW50ID0gbWV0aG9kRGF0YS5vdmVycnVsZWRQcmludDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMudXNlRGVmYXVsdExheW91dCkge1xyXG4gICAgICBpZiAodGhpcy5yZXBvcnRJZEZvclByaW50aW5nKSB7XHJcbiAgICAgICAgdGhpcy5wcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5yZXBvcnRJZEZvclByaW50aW5nID0gdGhpcy5yZXBvcnRJZEZvclByaW50aW5nO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnJlcG9ydElkRm9yRW1haWwpIHtcclxuICAgICAgICB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnJlcG9ydElkRm9yRW1haWwgPSB0aGlzLnJlcG9ydElkRm9yRW1haWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAobWV0aG9kRGF0YS5wcmludGVyTmFtZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUHJpbnRlciA9IHRoaXMucHJpbnRlckxpc3QuZmluZChwID0+IHAubmFtZSA9PT0gbWV0aG9kRGF0YS5wcmludGVyTmFtZSkgfHwgbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnVzZVJlbGF0aW9uU3BlY2lmaWNSZXBvcnRzID0gdGhpcy51c2VEZWZhdWx0TGF5b3V0O1xyXG4gICAgdGhpcy5wcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC51c2VSZWxhdGlvblNwZWNpZmljU2VuZE1ldGhvZHMgPSB0aGlzLnVzZURlZmF1bHRTaGlwcGluZ01ldGhvZHM7XHJcbiAgICB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnNhdmVEZWZhdWx0UHJpbnRlckZvclVzZXIgPSB0aGlzLnNhdmVEZWZhdWx0UHJpbnRlckZvclVzZXI7XHJcbiAgICB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnNhdmVEZWZhdWx0UHJpbnRlckZvckFsbFVzZXJzID0gdGhpcy5zYXZlRGVmYXVsdFByaW50ZXJGb3JBbGxVc2VycztcclxuICAgIHRoaXMucHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3QucHJpbnRlck5hbWUgPSB0aGlzLnNlbGVjdGVkUHJpbnRlcj8ubmFtZSB8fCBudWxsO1xyXG5cclxuICAgIGlmICghdGhpcy51c2VEZWZhdWx0U2hpcHBpbmdNZXRob2RzKSB7XHJcbiAgICAgIHRoaXMucHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3Qub3ZlcnJ1bGVTZW5kTWV0aG9kRm9yRW1haWwgPSB0aGlzLm92ZXJydWxlZEVtYWlsPy5jb2RlO1xyXG4gICAgICB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0Lm92ZXJydWxlU2VuZE1ldGhvZEZvclByaW50aW5nID0gdGhpcy5vdmVycnVsZWRQcmludD8uY29kZTtcclxuICAgICAgdGhpcy5wcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5vdmVycnVsZVNlbmRNZXRob2RGb3JFREkgPSB0aGlzLm92ZXJydWxlZEVkaT8uY29kZTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy51c2VEZWZhdWx0TGF5b3V0KSB7XHJcbiAgICAgIHRoaXMucHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3QucmVwb3J0SWRGb3JQcmludGluZyA9IHRoaXMucmVwb3J0SWRGb3JQcmludGluZztcclxuICAgICAgdGhpcy5wcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5yZXBvcnRJZEZvckVtYWlsID0gdGhpcy5yZXBvcnRJZEZvckVtYWlsO1xyXG4gICAgfVxyXG5cclxuICAgIGF3YWl0IHRoaXMucHJpbnREb2N1bWVudCh0aGlzLnJlcG9ydERvY3VtZW50UHJpbnRSZXF1ZXN0KTtcclxuICAgIHRoaXMuX3NldERlZmF1bHRNZXRob2QodGhpcy5kZWZhdWx0U2VuZE1ldGhvZCk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVJlc2VydmF0aW9uTW9kZUNsaWNrKCkge1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uSW5mbz8uaWQpIHtcclxuICAgICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uSGVhZGVyU2VydmljZS5yZXNlcnZhdGlvbk1vZGUpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLnNhbGVzUmVzZXJ2YXRpb25TZXJ2aWNlLmdldFNhbGVzT3JkZXJMaW5lcyh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zYWxlc1Jlc2VydmF0aW9uU2VydmljZS5wdXJjaGFzZVJlc2VydmF0aW9ucyA9IFtdO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uSGVhZGVyU2VydmljZS5yZXNlcnZhdGlvbk1vZGUgPSAhdGhpcy50cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UucmVzZXJ2YXRpb25Nb2RlO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uSGVhZGVyU2VydmljZS5yZXNlcnZhdGlvblN0YXRlQ2hhbmdlLm5leHQodGhpcy50cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UucmVzZXJ2YXRpb25Nb2RlKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uU2V0KCkge1xyXG4gICAgc3VwZXIudHJhbnNhY3Rpb25TZXQoKTtcclxuICAgIHRoaXMuX2NoZWNrUHVyY2hhc2VPcmRlcnMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuU2VuZERpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1NlbmRNZXRob2REaWFsb2cgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvYWREZWZhdWx0UHJpbnRlck5hbWUocmVwb3J0SWQ6IG51bWJlcikge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0RGVmYXVsdFByaW50ZXIocmVwb3J0SWQsIExheW91dENvZGUuT3JkZXJDb25maXJtYXRpb24pLnRoZW4oKHByaW50ZXJOYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgaWYgKHByaW50ZXJOYW1lICYmIHRoaXMucHJpbnRlckxpc3QuZmluZCggKHByaW50ZXI6IFByaW50ZXIpID0+IHByaW50ZXIubmFtZSA9PT0gcHJpbnRlck5hbWUpKSB7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0UHJpbnRlck5hbWUgPSBwcmludGVyTmFtZTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jaGVja1B1cmNoYXNlT3JkZXJzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYW5HZW5lcmF0ZSA9IHRoaXMudHJhbnNhY3Rpb25MaW5lcyAmJlxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uTGluZXMuZmlsdGVyKGwgPT4gbC5jb21taXNzaW9uQ29kZSA9PT0gJzAnICYmIChsLmFydGljbGVMaW5lU3RhdHVzICYmIGwuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlPcmRlcmVkICE9PSBsLmFtb3VudCkpLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdEVtYWlsQWRkcmVzc0xpc3QoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0RGVmYXVsdFNlbmRNZXRob2QoKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIGlmICh0aGlzLmRlZmF1bHRTZW5kTWV0aG9kSW5pdGlhbGl6ZWQpIHtcclxuICAgICAgcmV0dXJuIHBhcnNlSW50KHRoaXMuZGVmYXVsdFNlbmRNZXRob2QpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGVmYXVsdE1ldGhvZE51bWJlciA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmlzUHJpbnRJc0RlZmF1bHRTZW5kTWV0aG9kRm9yUHVyY2hhc2VPcmRlcih0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCkgPyAxIDogMjtcclxuXHJcbiAgICB0aGlzLmRlZmF1bHRTZW5kTWV0aG9kID0gZGVmYXVsdE1ldGhvZE51bWJlci50b1N0cmluZygpO1xyXG4gICAgdGhpcy5kZWZhdWx0U2VuZE1ldGhvZEluaXRpYWxpemVkID0gdHJ1ZTtcclxuXHJcbiAgICByZXR1cm4gZGVmYXVsdE1ldGhvZE51bWJlcjtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRFbWFpbExheW91dHMoKTogUHJvbWlzZTxSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0UHVyY2hhc2VPcmRlckVtYWlsTGF5b3V0cyh0aGlzLnRyYW5zYWN0aW9uSW5mby51dWlkKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRQcmludExheW91dHMoKTogUHJvbWlzZTxSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0UHVyY2hhc2VPcmRlclByaW50TGF5b3V0cyh0aGlzLnRyYW5zYWN0aW9uSW5mby51dWlkKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBwZGZEb2N1bWVudChyZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KSB7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBlbWFpbERvY3VtZW50KHJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QpIHtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBwcmludERvY3VtZW50KHJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3QpIHtcclxuICAgIGNvbnN0IHByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0OiBQcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdCA9IE9iamVjdC5hc3NpZ24obmV3IFByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0KCksIHJlcXVlc3QpO1xyXG4gICAgcHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3QudXNlUmVsYXRpb25TcGVjaWZpY1JlcG9ydHMgPSB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnVzZVJlbGF0aW9uU3BlY2lmaWNSZXBvcnRzID8/IHRydWU7XHJcbiAgICBwcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC51c2VSZWxhdGlvblNwZWNpZmljU2VuZE1ldGhvZHMgPSB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnVzZVJlbGF0aW9uU3BlY2lmaWNTZW5kTWV0aG9kcyA/PyB0cnVlO1xyXG4gICAgcHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3QucmVwb3J0SWRGb3JQcmludGluZyA9IHRoaXMucHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3QucmVwb3J0SWRGb3JQcmludGluZztcclxuICAgIHByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnJlcG9ydElkRm9yRW1haWwgPSB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnJlcG9ydElkRm9yRW1haWw7XHJcbiAgICBwcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5vdmVycnVsZVNlbmRNZXRob2RGb3JFbWFpbCA9IHRoaXMucHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3Qub3ZlcnJ1bGVTZW5kTWV0aG9kRm9yRW1haWw7XHJcbiAgICBwcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5vdmVycnVsZVNlbmRNZXRob2RGb3JQcmludGluZyA9IHRoaXMucHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3Qub3ZlcnJ1bGVTZW5kTWV0aG9kRm9yUHJpbnRpbmc7XHJcbiAgICBwcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5vdmVycnVsZVNlbmRNZXRob2RGb3JFREkgPSB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0Lm92ZXJydWxlU2VuZE1ldGhvZEZvckVESTtcclxuICAgIHByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnNhdmVEZWZhdWx0UHJpbnRlckZvclVzZXIgPSB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnNhdmVEZWZhdWx0UHJpbnRlckZvclVzZXI7XHJcbiAgICBwcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5zYXZlRGVmYXVsdFByaW50ZXJGb3JBbGxVc2VycyA9IHRoaXMucHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3Quc2F2ZURlZmF1bHRQcmludGVyRm9yQWxsVXNlcnM7XHJcbiAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZW5lcmF0ZUFuZFNlbmRQdXJjaGFzZU9yZGVyc0ZvclNhbGVzT3JkZXIocHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3QsIHRoaXMudHJhbnNhY3Rpb25JbmZvLnZlcnNpb24pO1xyXG4gIH1cclxufVxyXG4iXX0=
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLXB1cmNoYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3JkZXItcHVyY2hhc2UvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLXB1cmNoYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXRHLE9BQU8sRUFBQyw2Q0FBNkMsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JILE9BQU8sRUFBQyx3Q0FBd0MsRUFBQyxNQUFNLDhFQUE4RSxDQUFDO0FBQ3RJLE9BQU8sRUFBQyx3Q0FBd0MsRUFBQyxNQUFNLDhFQUE4RSxDQUFDO0FBQ3RJLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBR2xILE9BQU8sRUFBQyxzQ0FBc0MsRUFBQyxNQUFNLG1GQUFtRixDQUFDO0FBQ3pJLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ2hILE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBQ3JHLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFB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QXdCLENBQUM7WUFDdkksc0NBQXNDLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLHlCQUF5QixDQUFDO1lBQ3pJLHNDQUFzQyxDQUFDLDZCQUE2QixHQUFHLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQyw2QkFBNkIsQ0FBQztZQUNqSixNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQywwQ0FBMEMsQ0FBQyxzQ0FBc0MsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDOztLQUNoSjs7O1lBN1BGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNENBQTRDO2dCQUN0RCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVDVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBaEVPLHdCQUF3QjtZQU14Qix3QkFBd0I7WUFUeEIsdUJBQXVCO1lBQ3ZCLGdCQUFnQjtZQUNoQixxQ0FBcUM7WUFFckMsdUJBQXVCO1lBQ3ZCLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFmbEIsaUJBQWlCO1lBZ0JqQix3QkFBd0I7WUFDeEIsa0NBQWtDOzs7d0JBOER2QyxXQUFXLFNBQUMsa0RBQWtEO3FDQUs5RCxTQUFTLFNBQUMsaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblF1aWNrQWNjZXNzU2VuZE1ldGhvZEJhc2VDb21wb25lbnR9IGZyb20gJy4uL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1zZW5kLW1ldGhvZC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LXByaW50LXNpZ24tZG9jLWJhc2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7UmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LWVtYWlsLXNpZ24tZG9jLWJhc2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7UmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LXBkZi1iYXNlLXJlcXVlc3QnO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1lbWFpbC5ibyc7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnR9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLXByaW50LmJvJztcclxuaW1wb3J0IHtQcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3ByaW50LXB1cmNoYXNlLW9yZGVyLWZvci1zYWxlcy1vcmRlci1yZXF1ZXN0JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2V9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uLXNlYXJjaC9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNlYXJjaC5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkltYWdlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkRpYWxvZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2FsZXNSZXNlcnZhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uLXJlc2VydmF0aW9uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2FsZXMtcmVzZXJ2YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2Uvc2VydmljZS90cmFuc2FjdGlvbi1oZWFkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hWaWV3fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXZpZXcuYm8nO1xyXG5pbXBvcnQge0JhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2JhdGNoLXRyYW5zYWN0aW9uLXNlbmRpbmctcmVxdWVzdCc7XHJcbmltcG9ydCB7UHJpbnRlcn0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3ByaW50ZXIuYm9cIjtcclxuaW1wb3J0IHtMYXlvdXRDb2RlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vbGF5b3V0LWNvZGUuZW51bVwiO1xyXG5pbXBvcnQge1BkZkhpc3RvcmljSW52b2ljZVJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGRmLWhpc3RvcmljLWludm9pY2UtcmVxdWVzdFwiO1xyXG5pbXBvcnQge1BkZkludm9pY2VSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BkZi1pbnZvaWNlLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlbmREb2N1bWVudHNDb21wb25lbnR9IGZyb20gXCIuLi8uLi90cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50cy90cmFuc2FjdGlvbi1zZW5kLWRvY3VtZW50cy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvXCI7XHJcblxyXG5pbnRlcmZhY2UgT3ZlcnJ1bGVPcHRpb25zIHtcclxuICBjb2RlOiBudW1iZXI7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3JkZXItcHVyY2hhc2UnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwicXVpY2stYWNjZXNzLWNvbnRlbnQtd3JhcHBlclwiICpuZ0lmPVwiY2FuR2VuZXJhdGUgJiYgdHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uRGVmaW5pdGl2ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LWFsbC13cmFwcGVyXCI+XHJcbiAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICBbbGFiZWxdPVwiJ1NFTEVDVF9BTExfTElORVMnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZVNlbGVjdEFsbExpbmVzKCRldmVudClcIj5cclxuICAgICAgICA8L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGNvLXF1aWNrLXNlbmQtYnV0dG9uXHJcbiAgICAgICAgW2RlZmF1bHRNZXRob2RJY29uXT1cImRlZmF1bHRTZW5kTWV0aG9kSWNvblwiXHJcbiAgICAgICAgW3Nob3dMb2FkZXJdPVwic2hvd0xvYWRlclwiXHJcbiAgICAgICAgKHNlbmRJY29uQ2xpY2tlZCk9XCJoYW5kbGVTZW5kKGRlZmF1bHRTZW5kTWV0aG9kKVwiXHJcbiAgICAgICAgKG9wZW5TZW5kTWV0aG9kRGlhbG9nKT1cIm9wZW5TZW5kRGlhbG9nKClcIj5cclxuICAgICAgPC9jby1xdWljay1zZW5kLWJ1dHRvbj5cclxuXHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYnV0dG9uXCIgW2NsYXNzLnNlbGVjdGVkXT1cInRyYW5zYWN0aW9uSGVhZGVyU2VydmljZS5yZXNlcnZhdGlvbk1vZGVcIj5cclxuICAgICAgICAgICAgPGNvLWljb24gKGNsaWNrKT1cImhhbmRsZVJlc2VydmF0aW9uTW9kZUNsaWNrKClcIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlBhbGxldEJveGVzUm90YXRlKVwiPjwvY28taWNvbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8Y28tc2VuZC1tZXRob2QtZGlhbG9nICpuZ0lmPVwic2hvd1NlbmRNZXRob2REaWFsb2dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyVGl0bGVdPVwiJ0NSRUFURV9QVVJDSEFTRV9PUkRFUicgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcmludGVyTGlzdF09XCJwcmludGVyTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0U2VuZE1ldGhvZF09XCJkZWZhdWx0U2VuZE1ldGhvZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2aXNpYmxlTWV0aG9kc109XCJbc2VuZE1ldGhvZFR5cGUuUHJpbnQsIHNlbmRNZXRob2RUeXBlLkVtYWlsXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbWFpbEFkZHJlc3Nlc109XCJlbWFpbEFkZHJlc3Nlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbWFpbExheW91dHNdPVwiZW1haWxMYXlvdXRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByaW50TGF5b3V0c109XCJwcmludExheW91dHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdFByaW50ZXJOYW1lXT1cImRlZmF1bHRQcmludGVyTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlUGRmUHJldmlld109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzRG9jU2lnbkVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwZGZEb2NdPVwicGRmRG9jXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZXBvcnRpbmdEb2N1bWVudEVtYWlsUmVxdWVzdCldPVwicmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlcG9ydGluZ0RvY3VtZW50UHJpbnRSZXF1ZXN0KV09XCJyZXBvcnREb2N1bWVudFByaW50UmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVwb3J0aW5nRG9jdW1lbnRQZGZSZXF1ZXN0KV09XCJyZXBvcnREb2N1bWVudFBkZlJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJzaG93U2VuZE1ldGhvZERpYWxvZyA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9rQ2xpY2spPVwiaGFuZGxlU2VuZE1ldGhvZE9rQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1c2VQdXJjaGFzZVNlbmRNZXRob2RdPVwidHJ1ZVwiXHJcbiAgICA+PC9jby1zZW5kLW1ldGhvZC1kaWFsb2c+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblF1aWNrQWNjZXNzT3JkZXJQdXJjaGFzZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NTZW5kTWV0aG9kQmFzZUNvbXBvbmVudCB7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLXB1cmNoYXNlJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKFRyYW5zYWN0aW9uU2VuZERvY3VtZW50c0NvbXBvbmVudClcclxuICBwdWJsaWMgc2VuZERvY3VtZW50c0NvbXBvbmVudDogVHJhbnNhY3Rpb25TZW5kRG9jdW1lbnRzQ29tcG9uZW50O1xyXG5cclxuICBwdWJsaWMgY2FuR2VuZXJhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1NoaXBwaW5nTWV0aG9kRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNlbGVjdGVkVHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvblNlYXJjaFZpZXdbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgcmVwb3J0RG9jdW1lbnRFbWFpbFJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QgPSBuZXcgUmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdCgpO1xyXG4gIHB1YmxpYyByZXBvcnREb2N1bWVudFByaW50UmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdCA9IG5ldyBSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0KCk7XHJcbiAgcHVibGljIHJlcG9ydERvY3VtZW50UGRmUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCA9IG5ldyBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KCk7XHJcbiAgcHVibGljIGJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdDogQmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0ID0gbmV3IEJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdCgpO1xyXG4gIHB1YmxpYyBwcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdDogUHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3QgPSBuZXcgUHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3QoKTtcclxuXHJcbiAgcHVibGljIHVzZURlZmF1bHRMYXlvdXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgdXNlRGVmYXVsdFNoaXBwaW5nTWV0aG9kczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzYXZlRGVmYXVsdFByaW50ZXJGb3JVc2VyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNhdmVEZWZhdWx0UHJpbnRlckZvckFsbFVzZXJzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHByaW50ZXJMaXN0OiBQcmludGVyW10gPSBbXTtcclxuICBwdWJsaWMgc2VsZWN0ZWRQcmludGVyOiBQcmludGVyO1xyXG4gIHB1YmxpYyBvdmVycnVsZWRFbWFpbDogT3ZlcnJ1bGVPcHRpb25zO1xyXG4gIHB1YmxpYyBvdmVycnVsZWRFZGk6IE92ZXJydWxlT3B0aW9ucztcclxuICBwdWJsaWMgb3ZlcnJ1bGVkUHJpbnQ6IE92ZXJydWxlT3B0aW9ucztcclxuICBwdWJsaWMgcmVwb3J0SWRGb3JQcmludGluZzogbnVtYmVyO1xyXG4gIHB1YmxpYyByZXBvcnRJZEZvckVtYWlsOiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBkZWZhdWx0U2VuZE1ldGhvZDogc3RyaW5nO1xyXG4gIHByaXZhdGUgZGVmYXVsdFNlbmRNZXRob2RJbml0aWFsaXplZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHNlYXJjaFNlcnZpY2U6IFRyYW5zYWN0aW9uU2VhcmNoU2VydmljZSxcclxuICAgIHRyYW5zYWN0aW9uSGVhZGVyU2VydmljZTogVHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlLFxyXG4gICAgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHNjcmVlbkNvbmZpZ1NlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBpbWFnZVNlcnZpY2U6IFRyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlLFxyXG4gICAgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBkaWFsb2dTZXJ2aWNlOiBUcmFuc2FjdGlvbkRpYWxvZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2FsZXNSZXNlcnZhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2FsZXNSZXNlcnZhdGlvblNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKHNlYXJjaFNlcnZpY2UsIHRyYW5zYWN0aW9uSGVhZGVyU2VydmljZSwgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsIGljb25DYWNoZVNlcnZpY2UsIHNjcmVlbkNvbmZpZ1NlcnZpY2UsIGltYWdlU2VydmljZSwgZGljdGlvbmFyeVNlcnZpY2UsIHRyYW5zYWN0aW9uU2VydmljZSwgY2hhbmdlRGV0ZWN0b3IsIGRpYWxvZ1NlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnRyYW5zYWN0aW9uTGluZUNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2NoZWNrUHVyY2hhc2VPcmRlcnMoKSlcclxuICAgICk7XHJcbiAgICBjb25zdCB0cmFuc0l0ZW0gPSB0aGlzLnRyYW5zYWN0aW9uIGFzIHVua25vd24gYXMgVHJhbnNhY3Rpb25TZWFyY2hWaWV3O1xyXG4gICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5wdXNoKHRyYW5zSXRlbSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlbGVjdEFsbExpbmVzKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnNlbGVjdEFsbFNhbGVzT3JkZXJMaW5lc0ZvclB1cmNoYXNlLm5leHQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVNlbmQobWV0aG9kOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIGNvbnN0IGlzUHJpbnREZWZhdWx0TWV0aG9kOiBib29sZWFuID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuaXNQcmludElzRGVmYXVsdFNlbmRNZXRob2RGb3JQdXJjaGFzZU9yZGVyKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkKTtcclxuICAgIC8vIGlmIChpc1ByaW50RGVmYXVsdE1ldGhvZCkge1xyXG4gICAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgIC8qIH0gZWxzZSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucHJpbnREb2N1bWVudCh0aGlzLnJlcG9ydERvY3VtZW50UHJpbnRSZXF1ZXN0KTtcclxuICAgICAgdGhpcy5fc2V0RGVmYXVsdE1ldGhvZChtZXRob2QpO1xyXG4gICAgfSAqL1xyXG4gIH1cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2VuZE1ldGhvZE9rQ2xpY2sobWV0aG9kRGF0YTogYW55KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy51c2VEZWZhdWx0TGF5b3V0ID0gbWV0aG9kRGF0YS51c2VEZWZhdWx0TGF5b3V0O1xyXG4gICAgdGhpcy51c2VEZWZhdWx0U2hpcHBpbmdNZXRob2RzID0gbWV0aG9kRGF0YS51c2VEZWZhdWx0U2hpcHBpbmdNZXRob2RzO1xyXG4gICAgdGhpcy5zYXZlRGVmYXVsdFByaW50ZXJGb3JVc2VyID0gbWV0aG9kRGF0YS5zYXZlRGVmYXVsdFByaW50ZXJGb3JVc2VyO1xyXG4gICAgdGhpcy5zYXZlRGVmYXVsdFByaW50ZXJGb3JBbGxVc2VycyA9IG1ldGhvZERhdGEuc2F2ZURlZmF1bHRQcmludGVyRm9yQWxsVXNlcnM7XHJcbiAgICB0aGlzLnJlcG9ydElkRm9yUHJpbnRpbmcgPSBtZXRob2REYXRhLnJlcG9ydElkRm9yUHJpbnRpbmc/LnJlcG9ydElkO1xyXG4gICAgdGhpcy5yZXBvcnRJZEZvckVtYWlsID0gbWV0aG9kRGF0YS5yZXBvcnRJZEZvckVtYWlsPy5yZXBvcnRJZDtcclxuXHJcbiAgICBpZiAoIXRoaXMudXNlRGVmYXVsdFNoaXBwaW5nTWV0aG9kcykge1xyXG4gICAgICB0aGlzLm92ZXJydWxlZEVtYWlsID0gbWV0aG9kRGF0YS5vdmVycnVsZWRFbWFpbDtcclxuICAgICAgdGhpcy5vdmVycnVsZWRFZGkgPSBtZXRob2REYXRhLm92ZXJydWxlZEVkaTtcclxuICAgICAgdGhpcy5vdmVycnVsZWRQcmludCA9IG1ldGhvZERhdGEub3ZlcnJ1bGVkUHJpbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLnVzZURlZmF1bHRMYXlvdXQpIHtcclxuICAgICAgaWYgKHRoaXMucmVwb3J0SWRGb3JQcmludGluZykge1xyXG4gICAgICAgIHRoaXMucHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3QucmVwb3J0SWRGb3JQcmludGluZyA9IHRoaXMucmVwb3J0SWRGb3JQcmludGluZztcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5yZXBvcnRJZEZvckVtYWlsKSB7XHJcbiAgICAgICAgdGhpcy5wcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5yZXBvcnRJZEZvckVtYWlsID0gdGhpcy5yZXBvcnRJZEZvckVtYWlsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG1ldGhvZERhdGEucHJpbnRlck5hbWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFByaW50ZXIgPSB0aGlzLnByaW50ZXJMaXN0LmZpbmQocCA9PiBwLm5hbWUgPT09IG1ldGhvZERhdGEucHJpbnRlck5hbWUpIHx8IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC51c2VSZWxhdGlvblNwZWNpZmljUmVwb3J0cyA9IHRoaXMudXNlRGVmYXVsdExheW91dDtcclxuICAgIHRoaXMucHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3QudXNlUmVsYXRpb25TcGVjaWZpY1NlbmRNZXRob2RzID0gdGhpcy51c2VEZWZhdWx0U2hpcHBpbmdNZXRob2RzO1xyXG4gICAgdGhpcy5wcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5zYXZlRGVmYXVsdFByaW50ZXJGb3JVc2VyID0gdGhpcy5zYXZlRGVmYXVsdFByaW50ZXJGb3JVc2VyO1xyXG4gICAgdGhpcy5wcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5zYXZlRGVmYXVsdFByaW50ZXJGb3JBbGxVc2VycyA9IHRoaXMuc2F2ZURlZmF1bHRQcmludGVyRm9yQWxsVXNlcnM7XHJcbiAgICB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnByaW50ZXJOYW1lID0gdGhpcy5zZWxlY3RlZFByaW50ZXI/Lm5hbWUgfHwgbnVsbDtcclxuXHJcbiAgICBpZiAoIXRoaXMudXNlRGVmYXVsdFNoaXBwaW5nTWV0aG9kcykge1xyXG4gICAgICB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0Lm92ZXJydWxlU2VuZE1ldGhvZEZvckVtYWlsID0gdGhpcy5vdmVycnVsZWRFbWFpbD8uY29kZTtcclxuICAgICAgdGhpcy5wcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5vdmVycnVsZVNlbmRNZXRob2RGb3JQcmludGluZyA9IHRoaXMub3ZlcnJ1bGVkUHJpbnQ/LmNvZGU7XHJcbiAgICAgIHRoaXMucHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3Qub3ZlcnJ1bGVTZW5kTWV0aG9kRm9yRURJID0gdGhpcy5vdmVycnVsZWRFZGk/LmNvZGU7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMudXNlRGVmYXVsdExheW91dCkge1xyXG4gICAgICB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnJlcG9ydElkRm9yUHJpbnRpbmcgPSB0aGlzLnJlcG9ydElkRm9yUHJpbnRpbmc7XHJcbiAgICAgIHRoaXMucHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3QucmVwb3J0SWRGb3JFbWFpbCA9IHRoaXMucmVwb3J0SWRGb3JFbWFpbDtcclxuICAgIH1cclxuXHJcbiAgICBhd2FpdCB0aGlzLnByaW50RG9jdW1lbnQodGhpcy5yZXBvcnREb2N1bWVudFByaW50UmVxdWVzdCk7XHJcbiAgICB0aGlzLl9zZXREZWZhdWx0TWV0aG9kKHRoaXMuZGVmYXVsdFNlbmRNZXRob2QpO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVSZXNlcnZhdGlvbk1vZGVDbGljaygpIHtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uPy50cmFuc2FjdGlvbkluZm8/LmlkKSB7XHJcbiAgICAgIGlmICghdGhpcy50cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UucmVzZXJ2YXRpb25Nb2RlKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zYWxlc1Jlc2VydmF0aW9uU2VydmljZS5nZXRTYWxlc09yZGVyTGluZXModGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2FsZXNSZXNlcnZhdGlvblNlcnZpY2UucHVyY2hhc2VSZXNlcnZhdGlvbnMgPSBbXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UucmVzZXJ2YXRpb25Nb2RlID0gIXRoaXMudHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlLnJlc2VydmF0aW9uTW9kZTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UucmVzZXJ2YXRpb25TdGF0ZUNoYW5nZS5uZXh0KHRoaXMudHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlLnJlc2VydmF0aW9uTW9kZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblNldCgpIHtcclxuICAgIHN1cGVyLnRyYW5zYWN0aW9uU2V0KCk7XHJcbiAgICB0aGlzLl9jaGVja1B1cmNoYXNlT3JkZXJzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlblNlbmREaWFsb2coKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2FkRGVmYXVsdFByaW50ZXJOYW1lKHJlcG9ydElkOiBudW1iZXIpIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldERlZmF1bHRQcmludGVyKHJlcG9ydElkLCBMYXlvdXRDb2RlLk9yZGVyQ29uZmlybWF0aW9uKS50aGVuKChwcmludGVyTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGlmIChwcmludGVyTmFtZSAmJiB0aGlzLnByaW50ZXJMaXN0LmZpbmQoIChwcmludGVyOiBQcmludGVyKSA9PiBwcmludGVyLm5hbWUgPT09IHByaW50ZXJOYW1lKSkge1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFByaW50ZXJOYW1lID0gcHJpbnRlck5hbWU7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hlY2tQdXJjaGFzZU9yZGVycygpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FuR2VuZXJhdGUgPSB0aGlzLnRyYW5zYWN0aW9uTGluZXMgJiZcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmVzLmZpbHRlcihsID0+IGwuY29tbWlzc2lvbkNvZGUgPT09ICcwJyAmJiAobC5hcnRpY2xlTGluZVN0YXR1cyAmJiBsLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5T3JkZXJlZCAhPT0gbC5hbW91bnQpKS5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldERlZmF1bHRFbWFpbEFkZHJlc3NMaXN0KCk6IFByb21pc2U8c3RyaW5nW10+IHtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFzeW5jIGdldERlZmF1bHRTZW5kTWV0aG9kKCk6IFByb21pc2U8bnVtYmVyPiB7XHJcbiAgICBpZiAodGhpcy5kZWZhdWx0U2VuZE1ldGhvZEluaXRpYWxpemVkKSB7XHJcbiAgICAgIHJldHVybiBwYXJzZUludCh0aGlzLmRlZmF1bHRTZW5kTWV0aG9kKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGRlZmF1bHRNZXRob2ROdW1iZXIgPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5pc1ByaW50SXNEZWZhdWx0U2VuZE1ldGhvZEZvclB1cmNoYXNlT3JkZXIodGhpcy50cmFuc2FjdGlvbkluZm8uaWQpID8gMSA6IDI7XHJcblxyXG4gICAgdGhpcy5kZWZhdWx0U2VuZE1ldGhvZCA9IGRlZmF1bHRNZXRob2ROdW1iZXIudG9TdHJpbmcoKTtcclxuICAgIHRoaXMuZGVmYXVsdFNlbmRNZXRob2RJbml0aWFsaXplZCA9IHRydWU7XHJcblxyXG4gICAgcmV0dXJuIGRlZmF1bHRNZXRob2ROdW1iZXI7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0RW1haWxMYXlvdXRzKCk6IFByb21pc2U8UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWxbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldFB1cmNoYXNlT3JkZXJFbWFpbExheW91dHModGhpcy50cmFuc2FjdGlvbkluZm8udXVpZCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0UHJpbnRMYXlvdXRzKCk6IFByb21pc2U8UmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnRbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldFB1cmNoYXNlT3JkZXJQcmludExheW91dHModGhpcy50cmFuc2FjdGlvbkluZm8udXVpZCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcGRmRG9jdW1lbnQocmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCkge1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgZW1haWxEb2N1bWVudChyZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0KSB7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgcHJpbnREb2N1bWVudChyZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0KSB7XHJcbiAgICBjb25zdCBwcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdDogUHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3QgPSBPYmplY3QuYXNzaWduKG5ldyBQcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdCgpLCByZXF1ZXN0KTtcclxuICAgIHByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnVzZVJlbGF0aW9uU3BlY2lmaWNSZXBvcnRzID0gdGhpcy5wcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC51c2VSZWxhdGlvblNwZWNpZmljUmVwb3J0cyA/PyB0cnVlO1xyXG4gICAgcHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3QudXNlUmVsYXRpb25TcGVjaWZpY1NlbmRNZXRob2RzID0gdGhpcy5wcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC51c2VSZWxhdGlvblNwZWNpZmljU2VuZE1ldGhvZHMgPz8gdHJ1ZTtcclxuICAgIHByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnJlcG9ydElkRm9yUHJpbnRpbmcgPSB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnJlcG9ydElkRm9yUHJpbnRpbmc7XHJcbiAgICBwcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5yZXBvcnRJZEZvckVtYWlsID0gdGhpcy5wcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5yZXBvcnRJZEZvckVtYWlsO1xyXG4gICAgcHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3Qub3ZlcnJ1bGVTZW5kTWV0aG9kRm9yRW1haWwgPSB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0Lm92ZXJydWxlU2VuZE1ldGhvZEZvckVtYWlsO1xyXG4gICAgcHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3Qub3ZlcnJ1bGVTZW5kTWV0aG9kRm9yUHJpbnRpbmcgPSB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0Lm92ZXJydWxlU2VuZE1ldGhvZEZvclByaW50aW5nO1xyXG4gICAgcHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3Qub3ZlcnJ1bGVTZW5kTWV0aG9kRm9yRURJID0gdGhpcy5wcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5vdmVycnVsZVNlbmRNZXRob2RGb3JFREk7XHJcbiAgICBwcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5zYXZlRGVmYXVsdFByaW50ZXJGb3JVc2VyID0gdGhpcy5wcmludFB1cmNoYXNlT3JkZXJGb3JTYWxlc09yZGVyUmVxdWVzdC5zYXZlRGVmYXVsdFByaW50ZXJGb3JVc2VyO1xyXG4gICAgcHJpbnRQdXJjaGFzZU9yZGVyRm9yU2FsZXNPcmRlclJlcXVlc3Quc2F2ZURlZmF1bHRQcmludGVyRm9yQWxsVXNlcnMgPSB0aGlzLnByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LnNhdmVEZWZhdWx0UHJpbnRlckZvckFsbFVzZXJzO1xyXG4gICAgYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2VuZXJhdGVBbmRTZW5kUHVyY2hhc2VPcmRlcnNGb3JTYWxlc09yZGVyKHByaW50UHVyY2hhc2VPcmRlckZvclNhbGVzT3JkZXJSZXF1ZXN0LCB0aGlzLnRyYW5zYWN0aW9uSW5mby52ZXJzaW9uKTtcclxuICB9XHJcbn1cclxuIl19
@@ -42,11 +42,11 @@ export class TransactionSalesReservationService {
42
42
  return false;
43
43
  }
44
44
  }
45
- processReservation(reservationLines) {
45
+ processReservation(reservationLines, transId) {
46
46
  var _a;
47
47
  return __awaiter(this, void 0, void 0, function* () {
48
48
  let request = new ProcessOrderReservationRequest();
49
- request.transId = this._transaction.currentTransaction.transactionInfo.id;
49
+ request.transId = transId;
50
50
  request.lineId = this.lineNr;
51
51
  request.reservationLines = reservationLines;
52
52
  let response = yield this._transaction.processReservation(request);
@@ -81,4 +81,4 @@ TransactionSalesReservationService.decorators = [
81
81
  TransactionSalesReservationService.ctorParameters = () => [
82
82
  { type: TransactionService }
83
83
  ];
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2FsZXMtcmVzZXJ2YXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXJlc2VydmF0aW9uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2FsZXMtcmVzZXJ2YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFrQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUF5QjFFLE9BQU8sRUFDTCxzQ0FBc0MsRUFDdkMsTUFBTSxxRkFBcUYsQ0FBQztBQUU3RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUd4RSxPQUFPLEVBQ0wsOEJBQThCLEVBQy9CLE1BQU0sMkVBQTJFLENBQUM7OztBQUtuRixNQUFNLE9BQU8sa0NBQWtDO0lBUTdDLFlBQ1UsWUFBZ0M7UUFBaEMsaUJBQVksR0FBWixZQUFZLENBQW9CO1FBTm5DLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsMEJBQXFCLEdBQW1DLEVBQUUsQ0FBQztJQU0vRCxDQUFDO0lBR1Msa0JBQWtCLENBQUMsWUFBcUI7O1lBQ25ELElBQUcsWUFBWSxFQUFFO2dCQUNmLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7YUFDMUg7UUFDSCxDQUFDO0tBQUE7SUFDTSw2QkFBNkIsQ0FBQyxZQUFvQixFQUFFLHdCQUFpQyxFQUFFLGlCQUEyQixFQUFFLGNBQXdCLEVBQUUsVUFBbUI7UUFDdEssSUFBSSxPQUFPLEdBQTJDLElBQUksc0NBQXNDLEVBQUUsQ0FBQztRQUVuRyxPQUFPLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNwQyxPQUFPLENBQUMsd0JBQXdCLEdBQUcsd0JBQXdCLENBQUM7UUFDNUQsT0FBTyxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzlDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBRWhDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxZQUFvQixFQUFFLE1BQWM7UUFDOUQsSUFBRyxZQUFZLElBQUksTUFBTSxFQUFFO1lBQ3pCLElBQUksV0FBVyxHQUF3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFFLENBQUMsV0FBZ0MsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLFlBQVksS0FBSyxZQUFZLENBQUMsQ0FBQztZQUN4SixJQUFHLFdBQVcsRUFBRTtnQkFDZCxJQUFJLElBQUksR0FBaUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUUsQ0FBQyxJQUFrQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDO2dCQUMzSSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDZjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRVksa0JBQWtCLENBQUMsZ0JBQW1EOzs7WUFDakYsSUFBSSxPQUFPLEdBQW1DLElBQUksOEJBQThCLEVBQUUsQ0FBQztZQUNuRixPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUMxRSxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDN0IsT0FBTyxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1lBQzVDLElBQUksUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRSxJQUFJLE1BQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLGVBQWUsMENBQUUsRUFBRSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQztnQkFDaEQsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNqQyxJQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRTtvQkFDMUQsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUNyRztnQkFDRCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxJQUFJLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkOztLQUNGO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDMUIsQ0FBQzs7OztZQXhFRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVRPLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdDYWxlbmRhck1vZGVzfSBmcm9tIFwiLi4vLi4vLi4vZW51bS9kZWxpdmVyeS1wbGFubmluZy1jYWxlbmRhci1tb2Rlcy5lbnVtXCI7XHJcbmltcG9ydCB7Q2FsZW5kYXJWaWV3fSBmcm9tICdAY29saWpuaXQvc2hhcmVkY29tcG9uZW50cyc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1ZpZXdNb2Rlc30gZnJvbSBcIi4uLy4uLy4uL2VudW0vZGVsaXZlcnktcGxhbm5pbmctdmlldy1tb2Rlcy5lbnVtXCI7XHJcbmltcG9ydCB7UGxhbm5pbmd9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmcuYm9cIjtcclxuaW1wb3J0IHtTZXF1ZW5jZU5hbWV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9zZXF1ZW5jZS1uYW1lLmVudW1cIjtcclxuaW1wb3J0IHtQbGFubmluZ1RyYW5zcG9ydFdlZWtEYXl9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmctdHJhbnNwb3J0LXdlZWstZGF5LmJvXCI7XHJcbmltcG9ydCB7R2V0VHJhbnNwb3J0T3JkZXJzUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9nZXQtdHJhbnNwb3J0LW9yZGVycy1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7UGxhbm5pbmdUcmFuc3BvcnRXZWVrfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLXRyYW5zcG9ydC13ZWVrLmJvXCI7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ01vZGVzfSBmcm9tIFwiLi4vLi4vLi4vZW51bS9kZWxpdmVyeS1wbGFubmluZy1tb2Rlcy5lbnVtXCI7XHJcbmltcG9ydCB7UGxhbk9yZGVyfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXIuYm9cIjtcclxuaW1wb3J0IHtPcmRlckxpbmVzUGxhbm5lZFJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvb3JkZXItbGluZXMtcGxhbm5lZC1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7UGxhbm5pbmdGaWx0ZXJPYmplY3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmctZmlsdGVyLW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge0RlbGl2ZXJ5TWV0aG9kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW1ldGhvZC5ib1wiO1xyXG5pbXBvcnQge0Rpc3RyaWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2Rpc3RyaWN0LmJvXCI7XHJcbmltcG9ydCB7U2tpbGx9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvc2tpbGwuYm9cIjtcclxuaW1wb3J0IHtSZWxhdGlvbkxpc3RPYmplY3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tbGlzdC1vYmplY3QuYm9cIjtcclxuaW1wb3J0IHtVc2VyR3JvdXB9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdXNlci1ncm91cC5ib1wiO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdUaWxlTW9kZXN9IGZyb20gXCIuLi8uLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLXRpbGUtbW9kZXMuZW51bVwiO1xyXG5pbXBvcnQge1BsYW5PcmRlckxpbmV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi1vcmRlci1saW5lLmJvXCI7XHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1xyXG4gIFB1cmNoYXNlUmVzZXJ2YXRpb25QdXJjaGFzZUxpbmVcclxufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLXJlc2VydmF0aW9uLXB1cmNoYXNlLWxpbmUuYm9cIjtcclxuaW1wb3J0IHtcclxuICBPcmRlclJlc2VydmF0aW9uU2FsZXNPcmRlckxpbmVzUmVxdWVzdFxyXG59IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvb3JkZXItcmVzZXJ2YXRpb24tc2FsZXMtb3JkZXItbGluZXMtcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge1B1cmNoYXNlUmVzZXJ2YXRpb259IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcHVyY2hhc2UtcmVzZXJ2YXRpb24uYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZVwiO1xyXG5pbXBvcnQge1B1cmNoYXNlUmVzZXJ2YXRpb25TYWxlc0xpbmV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcHVyY2hhc2UtcmVzZXJ2YXRpb24tc2FsZXMtbGluZS5ib1wiO1xyXG5pbXBvcnQge1xyXG4gIFByb2Nlc3NPcmRlclJlc2VydmF0aW9uUmVxdWVzdFxyXG59IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcHJvY2Vzcy1vcmRlci1yZXNlcnZhdGlvbi1yZXF1ZXN0LmJvXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2FsZXNSZXNlcnZhdGlvblNlcnZpY2Uge1xyXG5cclxuXHJcbiAgcHVibGljIGxpbmVOcjogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgc2FsZXNSZXNlcnZhdGlvbkxpbmVzOiBQdXJjaGFzZVJlc2VydmF0aW9uU2FsZXNMaW5lW10gPSBbXTtcclxuICBwdWJsaWMgcHVyY2hhc2VSZXNlcnZhdGlvbnM6IFB1cmNoYXNlUmVzZXJ2YXRpb25bXTtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICApIHt9XHJcblxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U2FsZXNPcmRlckxpbmVzKHNhbGVzT3JkZXJJZCA6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYoc2FsZXNPcmRlcklkKSB7XHJcbiAgICAgIHRoaXMucHVyY2hhc2VSZXNlcnZhdGlvbnMgPSBhd2FpdCB0aGlzLl90cmFuc2FjdGlvbi5nZXRTYWxlc09yZGVyTGluZXModGhpcy5tYWtlR2V0U2FsZXNPcmRlckxpbmVzUmVxdWVzdChzYWxlc09yZGVySWQpKTtcclxuICAgIH1cclxuICB9XHJcbiAgcHVibGljIG1ha2VHZXRTYWxlc09yZGVyTGluZXNSZXF1ZXN0KHNhbGVzT3JkZXJJZDogbnVtYmVyLCBwdXJjaGFzZVRyYW5zYWN0aW9uT3JkZXI/OiBudW1iZXIsIGNvcnJlY3Rpb25BbGxvd2VkPzogYm9vbGVhbiwgY29ycmVjdGlvbk1vZGU/OiBib29sZWFuLCBzdXBwbGllck5vPzogbnVtYmVyKTogT3JkZXJSZXNlcnZhdGlvblNhbGVzT3JkZXJMaW5lc1JlcXVlc3Qge1xyXG4gICAgbGV0IHJlcXVlc3Q6IE9yZGVyUmVzZXJ2YXRpb25TYWxlc09yZGVyTGluZXNSZXF1ZXN0ID0gbmV3IE9yZGVyUmVzZXJ2YXRpb25TYWxlc09yZGVyTGluZXNSZXF1ZXN0KCk7XHJcblxyXG4gICAgcmVxdWVzdC5zYWxlc09yZGVySWQgPSBzYWxlc09yZGVySWQ7XHJcbiAgICByZXF1ZXN0LnB1cmNoYXNlVHJhbnNhY3Rpb25PcmRlciA9IHB1cmNoYXNlVHJhbnNhY3Rpb25PcmRlcjtcclxuICAgIHJlcXVlc3QuY29ycmVjdGlvbkFsbG93ZWQgPSBjb3JyZWN0aW9uQWxsb3dlZDtcclxuICAgIHJlcXVlc3QuY29ycmVjdGlvbk1vZGUgPSBjb3JyZWN0aW9uTW9kZTtcclxuICAgIHJlcXVlc3Quc3VwcGxpZXJObyA9IHN1cHBsaWVyTm87XHJcblxyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVzZXJ2YXRpb25BdmFpbGFibGUoc2FsZXNPcmRlcklkOiBudW1iZXIsIGxpbmVOcjogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICBpZihzYWxlc09yZGVySWQgJiYgbGluZU5yKSB7XHJcbiAgICAgIGxldCByZXNlcnZhdGlvbjogUHVyY2hhc2VSZXNlcnZhdGlvbiA9IHRoaXMucHVyY2hhc2VSZXNlcnZhdGlvbnMuZmluZCggKHJlc2VydmF0aW9uOiBQdXJjaGFzZVJlc2VydmF0aW9uKSA9PiByZXNlcnZhdGlvbi5zYWxlc09yZGVySWQgPT09IHNhbGVzT3JkZXJJZCk7XHJcbiAgICAgIGlmKHJlc2VydmF0aW9uKSB7XHJcbiAgICAgICAgbGV0IGxpbmU6IFB1cmNoYXNlUmVzZXJ2YXRpb25TYWxlc0xpbmUgPSByZXNlcnZhdGlvbi5zYWxlc09yZGVyTGluZXMuZmluZCggKGxpbmU6IFB1cmNoYXNlUmVzZXJ2YXRpb25TYWxlc0xpbmUpID0+IGxpbmUubGluZU5yID09PSBsaW5lTnIpO1xyXG4gICAgICAgIHJldHVybiAhIWxpbmU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcHJvY2Vzc1Jlc2VydmF0aW9uKHJlc2VydmF0aW9uTGluZXM6IFB1cmNoYXNlUmVzZXJ2YXRpb25QdXJjaGFzZUxpbmVbXSk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgbGV0IHJlcXVlc3Q6IFByb2Nlc3NPcmRlclJlc2VydmF0aW9uUmVxdWVzdCA9IG5ldyBQcm9jZXNzT3JkZXJSZXNlcnZhdGlvblJlcXVlc3QoKTtcclxuICAgIHJlcXVlc3QudHJhbnNJZCA9IHRoaXMuX3RyYW5zYWN0aW9uLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQ7XHJcbiAgICByZXF1ZXN0LmxpbmVJZCA9IHRoaXMubGluZU5yO1xyXG4gICAgcmVxdWVzdC5yZXNlcnZhdGlvbkxpbmVzID0gcmVzZXJ2YXRpb25MaW5lcztcclxuICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uLnByb2Nlc3NSZXNlcnZhdGlvbihyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZT8udHJhbnNhY3Rpb25JbmZvPy5pZCkge1xyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbi5jdXJyZW50VHJhbnNhY3Rpb24gPSByZXNwb25zZTtcclxuICAgICAgYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb24uc2F2ZVRyYW5zYWN0aW9uKHRydWUpO1xyXG4gICAgICBhd2FpdCB0aGlzLl90cmFuc2FjdGlvbi5jb21taXQoKTtcclxuICAgICAgaWYodGhpcy5fdHJhbnNhY3Rpb24uY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uLmdldFRyYW5zYWN0aW9uQnlJZCh0aGlzLl90cmFuc2FjdGlvbi5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKTtcclxuICAgICAgfVxyXG4gICAgICBhd2FpdCB0aGlzLmdldFNhbGVzT3JkZXJMaW5lcyhyZXF1ZXN0LnRyYW5zSWQpO1xyXG4gICAgICB0aGlzLnJlc2V0TGluZURhdGEoKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVzZXRMaW5lRGF0YSgpIHtcclxuICAgIHRoaXMuc2FsZXNSZXNlcnZhdGlvbkxpbmVzID0gW107XHJcbiAgICB0aGlzLnNhbGVzUmVzZXJ2YXRpb25MaW5lcyA9IFtdO1xyXG4gICAgdGhpcy5saW5lTnIgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuXHJcbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2FsZXMtcmVzZXJ2YXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXJlc2VydmF0aW9uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2FsZXMtcmVzZXJ2YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFrQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUF5QjFFLE9BQU8sRUFDTCxzQ0FBc0MsRUFDdkMsTUFBTSxxRkFBcUYsQ0FBQztBQUU3RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUd4RSxPQUFPLEVBQ0wsOEJBQThCLEVBQy9CLE1BQU0sMkVBQTJFLENBQUM7OztBQUtuRixNQUFNLE9BQU8sa0NBQWtDO0lBUTdDLFlBQ1UsWUFBZ0M7UUFBaEMsaUJBQVksR0FBWixZQUFZLENBQW9CO1FBTm5DLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsMEJBQXFCLEdBQW1DLEVBQUUsQ0FBQztJQU0vRCxDQUFDO0lBR1Msa0JBQWtCLENBQUMsWUFBcUI7O1lBQ25ELElBQUcsWUFBWSxFQUFFO2dCQUNmLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7YUFDMUg7UUFDSCxDQUFDO0tBQUE7SUFDTSw2QkFBNkIsQ0FBQyxZQUFvQixFQUFFLHdCQUFpQyxFQUFFLGlCQUEyQixFQUFFLGNBQXdCLEVBQUUsVUFBbUI7UUFDdEssSUFBSSxPQUFPLEdBQTJDLElBQUksc0NBQXNDLEVBQUUsQ0FBQztRQUVuRyxPQUFPLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNwQyxPQUFPLENBQUMsd0JBQXdCLEdBQUcsd0JBQXdCLENBQUM7UUFDNUQsT0FBTyxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzlDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBRWhDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxZQUFvQixFQUFFLE1BQWM7UUFDOUQsSUFBRyxZQUFZLElBQUksTUFBTSxFQUFFO1lBQ3pCLElBQUksV0FBVyxHQUF3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFFLENBQUMsV0FBZ0MsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLFlBQVksS0FBSyxZQUFZLENBQUMsQ0FBQztZQUN4SixJQUFHLFdBQVcsRUFBRTtnQkFDZCxJQUFJLElBQUksR0FBaUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUUsQ0FBQyxJQUFrQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDO2dCQUMzSSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7YUFDZjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRVksa0JBQWtCLENBQUMsZ0JBQW1ELEVBQUUsT0FBZTs7O1lBQ2xHLElBQUksT0FBTyxHQUFtQyxJQUFJLDhCQUE4QixFQUFFLENBQUM7WUFDbkYsT0FBTyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDMUIsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztZQUM1QyxJQUFJLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkUsSUFBSSxNQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxlQUFlLDBDQUFFLEVBQUUsRUFBRTtnQkFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUM7Z0JBQ2hELE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDakMsSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUU7b0JBQzFELE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDckc7Z0JBQ0QsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsT0FBTyxLQUFLLENBQUM7YUFDZDs7S0FDRjtJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzFCLENBQUM7Ozs7WUF4RUYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFUTyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tY29ubmVjdG9yLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nQ2FsZW5kYXJNb2Rlc30gZnJvbSBcIi4uLy4uLy4uL2VudW0vZGVsaXZlcnktcGxhbm5pbmctY2FsZW5kYXItbW9kZXMuZW51bVwiO1xyXG5pbXBvcnQge0NhbGVuZGFyVmlld30gZnJvbSAnQGNvbGlqbml0L3NoYXJlZGNvbXBvbmVudHMnO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdWaWV3TW9kZXN9IGZyb20gXCIuLi8uLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLXZpZXctbW9kZXMuZW51bVwiO1xyXG5pbXBvcnQge1BsYW5uaW5nfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLmJvXCI7XHJcbmltcG9ydCB7U2VxdWVuY2VOYW1lfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vc2VxdWVuY2UtbmFtZS5lbnVtXCI7XHJcbmltcG9ydCB7UGxhbm5pbmdUcmFuc3BvcnRXZWVrRGF5fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLXRyYW5zcG9ydC13ZWVrLWRheS5ib1wiO1xyXG5pbXBvcnQge0dldFRyYW5zcG9ydE9yZGVyc1JlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZ2V0LXRyYW5zcG9ydC1vcmRlcnMtcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge1BsYW5uaW5nVHJhbnNwb3J0V2Vla30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy10cmFuc3BvcnQtd2Vlay5ib1wiO1xyXG5pbXBvcnQge0RlbGl2ZXJ5UGxhbm5pbmdNb2Rlc30gZnJvbSBcIi4uLy4uLy4uL2VudW0vZGVsaXZlcnktcGxhbm5pbmctbW9kZXMuZW51bVwiO1xyXG5pbXBvcnQge1BsYW5PcmRlcn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFuLW9yZGVyLmJvXCI7XHJcbmltcG9ydCB7T3JkZXJMaW5lc1BsYW5uZWRSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLWxpbmVzLXBsYW5uZWQtcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge1BsYW5uaW5nRmlsdGVyT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLWZpbHRlci1vYmplY3QuYm9cIjtcclxuaW1wb3J0IHtEZWxpdmVyeU1ldGhvZH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kZWxpdmVyeS1tZXRob2QuYm9cIjtcclxuaW1wb3J0IHtEaXN0cmljdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kaXN0cmljdC5ib1wiO1xyXG5pbXBvcnQge1NraWxsfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3NraWxsLmJvXCI7XHJcbmltcG9ydCB7UmVsYXRpb25MaXN0T2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWxpc3Qtb2JqZWN0LmJvXCI7XHJcbmltcG9ydCB7VXNlckdyb3VwfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3VzZXItZ3JvdXAuYm9cIjtcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nVGlsZU1vZGVzfSBmcm9tIFwiLi4vLi4vLi4vZW51bS9kZWxpdmVyeS1wbGFubmluZy10aWxlLW1vZGVzLmVudW1cIjtcclxuaW1wb3J0IHtQbGFuT3JkZXJMaW5lfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXItbGluZS5ib1wiO1xyXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtcclxuICBQdXJjaGFzZVJlc2VydmF0aW9uUHVyY2hhc2VMaW5lXHJcbn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wdXJjaGFzZS1yZXNlcnZhdGlvbi1wdXJjaGFzZS1saW5lLmJvXCI7XHJcbmltcG9ydCB7XHJcbiAgT3JkZXJSZXNlcnZhdGlvblNhbGVzT3JkZXJMaW5lc1JlcXVlc3RcclxufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLXJlc2VydmF0aW9uLXNhbGVzLW9yZGVyLWxpbmVzLXJlcXVlc3QuYm9cIjtcclxuaW1wb3J0IHtQdXJjaGFzZVJlc2VydmF0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLXJlc2VydmF0aW9uLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtQdXJjaGFzZVJlc2VydmF0aW9uU2FsZXNMaW5lfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLXJlc2VydmF0aW9uLXNhbGVzLWxpbmUuYm9cIjtcclxuaW1wb3J0IHtcclxuICBQcm9jZXNzT3JkZXJSZXNlcnZhdGlvblJlcXVlc3RcclxufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3Byb2Nlc3Mtb3JkZXItcmVzZXJ2YXRpb24tcmVxdWVzdC5ib1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblNhbGVzUmVzZXJ2YXRpb25TZXJ2aWNlIHtcclxuXHJcblxyXG4gIHB1YmxpYyBsaW5lTnI6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIHNhbGVzUmVzZXJ2YXRpb25MaW5lczogUHVyY2hhc2VSZXNlcnZhdGlvblNhbGVzTGluZVtdID0gW107XHJcbiAgcHVibGljIHB1cmNoYXNlUmVzZXJ2YXRpb25zOiBQdXJjaGFzZVJlc2VydmF0aW9uW107XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFNhbGVzT3JkZXJMaW5lcyhzYWxlc09yZGVySWQgOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmKHNhbGVzT3JkZXJJZCkge1xyXG4gICAgICB0aGlzLnB1cmNoYXNlUmVzZXJ2YXRpb25zID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb24uZ2V0U2FsZXNPcmRlckxpbmVzKHRoaXMubWFrZUdldFNhbGVzT3JkZXJMaW5lc1JlcXVlc3Qoc2FsZXNPcmRlcklkKSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHB1YmxpYyBtYWtlR2V0U2FsZXNPcmRlckxpbmVzUmVxdWVzdChzYWxlc09yZGVySWQ6IG51bWJlciwgcHVyY2hhc2VUcmFuc2FjdGlvbk9yZGVyPzogbnVtYmVyLCBjb3JyZWN0aW9uQWxsb3dlZD86IGJvb2xlYW4sIGNvcnJlY3Rpb25Nb2RlPzogYm9vbGVhbiwgc3VwcGxpZXJObz86IG51bWJlcik6IE9yZGVyUmVzZXJ2YXRpb25TYWxlc09yZGVyTGluZXNSZXF1ZXN0IHtcclxuICAgIGxldCByZXF1ZXN0OiBPcmRlclJlc2VydmF0aW9uU2FsZXNPcmRlckxpbmVzUmVxdWVzdCA9IG5ldyBPcmRlclJlc2VydmF0aW9uU2FsZXNPcmRlckxpbmVzUmVxdWVzdCgpO1xyXG5cclxuICAgIHJlcXVlc3Quc2FsZXNPcmRlcklkID0gc2FsZXNPcmRlcklkO1xyXG4gICAgcmVxdWVzdC5wdXJjaGFzZVRyYW5zYWN0aW9uT3JkZXIgPSBwdXJjaGFzZVRyYW5zYWN0aW9uT3JkZXI7XHJcbiAgICByZXF1ZXN0LmNvcnJlY3Rpb25BbGxvd2VkID0gY29ycmVjdGlvbkFsbG93ZWQ7XHJcbiAgICByZXF1ZXN0LmNvcnJlY3Rpb25Nb2RlID0gY29ycmVjdGlvbk1vZGU7XHJcbiAgICByZXF1ZXN0LnN1cHBsaWVyTm8gPSBzdXBwbGllck5vO1xyXG5cclxuICAgIHJldHVybiByZXF1ZXN0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlc2VydmF0aW9uQXZhaWxhYmxlKHNhbGVzT3JkZXJJZDogbnVtYmVyLCBsaW5lTnI6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgaWYoc2FsZXNPcmRlcklkICYmIGxpbmVOcikge1xyXG4gICAgICBsZXQgcmVzZXJ2YXRpb246IFB1cmNoYXNlUmVzZXJ2YXRpb24gPSB0aGlzLnB1cmNoYXNlUmVzZXJ2YXRpb25zLmZpbmQoIChyZXNlcnZhdGlvbjogUHVyY2hhc2VSZXNlcnZhdGlvbikgPT4gcmVzZXJ2YXRpb24uc2FsZXNPcmRlcklkID09PSBzYWxlc09yZGVySWQpO1xyXG4gICAgICBpZihyZXNlcnZhdGlvbikge1xyXG4gICAgICAgIGxldCBsaW5lOiBQdXJjaGFzZVJlc2VydmF0aW9uU2FsZXNMaW5lID0gcmVzZXJ2YXRpb24uc2FsZXNPcmRlckxpbmVzLmZpbmQoIChsaW5lOiBQdXJjaGFzZVJlc2VydmF0aW9uU2FsZXNMaW5lKSA9PiBsaW5lLmxpbmVOciA9PT0gbGluZU5yKTtcclxuICAgICAgICByZXR1cm4gISFsaW5lO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHByb2Nlc3NSZXNlcnZhdGlvbihyZXNlcnZhdGlvbkxpbmVzOiBQdXJjaGFzZVJlc2VydmF0aW9uUHVyY2hhc2VMaW5lW10sIHRyYW5zSWQ6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgbGV0IHJlcXVlc3Q6IFByb2Nlc3NPcmRlclJlc2VydmF0aW9uUmVxdWVzdCA9IG5ldyBQcm9jZXNzT3JkZXJSZXNlcnZhdGlvblJlcXVlc3QoKTtcclxuICAgIHJlcXVlc3QudHJhbnNJZCA9IHRyYW5zSWQ7XHJcbiAgICByZXF1ZXN0LmxpbmVJZCA9IHRoaXMubGluZU5yO1xyXG4gICAgcmVxdWVzdC5yZXNlcnZhdGlvbkxpbmVzID0gcmVzZXJ2YXRpb25MaW5lcztcclxuICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uLnByb2Nlc3NSZXNlcnZhdGlvbihyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZT8udHJhbnNhY3Rpb25JbmZvPy5pZCkge1xyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbi5jdXJyZW50VHJhbnNhY3Rpb24gPSByZXNwb25zZTtcclxuICAgICAgYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb24uc2F2ZVRyYW5zYWN0aW9uKHRydWUpO1xyXG4gICAgICBhd2FpdCB0aGlzLl90cmFuc2FjdGlvbi5jb21taXQoKTtcclxuICAgICAgaWYodGhpcy5fdHJhbnNhY3Rpb24uY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uLmdldFRyYW5zYWN0aW9uQnlJZCh0aGlzLl90cmFuc2FjdGlvbi5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKTtcclxuICAgICAgfVxyXG4gICAgICBhd2FpdCB0aGlzLmdldFNhbGVzT3JkZXJMaW5lcyhyZXF1ZXN0LnRyYW5zSWQpO1xyXG4gICAgICB0aGlzLnJlc2V0TGluZURhdGEoKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVzZXRMaW5lRGF0YSgpIHtcclxuICAgIHRoaXMuc2FsZXNSZXNlcnZhdGlvbkxpbmVzID0gW107XHJcbiAgICB0aGlzLnNhbGVzUmVzZXJ2YXRpb25MaW5lcyA9IFtdO1xyXG4gICAgdGhpcy5saW5lTnIgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuXHJcbiJdfQ==