@colijnit/transaction 12.1.153 → 12.1.154

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 (40) hide show
  1. package/bundles/colijnit-transaction.umd.js +113 -29
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.metadata.json +1 -1
  4. package/esm2015/lib/cache/service/business-object-cache-manager.service.js +7 -1
  5. package/esm2015/lib/cache/service/select-single-cache.service.js +7 -4
  6. package/esm2015/lib/component/checkout/checkout.component.js +5 -1
  7. package/esm2015/lib/component/deposit-payment/deposit-payment.component.js +4 -3
  8. package/esm2015/lib/component/payment/payment.component.js +54 -37
  9. package/esm2015/lib/component/payment/payment.module.js +4 -3
  10. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +8 -5
  11. package/esm2015/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line-base.component.js +4 -1
  12. package/esm2015/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line.component.js +2 -6
  13. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date-button.component.js +2 -2
  14. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-delivery-date-button.component.js +36 -6
  15. package/esm2015/lib/component/transaction-line-purchase-confirmation/transaction-line-purchase-confirmation.component.js +5 -5
  16. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.component.js +3 -3
  17. package/esm2015/lib/service/relation.service.js +19 -11
  18. package/esm2015/lib/service/transaction-base.service.js +9 -1
  19. package/esm2015/lib/transaction-version.js +3 -3
  20. package/fesm2015/colijnit-transaction.js +150 -71
  21. package/fesm2015/colijnit-transaction.js.map +1 -1
  22. package/lib/cache/service/business-object-cache-manager.service.d.ts +3 -0
  23. package/lib/cache/service/select-single-cache.service.d.ts +5 -5
  24. package/lib/component/checkout/checkout.component.d.ts +4 -0
  25. package/lib/component/deposit-payment/style/_layout.scss +3 -1
  26. package/lib/component/deposit-payment/style/_material-definition.scss +2 -2
  27. package/lib/component/payment/payment.component.d.ts +4 -1
  28. package/lib/component/payment/style/_layout.scss +64 -35
  29. package/lib/component/payment/style/_material-definition.scss +1 -1
  30. package/lib/component/payment/style/_theme.scss +0 -3
  31. package/lib/component/payment-tile/style/_layout.scss +5 -3
  32. package/lib/component/payment-to-pay/style/_layout.scss +6 -5
  33. package/lib/component/payment-to-pay/style/_material-definition.scss +4 -4
  34. package/lib/component/stepper/style/_material-definition.scss +4 -4
  35. package/lib/component/transaction/style/_layout.scss +1 -1
  36. package/lib/component/transaction-header/transaction-header-payment/style/_layout.scss +17 -0
  37. package/lib/component/transaction-line-fields/transaction-line-delivery-date-button.component.d.ts +2 -2
  38. package/lib/component/transaction-line-fields/transaction-line-supplier-delivery-date-button.component.d.ts +6 -1
  39. package/lib/service/transaction-base.service.d.ts +2 -0
  40. package/package.json +1 -1
@@ -107,6 +107,12 @@ export class BusinessObjectCacheManagerService {
107
107
  const cacheId = id.toString();
108
108
  return this._selectSingleCache.has(key) && this._selectSingleCache.get(key)[cacheId];
109
109
  }
110
+ deleteSingleCacheItem(key, id = BusinessObjectCacheManagerService._NullBoId) {
111
+ const cacheId = id.toString();
112
+ if (this._selectSingleCache.has(key)) {
113
+ this._selectSingleCache.delete(key);
114
+ }
115
+ }
110
116
  // Returns the parameterized cache item with the given key. T is the type of the cache value items requested, e.g. Color.
111
117
  getSelectMultipleParameterCacheItem(key) {
112
118
  return this._selectMultipleParameterizedCache.get(key);
@@ -147,4 +153,4 @@ BusinessObjectCacheManagerService.decorators = [
147
153
  providedIn: "root"
148
154
  },] }
149
155
  ];
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzaW5lc3Mtb2JqZWN0LWNhY2hlLW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY2FjaGUvc2VydmljZS9idXNpbmVzcy1vYmplY3QtY2FjaGUtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLE9BQU8sRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFN0QsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtEQUFrRCxDQUFDOztBQUc3RTs7Ozs7Ozs7O0dBU0c7QUFLSCxNQUFNLE9BQU8saUNBQWlDO0lBSjlDO1FBS0UsOEVBQThFO1FBQzlELFVBQUssR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUkzRCx5RkFBeUY7UUFDakYseUJBQW9CLEdBQTJDLElBQUksR0FBRyxFQUFFLENBQUM7UUFFakYseUZBQXlGO1FBQ2pGLHNDQUFpQyxHQUNyQyxJQUFJLEdBQUcsRUFBOEMsQ0FBQztRQUVsRCx1QkFBa0IsR0FBaUYsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3RyxvQ0FBK0IsR0FDbkMsSUFBSSxHQUFHLEVBQW9DLENBQUM7S0E0SmpEO0lBeEpDLGlFQUFpRTtJQUNqRSx3RUFBd0U7SUFDeEUscUJBQXFCO0lBQ3JCLFFBQVE7SUFDUixJQUFJO0lBRUosV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDZCQUE2QixDQUNsQyxHQUFRLEVBQ1IsWUFBZ0MsRUFDaEMsY0FBdUIs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QUFJLEtBQUssRUFBRTtnQkFDVCxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQXNDLEVBQUUsRUFBRTtvQkFDM0UsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNyQixDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQUMsb0JBQXlELEVBQUUsRUFBRTtZQUN6RyxJQUFJLG9CQUFvQixFQUFFO2dCQUN4QixvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUM5QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLG9CQUEyRCxFQUFFLEVBQUU7WUFDN0csSUFBSSxvQkFBb0IsRUFBRTtnQkFDeEIsb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDOUI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7QUF0S2MsMkNBQVMsR0FBVyxDQUFDLENBQUMsQ0FBQzs7O1lBUnZDLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0NhY2hlRmllbGR9IGZyb20gJy4uL2NhY2hlLWZpZWxkJztcclxuaW1wb3J0IHtQYXJhbWV0ZXJDYWNoZUZpZWxkfSBmcm9tICcuLi9wYXJhbWV0ZXItY2FjaGUtZmllbGQnO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9idXNpbmVzcy1vYmplY3QnO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC91dGlscy9vYmplY3QtdXRpbHMnO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0SURUeXBlfSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC90eXBlL2J1c2luZXNzLW9iamVjdC1pZC10eXBlJztcclxuXHJcbi8qKlxyXG4gKiBBcHAtd2lkZSwgdG9wLWxldmVsLCAnZHVtYicgQk8gY2FjaGUgbWFuYWdlciBzZXJ2aWNlLiBJdCBzdG9yZXMgYW5kIHJldHVybnMgc2ltcGxlIGFuZCBwYXJhbWV0ZXJpemVkIGJ1c2luZXNzIG9iamVjdCBjYWNoZSBpdGVtcy5cclxuICpcclxuICogU2V2ZXJhbCBvdGhlciBzZXJ2aWNlcyByZWdpc3RlciBjYWNoZSBpdGVtcyBvbnRvIHRoaXMgbWFuYWdlciwgc3VjaCBhcyByZXBvc2l0b3JpZXMgb3IgdGhlIG1vcmUgZ2VuZXJpYyBTZWxlY3RNdWx0aXBsZVNpbXBsZUNhY2hlU2VydmljZS5cclxuICpcclxuICogVGhpcyBpcyBhIGR1bWIgY2FjaGUgbWFuYWdlci4gSXQganVzdCBmdW5jdGlvbnMgYXMgYSBwb2ludCB0byBhZGQgYW5kIHJldHJpZXZlIGdlbmVyaWMgY2FjaGUgaXRlbXMsIGJ1dCBkb2VzIG5vdCBrbm93IGhvdyB0byBhY3R1YWxseVxyXG4gKiBMT0FEIHRoZXNlIGNhY2hlIGl0ZW1zIGZyb20gdGhlIGRhdGFiYXNlLCBvciB3aGF0IGV4YWN0IHR5cGVzIHRoZSBpdGVtcyBhcmUuXHJcbiAqXHJcbiAqIEFsbCBjYWNoZXMgYXJlIHJlc2V0IHdoZW4gdGhlIHVzZXIgbG9ncyBvdXQuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG4gIH1cclxuKVxyXG5leHBvcnQgY2xhc3MgQnVzaW5lc3NPYmplY3RDYWNoZU1hbmFnZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAvLyBlbWl0cyBhZnRlciB0aGlzIEJPIGNhY2hlIG1hbmFnZXIgaGFzIGJlZW4gcmVzZXQgKGUuZy4gYWZ0ZXIgdXNlciBsb2dzIG91dClcclxuICBwdWJsaWMgcmVhZG9ubHkgcmVzZXQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyBfTnVsbEJvSWQ6IG51bWJlciA9IC0xO1xyXG5cclxuICAvLyBrZXk6IGdsb2JhbCBjYWNoZSBpZCdzLCBlLmcuIGEgbW9kZWwgY2xhc3NlIG9yIGFueSBvdGhlciBhcmJpdHJhcnkga2V5IGZvciBjYWNoZSBpdGVtc1xyXG4gIHByaXZhdGUgX3NlbGVjdE11bHRpcGxlQ2FjaGU6IE1hcDxhbnksIENhY2hlRmllbGQ8QnVzaW5lc3NPYmplY3RbXT4+ID0gbmV3IE1hcCgpO1xyXG5cclxuICAvLyBrZXk6IGdsb2JhbCBjYWNoZSBpZCdzLCBlLmcuIGEgbW9kZWwgY2xhc3NlIG9yIGFueSBvdGhlciBhcmJpdHJhcnkga2V5IGZvciBjYWNoZSBpdGVtc1xyXG4gIHByaXZhdGUgX3NlbGVjdE11bHRpcGxlUGFyYW1ldGVyaXplZENhY2hlOiBNYXA8YW55LCBQYXJhbWV0ZXJDYWNoZUZpZWxkPEJ1c2luZXNzT2JqZWN0W10+PlxyXG4gICAgPSBuZXcgTWFwPGFueSwgUGFyYW1ldGVyQ2FjaGVGaWVsZDxCdXNpbmVzc09iamVjdFtdPj4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfc2VsZWN0U2luZ2xlQ2FjaGU6IE1hcDx7IG5ldygpOiBCdXNpbmVzc09iamVjdCB9LCB7IFtpZDogc3RyaW5nXTogQ2FjaGVGaWVsZDxCdXNpbmVzc09iamVjdD4gfT4gPSBuZXcgTWFwKCk7XHJcbiAgcHJpdmF0ZSBfc2VsZWN0U2luZ2xlUGFyYW1ldGVyaXplZENhY2hlOiBNYXA8YW55LCBQYXJhbWV0ZXJDYWNoZUZpZWxkPE9iamVjdD4+XHJcbiAgICA9IG5ldyBNYXA8YW55LCBQYXJhbWV0ZXJDYWNoZUZpZWxkPE9iamVjdD4+KCk7XHJcblxyXG4gIHByaXZhdGUgX2xvZ291dFN1YjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvLyBjb25zdHJ1Y3Rvcihwcml2YXRlIF90cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSkge1xyXG4gIC8vICAgdGhpcy5fbG9nb3V0U3ViID0gdGhpcy5fdHJhbnNhY3Rpb25TZXJ2aWNlLmxvZ291dC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gIC8vICAgICB0aGlzLl9yZXNldCgpO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2xvZ291dFN1Yi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhbmQgYWRkcyBhIG5ldyBzaW1wbGUgY2FjaGUgaXRlbSBmb3IgdGhlIGdpdmVuIGtleSB3aXRoIHRoZSBnaXZlbiBsb2FkIGZ1bmN0aW9uLlxyXG4gICAqIEBwYXJhbSBrZXlcclxuICAgKiBAcGFyYW0gbG9hZEZ1bmN0aW9uIGUuZy4gKCkgPT4geyByZXR1cm4gdGhpcy5fZGF0YVNlcnZpY2Uuc2VsZWN0TXVsdGlwbGUoQ29sb3IpOyB9XHJcbiAgICogQHBhcmFtIG92ZXJyaWRlT2xkIFdoZXRoZXIgdG8gYWxsb3cgYW4gb2xkIGNhY2hlIGl0ZW0gd2l0aCB0aGUgc2FtZSBrZXkgdG8gYmVjb21lIG92ZXJyaWRlIGJ5IHRoaXMgbmV3bHkgY3JlYXRlZCBjYWNoZSBpdGVtLlxyXG4gICAqIEByZXR1cm5zIFRoZSBuZXdseSBjcmVhdGVkIGNhY2hlIGl0ZW0uXHJcbiAgICovXHJcbiAgcHVibGljIGFkZE5ld1NlbGVjdE11bHRpcGxlQ2FjaGVJdGVtPFQgZXh0ZW5kcyBCdXNpbmVzc09iamVjdD4oXHJcbiAgICBrZXk6IGFueSxcclxuICAgIGxvYWRGdW5jdGlvbjogKCkgPT4gUHJvbWlzZTxUW10+LFxyXG4gICAgb3ZlcnJpZGVPbGQ6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICk6IENhY2hlRmllbGQ8VFtdPiB7XHJcbiAgICBpZiAoIW92ZXJyaWRlT2xkICYmIHRoaXMuX3NlbGVjdE11bHRpcGxlQ2FjaGUuaGFzKGtleSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5ld0NhY2hlSXRlbTogQ2FjaGVGaWVsZDxUW10+ID0gbmV3IENhY2hlRmllbGQ8VFtdPigpO1xyXG4gICAgbmV3Q2FjaGVJdGVtLmxvYWRGdW5jdGlvbiA9IGxvYWRGdW5jdGlvbjtcclxuICAgIHRoaXMuX3NlbGVjdE11bHRpcGxlQ2FjaGUuc2V0KGtleSwgbmV3Q2FjaGVJdGVtKTtcclxuICAgIHJldHVybiBuZXdDYWNoZUl0ZW07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkTmV3U2VsZWN0U2luZ2xlQ2FjaGVJdGVtPFQgZXh0ZW5kcyBCdXNpbmVzc09iamVjdD4oXHJcbiAgICBrZXk6IHsgbmV3KCk6IFQgfSxcclxuICAgIGlkOiBCdXNpbmVzc09iamVjdElEVHlwZSA9IEJ1c2luZXNzT2JqZWN0Q2FjaGVNYW5hZ2VyU2VydmljZS5fTnVsbEJvSWQsXHJcbiAgICBsb2FkRnVuY3Rpb246ICgpID0+IFByb21pc2U8VD4sXHJcbiAgICBvdmVycmlkZU9sZDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKTogQ2FjaGVGaWVsZDxUPiB7XHJcbiAgICBjb25zdCBjYWNoZUlkOiBzdHJpbmcgPSBpZC50b1N0cmluZygpO1xyXG4gICAgaWYgKCFvdmVycmlkZU9sZCAmJiB0aGlzLmhhc1NpbmdsZUNhY2hlSXRlbShrZXksIGlkKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuX3NlbGVjdFNpbmdsZUNhY2hlLmhhcyhrZXkpKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdFNpbmdsZUNhY2hlLnNldChrZXksIHt9KTtcclxuICAgIH1cclxuICAgIGNvbnN0IG5ld0NhY2hlSXRlbTogQ2FjaGVGaWVsZDxUPiA9IG5ldyBDYWNoZUZpZWxkPFQ+KCk7XHJcbiAgICBuZXdDYWNoZUl0ZW0ubG9hZEZ1bmN0aW9uID0gbG9hZEZ1bmN0aW9uO1xyXG4gICAgdGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGUuZ2V0KGtleSlbY2FjaGVJZF0gPSBuZXdDYWNoZUl0ZW07XHJcbiAgICByZXR1cm4gbmV3Q2FjaGVJdGVtO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZE5ld1NlbGVjdFNpbmdsZVBhcmFtZXRlcml6ZWRDYWNoZUl0ZW08VCBleHRlbmRzIE9iamVjdD4oXHJcbiAgICBrZXk6IGFueSxcclxuICAgIGxvYWRGdW5jdGlvbjogKHBhcmFtcz86IGFueSkgPT4gUHJvbWlzZTxUPixcclxuICAgIG92ZXJyaWRlT2xkOiBib29sZWFuID0gZmFsc2VcclxuICApOiBQYXJhbWV0ZXJDYWNoZUZpZWxkPFQ+IHtcclxuICAgIGlmICghb3ZlcnJpZGVPbGQgJiYgdGhpcy5fc2VsZWN0U2luZ2xlUGFyYW1ldGVyaXplZENhY2hlLmhhcyhrZXkpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBuZXdDYWNoZUl0ZW06IFBhcmFtZXRlckNhY2hlRmllbGQ8VD4gPSBuZXcgUGFyYW1ldGVyQ2FjaGVGaWVsZDxUPigpO1xyXG4gICAgbmV3Q2FjaGVJdGVtLmxvYWRGdW5jdGlvbiA9IGxvYWRGdW5jdGlvbjtcclxuICAgIHRoaXMuX3NlbGVjdFNpbmdsZVBhcmFtZXRlcml6ZWRDYWNoZS5zZXQoa2V5LCBuZXdDYWNoZUl0ZW0pO1xyXG4gICAgcmV0dXJuIG5ld0NhY2hlSXRlbTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW5kIGFkZHMgYSBuZXcgcGFyYW1ldGVyaXplZCBjYWNoZSBpdGVtIGZvciB0aGUgZ2l2ZW4ga2V5IHdpdGggdGhlIGdpdmVuIGxvYWQgZnVuY3Rpb24uXHJcbiAgICogQHBhcmFtIGtleVxyXG4gICAqIEBwYXJhbSBsb2FkRnVuY3Rpb24gZS5nLiAoY2F0ZWdvcnk6IEFydGljbGVDYXRlZ29yeSkgPT4geyByZXR1cm4gdGhpcy5fZGF0YVNlcnZpY2Uuc2VsZWN0TXVsdGlwbGUoVHVybm92ZXJHcm91cEltYWdlLCBjYXRlZ29yeSk7IH1cclxuICAgKiBAcGFyYW0gb3ZlcnJpZGVPbGQgV2hldGhlciB0byBhbGxvdyBhbiBvbGQgY2FjaGUgaXRlbSB3aXRoIHRoZSBzYW1lIGtleSB0byBiZWNvbWUgb3ZlcnJpZGUgYnkgdGhpcyBuZXdseSBjcmVhdGVkIGNhY2hlIGl0ZW0uXHJcbiAgICovXHJcbiAgcHVibGljIGFkZE5ld1NlbGVjdE11bHRpcGxlUGFyYW1ldGVyaXplZENhY2hlSXRlbTxUIGV4dGVuZHMgQnVzaW5lc3NPYmplY3Q+KFxyXG4gICAga2V5OiBhbnksXHJcbiAgICBsb2FkRnVuY3Rpb246IChwYXJhbXM/OiBhbnkpID0+IFByb21pc2U8VFtdPixcclxuICAgIG92ZXJyaWRlT2xkOiBib29sZWFuID0gZmFsc2VcclxuICApOiBQYXJhbWV0ZXJDYWNoZUZpZWxkPFRbXT4ge1xyXG4gICAgaWYgKCFvdmVycmlkZU9sZCAmJiB0aGlzLl9zZWxlY3RNdWx0aXBsZVBhcmFtZXRlcml6ZWRDYWNoZS5oYXMoa2V5KSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbmV3Q2FjaGVJdGVtOiBQYXJhbWV0ZXJDYWNoZUZpZWxkPFRbXT4gPSBuZXcgUGFyYW1ldGVyQ2FjaGVGaWVsZDxUW10+KCk7XHJcbiAgICBuZXdDYWNoZUl0ZW0ubG9hZEZ1bmN0aW9uID0gbG9hZEZ1bmN0aW9uO1xyXG4gICAgdGhpcy5fc2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGUuc2V0KGtleSwgbmV3Q2FjaGVJdGVtKTtcclxuICAgIHJldHVybiBuZXdDYWNoZUl0ZW07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFzU2VsZWN0TXVsdGlwbGVDYWNoZUl0ZW0oa2V5OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RNdWx0aXBsZUNhY2hlLmhhcyhrZXkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc1NpbmdsZUNhY2hlSXRlbTxUIGV4dGVuZHMgQnVzaW5lc3NPYmplY3Q+KGtleTogeyBuZXcoKTogVCB9LCBpZDogQnVzaW5lc3NPYmplY3RJRFR5cGUgPSBCdXNpbmVzc09iamVjdENhY2hlTWFuYWdlclNlcnZpY2UuX051bGxCb0lkKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjYWNoZUlkOiBzdHJpbmcgPSBpZC50b1N0cmluZygpO1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdFNpbmdsZUNhY2hlLmhhcyhrZXkpICYmICEhdGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGUuZ2V0KGtleSlbY2FjaGVJZF07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFzU2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVJdGVtKGtleTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGUuaGFzKGtleSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFzU2VsZWN0U2luZ2xlUGFyYW1ldGVyaXplZENhY2hlSXRlbShrZXk6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdFNpbmdsZVBhcmFtZXRlcml6ZWRDYWNoZS5oYXMoa2V5KTtcclxuICB9XHJcblxyXG4gIC8vIFJldHVybnMgdGhlIHNpbXBsZSBjYWNoZSBpdGVtIHdpdGggdGhlIGdpdmVuIGtleS4gVCBpcyB0aGUgdHlwZSBvZiB0aGUgY2FjaGUgdmFsdWUgaXRlbXMgcmVxdWVzdGVkLCBlLmcuIENvbG9yLlxyXG4gIHB1YmxpYyBnZXRTZWxlY3RNdWx0aXBsZUNhY2hlSXRlbTxUIGV4dGVuZHMgQnVzaW5lc3NPYmplY3Q+KGtleTogYW55KTogQ2FjaGVGaWVsZDxUW10+IHtcclxuICAgIHJldHVybiA8Q2FjaGVGaWVsZDxUW10+PnRoaXMuX3NlbGVjdE11bHRpcGxlQ2FjaGUuZ2V0KGtleSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2luZ2xlQ2FjaGVJdGVtPFQgZXh0ZW5kcyBCdXNpbmVzc09iamVjdD4oa2V5OiB7IG5ldygpOiBUIH0sIGlkOiBCdXNpbmVzc09iamVjdElEVHlwZSA9IEJ1c2luZXNzT2JqZWN0Q2FjaGVNYW5hZ2VyU2VydmljZS5fTnVsbEJvSWQpOiBDYWNoZUZpZWxkPFQ+IHtcclxuICAgIGNvbnN0IGNhY2hlSWQ6IHN0cmluZyA9IGlkLnRvU3RyaW5nKCk7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGUuaGFzKGtleSkgJiYgdGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGUuZ2V0KGtleSlbY2FjaGVJZF0gYXMgQ2FjaGVGaWVsZDxUPjtcclxuICB9XHJcblxyXG4gIC8vIFJldHVybnMgdGhlIHBhcmFtZXRlcml6ZWQgY2FjaGUgaXRlbSB3aXRoIHRoZSBnaXZlbiBrZXkuIFQgaXMgdGhlIHR5cGUgb2YgdGhlIGNhY2hlIHZhbHVlIGl0ZW1zIHJlcXVlc3RlZCwgZS5nLiBDb2xvci5cclxuICBwdWJsaWMgZ2V0U2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJDYWNoZUl0ZW08VCBleHRlbmRzIEJ1c2luZXNzT2JqZWN0PihrZXk6IGFueSk6IFBhcmFtZXRlckNhY2hlRmllbGQ8VFtdPiB7XHJcbiAgICByZXR1cm4gPFBhcmFtZXRlckNhY2hlRmllbGQ8VFtdPj50aGlzLl9zZWxlY3RNdWx0aXBsZVBhcmFtZXRlcml6ZWRDYWNoZS5nZXQoa2V5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTZWxlY3RTaW5nbGVQYXJhbWV0ZXJDYWNoZUl0ZW08VD4oa2V5OiBhbnkpOiBQYXJhbWV0ZXJDYWNoZUZpZWxkPFQ+IHtcclxuICAgIHJldHVybiA8UGFyYW1ldGVyQ2FjaGVGaWVsZDxUPj50aGlzLl9zZWxlY3RTaW5nbGVQYXJhbWV0ZXJpemVkQ2FjaGUuZ2V0KGtleSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZXNldCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NlbGVjdE11bHRpcGxlQ2FjaGUuZm9yRWFjaCgoY2FjaGVJdGVtOiBDYWNoZUZpZWxkPEJ1c2luZXNzT2JqZWN0W10+KSA9PiB7XHJcbiAgICAgIGlmIChjYWNoZUl0ZW0pIHtcclxuICAgICAgICBjYWNoZUl0ZW0ucmVzZXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGUuZm9yRWFjaCgoY2FjaGU6IHsgW3A6IHN0cmluZ106IENhY2hlRmllbGQ8QnVzaW5lc3NPYmplY3Q+IH0pID0+IHtcclxuICAgICAgaWYgKGNhY2hlKSB7XHJcbiAgICAgICAgT2JqZWN0VXRpbHMuRm9yT3duUHJvcGVydHkoY2FjaGUsIChjYWNoZUZpZWxkOiBDYWNoZUZpZWxkPEJ1c2luZXNzT2JqZWN0PikgPT4ge1xyXG4gICAgICAgICAgY2FjaGVGaWVsZC5yZXNldCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9zZWxlY3RTaW5nbGVQYXJhbWV0ZXJpemVkQ2FjaGUuZm9yRWFjaCgoc2VsU2luUGFyYW1DYWNoZUl0ZW06IFBhcmFtZXRlckNhY2hlRmllbGQ8QnVzaW5lc3NPYmplY3Q+KSA9PiB7XHJcbiAgICAgIGlmIChzZWxTaW5QYXJhbUNhY2hlSXRlbSkge1xyXG4gICAgICAgIHNlbFNpblBhcmFtQ2FjaGVJdGVtLnJlc2V0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX3NlbGVjdE11bHRpcGxlUGFyYW1ldGVyaXplZENhY2hlLmZvckVhY2goKHNlbE11bFBhcmFtQ2FjaGVJdGVtOiBQYXJhbWV0ZXJDYWNoZUZpZWxkPEJ1c2luZXNzT2JqZWN0W10+KSA9PiB7XHJcbiAgICAgIGlmIChzZWxNdWxQYXJhbUNhY2hlSXRlbSkge1xyXG4gICAgICAgIHNlbE11bFBhcmFtQ2FjaGVJdGVtLnJlc2V0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVzZXQubmV4dCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzaW5lc3Mtb2JqZWN0LWNhY2hlLW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY2FjaGUvc2VydmljZS9idXNpbmVzcy1vYmplY3QtY2FjaGUtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLE9BQU8sRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFN0QsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtEQUFrRCxDQUFDOztBQUc3RTs7Ozs7Ozs7O0dBU0c7QUFLSCxNQUFNLE9BQU8saUNBQWlDO0lBSjlDO1FBS0UsOEVBQThFO1FBQzlELFVBQUssR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUkzRCx5RkFBeUY7UUFDakYseUJBQW9CLEdBQTJDLElBQUksR0FBRyxFQUFFLENBQUM7UUFFakYseUZBQXlGO1FBQ2pGLHNDQUFpQyxHQUNyQyxJQUFJLEdBQUcsRUFBOEMsQ0FBQztRQUVsRCx1QkFBa0IsR0FBaUYsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3RyxvQ0FBK0IsR0FDbkMsSUFBSSxHQUFHLEVBQW9DLENBQUM7S0FtS2pEO0lBL0pDLGlFQUFpRTtJQUNqRSx3RUFBd0U7SUFDeEUscUJBQXFCO0lBQ3JCLFFBQVE7SUFDUixJQUFJO0lBRUosV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDZCQUE2QixDQUNsQyxHQUFRLEVBQ1IsWUFBZ0MsRUFDaEMsY0FBdUIs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QUM7SUFDL0UsQ0FBQztJQUVPLE1BQU07UUFDWixJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBdUMsRUFBRSxFQUFFO1lBQzVFLElBQUksU0FBUyxFQUFFO2dCQUNiLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNuQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQWtELEVBQUUsRUFBRTtZQUNyRixJQUFJLEtBQUssRUFBRTtnQkFDVCxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQXNDLEVBQUUsRUFBRTtvQkFDM0UsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNyQixDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQUMsb0JBQXlELEVBQUUsRUFBRTtZQUN6RyxJQUFJLG9CQUFvQixFQUFFO2dCQUN4QixvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUM5QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLG9CQUEyRCxFQUFFLEVBQUU7WUFDN0csSUFBSSxvQkFBb0IsRUFBRTtnQkFDeEIsb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDOUI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7QUE3S2MsMkNBQVMsR0FBVyxDQUFDLENBQUMsQ0FBQzs7O1lBUnZDLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0NhY2hlRmllbGR9IGZyb20gJy4uL2NhY2hlLWZpZWxkJztcclxuaW1wb3J0IHtQYXJhbWV0ZXJDYWNoZUZpZWxkfSBmcm9tICcuLi9wYXJhbWV0ZXItY2FjaGUtZmllbGQnO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9idXNpbmVzcy1vYmplY3QnO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC91dGlscy9vYmplY3QtdXRpbHMnO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0SURUeXBlfSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC90eXBlL2J1c2luZXNzLW9iamVjdC1pZC10eXBlJztcclxuXHJcbi8qKlxyXG4gKiBBcHAtd2lkZSwgdG9wLWxldmVsLCAnZHVtYicgQk8gY2FjaGUgbWFuYWdlciBzZXJ2aWNlLiBJdCBzdG9yZXMgYW5kIHJldHVybnMgc2ltcGxlIGFuZCBwYXJhbWV0ZXJpemVkIGJ1c2luZXNzIG9iamVjdCBjYWNoZSBpdGVtcy5cclxuICpcclxuICogU2V2ZXJhbCBvdGhlciBzZXJ2aWNlcyByZWdpc3RlciBjYWNoZSBpdGVtcyBvbnRvIHRoaXMgbWFuYWdlciwgc3VjaCBhcyByZXBvc2l0b3JpZXMgb3IgdGhlIG1vcmUgZ2VuZXJpYyBTZWxlY3RNdWx0aXBsZVNpbXBsZUNhY2hlU2VydmljZS5cclxuICpcclxuICogVGhpcyBpcyBhIGR1bWIgY2FjaGUgbWFuYWdlci4gSXQganVzdCBmdW5jdGlvbnMgYXMgYSBwb2ludCB0byBhZGQgYW5kIHJldHJpZXZlIGdlbmVyaWMgY2FjaGUgaXRlbXMsIGJ1dCBkb2VzIG5vdCBrbm93IGhvdyB0byBhY3R1YWxseVxyXG4gKiBMT0FEIHRoZXNlIGNhY2hlIGl0ZW1zIGZyb20gdGhlIGRhdGFiYXNlLCBvciB3aGF0IGV4YWN0IHR5cGVzIHRoZSBpdGVtcyBhcmUuXHJcbiAqXHJcbiAqIEFsbCBjYWNoZXMgYXJlIHJlc2V0IHdoZW4gdGhlIHVzZXIgbG9ncyBvdXQuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG4gIH1cclxuKVxyXG5leHBvcnQgY2xhc3MgQnVzaW5lc3NPYmplY3RDYWNoZU1hbmFnZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAvLyBlbWl0cyBhZnRlciB0aGlzIEJPIGNhY2hlIG1hbmFnZXIgaGFzIGJlZW4gcmVzZXQgKGUuZy4gYWZ0ZXIgdXNlciBsb2dzIG91dClcclxuICBwdWJsaWMgcmVhZG9ubHkgcmVzZXQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyBfTnVsbEJvSWQ6IG51bWJlciA9IC0xO1xyXG5cclxuICAvLyBrZXk6IGdsb2JhbCBjYWNoZSBpZCdzLCBlLmcuIGEgbW9kZWwgY2xhc3NlIG9yIGFueSBvdGhlciBhcmJpdHJhcnkga2V5IGZvciBjYWNoZSBpdGVtc1xyXG4gIHByaXZhdGUgX3NlbGVjdE11bHRpcGxlQ2FjaGU6IE1hcDxhbnksIENhY2hlRmllbGQ8QnVzaW5lc3NPYmplY3RbXT4+ID0gbmV3IE1hcCgpO1xyXG5cclxuICAvLyBrZXk6IGdsb2JhbCBjYWNoZSBpZCdzLCBlLmcuIGEgbW9kZWwgY2xhc3NlIG9yIGFueSBvdGhlciBhcmJpdHJhcnkga2V5IGZvciBjYWNoZSBpdGVtc1xyXG4gIHByaXZhdGUgX3NlbGVjdE11bHRpcGxlUGFyYW1ldGVyaXplZENhY2hlOiBNYXA8YW55LCBQYXJhbWV0ZXJDYWNoZUZpZWxkPEJ1c2luZXNzT2JqZWN0W10+PlxyXG4gICAgPSBuZXcgTWFwPGFueSwgUGFyYW1ldGVyQ2FjaGVGaWVsZDxCdXNpbmVzc09iamVjdFtdPj4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfc2VsZWN0U2luZ2xlQ2FjaGU6IE1hcDx7IG5ldygpOiBCdXNpbmVzc09iamVjdCB9LCB7IFtpZDogc3RyaW5nXTogQ2FjaGVGaWVsZDxCdXNpbmVzc09iamVjdD4gfT4gPSBuZXcgTWFwKCk7XHJcbiAgcHJpdmF0ZSBfc2VsZWN0U2luZ2xlUGFyYW1ldGVyaXplZENhY2hlOiBNYXA8YW55LCBQYXJhbWV0ZXJDYWNoZUZpZWxkPE9iamVjdD4+XHJcbiAgICA9IG5ldyBNYXA8YW55LCBQYXJhbWV0ZXJDYWNoZUZpZWxkPE9iamVjdD4+KCk7XHJcblxyXG4gIHByaXZhdGUgX2xvZ291dFN1YjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvLyBjb25zdHJ1Y3Rvcihwcml2YXRlIF90cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSkge1xyXG4gIC8vICAgdGhpcy5fbG9nb3V0U3ViID0gdGhpcy5fdHJhbnNhY3Rpb25TZXJ2aWNlLmxvZ291dC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gIC8vICAgICB0aGlzLl9yZXNldCgpO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2xvZ291dFN1Yi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhbmQgYWRkcyBhIG5ldyBzaW1wbGUgY2FjaGUgaXRlbSBmb3IgdGhlIGdpdmVuIGtleSB3aXRoIHRoZSBnaXZlbiBsb2FkIGZ1bmN0aW9uLlxyXG4gICAqIEBwYXJhbSBrZXlcclxuICAgKiBAcGFyYW0gbG9hZEZ1bmN0aW9uIGUuZy4gKCkgPT4geyByZXR1cm4gdGhpcy5fZGF0YVNlcnZpY2Uuc2VsZWN0TXVsdGlwbGUoQ29sb3IpOyB9XHJcbiAgICogQHBhcmFtIG92ZXJyaWRlT2xkIFdoZXRoZXIgdG8gYWxsb3cgYW4gb2xkIGNhY2hlIGl0ZW0gd2l0aCB0aGUgc2FtZSBrZXkgdG8gYmVjb21lIG92ZXJyaWRlIGJ5IHRoaXMgbmV3bHkgY3JlYXRlZCBjYWNoZSBpdGVtLlxyXG4gICAqIEByZXR1cm5zIFRoZSBuZXdseSBjcmVhdGVkIGNhY2hlIGl0ZW0uXHJcbiAgICovXHJcbiAgcHVibGljIGFkZE5ld1NlbGVjdE11bHRpcGxlQ2FjaGVJdGVtPFQgZXh0ZW5kcyBCdXNpbmVzc09iamVjdD4oXHJcbiAgICBrZXk6IGFueSxcclxuICAgIGxvYWRGdW5jdGlvbjogKCkgPT4gUHJvbWlzZTxUW10+LFxyXG4gICAgb3ZlcnJpZGVPbGQ6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICk6IENhY2hlRmllbGQ8VFtdPiB7XHJcbiAgICBpZiAoIW92ZXJyaWRlT2xkICYmIHRoaXMuX3NlbGVjdE11bHRpcGxlQ2FjaGUuaGFzKGtleSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5ld0NhY2hlSXRlbTogQ2FjaGVGaWVsZDxUW10+ID0gbmV3IENhY2hlRmllbGQ8VFtdPigpO1xyXG4gICAgbmV3Q2FjaGVJdGVtLmxvYWRGdW5jdGlvbiA9IGxvYWRGdW5jdGlvbjtcclxuICAgIHRoaXMuX3NlbGVjdE11bHRpcGxlQ2FjaGUuc2V0KGtleSwgbmV3Q2FjaGVJdGVtKTtcclxuICAgIHJldHVybiBuZXdDYWNoZUl0ZW07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkTmV3U2VsZWN0U2luZ2xlQ2FjaGVJdGVtPFQgZXh0ZW5kcyBCdXNpbmVzc09iamVjdD4oXHJcbiAgICBrZXk6IHsgbmV3KCk6IFQgfSxcclxuICAgIGlkOiBCdXNpbmVzc09iamVjdElEVHlwZSA9IEJ1c2luZXNzT2JqZWN0Q2FjaGVNYW5hZ2VyU2VydmljZS5fTnVsbEJvSWQsXHJcbiAgICBsb2FkRnVuY3Rpb246ICgpID0+IFByb21pc2U8VD4sXHJcbiAgICBvdmVycmlkZU9sZDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKTogQ2FjaGVGaWVsZDxUPiB7XHJcbiAgICBjb25zdCBjYWNoZUlkOiBzdHJpbmcgPSBpZC50b1N0cmluZygpO1xyXG4gICAgaWYgKCFvdmVycmlkZU9sZCAmJiB0aGlzLmhhc1NpbmdsZUNhY2hlSXRlbShrZXksIGlkKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuX3NlbGVjdFNpbmdsZUNhY2hlLmhhcyhrZXkpKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdFNpbmdsZUNhY2hlLnNldChrZXksIHt9KTtcclxuICAgIH1cclxuICAgIGNvbnN0IG5ld0NhY2hlSXRlbTogQ2FjaGVGaWVsZDxUPiA9IG5ldyBDYWNoZUZpZWxkPFQ+KCk7XHJcbiAgICBuZXdDYWNoZUl0ZW0ubG9hZEZ1bmN0aW9uID0gbG9hZEZ1bmN0aW9uO1xyXG4gICAgdGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGUuZ2V0KGtleSlbY2FjaGVJZF0gPSBuZXdDYWNoZUl0ZW07XHJcbiAgICByZXR1cm4gbmV3Q2FjaGVJdGVtO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZE5ld1NlbGVjdFNpbmdsZVBhcmFtZXRlcml6ZWRDYWNoZUl0ZW08VCBleHRlbmRzIE9iamVjdD4oXHJcbiAgICBrZXk6IGFueSxcclxuICAgIGxvYWRGdW5jdGlvbjogKHBhcmFtcz86IGFueSkgPT4gUHJvbWlzZTxUPixcclxuICAgIG92ZXJyaWRlT2xkOiBib29sZWFuID0gZmFsc2VcclxuICApOiBQYXJhbWV0ZXJDYWNoZUZpZWxkPFQ+IHtcclxuICAgIGlmICghb3ZlcnJpZGVPbGQgJiYgdGhpcy5fc2VsZWN0U2luZ2xlUGFyYW1ldGVyaXplZENhY2hlLmhhcyhrZXkpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBuZXdDYWNoZUl0ZW06IFBhcmFtZXRlckNhY2hlRmllbGQ8VD4gPSBuZXcgUGFyYW1ldGVyQ2FjaGVGaWVsZDxUPigpO1xyXG4gICAgbmV3Q2FjaGVJdGVtLmxvYWRGdW5jdGlvbiA9IGxvYWRGdW5jdGlvbjtcclxuICAgIHRoaXMuX3NlbGVjdFNpbmdsZVBhcmFtZXRlcml6ZWRDYWNoZS5zZXQoa2V5LCBuZXdDYWNoZUl0ZW0pO1xyXG4gICAgcmV0dXJuIG5ld0NhY2hlSXRlbTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW5kIGFkZHMgYSBuZXcgcGFyYW1ldGVyaXplZCBjYWNoZSBpdGVtIGZvciB0aGUgZ2l2ZW4ga2V5IHdpdGggdGhlIGdpdmVuIGxvYWQgZnVuY3Rpb24uXHJcbiAgICogQHBhcmFtIGtleVxyXG4gICAqIEBwYXJhbSBsb2FkRnVuY3Rpb24gZS5nLiAoY2F0ZWdvcnk6IEFydGljbGVDYXRlZ29yeSkgPT4geyByZXR1cm4gdGhpcy5fZGF0YVNlcnZpY2Uuc2VsZWN0TXVsdGlwbGUoVHVybm92ZXJHcm91cEltYWdlLCBjYXRlZ29yeSk7IH1cclxuICAgKiBAcGFyYW0gb3ZlcnJpZGVPbGQgV2hldGhlciB0byBhbGxvdyBhbiBvbGQgY2FjaGUgaXRlbSB3aXRoIHRoZSBzYW1lIGtleSB0byBiZWNvbWUgb3ZlcnJpZGUgYnkgdGhpcyBuZXdseSBjcmVhdGVkIGNhY2hlIGl0ZW0uXHJcbiAgICovXHJcbiAgcHVibGljIGFkZE5ld1NlbGVjdE11bHRpcGxlUGFyYW1ldGVyaXplZENhY2hlSXRlbTxUIGV4dGVuZHMgQnVzaW5lc3NPYmplY3Q+KFxyXG4gICAga2V5OiBhbnksXHJcbiAgICBsb2FkRnVuY3Rpb246IChwYXJhbXM/OiBhbnkpID0+IFByb21pc2U8VFtdPixcclxuICAgIG92ZXJyaWRlT2xkOiBib29sZWFuID0gZmFsc2VcclxuICApOiBQYXJhbWV0ZXJDYWNoZUZpZWxkPFRbXT4ge1xyXG4gICAgaWYgKCFvdmVycmlkZU9sZCAmJiB0aGlzLl9zZWxlY3RNdWx0aXBsZVBhcmFtZXRlcml6ZWRDYWNoZS5oYXMoa2V5KSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbmV3Q2FjaGVJdGVtOiBQYXJhbWV0ZXJDYWNoZUZpZWxkPFRbXT4gPSBuZXcgUGFyYW1ldGVyQ2FjaGVGaWVsZDxUW10+KCk7XHJcbiAgICBuZXdDYWNoZUl0ZW0ubG9hZEZ1bmN0aW9uID0gbG9hZEZ1bmN0aW9uO1xyXG4gICAgdGhpcy5fc2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGUuc2V0KGtleSwgbmV3Q2FjaGVJdGVtKTtcclxuICAgIHJldHVybiBuZXdDYWNoZUl0ZW07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFzU2VsZWN0TXVsdGlwbGVDYWNoZUl0ZW0oa2V5OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RNdWx0aXBsZUNhY2hlLmhhcyhrZXkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc1NpbmdsZUNhY2hlSXRlbTxUIGV4dGVuZHMgQnVzaW5lc3NPYmplY3Q+KGtleTogeyBuZXcoKTogVCB9LCBpZDogQnVzaW5lc3NPYmplY3RJRFR5cGUgPSBCdXNpbmVzc09iamVjdENhY2hlTWFuYWdlclNlcnZpY2UuX051bGxCb0lkKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjYWNoZUlkOiBzdHJpbmcgPSBpZC50b1N0cmluZygpO1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdFNpbmdsZUNhY2hlLmhhcyhrZXkpICYmICEhdGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGUuZ2V0KGtleSlbY2FjaGVJZF07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFzU2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVJdGVtKGtleTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGUuaGFzKGtleSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFzU2VsZWN0U2luZ2xlUGFyYW1ldGVyaXplZENhY2hlSXRlbShrZXk6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdFNpbmdsZVBhcmFtZXRlcml6ZWRDYWNoZS5oYXMoa2V5KTtcclxuICB9XHJcblxyXG4gIC8vIFJldHVybnMgdGhlIHNpbXBsZSBjYWNoZSBpdGVtIHdpdGggdGhlIGdpdmVuIGtleS4gVCBpcyB0aGUgdHlwZSBvZiB0aGUgY2FjaGUgdmFsdWUgaXRlbXMgcmVxdWVzdGVkLCBlLmcuIENvbG9yLlxyXG4gIHB1YmxpYyBnZXRTZWxlY3RNdWx0aXBsZUNhY2hlSXRlbTxUIGV4dGVuZHMgQnVzaW5lc3NPYmplY3Q+KGtleTogYW55KTogQ2FjaGVGaWVsZDxUW10+IHtcclxuICAgIHJldHVybiA8Q2FjaGVGaWVsZDxUW10+PnRoaXMuX3NlbGVjdE11bHRpcGxlQ2FjaGUuZ2V0KGtleSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2luZ2xlQ2FjaGVJdGVtPFQgZXh0ZW5kcyBCdXNpbmVzc09iamVjdD4oa2V5OiB7IG5ldygpOiBUIH0sIGlkOiBCdXNpbmVzc09iamVjdElEVHlwZSA9IEJ1c2luZXNzT2JqZWN0Q2FjaGVNYW5hZ2VyU2VydmljZS5fTnVsbEJvSWQpOiBDYWNoZUZpZWxkPFQ+IHtcclxuICAgIGNvbnN0IGNhY2hlSWQ6IHN0cmluZyA9IGlkLnRvU3RyaW5nKCk7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGUuaGFzKGtleSkgJiYgdGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGUuZ2V0KGtleSlbY2FjaGVJZF0gYXMgQ2FjaGVGaWVsZDxUPjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWxldGVTaW5nbGVDYWNoZUl0ZW08VCBleHRlbmRzIEJ1c2luZXNzT2JqZWN0PihrZXk6IHsgbmV3KCk6IFQgfSwgaWQ6IEJ1c2luZXNzT2JqZWN0SURUeXBlID0gQnVzaW5lc3NPYmplY3RDYWNoZU1hbmFnZXJTZXJ2aWNlLl9OdWxsQm9JZCk6IHZvaWQge1xyXG4gICAgY29uc3QgY2FjaGVJZDogc3RyaW5nID0gaWQudG9TdHJpbmcoKTtcclxuICAgIGlmICh0aGlzLl9zZWxlY3RTaW5nbGVDYWNoZS5oYXMoa2V5KSkge1xyXG4gICAgICB0aGlzLl9zZWxlY3RTaW5nbGVDYWNoZS5kZWxldGUoa2V5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFJldHVybnMgdGhlIHBhcmFtZXRlcml6ZWQgY2FjaGUgaXRlbSB3aXRoIHRoZSBnaXZlbiBrZXkuIFQgaXMgdGhlIHR5cGUgb2YgdGhlIGNhY2hlIHZhbHVlIGl0ZW1zIHJlcXVlc3RlZCwgZS5nLiBDb2xvci5cclxuICBwdWJsaWMgZ2V0U2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJDYWNoZUl0ZW08VCBleHRlbmRzIEJ1c2luZXNzT2JqZWN0PihrZXk6IGFueSk6IFBhcmFtZXRlckNhY2hlRmllbGQ8VFtdPiB7XHJcbiAgICByZXR1cm4gPFBhcmFtZXRlckNhY2hlRmllbGQ8VFtdPj50aGlzLl9zZWxlY3RNdWx0aXBsZVBhcmFtZXRlcml6ZWRDYWNoZS5nZXQoa2V5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTZWxlY3RTaW5nbGVQYXJhbWV0ZXJDYWNoZUl0ZW08VD4oa2V5OiBhbnkpOiBQYXJhbWV0ZXJDYWNoZUZpZWxkPFQ+IHtcclxuICAgIHJldHVybiA8UGFyYW1ldGVyQ2FjaGVGaWVsZDxUPj50aGlzLl9zZWxlY3RTaW5nbGVQYXJhbWV0ZXJpemVkQ2FjaGUuZ2V0KGtleSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZXNldCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NlbGVjdE11bHRpcGxlQ2FjaGUuZm9yRWFjaCgoY2FjaGVJdGVtOiBDYWNoZUZpZWxkPEJ1c2luZXNzT2JqZWN0W10+KSA9PiB7XHJcbiAgICAgIGlmIChjYWNoZUl0ZW0pIHtcclxuICAgICAgICBjYWNoZUl0ZW0ucmVzZXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGUuZm9yRWFjaCgoY2FjaGU6IHsgW3A6IHN0cmluZ106IENhY2hlRmllbGQ8QnVzaW5lc3NPYmplY3Q+IH0pID0+IHtcclxuICAgICAgaWYgKGNhY2hlKSB7XHJcbiAgICAgICAgT2JqZWN0VXRpbHMuRm9yT3duUHJvcGVydHkoY2FjaGUsIChjYWNoZUZpZWxkOiBDYWNoZUZpZWxkPEJ1c2luZXNzT2JqZWN0PikgPT4ge1xyXG4gICAgICAgICAgY2FjaGVGaWVsZC5yZXNldCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9zZWxlY3RTaW5nbGVQYXJhbWV0ZXJpemVkQ2FjaGUuZm9yRWFjaCgoc2VsU2luUGFyYW1DYWNoZUl0ZW06IFBhcmFtZXRlckNhY2hlRmllbGQ8QnVzaW5lc3NPYmplY3Q+KSA9PiB7XHJcbiAgICAgIGlmIChzZWxTaW5QYXJhbUNhY2hlSXRlbSkge1xyXG4gICAgICAgIHNlbFNpblBhcmFtQ2FjaGVJdGVtLnJlc2V0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX3NlbGVjdE11bHRpcGxlUGFyYW1ldGVyaXplZENhY2hlLmZvckVhY2goKHNlbE11bFBhcmFtQ2FjaGVJdGVtOiBQYXJhbWV0ZXJDYWNoZUZpZWxkPEJ1c2luZXNzT2JqZWN0W10+KSA9PiB7XHJcbiAgICAgIGlmIChzZWxNdWxQYXJhbUNhY2hlSXRlbSkge1xyXG4gICAgICAgIHNlbE11bFBhcmFtQ2FjaGVJdGVtLnJlc2V0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVzZXQubmV4dCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,12 +1,15 @@
1
- import { Injectable } from "@angular/core";
2
- import { BusinessObjectCacheManagerService } from "./business-object-cache-manager.service";
1
+ import { Injectable } from '@angular/core';
2
+ import { BusinessObjectCacheManagerService } from './business-object-cache-manager.service';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "./business-object-cache-manager.service";
5
5
  export class SelectSingleCacheService {
6
6
  constructor(_boCacheManager) {
7
7
  this._boCacheManager = _boCacheManager;
8
8
  }
9
- requestCache(clazz, sourceId, loadFunction) {
9
+ requestCache(clazz, sourceId, loadFunction, reload = false) {
10
+ if (reload) {
11
+ this._boCacheManager.deleteSingleCacheItem(clazz, sourceId);
12
+ }
10
13
  if (!this._boCacheManager.hasSingleCacheItem(clazz, sourceId)) {
11
14
  this._createCacheItem(clazz, sourceId, loadFunction);
12
15
  }
@@ -27,4 +30,4 @@ SelectSingleCacheService.decorators = [
27
30
  SelectSingleCacheService.ctorParameters = () => [
28
31
  { type: BusinessObjectCacheManagerService }
29
32
  ];
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNpbmdsZS1jYWNoZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jYWNoZS9zZXJ2aWNlL3NlbGVjdC1zaW5nbGUtY2FjaGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHlDQUF5QyxDQUFDOzs7QUFRMUYsTUFBTSxPQUFPLHdCQUF3QjtJQUVuQyxZQUFvQixlQUFrRDtRQUFsRCxvQkFBZSxHQUFmLGVBQWUsQ0FBbUM7SUFDdEUsQ0FBQztJQUVNLFlBQVksQ0FBMkIsS0FBbUIsRUFBRSxRQUE4QixFQUFFLFlBQThCO1FBQy9ILElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFJLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRTtZQUNoRSxJQUFJLENBQUMsZ0JBQWdCLENBQUksS0FBSyxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUN6RDtRQUVELHVDQUF1QztRQUN2QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUksS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTyxnQkFBZ0IsQ0FBMkIsS0FBbUIsRUFBRSxRQUE4QixFQUFFLFlBQThCO1FBQ3BJLHVDQUF1QztRQUN2QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsMkJBQTJCLENBQUksS0FBSyxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM1RixDQUFDOzs7O1lBcEJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBUE8saUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0Q2FjaGVNYW5hZ2VyU2VydmljZX0gZnJvbSBcIi4vYnVzaW5lc3Mtb2JqZWN0LWNhY2hlLW1hbmFnZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvYnVzaW5lc3Mtb2JqZWN0XCI7XHJcbmltcG9ydCB7Q2FjaGVGaWVsZH0gZnJvbSBcIi4uL2NhY2hlLWZpZWxkXCI7XHJcbmltcG9ydCB7QnVzaW5lc3NPYmplY3RJRFR5cGV9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC90eXBlL2J1c2luZXNzLW9iamVjdC1pZC10eXBlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdFNpbmdsZUNhY2hlU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2JvQ2FjaGVNYW5hZ2VyOiBCdXNpbmVzc09iamVjdENhY2hlTWFuYWdlclNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXF1ZXN0Q2FjaGU8VCBleHRlbmRzIEJ1c2luZXNzT2JqZWN0PihjbGF6ejogeyBuZXcoKTogVCB9LCBzb3VyY2VJZDogQnVzaW5lc3NPYmplY3RJRFR5cGUsIGxvYWRGdW5jdGlvbjogKCkgPT4gUHJvbWlzZTxUPik6IENhY2hlRmllbGQ8VD4ge1xyXG4gICAgaWYgKCF0aGlzLl9ib0NhY2hlTWFuYWdlci5oYXNTaW5nbGVDYWNoZUl0ZW08VD4oY2xhenosIHNvdXJjZUlkKSkge1xyXG4gICAgICB0aGlzLl9jcmVhdGVDYWNoZUl0ZW08VD4oY2xhenosIHNvdXJjZUlkLCBsb2FkRnVuY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIG5vaW5zcGVjdGlvbiBUeXBlU2NyaXB0VmFsaWRhdGVUeXBlc1xyXG4gICAgcmV0dXJuIHRoaXMuX2JvQ2FjaGVNYW5hZ2VyLmdldFNpbmdsZUNhY2hlSXRlbTxUPihjbGF6eiwgc291cmNlSWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlQ2FjaGVJdGVtPFQgZXh0ZW5kcyBCdXNpbmVzc09iamVjdD4oY2xheno6IHsgbmV3KCk6IFQgfSwgc291cmNlSWQ6IEJ1c2luZXNzT2JqZWN0SURUeXBlLCBsb2FkRnVuY3Rpb246ICgpID0+IFByb21pc2U8VD4pOiBDYWNoZUZpZWxkPFQ+IHtcclxuICAgIC8vIG5vaW5zcGVjdGlvbiBUeXBlU2NyaXB0VmFsaWRhdGVUeXBlc1xyXG4gICAgcmV0dXJuIHRoaXMuX2JvQ2FjaGVNYW5hZ2VyLmFkZE5ld1NlbGVjdFNpbmdsZUNhY2hlSXRlbTxUPihjbGF6eiwgc291cmNlSWQsIGxvYWRGdW5jdGlvbik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNpbmdsZS1jYWNoZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jYWNoZS9zZXJ2aWNlL3NlbGVjdC1zaW5nbGUtY2FjaGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHlDQUF5QyxDQUFDOzs7QUFRMUYsTUFBTSxPQUFPLHdCQUF3QjtJQUVuQyxZQUFvQixlQUFrRDtRQUFsRCxvQkFBZSxHQUFmLGVBQWUsQ0FBbUM7SUFDdEUsQ0FBQztJQUVNLFlBQVksQ0FBMkIsS0FBbUIsRUFBRSxRQUE4QixFQUFFLFlBQThCLEVBQUUsU0FBa0IsS0FBSztRQUN4SixJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUksS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ2hFO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUksS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ2hFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBSSxLQUFLLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ3pEO1FBRUQsdUNBQXVDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBSSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVPLGdCQUFnQixDQUEyQixLQUFtQixFQUFFLFFBQThCLEVBQUUsWUFBOEI7UUFDcEksdUNBQXVDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsQ0FBSSxLQUFLLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzVGLENBQUM7Ozs7WUF2QkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFQTyxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0Q2FjaGVNYW5hZ2VyU2VydmljZX0gZnJvbSAnLi9idXNpbmVzcy1vYmplY3QtY2FjaGUtbWFuYWdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtCdXNpbmVzc09iamVjdH0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvYnVzaW5lc3Mtb2JqZWN0JztcclxuaW1wb3J0IHtDYWNoZUZpZWxkfSBmcm9tICcuLi9jYWNoZS1maWVsZCc7XHJcbmltcG9ydCB7QnVzaW5lc3NPYmplY3RJRFR5cGV9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3R5cGUvYnVzaW5lc3Mtb2JqZWN0LWlkLXR5cGUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RTaW5nbGVDYWNoZVNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ib0NhY2hlTWFuYWdlcjogQnVzaW5lc3NPYmplY3RDYWNoZU1hbmFnZXJTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVxdWVzdENhY2hlPFQgZXh0ZW5kcyBCdXNpbmVzc09iamVjdD4oY2xheno6IHsgbmV3KCk6IFQgfSwgc291cmNlSWQ6IEJ1c2luZXNzT2JqZWN0SURUeXBlLCBsb2FkRnVuY3Rpb246ICgpID0+IFByb21pc2U8VD4sIHJlbG9hZDogYm9vbGVhbiA9IGZhbHNlKTogQ2FjaGVGaWVsZDxUPiB7XHJcbiAgICBpZiAocmVsb2FkKSB7XHJcbiAgICAgIHRoaXMuX2JvQ2FjaGVNYW5hZ2VyLmRlbGV0ZVNpbmdsZUNhY2hlSXRlbTxUPihjbGF6eiwgc291cmNlSWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLl9ib0NhY2hlTWFuYWdlci5oYXNTaW5nbGVDYWNoZUl0ZW08VD4oY2xhenosIHNvdXJjZUlkKSkge1xyXG4gICAgICB0aGlzLl9jcmVhdGVDYWNoZUl0ZW08VD4oY2xhenosIHNvdXJjZUlkLCBsb2FkRnVuY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIG5vaW5zcGVjdGlvbiBUeXBlU2NyaXB0VmFsaWRhdGVUeXBlc1xyXG4gICAgcmV0dXJuIHRoaXMuX2JvQ2FjaGVNYW5hZ2VyLmdldFNpbmdsZUNhY2hlSXRlbTxUPihjbGF6eiwgc291cmNlSWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlQ2FjaGVJdGVtPFQgZXh0ZW5kcyBCdXNpbmVzc09iamVjdD4oY2xheno6IHsgbmV3KCk6IFQgfSwgc291cmNlSWQ6IEJ1c2luZXNzT2JqZWN0SURUeXBlLCBsb2FkRnVuY3Rpb246ICgpID0+IFByb21pc2U8VD4pOiBDYWNoZUZpZWxkPFQ+IHtcclxuICAgIC8vIG5vaW5zcGVjdGlvbiBUeXBlU2NyaXB0VmFsaWRhdGVUeXBlc1xyXG4gICAgcmV0dXJuIHRoaXMuX2JvQ2FjaGVNYW5hZ2VyLmFkZE5ld1NlbGVjdFNpbmdsZUNhY2hlSXRlbTxUPihjbGF6eiwgc291cmNlSWQsIGxvYWRGdW5jdGlvbik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -54,6 +54,9 @@ export class CheckoutComponent {
54
54
  this.service.transactionKind = this.transactionType;
55
55
  this.relationType = this.service.getRelationKindFromTransactionKind();
56
56
  this.service.createNewRelation();
57
+ if (this.relationNr) {
58
+ this.service.setRelationOnTransaction(this.relationNr, this.relationType);
59
+ }
57
60
  }
58
61
  ngOnDestroy() {
59
62
  this._subs.forEach(s => s.unsubscribe());
@@ -216,6 +219,7 @@ CheckoutComponent.propDecorators = {
216
219
  checkoutDelivery: [{ type: ViewChild, args: ["checkoutDelivery",] }],
217
220
  checkoutPayment: [{ type: ViewChild, args: ["checkoutPayment",] }],
218
221
  newTransaction: [{ type: Input }],
222
+ relationNr: [{ type: Input }],
219
223
  sellerId: [{ type: Input }],
220
224
  transactionType: [{ type: Input }],
221
225
  showCreateTransactionButton: [{ type: Input }],
@@ -223,4 +227,4 @@ CheckoutComponent.propDecorators = {
223
227
  editCartClick: [{ type: Output }],
224
228
  showClass: [{ type: HostBinding, args: ["class.co-checkout",] }]
225
229
  };
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25JLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBS25FLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUczRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFFMUYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBRW5HLE9BQU8sRUFBQyw2QkFBNkIsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzlGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQTBEbEUsTUFBTSxPQUFPLGlCQUFpQjtJQW1FNUIsWUFDUyxPQUEyQixFQUMxQixnQkFBaUMsRUFDakMsV0FBOEIsRUFDOUIsY0FBNkIsRUFDN0IsMkJBQStEO1FBSmhFLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxD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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDVDtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFDO29CQUNoRSxFQUFDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxXQUFXLEVBQUUsa0NBQWtDLEVBQUM7aUJBQzFGO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF6RU8sa0JBQWtCO1lBV2xCLGVBQWU7WUFWZixpQkFBaUI7WUFLakIsYUFBYTtZQU1iLGtDQUFrQzs7O3NCQWtFdkMsU0FBUyxTQUFDLFNBQVM7MkJBR25CLFNBQVMsU0FBQyxjQUFjOzJCQUd4QixTQUFTLFNBQUMsY0FBYzsyQkFHeEIsU0FBUyxTQUFDLGNBQWM7c0JBR3hCLFNBQVMsU0FBQyxTQUFTOytCQUduQixTQUFTLFNBQUMsa0JBQWtCOytCQUc1QixTQUFTLFNBQUMsa0JBQWtCOzhCQUc1QixTQUFTLFNBQUMsaUJBQWlCOzZCQUczQixLQUFLO3VCQUdMLEtBQUs7OEJBR0wsS0FBSzswQ0FHTCxLQUFLO2tDQUdMLE1BQU07NEJBR04sTUFBTTt3QkFHTixXQUFXLFNBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm8nO1xyXG5pbXBvcnQge0NoZWNrb3V0T3ZlcnZpZXdSZWxhdGlvbkVkaXRDb21wb25lbnR9IGZyb20gJy4vY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdC9jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Q2hlY2tvdXRPdmVydmlld0RlbGl2ZXJ5RWRpdENvbXBvbmVudH0gZnJvbSAnLi9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQuY29tcG9uZW50JztcclxuaW1wb3J0IHtTdGVwcGVyU3RlcENvbXBvbmVudH0gZnJvbSAnLi4vc3RlcHBlci9jb21wb25lbnQvc3RlcHBlci1zdGVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7UGF5bWVudENvbXBvbmVudH0gZnJvbSAnLi4vcGF5bWVudC9wYXltZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U3RlcHBlckNvbXBvbmVudH0gZnJvbSAnLi4vc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge1JlbGF0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL2VudW0vcmVsYXRpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtSZWxhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvcmVsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7Q2hlY2tvdXRTY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlL2NoZWNrb3V0LXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7QmFzZU1vZHVsZVNjcmVlbkNvbmZpZ1NlcnZpY2UsIEJhc2VNb2R1bGVTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtDaGVja291dE1vZHVsZVNlcnZpY2V9IGZyb20gJy4vc2VydmljZS9jaGVja291dC1tb2R1bGUuc2VydmljZSc7XHJcbmltcG9ydCB7Q2hlY2tvdXRDZmdOYW1lfSBmcm9tICcuLi8uLi9lbnVtL2NoZWNrb3V0LWNmZy1uYW1lLmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tY2hlY2tvdXRcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZ0xvYWRlZFwiPlxyXG4gICAgICA8Y28tc3RlcHBlciAjc3RlcHBlclxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwic2VydmljZS50aXRsZUZvckNoZWNrb3V0XCJcclxuICAgICAgICAgICAgICAgICAgW3Nob3dTdGVwcGVyXT1cInRyYW5zYWN0aW9uVHlwZSAhPT0gdHJhbnNLaW5kLlB1cmNoYXNlT3JkZXJcIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVJY29uXT1cInNlcnZpY2UuaWNvbkZvckNoZWNrb3V0XCJcclxuICAgICAgICAgICAgICAgICAgW2ZpbmlzaEJ1dHRvbkxhYmVsXT1cIidDSEVDS09VVF9GSU5JU0gnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAoY3JlYXRlQ2xpY2tlZCk9XCJoYW5kbGVDcmVhdGVUcmFuc2FjdGlvbigkZXZlbnQpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjby1zdGVwcGVyLXN0ZXAgI3N0ZXBSZWxhdGlvbiBbaW5kZXhdPVwiMVwiIFtsYWJlbF09XCInWU9VUl9EQVRBJyB8IGxvY2FsaXplXCIgKHZhbGlkYXRlU3RlcCk9XCJoYW5kbGVSZWxhdGlvblZhbGlkYXRpb24oKVwiICpuZ0lmPVwic2hvd1lvdXJEYXRhXCI+XHJcbiAgICAgICAgICA8Y28tY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdCAjY2hlY2tvdXRSZWxhdGlvbiAqbmdJZj1cInN0ZXBSZWxhdGlvbi5zaG93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVsYXRpb24pXT1cInNlcnZpY2UucmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbGF0aW9uS2luZF09XCJyZWxhdGlvblR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlbGl2ZXJ5QWRkcmVzc05hd05yXT1cImRlbGl2ZXJ5QWRkcmVzc05hd05yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnZvaWNlQWRkcmVzc05hd05yXT1cImludm9pY2VBZGRyZXNzTmF3TnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlbGl2ZXJ5QWRkcmVzc0NoYW5nZSk9XCJoYW5kbGVEZWxpdmVyeUFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW52b2ljZUFkZHJlc3NDaGFuZ2UpPVwiaGFuZGxlSW52b2ljZUFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVsYXRpb25DaGFuZ2UpPVwic2VydmljZS5yZWxhdGlvbiA9ICRldmVudFwiXHJcbiAgICAgICAgICA+PC9jby1jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0PlxyXG4gICAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICAgIDxjby1zdGVwcGVyLXN0ZXAgI3N0ZXBEZWxpdmVyeSBbaW5kZXhdPVwiMlwiIFtsYWJlbF09XCInREVMSVZFUlknIHwgbG9jYWxpemVcIiAodmFsaWRhdGVTdGVwKT1cImhhbmRsZURlbGl2ZXJ5VmFsaWRhdGlvbigpXCIgKm5nSWY9XCJzaG93RGVsaXZlcnlcIj5cclxuICAgICAgICAgIDxjby1jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0ICNjaGVja291dERlbGl2ZXJ5ICpuZ0lmPVwic3RlcERlbGl2ZXJ5LnNob3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgID48L2NvLWNoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQ+XHJcbiAgICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgICAgPGNvLXN0ZXBwZXItc3RlcCAjc3RlcE92ZXJ2aWV3IFtpbmRleF09XCIzXCIgW2xhYmVsXT1cInNlcnZpY2UucGF5bWVudFN0ZXBUaXRsZUZvckNoZWNrb3V0IHwgbG9jYWxpemVcIiAqbmdJZj1cInNob3dPdmVydmlld1wiPlxyXG4gICAgICAgICAgPGNvLWNoZWNrb3V0LW92ZXJ2aWV3LXBheW1lbnQgKm5nSWY9XCJzdGVwT3ZlcnZpZXcuc2hvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVsYXRpb25dPVwic2VydmljZS5yZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwic2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dQYXltZW50XT1cInRyYW5zYWN0aW9uVHlwZSA9PT0gdHJhbnNLaW5kLlNhbGVzT3JkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZVlvdXJEYXRhQ2xpY2spPVwic3RlcHBlci5nb3RvKDApXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2VEZWxpdmVyeUNsaWNrKT1cInN0ZXBwZXIuZ290bygxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGF5ZWQpPVwiaGFuZGxlVHJhbnNhY3Rpb25GaW5pc2hlZCgkZXZlbnQpXCJcclxuICAgICAgICAgID48L2NvLWNoZWNrb3V0LW92ZXJ2aWV3LXBheW1lbnQ+XHJcbiAgICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvLWNoZWNrb3V0LXJpZ2h0LXBhbmVsXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tY2hlY2tvdXQtcmlnaHQtcGFuZWwtcmVsYXRpb25cIj5cclxuICAgICAgICAgICAgPGNvLWF2YXRhciBbcmVsYXRpb25JZF09XCJzZWxsZXJJZFwiPjwvY28tYXZhdGFyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8Y28tc2hvcHBpbmctY2FydC1wcmV2aWV3ICpuZ0lmPVwiIXNob3dDcmVhdGVUcmFuc2FjdGlvbkJ1dHRvblwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0NoZWNrb3V0QnV0dG9uXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt3aXRob3V0Qm9yZGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWRpdENhcnRDbGljayk9XCJlZGl0Q2FydENsaWNrLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICA+PC9jby1zaG9wcGluZy1jYXJ0LXByZXZpZXc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvY28tc3RlcHBlcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7cHJvdmlkZTogQmFzZU1vZHVsZVNlcnZpY2UsIHVzZUV4aXN0aW5nOiBDaGVja291dE1vZHVsZVNlcnZpY2V9LFxyXG4gICAge3Byb3ZpZGU6IEJhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCB1c2VFeGlzdGluZzogQ2hlY2tvdXRTY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0sXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja291dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNLaW5kOiB0eXBlb2YgVHJhbnNhY3Rpb25LaW5kID0gVHJhbnNhY3Rpb25LaW5kO1xyXG4gIHB1YmxpYyByZWFkb25seSBjZmdOYW1lczogdHlwZW9mIENoZWNrb3V0Q2ZnTmFtZSA9IENoZWNrb3V0Q2ZnTmFtZTtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBwZXJcIilcclxuICBwdWJsaWMgc3RlcHBlcjogU3RlcHBlckNvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBSZWxhdGlvblwiKVxyXG4gIHB1YmxpYyBzdGVwUmVsYXRpb246IFN0ZXBwZXJTdGVwQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcERlbGl2ZXJ5XCIpXHJcbiAgcHVibGljIHN0ZXBEZWxpdmVyeTogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwT3ZlcnZpZXdcIilcclxuICBwdWJsaWMgc3RlcE92ZXJ2aWV3OiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBQYXlcIilcclxuICBwdWJsaWMgc3RlcFBheTogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJjaGVja291dFJlbGF0aW9uXCIpXHJcbiAgcHVibGljIGNoZWNrb3V0UmVsYXRpb246IENoZWNrb3V0T3ZlcnZpZXdSZWxhdGlvbkVkaXRDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJjaGVja291dERlbGl2ZXJ5XCIpXHJcbiAgcHVibGljIGNoZWNrb3V0RGVsaXZlcnk6IENoZWNrb3V0T3ZlcnZpZXdEZWxpdmVyeUVkaXRDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJjaGVja291dFBheW1lbnRcIilcclxuICBwdWJsaWMgY2hlY2tvdXRQYXltZW50OiBQYXltZW50Q29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBuZXdUcmFuc2FjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxsZXJJZDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Q3JlYXRlVHJhbnNhY3Rpb25CdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uRmluaXNoZWQ6IEV2ZW50RW1pdHRlcjx7aWQ6IG51bWJlciwgZnJvbUNoZWNrb3V0OiBib29sZWFufT4gPSBuZXcgRXZlbnRFbWl0dGVyPHtpZDogbnVtYmVyLCBmcm9tQ2hlY2tvdXQ6IGJvb2xlYW59PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZWRpdENhcnRDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1jaGVja291dFwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdXNlcklzQXBwbGljYXRpb25Vc2VyKCk6IGJvb2xlYW4ge1xyXG4gICAgLy8gVE9ETzogcmV0dXJuIHRoaXMudXNlclNlcnZpY2UuaXNBcHBsaWNhdGlvblVzZXI7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U7XHJcbiAgcHVibGljIGRlbGl2ZXJ5QWRkcmVzc05hd05yOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBpbnZvaWNlQWRkcmVzc05hd05yOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyByZWxhdGlvblR5cGU6IFJlbGF0aW9uS2luZDtcclxuICBwdWJsaWMgY29uZmlnTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dZb3VyRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93RGVsaXZlcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd092ZXJ2aWV3OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JlbGF0aW9uU2VydmljZTogUmVsYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IENoZWNrb3V0U2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UubG9hZENvbmZpZyhbdGhpcy50cmFuc2FjdGlvblR5cGVdKTtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5jb25maWdTZXQuc3Vic2NyaWJlKChjb25maWdPYmplY3RzOiBzdHJpbmdbXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNvbmZpZ09iamVjdHMgJiYgY29uZmlnT2JqZWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1lvdXJEYXRhID0gdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLllvdXJEYXRhSGVhZGVyKS5pbW1lZGlhdGVseVZpc2libGUoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93RGVsaXZlcnkgPSB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuRGVsaXZlcnlIZWFkZXIpLmltbWVkaWF0ZWx5VmlzaWJsZSgpO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dPdmVydmlldyA9IHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5PdmVydmlld0FuZFBheW1lbnRIZWFkZXIpLmltbWVkaWF0ZWx5VmlzaWJsZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIClcclxuICAgIGlmICh0aGlzLm5ld1RyYW5zYWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS5yZXNldEN1cnJlbnRUcmFuc2FjdGlvbigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uS2luZCA9IHRoaXMudHJhbnNhY3Rpb25UeXBlO1xyXG4gICAgdGhpcy5yZWxhdGlvblR5cGUgPSB0aGlzLnNlcnZpY2UuZ2V0UmVsYXRpb25LaW5kRnJvbVRyYW5zYWN0aW9uS2luZCgpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZU5ld1JlbGF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBpZiAodGhpcy5fcmVsYXRpb25TZXJ2aWNlLnJlbGF0aW9uTG9ja2VkKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS5yb2xsYmFjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZUNyZWF0ZVRyYW5zYWN0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgc3VjY2VzczogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5zdGVwcGVyLmFjdGl2ZVN0ZXAgPT09IDAgJiYgYXdhaXQgdGhpcy5oYW5kbGVSZWxhdGlvblZhbGlkYXRpb24oKSkge1xyXG4gICAgICBzdWNjZXNzID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnNhdmVSZWxhdGlvbigpO1xyXG4gICAgICBpZiAoc3VjY2VzcyAmJiB0aGlzLnRyYW5zYWN0aW9uVHlwZSAhPT0gdGhpcy50cmFuc0tpbmQuU2FsZXNRdW90YXRpb24pIHtcclxuICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudXBkYXRlSGVhZGVyVHJhbnNhY3Rpb25EZWZpbml0aXZlKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQsIHRydWUsIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc2F2ZVN1Y2Nlc3M6IGJvb2xlYW4gPSBhd2FpdCB0aGlzLnNlcnZpY2Uuc2F2ZVRyYW5zYWN0aW9uQW5kQ29tbWl0KCk7XHJcbiAgICBpZiAoc2F2ZVN1Y2Nlc3MpIHtcclxuICAgICAgdGhpcy5oYW5kbGVUcmFuc2FjdGlvbkZpbmlzaGVkKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uTnIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVJlbGF0aW9uVmFsaWRhdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGlmICh0aGlzLmNoZWNrb3V0UmVsYXRpb24gJiYgdGhpcy5zdGVwUmVsYXRpb24pIHtcclxuICAgICAgY29uc3QgdmFsaWQgPSB0aGlzLmNoZWNrb3V0UmVsYXRpb24uc3VibWl0KCk7XHJcbiAgICAgIGlmICh2YWxpZCkge1xyXG4gICAgICAgIHRoaXMuc3RlcFJlbGF0aW9uLmNvbXBsZXRlZCA9IGF3YWl0IHRoaXMuc2F2ZVJlbGF0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbGlkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZURlbGl2ZXJ5VmFsaWRhdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGlmICh0aGlzLmNoZWNrb3V0RGVsaXZlcnkgJiYgdGhpcy5zdGVwRGVsaXZlcnkpIHtcclxuICAgICAgY29uc3QgdmFsaWQgPSB0aGlzLmNoZWNrb3V0RGVsaXZlcnkuc3VibWl0KCk7XHJcbiAgICAgIGlmICh2YWxpZCkge1xyXG4gICAgICAgIGNvbnN0IHNhdmVTdWNjZXNzOiBib29sZWFuID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnNhdmVUcmFuc2FjdGlvbkFuZENvbW1pdCgpO1xyXG4gICAgICAgIGlmIChzYXZlU3VjY2Vzcykge1xyXG4gICAgICAgICAgY29uc3QgbG9ja1N1Y2Nlc3M6IGJvb2xlYW4gPVxyXG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS50cnlUb0xvY2tUcmFuc2FjdGlvbih0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCwgdGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udmVyc2lvbik7XHJcbiAgICAgICAgICBpZiAobG9ja1N1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGVwRGVsaXZlcnkuY29tcGxldGVkID0gYXdhaXQgdGhpcy5oYW5kbGVTYXZlRGVsaXZlcnkoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbGlkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNhdmVSZWxhdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGNvbnN0IHN1Y2Nlc3M6IGJvb2xlYW4gPSBhd2FpdCB0aGlzLnNlcnZpY2Uuc2F2ZVJlbGF0aW9uKCk7XHJcbiAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICBpZiAodGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9PT0gbnVsbCB8fCB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yID09PSB1bmRlZmluZWQgfHwgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9PT0gMCAmJiB0aGlzLnNlcnZpY2UucmVsYXRpb24uYWRkcmVzc2VzICYmIHRoaXMuc2VydmljZS5yZWxhdGlvbi5hZGRyZXNzZXMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9IHRoaXMuc2VydmljZS5yZWxhdGlvbi5hZGRyZXNzZXNbMF0ubmF3TnI7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uQWRkcmVzcyAhPT0gdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOcikge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVIZWFkZXJEZWxpdmVyeUFkZHJlc3ModGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCwgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOcik7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaW52b2ljZUFkZHJlc3NOYXdOcjogbnVtYmVyID0gdGhpcy5pbnZvaWNlQWRkcmVzc05hd05yID8gdGhpcy5pbnZvaWNlQWRkcmVzc05hd05yIDogdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOcjtcclxuICAgICAgaWYgKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmludm9pY2VBZGRyZXNzICE9PSBpbnZvaWNlQWRkcmVzc05hd05yKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnVwZGF0ZUhlYWRlckludm9pY2VBZGRyZXNzKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQsIGludm9pY2VBZGRyZXNzTmF3TnIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3VjY2VzcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTYXZlRGVsaXZlcnkoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEZWxpdmVyeUFkZHJlc3NDaGFuZ2UobmF3TnI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9IG5hd05yO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUludm9pY2VBZGRyZXNzQ2hhbmdlKG5hd05yOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOciA9IG5hd05yO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVRyYW5zYWN0aW9uRmluaXNoZWQoaWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLnJlc2V0Q3VycmVudFRyYW5zYWN0aW9uKCk7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRmluaXNoZWQuZW1pdCh7aWQ6IGlkLCBmcm9tQ2hlY2tvdXQ6IHRoaXMuc2hvd0NyZWF0ZVRyYW5zYWN0aW9uQnV0dG9ufSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25JLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBS25FLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUczRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFFMUYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBRW5HLE9BQU8sRUFBQyw2QkFBNkIsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzlGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQTBEbEUsTUFBTSxPQUFPLGlCQUFpQjtJQXlFNUIsWUFDUyxPQUEyQixFQUMxQixnQkFBaUMsRUFDakMsV0FBOEIsRUFDOUIsY0FBNkIsRUFDN0IsMkJBQStEO1FBSmhFLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzFCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBb0M7UUE3RXpELGNBQVMsR0FBMkIsZUFBZSxDQUFDO1FBQ3BELGFBQVEsR0FBMkIsZUFBZSxDQUFDO1FBMkI1RCxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQVloQyxvQkFBZSxHQUFvQixlQUFlLENBQUMsVUFBVSxDQUFDO1FBRzlELGdDQUEyQixHQUFZLEtBQUssQ0FBQztRQUc3Qyx3QkFBbUIsR0FBc0QsSUFBSSxZQUFZLEVBQXVDLENBQUM7UUFHakksa0JBQWEsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQWE3RCx5QkFBb0IsR0FBVyxDQUFDLENBQUM7UUFDakMsd0JBQW1CLEdBQVcsQ0FBQyxDQUFDO1FBRWhDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTdCLFVBQUssR0FBbUIsRUFBRSxDQUFDO0lBU25DLENBQUM7SUEzQk0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQVcscUJBQXFCO1FBQzlCLG1EQUFtRDtRQUNuRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFzQkQsUUFBUTtRQUNOLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDWCxJQUFJLENBQUMsMkJBQTJCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQXVCLEVBQUUsRUFBRTtZQUMvRSxJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUNsSSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ2xJLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUM1SSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQzthQUMxQjtRQUNILENBQUMsQ0FBQyxDQUNMLENBQUE7UUFDRCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsa0NBQWtDLEVBQUUsQ0FBQztRQUN0RSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDM0U7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDekMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRVksdUJBQXVCLENBQUMsS0FBaUI7O1lBQ3BELElBQUksT0FBTyxHQUFZLElBQUksQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxLQUFLLENBQUMsS0FBSSxNQUFNLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFBLEVBQUU7Z0JBQzFFLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzVDLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUU7b0JBQ3JFLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUN4SDthQUNGO1lBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDWixPQUFPO2FBQ1I7WUFDRCxNQUFNLFdBQVcsR0FBWSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUMzRSxJQUFJLFdBQVcsRUFBRTtnQkFDZixJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDL0Y7UUFDSCxDQUFDO0tBQUE7SUFFWSx3QkFBd0I7O1lBQ25DLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzlDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxLQUFLLEVBQUU7b0JBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7aUJBQ3pEO2dCQUNELE9BQU8sS0FBSyxDQUFDO2FBQ2Q7UUFDSCxDQUFDO0tBQUE7SUFFWSx3QkFBd0I7O1lBQ25DLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzlDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxLQUFLLEVBQUU7b0JBQ1QsTUFBTSxXQUFXLEdBQVksTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLENBQUM7b0JBQzNFLElBQUksV0FBVyxFQUFFO3dCQUNmLE1BQU0sV0FBVyxHQUNiLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQ3pKLElBQUksV0FBVyxFQUFFOzRCQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7eUJBQy9EO3FCQUNGO2lCQUNGO2dCQUNELE9BQU8sS0FBSyxDQUFDO2FBQ2Q7UUFDSCxDQUFDO0tBQUE7SUFFWSxZQUFZOztZQUN2QixNQUFNLE9BQU8sR0FBWSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDM0QsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLG9CQUFvQixLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQ3ZNLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2lCQUN0RTtnQkFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLGtCQUFrQixLQUFLLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtvQkFDcEcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztpQkFDakk7Z0JBQ0QsTUFBTSxtQkFBbUIsR0FBVyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDO2dCQUNwSCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLGNBQWMsS0FBSyxtQkFBbUIsRUFBRTtvQkFDMUYsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO2lCQUMxSDthQUNGO1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztLQUFBO0lBRVksa0JBQWtCOztZQUM3QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7S0FBQTtJQUVNLDJCQUEyQixDQUFDLEtBQWE7UUFDOUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRU0sMEJBQTBCLENBQUMsS0FBYTtRQUM3QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxFQUFVO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixFQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDOzs7WUFwUEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NUO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUM7b0JBQ2hFLEVBQUMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLFdBQVcsRUFBRSxrQ0FBa0MsRUFBQztpQkFDMUY7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQXpFTyxrQkFBa0I7WUFXbEIsZUFBZTtZQVZmLGlCQUFpQjtZQUtqQixhQUFhO1lBTWIsa0NBQWtDOzs7c0JBa0V2QyxTQUFTLFNBQUMsU0FBUzsyQkFHbkIsU0FBUyxTQUFDLGNBQWM7MkJBR3hCLFNBQVMsU0FBQyxjQUFjOzJCQUd4QixTQUFTLFNBQUMsY0FBYztzQkFHeEIsU0FBUyxTQUFDLFNBQVM7K0JBR25CLFNBQVMsU0FBQyxrQkFBa0I7K0JBRzVCLFNBQVMsU0FBQyxrQkFBa0I7OEJBRzVCLFNBQVMsU0FBQyxpQkFBaUI7NkJBRzNCLEtBQUs7eUJBTUwsS0FBSzt1QkFHTCxLQUFLOzhCQUdMLEtBQUs7MENBR0wsS0FBSztrQ0FHTCxNQUFNOzRCQUdOLE1BQU07d0JBR04sV0FBVyxTQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvJztcclxuaW1wb3J0IHtDaGVja291dE92ZXJ2aWV3UmVsYXRpb25FZGl0Q29tcG9uZW50fSBmcm9tICcuL2NoZWNrb3V0LW92ZXJ2aWV3LXJlbGF0aW9uLWVkaXQvY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NoZWNrb3V0T3ZlcnZpZXdEZWxpdmVyeUVkaXRDb21wb25lbnR9IGZyb20gJy4vY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdC9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U3RlcHBlclN0ZXBDb21wb25lbnR9IGZyb20gJy4uL3N0ZXBwZXIvY29tcG9uZW50L3N0ZXBwZXItc3RlcC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQge1BheW1lbnRDb21wb25lbnR9IGZyb20gJy4uL3BheW1lbnQvcGF5bWVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1N0ZXBwZXJDb21wb25lbnR9IGZyb20gJy4uL3N0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtSZWxhdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9lbnVtL3JlbGF0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7UmVsYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3JlbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NoZWNrb3V0U2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4vc2VydmljZS9jaGVja291dC1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCBCYXNlTW9kdWxlU2VydmljZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7Q2hlY2tvdXRNb2R1bGVTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2UvY2hlY2tvdXQtbW9kdWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NoZWNrb3V0Q2ZnTmFtZX0gZnJvbSAnLi4vLi4vZW51bS9jaGVja291dC1jZmctbmFtZS5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLWNoZWNrb3V0XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25maWdMb2FkZWRcIj5cclxuICAgICAgPGNvLXN0ZXBwZXIgI3N0ZXBwZXJcclxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInNlcnZpY2UudGl0bGVGb3JDaGVja291dFwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93U3RlcHBlcl09XCJ0cmFuc2FjdGlvblR5cGUgIT09IHRyYW5zS2luZC5QdXJjaGFzZU9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW3RpdGxlSWNvbl09XCJzZXJ2aWNlLmljb25Gb3JDaGVja291dFwiXHJcbiAgICAgICAgICAgICAgICAgIFtmaW5pc2hCdXR0b25MYWJlbF09XCInQ0hFQ0tPVVRfRklOSVNIJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgKGNyZWF0ZUNsaWNrZWQpPVwiaGFuZGxlQ3JlYXRlVHJhbnNhY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8Y28tc3RlcHBlci1zdGVwICNzdGVwUmVsYXRpb24gW2luZGV4XT1cIjFcIiBbbGFiZWxdPVwiJ1lPVVJfREFUQScgfCBsb2NhbGl6ZVwiICh2YWxpZGF0ZVN0ZXApPVwiaGFuZGxlUmVsYXRpb25WYWxpZGF0aW9uKClcIiAqbmdJZj1cInNob3dZb3VyRGF0YVwiPlxyXG4gICAgICAgICAgPGNvLWNoZWNrb3V0LW92ZXJ2aWV3LXJlbGF0aW9uLWVkaXQgI2NoZWNrb3V0UmVsYXRpb24gKm5nSWY9XCJzdGVwUmVsYXRpb24uc2hvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJzZXJ2aWNlLnJlbGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWxhdGlvbktpbmRdPVwicmVsYXRpb25UeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWxpdmVyeUFkZHJlc3NOYXdOcl09XCJkZWxpdmVyeUFkZHJlc3NOYXdOclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW52b2ljZUFkZHJlc3NOYXdOcl09XCJpbnZvaWNlQWRkcmVzc05hd05yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWxpdmVyeUFkZHJlc3NDaGFuZ2UpPVwiaGFuZGxlRGVsaXZlcnlBZGRyZXNzQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludm9pY2VBZGRyZXNzQ2hhbmdlKT1cImhhbmRsZUludm9pY2VBZGRyZXNzQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbGF0aW9uQ2hhbmdlKT1cInNlcnZpY2UucmVsYXRpb24gPSAkZXZlbnRcIlxyXG4gICAgICAgICAgPjwvY28tY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdD5cclxuICAgICAgICA8L2NvLXN0ZXBwZXItc3RlcD5cclxuICAgICAgICA8Y28tc3RlcHBlci1zdGVwICNzdGVwRGVsaXZlcnkgW2luZGV4XT1cIjJcIiBbbGFiZWxdPVwiJ0RFTElWRVJZJyB8IGxvY2FsaXplXCIgKHZhbGlkYXRlU3RlcCk9XCJoYW5kbGVEZWxpdmVyeVZhbGlkYXRpb24oKVwiICpuZ0lmPVwic2hvd0RlbGl2ZXJ5XCI+XHJcbiAgICAgICAgICA8Y28tY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdCAjY2hlY2tvdXREZWxpdmVyeSAqbmdJZj1cInN0ZXBEZWxpdmVyeS5zaG93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJzZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvblwiXHJcbiAgICAgICAgICA+PC9jby1jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0PlxyXG4gICAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICAgIDxjby1zdGVwcGVyLXN0ZXAgI3N0ZXBPdmVydmlldyBbaW5kZXhdPVwiM1wiIFtsYWJlbF09XCJzZXJ2aWNlLnBheW1lbnRTdGVwVGl0bGVGb3JDaGVja291dCB8IGxvY2FsaXplXCIgKm5nSWY9XCJzaG93T3ZlcnZpZXdcIj5cclxuICAgICAgICAgIDxjby1jaGVja291dC1vdmVydmlldy1wYXltZW50ICpuZ0lmPVwic3RlcE92ZXJ2aWV3LnNob3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbGF0aW9uXT1cInNlcnZpY2UucmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93UGF5bWVudF09XCJ0cmFuc2FjdGlvblR5cGUgPT09IHRyYW5zS2luZC5TYWxlc09yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2VZb3VyRGF0YUNsaWNrKT1cInN0ZXBwZXIuZ290bygwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlRGVsaXZlcnlDbGljayk9XCJzdGVwcGVyLmdvdG8oMSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBheWVkKT1cImhhbmRsZVRyYW5zYWN0aW9uRmluaXNoZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICA+PC9jby1jaGVja291dC1vdmVydmlldy1wYXltZW50PlxyXG4gICAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjby1jaGVja291dC1yaWdodC1wYW5lbFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWNoZWNrb3V0LXJpZ2h0LXBhbmVsLXJlbGF0aW9uXCI+XHJcbiAgICAgICAgICAgIDxjby1hdmF0YXIgW3JlbGF0aW9uSWRdPVwic2VsbGVySWRcIj48L2NvLWF2YXRhcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGNvLXNob3BwaW5nLWNhcnQtcHJldmlldyAqbmdJZj1cIiFzaG93Q3JlYXRlVHJhbnNhY3Rpb25CdXR0b25cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dDaGVja291dEJ1dHRvbl09XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbd2l0aG91dEJvcmRlcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVkaXRDYXJ0Q2xpY2spPVwiZWRpdENhcnRDbGljay5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgPjwvY28tc2hvcHBpbmctY2FydC1wcmV2aWV3PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2NvLXN0ZXBwZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IEJhc2VNb2R1bGVTZXJ2aWNlLCB1c2VFeGlzdGluZzogQ2hlY2tvdXRNb2R1bGVTZXJ2aWNlfSxcclxuICAgIHtwcm92aWRlOiBCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZSwgdXNlRXhpc3Rpbmc6IENoZWNrb3V0U2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9LFxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zS2luZDogdHlwZW9mIFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZDtcclxuICBwdWJsaWMgcmVhZG9ubHkgY2ZnTmFtZXM6IHR5cGVvZiBDaGVja291dENmZ05hbWUgPSBDaGVja291dENmZ05hbWU7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwcGVyXCIpXHJcbiAgcHVibGljIHN0ZXBwZXI6IFN0ZXBwZXJDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwUmVsYXRpb25cIilcclxuICBwdWJsaWMgc3RlcFJlbGF0aW9uOiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBEZWxpdmVyeVwiKVxyXG4gIHB1YmxpYyBzdGVwRGVsaXZlcnk6IFN0ZXBwZXJTdGVwQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcE92ZXJ2aWV3XCIpXHJcbiAgcHVibGljIHN0ZXBPdmVydmlldzogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwUGF5XCIpXHJcbiAgcHVibGljIHN0ZXBQYXk6IFN0ZXBwZXJTdGVwQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwiY2hlY2tvdXRSZWxhdGlvblwiKVxyXG4gIHB1YmxpYyBjaGVja291dFJlbGF0aW9uOiBDaGVja291dE92ZXJ2aWV3UmVsYXRpb25FZGl0Q29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwiY2hlY2tvdXREZWxpdmVyeVwiKVxyXG4gIHB1YmxpYyBjaGVja291dERlbGl2ZXJ5OiBDaGVja291dE92ZXJ2aWV3RGVsaXZlcnlFZGl0Q29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwiY2hlY2tvdXRQYXltZW50XCIpXHJcbiAgcHVibGljIGNoZWNrb3V0UGF5bWVudDogUGF5bWVudENvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbmV3VHJhbnNhY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBzZXQsIHRoaXMgaXMgdGhlIHJlbGF0aW9uIGJlIHVzZWQgZm9yIHRoZSBjaGVja291dFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlbGF0aW9uTnI6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VsbGVySWQ6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0NyZWF0ZVRyYW5zYWN0aW9uQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkZpbmlzaGVkOiBFdmVudEVtaXR0ZXI8e2lkOiBudW1iZXIsIGZyb21DaGVja291dDogYm9vbGVhbn0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7aWQ6IG51bWJlciwgZnJvbUNoZWNrb3V0OiBib29sZWFufT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGVkaXRDYXJ0Q2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tY2hlY2tvdXRcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHVzZXJJc0FwcGxpY2F0aW9uVXNlcigpOiBib29sZWFuIHtcclxuICAgIC8vIFRPRE86IHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLmlzQXBwbGljYXRpb25Vc2VyO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlO1xyXG4gIHB1YmxpYyBkZWxpdmVyeUFkZHJlc3NOYXdOcjogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgaW52b2ljZUFkZHJlc3NOYXdOcjogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgcmVsYXRpb25UeXBlOiBSZWxhdGlvbktpbmQ7XHJcbiAgcHVibGljIGNvbmZpZ0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93WW91ckRhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0RlbGl2ZXJ5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dPdmVydmlldzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yZWxhdGlvblNlcnZpY2U6IFJlbGF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpY3Rpb25hcnk6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBDaGVja291dFNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmxvYWRDb25maWcoW3RoaXMudHJhbnNhY3Rpb25UeXBlXSk7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuY29uZmlnU2V0LnN1YnNjcmliZSgoY29uZmlnT2JqZWN0czogc3RyaW5nW10pID0+IHtcclxuICAgICAgICAgIGlmIChjb25maWdPYmplY3RzICYmIGNvbmZpZ09iamVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dZb3VyRGF0YSA9IHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5Zb3VyRGF0YUhlYWRlcikuaW1tZWRpYXRlbHlWaXNpYmxlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0RlbGl2ZXJ5ID0gdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLkRlbGl2ZXJ5SGVhZGVyKS5pbW1lZGlhdGVseVZpc2libGUoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93T3ZlcnZpZXcgPSB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuT3ZlcnZpZXdBbmRQYXltZW50SGVhZGVyKS5pbW1lZGlhdGVseVZpc2libGUoKTtcclxuICAgICAgICAgICAgdGhpcy5jb25maWdMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICApXHJcbiAgICBpZiAodGhpcy5uZXdUcmFuc2FjdGlvbikge1xyXG4gICAgICB0aGlzLnNlcnZpY2UucmVzZXRDdXJyZW50VHJhbnNhY3Rpb24oKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VydmljZS50cmFuc2FjdGlvbktpbmQgPSB0aGlzLnRyYW5zYWN0aW9uVHlwZTtcclxuICAgIHRoaXMucmVsYXRpb25UeXBlID0gdGhpcy5zZXJ2aWNlLmdldFJlbGF0aW9uS2luZEZyb21UcmFuc2FjdGlvbktpbmQoKTtcclxuICAgIHRoaXMuc2VydmljZS5jcmVhdGVOZXdSZWxhdGlvbigpO1xyXG4gICAgaWYgKHRoaXMucmVsYXRpb25Ocikge1xyXG4gICAgICB0aGlzLnNlcnZpY2Uuc2V0UmVsYXRpb25PblRyYW5zYWN0aW9uKHRoaXMucmVsYXRpb25OciwgdGhpcy5yZWxhdGlvblR5cGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgaWYgKHRoaXMuX3JlbGF0aW9uU2VydmljZS5yZWxhdGlvbkxvY2tlZCkge1xyXG4gICAgICB0aGlzLnNlcnZpY2Uucm9sbGJhY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVDcmVhdGVUcmFuc2FjdGlvbihldmVudDogTW91c2VFdmVudCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHN1Y2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuc3RlcHBlci5hY3RpdmVTdGVwID09PSAwICYmIGF3YWl0IHRoaXMuaGFuZGxlUmVsYXRpb25WYWxpZGF0aW9uKCkpIHtcclxuICAgICAgc3VjY2VzcyA9IGF3YWl0IHRoaXMuc2VydmljZS5zYXZlUmVsYXRpb24oKTtcclxuICAgICAgaWYgKHN1Y2Nlc3MgJiYgdGhpcy50cmFuc2FjdGlvblR5cGUgIT09IHRoaXMudHJhbnNLaW5kLlNhbGVzUXVvdGF0aW9uKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnVwZGF0ZUhlYWRlclRyYW5zYWN0aW9uRGVmaW5pdGl2ZSh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkLCB0cnVlLCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCFzdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHNhdmVTdWNjZXNzOiBib29sZWFuID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnNhdmVUcmFuc2FjdGlvbkFuZENvbW1pdCgpO1xyXG4gICAgaWYgKHNhdmVTdWNjZXNzKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlVHJhbnNhY3Rpb25GaW5pc2hlZCh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbk5yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVSZWxhdGlvblZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5jaGVja291dFJlbGF0aW9uICYmIHRoaXMuc3RlcFJlbGF0aW9uKSB7XHJcbiAgICAgIGNvbnN0IHZhbGlkID0gdGhpcy5jaGVja291dFJlbGF0aW9uLnN1Ym1pdCgpO1xyXG4gICAgICBpZiAodmFsaWQpIHtcclxuICAgICAgICB0aGlzLnN0ZXBSZWxhdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLnNhdmVSZWxhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB2YWxpZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVEZWxpdmVyeVZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5jaGVja291dERlbGl2ZXJ5ICYmIHRoaXMuc3RlcERlbGl2ZXJ5KSB7XHJcbiAgICAgIGNvbnN0IHZhbGlkID0gdGhpcy5jaGVja291dERlbGl2ZXJ5LnN1Ym1pdCgpO1xyXG4gICAgICBpZiAodmFsaWQpIHtcclxuICAgICAgICBjb25zdCBzYXZlU3VjY2VzczogYm9vbGVhbiA9IGF3YWl0IHRoaXMuc2VydmljZS5zYXZlVHJhbnNhY3Rpb25BbmRDb21taXQoKTtcclxuICAgICAgICBpZiAoc2F2ZVN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnN0IGxvY2tTdWNjZXNzOiBib29sZWFuID1cclxuICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudHJ5VG9Mb2NrVHJhbnNhY3Rpb24odGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQsIHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnZlcnNpb24pO1xyXG4gICAgICAgICAgaWYgKGxvY2tTdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RlcERlbGl2ZXJ5LmNvbXBsZXRlZCA9IGF3YWl0IHRoaXMuaGFuZGxlU2F2ZURlbGl2ZXJ5KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB2YWxpZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzYXZlUmVsYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBjb25zdCBzdWNjZXNzOiBib29sZWFuID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnNhdmVSZWxhdGlvbigpO1xyXG4gICAgaWYgKHN1Y2Nlc3MpIHtcclxuICAgICAgaWYgKHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPT09IG51bGwgfHwgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPT09IDAgJiYgdGhpcy5zZXJ2aWNlLnJlbGF0aW9uLmFkZHJlc3NlcyAmJiB0aGlzLnNlcnZpY2UucmVsYXRpb24uYWRkcmVzc2VzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPSB0aGlzLnNlcnZpY2UucmVsYXRpb24uYWRkcmVzc2VzWzBdLm5hd05yO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbkFkZHJlc3MgIT09IHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudXBkYXRlSGVhZGVyRGVsaXZlcnlBZGRyZXNzKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQsIHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGludm9pY2VBZGRyZXNzTmF3TnI6IG51bWJlciA9IHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOciA/IHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOciA6IHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnI7XHJcbiAgICAgIGlmICh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pbnZvaWNlQWRkcmVzcyAhPT0gaW52b2ljZUFkZHJlc3NOYXdOcikge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVIZWFkZXJJbnZvaWNlQWRkcmVzcyh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkLCBpbnZvaWNlQWRkcmVzc05hd05yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2F2ZURlbGl2ZXJ5KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRGVsaXZlcnlBZGRyZXNzQ2hhbmdlKG5hd05yOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPSBuYXdOcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVJbnZvaWNlQWRkcmVzc0NoYW5nZShuYXdOcjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIgPSBuYXdOcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVUcmFuc2FjdGlvbkZpbmlzaGVkKGlkOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5yZXNldEN1cnJlbnRUcmFuc2FjdGlvbigpO1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkZpbmlzaGVkLmVtaXQoe2lkOiBpZCwgZnJvbUNoZWNrb3V0OiB0aGlzLnNob3dDcmVhdGVUcmFuc2FjdGlvbkJ1dHRvbn0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -61,9 +61,10 @@ DepositPaymentComponent.decorators = [
61
61
  [image]="payment.paymentMethod?.image"
62
62
  [description]="payment.paymentMethod?.payment.description"
63
63
  ></co-payment-tile>
64
- <div class="deposit-payment-spacer"></div>
64
+ <div class="down-payment-date-wrapper">
65
+ <div class="down-payment-date" [textContent]="payment.depositPayment?.date | date:'d MMMM yyyy'"></div>
66
+ </div>
65
67
  <div class="down-payment-amount-wrapper">
66
- <div class="down-payment-date" [textContent]="payment.depositPayment?.date | date:'d MMMM yyyy | HH:mm'"></div>
67
68
  <div class="down-payment-amount" [textContent]="payment.depositPayment?.depositPaymentAmount | coCurrency"></div>
68
69
  </div>
69
70
  </div>
@@ -83,4 +84,4 @@ DepositPaymentComponent.propDecorators = {
83
84
  transactionUuid: [{ type: Input }],
84
85
  showClass: [{ type: HostBinding, args: ["class.co-deposit-payment",] }]
85
86
  };
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwb3NpdC1wYXltZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2RlcG9zaXQtcGF5bWVudC9kZXBvc2l0LXBheW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBcUIsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFFL0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRzdELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUUxRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQXVCaEYsTUFBTSxPQUFPLHVCQUF1QjtJQTBCbEMsWUFDWSxlQUErQixFQUMvQix3QkFBaUQ7UUFEakQsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBQy9CLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBeUI7UUEzQjdDLGNBQVMsR0FBMkIsZUFBZSxDQUFDO1FBUzdELGNBQVMsR0FBWSxJQUFJLENBQUM7UUFVMUIsbUJBQWMsR0FBdUIsRUFBRSxDQUFDO1FBQ3hDLG9CQUFlLEdBQThCLEVBQUUsQ0FBQztRQUNoRCxlQUFVLEdBQVksSUFBSSxDQUFDO1FBRTFCLFVBQUssR0FBbUIsRUFBRSxDQUFDO0lBTW5DLENBQUM7SUFkTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBY0QsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNYLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FDdEcsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFtQyxFQUFFLEVBQUU7WUFDNUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBa0IsRUFBRSxFQUFFO29CQUNsRCxNQUFNLGFBQWEsR0FBcUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDakgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDNUUsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQTJCLEVBQUUsRUFBRTtZQUN2SCxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQXhGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUEzQk8sY0FBYztZQUtkLHVCQUF1Qjs7O3FCQTBCNUIsS0FBSzs4QkFHTCxLQUFLO3dCQUdMLEtBQUs7OEJBR0wsS0FBSzt3QkFHTCxXQUFXLFNBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtEZXBvc2l0UGF5bWVudFZpZXdNb2RlbH0gZnJvbSAnLi4vLi4vbW9kZWwvZGVwb3NpdC1wYXltZW50LXZpZXctbW9kZWwnO1xyXG5pbXBvcnQge1BheW1lbnRWaWV3bW9kZWx9IGZyb20gJy4uLy4uL21vZGVsL3BheW1lbnQudmlld21vZGVsJztcclxuaW1wb3J0IHtQYXltZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9wYXltZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRGVwb3NpdFBheW1lbnRJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tZGVwb3NpdC1wYXltZW50LWluZm8uYm8nO1xyXG5pbXBvcnQge0RlcG9zaXRQYXltZW50fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGVwb3NpdC1wYXltZW50LmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLWRlcG9zaXQtcGF5bWVudFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiZG93bi1wYXltZW50LXBheW1lbnRzLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidQQVlNRU5UU19NQURFJyB8IGxvY2FsaXplXCIgKm5nSWY9XCJzaG93VGl0bGVcIj48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkb3duLXBheW1lbnQtcGF5bWVudHMtd3JhcHBlclwiPlxyXG4gICAgICA8Y28tbG9hZGVyIGNsYXNzPVwibG9hZGVyXCIgKm5nSWY9XCJzaG93TG9hZGVyXCI+PC9jby1sb2FkZXI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkb3duLXBheW1lbnQtcGF5bWVudHNcIiAqbmdGb3I9XCJsZXQgcGF5bWVudCBvZiBkZXBvc2l0UGF5bWVudHNcIj5cclxuICAgICAgICA8Y28tcGF5bWVudC10aWxlXHJcbiAgICAgICAgICBbaW1hZ2VdPVwicGF5bWVudC5wYXltZW50TWV0aG9kPy5pbWFnZVwiXHJcbiAgICAgICAgICBbZGVzY3JpcHRpb25dPVwicGF5bWVudC5wYXltZW50TWV0aG9kPy5wYXltZW50LmRlc2NyaXB0aW9uXCJcclxuICAgICAgICA+PC9jby1wYXltZW50LXRpbGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRlcG9zaXQtcGF5bWVudC1zcGFjZXJcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZG93bi1wYXltZW50LWFtb3VudC13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG93bi1wYXltZW50LWRhdGVcIiBbdGV4dENvbnRlbnRdPVwicGF5bWVudC5kZXBvc2l0UGF5bWVudD8uZGF0ZSB8IGRhdGU6J2QgTU1NTSB5eXl5IHwgSEg6bW0nXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG93bi1wYXltZW50LWFtb3VudFwiIFt0ZXh0Q29udGVudF09XCJwYXltZW50LmRlcG9zaXRQYXltZW50Py5kZXBvc2l0UGF5bWVudEFtb3VudCB8IGNvQ3VycmVuY3lcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIERlcG9zaXRQYXltZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc0tpbmQ6IHR5cGVvZiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGJyYW5jaDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbktpbmQ6IFRyYW5zYWN0aW9uS2luZDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1RpdGxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25VdWlkOiBzdHJpbmc7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWRlcG9zaXQtcGF5bWVudFwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwYXltZW50TWV0aG9kczogUGF5bWVudFZpZXdtb2RlbFtdID0gW107XHJcbiAgcHVibGljIGRlcG9zaXRQYXltZW50czogRGVwb3NpdFBheW1lbnRWaWV3TW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBzaG93TG9hZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByaXZhdGUgX3BheW1lbnRTZXJ2aWNlOiBQYXltZW50U2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvblBheW1lbnREb25lLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9nZXREZXBvc2l0UGF5bWVudEluZm8oKSlcclxuICAgIClcclxuICAgIHRoaXMuX3ByZXBhcmVEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXREZXBvc2l0UGF5bWVudEluZm8oKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5fcGF5bWVudFNlcnZpY2UuZ2V0RGVwb3NpdFBheW1lbnRJbmZvKHRoaXMudHJhbnNhY3Rpb25VdWlkKS50aGVuKChpbmZvOiBUcmFuc2FjdGlvbkRlcG9zaXRQYXltZW50SW5mbykgPT4ge1xyXG4gICAgICB0aGlzLmRlcG9zaXRQYXltZW50cy5sZW5ndGggPSAwO1xyXG4gICAgICBpZiAoaW5mbyAmJiBpbmZvLmRlcG9zaXRQYXltZW50cykge1xyXG4gICAgICAgIGluZm8uZGVwb3NpdFBheW1lbnRzLnNvcnQoKGEsIGIpID0+IGEuaWQgPiBiLmlkID8gMSA6IC0xKTtcclxuICAgICAgICBpbmZvLmRlcG9zaXRQYXltZW50cy5mb3JFYWNoKChkcDogRGVwb3NpdFBheW1lbnQpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHBheW1lbnRNZXRob2Q6IFBheW1lbnRWaWV3bW9kZWwgPSB0aGlzLnBheW1lbnRNZXRob2RzLmZpbmQocG0gPT4gcG0ucGF5bWVudC5jb2RlID09PSBkcC5wYXltZW50TWV0aG9kQ29kZSk7XHJcbiAgICAgICAgICB0aGlzLmRlcG9zaXRQYXltZW50cy5wdXNoKG5ldyBEZXBvc2l0UGF5bWVudFZpZXdNb2RlbChkcCwgcGF5bWVudE1ldGhvZCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmVwYXJlRGF0YSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVwb3NpdFBheW1lbnRzLmxlbmd0aCA9IDA7XHJcbiAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5wYXltZW50TWV0aG9kcy5sZW5ndGggPSAwO1xyXG4gICAgdGhpcy5fcGF5bWVudFNlcnZpY2UuZ2V0UGF5bWVudE1ldGhvZHNWaWV3TW9kZWxzKHRoaXMuYnJhbmNoLCB0aGlzLnRyYW5zYWN0aW9uS2luZCkudGhlbigobWV0aG9kczogUGF5bWVudFZpZXdtb2RlbFtdKSA9PiB7XHJcbiAgICAgIHRoaXMucGF5bWVudE1ldGhvZHMgPSBtZXRob2RzLnNsaWNlKCk7XHJcbiAgICAgIHRoaXMuX2dldERlcG9zaXRQYXltZW50SW5mbygpO1xyXG4gICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwb3NpdC1wYXltZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2RlcG9zaXQtcGF5bWVudC9kZXBvc2l0LXBheW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBcUIsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFFL0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRzdELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUUxRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQXdCaEYsTUFBTSxPQUFPLHVCQUF1QjtJQTBCbEMsWUFDWSxlQUErQixFQUMvQix3QkFBaUQ7UUFEakQsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBQy9CLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBeUI7UUEzQjdDLGNBQVMsR0FBMkIsZUFBZSxDQUFDO1FBUzdELGNBQVMsR0FBWSxJQUFJLENBQUM7UUFVMUIsbUJBQWMsR0FBdUIsRUFBRSxDQUFDO1FBQ3hDLG9CQUFlLEdBQThCLEVBQUUsQ0FBQztRQUNoRCxlQUFVLEdBQVksSUFBSSxDQUFDO1FBRTFCLFVBQUssR0FBbUIsRUFBRSxDQUFDO0lBTW5DLENBQUM7SUFkTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBY0QsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNYLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FDdEcsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFtQyxFQUFFLEVBQUU7WUFDNUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBa0IsRUFBRSxFQUFFO29CQUNsRCxNQUFNLGFBQWEsR0FBcUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDakgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSx1QkFBdUIsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDNUUsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQTJCLEVBQUUsRUFBRTtZQUN2SCxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQXpGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBNUJPLGNBQWM7WUFLZCx1QkFBdUI7OztxQkEyQjVCLEtBQUs7OEJBR0wsS0FBSzt3QkFHTCxLQUFLOzhCQUdMLEtBQUs7d0JBR0wsV0FBVyxTQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RGVwb3NpdFBheW1lbnRWaWV3TW9kZWx9IGZyb20gJy4uLy4uL21vZGVsL2RlcG9zaXQtcGF5bWVudC12aWV3LW1vZGVsJztcclxuaW1wb3J0IHtQYXltZW50Vmlld21vZGVsfSBmcm9tICcuLi8uLi9tb2RlbC9wYXltZW50LnZpZXdtb2RlbCc7XHJcbmltcG9ydCB7UGF5bWVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvcGF5bWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkRlcG9zaXRQYXltZW50SW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWRlcG9zaXQtcGF5bWVudC1pbmZvLmJvJztcclxuaW1wb3J0IHtEZXBvc2l0UGF5bWVudH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlcG9zaXQtcGF5bWVudC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1kZXBvc2l0LXBheW1lbnRcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cImRvd24tcGF5bWVudC1wYXltZW50cy10aXRsZVwiIFt0ZXh0Q29udGVudF09XCInUEFZTUVOVFNfTUFERScgfCBsb2NhbGl6ZVwiICpuZ0lmPVwic2hvd1RpdGxlXCI+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZG93bi1wYXltZW50LXBheW1lbnRzLXdyYXBwZXJcIj5cclxuICAgICAgPGNvLWxvYWRlciBjbGFzcz1cImxvYWRlclwiICpuZ0lmPVwic2hvd0xvYWRlclwiPjwvY28tbG9hZGVyPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZG93bi1wYXltZW50LXBheW1lbnRzXCIgKm5nRm9yPVwibGV0IHBheW1lbnQgb2YgZGVwb3NpdFBheW1lbnRzXCI+XHJcbiAgICAgICAgPGNvLXBheW1lbnQtdGlsZVxyXG4gICAgICAgICAgW2ltYWdlXT1cInBheW1lbnQucGF5bWVudE1ldGhvZD8uaW1hZ2VcIlxyXG4gICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cInBheW1lbnQucGF5bWVudE1ldGhvZD8ucGF5bWVudC5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgPjwvY28tcGF5bWVudC10aWxlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkb3duLXBheW1lbnQtZGF0ZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG93bi1wYXltZW50LWRhdGVcIiBbdGV4dENvbnRlbnRdPVwicGF5bWVudC5kZXBvc2l0UGF5bWVudD8uZGF0ZSB8IGRhdGU6J2QgTU1NTSB5eXl5J1wiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkb3duLXBheW1lbnQtYW1vdW50LXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb3duLXBheW1lbnQtYW1vdW50XCIgW3RleHRDb250ZW50XT1cInBheW1lbnQuZGVwb3NpdFBheW1lbnQ/LmRlcG9zaXRQYXltZW50QW1vdW50IHwgY29DdXJyZW5jeVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVwb3NpdFBheW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zS2luZDogdHlwZW9mIFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYnJhbmNoOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uS2luZDogVHJhbnNhY3Rpb25LaW5kO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93VGl0bGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblV1aWQ6IHN0cmluZztcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tZGVwb3NpdC1wYXltZW50XCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHBheW1lbnRNZXRob2RzOiBQYXltZW50Vmlld21vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgZGVwb3NpdFBheW1lbnRzOiBEZXBvc2l0UGF5bWVudFZpZXdNb2RlbFtdID0gW107XHJcbiAgcHVibGljIHNob3dMb2FkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSBfcGF5bWVudFNlcnZpY2U6IFBheW1lbnRTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIF90cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnRyYW5zYWN0aW9uUGF5bWVudERvbmUuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2dldERlcG9zaXRQYXltZW50SW5mbygpKVxyXG4gICAgKVxyXG4gICAgdGhpcy5fcHJlcGFyZURhdGEoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldERlcG9zaXRQYXltZW50SW5mbygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLl9wYXltZW50U2VydmljZS5nZXREZXBvc2l0UGF5bWVudEluZm8odGhpcy50cmFuc2FjdGlvblV1aWQpLnRoZW4oKGluZm86IFRyYW5zYWN0aW9uRGVwb3NpdFBheW1lbnRJbmZvKSA9PiB7XHJcbiAgICAgIHRoaXMuZGVwb3NpdFBheW1lbnRzLmxlbmd0aCA9IDA7XHJcbiAgICAgIGlmIChpbmZvICYmIGluZm8uZGVwb3NpdFBheW1lbnRzKSB7XHJcbiAgICAgICAgaW5mby5kZXBvc2l0UGF5bWVudHMuc29ydCgoYSwgYikgPT4gYS5pZCA+IGIuaWQgPyAxIDogLTEpO1xyXG4gICAgICAgIGluZm8uZGVwb3NpdFBheW1lbnRzLmZvckVhY2goKGRwOiBEZXBvc2l0UGF5bWVudCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgcGF5bWVudE1ldGhvZDogUGF5bWVudFZpZXdtb2RlbCA9IHRoaXMucGF5bWVudE1ldGhvZHMuZmluZChwbSA9PiBwbS5wYXltZW50LmNvZGUgPT09IGRwLnBheW1lbnRNZXRob2RDb2RlKTtcclxuICAgICAgICAgIHRoaXMuZGVwb3NpdFBheW1lbnRzLnB1c2gobmV3IERlcG9zaXRQYXltZW50Vmlld01vZGVsKGRwLCBwYXltZW50TWV0aG9kKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ByZXBhcmVEYXRhKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXBvc2l0UGF5bWVudHMubGVuZ3RoID0gMDtcclxuICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLnBheW1lbnRNZXRob2RzLmxlbmd0aCA9IDA7XHJcbiAgICB0aGlzLl9wYXltZW50U2VydmljZS5nZXRQYXltZW50TWV0aG9kc1ZpZXdNb2RlbHModGhpcy5icmFuY2gsIHRoaXMudHJhbnNhY3Rpb25LaW5kKS50aGVuKChtZXRob2RzOiBQYXltZW50Vmlld21vZGVsW10pID0+IHtcclxuICAgICAgdGhpcy5wYXltZW50TWV0aG9kcyA9IG1ldGhvZHMuc2xpY2UoKTtcclxuICAgICAgdGhpcy5fZ2V0RGVwb3NpdFBheW1lbnRJbmZvKCk7XHJcbiAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -7,12 +7,14 @@ import { SharedService } from '../../service/shared.service';
7
7
  import { IonePaymentStatusCode } from '@colijnit/transactionapi/build/enum/ione-payment-status-code.enum';
8
8
  import { TransactionEventService } from '../../service/transaction-event.service';
9
9
  import { DoPaymentRequest } from '@colijnit/transactionapi/build/model/do-payment-request';
10
+ import { IconCacheService } from "../../service/icon-cache.service";
10
11
  export class PaymentComponent {
11
- constructor(_transactionService, _sharedService, _paymentService, _transactionEventService) {
12
+ constructor(_transactionService, _sharedService, _paymentService, _transactionEventService, iconCacheService) {
12
13
  this._transactionService = _transactionService;
13
14
  this._sharedService = _sharedService;
14
15
  this._paymentService = _paymentService;
15
16
  this._transactionEventService = _transactionEventService;
17
+ this.iconCacheService = iconCacheService;
16
18
  this.icons = Icon;
17
19
  this.updateDepositAmount = true;
18
20
  this.payed = new EventEmitter();
@@ -25,6 +27,7 @@ export class PaymentComponent {
25
27
  this.showPspQrCode = false;
26
28
  this.showLoader = true;
27
29
  this.amountToPay = 0;
30
+ this.depositAmount = 0;
28
31
  this.statusMessage = "";
29
32
  this._amount = 0;
30
33
  this._paymentStatusPollIntervalMs = 5000;
@@ -119,6 +122,7 @@ export class PaymentComponent {
119
122
  const info = yield this._paymentService.getDepositPaymentInfo(this.transactionUuid);
120
123
  if (info) {
121
124
  this.amountToPay = info.depositRemainderAmount;
125
+ this.depositAmount = info.depositAmount;
122
126
  }
123
127
  }
124
128
  else {
@@ -228,47 +232,59 @@ PaymentComponent.decorators = [
228
232
  selector: "co-payment",
229
233
  template: `
230
234
  <div class="payment-wrapper">
231
- <div class="payment-methods-header">
232
- <span class="payment-header-title" [textContent]="'SELECT_A' | localize"></span>
233
- <span class="payment-header-title extra" [textContent]="'FREE' | localize:false"></span>
234
- <span class="payment-header-title" [textContent]="'PAYMENT_METHOD' | localize:false"></span>
235
- </div>
236
- <div class="payment-methods">
237
- <co-loader class="loader" *ngIf="showLoader"></co-loader>
238
- <ng-container *ngIf="!showLoader">
239
- <co-payment-tile *ngFor="let paymentMethod of paymentMethods; let index = index"
240
- [image]="paymentMethod.image"
241
- [description]="paymentMethod.payment.description"
242
- [selected]="paymentMethodIdx === index"
243
- (selectedChange)="paymentMethodSelected(paymentMethod.payment, index)"
244
- ></co-payment-tile>
245
- </ng-container>
246
- </div>
247
- <div class="payment-cash-register-wrapper" *ngIf="showCashRegisters">
248
- <div class="payment-cash-register-header">
249
- <span class="payment-header-title" [textContent]="'SELECT_CASH_REGISTER' | localize"></span>
235
+ <div class="payment-methods-register-wrapper">
236
+ <div class="payment-methods-wrapper">
237
+ <div class="payment-methods-header">
238
+ <span class="payment-header-title" [textContent]="'SELECT' | localize"></span>
239
+ <!--span class="payment-header-title extra" [textContent]="'FREE' | localize:false"></span-->
240
+ <span class="payment-header-title" [textContent]="'PAYMENT_METHOD' | localize:false"></span>
241
+ </div>
242
+ <div class="payment-methods co-small-scrollbar">
243
+ <co-loader class="loader" *ngIf="showLoader"></co-loader>
244
+ <ng-container *ngIf="!showLoader">
245
+ <co-payment-tile *ngFor="let paymentMethod of paymentMethods; let index = index"
246
+ [image]="paymentMethod.image"
247
+ [description]="paymentMethod.payment.description"
248
+ [selected]="paymentMethodIdx === index"
249
+ (selectedChange)="paymentMethodSelected(paymentMethod.payment, index)"
250
+ ></co-payment-tile>
251
+ </ng-container>
252
+ </div>
250
253
  </div>
251
- <div class="payment-methods">
252
- <co-payment-tile *ngFor="let cashRegister of cashRegisters; let index = index"
253
- [icon]="cashRegister.icon"
254
- [description]="cashRegister.description"
255
- [selected]="cashRegisterIdx === index"
256
- (selectedChange)="cashRegisterSelected(cashRegister, index)"
257
- ></co-payment-tile>
254
+ <div class="payment-cash-register-wrapper" *ngIf="showCashRegisters">
255
+ <div class="payment-cash-register-header">
256
+ <span class="payment-header-title" [textContent]="'SELECT_CASH_REGISTER' | localize"></span>
257
+ </div>
258
+ <div class="payment-methods">
259
+ <co-payment-tile *ngFor="let cashRegister of cashRegisters; let index = index"
260
+ [icon]="cashRegister.icon"
261
+ [description]="cashRegister.description"
262
+ [selected]="cashRegisterIdx === index"
263
+ (selectedChange)="cashRegisterSelected(cashRegister, index)"
264
+ ></co-payment-tile>
265
+ </div>
258
266
  </div>
259
267
  </div>
260
268
  <div class="payment-to-pay-wrapper">
261
- <co-payment-to-pay [amountToPay]="amountToPay"></co-payment-to-pay>
269
+ <div class="payment-to-pay-total">
270
+ <div class="payment-to-pay-header">
271
+ <span class="payment-header-title" [textContent]="'TOTAL_AMOUNT_TO_PAY' | localize"></span>
272
+ <span class="payment-total-pay" [textContent]="depositAmount === 0 ? depositAmount : (depositAmount | coCurrency)"></span>
273
+ </div>
274
+ <div class="payment-input-button-wrapper">
275
+ <div class="payment-input-button">
276
+ <co-payment-to-pay [amountToPay]="amountToPay"></co-payment-to-pay>
277
+ <div class="payment-to-pay-button">
278
+ <co-button [iconData]="iconCacheService.getIcon(icons.CheckDuotone)" (click)="handlePayment()" [disabled]="amountToPay === 0"></co-button>
279
+ </div>
280
+ </div>
281
+ <div class="payment-error-message" *ngIf="statusMessage" [textContent]="statusMessage"></div>
282
+ </div>
283
+ </div>
284
+
262
285
  <div class="payment-deposit">
263
286
  <co-deposit-payment [branch]="branch" [transactionUuid]="transactionUuid"></co-deposit-payment>
264
287
  </div>
265
- <div class="payment-to-pay-button">
266
- <!--
267
- <co-loader *ngIf="statusMessage"></co-loader>
268
- -->
269
- <div class="payment-error-message" *ngIf="statusMessage" [textContent]="statusMessage"></div>
270
- <co-button [label]="'PAY' | localize" (click)="handlePayment()" [disabled]="amountToPay === 0"></co-button>
271
- </div>
272
288
  <co-key-pad class="payment-to-pay-keypad"
273
289
  [showValue]="false"
274
290
  [emitModelChangeOnEnter]="false"
@@ -291,7 +307,8 @@ PaymentComponent.ctorParameters = () => [
291
307
  { type: TransactionService },
292
308
  { type: SharedService },
293
309
  { type: PaymentService },
294
- { type: TransactionEventService }
310
+ { type: TransactionEventService },
311
+ { type: IconCacheService }
295
312
  ];
296
313
  PaymentComponent.propDecorators = {
297
314
  transId: [{ type: Input }],
@@ -303,4 +320,4 @@ PaymentComponent.propDecorators = {
303
320
  payed: [{ type: Output }],
304
321
  showClass: [{ type: HostBinding, args: ["class.co-payment",] }]
305
322
  };
306
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9wYXltZW50L3BheW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFPM0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFFeEcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFnRXpGLE1BQU0sT0FBTyxnQkFBZ0I7SUF5RDNCLFlBQ1ksbUJBQXVDLEVBQ3ZDLGNBQTZCLEVBQzdCLGVBQStCLEVBQy9CLHdCQUFpRDtRQUhqRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQ3ZDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBNUQ3QyxVQUFLLEdBQWdCLElBQUksQ0FBQztRQXdCbkMsd0JBQW1CLEdBQVksSUFBSSxDQUFDO1FBR3BDLFVBQUssR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQU9yRCxxQkFBZ0IsR0FBVyxDQUFD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QUNiLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDOzs7WUFwVEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlEVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBNUVPLGtCQUFrQjtZQUdsQixhQUFhO1lBRGIsY0FBYztZQVVkLHVCQUF1Qjs7O3NCQW9FNUIsS0FBSzs4QkFHTCxLQUFLO3FCQUdMLEtBQUs7cUJBR0wsS0FBSzt5QkFTTCxLQUFLO2tDQUdMLEtBQUs7b0JBR0wsTUFBTTt3QkFHTixXQUFXLFNBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtDYXNoUmVnaXN0ZXJ9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jYXNoLXJlZ2lzdGVyJztcclxuaW1wb3J0IHtQYXltZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9wYXltZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1NoYXJlZFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2Uvc2hhcmVkLnNlcnZpY2UnO1xyXG5pbXBvcnQge1BheW1lbnRNZXRob2R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wYXltZW50LW1ldGhvZC5ibyc7XHJcbmltcG9ydCB7UGF5bWVudFZpZXdtb2RlbH0gZnJvbSAnLi4vLi4vbW9kZWwvcGF5bWVudC52aWV3bW9kZWwnO1xyXG5pbXBvcnQge1BheW1lbnRMaW5rU3RhdHVzfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGF5bWVudC1saW5rLXN0YXR1cy5ibyc7XHJcbmltcG9ydCB7Q3JlYXRlUGF5bWVudExpbmtSZXN1bHR9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jcmVhdGUtcGF5bWVudC1saW5rLXJlc3VsdC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25EZXBvc2l0UGF5bWVudEluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1kZXBvc2l0LXBheW1lbnQtaW5mby5ibyc7XHJcbmltcG9ydCB7UHNwVHJhbnNhY3Rpb25TdGF0dXN9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wc3AtdHJhbnNhY3Rpb24tc3RhdHVzLmJvJztcclxuaW1wb3J0IHtJb25lUGF5bWVudFN0YXR1c0NvZGV9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL2lvbmUtcGF5bWVudC1zdGF0dXMtY29kZS5lbnVtJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge0RvUGF5bWVudFJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kby1wYXltZW50LXJlcXVlc3QnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tcGF5bWVudFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwicGF5bWVudC13cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LW1ldGhvZHMtaGVhZGVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwYXltZW50LWhlYWRlci10aXRsZVwiIFt0ZXh0Q29udGVudF09XCInU0VMRUNUX0EnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwYXltZW50LWhlYWRlci10aXRsZSBleHRyYVwiIFt0ZXh0Q29udGVudF09XCInRlJFRScgfCBsb2NhbGl6ZTpmYWxzZVwiPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInBheW1lbnQtaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidQQVlNRU5UX01FVEhPRCcgfCBsb2NhbGl6ZTpmYWxzZVwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LW1ldGhvZHNcIj5cclxuICAgICAgICA8Y28tbG9hZGVyIGNsYXNzPVwibG9hZGVyXCIgKm5nSWY9XCJzaG93TG9hZGVyXCI+PC9jby1sb2FkZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93TG9hZGVyXCI+XHJcbiAgICAgICAgICA8Y28tcGF5bWVudC10aWxlICpuZ0Zvcj1cImxldCBwYXltZW50TWV0aG9kIG9mIHBheW1lbnRNZXRob2RzOyBsZXQgaW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbWFnZV09XCJwYXltZW50TWV0aG9kLmltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cInBheW1lbnRNZXRob2QucGF5bWVudC5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJwYXltZW50TWV0aG9kSWR4ID09PSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJwYXltZW50TWV0aG9kU2VsZWN0ZWQocGF5bWVudE1ldGhvZC5wYXltZW50LCBpbmRleClcIlxyXG4gICAgICAgICAgPjwvY28tcGF5bWVudC10aWxlPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBheW1lbnQtY2FzaC1yZWdpc3Rlci13cmFwcGVyXCIgKm5nSWY9XCJzaG93Q2FzaFJlZ2lzdGVyc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LWNhc2gtcmVnaXN0ZXItaGVhZGVyXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInBheW1lbnQtaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidTRUxFQ1RfQ0FTSF9SRUdJU1RFUicgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGF5bWVudC1tZXRob2RzXCI+XHJcbiAgICAgICAgICA8Y28tcGF5bWVudC10aWxlICpuZ0Zvcj1cImxldCBjYXNoUmVnaXN0ZXIgb2YgY2FzaFJlZ2lzdGVyczsgbGV0IGluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJjYXNoUmVnaXN0ZXIuaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZXNjcmlwdGlvbl09XCJjYXNoUmVnaXN0ZXIuZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiY2FzaFJlZ2lzdGVySWR4ID09PSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJjYXNoUmVnaXN0ZXJTZWxlY3RlZChjYXNoUmVnaXN0ZXIsIGluZGV4KVwiXHJcbiAgICAgICAgICA+PC9jby1wYXltZW50LXRpbGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGF5bWVudC10by1wYXktd3JhcHBlclwiPlxyXG4gICAgICAgIDxjby1wYXltZW50LXRvLXBheSBbYW1vdW50VG9QYXldPVwiYW1vdW50VG9QYXlcIj48L2NvLXBheW1lbnQtdG8tcGF5PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LWRlcG9zaXRcIj5cclxuICAgICAgICAgIDxjby1kZXBvc2l0LXBheW1lbnQgW2JyYW5jaF09XCJicmFuY2hcIiBbdHJhbnNhY3Rpb25VdWlkXT1cInRyYW5zYWN0aW9uVXVpZFwiPjwvY28tZGVwb3NpdC1wYXltZW50PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LXRvLXBheS1idXR0b25cIj5cclxuICAgICAgICAgIDwhLS1cclxuICAgICAgICAgICAgICAgICAgICA8Y28tbG9hZGVyICpuZ0lmPVwic3RhdHVzTWVzc2FnZVwiPjwvY28tbG9hZGVyPlxyXG4gICAgICAgICAgLS0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGF5bWVudC1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJzdGF0dXNNZXNzYWdlXCIgW3RleHRDb250ZW50XT1cInN0YXR1c01lc3NhZ2VcIj48L2Rpdj5cclxuICAgICAgICAgIDxjby1idXR0b24gW2xhYmVsXT1cIidQQVknIHwgbG9jYWxpemVcIiAoY2xpY2spPVwiaGFuZGxlUGF5bWVudCgpXCIgW2Rpc2FibGVkXT1cImFtb3VudFRvUGF5ID09PSAwXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGNvLWtleS1wYWQgY2xhc3M9XCJwYXltZW50LXRvLXBheS1rZXlwYWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93VmFsdWVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtlbWl0TW9kZWxDaGFuZ2VPbkVudGVyXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiYW1vdW50VG9QYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVLZXlQYWRNb2RlbENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAoZW50ZXJDbGljayk9XCJoYW5kbGVQYXltZW50KClcIlxyXG4gICAgICAgID48L2NvLWtleS1wYWQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8Y28tZGlhbG9nICpuZ0lmPVwic2hvd1BzcFFyQ29kZVwiIChjbG9zZUNsaWNrKT1cInNob3dQc3BRckNvZGUgPSBmYWxzZVwiPlxyXG4gICAgICA8Y28tcGF5bWVudC1xci1jb2RlXHJcbiAgICAgICAgICBbcXJDb2RlSW1hZ2VdPVwicXJDb2RlSW1hZ2VcIlxyXG4gICAgICA+PC9jby1wYXltZW50LXFyLWNvZGU+XHJcbiAgICA8L2NvLWRpYWxvZz5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFBheW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRyYW5zSWQ6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25VdWlkOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGJyYW5jaDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYW1vdW50KHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2Ftb3VudCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhbW91bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9hbW91bnQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjdXJyZW5jeUlkOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHVwZGF0ZURlcG9zaXRBbW91bnQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcGF5ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tcGF5bWVudFwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwYXltZW50TWV0aG9kSWR4OiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBjYXNoUmVnaXN0ZXJJZHg6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIHBheW1lbnRNZXRob2RzOiBQYXltZW50Vmlld21vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgY2FzaFJlZ2lzdGVyczogYW55W10gPSBbXTtcclxuICBwdWJsaWMgc2hvd0Nhc2hSZWdpc3RlcnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0tleVBhZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93UHNwUXJDb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGN1cnJlbnRQYXltZW50TWV0aG9kOiBQYXltZW50TWV0aG9kO1xyXG4gIHB1YmxpYyBxckNvZGVJbWFnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBzaG93TG9hZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgYW1vdW50VG9QYXk6IG51bWJlciA9IDA7XHJcblxyXG4gIHB1YmxpYyBzdGF0dXNNZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBwcml2YXRlIF9hbW91bnQ6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBfcGF5bWVudFN0YXR1c0ludGVydmFsOiBhbnk7XHJcbiAgcHJpdmF0ZSBfcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbE1zOiBudW1iZXIgPSA1MDAwO1xyXG4gIHByaXZhdGUgX3BheW1lbnRTdGF0dXNNYXhQb2xsSW50ZXJ2YWw6IG51bWJlciA9IDEwO1xyXG4gIHByaXZhdGUgX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxDb3VudDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF9wYXltZW50UmVzdWx0OiBDcmVhdGVQYXltZW50TGlua1Jlc3VsdDtcclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgX3NoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgX3BheW1lbnRTZXJ2aWNlOiBQYXltZW50U2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIGlmICh0aGlzLnVwZGF0ZURlcG9zaXRBbW91bnQpIHtcclxuICAgIC8vICAgYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25TZXJ2aWNlLnVwZGF0ZUhlYWRlclRyYW5zYWN0aW9uRGVwb3NpdEFtb3VudCh0aGlzLnRyYW5zYWN0aW9uVXVpZCwgdGhpcy5hbW91bnRUb1BheSwgdHJ1ZSk7XHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLl9nZXRQYXltZW50TWV0aG9kcygpLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5fZ2V0RGVwb3NpdFBheW1lbnRJbmZvKCk7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVDYXNoUmVnaXN0ZXJzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIHRoaXMuX2NsZWFySW50ZXJ2YWwoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwYXltZW50TWV0aG9kU2VsZWN0ZWQobWV0aG9kOiBQYXltZW50TWV0aG9kLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnBheW1lbnRNZXRob2RJZHggPSBpbmRleDtcclxuICAgIHRoaXMuX3ByZXBhcmVDYXNoUmVnaXN0ZXJzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FzaFJlZ2lzdGVyU2VsZWN0ZWQoY2FzaFJlZ2lzdGVyOiBDYXNoUmVnaXN0ZXIsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FzaFJlZ2lzdGVySWR4ID0gaW5kZXg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlUGF5bWVudCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhdHVzTWVzc2FnZSA9IFwiXCI7XHJcbiAgICBjb25zdCBjdXJyZW50UGF5bWVudFZpZXdNb2RlbCA9IHRoaXMucGF5bWVudE1ldGhvZHNbdGhpcy5wYXltZW50TWV0aG9kSWR4XTtcclxuICAgIHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QgPSBjdXJyZW50UGF5bWVudFZpZXdNb2RlbC5wYXltZW50O1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QgJiYgdGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZC5leHRlcm5hbFNvdXJjZUlkKSB7IC8vIHBzcCBwYXltZW50XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLnBpblRlcm1pbmFsKSB7XHJcbiAgICAgICAgY29uc3QgY2FzaFJlZ2lzdGVyOiBDYXNoUmVnaXN0ZXIgPSB0aGlzLmNhc2hSZWdpc3RlcnNbdGhpcy5jYXNoUmVnaXN0ZXJJZHhdO1xyXG4gICAgICAgIHRoaXMuX3BheW1lbnRTZXJ2aWNlLmRvUGluUGF5bWVudCh0aGlzLnRyYW5zSWQsIHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QuY29kZSwgY2FzaFJlZ2lzdGVyLm5yLCBjYXNoUmVnaXN0ZXIuZ3JvdXAsIHRoaXMuYW1vdW50VG9QYXkpLnRoZW4oKHBzcFRyYW5zYWN0aW9uVXVpZDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICBpZiAocHNwVHJhbnNhY3Rpb25VdWlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxDb3VudCA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMuX3dhaXRGb3JQaW5QYXltZW50U3RhdHVzKHBzcFRyYW5zYWN0aW9uVXVpZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fcGF5bWVudFNlcnZpY2UuY3JlYXRlSW9uZVBheW1lbnRMaW5rQW5kUVJDb2RlKHRoaXMudHJhbnNhY3Rpb25VdWlkLCB0aGlzLmFtb3VudFRvUGF5LCB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLmNvZGUpLnRoZW4oKHJlc3BvbnNlOiBDcmVhdGVQYXltZW50TGlua1Jlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fcGF5bWVudFJlc3VsdCA9IHJlc3BvbnNlO1xyXG4gICAgICAgICAgaWYgKHRoaXMuX3BheW1lbnRSZXN1bHQgJiYgdGhpcy5fcGF5bWVudFJlc3VsdC5pbWFnZUJhc2U2NCkge1xyXG4gICAgICAgICAgICB0aGlzLnFyQ29kZUltYWdlID0gdGhpcy5fZGF0YVVyaVRvQmFzZTY0KHRoaXMuX3BheW1lbnRSZXN1bHQuaW1hZ2VCYXNlNjQsICdpbWFnZS9wbmcnKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93UHNwUXJDb2RlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5fcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbENvdW50ID0gMDtcclxuICAgICAgICAgICAgdGhpcy5fd2FpdEZvclBheW1lbnRTdGF0dXMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgY3VycmVudENhc2hSZWdpc3RlcjogQ2FzaFJlZ2lzdGVyID0gdGhpcy5jYXNoUmVnaXN0ZXJzW3RoaXMuY2FzaFJlZ2lzdGVySWR4XTtcclxuICAgICAgY29uc3QgcmVxdWVzdDogRG9QYXltZW50UmVxdWVzdCA9IG5ldyBEb1BheW1lbnRSZXF1ZXN0KCk7XHJcbiAgICAgIHJlcXVlc3QudHJhbnNJZCA9IHRoaXMudHJhbnNJZDtcclxuICAgICAgcmVxdWVzdC5wYXltZW50TWV0aG9kQ29kZSA9IHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QuY29kZTtcclxuICAgICAgcmVxdWVzdC5hbW91bnQgPSB0aGlzLmFtb3VudFRvUGF5O1xyXG4gICAgICByZXF1ZXN0LmN1cnJlbmN5SWQgPSB0aGlzLmN1cnJlbmN5SWQ7XHJcbiAgICAgIHJlcXVlc3QuY2FzaFJlZ2lzdGVyTnIgPSBjdXJyZW50Q2FzaFJlZ2lzdGVyLm5yO1xyXG4gICAgICByZXF1ZXN0LmNhc2hSZWdpc3Rlckdyb3VwSWQgPSBjdXJyZW50Q2FzaFJlZ2lzdGVyLmdyb3VwO1xyXG4gICAgICByZXF1ZXN0LmNhc2hSZWdpc3RlckRyYXdlcklkID0gbnVsbDtcclxuICAgICAgdGhpcy5fcGF5bWVudFNlcnZpY2UuZG9QYXltZW50KHJlcXVlc3QpLnRoZW4oYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd0tleVBhZCA9IGZhbHNlO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuX2dldERlcG9zaXRQYXltZW50SW5mbygpO1xyXG4gICAgICAgIHRoaXMuX2hhbmRsZVBheW1lbnQoZmFsc2UpO1xyXG4gICAgICAgIGlmICh0aGlzLmFtb3VudFRvUGF5ID09PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVQYXltZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVLZXlQYWRNb2RlbENoYW5nZShtb2RlbDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmFtb3VudFRvUGF5ID0gbW9kZWw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9nZXREZXBvc2l0UGF5bWVudEluZm8oKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy51cGRhdGVEZXBvc2l0QW1vdW50KSB7XHJcbiAgICAgIGNvbnN0IGluZm86IFRyYW5zYWN0aW9uRGVwb3NpdFBheW1lbnRJbmZvID0gYXdhaXQgdGhpcy5fcGF5bWVudFNlcnZpY2UuZ2V0RGVwb3NpdFBheW1lbnRJbmZvKHRoaXMudHJhbnNhY3Rpb25VdWlkKTtcclxuICAgICAgaWYgKGluZm8pIHtcclxuICAgICAgICB0aGlzLmFtb3VudFRvUGF5ID0gaW5mby5kZXBvc2l0UmVtYWluZGVyQW1vdW50O1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFtb3VudFRvUGF5ID0gdGhpcy5fYW1vdW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGF0YVVyaVRvQmFzZTY0KHVyaTogc3RyaW5nLCBtaW1lVHlwZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB1cmkgPyBcImRhdGE6XCIgKyBtaW1lVHlwZSArIFwiO2Jhc2U2NCxcIiArIHVyaSA6IFwiXCI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF93YWl0Rm9yUGF5bWVudFN0YXR1cygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9wYXltZW50UmVzdWx0ICYmIHRoaXMuX3BheW1lbnRSZXN1bHQucGF5bWVudExpbmtVVUlEKSB7XHJcbiAgICAgIHRoaXMuX3BheW1lbnRTdGF0dXNJbnRlcnZhbCA9IHNldEludGVydmFsKGFzeW5jICgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5fcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbENvdW50ID49IHRoaXMuX3BheW1lbnRTdGF0dXNNYXhQb2xsSW50ZXJ2YWwpIHtcclxuICAgICAgICAgIHRoaXMuX2NsZWFySW50ZXJ2YWwoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3Qgc3RhdHVzOiBQYXltZW50TGlua1N0YXR1cyA9IGF3YWl0IHRoaXMuX3BheW1lbnRTZXJ2aWNlLmdldFBheW1lbnRMaW5rU3RhdHVzKHRoaXMuX3BheW1lbnRSZXN1bHQucGF5bWVudExpbmtVVUlEKTtcclxuICAgICAgICAgIGlmIChzdGF0dXMucGF5ZWREYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsZWFySW50ZXJ2YWwoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93UHNwUXJDb2RlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2dldERlcG9zaXRQYXltZW50SW5mbygpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hbW91bnRUb1BheSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVBheW1lbnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5fcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbENvdW50Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCB0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsTXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfd2FpdEZvclBpblBheW1lbnRTdGF0dXMocHNwVHJhbnNhY3Rpb25VdWlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChwc3BUcmFuc2FjdGlvblV1aWQpIHtcclxuICAgICAgdGhpcy5fcGF5bWVudFN0YXR1c0ludGVydmFsID0gc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsQ291bnQgPj0gdGhpcy5fcGF5bWVudFN0YXR1c01heFBvbGxJbnRlcnZhbCkge1xyXG4gICAgICAgICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBwaW5TdGF0dXM6IFBzcFRyYW5zYWN0aW9uU3RhdHVzID0gYXdhaXQgdGhpcy5fcGF5bWVudFNlcnZpY2UuZ2V0UHNwVHJhbnNhY3Rpb25TdGF0dXMocHNwVHJhbnNhY3Rpb25VdWlkKTtcclxuICAgICAgICAgIGlmIChwaW5TdGF0dXMgJiYgcGluU3RhdHVzLnN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXR1c01lc3NhZ2UgPSBwaW5TdGF0dXMuc3RhdHVzLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHBpblN0YXR1cy5zdGF0dXNEYXRlICYmIHBpblN0YXR1cy5zdGF0dXMgJiYgcGluU3RhdHVzLnN0YXR1cy5lbmRTdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpO1xyXG4gICAgICAgICAgICBpZiAocGluU3RhdHVzLnN0YXR1cy5jb2RlID09PSBJb25lUGF5bWVudFN0YXR1c0NvZGUuUEFJRCkge1xyXG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2dldERlcG9zaXRQYXltZW50SW5mbygpO1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmFtb3VudFRvUGF5ID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVQYXltZW50KCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsQ291bnQrKztcclxuICAgICAgICB9XHJcbiAgICAgIH0sIHRoaXMuX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxNcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9jbGVhckludGVydmFsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jbGVhckludGVydmFsKCk6IHZvaWQge1xyXG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9wYXltZW50U3RhdHVzSW50ZXJ2YWwpO1xyXG4gICAgdGhpcy5fcGF5bWVudFN0YXR1c0ludGVydmFsID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3ByZXBhcmVDYXNoUmVnaXN0ZXJzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgcGF5bWVudE1ldGhvZDogUGF5bWVudE1ldGhvZCA9IHRoaXMucGF5bWVudE1ldGhvZHNbdGhpcy5wYXltZW50TWV0aG9kSWR4XS5wYXltZW50O1xyXG4gICAgaWYgKHBheW1lbnRNZXRob2QgJiYgKCFwYXltZW50TWV0aG9kLmV4dGVybmFsU291cmNlSWQgfHwgcGF5bWVudE1ldGhvZC5waW5UZXJtaW5hbCkpIHtcclxuICAgICAgdGhpcy5jYXNoUmVnaXN0ZXJzLmxlbmd0aCA9IDA7XHJcbiAgICAgIHBheW1lbnRNZXRob2QucG9zR3JvdXBzLmZvckVhY2goY3JnID0+IHtcclxuICAgICAgICB0aGlzLl9nZXRDYXNoUmVnaXN0ZXJzKHRoaXMuYnJhbmNoLCBjcmcuaWQpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zaG93Q2FzaFJlZ2lzdGVycyA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3dDYXNoUmVnaXN0ZXJzID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRDYXNoUmVnaXN0ZXJzKGJyYW5jaD86IHN0cmluZywgZ3JvdXA/OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uU2VydmljZS5nZXRDYXNoUmVnaXN0ZXJzKGJyYW5jaCwgZ3JvdXApLnRoZW4oKGNhc2hSZWdpc3RlcnM6IENhc2hSZWdpc3RlcltdKSA9PiB7XHJcbiAgICAgIHRoaXMuY2FzaFJlZ2lzdGVycy5wdXNoKC4uLmNhc2hSZWdpc3RlcnMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRQYXltZW50TWV0aG9kcygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24pID0+IHtcclxuICAgICAgdGhpcy5wYXltZW50TWV0aG9kcy5sZW5ndGggPSAwO1xyXG4gICAgICB0aGlzLl9wYXltZW50U2VydmljZS5nZXRQYXltZW50TWV0aG9kc1ZpZXdNb2RlbHModGhpcy5icmFuY2gpLnRoZW4oKG1ldGhvZHM6IFBheW1lbnRWaWV3bW9kZWxbXSkgPT4ge1xyXG4gICAgICAgIHRoaXMucGF5bWVudE1ldGhvZHMgPSBtZXRob2RzLnNsaWNlKCk7XHJcbiAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGFuZGxlUGF5bWVudChlbWl0UGF5ZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvblBheW1lbnREb25lLm5leHQoKTtcclxuICAgIGlmIChlbWl0UGF5ZWQpIHtcclxuICAgICAgdGhpcy5wYXllZC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
323
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9wYXltZW50L3BheW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFPM0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFFeEcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDekYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUE0RWxFLE1BQU0sT0FBTyxnQkFBZ0I7SUEwRDNCLFlBQ1ksbUJBQXVDLEVBQ3ZDLGNBQTZCLEVBQzdCLGVBQStCLEVBQy9CLHdCQUFpRCxFQUNsRCxnQkFBa0M7UUFKakMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUF5QjtRQUNsRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBOUQ3QixVQUFLLEdBQWdCLElBQUksQ0FB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LEVBQUUsQ0FBQztZQUNaLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUFDLFlBQXFCLElBQUk7UUFDOUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVELElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7OztZQW5VRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUVUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF6Rk8sa0JBQWtCO1lBR2xCLGFBQWE7WUFEYixjQUFjO1lBVWQsdUJBQXVCO1lBRXZCLGdCQUFnQjs7O3NCQStFckIsS0FBSzs4QkFHTCxLQUFLO3FCQUdMLEtBQUs7cUJBR0wsS0FBSzt5QkFTTCxLQUFLO2tDQUdMLEtBQUs7b0JBR0wsTUFBTTt3QkFHTixXQUFXLFNBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtDYXNoUmVnaXN0ZXJ9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jYXNoLXJlZ2lzdGVyJztcclxuaW1wb3J0IHtQYXltZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9wYXltZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1NoYXJlZFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2Uvc2hhcmVkLnNlcnZpY2UnO1xyXG5pbXBvcnQge1BheW1lbnRNZXRob2R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wYXltZW50LW1ldGhvZC5ibyc7XHJcbmltcG9ydCB7UGF5bWVudFZpZXdtb2RlbH0gZnJvbSAnLi4vLi4vbW9kZWwvcGF5bWVudC52aWV3bW9kZWwnO1xyXG5pbXBvcnQge1BheW1lbnRMaW5rU3RhdHVzfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGF5bWVudC1saW5rLXN0YXR1cy5ibyc7XHJcbmltcG9ydCB7Q3JlYXRlUGF5bWVudExpbmtSZXN1bHR9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jcmVhdGUtcGF5bWVudC1saW5rLXJlc3VsdC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25EZXBvc2l0UGF5bWVudEluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1kZXBvc2l0LXBheW1lbnQtaW5mby5ibyc7XHJcbmltcG9ydCB7UHNwVHJhbnNhY3Rpb25TdGF0dXN9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wc3AtdHJhbnNhY3Rpb24tc3RhdHVzLmJvJztcclxuaW1wb3J0IHtJb25lUGF5bWVudFN0YXR1c0NvZGV9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL2lvbmUtcGF5bWVudC1zdGF0dXMtY29kZS5lbnVtJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge0RvUGF5bWVudFJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kby1wYXltZW50LXJlcXVlc3QnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tcGF5bWVudFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwicGF5bWVudC13cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LW1ldGhvZHMtcmVnaXN0ZXItd3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LW1ldGhvZHMtd3JhcHBlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBheW1lbnQtbWV0aG9kcy1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwYXltZW50LWhlYWRlci10aXRsZVwiIFt0ZXh0Q29udGVudF09XCInU0VMRUNUJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8IS0tc3BhbiBjbGFzcz1cInBheW1lbnQtaGVhZGVyLXRpdGxlIGV4dHJhXCIgW3RleHRDb250ZW50XT1cIidGUkVFJyB8IGxvY2FsaXplOmZhbHNlXCI+PC9zcGFuLS0+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGF5bWVudC1oZWFkZXItdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwiJ1BBWU1FTlRfTUVUSE9EJyB8IGxvY2FsaXplOmZhbHNlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGF5bWVudC1tZXRob2RzIGNvLXNtYWxsLXNjcm9sbGJhclwiPlxyXG4gICAgICAgICAgICA8Y28tbG9hZGVyIGNsYXNzPVwibG9hZGVyXCIgKm5nSWY9XCJzaG93TG9hZGVyXCI+PC9jby1sb2FkZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd0xvYWRlclwiPlxyXG4gICAgICAgICAgICAgIDxjby1wYXltZW50LXRpbGUgKm5nRm9yPVwibGV0IHBheW1lbnRNZXRob2Qgb2YgcGF5bWVudE1ldGhvZHM7IGxldCBpbmRleCA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbWFnZV09XCJwYXltZW50TWV0aG9kLmltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZXNjcmlwdGlvbl09XCJwYXltZW50TWV0aG9kLnBheW1lbnQuZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cInBheW1lbnRNZXRob2RJZHggPT09IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJwYXltZW50TWV0aG9kU2VsZWN0ZWQocGF5bWVudE1ldGhvZC5wYXltZW50LCBpbmRleClcIlxyXG4gICAgICAgICAgICAgID48L2NvLXBheW1lbnQtdGlsZT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGF5bWVudC1jYXNoLXJlZ2lzdGVyLXdyYXBwZXJcIiAqbmdJZj1cInNob3dDYXNoUmVnaXN0ZXJzXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGF5bWVudC1jYXNoLXJlZ2lzdGVyLWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBheW1lbnQtaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidTRUxFQ1RfQ0FTSF9SRUdJU1RFUicgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBheW1lbnQtbWV0aG9kc1wiPlxyXG4gICAgICAgICAgICA8Y28tcGF5bWVudC10aWxlICpuZ0Zvcj1cImxldCBjYXNoUmVnaXN0ZXIgb2YgY2FzaFJlZ2lzdGVyczsgbGV0IGluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImNhc2hSZWdpc3Rlci5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiY2FzaFJlZ2lzdGVyLmRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiY2FzaFJlZ2lzdGVySWR4ID09PSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cImNhc2hSZWdpc3RlclNlbGVjdGVkKGNhc2hSZWdpc3RlciwgaW5kZXgpXCJcclxuICAgICAgICAgICAgPjwvY28tcGF5bWVudC10aWxlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGF5bWVudC10by1wYXktd3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LXRvLXBheS10b3RhbFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBheW1lbnQtdG8tcGF5LWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBheW1lbnQtaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidUT1RBTF9BTU9VTlRfVE9fUEFZJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBheW1lbnQtdG90YWwtcGF5XCIgW3RleHRDb250ZW50XT1cImRlcG9zaXRBbW91bnQgPT09IDAgPyBkZXBvc2l0QW1vdW50IDogKGRlcG9zaXRBbW91bnQgfCBjb0N1cnJlbmN5KVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBheW1lbnQtaW5wdXQtYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBheW1lbnQtaW5wdXQtYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICA8Y28tcGF5bWVudC10by1wYXkgW2Ftb3VudFRvUGF5XT1cImFtb3VudFRvUGF5XCI+PC9jby1wYXltZW50LXRvLXBheT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LXRvLXBheS1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tEdW90b25lKVwiIChjbGljayk9XCJoYW5kbGVQYXltZW50KClcIiBbZGlzYWJsZWRdPVwiYW1vdW50VG9QYXkgPT09IDBcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBheW1lbnQtZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwic3RhdHVzTWVzc2FnZVwiIFt0ZXh0Q29udGVudF09XCJzdGF0dXNNZXNzYWdlXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBheW1lbnQtZGVwb3NpdFwiPlxyXG4gICAgICAgICAgPGNvLWRlcG9zaXQtcGF5bWVudCBbYnJhbmNoXT1cImJyYW5jaFwiIFt0cmFuc2FjdGlvblV1aWRdPVwidHJhbnNhY3Rpb25VdWlkXCI+PC9jby1kZXBvc2l0LXBheW1lbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGNvLWtleS1wYWQgY2xhc3M9XCJwYXltZW50LXRvLXBheS1rZXlwYWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93VmFsdWVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtlbWl0TW9kZWxDaGFuZ2VPbkVudGVyXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiYW1vdW50VG9QYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVLZXlQYWRNb2RlbENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAoZW50ZXJDbGljayk9XCJoYW5kbGVQYXltZW50KClcIlxyXG4gICAgICAgID48L2NvLWtleS1wYWQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8Y28tZGlhbG9nICpuZ0lmPVwic2hvd1BzcFFyQ29kZVwiIChjbG9zZUNsaWNrKT1cInNob3dQc3BRckNvZGUgPSBmYWxzZVwiPlxyXG4gICAgICA8Y28tcGF5bWVudC1xci1jb2RlXHJcbiAgICAgICAgICBbcXJDb2RlSW1hZ2VdPVwicXJDb2RlSW1hZ2VcIlxyXG4gICAgICA+PC9jby1wYXltZW50LXFyLWNvZGU+XHJcbiAgICA8L2NvLWRpYWxvZz5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFBheW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRyYW5zSWQ6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25VdWlkOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGJyYW5jaDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYW1vdW50KHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2Ftb3VudCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhbW91bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9hbW91bnQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjdXJyZW5jeUlkOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHVwZGF0ZURlcG9zaXRBbW91bnQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcGF5ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tcGF5bWVudFwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwYXltZW50TWV0aG9kSWR4OiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBjYXNoUmVnaXN0ZXJJZHg6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIHBheW1lbnRNZXRob2RzOiBQYXltZW50Vmlld21vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgY2FzaFJlZ2lzdGVyczogYW55W10gPSBbXTtcclxuICBwdWJsaWMgc2hvd0Nhc2hSZWdpc3RlcnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0tleVBhZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93UHNwUXJDb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGN1cnJlbnRQYXltZW50TWV0aG9kOiBQYXltZW50TWV0aG9kO1xyXG4gIHB1YmxpYyBxckNvZGVJbWFnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBzaG93TG9hZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgYW1vdW50VG9QYXk6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIGRlcG9zaXRBbW91bnQ6IG51bWJlciA9IDA7XHJcblxyXG4gIHB1YmxpYyBzdGF0dXNNZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBwcml2YXRlIF9hbW91bnQ6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBfcGF5bWVudFN0YXR1c0ludGVydmFsOiBhbnk7XHJcbiAgcHJpdmF0ZSBfcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbE1zOiBudW1iZXIgPSA1MDAwO1xyXG4gIHByaXZhdGUgX3BheW1lbnRTdGF0dXNNYXhQb2xsSW50ZXJ2YWw6IG51bWJlciA9IDEwO1xyXG4gIHByaXZhdGUgX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxDb3VudDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF9wYXltZW50UmVzdWx0OiBDcmVhdGVQYXltZW50TGlua1Jlc3VsdDtcclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgX3NoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgX3BheW1lbnRTZXJ2aWNlOiBQYXltZW50U2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSApe1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBpZiAodGhpcy51cGRhdGVEZXBvc2l0QW1vdW50KSB7XHJcbiAgICAvLyAgIGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uU2VydmljZS51cGRhdGVIZWFkZXJUcmFuc2FjdGlvbkRlcG9zaXRBbW91bnQodGhpcy50cmFuc2FjdGlvblV1aWQsIHRoaXMuYW1vdW50VG9QYXksIHRydWUpO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5fZ2V0UGF5bWVudE1ldGhvZHMoKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX2dldERlcG9zaXRQYXltZW50SW5mbygpO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlQ2FzaFJlZ2lzdGVycygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB0aGlzLl9jbGVhckludGVydmFsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcGF5bWVudE1ldGhvZFNlbGVjdGVkKG1ldGhvZDogUGF5bWVudE1ldGhvZCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5wYXltZW50TWV0aG9kSWR4ID0gaW5kZXg7XHJcbiAgICB0aGlzLl9wcmVwYXJlQ2FzaFJlZ2lzdGVycygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhc2hSZWdpc3RlclNlbGVjdGVkKGNhc2hSZWdpc3RlcjogQ2FzaFJlZ2lzdGVyLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhc2hSZWdpc3RlcklkeCA9IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVBheW1lbnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXR1c01lc3NhZ2UgPSBcIlwiO1xyXG4gICAgY29uc3QgY3VycmVudFBheW1lbnRWaWV3TW9kZWwgPSB0aGlzLnBheW1lbnRNZXRob2RzW3RoaXMucGF5bWVudE1ldGhvZElkeF07XHJcbiAgICB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kID0gY3VycmVudFBheW1lbnRWaWV3TW9kZWwucGF5bWVudDtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kICYmIHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QuZXh0ZXJuYWxTb3VyY2VJZCkgeyAvLyBwc3AgcGF5bWVudFxyXG4gICAgICBpZiAodGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZC5waW5UZXJtaW5hbCkge1xyXG4gICAgICAgIGNvbnN0IGNhc2hSZWdpc3RlcjogQ2FzaFJlZ2lzdGVyID0gdGhpcy5jYXNoUmVnaXN0ZXJzW3RoaXMuY2FzaFJlZ2lzdGVySWR4XTtcclxuICAgICAgICB0aGlzLl9wYXltZW50U2VydmljZS5kb1BpblBheW1lbnQodGhpcy50cmFuc0lkLCB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLmNvZGUsIGNhc2hSZWdpc3Rlci5uciwgY2FzaFJlZ2lzdGVyLmdyb3VwLCB0aGlzLmFtb3VudFRvUGF5KS50aGVuKChwc3BUcmFuc2FjdGlvblV1aWQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgaWYgKHBzcFRyYW5zYWN0aW9uVXVpZCkge1xyXG4gICAgICAgICAgICB0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsQ291bnQgPSAwO1xyXG4gICAgICAgICAgICB0aGlzLl93YWl0Rm9yUGluUGF5bWVudFN0YXR1cyhwc3BUcmFuc2FjdGlvblV1aWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX3BheW1lbnRTZXJ2aWNlLmNyZWF0ZUlvbmVQYXltZW50TGlua0FuZFFSQ29kZSh0aGlzLnRyYW5zYWN0aW9uVXVpZCwgdGhpcy5hbW91bnRUb1BheSwgdGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZC5jb2RlKS50aGVuKChyZXNwb25zZTogQ3JlYXRlUGF5bWVudExpbmtSZXN1bHQpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3BheW1lbnRSZXN1bHQgPSByZXNwb25zZTtcclxuICAgICAgICAgIGlmICh0aGlzLl9wYXltZW50UmVzdWx0ICYmIHRoaXMuX3BheW1lbnRSZXN1bHQuaW1hZ2VCYXNlNjQpIHtcclxuICAgICAgICAgICAgdGhpcy5xckNvZGVJbWFnZSA9IHRoaXMuX2RhdGFVcmlUb0Jhc2U2NCh0aGlzLl9wYXltZW50UmVzdWx0LmltYWdlQmFzZTY0LCAnaW1hZ2UvcG5nJyk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1BzcFFyQ29kZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxDb3VudCA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMuX3dhaXRGb3JQYXltZW50U3RhdHVzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRDYXNoUmVnaXN0ZXI6IENhc2hSZWdpc3RlciA9IHRoaXMuY2FzaFJlZ2lzdGVyc1t0aGlzLmNhc2hSZWdpc3RlcklkeF07XHJcbiAgICAgIGNvbnN0IHJlcXVlc3Q6IERvUGF5bWVudFJlcXVlc3QgPSBuZXcgRG9QYXltZW50UmVxdWVzdCgpO1xyXG4gICAgICByZXF1ZXN0LnRyYW5zSWQgPSB0aGlzLnRyYW5zSWQ7XHJcbiAgICAgIHJlcXVlc3QucGF5bWVudE1ldGhvZENvZGUgPSB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLmNvZGU7XHJcbiAgICAgIHJlcXVlc3QuYW1vdW50ID0gdGhpcy5hbW91bnRUb1BheTtcclxuICAgICAgcmVxdWVzdC5jdXJyZW5jeUlkID0gdGhpcy5jdXJyZW5jeUlkO1xyXG4gICAgICByZXF1ZXN0LmNhc2hSZWdpc3Rlck5yID0gY3VycmVudENhc2hSZWdpc3Rlci5ucjtcclxuICAgICAgcmVxdWVzdC5jYXNoUmVnaXN0ZXJHcm91cElkID0gY3VycmVudENhc2hSZWdpc3Rlci5ncm91cDtcclxuICAgICAgcmVxdWVzdC5jYXNoUmVnaXN0ZXJEcmF3ZXJJZCA9IG51bGw7XHJcbiAgICAgIHRoaXMuX3BheW1lbnRTZXJ2aWNlLmRvUGF5bWVudChyZXF1ZXN0KS50aGVuKGFzeW5jICgpID0+IHtcclxuICAgICAgICB0aGlzLnNob3dLZXlQYWQgPSBmYWxzZTtcclxuICAgICAgICBhd2FpdCB0aGlzLl9nZXREZXBvc2l0UGF5bWVudEluZm8oKTtcclxuICAgICAgICB0aGlzLl9oYW5kbGVQYXltZW50KGZhbHNlKTtcclxuICAgICAgICBpZiAodGhpcy5hbW91bnRUb1BheSA9PT0gMCkge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlUGF5bWVudCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlS2V5UGFkTW9kZWxDaGFuZ2UobW9kZWw6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5hbW91bnRUb1BheSA9IG1vZGVsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfZ2V0RGVwb3NpdFBheW1lbnRJbmZvKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMudXBkYXRlRGVwb3NpdEFtb3VudCkge1xyXG4gICAgICBjb25zdCBpbmZvOiBUcmFuc2FjdGlvbkRlcG9zaXRQYXltZW50SW5mbyA9IGF3YWl0IHRoaXMuX3BheW1lbnRTZXJ2aWNlLmdldERlcG9zaXRQYXltZW50SW5mbyh0aGlzLnRyYW5zYWN0aW9uVXVpZCk7XHJcbiAgICAgIGlmIChpbmZvKSB7XHJcbiAgICAgICAgdGhpcy5hbW91bnRUb1BheSA9IGluZm8uZGVwb3NpdFJlbWFpbmRlckFtb3VudDtcclxuICAgICAgICB0aGlzLmRlcG9zaXRBbW91bnQgPSBpbmZvLmRlcG9zaXRBbW91bnQ7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYW1vdW50VG9QYXkgPSB0aGlzLl9hbW91bnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kYXRhVXJpVG9CYXNlNjQodXJpOiBzdHJpbmcsIG1pbWVUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHVyaSA/IFwiZGF0YTpcIiArIG1pbWVUeXBlICsgXCI7YmFzZTY0LFwiICsgdXJpIDogXCJcIjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3dhaXRGb3JQYXltZW50U3RhdHVzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3BheW1lbnRSZXN1bHQgJiYgdGhpcy5fcGF5bWVudFJlc3VsdC5wYXltZW50TGlua1VVSUQpIHtcclxuICAgICAgdGhpcy5fcGF5bWVudFN0YXR1c0ludGVydmFsID0gc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsQ291bnQgPj0gdGhpcy5fcGF5bWVudFN0YXR1c01heFBvbGxJbnRlcnZhbCkge1xyXG4gICAgICAgICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBzdGF0dXM6IFBheW1lbnRMaW5rU3RhdHVzID0gYXdhaXQgdGhpcy5fcGF5bWVudFNlcnZpY2UuZ2V0UGF5bWVudExpbmtTdGF0dXModGhpcy5fcGF5bWVudFJlc3VsdC5wYXltZW50TGlua1VVSUQpO1xyXG4gICAgICAgICAgaWYgKHN0YXR1cy5wYXllZERhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dQc3BRckNvZGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5fZ2V0RGVwb3NpdFBheW1lbnRJbmZvKCk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFtb3VudFRvUGF5ID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5faGFuZGxlUGF5bWVudCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsQ291bnQrKztcclxuICAgICAgICB9XHJcbiAgICAgIH0sIHRoaXMuX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxNcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9jbGVhckludGVydmFsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF93YWl0Rm9yUGluUGF5bWVudFN0YXR1cyhwc3BUcmFuc2FjdGlvblV1aWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHBzcFRyYW5zYWN0aW9uVXVpZCkge1xyXG4gICAgICB0aGlzLl9wYXltZW50U3RhdHVzSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxDb3VudCA+PSB0aGlzLl9wYXltZW50U3RhdHVzTWF4UG9sbEludGVydmFsKSB7XHJcbiAgICAgICAgICB0aGlzLl9jbGVhckludGVydmFsKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHBpblN0YXR1czogUHNwVHJhbnNhY3Rpb25TdGF0dXMgPSBhd2FpdCB0aGlzLl9wYXltZW50U2VydmljZS5nZXRQc3BUcmFuc2FjdGlvblN0YXR1cyhwc3BUcmFuc2FjdGlvblV1aWQpO1xyXG4gICAgICAgICAgaWYgKHBpblN0YXR1cyAmJiBwaW5TdGF0dXMuc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzTWVzc2FnZSA9IHBpblN0YXR1cy5zdGF0dXMuZGVzY3JpcHRpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAocGluU3RhdHVzLnN0YXR1c0RhdGUgJiYgcGluU3RhdHVzLnN0YXR1cyAmJiBwaW5TdGF0dXMuc3RhdHVzLmVuZFN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLl9jbGVhckludGVydmFsKCk7XHJcbiAgICAgICAgICAgIGlmIChwaW5TdGF0dXMuc3RhdHVzLmNvZGUgPT09IElvbmVQYXltZW50U3RhdHVzQ29kZS5QQUlEKSB7XHJcbiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fZ2V0RGVwb3NpdFBheW1lbnRJbmZvKCk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuYW1vdW50VG9QYXkgPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVBheW1lbnQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxDb3VudCsrO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgdGhpcy5fcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbE1zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2NsZWFySW50ZXJ2YWwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NsZWFySW50ZXJ2YWwoKTogdm9pZCB7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuX3BheW1lbnRTdGF0dXNJbnRlcnZhbCk7XHJcbiAgICB0aGlzLl9wYXltZW50U3RhdHVzSW50ZXJ2YWwgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZUNhc2hSZWdpc3RlcnMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBwYXltZW50TWV0aG9kOiBQYXltZW50TWV0aG9kID0gdGhpcy5wYXltZW50TWV0aG9kc1t0aGlzLnBheW1lbnRNZXRob2RJZHhdLnBheW1lbnQ7XHJcbiAgICBpZiAocGF5bWVudE1ldGhvZCAmJiAoIXBheW1lbnRNZXRob2QuZXh0ZXJuYWxTb3VyY2VJZCB8fCBwYXltZW50TWV0aG9kLnBpblRlcm1pbmFsKSkge1xyXG4gICAgICB0aGlzLmNhc2hSZWdpc3RlcnMubGVuZ3RoID0gMDtcclxuICAgICAgcGF5bWVudE1ldGhvZC5wb3NHcm91cHMuZm9yRWFjaChjcmcgPT4ge1xyXG4gICAgICAgIHRoaXMuX2dldENhc2hSZWdpc3RlcnModGhpcy5icmFuY2gsIGNyZy5pZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNob3dDYXNoUmVnaXN0ZXJzID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd0Nhc2hSZWdpc3RlcnMgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldENhc2hSZWdpc3RlcnMoYnJhbmNoPzogc3RyaW5nLCBncm91cD86IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb25TZXJ2aWNlLmdldENhc2hSZWdpc3RlcnMoYnJhbmNoLCBncm91cCkudGhlbigoY2FzaFJlZ2lzdGVyczogQ2FzaFJlZ2lzdGVyW10pID0+IHtcclxuICAgICAgdGhpcy5jYXNoUmVnaXN0ZXJzLnB1c2goLi4uY2FzaFJlZ2lzdGVycyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFBheW1lbnRNZXRob2RzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICB0aGlzLnBheW1lbnRNZXRob2RzLmxlbmd0aCA9IDA7XHJcbiAgICAgIHRoaXMuX3BheW1lbnRTZXJ2aWNlLmdldFBheW1lbnRNZXRob2RzVmlld01vZGVscyh0aGlzLmJyYW5jaCkudGhlbigobWV0aG9kczogUGF5bWVudFZpZXdtb2RlbFtdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5wYXltZW50TWV0aG9kcyA9IG1ldGhvZHMuc2xpY2UoKTtcclxuICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVQYXltZW50KGVtaXRQYXllZDogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnRyYW5zYWN0aW9uUGF5bWVudERvbmUubmV4dCgpO1xyXG4gICAgaWYgKGVtaXRQYXllZCkge1xyXG4gICAgICB0aGlzLnBheWVkLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19