ng-easycommerce 1.1.2 → 1.1.3

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 (100) hide show
  1. package/README.md +10 -0
  2. package/assets/ec-i18n/ct.json +2 -0
  3. package/assets/ec-i18n/en.json +2 -0
  4. package/assets/ec-i18n/es.json +2 -0
  5. package/assets/ec-i18n/fr.json +2 -0
  6. package/assets/ec-i18n/gl.json +2 -0
  7. package/assets/ec-i18n/pr.json +2 -0
  8. package/bundles/ng-easycommerce.umd.js +5663 -4057
  9. package/bundles/ng-easycommerce.umd.js.map +1 -1
  10. package/bundles/ng-easycommerce.umd.min.js +1 -1
  11. package/bundles/ng-easycommerce.umd.min.js.map +1 -1
  12. package/esm2015/lib/api/connection.service.js +2 -2
  13. package/esm2015/lib/core.consts.js +4 -5
  14. package/esm2015/lib/ec-component/cart-bootstrap-navigation.js +27 -0
  15. package/esm2015/lib/ec-component/cart-ec/cart-ec.component.js +11 -1
  16. package/esm2015/lib/ec-component/checkout-ec/checkout-ec.component.js +23 -2
  17. package/esm2015/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.js +185 -13
  18. package/esm2015/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.js +3 -1
  19. package/esm2015/lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component.js +4 -2
  20. package/esm2015/lib/ec-component/coupon-ec/coupon-ec.component.js +6 -1
  21. package/esm2015/lib/guards/able-buyer-guard.service.js +2 -2
  22. package/esm2015/lib/guards/auth-guard.service.js +2 -2
  23. package/esm2015/lib/guards/checkout-ready.service.js +3 -3
  24. package/esm2015/lib/guards/loggedin-guard.service.js +2 -2
  25. package/esm2015/lib/guards/user-role-guard.service.js +2 -2
  26. package/esm2015/lib/services/account/orders.service.js +6 -4
  27. package/esm2015/lib/services/auth.service.js +4 -3
  28. package/esm2015/lib/services/captcha.service.js +6 -4
  29. package/esm2015/lib/services/cart.service.js +1186 -74
  30. package/esm2015/lib/services/channel-config.service.js +4 -6
  31. package/esm2015/lib/services/checkout/addressing.service.js +65 -9
  32. package/esm2015/lib/services/checkout/checkout.service.js +56 -9
  33. package/esm2015/lib/services/checkout/error-handler.service.js +4 -3
  34. package/esm2015/lib/services/checkout/payment.service.js +35 -15
  35. package/esm2015/lib/services/checkout/shipment.service.js +54 -3
  36. package/esm2015/lib/services/concatenated-associations.service.js +4 -3
  37. package/esm2015/lib/services/currency.service.js +5 -3
  38. package/esm2015/lib/services/filters.service.js +2 -2
  39. package/esm2015/lib/services/footer/footer.service.js +4 -3
  40. package/esm2015/lib/services/gift-card.service.js +56 -5
  41. package/esm2015/lib/services/parameters.service.js +5 -3
  42. package/esm2015/lib/services/reviews.service.js +5 -4
  43. package/esm2015/lib/services/seo.service.js +4 -5
  44. package/esm2015/lib/services/stores.service.js +4 -3
  45. package/esm2015/lib/services/wishlist.service.js +3 -4
  46. package/esm2015/lib/utils/analytics/google-analytics.service.js +1 -1
  47. package/esm2015/lib/utils/price-presentation.service.js +2 -3
  48. package/esm2015/lib/utils/shipping-price-display.service.js +2 -3
  49. package/esm5/lib/api/connection.service.js +2 -2
  50. package/esm5/lib/core.consts.js +4 -5
  51. package/esm5/lib/ec-component/cart-bootstrap-navigation.js +27 -0
  52. package/esm5/lib/ec-component/cart-ec/cart-ec.component.js +11 -1
  53. package/esm5/lib/ec-component/checkout-ec/checkout-ec.component.js +23 -2
  54. package/esm5/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.js +206 -12
  55. package/esm5/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.js +3 -1
  56. package/esm5/lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component.js +5 -3
  57. package/esm5/lib/ec-component/coupon-ec/coupon-ec.component.js +6 -1
  58. package/esm5/lib/guards/able-buyer-guard.service.js +2 -2
  59. package/esm5/lib/guards/auth-guard.service.js +2 -2
  60. package/esm5/lib/guards/checkout-ready.service.js +3 -3
  61. package/esm5/lib/guards/loggedin-guard.service.js +2 -2
  62. package/esm5/lib/guards/user-role-guard.service.js +2 -2
  63. package/esm5/lib/services/account/orders.service.js +6 -4
  64. package/esm5/lib/services/auth.service.js +4 -3
  65. package/esm5/lib/services/captcha.service.js +6 -4
  66. package/esm5/lib/services/cart.service.js +1231 -94
  67. package/esm5/lib/services/channel-config.service.js +4 -6
  68. package/esm5/lib/services/checkout/addressing.service.js +65 -9
  69. package/esm5/lib/services/checkout/checkout.service.js +63 -12
  70. package/esm5/lib/services/checkout/error-handler.service.js +4 -3
  71. package/esm5/lib/services/checkout/payment.service.js +29 -11
  72. package/esm5/lib/services/checkout/shipment.service.js +58 -7
  73. package/esm5/lib/services/concatenated-associations.service.js +4 -3
  74. package/esm5/lib/services/currency.service.js +5 -3
  75. package/esm5/lib/services/filters.service.js +2 -2
  76. package/esm5/lib/services/footer/footer.service.js +4 -3
  77. package/esm5/lib/services/gift-card.service.js +59 -5
  78. package/esm5/lib/services/parameters.service.js +5 -3
  79. package/esm5/lib/services/reviews.service.js +5 -4
  80. package/esm5/lib/services/seo.service.js +4 -5
  81. package/esm5/lib/services/stores.service.js +4 -3
  82. package/esm5/lib/services/wishlist.service.js +3 -4
  83. package/esm5/lib/utils/analytics/google-analytics.service.js +1 -1
  84. package/esm5/lib/utils/price-presentation.service.js +2 -3
  85. package/esm5/lib/utils/shipping-price-display.service.js +2 -3
  86. package/fesm2015/ng-easycommerce.js +3966 -2412
  87. package/fesm2015/ng-easycommerce.js.map +1 -1
  88. package/fesm5/ng-easycommerce.js +5667 -4061
  89. package/fesm5/ng-easycommerce.js.map +1 -1
  90. package/lib/ec-component/cart-bootstrap-navigation.d.ts +7 -0
  91. package/lib/ec-component/cart-ec/cart-ec.component.d.ts +5 -2
  92. package/lib/ec-component/checkout-ec/checkout-ec.component.d.ts +5 -0
  93. package/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.d.ts +27 -3
  94. package/lib/services/cart.service.d.ts +120 -7
  95. package/lib/services/checkout/addressing.service.d.ts +1 -1
  96. package/lib/services/checkout/checkout.service.d.ts +3 -0
  97. package/lib/services/checkout/shipment.service.d.ts +2 -2
  98. package/lib/services/gift-card.service.d.ts +1 -0
  99. package/ng-easycommerce.metadata.json +1 -1
  100. package/package.json +1 -1
@@ -210,6 +210,8 @@ var PaymentEcComponent = /** @class */ (function (_super) {
210
210
  return [4 /*yield*/, this.paymentService.putPayment(method.code)];
211
211
  case 2:
212
212
  result = _l.sent();
213
+ if (result === false || result === undefined || result === null)
214
+ return [2 /*return*/];
213
215
  if ((_e = result) === null || _e === void 0 ? void 0 : _e.totals) {
214
216
  this.cartService.updateCartAfterPaymentResponse(result);
215
217
  }
@@ -502,4 +504,4 @@ var PaymentEcComponent = /** @class */ (function (_super) {
502
504
  return PaymentEcComponent;
503
505
  }(ComponentHelper));
504
506
  export { PaymentEcComponent };
505
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvZWMtY29tcG9uZW50L2NoZWNrb3V0LWVjL3BheW1lbnQtZWMvcGF5bWVudC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQWlCLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBU2pEO0lBQXdDLHNDQUFlO0lBcUNuRCw0QkFBc0IsUUFBbUIsRUFBWSxNQUFvQixFQUM5RCxjQUE4QixFQUFTLGVBQWdDLEVBQ3RFLFdBQXdCLEVBQVUsTUFBaUIsRUFBVSxNQUFjO1FBRnZGLFlBR0ksaUJBQU8sU0FFVjtRQUxxQixjQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVksWUFBTSxHQUFOLE1BQU0sQ0FB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VyxrQkFBa0IsQ0E2WTlCO0lBQUQseUJBQUM7Q0FBQSxBQTdZRCxDQUF3QyxlQUFlLEdBNll0RDtTQTdZWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFJlbmRlcmVyMiwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2NvbXBvbmVudC1oZWxwZXInO1xuaW1wb3J0IHsgQ2hlY2tvdXREYXRhLCBQYXltZW50TWV0aG9kQWRqdXN0bWVudFByZXZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2NoZWNrb3V0LWRhdGEnO1xuaW1wb3J0IHsgQ2hlY2tvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2hlY2tvdXQvY2hlY2tvdXQuc2VydmljZSc7XG5pbXBvcnQgeyBQYXltZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NoZWNrb3V0L3BheW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91dGlscy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uLy4uL2NvcmUuY29uc3RzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcGF5bWVudC1lYycsXG4gICAgdGVtcGxhdGVVcmw6ICdwYXltZW50LWVjLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsncGF5bWVudC1lYy5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1BheW1lbnRTZXJ2aWNlXVxuXG59KVxuZXhwb3J0IGNsYXNzIFBheW1lbnRFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcblxuICAgIEBJbnB1dCgpIHN0ZXBfaWQ7XG4gICAgQElucHV0KCkgY29tcGFjdFBheW1lbnRWaWV3OiBib29sZWFuID0gZmFsc2U7XG4gICAgQE91dHB1dCgpIGRpcnR5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgIEBWaWV3Q2hpbGQoJ2Zvcm1Db250YWluZXInKSBwcm90ZWN0ZWQgbWVyY2Fkb3BhZ29fYnV0dG9uOiBFbGVtZW50UmVmO1xuICAgIHByb3RlY3RlZCBtZXRob2REYXRhU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgICBwcml2YXRlIGxvYWRpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJvdGVjdGVkIHByZWZlcmVuY2U7XG5cblxuICAgIHB1YmxpYyBsb2FkaW5nX2ludGVybmFsID0gZmFsc2U7XG4gICAgcHVibGljIG9yZGVyX2lkO1xuICAgIHB1YmxpYyBlcnJvcjtcbiAgICBwdWJsaWMgbG9hZGluZyA9IHRydWU7XG4gICAgcHVibGljIGxvYWRpbmdfaW50ZXJuYWxfbXAgPSBmYWxzZTtcbiAgICBwdWJsaWMgbWV0aG9kX2RhdGEkID0gdGhpcy5tZXRob2REYXRhU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICBwdWJsaWMgbG9hZGluZyQgPSB0aGlzLmxvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHB1YmxpYyB0b3RhbF9hbW91bnQ7XG4gICAgcHVibGljIGFsbG93QW55UGF5bWVudE1ldGhvZDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBiYWxhbmNlTWV0aG9kUmVqZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgc2hvd01ldGhvZEVycm9yID0gZmFsc2U7XG4gICAgcHVibGljIHNlbGVjdGVkTWV0aG9kQ29kZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGN1cnJlbnRNZXRob2Q6IGFueSA9IG51bGw7XG4gICAgcHJpdmF0ZSBsYXN0QWRkcmVzc0tleTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIHZhbGlkYXRpbmdNZXRob2RDb2RlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgaW52YWxpZE1ldGhvZHNCYWxhbmNlOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuICAgIHB1YmxpYyBpbnZhbGlkTWV0aG9kc0JhY2tlbmQ6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XG4gICAgcHJpdmF0ZSBwYXltZW50TWV0aG9kczogYW55W10gPSBbXTtcbiAgICBwcml2YXRlIGJhbGFuY2VDdXN0b21lcjogYW55ID0gbnVsbDtcbiAgICBwdWJsaWMgcGF5bWVudExvY2tlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgYXV0b0NvbXBsZXRpbmcgPSBmYWxzZTtcbiAgICBwcml2YXRlIGxhc3RTYXZlZE1ldGhvZENvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgaXNEaXJ0eSA9IGZhbHNlO1xuICAgIHByaXZhdGUgc3VwcHJlc3NEaXJ0eSA9IGZhbHNlO1xuXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJvdGVjdGVkIHRvYXN0cjogVG9hc3RTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgcGF5bWVudFNlcnZpY2U6IFBheW1lbnRTZXJ2aWNlLCBwdWJsaWMgY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLCBwcml2YXRlIGNvbnN0czogQ29uc3RhbnRzLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpXG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKSB7IH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmluaXRpYWxpemUodGhpcy5zdGVwX2lkKTtcbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UuYXNvY2lhdGVkRGF0YSQuc3Vic2NyaWJlKChkYXRhOiBDaGVja291dERhdGFbXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdG90YWxJdGVtID0gKGRhdGEgfHwgW10pLmZpbmQoaXRlbSA9PiBpdGVtLnR5cGUgPT0gJ3RvdGFsJyk7XG4gICAgICAgICAgICB0aGlzLnRvdGFsX2Ftb3VudCA9IHRvdGFsSXRlbSA/IHRvdGFsSXRlbS5hbW91bnQgOiAwO1xuICAgICAgICB9KVxuXG4gICAgICAgIGlmICghdGhpcy5jb21wYWN0UGF5bWVudFZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UuZ2V0UGF5bWVudE1ldGhvZHMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLnN0YXRlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFkZHJlc3NEYXRhID0gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0U3RlcERhdGEoJ2FkZHJlc3MnKTtcbiAgICAgICAgICAgICAgICBpZiAoIWFkZHJlc3NEYXRhKSByZXR1cm47XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoYWRkcmVzc0RhdGEpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxhc3RBZGRyZXNzS2V5ID09PSBrZXkpIHJldHVybjtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RBZGRyZXNzS2V5ID0ga2V5O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5zdGF0ZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jb21wYWN0UGF5bWVudFZpZXcpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMucGF5bWVudExvY2tlZCA9ICF0aGlzLmNoZWNrb3V0U2VydmljZS5pc1N0ZXBSZWFkeSgnc2hpcG1lbnQnKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLnN0YXRlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNvbXBhY3RQYXltZW50VmlldykgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNoZWNrb3V0U2VydmljZS5pc1N0ZXBSZWFkeSgncGF5bWVudCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTYXZlZE1ldGhvZENvZGUobnVsbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc3RlcERhdGE6IGFueSA9IHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldFN0ZXBEYXRhKCdwYXltZW50JyBhcyBhbnkpO1xuICAgICAgICAgICAgY29uc3QgY29kZSA9IHN0ZXBEYXRhPy5jb2RlIHx8IHN0ZXBEYXRhPy5tZXRob2Q/LmNvZGUgfHwgc3RlcERhdGE/Lm1ldGhvZF9jb2RlIHx8IG51bGw7XG4gICAgICAgICAgICBpZiAoY29kZSAmJiB0aGlzLmxhc3RTYXZlZE1ldGhvZENvZGUgIT09IGNvZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFNhdmVkTWV0aG9kQ29kZShjb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5hbGxvd0FueVBheW1lbnRNZXRob2QkLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWxsb3dBbnlQYXltZW50TWV0aG9kID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLm1ldGhvZHMkLnN1YnNjcmliZShtZXRob2RzID0+IHtcbiAgICAgICAgICAgIHRoaXMucGF5bWVudE1ldGhvZHMgPSBtZXRob2RzIHx8IFtdO1xuICAgICAgICAgICAgaWYgKHRoaXMuY29tcGFjdFBheW1lbnRWaWV3KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnZhbGlkTWV0aG9kc0JhY2tlbmQgPSB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudXBkYXRlQmFsYW5jZUJhc2VkSW52YWxpZE1ldGhvZHMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2UuYmFsYW5jZUN1c3RvbWVyJC5zdWJzY3JpYmUoYmFsYW5jZSA9PiB7XG4gICAgICAgICAgICB0aGlzLmJhbGFuY2VDdXN0b21lciA9IGJhbGFuY2U7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUJhbGFuY2VCYXNlZEludmFsaWRNZXRob2RzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm1ldGhvZF9kYXRhJC5zdWJzY3JpYmUobWV0aG9kID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE1ldGhvZCA9IG1ldGhvZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZWNPbkluaXQoKVxuXG4gICAgfVxuXG4gICAgYWxsRGF0YSA9ICgpID0+ICh7XG4gICAgICAgIC4uLnRoaXMucGF5bWVudFNlcnZpY2UuZ2V0VXNlckRhdGEoKS5zaGlwcGluZ0FkZHJlc3MsXG4gICAgICAgIC4uLnRoaXMucGF5bWVudFNlcnZpY2UuZ2V0U2hpcG1lbnREYXRhKCksXG4gICAgfSk7XG5cbiAgICBnZXRQYXltZW50SW1hZ2VVcmwgPSAoaW1hZ2U6IGFueSk6IHN0cmluZyA9PiB7XG4gICAgICAgIGNvbnN0IHJhd1BhdGggPSBpbWFnZT8ucGF0aCB8fCBpbWFnZT8udXJsIHx8IGltYWdlPy5zcmMgfHwgaW1hZ2U7XG4gICAgICAgIGlmICghcmF3UGF0aCB8fCB0eXBlb2YgcmF3UGF0aCAhPT0gJ3N0cmluZycpIHJldHVybiAnJztcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSByYXdQYXRoLnN0YXJ0c1dpdGgoJy9tZWRpYS9pbWFnZS8nKVxuICAgICAgICAgICAgPyByYXdQYXRoLnJlcGxhY2UoJy9tZWRpYS9pbWFnZS8nLCAnJylcbiAgICAgICAgICAgIDogcmF3UGF0aDtcbiAgICAgICAgaWYgKC9eaHR0cHM/OlxcL1xcLy9pLnRlc3Qobm9ybWFsaXplZFBhdGgpKSByZXR1cm4gbm9ybWFsaXplZFBhdGg7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnN0cy5tZWRpYVVybCgpICsgbm9ybWFsaXplZFBhdGg7XG4gICAgfVxuXG4gICAgc2V0RXJyb3IgPSAobWVzc2FnZSkgPT4ge1xuICAgICAgICB0aGlzLmVycm9yID0gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBlbWl0UmVzdWx0ID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBtZXRob2REYXRhID0gdGhpcy5tZXRob2REYXRhU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBhdXRvQ29tcGxldGUgPSB0aGlzLmNvbXBhY3RQYXltZW50VmlldyAmJiB0aGlzLmlzQXV0b0NvbXBsZXRlTWV0aG9kKG1ldGhvZERhdGEpO1xuICAgICAgICBjb25zdCBzdGVwRGF0YSA9IG1ldGhvZERhdGEgPyB7IC4uLm1ldGhvZERhdGEsIGF1dG9Db21wbGV0ZSB9IDogbWV0aG9kRGF0YTtcbiAgICAgICAgdGhpcy5wYXltZW50U2VydmljZS5zZXRTdGVwUmVhZHkoc3RlcERhdGEsIG51bGwpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuc2V0U2F2ZWRNZXRob2RDb2RlKG1ldGhvZERhdGE/LmNvZGUgfHwgbnVsbCk7XG4gICAgICAgICAgICBpZiAoYXV0b0NvbXBsZXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maW5hbGl6ZUNoZWNrb3V0RnJvbVBheW1lbnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5hbGl6ZUNoZWNrb3V0RnJvbVBheW1lbnQgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9Db21wbGV0aW5nKSByZXR1cm47XG4gICAgICAgIHRoaXMuYXV0b0NvbXBsZXRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5jb21wbGV0ZSgpLnRoZW4oXG4gICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXM/Lm9rKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnY2hlY2tvdXQvb3JkZXJfc3VjY2VzcyddKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5zaG93KCdvcGVyYXRpb24tZXJyb3InKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuc2hvdygnb3BlcmF0aW9uLWVycm9yJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHNldExvYWRpbmcgPSAoZXN0YWRvID0gdHJ1ZSkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQoZXN0YWRvKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdmVyaWZ5VmFsaWRhdGUgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0TG9hZGluZygpO1xuICAgICAgICB0aGlzLmVtaXRSZXN1bHQoKTtcbiAgICB9XG5cbiAgICBzZXRNZXRob2QgPSBhc3luYyAobWV0aG9kKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBhY3RQYXltZW50VmlldyAmJiB0aGlzLnNlbGVjdGVkTWV0aG9kQ29kZSA9PT0gbWV0aG9kPy5jb2RlICYmICF0aGlzLmxvYWRpbmdfaW50ZXJuYWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb21wYWN0UGF5bWVudFZpZXcgJiYgdGhpcy5wYXltZW50TG9ja2VkKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ci5zaG93KCdzaGlwbWVudC1tZXRob2QtcmVxdWlyZWQnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb21wYWN0UGF5bWVudFZpZXcgJiYgdGhpcy5pc1BheW1lbnRNZXRob2REaXNhYmxlZChtZXRob2QpKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ci5zaG93KCd0aGlzLXBheW1lbnQtbWV0aG9kLWNhbm5vdC1iZS11c2VkJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkaW5nX2ludGVybmFsID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW5nTWV0aG9kQ29kZSA9IG1ldGhvZD8uY29kZSB8fCBudWxsO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTWV0aG9kQ29kZSA9IG1ldGhvZD8uY29kZSB8fCBudWxsO1xuICAgICAgICB0aGlzLmV2YWx1YXRlRGlydHlGb3JTZWxlY3Rpb24obWV0aG9kPy5jb2RlIHx8IG51bGwpO1xuICAgICAgICB0aGlzLm1ldGhvZERhdGFTdWJqZWN0Lm5leHQobnVsbCk7XG4gICAgICAgIHRoaXMuc2hvd01ldGhvZEVycm9yID0gZmFsc2U7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnBheW1lbnRTZXJ2aWNlLnB1dFBheW1lbnQobWV0aG9kLmNvZGUpO1xuXG4gICAgICAgICAgICBpZiAocmVzdWx0Py50b3RhbHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLnVwZGF0ZUNhcnRBZnRlclBheW1lbnRSZXNwb25zZShyZXN1bHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBiYWxhbmNlQ3VzdG9tZXIgPSByZXN1bHQ/LmJhbGFuY2VDdXN0b21lcjtcblxuICAgICAgICAgICAgY29uc3QgdG90YWxzID0gcmVzdWx0Py50b3RhbHM7XG5cbiAgICAgICAgICAgIHRoaXMuY2FydFNlcnZpY2UudXBkYXRlQmFsYW5jZUF0dHJpYnV0ZXMoYmFsYW5jZUN1c3RvbWVyLCB0b3RhbHM/LnRvdGFsKTtcblxuICAgICAgICAgICAgY29uc3QgaXNCYWxhbmNlTWV0aG9kID0gdGhpcy5pc0JhbGFuY2VJbkFjY291bnQobWV0aG9kLmNvZGUpO1xuICAgICAgICAgICAgY29uc3QgYWxsb3dBbnkgPSBiYWxhbmNlQ3VzdG9tZXI/LmFsbG93QW55UGF5bWVudE1ldGhvZDtcblxuICAgICAgICAgICAgLy8gVmFsaWRhY2lvbmVzIGRlIGVycm9yXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKGJhbGFuY2VDdXN0b21lciAmJiBhbGxvd0FueSA9PT0gZmFsc2UgJiYgIWlzQmFsYW5jZU1ldGhvZCkgfHwgLy8gbm8gcGVybWl0ZSBvdHJvIG3DqXRvZG9cbiAgICAgICAgICAgICAgICAoaXNCYWxhbmNlTWV0aG9kICYmICFiYWxhbmNlQ3VzdG9tZXIpIC8vIHNlbGVjY2lvbsOzIGN1ZW50YSBjb3JyaWVudGUgcGVybyBubyBoYXkgYmFsYW5jZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVNZXRob2RFcnJvcigndGhpcy1wYXltZW50LW1ldGhvZC1jYW5ub3QtYmUtdXNlZCcsIG1ldGhvZCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29tcGFjdFBheW1lbnRWaWV3ICYmIG1ldGhvZD8uY29kZSkge1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFZhbGlkYWNpw7NuIGRlIGNyw6lkaXRvIGluc3VmaWNpZW50ZSAoc2kgbm8gc2UgcHVlZGUgZXhjZWRlcilcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBpc0JhbGFuY2VNZXRob2QgJiZcbiAgICAgICAgICAgICAgICBiYWxhbmNlQ3VzdG9tZXIgJiZcbiAgICAgICAgICAgICAgICB0b3RhbHMgJiZcbiAgICAgICAgICAgICAgICBiYWxhbmNlQ3VzdG9tZXIuYWxsb3dFeGNlZWRCYWxhbmNlID09PSBmYWxzZSAmJlxuICAgICAgICAgICAgICAgIGJhbGFuY2VDdXN0b21lci5jcmVkaXRBbW91bnQgPCB0b3RhbHMudG90YWxcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ2luc3VmZmljaWVudF9jcmVkaXQnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJhbGFuY2VNZXRob2RSZWplY3RlZCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzQmFsYW5jZU1ldGhvZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYmFsYW5jZU1ldGhvZFJlamVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubWV0aG9kRGF0YVN1YmplY3QubmV4dChtZXRob2QpO1xuICAgICAgICAgICAgLy8gdGhpcy5pc01QKG1ldGhvZC5jb2RlKSAmJiB0aGlzLmdldFByZWZlcmVuY2UoKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ19pbnRlcm5hbCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW5nTWV0aG9kQ29kZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZ2V0UGF5bWVudE1ldGhvZEFkanVzdG1lbnRQcmV2aWV3ID0gKG1ldGhvZDogYW55KTogUGF5bWVudE1ldGhvZEFkanVzdG1lbnRQcmV2aWV3IHwgbnVsbCA9PiB7XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gbWV0aG9kPy5jaGFyZ2VWYWx1ZTtcbiAgICAgICAgaWYgKHJhd1ZhbHVlID09PSBudWxsIHx8IHJhd1ZhbHVlID09PSB1bmRlZmluZWQgfHwgTnVtYmVyKHJhd1ZhbHVlKSA9PT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSBOdW1iZXIocmF3VmFsdWUpO1xuICAgICAgICBjb25zdCB0eXBlID0gbWV0aG9kPy5jaGFyZ2VUeXBlO1xuICAgICAgICBpZiAoIU51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgfHwgKHR5cGUgIT09ICdwZXJjZW50YWdlJyAmJiB0eXBlICE9PSAnZml4ZWQnKSkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgcmV0dXJuIHsgdHlwZSwgdmFsdWUgfTtcbiAgICB9XG5cbiAgICBnZXRQYXltZW50TWV0aG9kQWRqdXN0bWVudFByZXZpZXdTaWduID0gKHZhbHVlOiBudW1iZXIpOiAnKycgfCAnJyA9PiB2YWx1ZSA+IDAgPyAnKycgOiAnJztcblxuICAgIHByaXZhdGUgc2V0RGlydHlTdGF0ZSA9IChuZXh0RGlydHk6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXJ0eSA9PT0gbmV4dERpcnR5KSByZXR1cm47XG4gICAgICAgIHRoaXMuaXNEaXJ0eSA9IG5leHREaXJ0eTtcbiAgICAgICAgdGhpcy5kaXJ0eUNoYW5nZS5lbWl0KHRoaXMuaXNEaXJ0eSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTYXZlZE1ldGhvZENvZGUgPSAoY29kZTogc3RyaW5nIHwgbnVsbCkgPT4ge1xuICAgICAgICB0aGlzLmxhc3RTYXZlZE1ldGhvZENvZGUgPSBjb2RlO1xuICAgICAgICB0aGlzLnNldERpcnR5U3RhdGUoZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXZhbHVhdGVEaXJ0eUZvclNlbGVjdGlvbiA9IChjb2RlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5jb21wYWN0UGF5bWVudFZpZXcgfHwgdGhpcy5zdXBwcmVzc0RpcnR5KSByZXR1cm47XG4gICAgICAgIGlmICghdGhpcy5jaGVja291dFNlcnZpY2UuaXNTdGVwUmVhZHkoJ3BheW1lbnQnKSkge1xuICAgICAgICAgICAgdGhpcy5zZXREaXJ0eVN0YXRlKGZhbHNlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvZGUgfHwgIXRoaXMubGFzdFNhdmVkTWV0aG9kQ29kZSkge1xuICAgICAgICAgICAgdGhpcy5zZXREaXJ0eVN0YXRlKGZhbHNlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldERpcnR5U3RhdGUoY29kZSAhPT0gdGhpcy5sYXN0U2F2ZWRNZXRob2RDb2RlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGlzY2FyZENoYW5nZXMgPSAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5jb21wYWN0UGF5bWVudFZpZXcpIHJldHVybjtcbiAgICAgICAgaWYgKCF0aGlzLmxhc3RTYXZlZE1ldGhvZENvZGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGlydHlTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWV0aG9kID0gdGhpcy5wYXltZW50TWV0aG9kcy5maW5kKG0gPT4gbT8uY29kZSA9PT0gdGhpcy5sYXN0U2F2ZWRNZXRob2RDb2RlKSB8fCBudWxsO1xuICAgICAgICB0aGlzLnN1cHByZXNzRGlydHkgPSB0cnVlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTWV0aG9kQ29kZSA9IHRoaXMubGFzdFNhdmVkTWV0aG9kQ29kZTtcbiAgICAgICAgdGhpcy5tZXRob2REYXRhU3ViamVjdC5uZXh0KG1ldGhvZCk7XG4gICAgICAgIHRoaXMuY3VycmVudE1ldGhvZCA9IG1ldGhvZDtcbiAgICAgICAgdGhpcy5zaG93TWV0aG9kRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5iYWxhbmNlTWV0aG9kUmVqZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW5nTWV0aG9kQ29kZSA9IG51bGw7XG4gICAgICAgIGlmIChtZXRob2Q/LmNvZGUpIHtcbiAgICAgICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UucHV0UGF5bWVudChtZXRob2QuY29kZSlcbiAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VwcHJlc3NEaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldERpcnR5U3RhdGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdXBwcmVzc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0RGlydHlTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdXBwcmVzc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2V0RGlydHlTdGF0ZShmYWxzZSk7XG4gICAgfVxuXG4gICAgaXNQYXltZW50TWV0aG9kRGlzYWJsZWQgPSAobWV0aG9kOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKCFtZXRob2Q/LmNvZGUpIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuaW52YWxpZE1ldGhvZHNCYWxhbmNlW21ldGhvZC5jb2RlXSB8fCB0aGlzLmludmFsaWRNZXRob2RzQmFja2VuZFttZXRob2QuY29kZV0pO1xuICAgIH1cblxuICAgIHVwZGF0ZUJhbGFuY2VCYXNlZEludmFsaWRNZXRob2RzID0gKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFBheW1lbnRWaWV3KSByZXR1cm47XG4gICAgICAgIGNvbnN0IGJhbGFuY2UgPSB0aGlzLmJhbGFuY2VDdXN0b21lcjtcbiAgICAgICAgY29uc3QgbmV4dDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcbiAgICAgICAgaWYgKGJhbGFuY2UpIHtcbiAgICAgICAgICAgIGlmIChiYWxhbmNlLmFsbG93QW55UGF5bWVudE1ldGhvZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBheW1lbnRNZXRob2RzLmZvckVhY2gobWV0aG9kID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzQmFsYW5jZUluQWNjb3VudChtZXRob2QuY29kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRbbWV0aG9kLmNvZGVdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW52YWxpZE1ldGhvZHNCYWxhbmNlID0gbmV4dDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZU1ldGhvZEVycm9yKG1lc3NhZ2U6IHN0cmluZywgbWV0aG9kOiBhbnkpIHtcbiAgICAgICAgdGhpcy5zaG93TWV0aG9kRXJyb3IgPSB0cnVlO1xuICAgICAgICB0aGlzLnRvYXN0ci5zaG93KG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm1ldGhvZERhdGFTdWJqZWN0Lm5leHQobWV0aG9kKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1ldGhvZENvZGUgPSBtZXRob2Q/LmNvZGUgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBzZXRBY3RpdmUoZSkge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO1xuICAgICAgICBmb3IgKGNvbnN0IGJ1dHRvbiBvZiBwYXJlbnQpIHtcbiAgICAgICAgICAgIGlmIChidXR0b24uY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSkge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIilcbiAgICB9XG5cbiAgICBzdWJtaXRGb3JtID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiRVZFTlRcIiwgZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnU0UgUk9NT1BJTyBFTCBQUkVWRU5UIERFRkFVTFQnKVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBnZXRQSyA9IChtZXRob2QpID0+IChtZXRob2QuY29uZmlnLnB1YmxpY19rZXkgfHwgbWV0aG9kLnB1YmxpY19rZXkpO1xuXG4gICAgaXNSZWRpcmVjdFJlZHN5cyA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdyZWRzeXNfcmVkaXJlY3QnKTtcblxuICAgIGlzUmVkaXJlY3RDZWNhQmFuayA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjZWNhX2JhbmtfcmVkaXJlY3QnKTtcblxuICAgIGlzTVAgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnbWVyY2Fkb19wYWdvJykgJiYgIWNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnY3JlZGl0Jyk7XG5cbiAgICBpc01QVGFyamV0YURlQ3JlZGl0byA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjcmVkaXQnKTtcblxuICAgIGlzTWV0aG9kT2ZmbGluZSA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdvZmZsaW5lJyk7XG5cbiAgICBpc1BleVBhbEV4cHJlc3MgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygncGF5cGFsJykgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdleHByZXNzJyk7XG5cbiAgICBpc01vYmJleCA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdtb2JiZXgnKTtcblxuICAgIGlzQmFuY2FyZCA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYW5jYXJkJyk7XG5cbiAgICBpc0RlY2lkaXIgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnZGVjaWRpcicpO1xuXG4gICAgaXNDdWxxaSA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjdWxxaScpO1xuXG4gICAgaXNCYW5rVHJhbnNmZXIgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnYmFua190cmFuc2ZlcicpXG5cbiAgICBpc0NhdGFzdHJvID0gKGNvZGU6IHN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2NhdGFzdHJvJylcblxuICAgIGlzQmFtYm9vID0gKGNvZGU6IHN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2JhbWJvbycpXG5cbiAgICBpc1BsYWNlVG9QYXkgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygncGxhY2VfdG9fcGF5JylcblxuICAgIGlzQmFsYW5jZUluQWNjb3VudCA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYWxhbmNlX2luX2FjY291bnQnKVxuXG4gICAgZ2V0UEtDdWxxaSA9IG1ldGhvZCA9PiB7XG4gICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygnZWFzeWNvbW1lcmNldGVjaCcpXG4gICAgICAgICAgICA/IG1ldGhvZC5jb25maWcucHVibGljX3Rlc3Rpbmdfa2V5XG4gICAgICAgICAgICA6IG1ldGhvZC5jb25maWcucHVibGljX3Byb2R1Y3Rpb25fa2V5XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0F1dG9Db21wbGV0ZU1ldGhvZCA9IChtZXRob2Q6IGFueSkgPT4ge1xuICAgICAgICBpZiAoIW1ldGhvZD8uY29kZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBjb2RlID0gbWV0aG9kLmNvZGU7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmlzTVAoY29kZSkgfHxcbiAgICAgICAgICAgIHRoaXMuaXNSZWRpcmVjdFJlZHN5cyhjb2RlKSB8fFxuICAgICAgICAgICAgdGhpcy5pc1JlZGlyZWN0Q2VjYUJhbmsoY29kZSkgfHxcbiAgICAgICAgICAgIHRoaXMuaXNQZXlQYWxFeHByZXNzKGNvZGUpIHx8XG4gICAgICAgICAgICB0aGlzLmlzUGxhY2VUb1BheShjb2RlKSB8fFxuICAgICAgICAgICAgdGhpcy5pc01vYmJleChjb2RlKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
507
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvZWMtY29tcG9uZW50L2NoZWNrb3V0LWVjL3BheW1lbnQtZWMvcGF5bWVudC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQWlCLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBU2pEO0lBQXdDLHNDQUFlO0lBcUNuRCw0QkFBc0IsUUFBbUIsRUFBWSxNQUFvQixFQUM5RCxjQUE4QixFQUFTLGVBQWdDLEVBQ3RFLFdBQXdCLEVBQVUsTUFBaUIsRUFBVSxNQUFjO1FBRnZGLFlBR0ksaUJBQU8sU0FFVjtRQUxxQixjQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVksWUFBTSxHQUFOLE1BQU0sQ0FBYztRQUM5RCxvQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBUyxxQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDdEUsaUJBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxZQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsWUFBTSxHQUFOLE1BQU0sQ0FBUTtRQXBDOUUsd0JBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ25DLGlCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUxQyx1QkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUNyRCxvQkFBYyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBSXRELHNCQUFnQixHQUFHLEtBQUssQ0FBQztRQUd6QixhQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YseUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQzVCLGtCQUFZLEdBQUcsS0FBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3JELGNBQVEsR0FBRyxLQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTlDLDJCQUFxQixHQUFtQixJQUFJLENBQUM7UUFDN0MsMkJBQXFCLEdBQVksS0FBSyxDQUFDO1FBQ3ZDLHFCQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLHdCQUFrQixHQUFrQixJQUFJLENBQUM7UUFDekMsbUJBQWEsR0FBUSxJQUFJLENBQUM7UUFDekIsb0JBQWMsR0FBa0IsSUFBSSxDQUFDO1FBQ3RDLDBCQUFvQixHQUFrQixJQUFJLENBQUM7UUFDM0MsMkJBQXFCLEdBQTRCLEVBQUUsQ0FBQztRQUNwRCwyQkFBcUIsR0FBNEIsRUFBRSxDQUFDO1FBQ25ELG9CQUFjLEdBQVUsRUFBRSxDQUFDO1FBQzNCLHFCQUFlLEdBQVEsSUFBSSxDQUFDO1FBQzdCLG1CQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLG9CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLHlCQUFtQixHQUFrQixJQUFJLENBQUM7UUFDMUMsYUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixtQkFBYSxHQUFHLEtBQUssQ0FBQztRQXFFOUIsYUFBTyxHQUFHLGNBQU0sT0FBQSx1QkFDVCxLQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLGVBQWUsR0FDakQsS0FBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsRUFDMUMsRUFIYyxDQUdkLENBQUM7UUFFSCx3QkFBa0IsR0FBRyxVQUFDLEtBQVU7O1lBQzVCLElBQU0sT0FBTyxHQUFHLE9BQUEsS0FBSywwQ0FBRSxJQUFJLFlBQUksS0FBSywwQ0FBRSxHQUFHLENBQUEsV0FBSSxLQUFLLDBDQUFFLEdBQUcsQ0FBQSxJQUFJLEtBQUssQ0FBQztZQUNqRSxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVE7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDdkQsSUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7Z0JBQ3RELENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDZCxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2dCQUFFLE9BQU8sY0FBYyxDQUFDO1lBQ2hFLE9BQU8sS0FBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxjQUFjLENBQUM7UUFDbkQsQ0FBQyxDQUFBO1FBRUQsY0FBUSxHQUFHLFVBQUMsT0FBTztZQUNmLEtBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLENBQUMsQ0FBQTtRQUVELGdCQUFVLEdBQUc7Ozs7Z0JBQ0gsVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDL0MsWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ2hGLFFBQVEsR0FBRyxVQUFVLENBQUMsQ0FBQyx1QkFBTSxVQUFVLEtBQUUsWUFBWSxjQUFBLElBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQztnQkFDM0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQzs7b0JBQ2xELEtBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3ZCLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFBLFVBQVUsMENBQUUsSUFBSSxLQUFJLElBQUksQ0FBQyxDQUFDO29CQUNsRCxJQUFJLFlBQVksRUFBRTt3QkFDZCxLQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztxQkFDdEM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7OzthQUNOLENBQUE7UUFFTyxpQ0FBMkIsR0FBRztZQUNsQyxJQUFJLEtBQUksQ0FBQyxjQUFjO2dCQUFFLE9BQU87WUFDaEMsS0FBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7WUFDM0IsS0FBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQ2hDLFVBQUEsR0FBRzs7Z0JBQ0MsVUFBSSxHQUFHLDBDQUFFLEVBQUUsRUFBRTtvQkFDVCxLQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztpQkFDcEQ7cUJBQU07b0JBQ0gsS0FBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDcEMsS0FBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7aUJBQy9CO1lBQ0wsQ0FBQyxFQUNEO2dCQUNJLEtBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQ3BDLEtBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1lBQ2hDLENBQUMsQ0FDSixDQUFDO1FBQ04sQ0FBQyxDQUFBO1FBRUQsZ0JBQVUsR0FBRyxVQUFDLE1BQWE7WUFBYix1QkFBQSxFQUFBLGFBQWE7WUFDdkIsS0FBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFBO1FBRUQsb0JBQWMsR0FBRztZQUNiLEtBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixLQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFBO1FBRUQsZUFBUyxHQUFHLFVBQU8sTUFBTTs7Ozs7O3dCQUNyQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLFlBQUssTUFBTSwwQ0FBRSxJQUFJLENBQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTs0QkFDL0Ysc0JBQU87eUJBQ1Y7d0JBQ0QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTs0QkFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQzs0QkFDN0Msc0JBQU87eUJBQ1Y7d0JBQ0QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUNqRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDOzRCQUN2RCxzQkFBTzt5QkFDVjt3QkFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO3dCQUM3QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBQSxNQUFNLDBDQUFFLElBQUksS0FBSSxJQUFJLENBQUM7d0JBQ2pELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFBLE1BQU0sMENBQUUsSUFBSSxLQUFJLElBQUksQ0FBQzt3QkFDL0MsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQUEsTUFBTSwwQ0FBRSxJQUFJLEtBQUksSUFBSSxDQUFDLENBQUM7d0JBQ3JELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ2xDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDOzs7O3dCQUVWLHFCQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBQTs7d0JBQTFELE1BQU0sR0FBRyxTQUFpRDt3QkFDaEUsSUFBSSxNQUFNLEtBQUssS0FBSyxJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUksTUFBTSxLQUFLLElBQUk7NEJBQUUsc0JBQU87d0JBRXhFLFVBQUksTUFBTSwwQ0FBRSxNQUFNLEVBQUU7NEJBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFDLENBQUM7eUJBQzNEO3dCQUVLLGVBQWUsU0FBRyxNQUFNLDBDQUFFLGVBQWUsQ0FBQzt3QkFFMUMsTUFBTSxTQUFHLE1BQU0sMENBQUUsTUFBTSxDQUFDO3dCQUU5QixJQUFJLENBQUMsV0FBVyxDQUFDLHVCQUF1QixDQUFDLGVBQWUsUUFBRSxNQUFNLDBDQUFFLEtBQUssQ0FBQyxDQUFDO3dCQUVuRSxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDdkQsUUFBUSxTQUFHLGVBQWUsMENBQUUscUJBQXFCLENBQUM7d0JBRXhELHdCQUF3Qjt3QkFDeEIsSUFDSSxDQUFDLGVBQWUsSUFBSSxRQUFRLEtBQUssS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUkseUJBQXlCOzRCQUN4RixDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLGtEQUFrRDswQkFDMUY7NEJBQ0UsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9DQUFvQyxFQUFFLE1BQU0sQ0FBQyxDQUFDOzRCQUNyRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsV0FBSSxNQUFNLDBDQUFFLElBQUksQ0FBQSxFQUFFOzZCQUM1Qzs0QkFDRCxzQkFBTzt5QkFDVjt3QkFFRCw4REFBOEQ7d0JBQzlELElBQ0ksZUFBZTs0QkFDZixlQUFlOzRCQUNmLE1BQU07NEJBQ04sZUFBZSxDQUFDLGtCQUFrQixLQUFLLEtBQUs7NEJBQzVDLGVBQWUsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFDN0M7NEJBQ0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQzs0QkFDeEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQzt5QkFDckM7NkJBQU0sSUFBSSxlQUFlLEVBQUU7NEJBQ3hCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7eUJBQ3RDO3dCQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Ozt3QkFHcEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQzt3QkFDOUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQzs7Ozs7YUFFeEMsQ0FBQztRQUVGLHVDQUFpQyxHQUFHLFVBQUMsTUFBVzs7WUFDNUMsSUFBTSxRQUFRLFNBQUcsTUFBTSwwQ0FBRSxXQUFXLENBQUM7WUFDckMsSUFBSSxRQUFRLEtBQUssSUFBSSxJQUFJLFFBQVEsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFFdkYsSUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9CLElBQU0sSUFBSSxTQUFHLE1BQU0sMENBQUUsVUFBVSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksSUFBSSxJQUFJLEtBQUssT0FBTyxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBRXhGLE9BQU8sRUFBRSxJQUFJLE1BQUEsRUFBRSxLQUFLLE9BQUEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQTtRQUVELDJDQUFxQyxHQUFHLFVBQUMsS0FBYSxJQUFlLE9BQUEsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQXBCLENBQW9CLENBQUM7UUFFbEYsbUJBQWEsR0FBRyxVQUFDLFNBQWtCO1lBQ3ZDLElBQUksS0FBSSxDQUFDLE9BQU8sS0FBSyxTQUFTO2dCQUFFLE9BQU87WUFDdkMsS0FBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7WUFDekIsS0FBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQTtRQUVPLHdCQUFrQixHQUFHLFVBQUMsSUFBbUI7WUFDN0MsS0FBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztZQUNoQyxLQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQTtRQUVPLCtCQUF5QixHQUFHLFVBQUMsSUFBbUI7WUFDcEQsSUFBSSxDQUFDLEtBQUksQ0FBQyxrQkFBa0IsSUFBSSxLQUFJLENBQUMsYUFBYTtnQkFBRSxPQUFPO1lBQzNELElBQUksQ0FBQyxLQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDOUMsS0FBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUIsT0FBTzthQUNWO1lBQ0QsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDcEMsS0FBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUIsT0FBTzthQUNWO1lBQ0QsS0FBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssS0FBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUFBO1FBRU0sb0JBQWMsR0FBRzs7WUFDcEIsSUFBSSxDQUFDLEtBQUksQ0FBQyxrQkFBa0I7Z0JBQUUsT0FBTztZQUNyQyxJQUFJLENBQUMsS0FBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUMzQixLQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixPQUFPO2FBQ1Y7WUFDRCxJQUFNLE1BQU0sR0FBRyxLQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFBLENBQUMsWUFBSSxPQUFBLE9BQUEsQ0FBQywwQ0FBRSxJQUFJLE1BQUssS0FBSSxDQUFDLG1CQUFtQixDQUFBLEVBQUEsQ0FBQyxJQUFJLElBQUksQ0FBQztZQUMzRixLQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUMxQixLQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSSxDQUFDLG1CQUFtQixDQUFDO1lBQ25ELEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEMsS0FBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7WUFDNUIsS0FBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDN0IsS0FBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztZQUNuQyxLQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1lBQ2pDLFVBQUksTUFBTSwwQ0FBRSxJQUFJLEVBQUU7Z0JBQ2QsS0FBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztxQkFDdEMsSUFBSSxDQUFDO29CQUNGLEtBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO29CQUMzQixLQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixDQUFDLENBQUM7cUJBQ0QsS0FBSyxDQUFDO29CQUNILEtBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO29CQUMzQixLQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixDQUFDLENBQUMsQ0FBQztnQkFDUCxPQUFPO2FBQ1Y7WUFDRCxLQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixLQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQTtRQUVELDZCQUF1QixHQUFHLFVBQUMsTUFBVzs7WUFDbEMsSUFBSSxRQUFDLE1BQU0sMENBQUUsSUFBSSxDQUFBO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEcsQ0FBQyxDQUFBO1FBRUQsc0NBQWdDLEdBQUc7WUFDL0IsSUFBSSxDQUFDLEtBQUksQ0FBQyxrQkFBa0I7Z0JBQUUsT0FBTztZQUNyQyxJQUFNLE9BQU8sR0FBRyxLQUFJLENBQUMsZUFBZSxDQUFDO1lBQ3JDLElBQU0sSUFBSSxHQUE0QixFQUFFLENBQUM7WUFDekMsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsSUFBSSxPQUFPLENBQUMscUJBQXFCLEtBQUssS0FBSyxFQUFFO29CQUN6QyxLQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFBLE1BQU07d0JBQzlCLElBQUksQ0FBQyxLQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFOzRCQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQzt5QkFDNUI7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7aUJBQ047YUFDSjtZQUNELEtBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDdEMsQ0FBQyxDQUFBO1FBbUJELGdCQUFVLEdBQUcsVUFBQyxLQUFLO1lBQ2YsSUFBSTtnQkFDQSw4QkFBOEI7Z0JBQzlCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxLQUFLLENBQUM7YUFDaEI7WUFBQyxPQUFPLENBQUMsRUFBRTtnQkFDUiw4Q0FBOEM7YUFDakQ7UUFFTCxDQUFDLENBQUE7UUFFRCxXQUFLLEdBQUcsVUFBQyxNQUFNLElBQUssT0FBQSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBL0MsQ0FBK0MsQ0FBQztRQUVwRSxzQkFBZ0IsR0FBRyxVQUFDLElBQVksSUFBSyxPQUFBLElBQUksSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBNUQsQ0FBNEQsQ0FBQztRQUVsRyx3QkFBa0IsR0FBRyxVQUFDLElBQVksSUFBSyxPQUFBLElBQUksSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsRUFBL0QsQ0FBK0QsQ0FBQztRQUV2RyxVQUFJLEdBQUcsVUFBQyxJQUFZLElBQUssT0FBQSxJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUF6RyxDQUF5RyxDQUFDO1FBRW5JLDBCQUFvQixHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBbkQsQ0FBbUQsQ0FBQztRQUU3RixxQkFBZSxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBcEQsQ0FBb0QsQ0FBQztRQUV6RixxQkFBZSxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQW5HLENBQW1HLENBQUM7UUFFeEksY0FBUSxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBbkQsQ0FBbUQsQ0FBQztRQUVqRixlQUFTLEdBQUcsVUFBQyxJQUFZLElBQUssT0FBQSxJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFwRCxDQUFvRCxDQUFDO1FBRW5GLGVBQVMsR0FBRyxVQUFDLElBQVksSUFBSyxPQUFBLElBQUksSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQXBELENBQW9ELENBQUM7UUFFbkYsYUFBTyxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBbEQsQ0FBa0QsQ0FBQztRQUUvRSxvQkFBYyxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBMUQsQ0FBMEQsQ0FBQTtRQUU3RixnQkFBVSxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBckQsQ0FBcUQsQ0FBQTtRQUVwRixjQUFRLEdBQUcsVUFBQyxJQUFZLElBQUssT0FBQSxJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFuRCxDQUFtRCxDQUFBO1FBRWhGLGtCQUFZLEdBQUcsVUFBQyxJQUFZLElBQUssT0FBQSxJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUF6RCxDQUF5RCxDQUFBO1FBRTFGLHdCQUFrQixHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxFQUEvRCxDQUErRCxDQUFBO1FBRXRHLGdCQUFVLEdBQUcsVUFBQSxNQUFNO1lBQ2YsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUM7Z0JBQ3BELENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGtCQUFrQjtnQkFDbEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUE7UUFDN0MsQ0FBQyxDQUFBO1FBRU8sMEJBQW9CLEdBQUcsVUFBQyxNQUFXOztZQUN2QyxJQUFJLFFBQUMsTUFBTSwwQ0FBRSxJQUFJLENBQUE7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFDaEMsSUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUN6QixPQUFPLENBQ0gsS0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsS0FBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDM0IsS0FBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQztnQkFDN0IsS0FBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLEtBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUN2QixLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUN0QixDQUFDO1FBQ04sQ0FBQyxDQUFBO1FBcFdHLEtBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTs7SUFDeEIsQ0FBQztJQUVELHdDQUFXLEdBQVgsY0FBZ0IsQ0FBQztJQUVqQixxQ0FBUSxHQUFSO1FBQUEsaUJBdURDO1FBdERHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsVUFBQyxJQUFvQjtZQUMvRCxJQUFNLFNBQVMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsSUFBSSxJQUFJLE9BQU8sRUFBcEIsQ0FBb0IsQ0FBQyxDQUFDO1lBQ2xFLEtBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUMzQzthQUFNO1lBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNsQyxJQUFNLFdBQVcsR0FBRyxLQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDaEUsSUFBSSxDQUFDLFdBQVc7b0JBQUUsT0FBTztnQkFDekIsSUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxLQUFJLENBQUMsY0FBYyxLQUFLLEdBQUc7b0JBQUUsT0FBTztnQkFDeEMsS0FBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUNsQyxJQUFJLENBQUMsS0FBSSxDQUFDLGtCQUFrQjtnQkFBRSxPQUFPO1lBQ3JDLEtBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxLQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQzs7WUFDbEMsSUFBSSxDQUFDLEtBQUksQ0FBQyxrQkFBa0I7Z0JBQUUsT0FBTztZQUNyQyxJQUFJLENBQUMsS0FBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQzlDLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUIsT0FBTzthQUNWO1lBQ0QsSUFBTSxRQUFRLEdBQVEsS0FBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsU0FBZ0IsQ0FBQyxDQUFDO1lBQ3pFLElBQU0sSUFBSSxHQUFHLE9BQUEsUUFBUSwwQ0FBRSxJQUFJLGtCQUFJLFFBQVEsMENBQUUsTUFBTSwwQ0FBRSxJQUFJLENBQUEsV0FBSSxRQUFRLDBDQUFFLFdBQVcsQ0FBQSxJQUFJLElBQUksQ0FBQztZQUN2RixJQUFJLElBQUksSUFBSSxLQUFJLENBQUMsbUJBQW1CLEtBQUssSUFBSSxFQUFFO2dCQUMzQyxLQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDakM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLFVBQUMsS0FBSztZQUNwRCxLQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQUEsT0FBTztZQUMxQyxLQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDcEMsSUFBSSxLQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3pCLEtBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7YUFDbkM7WUFDRCxLQUFJLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLFVBQUEsT0FBTztZQUMvQyxLQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQztZQUMvQixLQUFJLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFVBQUEsTUFBTTtZQUM5QixLQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUVuQixDQUFDO0lBMk5PLDhDQUFpQixHQUF6QixVQUEwQixPQUFlLEVBQUUsTUFBVzs7UUFDbEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsT0FBQSxNQUFNLDBDQUFFLElBQUksS0FBSSxJQUFJLENBQUM7SUFDbkQsQ0FBQztJQUVELHNDQUFTLEdBQVQsVUFBVSxDQUFDOztRQUNQLElBQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQzs7WUFDL0MsS0FBcUIsSUFBQSxXQUFBLFNBQUEsTUFBTSxDQUFBLDhCQUFBLGtEQUFFO2dCQUF4QixJQUFNLE1BQU0sbUJBQUE7Z0JBQ2IsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDckMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7aUJBQ3BDO2FBQ0o7Ozs7Ozs7OztRQUNELENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNwQyxDQUFDOztnQkExUytCLFNBQVM7Z0JBQW9CLFlBQVk7Z0JBQzlDLGNBQWM7Z0JBQTBCLGVBQWU7Z0JBQ3pELFdBQVc7Z0JBQWtCLFNBQVM7Z0JBQWtCLE1BQU07O0lBckM5RTtRQUFSLEtBQUssRUFBRTt1REFBUztJQUNSO1FBQVIsS0FBSyxFQUFFO2tFQUFxQztJQUNuQztRQUFULE1BQU0sRUFBRTsyREFBMkM7SUFDeEI7UUFBM0IsU0FBUyxDQUFDLGVBQWUsQ0FBQztrRUFBMEM7SUFMNUQsa0JBQWtCO1FBUDlCLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsMjJ0QkFBd0M7WUFFeEMsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDOztTQUU5QixDQUFDO09BQ1csa0JBQWtCLENBOFk5QjtJQUFELHlCQUFDO0NBQUEsQUE5WUQsQ0FBd0MsZUFBZSxHQThZdEQ7U0E5WVksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBSZW5kZXJlcjIsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENoZWNrb3V0RGF0YSwgUGF5bWVudE1ldGhvZEFkanVzdG1lbnRQcmV2aWV3IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9jaGVja291dC1kYXRhJztcbmltcG9ydCB7IENoZWNrb3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NoZWNrb3V0L2NoZWNrb3V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGF5bWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jaGVja291dC9wYXltZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi8uLi9jb3JlLmNvbnN0cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXBheW1lbnQtZWMnLFxuICAgIHRlbXBsYXRlVXJsOiAncGF5bWVudC1lYy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ3BheW1lbnQtZWMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtQYXltZW50U2VydmljZV1cblxufSlcbmV4cG9ydCBjbGFzcyBQYXltZW50RWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG5cbiAgICBASW5wdXQoKSBzdGVwX2lkO1xuICAgIEBJbnB1dCgpIGNvbXBhY3RQYXltZW50VmlldzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBPdXRwdXQoKSBkaXJ0eUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAVmlld0NoaWxkKCdmb3JtQ29udGFpbmVyJykgcHJvdGVjdGVkIG1lcmNhZG9wYWdvX2J1dHRvbjogRWxlbWVudFJlZjtcbiAgICBwcm90ZWN0ZWQgbWV0aG9kRGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gICAgcHJpdmF0ZSBsb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByb3RlY3RlZCBwcmVmZXJlbmNlO1xuXG5cbiAgICBwdWJsaWMgbG9hZGluZ19pbnRlcm5hbCA9IGZhbHNlO1xuICAgIHB1YmxpYyBvcmRlcl9pZDtcbiAgICBwdWJsaWMgZXJyb3I7XG4gICAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuICAgIHB1YmxpYyBsb2FkaW5nX2ludGVybmFsX21wID0gZmFsc2U7XG4gICAgcHVibGljIG1ldGhvZF9kYXRhJCA9IHRoaXMubWV0aG9kRGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIGxvYWRpbmckID0gdGhpcy5sb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICBwdWJsaWMgdG90YWxfYW1vdW50O1xuICAgIHB1YmxpYyBhbGxvd0FueVBheW1lbnRNZXRob2Q6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgYmFsYW5jZU1ldGhvZFJlamVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIHNob3dNZXRob2RFcnJvciA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZWxlY3RlZE1ldGhvZENvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBjdXJyZW50TWV0aG9kOiBhbnkgPSBudWxsO1xuICAgIHByaXZhdGUgbGFzdEFkZHJlc3NLZXk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyB2YWxpZGF0aW5nTWV0aG9kQ29kZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGludmFsaWRNZXRob2RzQmFsYW5jZTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcbiAgICBwdWJsaWMgaW52YWxpZE1ldGhvZHNCYWNrZW5kOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuICAgIHByaXZhdGUgcGF5bWVudE1ldGhvZHM6IGFueVtdID0gW107XG4gICAgcHJpdmF0ZSBiYWxhbmNlQ3VzdG9tZXI6IGFueSA9IG51bGw7XG4gICAgcHVibGljIHBheW1lbnRMb2NrZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGF1dG9Db21wbGV0aW5nID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBsYXN0U2F2ZWRNZXRob2RDb2RlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIGlzRGlydHkgPSBmYWxzZTtcbiAgICBwcml2YXRlIHN1cHByZXNzRGlydHkgPSBmYWxzZTtcblxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByb3RlY3RlZCB0b2FzdHI6IFRvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIHBheW1lbnRTZXJ2aWNlOiBQYXltZW50U2VydmljZSwgcHVibGljIGNoZWNrb3V0U2VydmljZTogQ2hlY2tvdXRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSwgcHJpdmF0ZSBjb25zdHM6IENvbnN0YW50cywgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCkgeyB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5wYXltZW50U2VydmljZS5pbml0aWFsaXplKHRoaXMuc3RlcF9pZCk7XG4gICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmFzb2NpYXRlZERhdGEkLnN1YnNjcmliZSgoZGF0YTogQ2hlY2tvdXREYXRhW10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsSXRlbSA9IChkYXRhIHx8IFtdKS5maW5kKGl0ZW0gPT4gaXRlbS50eXBlID09ICd0b3RhbCcpO1xuICAgICAgICAgICAgdGhpcy50b3RhbF9hbW91bnQgPSB0b3RhbEl0ZW0gPyB0b3RhbEl0ZW0uYW1vdW50IDogMDtcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFBheW1lbnRWaWV3KSB7XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmdldFBheW1lbnRNZXRob2RzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5zdGF0ZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhZGRyZXNzRGF0YSA9IHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldFN0ZXBEYXRhKCdhZGRyZXNzJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFhZGRyZXNzRGF0YSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KGFkZHJlc3NEYXRhKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXN0QWRkcmVzc0tleSA9PT0ga2V5KSByZXR1cm47XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0QWRkcmVzc0tleSA9IGtleTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFBheW1lbnRWaWV3KSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRMb2NrZWQgPSAhdGhpcy5jaGVja291dFNlcnZpY2UuaXNTdGVwUmVhZHkoJ3NoaXBtZW50Jyk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5zdGF0ZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jb21wYWN0UGF5bWVudFZpZXcpIHJldHVybjtcbiAgICAgICAgICAgIGlmICghdGhpcy5jaGVja291dFNlcnZpY2UuaXNTdGVwUmVhZHkoJ3BheW1lbnQnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U2F2ZWRNZXRob2RDb2RlKG51bGwpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHN0ZXBEYXRhOiBhbnkgPSB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRTdGVwRGF0YSgncGF5bWVudCcgYXMgYW55KTtcbiAgICAgICAgICAgIGNvbnN0IGNvZGUgPSBzdGVwRGF0YT8uY29kZSB8fCBzdGVwRGF0YT8ubWV0aG9kPy5jb2RlIHx8IHN0ZXBEYXRhPy5tZXRob2RfY29kZSB8fCBudWxsO1xuICAgICAgICAgICAgaWYgKGNvZGUgJiYgdGhpcy5sYXN0U2F2ZWRNZXRob2RDb2RlICE9PSBjb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTYXZlZE1ldGhvZENvZGUoY29kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWxsb3dBbnlQYXltZW50TWV0aG9kJC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFsbG93QW55UGF5bWVudE1ldGhvZCA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wYXltZW50U2VydmljZS5tZXRob2RzJC5zdWJzY3JpYmUobWV0aG9kcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRNZXRob2RzID0gbWV0aG9kcyB8fCBbXTtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhY3RQYXltZW50Vmlldykge1xuICAgICAgICAgICAgICAgIHRoaXMuaW52YWxpZE1ldGhvZHNCYWNrZW5kID0ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUJhbGFuY2VCYXNlZEludmFsaWRNZXRob2RzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmJhbGFuY2VDdXN0b21lciQuc3Vic2NyaWJlKGJhbGFuY2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5iYWxhbmNlQ3VzdG9tZXIgPSBiYWxhbmNlO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVCYWxhbmNlQmFzZWRJbnZhbGlkTWV0aG9kcygpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tZXRob2RfZGF0YSQuc3Vic2NyaWJlKG1ldGhvZCA9PiB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRNZXRob2QgPSBtZXRob2Q7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmVjT25Jbml0KClcblxuICAgIH1cblxuICAgIGFsbERhdGEgPSAoKSA9PiAoe1xuICAgICAgICAuLi50aGlzLnBheW1lbnRTZXJ2aWNlLmdldFVzZXJEYXRhKCkuc2hpcHBpbmdBZGRyZXNzLFxuICAgICAgICAuLi50aGlzLnBheW1lbnRTZXJ2aWNlLmdldFNoaXBtZW50RGF0YSgpLFxuICAgIH0pO1xuXG4gICAgZ2V0UGF5bWVudEltYWdlVXJsID0gKGltYWdlOiBhbnkpOiBzdHJpbmcgPT4ge1xuICAgICAgICBjb25zdCByYXdQYXRoID0gaW1hZ2U/LnBhdGggfHwgaW1hZ2U/LnVybCB8fCBpbWFnZT8uc3JjIHx8IGltYWdlO1xuICAgICAgICBpZiAoIXJhd1BhdGggfHwgdHlwZW9mIHJhd1BhdGggIT09ICdzdHJpbmcnKSByZXR1cm4gJyc7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gcmF3UGF0aC5zdGFydHNXaXRoKCcvbWVkaWEvaW1hZ2UvJylcbiAgICAgICAgICAgID8gcmF3UGF0aC5yZXBsYWNlKCcvbWVkaWEvaW1hZ2UvJywgJycpXG4gICAgICAgICAgICA6IHJhd1BhdGg7XG4gICAgICAgIGlmICgvXmh0dHBzPzpcXC9cXC8vaS50ZXN0KG5vcm1hbGl6ZWRQYXRoKSkgcmV0dXJuIG5vcm1hbGl6ZWRQYXRoO1xuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHMubWVkaWFVcmwoKSArIG5vcm1hbGl6ZWRQYXRoO1xuICAgIH1cblxuICAgIHNldEVycm9yID0gKG1lc3NhZ2UpID0+IHtcbiAgICAgICAgdGhpcy5lcnJvciA9IG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgZW1pdFJlc3VsdCA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgbWV0aG9kRGF0YSA9IHRoaXMubWV0aG9kRGF0YVN1YmplY3QuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgYXV0b0NvbXBsZXRlID0gdGhpcy5jb21wYWN0UGF5bWVudFZpZXcgJiYgdGhpcy5pc0F1dG9Db21wbGV0ZU1ldGhvZChtZXRob2REYXRhKTtcbiAgICAgICAgY29uc3Qgc3RlcERhdGEgPSBtZXRob2REYXRhID8geyAuLi5tZXRob2REYXRhLCBhdXRvQ29tcGxldGUgfSA6IG1ldGhvZERhdGE7XG4gICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2Uuc2V0U3RlcFJlYWR5KHN0ZXBEYXRhLCBudWxsKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLnNldFNhdmVkTWV0aG9kQ29kZShtZXRob2REYXRhPy5jb2RlIHx8IG51bGwpO1xuICAgICAgICAgICAgaWYgKGF1dG9Db21wbGV0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmluYWxpemVDaGVja291dEZyb21QYXltZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluYWxpemVDaGVja291dEZyb21QYXltZW50ID0gKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5hdXRvQ29tcGxldGluZykgcmV0dXJuO1xuICAgICAgICB0aGlzLmF1dG9Db21wbGV0aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UuY29tcGxldGUoKS50aGVuKFxuICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzPy5vaykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2NoZWNrb3V0L29yZGVyX3N1Y2Nlc3MnXSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuc2hvdygnb3BlcmF0aW9uLWVycm9yJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ29wZXJhdGlvbi1lcnJvcicpO1xuICAgICAgICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzZXRMb2FkaW5nID0gKGVzdGFkbyA9IHRydWUpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3ViamVjdC5uZXh0KGVzdGFkbyk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZlcmlmeVZhbGlkYXRlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldExvYWRpbmcoKTtcbiAgICAgICAgdGhpcy5lbWl0UmVzdWx0KCk7XG4gICAgfVxuXG4gICAgc2V0TWV0aG9kID0gYXN5bmMgKG1ldGhvZCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb21wYWN0UGF5bWVudFZpZXcgJiYgdGhpcy5zZWxlY3RlZE1ldGhvZENvZGUgPT09IG1ldGhvZD8uY29kZSAmJiAhdGhpcy5sb2FkaW5nX2ludGVybmFsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29tcGFjdFBheW1lbnRWaWV3ICYmIHRoaXMucGF5bWVudExvY2tlZCkge1xuICAgICAgICAgICAgdGhpcy50b2FzdHIuc2hvdygnc2hpcG1lbnQtbWV0aG9kLXJlcXVpcmVkJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY29tcGFjdFBheW1lbnRWaWV3ICYmIHRoaXMuaXNQYXltZW50TWV0aG9kRGlzYWJsZWQobWV0aG9kKSkge1xuICAgICAgICAgICAgdGhpcy50b2FzdHIuc2hvdygndGhpcy1wYXltZW50LW1ldGhvZC1jYW5ub3QtYmUtdXNlZCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZGluZ19pbnRlcm5hbCA9IHRydWU7XG4gICAgICAgIHRoaXMudmFsaWRhdGluZ01ldGhvZENvZGUgPSBtZXRob2Q/LmNvZGUgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1ldGhvZENvZGUgPSBtZXRob2Q/LmNvZGUgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5ldmFsdWF0ZURpcnR5Rm9yU2VsZWN0aW9uKG1ldGhvZD8uY29kZSB8fCBudWxsKTtcbiAgICAgICAgdGhpcy5tZXRob2REYXRhU3ViamVjdC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLnNob3dNZXRob2RFcnJvciA9IGZhbHNlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wYXltZW50U2VydmljZS5wdXRQYXltZW50KG1ldGhvZC5jb2RlKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IGZhbHNlIHx8IHJlc3VsdCA9PT0gdW5kZWZpbmVkIHx8IHJlc3VsdCA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgICAgICBpZiAocmVzdWx0Py50b3RhbHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLnVwZGF0ZUNhcnRBZnRlclBheW1lbnRSZXNwb25zZShyZXN1bHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBiYWxhbmNlQ3VzdG9tZXIgPSByZXN1bHQ/LmJhbGFuY2VDdXN0b21lcjtcblxuICAgICAgICAgICAgY29uc3QgdG90YWxzID0gcmVzdWx0Py50b3RhbHM7XG5cbiAgICAgICAgICAgIHRoaXMuY2FydFNlcnZpY2UudXBkYXRlQmFsYW5jZUF0dHJpYnV0ZXMoYmFsYW5jZUN1c3RvbWVyLCB0b3RhbHM/LnRvdGFsKTtcblxuICAgICAgICAgICAgY29uc3QgaXNCYWxhbmNlTWV0aG9kID0gdGhpcy5pc0JhbGFuY2VJbkFjY291bnQobWV0aG9kLmNvZGUpO1xuICAgICAgICAgICAgY29uc3QgYWxsb3dBbnkgPSBiYWxhbmNlQ3VzdG9tZXI/LmFsbG93QW55UGF5bWVudE1ldGhvZDtcblxuICAgICAgICAgICAgLy8gVmFsaWRhY2lvbmVzIGRlIGVycm9yXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKGJhbGFuY2VDdXN0b21lciAmJiBhbGxvd0FueSA9PT0gZmFsc2UgJiYgIWlzQmFsYW5jZU1ldGhvZCkgfHwgLy8gbm8gcGVybWl0ZSBvdHJvIG3DqXRvZG9cbiAgICAgICAgICAgICAgICAoaXNCYWxhbmNlTWV0aG9kICYmICFiYWxhbmNlQ3VzdG9tZXIpIC8vIHNlbGVjY2lvbsOzIGN1ZW50YSBjb3JyaWVudGUgcGVybyBubyBoYXkgYmFsYW5jZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVNZXRob2RFcnJvcigndGhpcy1wYXltZW50LW1ldGhvZC1jYW5ub3QtYmUtdXNlZCcsIG1ldGhvZCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29tcGFjdFBheW1lbnRWaWV3ICYmIG1ldGhvZD8uY29kZSkge1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFZhbGlkYWNpw7NuIGRlIGNyw6lkaXRvIGluc3VmaWNpZW50ZSAoc2kgbm8gc2UgcHVlZGUgZXhjZWRlcilcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBpc0JhbGFuY2VNZXRob2QgJiZcbiAgICAgICAgICAgICAgICBiYWxhbmNlQ3VzdG9tZXIgJiZcbiAgICAgICAgICAgICAgICB0b3RhbHMgJiZcbiAgICAgICAgICAgICAgICBiYWxhbmNlQ3VzdG9tZXIuYWxsb3dFeGNlZWRCYWxhbmNlID09PSBmYWxzZSAmJlxuICAgICAgICAgICAgICAgIGJhbGFuY2VDdXN0b21lci5jcmVkaXRBbW91bnQgPCB0b3RhbHMudG90YWxcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ2luc3VmZmljaWVudF9jcmVkaXQnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJhbGFuY2VNZXRob2RSZWplY3RlZCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzQmFsYW5jZU1ldGhvZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYmFsYW5jZU1ldGhvZFJlamVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubWV0aG9kRGF0YVN1YmplY3QubmV4dChtZXRob2QpO1xuICAgICAgICAgICAgLy8gdGhpcy5pc01QKG1ldGhvZC5jb2RlKSAmJiB0aGlzLmdldFByZWZlcmVuY2UoKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ19pbnRlcm5hbCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW5nTWV0aG9kQ29kZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZ2V0UGF5bWVudE1ldGhvZEFkanVzdG1lbnRQcmV2aWV3ID0gKG1ldGhvZDogYW55KTogUGF5bWVudE1ldGhvZEFkanVzdG1lbnRQcmV2aWV3IHwgbnVsbCA9PiB7XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gbWV0aG9kPy5jaGFyZ2VWYWx1ZTtcbiAgICAgICAgaWYgKHJhd1ZhbHVlID09PSBudWxsIHx8IHJhd1ZhbHVlID09PSB1bmRlZmluZWQgfHwgTnVtYmVyKHJhd1ZhbHVlKSA9PT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSBOdW1iZXIocmF3VmFsdWUpO1xuICAgICAgICBjb25zdCB0eXBlID0gbWV0aG9kPy5jaGFyZ2VUeXBlO1xuICAgICAgICBpZiAoIU51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgfHwgKHR5cGUgIT09ICdwZXJjZW50YWdlJyAmJiB0eXBlICE9PSAnZml4ZWQnKSkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgcmV0dXJuIHsgdHlwZSwgdmFsdWUgfTtcbiAgICB9XG5cbiAgICBnZXRQYXltZW50TWV0aG9kQWRqdXN0bWVudFByZXZpZXdTaWduID0gKHZhbHVlOiBudW1iZXIpOiAnKycgfCAnJyA9PiB2YWx1ZSA+IDAgPyAnKycgOiAnJztcblxuICAgIHByaXZhdGUgc2V0RGlydHlTdGF0ZSA9IChuZXh0RGlydHk6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXJ0eSA9PT0gbmV4dERpcnR5KSByZXR1cm47XG4gICAgICAgIHRoaXMuaXNEaXJ0eSA9IG5leHREaXJ0eTtcbiAgICAgICAgdGhpcy5kaXJ0eUNoYW5nZS5lbWl0KHRoaXMuaXNEaXJ0eSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTYXZlZE1ldGhvZENvZGUgPSAoY29kZTogc3RyaW5nIHwgbnVsbCkgPT4ge1xuICAgICAgICB0aGlzLmxhc3RTYXZlZE1ldGhvZENvZGUgPSBjb2RlO1xuICAgICAgICB0aGlzLnNldERpcnR5U3RhdGUoZmFsc2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXZhbHVhdGVEaXJ0eUZvclNlbGVjdGlvbiA9IChjb2RlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5jb21wYWN0UGF5bWVudFZpZXcgfHwgdGhpcy5zdXBwcmVzc0RpcnR5KSByZXR1cm47XG4gICAgICAgIGlmICghdGhpcy5jaGVja291dFNlcnZpY2UuaXNTdGVwUmVhZHkoJ3BheW1lbnQnKSkge1xuICAgICAgICAgICAgdGhpcy5zZXREaXJ0eVN0YXRlKGZhbHNlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvZGUgfHwgIXRoaXMubGFzdFNhdmVkTWV0aG9kQ29kZSkge1xuICAgICAgICAgICAgdGhpcy5zZXREaXJ0eVN0YXRlKGZhbHNlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldERpcnR5U3RhdGUoY29kZSAhPT0gdGhpcy5sYXN0U2F2ZWRNZXRob2RDb2RlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGlzY2FyZENoYW5nZXMgPSAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5jb21wYWN0UGF5bWVudFZpZXcpIHJldHVybjtcbiAgICAgICAgaWYgKCF0aGlzLmxhc3RTYXZlZE1ldGhvZENvZGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGlydHlTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWV0aG9kID0gdGhpcy5wYXltZW50TWV0aG9kcy5maW5kKG0gPT4gbT8uY29kZSA9PT0gdGhpcy5sYXN0U2F2ZWRNZXRob2RDb2RlKSB8fCBudWxsO1xuICAgICAgICB0aGlzLnN1cHByZXNzRGlydHkgPSB0cnVlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTWV0aG9kQ29kZSA9IHRoaXMubGFzdFNhdmVkTWV0aG9kQ29kZTtcbiAgICAgICAgdGhpcy5tZXRob2REYXRhU3ViamVjdC5uZXh0KG1ldGhvZCk7XG4gICAgICAgIHRoaXMuY3VycmVudE1ldGhvZCA9IG1ldGhvZDtcbiAgICAgICAgdGhpcy5zaG93TWV0aG9kRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5iYWxhbmNlTWV0aG9kUmVqZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW5nTWV0aG9kQ29kZSA9IG51bGw7XG4gICAgICAgIGlmIChtZXRob2Q/LmNvZGUpIHtcbiAgICAgICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UucHV0UGF5bWVudChtZXRob2QuY29kZSlcbiAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VwcHJlc3NEaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldERpcnR5U3RhdGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdXBwcmVzc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0RGlydHlTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdXBwcmVzc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2V0RGlydHlTdGF0ZShmYWxzZSk7XG4gICAgfVxuXG4gICAgaXNQYXltZW50TWV0aG9kRGlzYWJsZWQgPSAobWV0aG9kOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKCFtZXRob2Q/LmNvZGUpIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuICEhKHRoaXMuaW52YWxpZE1ldGhvZHNCYWxhbmNlW21ldGhvZC5jb2RlXSB8fCB0aGlzLmludmFsaWRNZXRob2RzQmFja2VuZFttZXRob2QuY29kZV0pO1xuICAgIH1cblxuICAgIHVwZGF0ZUJhbGFuY2VCYXNlZEludmFsaWRNZXRob2RzID0gKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFBheW1lbnRWaWV3KSByZXR1cm47XG4gICAgICAgIGNvbnN0IGJhbGFuY2UgPSB0aGlzLmJhbGFuY2VDdXN0b21lcjtcbiAgICAgICAgY29uc3QgbmV4dDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcbiAgICAgICAgaWYgKGJhbGFuY2UpIHtcbiAgICAgICAgICAgIGlmIChiYWxhbmNlLmFsbG93QW55UGF5bWVudE1ldGhvZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBheW1lbnRNZXRob2RzLmZvckVhY2gobWV0aG9kID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzQmFsYW5jZUluQWNjb3VudChtZXRob2QuY29kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRbbWV0aG9kLmNvZGVdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW52YWxpZE1ldGhvZHNCYWxhbmNlID0gbmV4dDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZU1ldGhvZEVycm9yKG1lc3NhZ2U6IHN0cmluZywgbWV0aG9kOiBhbnkpIHtcbiAgICAgICAgdGhpcy5zaG93TWV0aG9kRXJyb3IgPSB0cnVlO1xuICAgICAgICB0aGlzLnRvYXN0ci5zaG93KG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm1ldGhvZERhdGFTdWJqZWN0Lm5leHQobWV0aG9kKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1ldGhvZENvZGUgPSBtZXRob2Q/LmNvZGUgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBzZXRBY3RpdmUoZSkge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO1xuICAgICAgICBmb3IgKGNvbnN0IGJ1dHRvbiBvZiBwYXJlbnQpIHtcbiAgICAgICAgICAgIGlmIChidXR0b24uY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSkge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIilcbiAgICB9XG5cbiAgICBzdWJtaXRGb3JtID0gKGV2ZW50KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiRVZFTlRcIiwgZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy9jb25zb2xlLmxvZygnU0UgUk9NT1BJTyBFTCBQUkVWRU5UIERFRkFVTFQnKVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBnZXRQSyA9IChtZXRob2QpID0+IChtZXRob2QuY29uZmlnLnB1YmxpY19rZXkgfHwgbWV0aG9kLnB1YmxpY19rZXkpO1xuXG4gICAgaXNSZWRpcmVjdFJlZHN5cyA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdyZWRzeXNfcmVkaXJlY3QnKTtcblxuICAgIGlzUmVkaXJlY3RDZWNhQmFuayA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjZWNhX2JhbmtfcmVkaXJlY3QnKTtcblxuICAgIGlzTVAgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnbWVyY2Fkb19wYWdvJykgJiYgIWNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnY3JlZGl0Jyk7XG5cbiAgICBpc01QVGFyamV0YURlQ3JlZGl0byA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjcmVkaXQnKTtcblxuICAgIGlzTWV0aG9kT2ZmbGluZSA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdvZmZsaW5lJyk7XG5cbiAgICBpc1BleVBhbEV4cHJlc3MgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygncGF5cGFsJykgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdleHByZXNzJyk7XG5cbiAgICBpc01vYmJleCA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdtb2JiZXgnKTtcblxuICAgIGlzQmFuY2FyZCA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYW5jYXJkJyk7XG5cbiAgICBpc0RlY2lkaXIgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnZGVjaWRpcicpO1xuXG4gICAgaXNDdWxxaSA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjdWxxaScpO1xuXG4gICAgaXNCYW5rVHJhbnNmZXIgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygnYmFua190cmFuc2ZlcicpXG5cbiAgICBpc0NhdGFzdHJvID0gKGNvZGU6IHN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2NhdGFzdHJvJylcblxuICAgIGlzQmFtYm9vID0gKGNvZGU6IHN0cmluZykgPT4gY29kZSAmJiBjb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2JhbWJvbycpXG5cbiAgICBpc1BsYWNlVG9QYXkgPSAoY29kZTogc3RyaW5nKSA9PiBjb2RlICYmIGNvZGUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcygncGxhY2VfdG9fcGF5JylcblxuICAgIGlzQmFsYW5jZUluQWNjb3VudCA9IChjb2RlOiBzdHJpbmcpID0+IGNvZGUgJiYgY29kZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKCdiYWxhbmNlX2luX2FjY291bnQnKVxuXG4gICAgZ2V0UEtDdWxxaSA9IG1ldGhvZCA9PiB7XG4gICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygnZWFzeWNvbW1lcmNldGVjaCcpXG4gICAgICAgICAgICA/IG1ldGhvZC5jb25maWcucHVibGljX3Rlc3Rpbmdfa2V5XG4gICAgICAgICAgICA6IG1ldGhvZC5jb25maWcucHVibGljX3Byb2R1Y3Rpb25fa2V5XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0F1dG9Db21wbGV0ZU1ldGhvZCA9IChtZXRob2Q6IGFueSkgPT4ge1xuICAgICAgICBpZiAoIW1ldGhvZD8uY29kZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBjb2RlID0gbWV0aG9kLmNvZGU7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmlzTVAoY29kZSkgfHxcbiAgICAgICAgICAgIHRoaXMuaXNSZWRpcmVjdFJlZHN5cyhjb2RlKSB8fFxuICAgICAgICAgICAgdGhpcy5pc1JlZGlyZWN0Q2VjYUJhbmsoY29kZSkgfHxcbiAgICAgICAgICAgIHRoaXMuaXNQZXlQYWxFeHByZXNzKGNvZGUpIHx8XG4gICAgICAgICAgICB0aGlzLmlzUGxhY2VUb1BheShjb2RlKSB8fFxuICAgICAgICAgICAgdGhpcy5pc01vYmJleChjb2RlKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -243,7 +243,7 @@ var ShipmentEcComponent = /** @class */ (function (_super) {
243
243
  });
244
244
  }); };
245
245
  _this.selectSingleOption = function (option) { return __awaiter(_this, void 0, void 0, function () {
246
- var contractData, initialContractName, legacyContractData, contractType, contractName, shippingMethodContract, shippingMethodBranchCode, sanitizedContractData, requestPayload, stepData, methodLabel, contractLabel, groupLabel, label, detail, error_1;
246
+ var contractData, initialContractName, legacyContractData, contractType, contractName, shippingMethodContract, shippingMethodBranchCode, sanitizedContractData, requestPayload, stepData, applied, methodLabel, contractLabel, groupLabel, label, detail, error_1;
247
247
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
248
248
  return __generator(this, function (_k) {
249
249
  switch (_k.label) {
@@ -283,7 +283,9 @@ var ShipmentEcComponent = /** @class */ (function (_super) {
283
283
  stepData = __assign(__assign({}, requestPayload), { originalPrice: this.shippingPriceDisplay.normalizePriceValue(contractData.originalPrice), method_name: (_e = option.method) === null || _e === void 0 ? void 0 : _e.name, contract_name: contractName });
284
284
  return [4 /*yield*/, this.shipmentService.setShippingOption(requestPayload, stepData)];
285
285
  case 4:
286
- _k.sent();
286
+ applied = _k.sent();
287
+ if (!applied)
288
+ return [2 /*return*/];
287
289
  methodLabel = ((_f = option.method) === null || _f === void 0 ? void 0 : _f.name) ? this.translateService.instant(option.method.name)
288
290
  : '';
289
291
  contractLabel = ((_g = option.contract) === null || _g === void 0 ? void 0 : _g.name) ? this.translateService.instant(option.contract.name)
@@ -480,4 +482,4 @@ var ShipmentEcComponent = /** @class */ (function (_super) {
480
482
  return ShipmentEcComponent;
481
483
  }(ComponentHelper));
482
484
  export { ShipmentEcComponent };
483
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcG1lbnQtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9jaGVja291dC1lYy9zaGlwbWVudC1lYy9zaGlwbWVudC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQVE1RjtJQUF5Qyx1Q0FBZTtJQXlCcEQsNkJBQW1CLGVBQWdDLEVBQVksYUFBMkIsRUFDL0UsZUFBZ0MsRUFBUyxlQUFnQyxFQUN4RSxnQkFBa0MsRUFDbEMsb0JBQWlEO1FBSDdELFlBSUksaUJBQU8sU0FFVjtRQU5rQixxQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBWSxtQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMvRSxxQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBUyxxQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDeEUsc0JBQWdCLEdB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LEdBQUcsb0JBQUUsWUFBWSwwQ0FBRyxDQUFDLDJDQUFHLE1BQU0sMENBQUUsSUFBSSxDQUFDO2dCQUNuRSxPQUFPLEVBQUUsWUFBWTthQUN4QixDQUFDLENBQUE7U0FBQSxDQUFDLENBQUM7SUFDUixDQUFDO0lBRU8sK0NBQWlCLEdBQXpCLFVBQTBCLFFBQW1DLEVBQUUsVUFBbUI7UUFDOUUsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUMsSUFBSSxVQUFVLEtBQUssaUJBQWlCO2dCQUFFLE9BQU8sb0JBQW9CLENBQUM7WUFDbEUsSUFBSSxVQUFVLEtBQUssZUFBZTtnQkFBRSxPQUFPLG1CQUFtQixDQUFDO1NBQ2xFO1FBQ0QsT0FBTyxVQUFVLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7Z0JBNVJtQyxlQUFlO2dCQUEyQixZQUFZO2dCQUM5RCxlQUFlO2dCQUEwQixlQUFlO2dCQUN0RCxnQkFBZ0I7Z0JBQ1osMkJBQTJCOztJQTFCcEQ7UUFBUixLQUFLLEVBQUU7d0RBQVM7SUFDUjtRQUFSLEtBQUssRUFBRTtvRUFBc0M7SUFDcEM7UUFBVCxNQUFNLEVBQUU7OERBQXlFO0lBQ3hFO1FBQVQsTUFBTSxFQUFFOzREQUF3QztJQUx4QyxtQkFBbUI7UUFOL0IsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQiw0L1BBQTJDO1lBRTNDLFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQzs7U0FDL0IsQ0FBQztPQUNXLG1CQUFtQixDQXVUL0I7SUFBRCwwQkFBQztDQUFBLEFBdlRELENBQXlDLGVBQWUsR0F1VHZEO1NBdlRZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy1jb21wYXQvb3BlcmF0b3IvbWFwJztcbmltcG9ydCB7IENvbXBvbmVudEhlbHBlciB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvY29tcG9uZW50LWhlbHBlcic7XG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jaGVja291dC9jaGVja291dC5zZXJ2aWNlJztcbmltcG9ydCB7IFNoaXBtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NoZWNrb3V0L3NoaXBtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJvZHVjdHMvcHJvZHVjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91dGlscy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFNoaXBwaW5nUHJpY2VEaXNwbGF5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3NoaXBwaW5nLXByaWNlLWRpc3BsYXkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXNoaXBtZW50LWVjJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2hpcG1lbnQtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NoaXBtZW50LWVjLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbU2hpcG1lbnRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBTaGlwbWVudEVjQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50SGVscGVyIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KCkgc3RlcF9pZDtcbiAgICBASW5wdXQoKSBjb21wYWN0U2hpcG1lbnRWaWV3OiBib29sZWFuID0gZmFsc2U7XG4gICAgQE91dHB1dCgpIHN1bW1hcnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbGFiZWw/OiBzdHJpbmc7IGRldGFpbD86IHN0cmluZyB9PigpO1xuICAgIEBPdXRwdXQoKSBhZHZhbmNlU3RlcCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBwdWJsaWMgbWV0aG9kc19saXN0OiBhbnlbXTtcbiAgICBwdWJsaWMgbWV0aG9kU2VsZWN0OiBhbnk7XG4gICAgcHVibGljIGxvYWRpbmdfaW50ZXJuYWwgPSBmYWxzZTtcbiAgICBwdWJsaWMgcG9pbnRzOiBhbnlbXSA9IFtdO1xuICAgIHB1YmxpYyBzZWxlY3RlZF9maW5hbDtcbiAgICBwdWJsaWMgY29zdG9zID0gbnVsbFxuICAgIHB1YmxpYyBjb3N0cyA9ICBbXVxuICAgIHB1YmxpYyBtb3JlSW5mb0luTWV0aG9kOiBhbnlcbiAgICBidXR0b25zRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIGxhc3RBZGRyZXNzS2V5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgc2hpcG1lbnRFcnJvcktleTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIHNpbmdsZU9wdGlvbnM6IGFueVtdID0gW107XG4gICAgcHVibGljIGxvYWRpbmdfcHJlbG9hZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBzZWxlY3RlZE9wdGlvbklkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgdW5hdmFpbGFibGVNZXRob2RzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuICAgIHB1YmxpYyBncm91cGVkT3B0aW9uczogeyBrZXk6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgb3B0aW9uczogYW55W10gfVtdID0gW107XG5cbiAgICBjb250cmFjdHMgPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBzaGlwbWVudFNlcnZpY2U6IFNoaXBtZW50U2VydmljZSwgcHJvdGVjdGVkIHRvYXN0clNlcnZpY2U6IFRvYXN0U2VydmljZSxcbiAgICAgICAgcHVibGljIHByb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlLCBwdWJsaWMgY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzaGlwcGluZ1ByaWNlRGlzcGxheTogU2hpcHBpbmdQcmljZURpc3BsYXlTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpXG4gICAgfVxuXG4gICAgZW1pdFJlc3VsdCA9IChtZXRob2RfbmFtZSwgY29udHJhY3RfZGF0YSkgPT4ge1xuICAgICAgICBjb250cmFjdF9kYXRhID0ge1xuICAgICAgICAgICAgLi4uY29udHJhY3RfZGF0YSxcbiAgICAgICAgICAgIHNoaXBwaW5nX21ldGhvZF9jb250cmFjdDogbWV0aG9kX25hbWUgKyAnXycgKyBjb250cmFjdF9kYXRhLm5hbWUsXG4gICAgICAgICAgICBzaGlwcGluZ19tZXRob2RfYnJhbmNoX2NvZGU6IG1ldGhvZF9uYW1lID09IFwiYnJhbmNoX2RlbGl2ZXJ5XCIgPyBjb250cmFjdF9kYXRhLnN1Y3Vyc2FsX2lkIDogY29udHJhY3RfZGF0YS5uYW1lLFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNoaXBtZW50U2VydmljZS5zZXRDb250cmFjdChjb250cmFjdF9kYXRhKTtcbiAgICB9XG5cbiAgICB2ZXJpZnlWYWxpZGF0ZSA9IChjb250cmFjdCwgZGF0YSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb21wYWN0U2hpcG1lbnRWaWV3IHx8ICF0aGlzLmNvc3RzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdFJlc3VsdChjb250cmFjdCwgZGF0YSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuY29zdHMuZm9yRWFjaChjb3N0ID0+IGNvc3QuY29udHJhY3RzLmZvckVhY2goY28gPT4gY28uc2VsZWN0ZWQgPSBmYWxzZSkpXG4gICAgICAgICAgICB0aGlzLmNvc3RzLmZpbmQoY29zdCA9PiBjb3N0Lm5hbWUgPT0gY29udHJhY3QpLmNvbnRyYWN0cy5maW5kKGNvbnRyYSA9PiBjb250cmEubmFtZSA9PSBkYXRhLm5hbWUpLnNlbGVjdGVkID0gdHJ1ZVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvciBhbCBidXNjYXIgY29udHJhdG9cIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmVtaXRSZXN1bHQoY29udHJhY3QsIGRhdGEpO1xuICAgIH07XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zaGlwbWVudFNlcnZpY2UuaW5pdGlhbGl6ZSh0aGlzLnN0ZXBfaWQpO1xuICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFNoaXBtZW50Vmlldykge1xuICAgICAgICAgICAgdGhpcy5zaGlwbWVudFNlcnZpY2UuZ2V0U2hpcG1lbnRNZXRob2RzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2UuYXNvY2lhdGVkRGF0YSQuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgdGhpcy5jb3N0b3MgPSBkYXRhICYmIGRhdGEuZmluZCh2YWx1ZSA9PiB2YWx1ZS50eXBlID09IFwic2hpcG1lbnRcIikgfHwgbnVsbFxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnNoaXBtZW50U2VydmljZS5jb3N0cy5zdWJzY3JpYmUoY29zID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhY3RTaGlwbWVudFZpZXcpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuY29zdHMgPSBjb3MubWFwKGNvc3QgPT4geyByZXR1cm4geyAuLi5jb3N0LCBjb250cmFjdHM6IGNvc3QuY29udHJhY3RzLm1hcChjbyA9PiB7IHJldHVybiB7IC4uLmNvLCBzZWxlY3RlZDogZmFsc2UgfSB9ICkgfSB9KVxuICAgICAgICAgICAgaWYgKHRoaXMuY29zdHMubGVuZ3RoICYmIHRoaXMuY29zdHNbMF0/Lm5hbWUgJiYgdGhpcy5jb3N0c1swXT8uY29udHJhY3RzWzBdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlWYWxpZGF0ZSh0aGlzLmNvc3RzWzBdLm5hbWUsIHRoaXMuY29zdHNbMF0uY29udHJhY3RzWzBdKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnNoaXBtZW50U2VydmljZS5lcnJvciQuc3Vic2NyaWJlKGVycm9yS2V5ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRFcnJvcktleSA9IGVycm9yS2V5O1xuICAgICAgICB9KVxuICAgICAgICB0aGlzLm1vcmVJbmZvSW5NZXRob2QgPSB0cnVlIC8vU2hpcG1lbnRTZXJ2aWNlLm1vcmVJbmZvSW5NZXRob2Q7XG4gICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLnN0YXRlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNvbXBhY3RTaGlwbWVudFZpZXcpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGFkZHJlc3NEYXRhID0gdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0U3RlcERhdGEoJ2FkZHJlc3MnKTtcbiAgICAgICAgICAgIGlmICghYWRkcmVzc0RhdGEpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KGFkZHJlc3NEYXRhKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmxhc3RBZGRyZXNzS2V5ID09PSBrZXkpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMubGFzdEFkZHJlc3NLZXkgPSBrZXk7XG4gICAgICAgICAgICB0aGlzLnNoaXBtZW50U2VydmljZS5yZXN0YXJ0U3RlcCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbklkID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuc3VtbWFyeUNoYW5nZS5lbWl0KHt9KTtcbiAgICAgICAgICAgIHRoaXMucHJlbG9hZFNpbmdsZU9wdGlvbnMoKTtcbiAgICAgICAgICAgIHRoaXMuY29zdHMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBlZE9wdGlvbnMgPSBbXTtcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy5lY09uSW5pdCgpXG5cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBhY3RTaGlwbWVudFZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRTZXJ2aWNlLmdldFNoaXBtZW50TWV0aG9kcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9UcmFkdWNpYmxlID0gKG5hbWUpID0+IG5hbWUucmVwbGFjZSgvXy9nLCAnLScpO1xuXG4gICAgZGVsZXRlVVBTID0gKG1ldGhvZHMpID0+IG1ldGhvZHMuZmlsdGVyKG1ldGhvZCA9PiBtZXRob2QubmFtZSAhPSAnVVBTJyk7XG5cbiAgICAgc2V0TWV0aG9kID0gKG1ldGhvZCkgPT4ge1xuICAgICAgICAgdGhpcy5tZXRob2RTZWxlY3QgPSBtZXRob2Q7XG4gICAgICAgICB0aGlzLmxvYWRpbmdfaW50ZXJuYWwgPSB0cnVlO1xuICAgICAgICAgdGhpcy5zaGlwbWVudEVycm9yS2V5ID0gbnVsbDtcbiAgICAgICAgIHRoaXMuc2hpcG1lbnRTZXJ2aWNlLnJlc3RhcnRTdGVwKCk7XG5cbiAgICAgICAgIC8vIERlc2hhYmlsaXRhciB0b2RvcyBsb3MgYm90b25lc1xuICAgICAgICAgdGhpcy5idXR0b25zRGlzYWJsZWQgPSB0cnVlO1xuXG4gICAgIC8vICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICB0aGlzLnNoaXBtZW50U2VydmljZS5zZXRNZXRob2QobWV0aG9kLmNvZGUpLnRoZW4ocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nX2ludGVybmFsID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgLy8gSGFiaWxpdGFyIHRvZG9zIGxvcyBib3RvbmVzXG4gICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge3RoaXMuYnV0dG9uc0Rpc2FibGVkID0gZmFsc2U7fSwgMTAwMCk7XG4gICAgICAgICAgICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAvLyBFbiBjYXNvIGRlIGVycm9yLCB0YW1iacOpbiBoYWJpbGl0YXIgbG9zIGJvdG9uZXNcbiAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nX2ludGVybmFsID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9uc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRFcnJvcktleSA9ICdvcGVyYXRpb24tZXJyb3InO1xuICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3I6XCIsIGVycm9yKTtcbiAgICAgICAgICAgICB9KTtcbiAgICAgLy8gICAgIH0sIDEwMDApO1xuICAgICB9XG5cbiAgICAgcHJlbG9hZFNpbmdsZU9wdGlvbnMgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICB0aGlzLmxvYWRpbmdfcHJlbG9hZCA9IHRydWU7XG4gICAgICAgICB0aGlzLnNpbmdsZU9wdGlvbnMgPSBbXTtcbiAgICAgICAgIHRoaXMuZ3JvdXBlZE9wdGlvbnMgPSBbXTtcbiAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25JZCA9IG51bGw7XG4gICAgICAgICB0aGlzLnVuYXZhaWxhYmxlTWV0aG9kcyA9IHt9O1xuICAgICAgICAgdGhpcy5zaGlwbWVudEVycm9yS2V5ID0gbnVsbDtcbiAgICAgICAgIGNvbnN0IG1ldGhvZE9wdGlvbnMgPSBhd2FpdCB0aGlzLnNoaXBtZW50U2VydmljZS5nZXRTaGlwcGluZ09wdGlvbnMoKTtcbiAgICAgICAgIGlmICghbWV0aG9kT3B0aW9ucyB8fCAhbWV0aG9kT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICB0aGlzLmxvYWRpbmdfcHJlbG9hZCA9IGZhbHNlO1xuICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgIH1cbiAgICAgICAgIGxldCBvcHRpb25JbmRleCA9IDA7XG4gICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIG1ldGhvZE9wdGlvbnMpIHtcbiAgICAgICAgICAgICBjb25zdCBtZXRob2QgPSBlbnRyeT8ubWV0aG9kO1xuICAgICAgICAgICAgIGlmICghbWV0aG9kIHx8IG1ldGhvZC5uYW1lID09PSAnVVBTJykgY29udGludWU7XG4gICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGVudHJ5Py5vcHRpb25zIHx8IFtdO1xuICAgICAgICAgICAgIGxldCBoYXNDb250cmFjdHMgPSBmYWxzZTtcbiAgICAgICAgICAgICBvcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgICAgICAgICAgY29uc3QgY29udHJhY3RzID0gb3B0aW9uPy5jb250cmFjdHMgfHwgW107XG4gICAgICAgICAgICAgICAgIGlmICghY29udHJhY3RzLmxlbmd0aCkgcmV0dXJuO1xuICAgICAgICAgICAgICAgICBoYXNDb250cmFjdHMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICBjb250cmFjdHMuZm9yRWFjaChjb250cmFjdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVkQ29udHJhY3QgPSB7IC4uLmNvbnRyYWN0IH07XG4gICAgICAgICAgICAgICAgICAgICBpZiAoIW5vcm1hbGl6ZWRDb250cmFjdC5jb250cmFjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRDb250cmFjdC5jb250cmFjdCA9IG9wdGlvbi5uYW1lO1xuICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgb3B0aW9uSW5kZXggKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaW5nbGVPcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBgJHttZXRob2QuY29kZX0tJHtvcHRpb24ubmFtZX0tJHtjb250cmFjdC5uYW1lfS0ke29wdGlvbkluZGV4fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICAgICAgIGNvc3ROYW1lOiBvcHRpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICBjb250cmFjdDogbm9ybWFsaXplZENvbnRyYWN0XG4gICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgaWYgKCFoYXNDb250cmFjdHMpIHtcbiAgICAgICAgICAgICAgICAgdGhpcy51bmF2YWlsYWJsZU1ldGhvZHNbbWV0aG9kLmNvZGVdID0gdHJ1ZTtcbiAgICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgICAgICB0aGlzLmdyb3VwZWRPcHRpb25zID0gdGhpcy5idWlsZEdyb3VwZWRPcHRpb25zKHRoaXMuc2luZ2xlT3B0aW9ucyk7XG4gICAgICAgICBpZiAoIXRoaXMuc2luZ2xlT3B0aW9ucy5sZW5ndGggJiYgT2JqZWN0LmtleXModGhpcy51bmF2YWlsYWJsZU1ldGhvZHMpLmxlbmd0aCkge1xuICAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRFcnJvcktleSA9ICdvcGVyYXRpb24tZXJyb3InO1xuICAgICAgICAgfVxuICAgICAgICAgdGhpcy5sb2FkaW5nX3ByZWxvYWQgPSBmYWxzZTtcbiAgICAgfVxuXG4gICAgc2VsZWN0U2luZ2xlT3B0aW9uID0gYXN5bmMgKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAoIW9wdGlvbikgcmV0dXJuO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbklkID09PSBvcHRpb24uaWQgJiYgIXRoaXMubG9hZGluZ19pbnRlcm5hbCkgcmV0dXJuO1xuICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbklkID0gb3B0aW9uLmlkO1xuICAgICAgICAgdGhpcy5sb2FkaW5nX2ludGVybmFsID0gdHJ1ZTtcbiAgICAgICAgIHRoaXMuc2hpcG1lbnRFcnJvcktleSA9IG51bGw7XG4gICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGNvbnRyYWN0RGF0YSA9IHsgLi4uKG9wdGlvbi5jb250cmFjdCB8fCB7fSkgfTtcbiAgICAgICAgICAgIGNvbnN0IGluaXRpYWxDb250cmFjdE5hbWUgPSBjb250cmFjdERhdGEubmFtZSB8fCBvcHRpb24uY29udHJhY3Q/Lm5hbWU7XG4gICAgICAgICAgICBpZiAodGhpcy5zaG91bGRFbnJpY2hGcm9tTGVnYWN5KG9wdGlvbikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsZWdhY3lDb250cmFjdERhdGEgPSBhd2FpdCB0aGlzLmdldExlZ2FjeUNvbnRyYWN0RGF0YShcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLm1ldGhvZD8uY29kZSxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmNvc3ROYW1lLFxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsQ29udHJhY3ROYW1lXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAobGVnYWN5Q29udHJhY3REYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyYWN0RGF0YSA9IHsgLi4uY29udHJhY3REYXRhLCAuLi5sZWdhY3lDb250cmFjdERhdGEgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjb250cmFjdFR5cGUgPSBjb250cmFjdERhdGEuY29udHJhY3QgfHwgb3B0aW9uLmNvc3ROYW1lO1xuICAgICAgICAgICAgY29uc3QgY29udHJhY3ROYW1lID0gY29udHJhY3REYXRhLm5hbWUgfHwgb3B0aW9uLmNvbnRyYWN0Py5uYW1lO1xuICAgICAgICAgICAgY29uc3Qgc2hpcHBpbmdNZXRob2RDb250cmFjdCA9IGAke29wdGlvbi5jb3N0TmFtZX1fJHtjb250cmFjdE5hbWV9YDtcbiAgICAgICAgICAgIGNvbnN0IHNoaXBwaW5nTWV0aG9kQnJhbmNoQ29kZSA9IG9wdGlvbi5jb3N0TmFtZSA9PT0gJ2JyYW5jaF9kZWxpdmVyeSdcbiAgICAgICAgICAgICAgICA/IChjb250cmFjdERhdGEuc3VjdXJzYWxfaWQgfHwgY29udHJhY3REYXRhLm51bWJlciB8fCBjb250cmFjdERhdGEuYnJhbmNoX3Byb3BlcnR5Py5udW1iZXIgfHwgY29udHJhY3ROYW1lKVxuICAgICAgICAgICAgICAgIDogY29udHJhY3ROYW1lO1xuICAgICAgICAgICAgY29uc3Qgc2FuaXRpemVkQ29udHJhY3REYXRhID0geyAuLi5jb250cmFjdERhdGEgfTtcbiAgICAgICAgICAgIGRlbGV0ZSBzYW5pdGl6ZWRDb250cmFjdERhdGEuYnJhbmNoX3Byb3BlcnR5O1xuICAgICAgICAgICAgZGVsZXRlIHNhbml0aXplZENvbnRyYWN0RGF0YS5vcmlnaW5hbFByaWNlO1xuICAgICAgICAgICAgZGVsZXRlIHNhbml0aXplZENvbnRyYWN0RGF0YS5vcHRpb247XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0UGF5bG9hZCA9IHtcbiAgICAgICAgICAgICAgICAuLi5zYW5pdGl6ZWRDb250cmFjdERhdGEsXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdJZDogb3B0aW9uLm1ldGhvZC5jb2RlLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogb3B0aW9uLm1ldGhvZC5jb2RlLFxuICAgICAgICAgICAgICAgIG9wdGlvbjogb3B0aW9uLmNvc3ROYW1lLFxuICAgICAgICAgICAgICAgIGNvbnRyYWN0OiBjb250cmFjdFR5cGUsXG4gICAgICAgICAgICAgICAgbmFtZTogY29udHJhY3ROYW1lLFxuICAgICAgICAgICAgICAgIHByaWNlOiBjb250cmFjdERhdGEucHJpY2UsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdfbWV0aG9kX2NvbnRyYWN0OiBzaGlwcGluZ01ldGhvZENvbnRyYWN0LFxuICAgICAgICAgICAgICAgIHNoaXBwaW5nX21ldGhvZF9icmFuY2hfY29kZTogc2hpcHBpbmdNZXRob2RCcmFuY2hDb2RlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3Qgc3RlcERhdGEgPSB7XG4gICAgICAgICAgICAgICAgLi4ucmVxdWVzdFBheWxvYWQsXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxQcmljZTogdGhpcy5zaGlwcGluZ1ByaWNlRGlzcGxheS5ub3JtYWxpemVQcmljZVZhbHVlKGNvbnRyYWN0RGF0YS5vcmlnaW5hbFByaWNlKSxcbiAgICAgICAgICAgICAgICBtZXRob2RfbmFtZTogb3B0aW9uLm1ldGhvZD8ubmFtZSxcbiAgICAgICAgICAgICAgICBjb250cmFjdF9uYW1lOiBjb250cmFjdE5hbWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNoaXBtZW50U2VydmljZS5zZXRTaGlwcGluZ09wdGlvbihyZXF1ZXN0UGF5bG9hZCwgc3RlcERhdGEpO1xuICAgICAgICAgICAgY29uc3QgbWV0aG9kTGFiZWwgPSBvcHRpb24ubWV0aG9kPy5uYW1lXG4gICAgICAgICAgICAgICAgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChvcHRpb24ubWV0aG9kLm5hbWUpXG4gICAgICAgICAgICAgICAgOiAnJztcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyYWN0TGFiZWwgPSBvcHRpb24uY29udHJhY3Q/Lm5hbWVcbiAgICAgICAgICAgICAgICA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KG9wdGlvbi5jb250cmFjdC5uYW1lKVxuICAgICAgICAgICAgICAgIDogJyc7XG4gICAgICAgICAgICBjb25zdCBncm91cExhYmVsID0gb3B0aW9uLmNvc3ROYW1lXG4gICAgICAgICAgICAgICAgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLnJlc29sdmVHcm91cExhYmVsKG9wdGlvbi5jb3N0TmFtZSkpXG4gICAgICAgICAgICAgICAgOiAnJztcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gW2dyb3VwTGFiZWwsIG1ldGhvZExhYmVsLCBjb250cmFjdExhYmVsXS5maWx0ZXIoQm9vbGVhbikuam9pbignIMK3ICcpO1xuICAgICAgICAgICAgY29uc3QgZGV0YWlsID0gb3B0aW9uLmNvbnRyYWN0Py5jb21wdXRlZCB8fCBvcHRpb24uY29udHJhY3Q/LmRldGFpbCB8fCAnJztcbiAgICAgICAgICAgIHRoaXMuc3VtbWFyeUNoYW5nZS5lbWl0KHtcbiAgICAgICAgICAgICAgICBsYWJlbDogbGFiZWwgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGRldGFpbDogZGV0YWlsIHx8IHVuZGVmaW5lZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgaWYgKHRoaXMuY29tcGFjdFNoaXBtZW50Vmlldykge1xuICAgICAgICAgICAgICAgICB0aGlzLmFkdmFuY2VTdGVwLmVtaXQoKTtcbiAgICAgICAgICAgICB9XG4gICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRFcnJvcktleSA9ICdvcGVyYXRpb24tZXJyb3InO1xuICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICB0aGlzLmxvYWRpbmdfaW50ZXJuYWwgPSBmYWxzZTtcbiAgICAgICAgIH1cbiAgICAgfVxuXG4gICAgcHJpdmF0ZSBzaG91bGRFbnJpY2hGcm9tTGVnYWN5KG9wdGlvbjogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghb3B0aW9uIHx8IG9wdGlvbi5jb3N0TmFtZSAhPT0gJ2JyYW5jaF9kZWxpdmVyeScpIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMZWdhY3lDb250cmFjdERhdGEgPSBhc3luYyAoXG4gICAgICAgIG1ldGhvZENvZGU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgY29zdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgY29udHJhY3ROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgICApID0+IHtcbiAgICAgICAgaWYgKCFtZXRob2RDb2RlIHx8ICFjb3N0TmFtZSB8fCAhY29udHJhY3ROYW1lKSByZXR1cm4gbnVsbDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGNvc3RzID0gYXdhaXQgdGhpcy5zaGlwbWVudFNlcnZpY2UuZ2V0Q29zdHNGb3JNZXRob2QobWV0aG9kQ29kZSk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZENvc3QgPSAoY29zdHMgfHwgW10pLmZpbmQoY29zdCA9PiBTdHJpbmcoY29zdD8ubmFtZSB8fCAnJykgPT09IFN0cmluZyhjb3N0TmFtZSkpO1xuICAgICAgICAgICAgaWYgKCFzZWxlY3RlZENvc3Q/LmNvbnRyYWN0cz8ubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQ29udHJhY3QgPSBzZWxlY3RlZENvc3QuY29udHJhY3RzLmZpbmQoY29udHJhY3QgPT5cbiAgICAgICAgICAgICAgICBTdHJpbmcoY29udHJhY3Q/Lm5hbWUgfHwgJycpID09PSBTdHJpbmcoY29udHJhY3ROYW1lKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZENvbnRyYWN0IHx8IG51bGw7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICBzZXRBY3RpdmUoZSkge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBlLnRhcmdldC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO1xuICAgICAgICBmb3IgKGNvbnN0IGJ1dHRvbiBvZiBwYXJlbnQpIHtcbiAgICAgICAgICAgIGlmIChidXR0b24uY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSkge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIilcbiAgICB9XG5cbiAgICB2YWxpZE5hbWUgPSAobmFtZSkgPT4gaXNOYU4obmFtZSk7XG5cbiAgICBnZXRDb250cmFjdFByaWNlVmlldyA9IChjb250cmFjdDogYW55KSA9PlxuICAgICAgICB0aGlzLnNoaXBwaW5nUHJpY2VEaXNwbGF5LmdldENvbnRyYWN0Vmlldyhjb250cmFjdCk7XG5cbiAgICBwcml2YXRlIGJ1aWxkR3JvdXBlZE9wdGlvbnMob3B0aW9uczogYW55W10pIHtcbiAgICAgICAgaWYgKCFvcHRpb25zPy5sZW5ndGgpIHJldHVybiBbXTtcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIGFueVtdPigpO1xuICAgICAgICBvcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IG9wdGlvbj8uY29zdE5hbWUgfHwgJ2RlZmF1bHQnO1xuICAgICAgICAgICAgaWYgKCFncm91cHMuaGFzKGtleSkpIGdyb3Vwcy5zZXQoa2V5LCBbXSk7XG4gICAgICAgICAgICBncm91cHMuZ2V0KGtleSk/LnB1c2gob3B0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGdyb3Vwcy5lbnRyaWVzKCkpLm1hcCgoW2tleSwgZ3JvdXBPcHRpb25zXSkgPT4gKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnJlc29sdmVHcm91cExhYmVsKGtleSwgZ3JvdXBPcHRpb25zPy5bMF0/Lm1ldGhvZD8ubmFtZSksXG4gICAgICAgICAgICBvcHRpb25zOiBncm91cE9wdGlvbnNcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzb2x2ZUdyb3VwTGFiZWwoY29zdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsIG1ldGhvZE5hbWU/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGNvc3ROYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkID0gY29zdE5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIGlmIChub3JtYWxpemVkID09PSAnYnJhbmNoX2RlbGl2ZXJ5JykgcmV0dXJuICdSZXRpcm8gZW4gc3VjdXJzYWwnO1xuICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWQgPT09ICdob21lX2RlbGl2ZXJ5JykgcmV0dXJuICdFbnbDrW8gYSBkb21pY2lsaW8nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZXRob2ROYW1lIHx8IChjb3N0TmFtZSB8fCAnJyk7XG4gICAgfVxuXG59XG4iXX0=
485
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcG1lbnQtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9jaGVja291dC1lYy9zaGlwbWVudC1lYy9zaGlwbWVudC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQVE1RjtJQUF5Qyx1Q0FBZTtJQXlCcEQsNkJBQW1CLGVBQWdDLEVBQVksYUFBMkIsRUFDL0UsZUFBZ0MsRUFBUyxlQUFnQyxFQUN4RSxnQkFBa0MsRUFDbEMsb0JBQWlEO1FBSDdELFlBSUksaUJBQU8sU0FFVjtRQU5rQixxQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBWSxtQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMvRSxxQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBUyxxQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDeEUsc0JBQWdCLEdB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O2dCQUNILEtBQUssRUFBRSxLQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxvQkFBRSxZQUFZLDBDQUFHLENBQUMsMkNBQUcsTUFBTSwwQ0FBRSxJQUFJLENBQUM7Z0JBQ25FLE9BQU8sRUFBRSxZQUFZO2FBQ3hCLENBQUMsQ0FBQTtTQUFBLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFTywrQ0FBaUIsR0FBekIsVUFBMEIsUUFBbUMsRUFBRSxVQUFtQjtRQUM5RSxJQUFJLFFBQVEsRUFBRTtZQUNWLElBQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMxQyxJQUFJLFVBQVUsS0FBSyxpQkFBaUI7Z0JBQUUsT0FBTyxvQkFBb0IsQ0FBQztZQUNsRSxJQUFJLFVBQVUsS0FBSyxlQUFlO2dCQUFFLE9BQU8sbUJBQW1CLENBQUM7U0FDbEU7UUFDRCxPQUFPLFVBQVUsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDOztnQkE3Um1DLGVBQWU7Z0JBQTJCLFlBQVk7Z0JBQzlELGVBQWU7Z0JBQTBCLGVBQWU7Z0JBQ3RELGdCQUFnQjtnQkFDWiwyQkFBMkI7O0lBMUJwRDtRQUFSLEtBQUssRUFBRTt3REFBUztJQUNSO1FBQVIsS0FBSyxFQUFFO29FQUFzQztJQUNwQztRQUFULE1BQU0sRUFBRTs4REFBeUU7SUFDeEU7UUFBVCxNQUFNLEVBQUU7NERBQXdDO0lBTHhDLG1CQUFtQjtRQU4vQixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLDQvUEFBMkM7WUFFM0MsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDOztTQUMvQixDQUFDO09BQ1csbUJBQW1CLENBd1QvQjtJQUFELDBCQUFDO0NBQUEsQUF4VEQsQ0FBeUMsZUFBZSxHQXdUdkQ7U0F4VFksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzLWNvbXBhdC9vcGVyYXRvci9tYXAnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENoZWNrb3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NoZWNrb3V0L2NoZWNrb3V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2hpcG1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2hlY2tvdXQvc2hpcG1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcm9kdWN0cy9wcm9kdWN0cy5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU2hpcHBpbmdQcmljZURpc3BsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvc2hpcHBpbmctcHJpY2UtZGlzcGxheS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtc2hpcG1lbnQtZWMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaGlwbWVudC1lYy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2hpcG1lbnQtZWMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtTaGlwbWVudFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFNoaXBtZW50RWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgICBASW5wdXQoKSBzdGVwX2lkO1xuICAgIEBJbnB1dCgpIGNvbXBhY3RTaGlwbWVudFZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBAT3V0cHV0KCkgc3VtbWFyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBsYWJlbD86IHN0cmluZzsgZGV0YWlsPzogc3RyaW5nIH0+KCk7XG4gICAgQE91dHB1dCgpIGFkdmFuY2VTdGVwID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIHB1YmxpYyBtZXRob2RzX2xpc3Q6IGFueVtdO1xuICAgIHB1YmxpYyBtZXRob2RTZWxlY3Q6IGFueTtcbiAgICBwdWJsaWMgbG9hZGluZ19pbnRlcm5hbCA9IGZhbHNlO1xuICAgIHB1YmxpYyBwb2ludHM6IGFueVtdID0gW107XG4gICAgcHVibGljIHNlbGVjdGVkX2ZpbmFsO1xuICAgIHB1YmxpYyBjb3N0b3MgPSBudWxsXG4gICAgcHVibGljIGNvc3RzID0gIFtdXG4gICAgcHVibGljIG1vcmVJbmZvSW5NZXRob2Q6IGFueVxuICAgIGJ1dHRvbnNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgbGFzdEFkZHJlc3NLZXk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBzaGlwbWVudEVycm9yS2V5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgc2luZ2xlT3B0aW9uczogYW55W10gPSBbXTtcbiAgICBwdWJsaWMgbG9hZGluZ19wcmVsb2FkID0gZmFsc2U7XG4gICAgcHVibGljIHNlbGVjdGVkT3B0aW9uSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyB1bmF2YWlsYWJsZU1ldGhvZHM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XG4gICAgcHVibGljIGdyb3VwZWRPcHRpb25zOiB7IGtleTogc3RyaW5nOyBsYWJlbDogc3RyaW5nOyBvcHRpb25zOiBhbnlbXSB9W10gPSBbXTtcblxuICAgIGNvbnRyYWN0cyA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHNoaXBtZW50U2VydmljZTogU2hpcG1lbnRTZXJ2aWNlLCBwcm90ZWN0ZWQgdG9hc3RyU2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgcHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UsIHB1YmxpYyBjaGVja291dFNlcnZpY2U6IENoZWNrb3V0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHNoaXBwaW5nUHJpY2VEaXNwbGF5OiBTaGlwcGluZ1ByaWNlRGlzcGxheVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5lY09uQ29uc3RydWN0KClcbiAgICB9XG5cbiAgICBlbWl0UmVzdWx0ID0gKG1ldGhvZF9uYW1lLCBjb250cmFjdF9kYXRhKSA9PiB7XG4gICAgICAgIGNvbnRyYWN0X2RhdGEgPSB7XG4gICAgICAgICAgICAuLi5jb250cmFjdF9kYXRhLFxuICAgICAgICAgICAgc2hpcHBpbmdfbWV0aG9kX2NvbnRyYWN0OiBtZXRob2RfbmFtZSArICdfJyArIGNvbnRyYWN0X2RhdGEubmFtZSxcbiAgICAgICAgICAgIHNoaXBwaW5nX21ldGhvZF9icmFuY2hfY29kZTogbWV0aG9kX25hbWUgPT0gXCJicmFuY2hfZGVsaXZlcnlcIiA/IGNvbnRyYWN0X2RhdGEuc3VjdXJzYWxfaWQgOiBjb250cmFjdF9kYXRhLm5hbWUsXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc2hpcG1lbnRTZXJ2aWNlLnNldENvbnRyYWN0KGNvbnRyYWN0X2RhdGEpO1xuICAgIH1cblxuICAgIHZlcmlmeVZhbGlkYXRlID0gKGNvbnRyYWN0LCBkYXRhKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBhY3RTaGlwbWVudFZpZXcgfHwgIXRoaXMuY29zdHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5lbWl0UmVzdWx0KGNvbnRyYWN0LCBkYXRhKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5jb3N0cy5mb3JFYWNoKGNvc3QgPT4gY29zdC5jb250cmFjdHMuZm9yRWFjaChjbyA9PiBjby5zZWxlY3RlZCA9IGZhbHNlKSlcbiAgICAgICAgICAgIHRoaXMuY29zdHMuZmluZChjb3N0ID0+IGNvc3QubmFtZSA9PSBjb250cmFjdCkuY29udHJhY3RzLmZpbmQoY29udHJhID0+IGNvbnRyYS5uYW1lID09IGRhdGEubmFtZSkuc2VsZWN0ZWQgPSB0cnVlXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yIGFsIGJ1c2NhciBjb250cmF0b1wiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZW1pdFJlc3VsdChjb250cmFjdCwgZGF0YSk7XG4gICAgfTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNoaXBtZW50U2VydmljZS5pbml0aWFsaXplKHRoaXMuc3RlcF9pZCk7XG4gICAgICAgIGlmICghdGhpcy5jb21wYWN0U2hpcG1lbnRWaWV3KSB7XG4gICAgICAgICAgICB0aGlzLnNoaXBtZW50U2VydmljZS5nZXRTaGlwbWVudE1ldGhvZHMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5hc29jaWF0ZWREYXRhJC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvc3RvcyA9IGRhdGEgJiYgZGF0YS5maW5kKHZhbHVlID0+IHZhbHVlLnR5cGUgPT0gXCJzaGlwbWVudFwiKSB8fCBudWxsXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuc2hpcG1lbnRTZXJ2aWNlLmNvc3RzLnN1YnNjcmliZShjb3MgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29tcGFjdFNoaXBtZW50VmlldykgcmV0dXJuO1xuICAgICAgICAgICAgdGhpcy5jb3N0cyA9IGNvcy5tYXAoY29zdCA9PiB7IHJldHVybiB7IC4uLmNvc3QsIGNvbnRyYWN0czogY29zdC5jb250cmFjdHMubWFwKGNvID0+IHsgcmV0dXJuIHsgLi4uY28sIHNlbGVjdGVkOiBmYWxzZSB9IH0gKSB9IH0pXG4gICAgICAgICAgICBpZiAodGhpcy5jb3N0cy5sZW5ndGggJiYgdGhpcy5jb3N0c1swXT8ubmFtZSAmJiB0aGlzLmNvc3RzWzBdPy5jb250cmFjdHNbMF0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeVZhbGlkYXRlKHRoaXMuY29zdHNbMF0ubmFtZSwgdGhpcy5jb3N0c1swXS5jb250cmFjdHNbMF0pXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuc2hpcG1lbnRTZXJ2aWNlLmVycm9yJC5zdWJzY3JpYmUoZXJyb3JLZXkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaGlwbWVudEVycm9yS2V5ID0gZXJyb3JLZXk7XG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMubW9yZUluZm9Jbk1ldGhvZCA9IHRydWUgLy9TaGlwbWVudFNlcnZpY2UubW9yZUluZm9Jbk1ldGhvZDtcbiAgICAgICAgdGhpcy5jaGVja291dFNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFNoaXBtZW50VmlldykgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgYWRkcmVzc0RhdGEgPSB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXRTdGVwRGF0YSgnYWRkcmVzcycpO1xuICAgICAgICAgICAgaWYgKCFhZGRyZXNzRGF0YSkgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoYWRkcmVzc0RhdGEpO1xuICAgICAgICAgICAgaWYgKHRoaXMubGFzdEFkZHJlc3NLZXkgPT09IGtleSkgcmV0dXJuO1xuICAgICAgICAgICAgdGhpcy5sYXN0QWRkcmVzc0tleSA9IGtleTtcbiAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRTZXJ2aWNlLnJlc3RhcnRTdGVwKCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uSWQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5zdW1tYXJ5Q2hhbmdlLmVtaXQoe30pO1xuICAgICAgICAgICAgdGhpcy5wcmVsb2FkU2luZ2xlT3B0aW9ucygpO1xuICAgICAgICAgICAgdGhpcy5jb3N0cyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5ncm91cGVkT3B0aW9ucyA9IFtdO1xuICAgICAgICB9KVxuICAgICAgICB0aGlzLmVjT25Jbml0KClcblxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBpZiAoIXRoaXMuY29tcGFjdFNoaXBtZW50Vmlldykge1xuICAgICAgICAgICAgdGhpcy5zaGlwbWVudFNlcnZpY2UuZ2V0U2hpcG1lbnRNZXRob2RzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b1RyYWR1Y2libGUgPSAobmFtZSkgPT4gbmFtZS5yZXBsYWNlKC9fL2csICctJyk7XG5cbiAgICBkZWxldGVVUFMgPSAobWV0aG9kcykgPT4gbWV0aG9kcy5maWx0ZXIobWV0aG9kID0+IG1ldGhvZC5uYW1lICE9ICdVUFMnKTtcblxuICAgICBzZXRNZXRob2QgPSAobWV0aG9kKSA9PiB7XG4gICAgICAgICB0aGlzLm1ldGhvZFNlbGVjdCA9IG1ldGhvZDtcbiAgICAgICAgIHRoaXMubG9hZGluZ19pbnRlcm5hbCA9IHRydWU7XG4gICAgICAgICB0aGlzLnNoaXBtZW50RXJyb3JLZXkgPSBudWxsO1xuICAgICAgICAgdGhpcy5zaGlwbWVudFNlcnZpY2UucmVzdGFydFN0ZXAoKTtcblxuICAgICAgICAgLy8gRGVzaGFiaWxpdGFyIHRvZG9zIGxvcyBib3RvbmVzXG4gICAgICAgICB0aGlzLmJ1dHRvbnNEaXNhYmxlZCA9IHRydWU7XG5cbiAgICAgLy8gICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgIHRoaXMuc2hpcG1lbnRTZXJ2aWNlLnNldE1ldGhvZChtZXRob2QuY29kZSkudGhlbihyZXMgPT4ge1xuICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdfaW50ZXJuYWwgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAvLyBIYWJpbGl0YXIgdG9kb3MgbG9zIGJvdG9uZXNcbiAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7dGhpcy5idXR0b25zRGlzYWJsZWQgPSBmYWxzZTt9LCAxMDAwKTtcbiAgICAgICAgICAgICB9KS5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgIC8vIEVuIGNhc28gZGUgZXJyb3IsIHRhbWJpw6luIGhhYmlsaXRhciBsb3MgYm90b25lc1xuICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdfaW50ZXJuYWwgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgdGhpcy5idXR0b25zRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgdGhpcy5zaGlwbWVudEVycm9yS2V5ID0gJ29wZXJhdGlvbi1lcnJvcic7XG4gICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvcjpcIiwgZXJyb3IpO1xuICAgICAgICAgICAgIH0pO1xuICAgICAvLyAgICAgfSwgMTAwMCk7XG4gICAgIH1cblxuICAgICBwcmVsb2FkU2luZ2xlT3B0aW9ucyA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgIHRoaXMubG9hZGluZ19wcmVsb2FkID0gdHJ1ZTtcbiAgICAgICAgIHRoaXMuc2luZ2xlT3B0aW9ucyA9IFtdO1xuICAgICAgICAgdGhpcy5ncm91cGVkT3B0aW9ucyA9IFtdO1xuICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbklkID0gbnVsbDtcbiAgICAgICAgIHRoaXMudW5hdmFpbGFibGVNZXRob2RzID0ge307XG4gICAgICAgICB0aGlzLnNoaXBtZW50RXJyb3JLZXkgPSBudWxsO1xuICAgICAgICAgY29uc3QgbWV0aG9kT3B0aW9ucyA9IGF3YWl0IHRoaXMuc2hpcG1lbnRTZXJ2aWNlLmdldFNoaXBwaW5nT3B0aW9ucygpO1xuICAgICAgICAgaWYgKCFtZXRob2RPcHRpb25zIHx8ICFtZXRob2RPcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgIHRoaXMubG9hZGluZ19wcmVsb2FkID0gZmFsc2U7XG4gICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgfVxuICAgICAgICAgbGV0IG9wdGlvbkluZGV4ID0gMDtcbiAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgbWV0aG9kT3B0aW9ucykge1xuICAgICAgICAgICAgIGNvbnN0IG1ldGhvZCA9IGVudHJ5Py5tZXRob2Q7XG4gICAgICAgICAgICAgaWYgKCFtZXRob2QgfHwgbWV0aG9kLm5hbWUgPT09ICdVUFMnKSBjb250aW51ZTtcbiAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gZW50cnk/Lm9wdGlvbnMgfHwgW107XG4gICAgICAgICAgICAgbGV0IGhhc0NvbnRyYWN0cyA9IGZhbHNlO1xuICAgICAgICAgICAgIG9wdGlvbnMuZm9yRWFjaChvcHRpb24gPT4ge1xuICAgICAgICAgICAgICAgICBjb25zdCBjb250cmFjdHMgPSBvcHRpb24/LmNvbnRyYWN0cyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgaWYgKCFjb250cmFjdHMubGVuZ3RoKSByZXR1cm47XG4gICAgICAgICAgICAgICAgIGhhc0NvbnRyYWN0cyA9IHRydWU7XG4gICAgICAgICAgICAgICAgIGNvbnRyYWN0cy5mb3JFYWNoKGNvbnRyYWN0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRDb250cmFjdCA9IHsgLi4uY29udHJhY3QgfTtcbiAgICAgICAgICAgICAgICAgICAgIGlmICghbm9ybWFsaXplZENvbnRyYWN0LmNvbnRyYWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZENvbnRyYWN0LmNvbnRyYWN0ID0gb3B0aW9uLm5hbWU7XG4gICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICBvcHRpb25JbmRleCArPSAxO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpbmdsZU9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGAke21ldGhvZC5jb2RlfS0ke29wdGlvbi5uYW1lfS0ke2NvbnRyYWN0Lm5hbWV9LSR7b3B0aW9uSW5kZXh9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgY29zdE5hbWU6IG9wdGlvbi5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyYWN0OiBub3JtYWxpemVkQ29udHJhY3RcbiAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICBpZiAoIWhhc0NvbnRyYWN0cykge1xuICAgICAgICAgICAgICAgICB0aGlzLnVuYXZhaWxhYmxlTWV0aG9kc1ttZXRob2QuY29kZV0gPSB0cnVlO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgIH1cbiAgICAgICAgIHRoaXMuZ3JvdXBlZE9wdGlvbnMgPSB0aGlzLmJ1aWxkR3JvdXBlZE9wdGlvbnModGhpcy5zaW5nbGVPcHRpb25zKTtcbiAgICAgICAgIGlmICghdGhpcy5zaW5nbGVPcHRpb25zLmxlbmd0aCAmJiBPYmplY3Qua2V5cyh0aGlzLnVuYXZhaWxhYmxlTWV0aG9kcykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgdGhpcy5zaGlwbWVudEVycm9yS2V5ID0gJ29wZXJhdGlvbi1lcnJvcic7XG4gICAgICAgICB9XG4gICAgICAgICB0aGlzLmxvYWRpbmdfcHJlbG9hZCA9IGZhbHNlO1xuICAgICB9XG5cbiAgICBzZWxlY3RTaW5nbGVPcHRpb24gPSBhc3luYyAob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmICghb3B0aW9uKSByZXR1cm47XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9uSWQgPT09IG9wdGlvbi5pZCAmJiAhdGhpcy5sb2FkaW5nX2ludGVybmFsKSByZXR1cm47XG4gICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uSWQgPSBvcHRpb24uaWQ7XG4gICAgICAgICB0aGlzLmxvYWRpbmdfaW50ZXJuYWwgPSB0cnVlO1xuICAgICAgICAgdGhpcy5zaGlwbWVudEVycm9yS2V5ID0gbnVsbDtcbiAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgY29udHJhY3REYXRhID0geyAuLi4ob3B0aW9uLmNvbnRyYWN0IHx8IHt9KSB9O1xuICAgICAgICAgICAgY29uc3QgaW5pdGlhbENvbnRyYWN0TmFtZSA9IGNvbnRyYWN0RGF0YS5uYW1lIHx8IG9wdGlvbi5jb250cmFjdD8ubmFtZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNob3VsZEVucmljaEZyb21MZWdhY3kob3B0aW9uKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxlZ2FjeUNvbnRyYWN0RGF0YSA9IGF3YWl0IHRoaXMuZ2V0TGVnYWN5Q29udHJhY3REYXRhKFxuICAgICAgICAgICAgICAgICAgICBvcHRpb24ubWV0aG9kPy5jb2RlLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb24uY29zdE5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxDb250cmFjdE5hbWVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmIChsZWdhY3lDb250cmFjdERhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJhY3REYXRhID0geyAuLi5jb250cmFjdERhdGEsIC4uLmxlZ2FjeUNvbnRyYWN0RGF0YSB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGNvbnRyYWN0VHlwZSA9IGNvbnRyYWN0RGF0YS5jb250cmFjdCB8fCBvcHRpb24uY29zdE5hbWU7XG4gICAgICAgICAgICBjb25zdCBjb250cmFjdE5hbWUgPSBjb250cmFjdERhdGEubmFtZSB8fCBvcHRpb24uY29udHJhY3Q/Lm5hbWU7XG4gICAgICAgICAgICBjb25zdCBzaGlwcGluZ01ldGhvZENvbnRyYWN0ID0gYCR7b3B0aW9uLmNvc3ROYW1lfV8ke2NvbnRyYWN0TmFtZX1gO1xuICAgICAgICAgICAgY29uc3Qgc2hpcHBpbmdNZXRob2RCcmFuY2hDb2RlID0gb3B0aW9uLmNvc3ROYW1lID09PSAnYnJhbmNoX2RlbGl2ZXJ5J1xuICAgICAgICAgICAgICAgID8gKGNvbnRyYWN0RGF0YS5zdWN1cnNhbF9pZCB8fCBjb250cmFjdERhdGEubnVtYmVyIHx8IGNvbnRyYWN0RGF0YS5icmFuY2hfcHJvcGVydHk/Lm51bWJlciB8fCBjb250cmFjdE5hbWUpXG4gICAgICAgICAgICAgICAgOiBjb250cmFjdE5hbWU7XG4gICAgICAgICAgICBjb25zdCBzYW5pdGl6ZWRDb250cmFjdERhdGEgPSB7IC4uLmNvbnRyYWN0RGF0YSB9O1xuICAgICAgICAgICAgZGVsZXRlIHNhbml0aXplZENvbnRyYWN0RGF0YS5icmFuY2hfcHJvcGVydHk7XG4gICAgICAgICAgICBkZWxldGUgc2FuaXRpemVkQ29udHJhY3REYXRhLm9yaWdpbmFsUHJpY2U7XG4gICAgICAgICAgICBkZWxldGUgc2FuaXRpemVkQ29udHJhY3REYXRhLm9wdGlvbjtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RQYXlsb2FkID0ge1xuICAgICAgICAgICAgICAgIC4uLnNhbml0aXplZENvbnRyYWN0RGF0YSxcbiAgICAgICAgICAgICAgICBzaGlwcGluZ0lkOiBvcHRpb24ubWV0aG9kLmNvZGUsXG4gICAgICAgICAgICAgICAgbWV0aG9kOiBvcHRpb24ubWV0aG9kLmNvZGUsXG4gICAgICAgICAgICAgICAgb3B0aW9uOiBvcHRpb24uY29zdE5hbWUsXG4gICAgICAgICAgICAgICAgY29udHJhY3Q6IGNvbnRyYWN0VHlwZSxcbiAgICAgICAgICAgICAgICBuYW1lOiBjb250cmFjdE5hbWUsXG4gICAgICAgICAgICAgICAgcHJpY2U6IGNvbnRyYWN0RGF0YS5wcmljZSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzaGlwcGluZ19tZXRob2RfY29udHJhY3Q6IHNoaXBwaW5nTWV0aG9kQ29udHJhY3QsXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdfbWV0aG9kX2JyYW5jaF9jb2RlOiBzaGlwcGluZ01ldGhvZEJyYW5jaENvZGVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBzdGVwRGF0YSA9IHtcbiAgICAgICAgICAgICAgICAuLi5yZXF1ZXN0UGF5bG9hZCxcbiAgICAgICAgICAgICAgICBvcmlnaW5hbFByaWNlOiB0aGlzLnNoaXBwaW5nUHJpY2VEaXNwbGF5Lm5vcm1hbGl6ZVByaWNlVmFsdWUoY29udHJhY3REYXRhLm9yaWdpbmFsUHJpY2UpLFxuICAgICAgICAgICAgICAgIG1ldGhvZF9uYW1lOiBvcHRpb24ubWV0aG9kPy5uYW1lLFxuICAgICAgICAgICAgICAgIGNvbnRyYWN0X25hbWU6IGNvbnRyYWN0TmFtZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGFwcGxpZWQgPSBhd2FpdCB0aGlzLnNoaXBtZW50U2VydmljZS5zZXRTaGlwcGluZ09wdGlvbihyZXF1ZXN0UGF5bG9hZCwgc3RlcERhdGEpO1xuICAgICAgICAgICAgaWYgKCFhcHBsaWVkKSByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBtZXRob2RMYWJlbCA9IG9wdGlvbi5tZXRob2Q/Lm5hbWVcbiAgICAgICAgICAgICAgICA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KG9wdGlvbi5tZXRob2QubmFtZSlcbiAgICAgICAgICAgICAgICA6ICcnO1xuICAgICAgICAgICAgY29uc3QgY29udHJhY3RMYWJlbCA9IG9wdGlvbi5jb250cmFjdD8ubmFtZVxuICAgICAgICAgICAgICAgID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQob3B0aW9uLmNvbnRyYWN0Lm5hbWUpXG4gICAgICAgICAgICAgICAgOiAnJztcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwTGFiZWwgPSBvcHRpb24uY29zdE5hbWVcbiAgICAgICAgICAgICAgICA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMucmVzb2x2ZUdyb3VwTGFiZWwob3B0aW9uLmNvc3ROYW1lKSlcbiAgICAgICAgICAgICAgICA6ICcnO1xuICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBbZ3JvdXBMYWJlbCwgbWV0aG9kTGFiZWwsIGNvbnRyYWN0TGFiZWxdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgwrcgJyk7XG4gICAgICAgICAgICBjb25zdCBkZXRhaWwgPSBvcHRpb24uY29udHJhY3Q/LmNvbXB1dGVkIHx8IG9wdGlvbi5jb250cmFjdD8uZGV0YWlsIHx8ICcnO1xuICAgICAgICAgICAgdGhpcy5zdW1tYXJ5Q2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgICAgIGxhYmVsOiBsYWJlbCB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgZGV0YWlsOiBkZXRhaWwgfHwgdW5kZWZpbmVkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICBpZiAodGhpcy5jb21wYWN0U2hpcG1lbnRWaWV3KSB7XG4gICAgICAgICAgICAgICAgIHRoaXMuYWR2YW5jZVN0ZXAuZW1pdCgpO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgdGhpcy5zaGlwbWVudEVycm9yS2V5ID0gJ29wZXJhdGlvbi1lcnJvcic7XG4gICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgIHRoaXMubG9hZGluZ19pbnRlcm5hbCA9IGZhbHNlO1xuICAgICAgICAgfVxuICAgICB9XG5cbiAgICBwcml2YXRlIHNob3VsZEVucmljaEZyb21MZWdhY3kob3B0aW9uOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFvcHRpb24gfHwgb3B0aW9uLmNvc3ROYW1lICE9PSAnYnJhbmNoX2RlbGl2ZXJ5JykgcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExlZ2FjeUNvbnRyYWN0RGF0YSA9IGFzeW5jIChcbiAgICAgICAgbWV0aG9kQ29kZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICBjb3N0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICBjb250cmFjdE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZFxuICAgICkgPT4ge1xuICAgICAgICBpZiAoIW1ldGhvZENvZGUgfHwgIWNvc3ROYW1lIHx8ICFjb250cmFjdE5hbWUpIHJldHVybiBudWxsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY29zdHMgPSBhd2FpdCB0aGlzLnNoaXBtZW50U2VydmljZS5nZXRDb3N0c0Zvck1ldGhvZChtZXRob2RDb2RlKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQ29zdCA9IChjb3N0cyB8fCBbXSkuZmluZChjb3N0ID0+IFN0cmluZyhjb3N0Py5uYW1lIHx8ICcnKSA9PT0gU3RyaW5nKGNvc3ROYW1lKSk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkQ29zdD8uY29udHJhY3RzPy5sZW5ndGgpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRDb250cmFjdCA9IHNlbGVjdGVkQ29zdC5jb250cmFjdHMuZmluZChjb250cmFjdCA9PlxuICAgICAgICAgICAgICAgIFN0cmluZyhjb250cmFjdD8ubmFtZSB8fCAnJykgPT09IFN0cmluZyhjb250cmFjdE5hbWUpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkQ29udHJhY3QgfHwgbnVsbDtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgIHNldEFjdGl2ZShlKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGUudGFyZ2V0LnBhcmVudEVsZW1lbnQuY2hpbGRyZW47XG4gICAgICAgIGZvciAoY29uc3QgYnV0dG9uIG9mIHBhcmVudCkge1xuICAgICAgICAgICAgaWYgKGJ1dHRvbi5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpKSB7XG4gICAgICAgICAgICAgICAgYnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZS50YXJnZXQuY2xhc3NMaXN0LmFkZChcImFjdGl2ZVwiKVxuICAgIH1cblxuICAgIHZhbGlkTmFtZSA9IChuYW1lKSA9PiBpc05hTihuYW1lKTtcblxuICAgIGdldENvbnRyYWN0UHJpY2VWaWV3ID0gKGNvbnRyYWN0OiBhbnkpID0+XG4gICAgICAgIHRoaXMuc2hpcHBpbmdQcmljZURpc3BsYXkuZ2V0Q29udHJhY3RWaWV3KGNvbnRyYWN0KTtcblxuICAgIHByaXZhdGUgYnVpbGRHcm91cGVkT3B0aW9ucyhvcHRpb25zOiBhbnlbXSkge1xuICAgICAgICBpZiAoIW9wdGlvbnM/Lmxlbmd0aCkgcmV0dXJuIFtdO1xuICAgICAgICBjb25zdCBncm91cHMgPSBuZXcgTWFwPHN0cmluZywgYW55W10+KCk7XG4gICAgICAgIG9wdGlvbnMuZm9yRWFjaChvcHRpb24gPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gb3B0aW9uPy5jb3N0TmFtZSB8fCAnZGVmYXVsdCc7XG4gICAgICAgICAgICBpZiAoIWdyb3Vwcy5oYXMoa2V5KSkgZ3JvdXBzLnNldChrZXksIFtdKTtcbiAgICAgICAgICAgIGdyb3Vwcy5nZXQoa2V5KT8ucHVzaChvcHRpb24pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oZ3JvdXBzLmVudHJpZXMoKSkubWFwKChba2V5LCBncm91cE9wdGlvbnNdKSA9PiAoe1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMucmVzb2x2ZUdyb3VwTGFiZWwoa2V5LCBncm91cE9wdGlvbnM/LlswXT8ubWV0aG9kPy5uYW1lKSxcbiAgICAgICAgICAgIG9wdGlvbnM6IGdyb3VwT3B0aW9uc1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNvbHZlR3JvdXBMYWJlbChjb3N0TmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCwgbWV0aG9kTmFtZT86IHN0cmluZykge1xuICAgICAgICBpZiAoY29zdE5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBjb3N0TmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWQgPT09ICdicmFuY2hfZGVsaXZlcnknKSByZXR1cm4gJ1JldGlybyBlbiBzdWN1cnNhbCc7XG4gICAgICAgICAgICBpZiAobm9ybWFsaXplZCA9PT0gJ2hvbWVfZGVsaXZlcnknKSByZXR1cm4gJ0VudsOtbyBhIGRvbWljaWxpbyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1ldGhvZE5hbWUgfHwgKGNvc3ROYW1lIHx8ICcnKTtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -32,6 +32,11 @@ var CouponEcComponent = /** @class */ (function (_super) {
32
32
  _this.loading = false;
33
33
  _this.addCoupon = function () {
34
34
  _this.validCoupon() && _this.cartService.addCoupon(_this.coupon_value).then(function (res) {
35
+ var _a;
36
+ if (((_a = res) === null || _a === void 0 ? void 0 : _a.message) === 'cart-not-active') {
37
+ _this.loading = false;
38
+ return;
39
+ }
35
40
  res.error ? _this.invalidCoupon() : _this.applyCoupon();
36
41
  });
37
42
  };
@@ -68,4 +73,4 @@ var CouponEcComponent = /** @class */ (function (_super) {
68
73
  return CouponEcComponent;
69
74
  }(ComponentHelper));
70
75
  export { CouponEcComponent };
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cG9uLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9lYy1jb21wb25lbnQvY291cG9uLWVjL2NvdXBvbi1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFPekQ7SUFBdUMscUNBQWU7SUFNakQsMkJBQW1CLFdBQXdCLEVBQVksTUFBb0I7UUFBM0UsWUFDRyxpQkFBTyxTQUVUO1FBSGtCLGlCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVksWUFBTSxHQUFOLE1BQU0sQ0FBYztRQUpwRSxrQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixZQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsYUFBTyxHQUFHLEtBQUssQ0FBQztRQVd2QixlQUFTLEdBQUc7WUFDUCxLQUFJLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDbkUsVUFBQSxHQUFHO2dCQUNFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNELENBQUMsQ0FDTCxDQUFBO1FBQ04sQ0FBQyxDQUFBO1FBRUQsbUJBQWEsR0FBRztZQUNYLEtBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDbkMsS0FBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDdkIsS0FBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQyxDQUFBO1FBRUQsaUJBQVcsR0FBRztZQUNULEtBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLEtBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQTtRQUVELGdCQUFVLEdBQUcsY0FBTSxPQUFBLEtBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFuQixDQUFtQixDQUFDO1FBRXZDLGlCQUFXLEdBQUc7WUFDVCxPQUFBLEtBQUksQ0FBQyxZQUFZLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxZQUFZLENBQUM7UUFBcEUsQ0FBb0UsQ0FBQztRQTdCdkUsS0FBSSxDQUFDLGFBQWEsRUFBRSxDQUFBOztJQUN2QixDQUFDO0lBRUQsb0NBQVEsR0FBUjtRQUNHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUNuQixDQUFDOztnQkFQZ0MsV0FBVztnQkFBb0IsWUFBWTs7SUFObkUsaUJBQWlCO1FBTDdCLFNBQVMsQ0FBQztZQUNOLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLDhvQkFBdUM7O1NBRTNDLENBQUM7T0FDVyxpQkFBaUIsQ0FzQzdCO0lBQUQsd0JBQUM7Q0FBQSxBQXRDRCxDQUF1QyxlQUFlLEdBc0NyRDtTQXRDWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3RvYXN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAgc2VsZWN0b3I6ICdhcHAtY291cG9uLWVjJyxcbiAgICAgdGVtcGxhdGVVcmw6ICdjb3Vwb24tZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgICBzdHlsZVVybHM6IFsnY291cG9uLWVjLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ291cG9uRWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIge1xuXG4gICAgIHB1YmxpYyBjb3Vwb25fdmFsdWUgPSBcIlwiO1xuICAgICBwdWJsaWMgYXBsaWVkID0gZmFsc2U7XG4gICAgIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgY29uc3RydWN0b3IocHVibGljIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSwgcHJvdGVjdGVkIHRvYXN0cjogVG9hc3RTZXJ2aWNlKSB7IFxuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKVxuICAgICB9XG4gICAgIFxuICAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5lY09uSW5pdCgpXG4gICAgfVxuXG4gICAgIGFkZENvdXBvbiA9ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnZhbGlkQ291cG9uKCkgJiYgdGhpcy5jYXJ0U2VydmljZS5hZGRDb3Vwb24odGhpcy5jb3Vwb25fdmFsdWUpLnRoZW4oXG4gICAgICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXMuZXJyb3IgPyB0aGlzLmludmFsaWRDb3Vwb24oKSA6IHRoaXMuYXBwbHlDb3Vwb24oKTtcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICApXG4gICAgIH1cblxuICAgICBpbnZhbGlkQ291cG9uID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ2ludmFsaWQtY291cG9uJyk7XG4gICAgICAgICAgdGhpcy5jb3Vwb25fdmFsdWUgPSAnJztcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgfVxuXG4gICAgIGFwcGx5Q291cG9uID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYXBsaWVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgfVxuXG4gICAgIHNldExvYWRpbmcgPSAoKSA9PiB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXG4gICAgIHZhbGlkQ291cG9uID0gKCk6IGJvb2xlYW4gPT4gXG4gICAgICAgICAgdGhpcy5jb3Vwb25fdmFsdWUgJiYgL14oW0EtWmEtelxcLTAtOV0qKVxcdyskLy50ZXN0KHRoaXMuY291cG9uX3ZhbHVlKTtcbn0iXX0=
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cG9uLWVjLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9lYy1jb21wb25lbnQvY291cG9uLWVjL2NvdXBvbi1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFPekQ7SUFBdUMscUNBQWU7SUFNakQsMkJBQW1CLFdBQXdCLEVBQVksTUFBb0I7UUFBM0UsWUFDRyxpQkFBTyxTQUVUO1FBSGtCLGlCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVksWUFBTSxHQUFOLE1BQU0sQ0FBYztRQUpwRSxrQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixZQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsYUFBTyxHQUFHLEtBQUssQ0FBQztRQVd2QixlQUFTLEdBQUc7WUFDUCxLQUFJLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDbkUsVUFBQSxHQUFHOztnQkFDRSxJQUFJLE9BQUEsR0FBRywwQ0FBRSxPQUFPLE1BQUssaUJBQWlCLEVBQUU7b0JBQ25DLEtBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixPQUFPO2lCQUNYO2dCQUNELEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNELENBQUMsQ0FDTCxDQUFBO1FBQ04sQ0FBQyxDQUFBO1FBRUQsbUJBQWEsR0FBRztZQUNYLEtBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDbkMsS0FBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDdkIsS0FBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQyxDQUFBO1FBRUQsaUJBQVcsR0FBRztZQUNULEtBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLEtBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQTtRQUVELGdCQUFVLEdBQUcsY0FBTSxPQUFBLEtBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFuQixDQUFtQixDQUFDO1FBRXZDLGlCQUFXLEdBQUc7WUFDVCxPQUFBLEtBQUksQ0FBQyxZQUFZLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxZQUFZLENBQUM7UUFBcEUsQ0FBb0UsQ0FBQztRQWpDdkUsS0FBSSxDQUFDLGFBQWEsRUFBRSxDQUFBOztJQUN2QixDQUFDO0lBRUQsb0NBQVEsR0FBUjtRQUNHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUNuQixDQUFDOztnQkFQZ0MsV0FBVztnQkFBb0IsWUFBWTs7SUFObkUsaUJBQWlCO1FBTDdCLFNBQVMsQ0FBQztZQUNOLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLDhvQkFBdUM7O1NBRTNDLENBQUM7T0FDVyxpQkFBaUIsQ0EwQzdCO0lBQUQsd0JBQUM7Q0FBQSxBQTFDRCxDQUF1QyxlQUFlLEdBMENyRDtTQTFDWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3RvYXN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAgc2VsZWN0b3I6ICdhcHAtY291cG9uLWVjJyxcbiAgICAgdGVtcGxhdGVVcmw6ICdjb3Vwb24tZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgICBzdHlsZVVybHM6IFsnY291cG9uLWVjLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ291cG9uRWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIge1xuXG4gICAgIHB1YmxpYyBjb3Vwb25fdmFsdWUgPSBcIlwiO1xuICAgICBwdWJsaWMgYXBsaWVkID0gZmFsc2U7XG4gICAgIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgY29uc3RydWN0b3IocHVibGljIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSwgcHJvdGVjdGVkIHRvYXN0cjogVG9hc3RTZXJ2aWNlKSB7IFxuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVjT25Db25zdHJ1Y3QoKVxuICAgICB9XG4gICAgIFxuICAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5lY09uSW5pdCgpXG4gICAgfVxuXG4gICAgIGFkZENvdXBvbiA9ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnZhbGlkQ291cG9uKCkgJiYgdGhpcy5jYXJ0U2VydmljZS5hZGRDb3Vwb24odGhpcy5jb3Vwb25fdmFsdWUpLnRoZW4oXG4gICAgICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzPy5tZXNzYWdlID09PSAnY2FydC1ub3QtYWN0aXZlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXMuZXJyb3IgPyB0aGlzLmludmFsaWRDb3Vwb24oKSA6IHRoaXMuYXBwbHlDb3Vwb24oKTtcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICApXG4gICAgIH1cblxuICAgICBpbnZhbGlkQ291cG9uID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyLnNob3coJ2ludmFsaWQtY291cG9uJyk7XG4gICAgICAgICAgdGhpcy5jb3Vwb25fdmFsdWUgPSAnJztcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgfVxuXG4gICAgIGFwcGx5Q291cG9uID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYXBsaWVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgfVxuXG4gICAgIHNldExvYWRpbmcgPSAoKSA9PiB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXG4gICAgIHZhbGlkQ291cG9uID0gKCk6IGJvb2xlYW4gPT4gXG4gICAgICAgICAgdGhpcy5jb3Vwb25fdmFsdWUgJiYgL14oW0EtWmEtelxcLTAtOV0qKVxcdyskLy50ZXN0KHRoaXMuY291cG9uX3ZhbHVlKTtcbn1cbiJdfQ==
@@ -8,7 +8,7 @@ import { Injectable } from '@angular/core';
8
8
  import { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';
9
9
  import { AuthService } from '../services/auth.service';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "../../public-api";
11
+ import * as i1 from "../services/auth.service";
12
12
  import * as i2 from "@angular/router";
13
13
  var AbleBuyerGuardService = /** @class */ (function () {
14
14
  function AbleBuyerGuardService(auth, router) {
@@ -25,7 +25,7 @@ var AbleBuyerGuardService = /** @class */ (function () {
25
25
  { type: AuthService },
26
26
  { type: Router }
27
27
  ]; };
28
- AbleBuyerGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AbleBuyerGuardService_Factory() { return new i1.AbleBuyerGuardService(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: i1.AbleBuyerGuardService, providedIn: "root" });
28
+ AbleBuyerGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AbleBuyerGuardService_Factory() { return new AbleBuyerGuardService(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: AbleBuyerGuardService, providedIn: "root" });
29
29
  AbleBuyerGuardService = __decorate([
30
30
  Injectable({
31
31
  providedIn: 'root'
@@ -8,7 +8,7 @@ import { Injectable } from '@angular/core';
8
8
  import { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';
9
9
  import { AuthService } from '../services/auth.service';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "../../public-api";
11
+ import * as i1 from "../services/auth.service";
12
12
  import * as i2 from "@angular/router";
13
13
  var AuthGuardService = /** @class */ (function () {
14
14
  function AuthGuardService(auth, router) {
@@ -25,7 +25,7 @@ var AuthGuardService = /** @class */ (function () {
25
25
  { type: AuthService },
26
26
  { type: Router }
27
27
  ]; };
28
- AuthGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new i1.AuthGuardService(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: i1.AuthGuardService, providedIn: "root" });
28
+ AuthGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: AuthGuardService, providedIn: "root" });
29
29
  AuthGuardService = __decorate([
30
30
  Injectable({
31
31
  providedIn: 'root'
@@ -8,8 +8,8 @@ import { Injectable } from '@angular/core';
8
8
  import { Router, CanActivate } from '@angular/router';
9
9
  import { CheckoutService } from '../services/checkout/checkout.service';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "../../public-api";
12
- import * as i2 from "@angular/router";
11
+ import * as i1 from "@angular/router";
12
+ import * as i2 from "../services/checkout/checkout.service";
13
13
  var CheckoutReadyGuard = /** @class */ (function () {
14
14
  function CheckoutReadyGuard(router, checkoutService) {
15
15
  this.router = router;
@@ -25,7 +25,7 @@ var CheckoutReadyGuard = /** @class */ (function () {
25
25
  { type: Router },
26
26
  { type: CheckoutService }
27
27
  ]; };
28
- CheckoutReadyGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function CheckoutReadyGuard_Factory() { return new i1.CheckoutReadyGuard(i0.ɵɵinject(i2.Router), i0.ɵɵinject(i1.CheckoutService)); }, token: i1.CheckoutReadyGuard, providedIn: "root" });
28
+ CheckoutReadyGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function CheckoutReadyGuard_Factory() { return new CheckoutReadyGuard(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i2.CheckoutService)); }, token: CheckoutReadyGuard, providedIn: "root" });
29
29
  CheckoutReadyGuard = __decorate([
30
30
  Injectable({
31
31
  providedIn: 'root'
@@ -8,7 +8,7 @@ import { Injectable } from '@angular/core';
8
8
  import { Router, CanActivate } from '@angular/router';
9
9
  import { AuthService } from '../services/auth.service';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "../../public-api";
11
+ import * as i1 from "../services/auth.service";
12
12
  import * as i2 from "@angular/router";
13
13
  var LoggedInGuard = /** @class */ (function () {
14
14
  function LoggedInGuard(auth, router) {
@@ -25,7 +25,7 @@ var LoggedInGuard = /** @class */ (function () {
25
25
  { type: AuthService },
26
26
  { type: Router }
27
27
  ]; };
28
- LoggedInGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function LoggedInGuard_Factory() { return new i1.LoggedInGuard(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: i1.LoggedInGuard, providedIn: "root" });
28
+ LoggedInGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function LoggedInGuard_Factory() { return new LoggedInGuard(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: LoggedInGuard, providedIn: "root" });
29
29
  LoggedInGuard = __decorate([
30
30
  Injectable({
31
31
  providedIn: 'root'
@@ -8,7 +8,7 @@ import { Injectable } from '@angular/core';
8
8
  import { Router, CanActivate, ActivatedRouteSnapshot } from '@angular/router';
9
9
  import { AuthService } from '../services/auth.service';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "../../public-api";
11
+ import * as i1 from "../services/auth.service";
12
12
  import * as i2 from "@angular/router";
13
13
  var UserRoleGuardService = /** @class */ (function () {
14
14
  function UserRoleGuardService(auth, router) {
@@ -27,7 +27,7 @@ var UserRoleGuardService = /** @class */ (function () {
27
27
  { type: AuthService },
28
28
  { type: Router }
29
29
  ]; };
30
- UserRoleGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserRoleGuardService_Factory() { return new i1.UserRoleGuardService(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: i1.UserRoleGuardService, providedIn: "root" });
30
+ UserRoleGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserRoleGuardService_Factory() { return new UserRoleGuardService(i0.ɵɵinject(i1.AuthService), i0.ɵɵinject(i2.Router)); }, token: UserRoleGuardService, providedIn: "root" });
31
31
  UserRoleGuardService = __decorate([
32
32
  Injectable({
33
33
  providedIn: 'root'