ng-easycommerce 0.1.1 → 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 (115) hide show
  1. package/README.md +14 -0
  2. package/assets/ec-i18n/ct.json +4 -0
  3. package/assets/ec-i18n/en.json +4 -0
  4. package/assets/ec-i18n/es.json +4 -0
  5. package/assets/ec-i18n/fr.json +4 -0
  6. package/assets/ec-i18n/gl.json +4 -0
  7. package/assets/ec-i18n/pr.json +4 -0
  8. package/bundles/ng-easycommerce.umd.js +5191 -3521
  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/account-ec/order-ec/order-ec.component.js +2 -2
  15. package/esm2015/lib/ec-component/cart-bootstrap-navigation.js +27 -0
  16. package/esm2015/lib/ec-component/cart-ec/cart-ec.component.js +11 -1
  17. package/esm2015/lib/ec-component/checkout-ec/checkout-ec.component.js +28 -3
  18. package/esm2015/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.js +185 -13
  19. package/esm2015/lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.js +6 -2
  20. package/esm2015/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.js +26 -9
  21. package/esm2015/lib/ec-component/checkout-ec/payment-ec-single/payment-ec-single.component.js +11 -3
  22. package/esm2015/lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component.js +4 -2
  23. package/esm2015/lib/ec-component/coupon-ec/coupon-ec.component.js +6 -1
  24. package/esm2015/lib/guards/able-buyer-guard.service.js +2 -2
  25. package/esm2015/lib/guards/auth-guard.service.js +2 -2
  26. package/esm2015/lib/guards/checkout-ready.service.js +3 -3
  27. package/esm2015/lib/guards/loggedin-guard.service.js +2 -2
  28. package/esm2015/lib/guards/user-role-guard.service.js +2 -2
  29. package/esm2015/lib/interfaces/checkout-data.js +1 -1
  30. package/esm2015/lib/services/account/orders.service.js +6 -4
  31. package/esm2015/lib/services/auth.service.js +4 -3
  32. package/esm2015/lib/services/captcha.service.js +6 -4
  33. package/esm2015/lib/services/cart.service.js +1194 -74
  34. package/esm2015/lib/services/channel-config.service.js +4 -6
  35. package/esm2015/lib/services/checkout/addressing.service.js +65 -9
  36. package/esm2015/lib/services/checkout/checkout.service.js +58 -9
  37. package/esm2015/lib/services/checkout/error-handler.service.js +4 -3
  38. package/esm2015/lib/services/checkout/payment.service.js +35 -15
  39. package/esm2015/lib/services/checkout/shipment.service.js +54 -3
  40. package/esm2015/lib/services/concatenated-associations.service.js +4 -3
  41. package/esm2015/lib/services/currency.service.js +5 -3
  42. package/esm2015/lib/services/filters.service.js +2 -2
  43. package/esm2015/lib/services/footer/footer.service.js +4 -3
  44. package/esm2015/lib/services/gift-card.service.js +56 -5
  45. package/esm2015/lib/services/parameters.service.js +5 -3
  46. package/esm2015/lib/services/reviews.service.js +5 -4
  47. package/esm2015/lib/services/seo.service.js +4 -5
  48. package/esm2015/lib/services/stores.service.js +4 -3
  49. package/esm2015/lib/services/wishlist.service.js +3 -4
  50. package/esm2015/lib/utils/analytics/google-analytics.service.js +1 -1
  51. package/esm2015/lib/utils/order-util.service.js +22 -2
  52. package/esm2015/lib/utils/price-presentation.service.js +2 -3
  53. package/esm2015/lib/utils/shipping-price-display.service.js +2 -3
  54. package/esm5/lib/api/connection.service.js +2 -2
  55. package/esm5/lib/core.consts.js +4 -5
  56. package/esm5/lib/ec-component/account-ec/order-ec/order-ec.component.js +2 -2
  57. package/esm5/lib/ec-component/cart-bootstrap-navigation.js +27 -0
  58. package/esm5/lib/ec-component/cart-ec/cart-ec.component.js +11 -1
  59. package/esm5/lib/ec-component/checkout-ec/checkout-ec.component.js +28 -3
  60. package/esm5/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.js +206 -12
  61. package/esm5/lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.js +6 -2
  62. package/esm5/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.js +31 -14
  63. package/esm5/lib/ec-component/checkout-ec/payment-ec-single/payment-ec-single.component.js +11 -3
  64. package/esm5/lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component.js +5 -3
  65. package/esm5/lib/ec-component/coupon-ec/coupon-ec.component.js +6 -1
  66. package/esm5/lib/guards/able-buyer-guard.service.js +2 -2
  67. package/esm5/lib/guards/auth-guard.service.js +2 -2
  68. package/esm5/lib/guards/checkout-ready.service.js +3 -3
  69. package/esm5/lib/guards/loggedin-guard.service.js +2 -2
  70. package/esm5/lib/guards/user-role-guard.service.js +2 -2
  71. package/esm5/lib/interfaces/checkout-data.js +1 -1
  72. package/esm5/lib/services/account/orders.service.js +6 -4
  73. package/esm5/lib/services/auth.service.js +4 -3
  74. package/esm5/lib/services/captcha.service.js +6 -4
  75. package/esm5/lib/services/cart.service.js +1243 -94
  76. package/esm5/lib/services/channel-config.service.js +4 -6
  77. package/esm5/lib/services/checkout/addressing.service.js +65 -9
  78. package/esm5/lib/services/checkout/checkout.service.js +65 -13
  79. package/esm5/lib/services/checkout/error-handler.service.js +4 -3
  80. package/esm5/lib/services/checkout/payment.service.js +29 -11
  81. package/esm5/lib/services/checkout/shipment.service.js +58 -7
  82. package/esm5/lib/services/concatenated-associations.service.js +4 -3
  83. package/esm5/lib/services/currency.service.js +5 -3
  84. package/esm5/lib/services/filters.service.js +2 -2
  85. package/esm5/lib/services/footer/footer.service.js +4 -3
  86. package/esm5/lib/services/gift-card.service.js +59 -5
  87. package/esm5/lib/services/parameters.service.js +5 -3
  88. package/esm5/lib/services/reviews.service.js +5 -4
  89. package/esm5/lib/services/seo.service.js +4 -5
  90. package/esm5/lib/services/stores.service.js +4 -3
  91. package/esm5/lib/services/wishlist.service.js +3 -4
  92. package/esm5/lib/utils/analytics/google-analytics.service.js +1 -1
  93. package/esm5/lib/utils/order-util.service.js +22 -2
  94. package/esm5/lib/utils/price-presentation.service.js +2 -3
  95. package/esm5/lib/utils/shipping-price-display.service.js +2 -3
  96. package/fesm2015/ng-easycommerce.js +4360 -2745
  97. package/fesm2015/ng-easycommerce.js.map +1 -1
  98. package/fesm5/ng-easycommerce.js +5193 -3523
  99. package/fesm5/ng-easycommerce.js.map +1 -1
  100. package/lib/ec-component/cart-bootstrap-navigation.d.ts +7 -0
  101. package/lib/ec-component/cart-ec/cart-ec.component.d.ts +5 -2
  102. package/lib/ec-component/checkout-ec/checkout-ec.component.d.ts +6 -1
  103. package/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.d.ts +27 -3
  104. package/lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.d.ts +1 -1
  105. package/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.d.ts +3 -0
  106. package/lib/ec-component/checkout-ec/payment-ec-single/payment-ec-single.component.d.ts +3 -0
  107. package/lib/interfaces/checkout-data.d.ts +6 -1
  108. package/lib/services/cart.service.d.ts +123 -7
  109. package/lib/services/checkout/addressing.service.d.ts +1 -1
  110. package/lib/services/checkout/checkout.service.d.ts +3 -0
  111. package/lib/services/checkout/shipment.service.d.ts +2 -2
  112. package/lib/services/gift-card.service.d.ts +1 -0
  113. package/lib/utils/order-util.service.d.ts +1 -0
  114. package/ng-easycommerce.metadata.json +1 -1
  115. package/package.json +1 -1
@@ -13,7 +13,7 @@ let OrderUtilityService = class OrderUtilityService {
13
13
  * @description Devuelve un listado con todas las promociones que posee el carro/orden
14
14
  */
15
15
  this.getPromotions = (cart, forCart = false) => {
16
- var _a;
16
+ var _a, _b;
17
17
  if (!((_a = cart) === null || _a === void 0 ? void 0 : _a.totals))
18
18
  return [];
19
19
  if (cart.checkoutState && cart.checkoutState == "completed")
@@ -25,6 +25,8 @@ let OrderUtilityService = class OrderUtilityService {
25
25
  // console.log(cart.cartDiscounts);
26
26
  const cartDiscounts = Array.isArray(cart.cartDiscounts) ? cart.cartDiscounts : [];
27
27
  for (let index = 0; index < cartDiscounts.length; index++) {
28
+ if (((_b = cartDiscounts[index]) === null || _b === void 0 ? void 0 : _b.type) === 'payment_method')
29
+ continue;
28
30
  cartDiscounts[index].type = this.formatType(cartDiscounts[index].type);
29
31
  new_state.push({
30
32
  type: cartDiscounts[index].type,
@@ -40,6 +42,8 @@ let OrderUtilityService = class OrderUtilityService {
40
42
  // amount: this.getAmount(cartDiscount, cart)
41
43
  // });
42
44
  // });
45
+ const paymentMethodAdjustment = this.getPaymentMethodAdjustment(cart);
46
+ paymentMethodAdjustment && new_state.push(paymentMethodAdjustment);
43
47
  !forCart && new_state.push(total);
44
48
  return new_state;
45
49
  };
@@ -66,9 +70,25 @@ let OrderUtilityService = class OrderUtilityService {
66
70
  name: 'discount',
67
71
  amount: promotionAmount
68
72
  });
73
+ const paymentMethodAdjustment = this.getPaymentMethodAdjustment(cart);
74
+ paymentMethodAdjustment && new_state.push(paymentMethodAdjustment);
69
75
  !forCart && new_state.push(total);
70
76
  return new_state;
71
77
  };
78
+ this.getPaymentMethodAdjustment = (cart) => {
79
+ var _a, _b, _c, _d;
80
+ const rawAmount = (_b = (_a = cart) === null || _a === void 0 ? void 0 : _a.totals) === null || _b === void 0 ? void 0 : _b.paymentMethodAdjustment;
81
+ if (rawAmount === null || rawAmount === undefined || Number(rawAmount) === 0)
82
+ return null;
83
+ const amount = Number(rawAmount);
84
+ if (!Number.isFinite(amount))
85
+ return null;
86
+ return {
87
+ type: 'paymentMethodAdjustment',
88
+ name: ((_d = (_c = cart) === null || _c === void 0 ? void 0 : _c.totals) === null || _d === void 0 ? void 0 : _d.paymentMethodAdjustmentLabel) || (amount < 0 ? 'discount' : 'surcharge'),
89
+ amount
90
+ };
91
+ };
72
92
  /**
73
93
  * Devuelve el monto de envío que debe mostrarse en el resumen.
74
94
  *
@@ -291,4 +311,4 @@ OrderUtilityService = __decorate([
291
311
  Injectable()
292
312
  ], OrderUtilityService);
293
313
  export { OrderUtilityService };
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItdXRpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL29yZGVyLXV0aWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW1CO0lBRTVCO1FBRUE7Ozs7V0FJRztRQUNILGtCQUFhLEdBQUcsQ0FBQyxJQUFTLEVBQUUsVUFBbUIsS0FBSyxFQUFrQixFQUFFOztZQUNwRSxJQUFJLFFBQUMsSUFBSSwwQ0FBRSxNQUFNLENBQUE7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksV0FBVztnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUN2RSxJQUFJLFNBQVMsR0FBbUIsRUFBRSxDQUFDO1lBQ25DLElBQUksUUFBUSxHQUFpQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDakgsSUFBSSxLQUFLLEdBQWlCLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RGLENBQUMsT0FBTyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsc0NBQXNDO1lBQ25DLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbEYsS0FBSyxJ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Q0FBQyxDQUFDLElBQUksQ0FBRSxDQUFBO1lBQ2xHLE9BQU8sTUFBTSxJQUFJLElBQUksQ0FBQztRQUMxQixDQUFDLENBQUE7UUFFTyxvQkFBZSxHQUFHLENBQUMsS0FBeUMsRUFBaUIsRUFBRTtZQUNuRixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFO2dCQUN2RCxPQUFPLElBQUksQ0FBQzthQUNmO1lBRUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDM0QsQ0FBQyxDQUFBO0lBbFNlLENBQUM7Q0FtU3BCLENBQUE7QUFyU1ksbUJBQW1CO0lBRC9CLFVBQVUsRUFBRTtHQUNBLG1CQUFtQixDQXFTL0I7U0FyU1ksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hlY2tvdXREYXRhLCBDaGVja291dERhdGFUeXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jaGVja291dC1kYXRhJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9yZGVyVXRpbGl0eVNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IoKSB7IH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBjYXJ0IE9iamV0byBjYXJyaXRvIG8gb3JkZW4sIGluZGlzdGludGFtZW50ZSwgeWEgcXVlIHBvc2VlbiBlbCBtaXNtbyBmb3JtYXRvXG4gICAgICogQHBhcmFtIGZvckNhcnQgU2kgbGEgc29saWNpdHVkIGRlIHByb21vY2lvbmVzIHByb3ZpZW5lIGRlbCBjYXJyaXRvLCBzdXByaW1lIGVsIHN1YnRvdGFsIHkgZWwgdG90YWxcbiAgICAgKiBAZGVzY3JpcHRpb24gRGV2dWVsdmUgdW4gbGlzdGFkbyBjb24gdG9kYXMgbGFzIHByb21vY2lvbmVzIHF1ZSBwb3NlZSBlbCBjYXJyby9vcmRlblxuICAgICAqL1xuICAgIGdldFByb21vdGlvbnMgPSAoY2FydDogYW55LCBmb3JDYXJ0OiBib29sZWFuID0gZmFsc2UpOiBDaGVja291dERhdGFbXSA9PiB7XG4gICAgICAgIGlmICghY2FydD8udG90YWxzKSByZXR1cm4gW107XG4gICAgICAgIGlmIChjYXJ0LmNoZWNrb3V0U3RhdGUgJiYgY2FydC5jaGVja291dFN0YXRlID09IFwiY29tcGxldGVkXCIpIHJldHVybiBbXTtcbiAgICAgICAgbGV0IG5ld19zdGF0ZTogQ2hlY2tvdXREYXRhW10gPSBbXTtcbiAgICAgICAgbGV0IHN1YnRvdGFsOiBDaGVja291dERhdGEgPSB7IHR5cGU6ICdzdWJ0b3RhbCcsIG5hbWU6ICdzdWJ0b3RhbCcsIGFtb3VudDogdGhpcy5nZXRTdW1tYXJ5U3VidG90YWxBbW91bnQoY2FydCkgfTtcbiAgICAgICAgbGV0IHRvdGFsOiBDaGVja291dERhdGEgPSB7IHR5cGU6ICd0b3RhbCcsIG5hbWU6ICd0b3RhbCcsIGFtb3VudDogY2FydC50b3RhbHMudG90YWwgfTtcbiAgICAgICAgIWZvckNhcnQgJiYgbmV3X3N0YXRlLnB1c2goc3VidG90YWwpO1xuICAgICAvLyAgICBjb25zb2xlLmxvZyhjYXJ0LmNhcnREaXNjb3VudHMpO1xuICAgICAgICBjb25zdCBjYXJ0RGlzY291bnRzID0gQXJyYXkuaXNBcnJheShjYXJ0LmNhcnREaXNjb3VudHMpID8gY2FydC5jYXJ0RGlzY291bnRzIDogW107XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjYXJ0RGlzY291bnRzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgIGNhcnREaXNjb3VudHNbaW5kZXhdLnR5cGUgPSB0aGlzLmZvcm1hdFR5cGUoY2FydERpc2NvdW50c1tpbmRleF0udHlwZSk7XG4gICAgICAgICAgICAgbmV3X3N0YXRlLnB1c2goe1xuICAgICAgICAgICAgICAgICB0eXBlOiBjYXJ0RGlzY291bnRzW2luZGV4XS50eXBlLFxuICAgICAgICAgICAgICAgICBuYW1lOiAoY2FydERpc2NvdW50c1tpbmRleF0udHlwZSAhPSAnY291cG9uJykgPyBjYXJ0RGlzY291bnRzW2luZGV4XS5uYW1lIDogJ2NvdXBvbicsXG4gICAgICAgICAgICAgICAgIGFtb3VudDogdGhpcy5nZXRBbW91bnQoY2FydERpc2NvdW50c1tpbmRleF0sIGNhcnQpXG4gICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfVxuICAgICAvLyAgICBjYXJ0LmNhcnREaXNjb3VudHMuZm9yRWFjaChjYXJ0RGlzY291bnQgPT4ge1xuICAgICAvLyAgICAgICAgY2FydERpc2NvdW50LnR5cGUgPSB0aGlzLmZvcm1hdFR5cGUoY2FydERpc2NvdW50LnR5cGUpO1xuICAgICAvLyAgICAgICAgbmV3X3N0YXRlLnB1c2goe1xuICAgICAvLyAgICAgICAgICAgIHR5cGU6IGNhcnREaXNjb3VudC50eXBlLFxuICAgICAvLyAgICAgICAgICAgIG5hbWU6IChjYXJ0RGlzY291bnQudHlwZSAhPSAnY291cG9uJykgPyBjYXJ0RGlzY291bnQubmFtZSA6ICdjb3Vwb24nLFxuICAgICAvLyAgICAgICAgICAgIGFtb3VudDogdGhpcy5nZXRBbW91bnQoY2FydERpc2NvdW50LCBjYXJ0KVxuICAgICAvLyAgICAgICAgfSk7XG4gICAgIC8vICAgIH0pO1xuICAgICAgICAhZm9yQ2FydCAmJiBuZXdfc3RhdGUucHVzaCh0b3RhbCk7XG4gICAgICAgIHJldHVybiBuZXdfc3RhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29uc3RydXllIGVsIHJlc3VtZW4gZGUgcHJvbW9jaW9uZXMgcXVlIGRlYmUgbW9zdHJhcnNlIGVuIGNoZWNrb3V0IHkgcmVzw7ptZW5lcyBkZSBjb21wcmEuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2FydCBDYXJyaXRvIHUgb3JkZW4gY29uIGVzdHJ1Y3R1cmEgYHRvdGFsc2AgY29tcGF0aWJsZS5cbiAgICAgKiBAcGFyYW0gZm9yQ2FydCBDdWFuZG8gZXMgYHRydWVgLCBvbWl0ZSBzdWJ0b3RhbCB5IHRvdGFsIHBhcmEgZGV2b2x2ZXIgc29sbyBsYXMgbMOtbmVhcyBpbnRlcm1lZGlhcy5cbiAgICAgKiBAcmV0dXJucyBMaXN0YSBkZSBsw61uZWFzIG5vcm1hbGl6YWRhcyBwYXJhIHJlbmRlcml6YXIgZWwgcmVzdW1lbi5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogQSBkaWZlcmVuY2lhIGRlIGBnZXRQcm9tb3Rpb25zYCwgZXN0ZSBtw6l0b2RvIHNvbG8gY29uc2lkZXJhIGRlc2N1ZW50b3MgZGUgb3JkZW4uXG4gICAgICovXG4gICAgZ2V0U3VtbWFyeVByb21vdGlvbnMgPSAoY2FydDogYW55LCBmb3JDYXJ0OiBib29sZWFuID0gZmFsc2UpOiBDaGVja291dERhdGFbXSA9PiB7XG4gICAgICAgIGlmIChjYXJ0LmNoZWNrb3V0U3RhdGUgJiYgY2FydC5jaGVja291dFN0YXRlID09IFwiY29tcGxldGVkXCIpIHJldHVybjtcbiAgICAgICAgbGV0IG5ld19zdGF0ZTogQ2hlY2tvdXREYXRhW10gPSBbXTtcbiAgICAgICAgbGV0IHN1YnRvdGFsOiBDaGVja291dERhdGEgPSB7IHR5cGU6ICdzdWJ0b3RhbCcsIG5hbWU6ICdzdWJ0b3RhbCcsIGFtb3VudDogdGhpcy5nZXRTdW1tYXJ5U3VidG90YWxBbW91bnQoY2FydCkgfTtcbiAgICAgICAgbGV0IHRvdGFsOiBDaGVja291dERhdGEgPSB7IHR5cGU6ICd0b3RhbCcsIG5hbWU6ICd0b3RhbCcsIGFtb3VudDogY2FydC50b3RhbHMudG90YWwgfTtcbiAgICAgICAgY29uc3QgcHJvbW90aW9uQW1vdW50ID0gdGhpcy5nZXRTdW1tYXJ5UHJvbW90aW9uQW1vdW50KGNhcnQpO1xuXG4gICAgICAgICFmb3JDYXJ0ICYmIG5ld19zdGF0ZS5wdXNoKHN1YnRvdGFsKTtcbiAgICAgICAgcHJvbW90aW9uQW1vdW50ICE9IDAgJiYgbmV3X3N0YXRlLnB1c2goe1xuICAgICAgICAgICAgdHlwZTogJ2Rpc2NvdW50JyxcbiAgICAgICAgICAgIG5hbWU6ICdkaXNjb3VudCcsXG4gICAgICAgICAgICBhbW91bnQ6IHByb21vdGlvbkFtb3VudFxuICAgICAgICB9KTtcbiAgICAgICAgIWZvckNhcnQgJiYgbmV3X3N0YXRlLnB1c2godG90YWwpO1xuICAgICAgICByZXR1cm4gbmV3X3N0YXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldnVlbHZlIGVsIG1vbnRvIGRlIGVudsOtbyBxdWUgZGViZSBtb3N0cmFyc2UgZW4gZWwgcmVzdW1lbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXJ0IENhcnJpdG8gdSBvcmRlbiBjb24gYHRvdGFsc2AuXG4gICAgICogQHJldHVybnMgYG51bWJlcmAgY3VhbmRvIGVsIGVudsOtbyBkZWJlIG1vc3RyYXJzZSwgbyBgbnVsbGAgY3VhbmRvIG5vIGNvcnJlc3BvbmRlIHJlbmRlcml6YXJsby5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogLSBTaSBlbCBiYWNrZW5kIGluZm9ybWEgdW4gc2hpcHBpbmcgZGlzdGludG8gZGUgY2VybywgZXNlIHZhbG9yIHNlIG11ZXN0cmEgdGFsIGN1YWwuXG4gICAgICogLSBTaSBgdG90YWxzLnNoaXBwaW5nYCBlcyBgMGAgcGVybyBleGlzdGUgdW5hIHByb21vY2nDs24gZGUgZW52w61vLCBzZSBtdWVzdHJhIGAwYCBwYXJhIHF1ZSBsYSBVSSBsbyBpbnRlcnByZXRlIGNvbW8gZ3JhdGlzLlxuICAgICAqIC0gU2kgbm8gaGF5IGRhdG9zIHN1ZmljaWVudGVzLCBzZSBkZXZ1ZWx2ZSBgbnVsbGAgeSBzZSBjb25zZXJ2YSBlbCBjb21wb3J0YW1pZW50byBwcmV2aW8gZGUgbm8gbW9zdHJhciBsYSBsw61uZWEuXG4gICAgICovXG4gICAgZ2V0U3VtbWFyeVNoaXBtZW50QW1vdW50ID0gKGNhcnQ6IGFueSk6IG51bWJlciB8IG51bGwgPT4ge1xuICAgICAgICBjb25zdCBzaGlwcGluZ0Ftb3VudCA9IHRoaXMubm9ybWFsaXplQW1vdW50KGNhcnQ/LnRvdGFscz8uc2hpcHBpbmcpO1xuICAgICAgICBpZiAoc2hpcHBpbmdBbW91bnQgIT09IG51bGwgJiYgc2hpcHBpbmdBbW91bnQgIT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBzaGlwcGluZ0Ftb3VudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaGlwcGluZ0Ftb3VudCA9PT0gMCAmJiB0aGlzLmhhc1NoaXBwaW5nUHJvbW90aW9uKGNhcnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9idGllbmUgZWwgbW9udG8gZGUgZGVzY3VlbnRvIHF1ZSBjb3JyZXNwb25kZSBhbCByZXN1bWVuIGRlIGxhIG9yZGVuLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhcnQgQ2Fycml0byB1IG9yZGVuIGNvbiBgdG90YWxzYC5cbiAgICAgKiBAcmV0dXJucyBNb250byBkZSBwcm9tb2Npb25lcyBkZSBvcmRlbi5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHNcbiAgICAgKiBjb25zdCBhbW91bnQgPSB0aGlzLm9yZGVyVXRpbHMuZ2V0U3VtbWFyeVByb21vdGlvbkFtb3VudChjYXJ0KTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogU2kgZWwgYmFja2VuZCBudWV2byBpbmZvcm1hIGBwcm9tb3Rpb25CcmVha2Rvd24ub3JkZXJQcm9tb3Rpb25zYCwgZXNlIHZhbG9yIHRpZW5lIHByaW9yaWRhZC5cbiAgICAgKiBDb24gYmFja2VuZHMgdmllam9zIGhhY2UgZmFsbGJhY2sgYSBgdG90YWxzLnByb21vdGlvbmAgbyBgdG90YWxzLmRpc2NvdW50YC5cbiAgICAgKi9cbiAgICBnZXRTdW1tYXJ5UHJvbW90aW9uQW1vdW50ID0gKGNhcnQ6IGFueSk6IG51bWJlciA9PiB7XG4gICAgICAgIGNvbnN0IG9yZGVyRGlzY291bnQgPSBjYXJ0Py50b3RhbHM/Lm9yZGVyRGlzY291bnQgPz8gY2FydD8udG90YWxzPy5vcmRlcl9kaXNjb3VudDtcbiAgICAgICAgaWYgKG9yZGVyRGlzY291bnQgIT09IG51bGwgJiYgb3JkZXJEaXNjb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKG9yZGVyRGlzY291bnQgfHwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaGFzT3JkZXJQcm9tb3Rpb25zQnJlYWtkb3duKGNhcnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKFxuICAgICAgICAgICAgICAgIGNhcnQ/LnRvdGFscz8ucHJvbW90aW9uQnJlYWtkb3duPy5vcmRlclByb21vdGlvbnNcbiAgICAgICAgICAgICAgICA/PyBjYXJ0Py50b3RhbHM/LnByb21vdGlvbl9icmVha2Rvd24/Lm9yZGVyX3Byb21vdGlvbnNcbiAgICAgICAgICAgICAgICA/PyAwXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBOdW1iZXIoY2FydD8udG90YWxzPy5wcm9tb3Rpb24gfHwgY2FydD8udG90YWxzPy5kaXNjb3VudCB8fCAwKTtcbiAgICB9XG5cbiAgICAvKiogRGVzY3VlbnRvIGRlIG9yZGVuIHNlcGFyYWRvIGRlIGN1cG9uZXMgeSBkZXNjdWVudG9zIGRlIGVudsOtby4gKi9cbiAgICBnZXRPcmRlclByb21vdGlvbkFtb3VudCA9IChjYXJ0OiBhbnkpOiBudW1iZXIgPT4ge1xuICAgICAgICBjb25zdCBicmVha2Rvd24gPSBjYXJ0Py50b3RhbHM/LnByb21vdGlvbkJyZWFrZG93biB8fCBjYXJ0Py50b3RhbHM/LnByb21vdGlvbl9icmVha2Rvd247XG4gICAgICAgIGlmIChicmVha2Rvd24gJiYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChicmVha2Rvd24sICdvcmRlclByb21vdGlvbnMnKVxuICAgICAgICAgICAgfHwgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGJyZWFrZG93biwgJ29yZGVyX3Byb21vdGlvbnMnKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIoYnJlYWtkb3duLm9yZGVyUHJvbW90aW9ucyA/PyBicmVha2Rvd24ub3JkZXJfcHJvbW90aW9ucyA/PyAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNhcnQ/LmNhcnREaXNjb3VudHMpKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FydC5jYXJ0RGlzY291bnRzXG4gICAgICAgICAgICAgICAgLmZpbHRlcihkaXNjb3VudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSAoZGlzY291bnQ/LnR5cGUgfHwgJycpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGUuaW5jbHVkZXMoJ29yZGVyJykgJiYgIXR5cGUuaW5jbHVkZXMoJ2NvdXBvbicpICYmICF0eXBlLmluY2x1ZGVzKCdzaGlwcGluZycpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlZHVjZSgodG90YWwsIGRpc2NvdW50KSA9PiB0b3RhbCArIE51bWJlcihkaXNjb3VudD8uYW1vdW50IHx8IDApLCAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYXJ0Py5jb3Vwb25Db2RlIHx8IGNhcnQ/LmNvdXBvbl9jb2RlXG4gICAgICAgICAgICA/IDBcbiAgICAgICAgICAgIDogTnVtYmVyKGNhcnQ/LnRvdGFscz8ub3JkZXJEaXNjb3VudCA/PyBjYXJ0Py50b3RhbHM/Lm9yZGVyX2Rpc2NvdW50ID8/IGNhcnQ/LnRvdGFscz8ucHJvbW90aW9uID8/IDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9idGllbmUgw7puaWNhbWVudGUgZWwgZGVzY3VlbnRvIGFwbGljYWRvIHBvciBlbCBjdXDDs24uXG4gICAgICpcbiAgICAgKiBEZXZ1ZWx2ZSBgbnVsbGAgY3VhbmRvIGxhIHJlc3B1ZXN0YSBubyBwZXJtaXRlIGlkZW50aWZpY2FyIHN1IGltcG9ydGUsXG4gICAgICogcGFyYSBxdWUgZWwgZnJvbnRlbmQgcHVlZGEgbW9zdHJhciBzb2xhbWVudGUgZWwgY8OzZGlnby5cbiAgICAgKi9cbiAgICBnZXRDb3Vwb25Qcm9tb3Rpb25BbW91bnQgPSAoY2FydDogYW55KTogbnVtYmVyIHwgbnVsbCA9PiB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShjYXJ0Py5jYXJ0RGlzY291bnRzKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb3Vwb25EaXNjb3VudHMgPSBjYXJ0LmNhcnREaXNjb3VudHMuZmlsdGVyKGRpc2NvdW50ID0+XG4gICAgICAgICAgICAoZGlzY291bnQ/LnR5cGUgfHwgJycpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnY291cG9uJylcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIWNvdXBvbkRpc2NvdW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvdXBvbkRpc2NvdW50cy5yZWR1Y2UoKHRvdGFsLCBkaXNjb3VudCkgPT4gdG90YWwgKyBOdW1iZXIoZGlzY291bnQ/LmFtb3VudCB8fCAwKSwgMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT2J0aWVuZSBlbCBzdWJ0b3RhbCBjb21wYXRpYmxlIGNvbiBiYWNrZW5kcyBudWV2b3MgeSBsZWdhY3kuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2FydCBDYXJyaXRvIHUgb3JkZW4gY29uIGB0b3RhbHNgLlxuICAgICAqIEByZXR1cm5zIGB0b3RhbHMuc3VidG90YWxgIGN1YW5kbyBleGlzdGU7IGVuIGJhY2tlbmRzIGxlZ2FjeSB1c2EgYHRvdGFscy5pdGVtc2AuXG4gICAgICovXG4gICAgZ2V0U3VtbWFyeVN1YnRvdGFsQW1vdW50ID0gKGNhcnQ6IGFueSk6IG51bWJlciA9PiB7XG4gICAgICAgIGNvbnN0IGNhcnRTdWJ0b3RhbCA9IGNhcnQ/LnRvdGFscz8uY2FydFN1YnRvdGFsID8/IGNhcnQ/LnRvdGFscz8uY2FydF9zdWJ0b3RhbDtcbiAgICAgICAgaWYgKGNhcnRTdWJ0b3RhbCAhPT0gbnVsbCAmJiBjYXJ0U3VidG90YWwgIT09IHVuZGVmaW5lZCAmJiBjYXJ0U3VidG90YWwgIT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKGNhcnRTdWJ0b3RhbCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdWJ0b3RhbCA9IGNhcnQ/LnRvdGFscz8uc3VidG90YWw7XG4gICAgICAgIGlmIChzdWJ0b3RhbCAhPT0gbnVsbCAmJiBzdWJ0b3RhbCAhPT0gdW5kZWZpbmVkICYmIHN1YnRvdGFsICE9PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcihzdWJ0b3RhbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gTnVtYmVyKGNhcnQ/LnRvdGFscz8uaXRlbXMgfHwgMCk7XG4gICAgfVxuXG4gICAgLyoqIFRvdGFsIHF1ZSBkZWJlIG1vc3RyYXIgZWwgY2Fycml0by9zaWRlYmFyLCBleGNsdXllbmRvIGVudsOtbyBwZXJzaXN0aWRvLiAqL1xuICAgIGdldENhcnRUb3RhbEFtb3VudCA9IChjYXJ0OiBhbnkpOiBudW1iZXIgPT4ge1xuICAgICAgICBjb25zdCB0b3RhbFdpdGhvdXRTaGlwcGluZyA9IGNhcnQ/LnRvdGFscz8udG90YWxXaXRob3V0U2hpcHBpbmcgPz8gY2FydD8udG90YWxzPy50b3RhbF93aXRob3V0X3NoaXBwaW5nO1xuICAgICAgICBpZiAodG90YWxXaXRob3V0U2hpcHBpbmcgIT09IG51bGwgJiYgdG90YWxXaXRob3V0U2hpcHBpbmcgIT09IHVuZGVmaW5lZCAmJiB0b3RhbFdpdGhvdXRTaGlwcGluZyAhPT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIodG90YWxXaXRob3V0U2hpcHBpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIE51bWJlcihjYXJ0Py50b3RhbHM/LnRvdGFsIHx8IDApO1xuICAgIH1cblxuICAgIC8qKiBJbXB1ZXN0b3MgZGUgcHJvZHVjdG9zIHBhcmEgY2Fycml0by9zaWRlYmFyLCBjb24gZmFsbGJhY2sgbGVnYWN5LiAqL1xuICAgIGdldENhcnRUYXhlc0Ftb3VudCA9IChjYXJ0OiBhbnkpOiBudW1iZXIgPT4ge1xuICAgICAgICBjb25zdCBjYXJ0VGF4ZXMgPSBjYXJ0Py50b3RhbHM/LmNhcnRUYXhlcyA/PyBjYXJ0Py50b3RhbHM/LmNhcnRfdGF4ZXM7XG4gICAgICAgIGlmIChjYXJ0VGF4ZXMgIT09IG51bGwgJiYgY2FydFRheGVzICE9PSB1bmRlZmluZWQgJiYgY2FydFRheGVzICE9PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcihjYXJ0VGF4ZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIE51bWJlcihjYXJ0Py50b3RhbHM/LnRheGVzIHx8IDApO1xuICAgIH1cblxuICAgIC8qKiBJbXB1ZXN0b3MgZXNwZWPDrWZpY29zIGRlbCBjbGllbnRlIHBhcmEgY2Fycml0by9zaWRlYmFyLCBjb24gZmFsbGJhY2sgbGVnYWN5LiAqL1xuICAgIGdldENhcnRDbGllbnRUYXhlc0Ftb3VudCA9IChjYXJ0OiBhbnkpOiBudW1iZXIgPT4ge1xuICAgICAgICBjb25zdCBjYXJ0Q2xpZW50VGF4ZXMgPSBjYXJ0Py50b3RhbHM/LmNhcnRDbGllbnRUYXhlcyA/PyBjYXJ0Py50b3RhbHM/LmNhcnRfY2xpZW50X3RheGVzO1xuICAgICAgICBpZiAoY2FydENsaWVudFRheGVzICE9PSBudWxsICYmIGNhcnRDbGllbnRUYXhlcyAhPT0gdW5kZWZpbmVkICYmIGNhcnRDbGllbnRUYXhlcyAhPT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIoY2FydENsaWVudFRheGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBOdW1iZXIoY2FydD8udG90YWxzPy5jbGllbnRUYXhlcyB8fCAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbmRpY2Egc2kgZWwgYmFja2VuZCB5YSBpbmZvcm1hIGVsIGRlc2dsb3NlIG51ZXZvIGRlIHByb21vY2lvbmVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhcnQgQ2Fycml0byB1IG9yZGVuIGNvbiBgdG90YWxzYC5cbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgY3VhbmRvIGV4aXN0ZSBgcHJvbW90aW9uQnJlYWtkb3duLm9yZGVyUHJvbW90aW9uc2AuXG4gICAgICovXG4gICAgaGFzT3JkZXJQcm9tb3Rpb25zQnJlYWtkb3duID0gKGNhcnQ6IGFueSk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBjb25zdCBicmVha2Rvd24gPSBjYXJ0Py50b3RhbHM/LnByb21vdGlvbkJyZWFrZG93biB8fCBjYXJ0Py50b3RhbHM/LnByb21vdGlvbl9icmVha2Rvd247XG4gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYnJlYWtkb3duIHx8IHt9LCAnb3JkZXJQcm9tb3Rpb25zJylcbiAgICAgICAgICAgIHx8IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChicmVha2Rvd24gfHwge30sICdvcmRlcl9wcm9tb3Rpb25zJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5kaWNhIHNpIGVsIGNhcnJpdG8gdGllbmUgdW4gY3Vww7NuIGFwbGljYWRvLCBpbmRlcGVuZGllbnRlbWVudGUgZGUgY8OzbW8gaW1wYWN0ZSBlbiBlbCByZXN1bWVuLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhcnQgQ2Fycml0byBhY3R1YWwuXG4gICAgICogQHJldHVybnMgYHRydWVgIGN1YW5kbyBoYXkgdW4gY8OzZGlnbyBkZSBjdXDDs24gbyB1bmEgbMOtbmVhIGRlIGRlc2N1ZW50byBkZSB0aXBvIGN1cMOzbi5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogRXN0ZSBoZWxwZXIgZXZpdGEgYXRhciBsYSBVSSBkZSBgUXVpdGFyIGN1cMOzbmAgYWwgbW9udG8gZGUgZGVzY3VlbnRvcyBkZSBvcmRlbi5cbiAgICAgKiBVbiBjdXDDs24gcHVlZGUgYWZlY3RhciBwcm9tb2Npb25lcyB1bml0YXJpYXMgeSBkZWphciBgb3JkZXJQcm9tb3Rpb25zID0gMGAuXG4gICAgICovXG4gICAgaGFzQXBwbGllZENvdXBvbiA9IChjYXJ0OiBhbnkpOiBib29sZWFuID0+IHtcbiAgICAgICAgaWYgKEJvb2xlYW4oY2FydD8uY291cG9uQ29kZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoY2FydD8uY2FydERpc2NvdW50cylcbiAgICAgICAgICAgICYmIGNhcnQuY2FydERpc2NvdW50cy5zb21lKGRpc2NvdW50ID0+IChkaXNjb3VudD8udHlwZSB8fCAnJykudG9TdHJpbmcoKS5pbmNsdWRlcygnY291cG9uJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluZGljYSBzaSBlbCBjYXJyaXRvIHRpZW5lIHVuYSBwcm9tb2Npw7NuIGFzb2NpYWRhIGFsIGVudsOtby5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXJ0IENhcnJpdG8gYWN0dWFsLlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBjdWFuZG8gYWxndW5hIGzDrW5lYSBkZSBkZXNjdWVudG8gY29ycmVzcG9uZGUgYSBzaGlwcGluZy5cbiAgICAgKi9cbiAgICBoYXNTaGlwcGluZ1Byb21vdGlvbiA9IChjYXJ0OiBhbnkpOiBib29sZWFuID0+XG4gICAgICAgIEFycmF5LmlzQXJyYXkoY2FydD8uY2FydERpc2NvdW50cylcbiAgICAgICAgICAgICYmIGNhcnQuY2FydERpc2NvdW50cy5zb21lKGRpc2NvdW50ID0+IHRoaXMuZm9ybWF0VHlwZSgoZGlzY291bnQ/LnR5cGUgfHwgJycpLnRvU3RyaW5nKCkpID09PSAnc2hpcG1lbnQnKTtcblxuICAgIC8qKlxuICAgICAqIERldnVlbHZlIGVsIG1vbnRvIGVmZWN0aXZvIGRlIHVuYSBsw61uZWEgZGUgZGVzY3VlbnRvL3Byb21vY2nDs24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGlzY291bnQgTMOtbmVhIGNydWRhIGRlIGRlc2N1ZW50byBkZWwgYmFja2VuZC5cbiAgICAgKiBAcGFyYW0gY2FydCBDYXJyaXRvIGFzb2NpYWRvLlxuICAgICAqIEByZXR1cm5zIE1vbnRvIHF1ZSBkZWJlIG1vc3RyYXJzZSBlbiBVSS5cbiAgICAgKi9cbiAgICBnZXRBbW91bnQgPSAoZGlzY291bnQsIGNhcnQpOiBudW1iZXIgPT4ge1xuICAgICAgICBpZiAoZGlzY291bnQudHlwZSAhPSAnc2hpcG1lbnQnKSByZXR1cm4gZGlzY291bnQuYW1vdW50O1xuICAgICAgICByZXR1cm4gY2FydC50b3RhbHMuc2hpcHBpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSG9tb2xvZ2EgdGlwb3MgY3J1ZG9zIGRlbCBiYWNrZW5kIGFsIGNvbmp1bnRvIGRlIHRpcG9zIHVzYWRvIHBvciBjaGVja291dC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlIFRpcG8gY3J1ZG8gKGBvcmRlcl9wcm9tb3Rpb25gLCBgb3JkZXJfY291cG9uX3Byb21vdGlvbmAsIGV0Yy4pLlxuICAgICAqIEByZXR1cm5zIFRpcG8gbm9ybWFsaXphZG8gY29uc3VtaWRvIHBvciBsb3MgY29tcG9uZW50ZXMgZGVsIGNvcmUuXG4gICAgICovXG4gICAgZm9ybWF0VHlwZSA9ICh0eXBlOiBzdHJpbmcpOiBDaGVja291dERhdGFUeXBlID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdvcmRlcl9wcm9tb3Rpb24nOiByZXN1bHQgPSAnZGlzY291bnQnOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ29yZGVyX3NoaXBwaW5nX3Byb21vdGlvbic6IHJlc3VsdCA9ICdzaGlwbWVudCc7IGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnb3JkZXJfY291cG9uX3Byb21vdGlvbic6IHJlc3VsdCA9ICdjb3Vwb24nOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ29yZGVyX3VuaXRfcHJvbW90aW9uJzogcmVzdWx0ID0gJ2Rpc2NvdW50JzsgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgIXJlc3VsdCAmJiAocmVzdWx0ID0gdHlwZS5pbmNsdWRlcygncHJvbW90aW9uJykgfHwgdHlwZS5pbmNsdWRlcygnZGlzY291bnQnKSA/ICdkaXNjb3VudCcgOiB0eXBlIClcbiAgICAgICAgcmV0dXJuIHJlc3VsdCB8fCB0eXBlO1xuICAgIH1cblxuICAgIHByaXZhdGUgbm9ybWFsaXplQW1vdW50ID0gKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogbnVtYmVyIHwgbnVsbCA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub3JtYWxpemVkID0gTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShub3JtYWxpemVkKSA/IG5vcm1hbGl6ZWQgOiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItdXRpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL29yZGVyLXV0aWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW1CO0lBRTVCO1FBRUE7Ozs7V0FJRztRQUNILGtCQUFhLEdBQUcsQ0FBQyxJQUFTLEVBQUUsVUFBbUIsS0FBSyxFQUFrQixFQUFFOztZQUNwRSxJQUFJLFFBQUMsSUFBSSwwQ0FBRSxNQUFNLENBQUE7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksV0FBVztnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUN2RSxJQUFJLFNBQVMsR0FBbUIsRUFBRSxDQUFDO1lBQ25DLElBQUksUUFBUSxHQUFpQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDakgsSUFBSSxLQUFLLEdBQWlCLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RGLENBQUMsT0FBTyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsc0NBQXNDO1lBQ25DLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbEYsS0FBSyxJ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LEVBQWlCLEVBQUU7WUFDbkYsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDdkQsT0FBTyxJQUFJLENBQUM7YUFDZjtZQUVELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzNELENBQUMsQ0FBQTtJQXJUZSxDQUFDO0NBc1RwQixDQUFBO0FBeFRZLG1CQUFtQjtJQUQvQixVQUFVLEVBQUU7R0FDQSxtQkFBbUIsQ0F3VC9CO1NBeFRZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoZWNrb3V0RGF0YSwgQ2hlY2tvdXREYXRhVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvY2hlY2tvdXQtZGF0YSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPcmRlclV0aWxpdHlTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gY2FydCBPYmpldG8gY2Fycml0byBvIG9yZGVuLCBpbmRpc3RpbnRhbWVudGUsIHlhIHF1ZSBwb3NlZW4gZWwgbWlzbW8gZm9ybWF0b1xuICAgICAqIEBwYXJhbSBmb3JDYXJ0IFNpIGxhIHNvbGljaXR1ZCBkZSBwcm9tb2Npb25lcyBwcm92aWVuZSBkZWwgY2Fycml0bywgc3VwcmltZSBlbCBzdWJ0b3RhbCB5IGVsIHRvdGFsXG4gICAgICogQGRlc2NyaXB0aW9uIERldnVlbHZlIHVuIGxpc3RhZG8gY29uIHRvZGFzIGxhcyBwcm9tb2Npb25lcyBxdWUgcG9zZWUgZWwgY2Fycm8vb3JkZW5cbiAgICAgKi9cbiAgICBnZXRQcm9tb3Rpb25zID0gKGNhcnQ6IGFueSwgZm9yQ2FydDogYm9vbGVhbiA9IGZhbHNlKTogQ2hlY2tvdXREYXRhW10gPT4ge1xuICAgICAgICBpZiAoIWNhcnQ/LnRvdGFscykgcmV0dXJuIFtdO1xuICAgICAgICBpZiAoY2FydC5jaGVja291dFN0YXRlICYmIGNhcnQuY2hlY2tvdXRTdGF0ZSA9PSBcImNvbXBsZXRlZFwiKSByZXR1cm4gW107XG4gICAgICAgIGxldCBuZXdfc3RhdGU6IENoZWNrb3V0RGF0YVtdID0gW107XG4gICAgICAgIGxldCBzdWJ0b3RhbDogQ2hlY2tvdXREYXRhID0geyB0eXBlOiAnc3VidG90YWwnLCBuYW1lOiAnc3VidG90YWwnLCBhbW91bnQ6IHRoaXMuZ2V0U3VtbWFyeVN1YnRvdGFsQW1vdW50KGNhcnQpIH07XG4gICAgICAgIGxldCB0b3RhbDogQ2hlY2tvdXREYXRhID0geyB0eXBlOiAndG90YWwnLCBuYW1lOiAndG90YWwnLCBhbW91bnQ6IGNhcnQudG90YWxzLnRvdGFsIH07XG4gICAgICAgICFmb3JDYXJ0ICYmIG5ld19zdGF0ZS5wdXNoKHN1YnRvdGFsKTtcbiAgICAgLy8gICAgY29uc29sZS5sb2coY2FydC5jYXJ0RGlzY291bnRzKTtcbiAgICAgICAgY29uc3QgY2FydERpc2NvdW50cyA9IEFycmF5LmlzQXJyYXkoY2FydC5jYXJ0RGlzY291bnRzKSA/IGNhcnQuY2FydERpc2NvdW50cyA6IFtdO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY2FydERpc2NvdW50cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBpZiAoY2FydERpc2NvdW50c1tpbmRleF0/LnR5cGUgPT09ICdwYXltZW50X21ldGhvZCcpIGNvbnRpbnVlO1xuICAgICAgICAgIGNhcnREaXNjb3VudHNbaW5kZXhdLnR5cGUgPSB0aGlzLmZvcm1hdFR5cGUoY2FydERpc2NvdW50c1tpbmRleF0udHlwZSk7XG4gICAgICAgICAgICAgbmV3X3N0YXRlLnB1c2goe1xuICAgICAgICAgICAgICAgICB0eXBlOiBjYXJ0RGlzY291bnRzW2luZGV4XS50eXBlLFxuICAgICAgICAgICAgICAgICBuYW1lOiAoY2FydERpc2NvdW50c1tpbmRleF0udHlwZSAhPSAnY291cG9uJykgPyBjYXJ0RGlzY291bnRzW2luZGV4XS5uYW1lIDogJ2NvdXBvbicsXG4gICAgICAgICAgICAgICAgIGFtb3VudDogdGhpcy5nZXRBbW91bnQoY2FydERpc2NvdW50c1tpbmRleF0sIGNhcnQpXG4gICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfVxuICAgICAvLyAgICBjYXJ0LmNhcnREaXNjb3VudHMuZm9yRWFjaChjYXJ0RGlzY291bnQgPT4ge1xuICAgICAvLyAgICAgICAgY2FydERpc2NvdW50LnR5cGUgPSB0aGlzLmZvcm1hdFR5cGUoY2FydERpc2NvdW50LnR5cGUpO1xuICAgICAvLyAgICAgICAgbmV3X3N0YXRlLnB1c2goe1xuICAgICAvLyAgICAgICAgICAgIHR5cGU6IGNhcnREaXNjb3VudC50eXBlLFxuICAgICAvLyAgICAgICAgICAgIG5hbWU6IChjYXJ0RGlzY291bnQudHlwZSAhPSAnY291cG9uJykgPyBjYXJ0RGlzY291bnQubmFtZSA6ICdjb3Vwb24nLFxuICAgICAvLyAgICAgICAgICAgIGFtb3VudDogdGhpcy5nZXRBbW91bnQoY2FydERpc2NvdW50LCBjYXJ0KVxuICAgICAvLyAgICAgICAgfSk7XG4gICAgIC8vICAgIH0pO1xuICAgICAgICBjb25zdCBwYXltZW50TWV0aG9kQWRqdXN0bWVudCA9IHRoaXMuZ2V0UGF5bWVudE1ldGhvZEFkanVzdG1lbnQoY2FydCk7XG4gICAgICAgIHBheW1lbnRNZXRob2RBZGp1c3RtZW50ICYmIG5ld19zdGF0ZS5wdXNoKHBheW1lbnRNZXRob2RBZGp1c3RtZW50KTtcbiAgICAgICAgIWZvckNhcnQgJiYgbmV3X3N0YXRlLnB1c2godG90YWwpO1xuICAgICAgICByZXR1cm4gbmV3X3N0YXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnN0cnV5ZSBlbCByZXN1bWVuIGRlIHByb21vY2lvbmVzIHF1ZSBkZWJlIG1vc3RyYXJzZSBlbiBjaGVja291dCB5IHJlc8O6bWVuZXMgZGUgY29tcHJhLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhcnQgQ2Fycml0byB1IG9yZGVuIGNvbiBlc3RydWN0dXJhIGB0b3RhbHNgIGNvbXBhdGlibGUuXG4gICAgICogQHBhcmFtIGZvckNhcnQgQ3VhbmRvIGVzIGB0cnVlYCwgb21pdGUgc3VidG90YWwgeSB0b3RhbCBwYXJhIGRldm9sdmVyIHNvbG8gbGFzIGzDrW5lYXMgaW50ZXJtZWRpYXMuXG4gICAgICogQHJldHVybnMgTGlzdGEgZGUgbMOtbmVhcyBub3JtYWxpemFkYXMgcGFyYSByZW5kZXJpemFyIGVsIHJlc3VtZW4uXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIEEgZGlmZXJlbmNpYSBkZSBgZ2V0UHJvbW90aW9uc2AsIGVzdGUgbcOpdG9kbyBzb2xvIGNvbnNpZGVyYSBkZXNjdWVudG9zIGRlIG9yZGVuLlxuICAgICAqL1xuICAgIGdldFN1bW1hcnlQcm9tb3Rpb25zID0gKGNhcnQ6IGFueSwgZm9yQ2FydDogYm9vbGVhbiA9IGZhbHNlKTogQ2hlY2tvdXREYXRhW10gPT4ge1xuICAgICAgICBpZiAoY2FydC5jaGVja291dFN0YXRlICYmIGNhcnQuY2hlY2tvdXRTdGF0ZSA9PSBcImNvbXBsZXRlZFwiKSByZXR1cm47XG4gICAgICAgIGxldCBuZXdfc3RhdGU6IENoZWNrb3V0RGF0YVtdID0gW107XG4gICAgICAgIGxldCBzdWJ0b3RhbDogQ2hlY2tvdXREYXRhID0geyB0eXBlOiAnc3VidG90YWwnLCBuYW1lOiAnc3VidG90YWwnLCBhbW91bnQ6IHRoaXMuZ2V0U3VtbWFyeVN1YnRvdGFsQW1vdW50KGNhcnQpIH07XG4gICAgICAgIGxldCB0b3RhbDogQ2hlY2tvdXREYXRhID0geyB0eXBlOiAndG90YWwnLCBuYW1lOiAndG90YWwnLCBhbW91bnQ6IGNhcnQudG90YWxzLnRvdGFsIH07XG4gICAgICAgIGNvbnN0IHByb21vdGlvbkFtb3VudCA9IHRoaXMuZ2V0U3VtbWFyeVByb21vdGlvbkFtb3VudChjYXJ0KTtcblxuICAgICAgICAhZm9yQ2FydCAmJiBuZXdfc3RhdGUucHVzaChzdWJ0b3RhbCk7XG4gICAgICAgIHByb21vdGlvbkFtb3VudCAhPSAwICYmIG5ld19zdGF0ZS5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdkaXNjb3VudCcsXG4gICAgICAgICAgICBuYW1lOiAnZGlzY291bnQnLFxuICAgICAgICAgICAgYW1vdW50OiBwcm9tb3Rpb25BbW91bnRcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHBheW1lbnRNZXRob2RBZGp1c3RtZW50ID0gdGhpcy5nZXRQYXltZW50TWV0aG9kQWRqdXN0bWVudChjYXJ0KTtcbiAgICAgICAgcGF5bWVudE1ldGhvZEFkanVzdG1lbnQgJiYgbmV3X3N0YXRlLnB1c2gocGF5bWVudE1ldGhvZEFkanVzdG1lbnQpO1xuICAgICAgICAhZm9yQ2FydCAmJiBuZXdfc3RhdGUucHVzaCh0b3RhbCk7XG4gICAgICAgIHJldHVybiBuZXdfc3RhdGU7XG4gICAgfVxuXG4gICAgZ2V0UGF5bWVudE1ldGhvZEFkanVzdG1lbnQgPSAoY2FydDogYW55KTogQ2hlY2tvdXREYXRhIHwgbnVsbCA9PiB7XG4gICAgICAgIGNvbnN0IHJhd0Ftb3VudCA9IGNhcnQ/LnRvdGFscz8ucGF5bWVudE1ldGhvZEFkanVzdG1lbnQ7XG4gICAgICAgIGlmIChyYXdBbW91bnQgPT09IG51bGwgfHwgcmF3QW1vdW50ID09PSB1bmRlZmluZWQgfHwgTnVtYmVyKHJhd0Ftb3VudCkgPT09IDApIHJldHVybiBudWxsO1xuXG4gICAgICAgIGNvbnN0IGFtb3VudCA9IE51bWJlcihyYXdBbW91bnQpO1xuICAgICAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShhbW91bnQpKSByZXR1cm4gbnVsbDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogJ3BheW1lbnRNZXRob2RBZGp1c3RtZW50JyxcbiAgICAgICAgICAgIG5hbWU6IGNhcnQ/LnRvdGFscz8ucGF5bWVudE1ldGhvZEFkanVzdG1lbnRMYWJlbCB8fCAoYW1vdW50IDwgMCA/ICdkaXNjb3VudCcgOiAnc3VyY2hhcmdlJyksXG4gICAgICAgICAgICBhbW91bnRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXZ1ZWx2ZSBlbCBtb250byBkZSBlbnbDrW8gcXVlIGRlYmUgbW9zdHJhcnNlIGVuIGVsIHJlc3VtZW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2FydCBDYXJyaXRvIHUgb3JkZW4gY29uIGB0b3RhbHNgLlxuICAgICAqIEByZXR1cm5zIGBudW1iZXJgIGN1YW5kbyBlbCBlbnbDrW8gZGViZSBtb3N0cmFyc2UsIG8gYG51bGxgIGN1YW5kbyBubyBjb3JyZXNwb25kZSByZW5kZXJpemFybG8uXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIC0gU2kgZWwgYmFja2VuZCBpbmZvcm1hIHVuIHNoaXBwaW5nIGRpc3RpbnRvIGRlIGNlcm8sIGVzZSB2YWxvciBzZSBtdWVzdHJhIHRhbCBjdWFsLlxuICAgICAqIC0gU2kgYHRvdGFscy5zaGlwcGluZ2AgZXMgYDBgIHBlcm8gZXhpc3RlIHVuYSBwcm9tb2Npw7NuIGRlIGVudsOtbywgc2UgbXVlc3RyYSBgMGAgcGFyYSBxdWUgbGEgVUkgbG8gaW50ZXJwcmV0ZSBjb21vIGdyYXRpcy5cbiAgICAgKiAtIFNpIG5vIGhheSBkYXRvcyBzdWZpY2llbnRlcywgc2UgZGV2dWVsdmUgYG51bGxgIHkgc2UgY29uc2VydmEgZWwgY29tcG9ydGFtaWVudG8gcHJldmlvIGRlIG5vIG1vc3RyYXIgbGEgbMOtbmVhLlxuICAgICAqL1xuICAgIGdldFN1bW1hcnlTaGlwbWVudEFtb3VudCA9IChjYXJ0OiBhbnkpOiBudW1iZXIgfCBudWxsID0+IHtcbiAgICAgICAgY29uc3Qgc2hpcHBpbmdBbW91bnQgPSB0aGlzLm5vcm1hbGl6ZUFtb3VudChjYXJ0Py50b3RhbHM/LnNoaXBwaW5nKTtcbiAgICAgICAgaWYgKHNoaXBwaW5nQW1vdW50ICE9PSBudWxsICYmIHNoaXBwaW5nQW1vdW50ICE9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gc2hpcHBpbmdBbW91bnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2hpcHBpbmdBbW91bnQgPT09IDAgJiYgdGhpcy5oYXNTaGlwcGluZ1Byb21vdGlvbihjYXJ0KSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPYnRpZW5lIGVsIG1vbnRvIGRlIGRlc2N1ZW50byBxdWUgY29ycmVzcG9uZGUgYWwgcmVzdW1lbiBkZSBsYSBvcmRlbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXJ0IENhcnJpdG8gdSBvcmRlbiBjb24gYHRvdGFsc2AuXG4gICAgICogQHJldHVybnMgTW9udG8gZGUgcHJvbW9jaW9uZXMgZGUgb3JkZW4uXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHRzXG4gICAgICogY29uc3QgYW1vdW50ID0gdGhpcy5vcmRlclV0aWxzLmdldFN1bW1hcnlQcm9tb3Rpb25BbW91bnQoY2FydCk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIFNpIGVsIGJhY2tlbmQgbnVldm8gaW5mb3JtYSBgcHJvbW90aW9uQnJlYWtkb3duLm9yZGVyUHJvbW90aW9uc2AsIGVzZSB2YWxvciB0aWVuZSBwcmlvcmlkYWQuXG4gICAgICogQ29uIGJhY2tlbmRzIHZpZWpvcyBoYWNlIGZhbGxiYWNrIGEgYHRvdGFscy5wcm9tb3Rpb25gIG8gYHRvdGFscy5kaXNjb3VudGAuXG4gICAgICovXG4gICAgZ2V0U3VtbWFyeVByb21vdGlvbkFtb3VudCA9IChjYXJ0OiBhbnkpOiBudW1iZXIgPT4ge1xuICAgICAgICBjb25zdCBvcmRlckRpc2NvdW50ID0gY2FydD8udG90YWxzPy5vcmRlckRpc2NvdW50ID8/IGNhcnQ/LnRvdGFscz8ub3JkZXJfZGlzY291bnQ7XG4gICAgICAgIGlmIChvcmRlckRpc2NvdW50ICE9PSBudWxsICYmIG9yZGVyRGlzY291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcihvcmRlckRpc2NvdW50IHx8IDApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmhhc09yZGVyUHJvbW90aW9uc0JyZWFrZG93bihjYXJ0KSkge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcihcbiAgICAgICAgICAgICAgICBjYXJ0Py50b3RhbHM/LnByb21vdGlvbkJyZWFrZG93bj8ub3JkZXJQcm9tb3Rpb25zXG4gICAgICAgICAgICAgICAgPz8gY2FydD8udG90YWxzPy5wcm9tb3Rpb25fYnJlYWtkb3duPy5vcmRlcl9wcm9tb3Rpb25zXG4gICAgICAgICAgICAgICAgPz8gMFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gTnVtYmVyKGNhcnQ/LnRvdGFscz8ucHJvbW90aW9uIHx8IGNhcnQ/LnRvdGFscz8uZGlzY291bnQgfHwgMCk7XG4gICAgfVxuXG4gICAgLyoqIERlc2N1ZW50byBkZSBvcmRlbiBzZXBhcmFkbyBkZSBjdXBvbmVzIHkgZGVzY3VlbnRvcyBkZSBlbnbDrW8uICovXG4gICAgZ2V0T3JkZXJQcm9tb3Rpb25BbW91bnQgPSAoY2FydDogYW55KTogbnVtYmVyID0+IHtcbiAgICAgICAgY29uc3QgYnJlYWtkb3duID0gY2FydD8udG90YWxzPy5wcm9tb3Rpb25CcmVha2Rvd24gfHwgY2FydD8udG90YWxzPy5wcm9tb3Rpb25fYnJlYWtkb3duO1xuICAgICAgICBpZiAoYnJlYWtkb3duICYmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYnJlYWtkb3duLCAnb3JkZXJQcm9tb3Rpb25zJylcbiAgICAgICAgICAgIHx8IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChicmVha2Rvd24sICdvcmRlcl9wcm9tb3Rpb25zJykpKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKGJyZWFrZG93bi5vcmRlclByb21vdGlvbnMgPz8gYnJlYWtkb3duLm9yZGVyX3Byb21vdGlvbnMgPz8gMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjYXJ0Py5jYXJ0RGlzY291bnRzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNhcnQuY2FydERpc2NvdW50c1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoZGlzY291bnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0eXBlID0gKGRpc2NvdW50Py50eXBlIHx8ICcnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlLmluY2x1ZGVzKCdvcmRlcicpICYmICF0eXBlLmluY2x1ZGVzKCdjb3Vwb24nKSAmJiAhdHlwZS5pbmNsdWRlcygnc2hpcHBpbmcnKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKHRvdGFsLCBkaXNjb3VudCkgPT4gdG90YWwgKyBOdW1iZXIoZGlzY291bnQ/LmFtb3VudCB8fCAwKSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FydD8uY291cG9uQ29kZSB8fCBjYXJ0Py5jb3Vwb25fY29kZVxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6IE51bWJlcihjYXJ0Py50b3RhbHM/Lm9yZGVyRGlzY291bnQgPz8gY2FydD8udG90YWxzPy5vcmRlcl9kaXNjb3VudCA/PyBjYXJ0Py50b3RhbHM/LnByb21vdGlvbiA/PyAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPYnRpZW5lIMO6bmljYW1lbnRlIGVsIGRlc2N1ZW50byBhcGxpY2FkbyBwb3IgZWwgY3Vww7NuLlxuICAgICAqXG4gICAgICogRGV2dWVsdmUgYG51bGxgIGN1YW5kbyBsYSByZXNwdWVzdGEgbm8gcGVybWl0ZSBpZGVudGlmaWNhciBzdSBpbXBvcnRlLFxuICAgICAqIHBhcmEgcXVlIGVsIGZyb250ZW5kIHB1ZWRhIG1vc3RyYXIgc29sYW1lbnRlIGVsIGPDs2RpZ28uXG4gICAgICovXG4gICAgZ2V0Q291cG9uUHJvbW90aW9uQW1vdW50ID0gKGNhcnQ6IGFueSk6IG51bWJlciB8IG51bGwgPT4ge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoY2FydD8uY2FydERpc2NvdW50cykpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY291cG9uRGlzY291bnRzID0gY2FydC5jYXJ0RGlzY291bnRzLmZpbHRlcihkaXNjb3VudCA9PlxuICAgICAgICAgICAgKGRpc2NvdW50Py50eXBlIHx8ICcnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2NvdXBvbicpXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFjb3Vwb25EaXNjb3VudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb3Vwb25EaXNjb3VudHMucmVkdWNlKCh0b3RhbCwgZGlzY291bnQpID0+IHRvdGFsICsgTnVtYmVyKGRpc2NvdW50Py5hbW91bnQgfHwgMCksIDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9idGllbmUgZWwgc3VidG90YWwgY29tcGF0aWJsZSBjb24gYmFja2VuZHMgbnVldm9zIHkgbGVnYWN5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhcnQgQ2Fycml0byB1IG9yZGVuIGNvbiBgdG90YWxzYC5cbiAgICAgKiBAcmV0dXJucyBgdG90YWxzLnN1YnRvdGFsYCBjdWFuZG8gZXhpc3RlOyBlbiBiYWNrZW5kcyBsZWdhY3kgdXNhIGB0b3RhbHMuaXRlbXNgLlxuICAgICAqL1xuICAgIGdldFN1bW1hcnlTdWJ0b3RhbEFtb3VudCA9IChjYXJ0OiBhbnkpOiBudW1iZXIgPT4ge1xuICAgICAgICBjb25zdCBjYXJ0U3VidG90YWwgPSBjYXJ0Py50b3RhbHM/LmNhcnRTdWJ0b3RhbCA/PyBjYXJ0Py50b3RhbHM/LmNhcnRfc3VidG90YWw7XG4gICAgICAgIGlmIChjYXJ0U3VidG90YWwgIT09IG51bGwgJiYgY2FydFN1YnRvdGFsICE9PSB1bmRlZmluZWQgJiYgY2FydFN1YnRvdGFsICE9PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcihjYXJ0U3VidG90YWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3VidG90YWwgPSBjYXJ0Py50b3RhbHM/LnN1YnRvdGFsO1xuICAgICAgICBpZiAoc3VidG90YWwgIT09IG51bGwgJiYgc3VidG90YWwgIT09IHVuZGVmaW5lZCAmJiBzdWJ0b3RhbCAhPT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIoc3VidG90YWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIE51bWJlcihjYXJ0Py50b3RhbHM/Lml0ZW1zIHx8IDApO1xuICAgIH1cblxuICAgIC8qKiBUb3RhbCBxdWUgZGViZSBtb3N0cmFyIGVsIGNhcnJpdG8vc2lkZWJhciwgZXhjbHV5ZW5kbyBlbnbDrW8gcGVyc2lzdGlkby4gKi9cbiAgICBnZXRDYXJ0VG90YWxBbW91bnQgPSAoY2FydDogYW55KTogbnVtYmVyID0+IHtcbiAgICAgICAgY29uc3QgdG90YWxXaXRob3V0U2hpcHBpbmcgPSBjYXJ0Py50b3RhbHM/LnRvdGFsV2l0aG91dFNoaXBwaW5nID8/IGNhcnQ/LnRvdGFscz8udG90YWxfd2l0aG91dF9zaGlwcGluZztcbiAgICAgICAgaWYgKHRvdGFsV2l0aG91dFNoaXBwaW5nICE9PSBudWxsICYmIHRvdGFsV2l0aG91dFNoaXBwaW5nICE9PSB1bmRlZmluZWQgJiYgdG90YWxXaXRob3V0U2hpcHBpbmcgIT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKHRvdGFsV2l0aG91dFNoaXBwaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBOdW1iZXIoY2FydD8udG90YWxzPy50b3RhbCB8fCAwKTtcbiAgICB9XG5cbiAgICAvKiogSW1wdWVzdG9zIGRlIHByb2R1Y3RvcyBwYXJhIGNhcnJpdG8vc2lkZWJhciwgY29uIGZhbGxiYWNrIGxlZ2FjeS4gKi9cbiAgICBnZXRDYXJ0VGF4ZXNBbW91bnQgPSAoY2FydDogYW55KTogbnVtYmVyID0+IHtcbiAgICAgICAgY29uc3QgY2FydFRheGVzID0gY2FydD8udG90YWxzPy5jYXJ0VGF4ZXMgPz8gY2FydD8udG90YWxzPy5jYXJ0X3RheGVzO1xuICAgICAgICBpZiAoY2FydFRheGVzICE9PSBudWxsICYmIGNhcnRUYXhlcyAhPT0gdW5kZWZpbmVkICYmIGNhcnRUYXhlcyAhPT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIoY2FydFRheGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBOdW1iZXIoY2FydD8udG90YWxzPy50YXhlcyB8fCAwKTtcbiAgICB9XG5cbiAgICAvKiogSW1wdWVzdG9zIGVzcGVjw61maWNvcyBkZWwgY2xpZW50ZSBwYXJhIGNhcnJpdG8vc2lkZWJhciwgY29uIGZhbGxiYWNrIGxlZ2FjeS4gKi9cbiAgICBnZXRDYXJ0Q2xpZW50VGF4ZXNBbW91bnQgPSAoY2FydDogYW55KTogbnVtYmVyID0+IHtcbiAgICAgICAgY29uc3QgY2FydENsaWVudFRheGVzID0gY2FydD8udG90YWxzPy5jYXJ0Q2xpZW50VGF4ZXMgPz8gY2FydD8udG90YWxzPy5jYXJ0X2NsaWVudF90YXhlcztcbiAgICAgICAgaWYgKGNhcnRDbGllbnRUYXhlcyAhPT0gbnVsbCAmJiBjYXJ0Q2xpZW50VGF4ZXMgIT09IHVuZGVmaW5lZCAmJiBjYXJ0Q2xpZW50VGF4ZXMgIT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKGNhcnRDbGllbnRUYXhlcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gTnVtYmVyKGNhcnQ/LnRvdGFscz8uY2xpZW50VGF4ZXMgfHwgMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5kaWNhIHNpIGVsIGJhY2tlbmQgeWEgaW5mb3JtYSBlbCBkZXNnbG9zZSBudWV2byBkZSBwcm9tb2Npb25lcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXJ0IENhcnJpdG8gdSBvcmRlbiBjb24gYHRvdGFsc2AuXG4gICAgICogQHJldHVybnMgYHRydWVgIGN1YW5kbyBleGlzdGUgYHByb21vdGlvbkJyZWFrZG93bi5vcmRlclByb21vdGlvbnNgLlxuICAgICAqL1xuICAgIGhhc09yZGVyUHJvbW90aW9uc0JyZWFrZG93biA9IChjYXJ0OiBhbnkpOiBib29sZWFuID0+IHtcbiAgICAgICAgY29uc3QgYnJlYWtkb3duID0gY2FydD8udG90YWxzPy5wcm9tb3Rpb25CcmVha2Rvd24gfHwgY2FydD8udG90YWxzPy5wcm9tb3Rpb25fYnJlYWtkb3duO1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGJyZWFrZG93biB8fCB7fSwgJ29yZGVyUHJvbW90aW9ucycpXG4gICAgICAgICAgICB8fCBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYnJlYWtkb3duIHx8IHt9LCAnb3JkZXJfcHJvbW90aW9ucycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluZGljYSBzaSBlbCBjYXJyaXRvIHRpZW5lIHVuIGN1cMOzbiBhcGxpY2FkbywgaW5kZXBlbmRpZW50ZW1lbnRlIGRlIGPDs21vIGltcGFjdGUgZW4gZWwgcmVzdW1lbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXJ0IENhcnJpdG8gYWN0dWFsLlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBjdWFuZG8gaGF5IHVuIGPDs2RpZ28gZGUgY3Vww7NuIG8gdW5hIGzDrW5lYSBkZSBkZXNjdWVudG8gZGUgdGlwbyBjdXDDs24uXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIEVzdGUgaGVscGVyIGV2aXRhIGF0YXIgbGEgVUkgZGUgYFF1aXRhciBjdXDDs25gIGFsIG1vbnRvIGRlIGRlc2N1ZW50b3MgZGUgb3JkZW4uXG4gICAgICogVW4gY3Vww7NuIHB1ZWRlIGFmZWN0YXIgcHJvbW9jaW9uZXMgdW5pdGFyaWFzIHkgZGVqYXIgYG9yZGVyUHJvbW90aW9ucyA9IDBgLlxuICAgICAqL1xuICAgIGhhc0FwcGxpZWRDb3Vwb24gPSAoY2FydDogYW55KTogYm9vbGVhbiA9PiB7XG4gICAgICAgIGlmIChCb29sZWFuKGNhcnQ/LmNvdXBvbkNvZGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGNhcnQ/LmNhcnREaXNjb3VudHMpXG4gICAgICAgICAgICAmJiBjYXJ0LmNhcnREaXNjb3VudHMuc29tZShkaXNjb3VudCA9PiAoZGlzY291bnQ/LnR5cGUgfHwgJycpLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ2NvdXBvbicpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbmRpY2Egc2kgZWwgY2Fycml0byB0aWVuZSB1bmEgcHJvbW9jacOzbiBhc29jaWFkYSBhbCBlbnbDrW8uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2FydCBDYXJyaXRvIGFjdHVhbC5cbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgY3VhbmRvIGFsZ3VuYSBsw61uZWEgZGUgZGVzY3VlbnRvIGNvcnJlc3BvbmRlIGEgc2hpcHBpbmcuXG4gICAgICovXG4gICAgaGFzU2hpcHBpbmdQcm9tb3Rpb24gPSAoY2FydDogYW55KTogYm9vbGVhbiA9PlxuICAgICAgICBBcnJheS5pc0FycmF5KGNhcnQ/LmNhcnREaXNjb3VudHMpXG4gICAgICAgICAgICAmJiBjYXJ0LmNhcnREaXNjb3VudHMuc29tZShkaXNjb3VudCA9PiB0aGlzLmZvcm1hdFR5cGUoKGRpc2NvdW50Py50eXBlIHx8ICcnKS50b1N0cmluZygpKSA9PT0gJ3NoaXBtZW50Jyk7XG5cbiAgICAvKipcbiAgICAgKiBEZXZ1ZWx2ZSBlbCBtb250byBlZmVjdGl2byBkZSB1bmEgbMOtbmVhIGRlIGRlc2N1ZW50by9wcm9tb2Npw7NuLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRpc2NvdW50IEzDrW5lYSBjcnVkYSBkZSBkZXNjdWVudG8gZGVsIGJhY2tlbmQuXG4gICAgICogQHBhcmFtIGNhcnQgQ2Fycml0byBhc29jaWFkby5cbiAgICAgKiBAcmV0dXJucyBNb250byBxdWUgZGViZSBtb3N0cmFyc2UgZW4gVUkuXG4gICAgICovXG4gICAgZ2V0QW1vdW50ID0gKGRpc2NvdW50LCBjYXJ0KTogbnVtYmVyID0+IHtcbiAgICAgICAgaWYgKGRpc2NvdW50LnR5cGUgIT0gJ3NoaXBtZW50JykgcmV0dXJuIGRpc2NvdW50LmFtb3VudDtcbiAgICAgICAgcmV0dXJuIGNhcnQudG90YWxzLnNoaXBwaW5nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhvbW9sb2dhIHRpcG9zIGNydWRvcyBkZWwgYmFja2VuZCBhbCBjb25qdW50byBkZSB0aXBvcyB1c2FkbyBwb3IgY2hlY2tvdXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdHlwZSBUaXBvIGNydWRvIChgb3JkZXJfcHJvbW90aW9uYCwgYG9yZGVyX2NvdXBvbl9wcm9tb3Rpb25gLCBldGMuKS5cbiAgICAgKiBAcmV0dXJucyBUaXBvIG5vcm1hbGl6YWRvIGNvbnN1bWlkbyBwb3IgbG9zIGNvbXBvbmVudGVzIGRlbCBjb3JlLlxuICAgICAqL1xuICAgIGZvcm1hdFR5cGUgPSAodHlwZTogc3RyaW5nKTogQ2hlY2tvdXREYXRhVHlwZSA9PiB7XG4gICAgICAgIGxldCByZXN1bHQ7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnb3JkZXJfcHJvbW90aW9uJzogcmVzdWx0ID0gJ2Rpc2NvdW50JzsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvcmRlcl9zaGlwcGluZ19wcm9tb3Rpb24nOiByZXN1bHQgPSAnc2hpcG1lbnQnOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ29yZGVyX2NvdXBvbl9wcm9tb3Rpb24nOiByZXN1bHQgPSAnY291cG9uJzsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvcmRlcl91bml0X3Byb21vdGlvbic6IHJlc3VsdCA9ICdkaXNjb3VudCc7IGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgICFyZXN1bHQgJiYgKHJlc3VsdCA9IHR5cGUuaW5jbHVkZXMoJ3Byb21vdGlvbicpIHx8IHR5cGUuaW5jbHVkZXMoJ2Rpc2NvdW50JykgPyAnZGlzY291bnQnIDogdHlwZSApXG4gICAgICAgIHJldHVybiByZXN1bHQgfHwgdHlwZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG5vcm1hbGl6ZUFtb3VudCA9ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IG51bWJlciB8IG51bGwgPT4ge1xuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IE51bWJlcih2YWx1ZSk7XG4gICAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUobm9ybWFsaXplZCkgPyBub3JtYWxpemVkIDogbnVsbDtcbiAgICB9XG59XG4iXX0=
@@ -6,7 +6,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { Injectable } from '@angular/core';
8
8
  import * as i0 from "@angular/core";
9
- import * as i1 from "../../public-api";
10
9
  let PricePresentationService = class PricePresentationService {
11
10
  /** Resuelve únicamente qué valor presentar; no calcula impuestos. */
12
11
  getProductPricePresentation(variant, channel) {
@@ -119,9 +118,9 @@ let PricePresentationService = class PricePresentationService {
119
118
  && this.isValue(value.subtotal);
120
119
  }
121
120
  };
122
- PricePresentationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PricePresentationService_Factory() { return new i1.PricePresentationService(); }, token: i1.PricePresentationService, providedIn: "root" });
121
+ PricePresentationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PricePresentationService_Factory() { return new PricePresentationService(); }, token: PricePresentationService, providedIn: "root" });
123
122
  PricePresentationService = __decorate([
124
123
  Injectable({ providedIn: 'root' })
125
124
  ], PricePresentationService);
126
125
  export { PricePresentationService };
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtcHJlc2VudGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvcHJpY2UtcHJlc2VudGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBOEMzQyxJQUFhLHdCQUF3QixHQUFyQyxNQUFhLHdCQUF3QjtJQUNqQyxxRUFBcUU7SUFDckUsMkJBQTJCLENBQ3ZCLE9BQTZCLEVBQzdCLE9BQXVCO1FBRXZCLE1BQU0sT0FBTyxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDO1FBRTNDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDN0M7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCw0QkFBNEIsQ0FDeEIsSUFBb0IsRUFDcEIsT0FBdUIsRUFDdkIsYUFBK0I7O1FBRS9CLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRTdDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sU0FBUyxHQUFHLE9BQUEsT0FBTywwQ0FBRSwrQkFBK0IsTUFBSyxJQUFJLENBQUM7WUFDcEUsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUN4QyxNQUFNLE9BQU8scUJBQUcsSUFBSSwwQ0FBRSxPQUFPLDBDQUFFLFFBQVEsMENBQUcsQ0FBQyxDQUFDLENBQUM7WUFDN0MsTUFBTSxjQUFjLEdBQUcs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cG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYW5uZWwgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NoYW5uZWwnO1xuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnQsIFByb2R1Y3RWYXJpYW50UHJpY2luZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvcHJvZHVjdCc7XG5pbXBvcnQgeyBDYXJ0SXRlbSwgQ2FydEl0ZW1QcmljaW5nLCBDYXJ0TGluZVByaWNpbmcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NhcnQtaXRlbSc7XG5cbmV4cG9ydCB0eXBlIFByaWNlUHJlc2VudGF0aW9uVmFsdWUgPSBudW1iZXIgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2VQcmVzZW50YXRpb24ge1xuICAgIHByaW1hcnk6IFByaWNlUHJlc2VudGF0aW9uVmFsdWU7XG4gICAgcHJldmlvdXM6IFByaWNlUHJlc2VudGF0aW9uVmFsdWUgfCBudWxsO1xuICAgIHNlY29uZGFyeTogbnVtYmVyIHwgbnVsbDtcbiAgICBoYXNUYXg6IGJvb2xlYW47XG4gICAgdGF4OiBudW1iZXI7XG4gICAgdGF4UmF0ZTogbnVtYmVyIHwgbnVsbDtcbiAgICBpbmNsdWRlZEluUHJpY2U6IGJvb2xlYW4gfCBudWxsO1xuICAgIHNvdXJjZTogJ3ByaWNpbmcnIHwgJ2xlZ2FjeSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FydEl0ZW1QcmljZVByZXNlbnRhdGlvbiB7XG4gICAgdW5pdFByaWNlOiBudW1iZXI7XG4gICAgZGlzY291bnQ6IG51bWJlcjtcbiAgICBzdWJ0b3RhbDogbnVtYmVyO1xuICAgIHByZXZpb3VzOiBudW1iZXIgfCBudWxsO1xuICAgIHNlY29uZGFyeTogbnVtYmVyIHwgbnVsbDtcbiAgICBoYXNUYXg6IGJvb2xlYW47XG4gICAgdGF4OiBudW1iZXI7XG4gICAgdGF4UmF0ZTogbnVtYmVyIHwgbnVsbDtcbiAgICBpbmNsdWRlZEluUHJpY2U6IGJvb2xlYW4gfCBudWxsO1xuICAgIHNvdXJjZTogJ2xpbmVQcmljaW5nJyB8ICdsZWdhY3knO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhcnRTdW1tYXJ5UHJpY2VQcmVzZW50YXRpb24ge1xuICAgIHByb2R1Y3RzQmVmb3JlRGlzY291bnRzOiBudW1iZXI7XG4gICAgbGluZURpc2NvdW50czogbnVtYmVyO1xuICAgIHN1YnRvdGFsOiBudW1iZXI7XG4gICAgb3JkZXJEaXNjb3VudDogbnVtYmVyO1xuICAgIGNvdXBvbkRpc2NvdW50OiBudW1iZXIgfCBudWxsO1xuICAgIHRheGVzOiBudW1iZXI7XG4gICAgY2xpZW50VGF4ZXM6IG51bWJlcjtcbiAgICBzaGlwcGluZzogbnVtYmVyIHwgbnVsbDtcbiAgICB0b3RhbDogbnVtYmVyO1xuICAgIHRheGVzSW5jbHVkZWRJblRvdGFsOiBib29sZWFuO1xuICAgIHNvdXJjZTogJ2xpbmVQcmljaW5nJyB8ICdsZWdhY3knO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFByaWNlUHJlc2VudGF0aW9uU2VydmljZSB7XG4gICAgLyoqIFJlc3VlbHZlIMO6bmljYW1lbnRlIHF1w6kgdmFsb3IgcHJlc2VudGFyOyBubyBjYWxjdWxhIGltcHVlc3Rvcy4gKi9cbiAgICBnZXRQcm9kdWN0UHJpY2VQcmVzZW50YXRpb24oXG4gICAgICAgIHZhcmlhbnQ6IFByb2R1Y3RWYXJpYW50IHwgYW55LFxuICAgICAgICBjaGFubmVsPzogQ2hhbm5lbCB8IGFueVxuICAgICk6IFByaWNlUHJlc2VudGF0aW9uIHtcbiAgICAgICAgY29uc3QgcHJpY2luZyA9IHZhcmlhbnQgJiYgdmFyaWFudC5wcmljaW5nO1xuXG4gICAgICAgIGlmICh0aGlzLmlzUHJpY2luZ0NvbnRyYWN0KHByaWNpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mcm9tUHJpY2luZyhwcmljaW5nLCBjaGFubmVsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmZyb21MZWdhY3kodmFyaWFudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzdWVsdmUgbG9zIGltcG9ydGVzIHZpc2libGVzIGRlIHVuYSBsw61uZWEgc2luIGNvbnZlcnRpciBuaSByZWNhbGN1bGFyXG4gICAgICogdmFsb3JlcyBmaXNjYWxlcy4gYGxlZ2FjeVByaWNpbmdgIGRlYmUgc2VyIGVsIHJlc3VsdGFkbyB5YSBub3JtYWxpemFkb1xuICAgICAqIHBvciBDYXJ0U2VydmljZSBwYXJhIGNvbnNlcnZhciBleGFjdGFtZW50ZSBlbCBmYWxsYmFjayBoaXN0w7NyaWNvLlxuICAgICAqL1xuICAgIGdldENhcnRJdGVtUHJpY2VQcmVzZW50YXRpb24oXG4gICAgICAgIGl0ZW06IENhcnRJdGVtIHwgYW55LFxuICAgICAgICBjaGFubmVsPzogQ2hhbm5lbCB8IGFueSxcbiAgICAgICAgbGVnYWN5UHJpY2luZz86IENhcnRJdGVtUHJpY2luZ1xuICAgICk6IENhcnRJdGVtUHJpY2VQcmVzZW50YXRpb24ge1xuICAgICAgICBjb25zdCBsaW5lUHJpY2luZyA9IGl0ZW0gJiYgaXRlbS5saW5lUHJpY2luZztcblxuICAgICAgICBpZiAodGhpcy5pc0NhcnRMaW5lUHJpY2luZyhsaW5lUHJpY2luZykpIHtcbiAgICAgICAgICAgIGNvbnN0IHNob3dHcm9zcyA9IGNoYW5uZWw/LnNob3dQcmljZVdpdGhUYXhlc1doaWxlQnJvd3NpbmcgPT09IHRydWU7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBzaG93R3Jvc3MgPyAnZ3Jvc3MnIDogJ25ldCc7XG4gICAgICAgICAgICBjb25zdCB2YXJpYW50ID0gaXRlbT8ucHJvZHVjdD8udmFyaWFudHM/LlswXTtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhbnRQcmljaW5nID0gdmFyaWFudCAmJiB2YXJpYW50LnByaWNpbmc7XG4gICAgICAgICAgICBjb25zdCBwcm9kdWN0UHJlc2VudGF0aW9uID0gdGhpcy5pc1ByaWNpbmdDb250cmFjdCh2YXJpYW50UHJpY2luZylcbiAgICAgICAgICAgICAgICA/IHRoaXMuZnJvbVByaWNpbmcodmFyaWFudFByaWNpbmcsIGNoYW5uZWwpXG4gICAgICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHVuaXRQcmljZTogbGluZVByaWNpbmcudW5pdFtrZXldLFxuICAgICAgICAgICAgICAgIGRpc2NvdW50OiBsaW5lUHJpY2luZy5kaXNjb3VudFtrZXldLFxuICAgICAgICAgICAgICAgIHN1YnRvdGFsOiBsaW5lUHJpY2luZy5zdWJ0b3RhbFtrZXldLFxuICAgICAgICAgICAgICAgIHByZXZpb3VzOiBwcm9kdWN0UHJlc2VudGF0aW9uID8gcHJvZHVjdFByZXNlbnRhdGlvbi5wcmV2aW91cyBhcyBudW1iZXIgfCBudWxsIDogbnVsbCxcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnk6IHByb2R1Y3RQcmVzZW50YXRpb24gPyBwcm9kdWN0UHJlc2VudGF0aW9uLnNlY29uZGFyeSA6IG51bGwsXG4gICAgICAgICAgICAgICAgaGFzVGF4OiBwcm9kdWN0UHJlc2VudGF0aW9uID8gcHJvZHVjdFByZXNlbnRhdGlvbi5oYXNUYXggOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB0YXg6IGxpbmVQcmljaW5nLnN1YnRvdGFsLnRheCxcbiAgICAgICAgICAgICAgICB0YXhSYXRlOiBwcm9kdWN0UHJlc2VudGF0aW9uID8gcHJvZHVjdFByZXNlbnRhdGlvbi50YXhSYXRlIDogbnVsbCxcbiAgICAgICAgICAgICAgICBpbmNsdWRlZEluUHJpY2U6IHByb2R1Y3RQcmVzZW50YXRpb24gPyBwcm9kdWN0UHJlc2VudGF0aW9uLmluY2x1ZGVkSW5QcmljZSA6IG51bGwsXG4gICAgICAgICAgICAgICAgc291cmNlOiAnbGluZVByaWNpbmcnXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJpY2luZyA9IGxlZ2FjeVByaWNpbmcgfHwgaXRlbT8ucHJpY2luZztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHVuaXRQcmljZTogTnVtYmVyKHByaWNpbmc/LmZpbmFsUHJpY2UgfHwgMCksXG4gICAgICAgICAgICBkaXNjb3VudDogTnVtYmVyKHByaWNpbmc/LnVuaXRQcm9tb3Rpb25Ub3RhbCB8fCAwKSxcbiAgICAgICAgICAgIHN1YnRvdGFsOiBOdW1iZXIoaXRlbT8uc3VidG90YWwgPz8gaXRlbT8udG90YWwgPz8gMCksXG4gICAgICAgICAgICBwcmV2aW91czogcHJpY2luZz8uc3RyaWtlUHJpY2UgIT0gbnVsbCA/IE51bWJlcihwcmljaW5nLnN0cmlrZVByaWNlKSA6IG51bGwsXG4gICAgICAgICAgICBzZWNvbmRhcnk6IG51bGwsXG4gICAgICAgICAgICBoYXNUYXg6IGZhbHNlLFxuICAgICAgICAgICAgdGF4OiAwLFxuICAgICAgICAgICAgdGF4UmF0ZTogbnVsbCxcbiAgICAgICAgICAgIGluY2x1ZGVkSW5QcmljZTogbnVsbCxcbiAgICAgICAgICAgIHNvdXJjZTogJ2xlZ2FjeSdcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZyb21QcmljaW5nKHByaWNpbmc6IFByb2R1Y3RWYXJpYW50UHJpY2luZywgY2hhbm5lbD86IENoYW5uZWwgfCBhbnkpOiBQcmljZVByZXNlbnRhdGlvbiB7XG4gICAgICAgIGNvbnN0IHNob3dHcm9zcyA9IGNoYW5uZWw/LnNob3dQcmljZVdpdGhUYXhlc1doaWxlQnJvd3NpbmcgPT09IHRydWU7XG4gICAgICAgIGNvbnN0IGhhc1RheCA9IHByaWNpbmcudGF4Lmhhc1RheCA9PT0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJpbWFyeTogc2hvd0dyb3NzID8gcHJpY2luZy5jdXJyZW50Lmdyb3NzIDogcHJpY2luZy5jdXJyZW50Lm5ldCxcbiAgICAgICAgICAgIHByZXZpb3VzOiBwcmljaW5nLnByZXZpb3VzXG4gICAgICAgICAgICAgICAgPyAoc2hvd0dyb3NzID8gcHJpY2luZy5wcmV2aW91cy5ncm9zcyA6IHByaWNpbmcucHJldmlvdXMubmV0KVxuICAgICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICAgIHNlY29uZGFyeTogc2hvd0dyb3NzICYmIGNoYW5uZWw/LnNob3dUYXhMZWdlbmQgPT09IHRydWUgJiYgaGFzVGF4XG4gICAgICAgICAgICAgICAgPyBwcmljaW5nLmN1cnJlbnQubmV0XG4gICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgaGFzVGF4LFxuICAgICAgICAgICAgdGF4OiBwcmljaW5nLmN1cnJlbnQudGF4LFxuICAgICAgICAgICAgdGF4UmF0ZTogcHJpY2luZy50YXgucmF0ZSxcbiAgICAgICAgICAgIGluY2x1ZGVkSW5QcmljZTogcHJpY2luZy50YXguaW5jbHVkZWRJblByaWNlLFxuICAgICAgICAgICAgc291cmNlOiAncHJpY2luZydcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZyb21MZWdhY3kodmFyaWFudDogUHJvZHVjdFZhcmlhbnQgfCBhbnkpOiBQcmljZVByZXNlbnRhdGlvbiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSB2YXJpYW50ICYmICh2YXJpYW50LnNhbGVwcmljZSB8fCB2YXJpYW50LnByaWNlKTtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSB2YXJpYW50ICYmIHZhcmlhbnQucHJpY2U7XG4gICAgICAgIGNvbnN0IGhhc1ByZXZpb3VzID0gY3VycmVudCAhPSBudWxsICYmIG9yaWdpbmFsICE9IG51bGwgJiYgY3VycmVudCAhPT0gb3JpZ2luYWw7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByaW1hcnk6IHRoaXMubGVnYWN5VmFsdWUoY3VycmVudCksXG4gICAgICAgICAgICBwcmV2aW91czogaGFzUHJldmlvdXMgPyB0aGlzLmxlZ2FjeVZhbHVlKG9yaWdpbmFsKSA6IG51bGwsXG4gICAgICAgICAgICBzZWNvbmRhcnk6IG51bGwsXG4gICAgICAgICAgICBoYXNUYXg6IGZhbHNlLFxuICAgICAgICAgICAgdGF4OiAwLFxuICAgICAgICAgICAgdGF4UmF0ZTogbnVsbCxcbiAgICAgICAgICAgIGluY2x1ZGVkSW5QcmljZTogbnVsbCxcbiAgICAgICAgICAgIHNvdXJjZTogJ2xlZ2FjeSdcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxlZ2FjeVZhbHVlKHZhbHVlOiBhbnkpOiBQcmljZVByZXNlbnRhdGlvblZhbHVlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT09ICcnID8gMCA6IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNQcmljaW5nQ29udHJhY3QocHJpY2luZzogYW55KTogcHJpY2luZyBpcyBQcm9kdWN0VmFyaWFudFByaWNpbmcge1xuICAgICAgICByZXR1cm4gISFwcmljaW5nXG4gICAgICAgICAgICAmJiB0aGlzLmlzVmFsdWUocHJpY2luZy5jdXJyZW50KVxuICAgICAgICAgICAgJiYgISFwcmljaW5nLnRheFxuICAgICAgICAgICAgJiYgdHlwZW9mIHByaWNpbmcudGF4Lmhhc1RheCA9PT0gJ2Jvb2xlYW4nXG4gICAgICAgICAgICAmJiAocHJpY2luZy5wcmV2aW91cyA9PT0gbnVsbCB8fCBwcmljaW5nLnByZXZpb3VzID09PSB1bmRlZmluZWQgfHwgdGhpcy5pc1ZhbHVlKHByaWNpbmcucHJldmlvdXMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsdWUodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF2YWx1ZVxuICAgICAgICAgICAgJiYgdGhpcy5pc0Zpbml0ZU51bWJlcih2YWx1ZS5uZXQpXG4gICAgICAgICAgICAmJiB0aGlzLmlzRmluaXRlTnVtYmVyKHZhbHVlLnRheClcbiAgICAgICAgICAgICYmIHRoaXMuaXNGaW5pdGVOdW1iZXIodmFsdWUuZ3Jvc3MpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGaW5pdGVOdW1iZXIodmFsdWU6IGFueSk6IHZhbHVlIGlzIG51bWJlciB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIGlzRmluaXRlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQ2FydExpbmVQcmljaW5nKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDYXJ0TGluZVByaWNpbmcge1xuICAgICAgICByZXR1cm4gISF2YWx1ZVxuICAgICAgICAgICAgJiYgdGhpcy5pc1ZhbHVlKHZhbHVlLnVuaXQpXG4gICAgICAgICAgICAmJiB0aGlzLmlzVmFsdWUodmFsdWUuZGlzY291bnQpXG4gICAgICAgICAgICAmJiB0aGlzLmlzVmFsdWUodmFsdWUuc3VidG90YWwpO1xuICAgIH1cblxufVxuIl19
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtcHJlc2VudGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvcHJpY2UtcHJlc2VudGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUE4QzNDLElBQWEsd0JBQXdCLEdBQXJDLE1BQWEsd0JBQXdCO0lBQ2pDLHFFQUFxRTtJQUNyRSwyQkFBMkIsQ0FDdkIsT0FBNkIsRUFDN0IsT0FBdUI7UUFFdkIsTUFBTSxPQUFPLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFFM0MsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDakMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM3QztRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILDRCQUE0QixDQUN4QixJQUFvQixFQUNwQixPQUF1QixFQUN2QixhQUErQjs7UUFFL0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFN0MsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDckMsTUFBTSxTQUFTLEdBQUcsT0FBQSxPQUFPLDBDQUFFLCtCQUErQixNQUFLLElBQUksQ0FBQztZQUNwRSxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3hDLE1BQU0sT0FBTyxxQkFBRyxJQUFJLDBDQUFFLE9BQU8sMENBQUUsUUFBUSwwQ0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3QyxNQUFNLGNBQWMsR0FBRyxP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b3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhbm5lbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvY2hhbm5lbCc7XG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudCwgUHJvZHVjdFZhcmlhbnRQcmljaW5nIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wcm9kdWN0JztcbmltcG9ydCB7IENhcnRJdGVtLCBDYXJ0SXRlbVByaWNpbmcsIENhcnRMaW5lUHJpY2luZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvY2FydC1pdGVtJztcblxuZXhwb3J0IHR5cGUgUHJpY2VQcmVzZW50YXRpb25WYWx1ZSA9IG51bWJlciB8IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBQcmljZVByZXNlbnRhdGlvbiB7XG4gICAgcHJpbWFyeTogUHJpY2VQcmVzZW50YXRpb25WYWx1ZTtcbiAgICBwcmV2aW91czogUHJpY2VQcmVzZW50YXRpb25WYWx1ZSB8IG51bGw7XG4gICAgc2Vjb25kYXJ5OiBudW1iZXIgfCBudWxsO1xuICAgIGhhc1RheDogYm9vbGVhbjtcbiAgICB0YXg6IG51bWJlcjtcbiAgICB0YXhSYXRlOiBudW1iZXIgfCBudWxsO1xuICAgIGluY2x1ZGVkSW5QcmljZTogYm9vbGVhbiB8IG51bGw7XG4gICAgc291cmNlOiAncHJpY2luZycgfCAnbGVnYWN5Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXJ0SXRlbVByaWNlUHJlc2VudGF0aW9uIHtcbiAgICB1bml0UHJpY2U6IG51bWJlcjtcbiAgICBkaXNjb3VudDogbnVtYmVyO1xuICAgIHN1YnRvdGFsOiBudW1iZXI7XG4gICAgcHJldmlvdXM6IG51bWJlciB8IG51bGw7XG4gICAgc2Vjb25kYXJ5OiBudW1iZXIgfCBudWxsO1xuICAgIGhhc1RheDogYm9vbGVhbjtcbiAgICB0YXg6IG51bWJlcjtcbiAgICB0YXhSYXRlOiBudW1iZXIgfCBudWxsO1xuICAgIGluY2x1ZGVkSW5QcmljZTogYm9vbGVhbiB8IG51bGw7XG4gICAgc291cmNlOiAnbGluZVByaWNpbmcnIHwgJ2xlZ2FjeSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FydFN1bW1hcnlQcmljZVByZXNlbnRhdGlvbiB7XG4gICAgcHJvZHVjdHNCZWZvcmVEaXNjb3VudHM6IG51bWJlcjtcbiAgICBsaW5lRGlzY291bnRzOiBudW1iZXI7XG4gICAgc3VidG90YWw6IG51bWJlcjtcbiAgICBvcmRlckRpc2NvdW50OiBudW1iZXI7XG4gICAgY291cG9uRGlzY291bnQ6IG51bWJlciB8IG51bGw7XG4gICAgdGF4ZXM6IG51bWJlcjtcbiAgICBjbGllbnRUYXhlczogbnVtYmVyO1xuICAgIHNoaXBwaW5nOiBudW1iZXIgfCBudWxsO1xuICAgIHRvdGFsOiBudW1iZXI7XG4gICAgdGF4ZXNJbmNsdWRlZEluVG90YWw6IGJvb2xlYW47XG4gICAgc291cmNlOiAnbGluZVByaWNpbmcnIHwgJ2xlZ2FjeSc7XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUHJpY2VQcmVzZW50YXRpb25TZXJ2aWNlIHtcbiAgICAvKiogUmVzdWVsdmUgw7puaWNhbWVudGUgcXXDqSB2YWxvciBwcmVzZW50YXI7IG5vIGNhbGN1bGEgaW1wdWVzdG9zLiAqL1xuICAgIGdldFByb2R1Y3RQcmljZVByZXNlbnRhdGlvbihcbiAgICAgICAgdmFyaWFudDogUHJvZHVjdFZhcmlhbnQgfCBhbnksXG4gICAgICAgIGNoYW5uZWw/OiBDaGFubmVsIHwgYW55XG4gICAgKTogUHJpY2VQcmVzZW50YXRpb24ge1xuICAgICAgICBjb25zdCBwcmljaW5nID0gdmFyaWFudCAmJiB2YXJpYW50LnByaWNpbmc7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNQcmljaW5nQ29udHJhY3QocHJpY2luZykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZyb21QcmljaW5nKHByaWNpbmcsIGNoYW5uZWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZnJvbUxlZ2FjeSh2YXJpYW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXN1ZWx2ZSBsb3MgaW1wb3J0ZXMgdmlzaWJsZXMgZGUgdW5hIGzDrW5lYSBzaW4gY29udmVydGlyIG5pIHJlY2FsY3VsYXJcbiAgICAgKiB2YWxvcmVzIGZpc2NhbGVzLiBgbGVnYWN5UHJpY2luZ2AgZGViZSBzZXIgZWwgcmVzdWx0YWRvIHlhIG5vcm1hbGl6YWRvXG4gICAgICogcG9yIENhcnRTZXJ2aWNlIHBhcmEgY29uc2VydmFyIGV4YWN0YW1lbnRlIGVsIGZhbGxiYWNrIGhpc3TDs3JpY28uXG4gICAgICovXG4gICAgZ2V0Q2FydEl0ZW1QcmljZVByZXNlbnRhdGlvbihcbiAgICAgICAgaXRlbTogQ2FydEl0ZW0gfCBhbnksXG4gICAgICAgIGNoYW5uZWw/OiBDaGFubmVsIHwgYW55LFxuICAgICAgICBsZWdhY3lQcmljaW5nPzogQ2FydEl0ZW1QcmljaW5nXG4gICAgKTogQ2FydEl0ZW1QcmljZVByZXNlbnRhdGlvbiB7XG4gICAgICAgIGNvbnN0IGxpbmVQcmljaW5nID0gaXRlbSAmJiBpdGVtLmxpbmVQcmljaW5nO1xuXG4gICAgICAgIGlmICh0aGlzLmlzQ2FydExpbmVQcmljaW5nKGxpbmVQcmljaW5nKSkge1xuICAgICAgICAgICAgY29uc3Qgc2hvd0dyb3NzID0gY2hhbm5lbD8uc2hvd1ByaWNlV2l0aFRheGVzV2hpbGVCcm93c2luZyA9PT0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IHNob3dHcm9zcyA/ICdncm9zcycgOiAnbmV0JztcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhbnQgPSBpdGVtPy5wcm9kdWN0Py52YXJpYW50cz8uWzBdO1xuICAgICAgICAgICAgY29uc3QgdmFyaWFudFByaWNpbmcgPSB2YXJpYW50ICYmIHZhcmlhbnQucHJpY2luZztcbiAgICAgICAgICAgIGNvbnN0IHByb2R1Y3RQcmVzZW50YXRpb24gPSB0aGlzLmlzUHJpY2luZ0NvbnRyYWN0KHZhcmlhbnRQcmljaW5nKVxuICAgICAgICAgICAgICAgID8gdGhpcy5mcm9tUHJpY2luZyh2YXJpYW50UHJpY2luZywgY2hhbm5lbClcbiAgICAgICAgICAgICAgICA6IG51bGw7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdW5pdFByaWNlOiBsaW5lUHJpY2luZy51bml0W2tleV0sXG4gICAgICAgICAgICAgICAgZGlzY291bnQ6IGxpbmVQcmljaW5nLmRpc2NvdW50W2tleV0sXG4gICAgICAgICAgICAgICAgc3VidG90YWw6IGxpbmVQcmljaW5nLnN1YnRvdGFsW2tleV0sXG4gICAgICAgICAgICAgICAgcHJldmlvdXM6IHByb2R1Y3RQcmVzZW50YXRpb24gPyBwcm9kdWN0UHJlc2VudGF0aW9uLnByZXZpb3VzIGFzIG51bWJlciB8IG51bGwgOiBudWxsLFxuICAgICAgICAgICAgICAgIHNlY29uZGFyeTogcHJvZHVjdFByZXNlbnRhdGlvbiA/IHByb2R1Y3RQcmVzZW50YXRpb24uc2Vjb25kYXJ5IDogbnVsbCxcbiAgICAgICAgICAgICAgICBoYXNUYXg6IHByb2R1Y3RQcmVzZW50YXRpb24gPyBwcm9kdWN0UHJlc2VudGF0aW9uLmhhc1RheCA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHRheDogbGluZVByaWNpbmcuc3VidG90YWwudGF4LFxuICAgICAgICAgICAgICAgIHRheFJhdGU6IHByb2R1Y3RQcmVzZW50YXRpb24gPyBwcm9kdWN0UHJlc2VudGF0aW9uLnRheFJhdGUgOiBudWxsLFxuICAgICAgICAgICAgICAgIGluY2x1ZGVkSW5QcmljZTogcHJvZHVjdFByZXNlbnRhdGlvbiA/IHByb2R1Y3RQcmVzZW50YXRpb24uaW5jbHVkZWRJblByaWNlIDogbnVsbCxcbiAgICAgICAgICAgICAgICBzb3VyY2U6ICdsaW5lUHJpY2luZydcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcmljaW5nID0gbGVnYWN5UHJpY2luZyB8fCBpdGVtPy5wcmljaW5nO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdW5pdFByaWNlOiBOdW1iZXIocHJpY2luZz8uZmluYWxQcmljZSB8fCAwKSxcbiAgICAgICAgICAgIGRpc2NvdW50OiBOdW1iZXIocHJpY2luZz8udW5pdFByb21vdGlvblRvdGFsIHx8IDApLFxuICAgICAgICAgICAgc3VidG90YWw6IE51bWJlcihpdGVtPy5zdWJ0b3RhbCA/PyBpdGVtPy50b3RhbCA/PyAwKSxcbiAgICAgICAgICAgIHByZXZpb3VzOiBwcmljaW5nPy5zdHJpa2VQcmljZSAhPSBudWxsID8gTnVtYmVyKHByaWNpbmcuc3RyaWtlUHJpY2UpIDogbnVsbCxcbiAgICAgICAgICAgIHNlY29uZGFyeTogbnVsbCxcbiAgICAgICAgICAgIGhhc1RheDogZmFsc2UsXG4gICAgICAgICAgICB0YXg6IDAsXG4gICAgICAgICAgICB0YXhSYXRlOiBudWxsLFxuICAgICAgICAgICAgaW5jbHVkZWRJblByaWNlOiBudWxsLFxuICAgICAgICAgICAgc291cmNlOiAnbGVnYWN5J1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZnJvbVByaWNpbmcocHJpY2luZzogUHJvZHVjdFZhcmlhbnRQcmljaW5nLCBjaGFubmVsPzogQ2hhbm5lbCB8IGFueSk6IFByaWNlUHJlc2VudGF0aW9uIHtcbiAgICAgICAgY29uc3Qgc2hvd0dyb3NzID0gY2hhbm5lbD8uc2hvd1ByaWNlV2l0aFRheGVzV2hpbGVCcm93c2luZyA9PT0gdHJ1ZTtcbiAgICAgICAgY29uc3QgaGFzVGF4ID0gcHJpY2luZy50YXguaGFzVGF4ID09PSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcmltYXJ5OiBzaG93R3Jvc3MgPyBwcmljaW5nLmN1cnJlbnQuZ3Jvc3MgOiBwcmljaW5nLmN1cnJlbnQubmV0LFxuICAgICAgICAgICAgcHJldmlvdXM6IHByaWNpbmcucHJldmlvdXNcbiAgICAgICAgICAgICAgICA/IChzaG93R3Jvc3MgPyBwcmljaW5nLnByZXZpb3VzLmdyb3NzIDogcHJpY2luZy5wcmV2aW91cy5uZXQpXG4gICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgc2Vjb25kYXJ5OiBzaG93R3Jvc3MgJiYgY2hhbm5lbD8uc2hvd1RheExlZ2VuZCA9PT0gdHJ1ZSAmJiBoYXNUYXhcbiAgICAgICAgICAgICAgICA/IHByaWNpbmcuY3VycmVudC5uZXRcbiAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICBoYXNUYXgsXG4gICAgICAgICAgICB0YXg6IHByaWNpbmcuY3VycmVudC50YXgsXG4gICAgICAgICAgICB0YXhSYXRlOiBwcmljaW5nLnRheC5yYXRlLFxuICAgICAgICAgICAgaW5jbHVkZWRJblByaWNlOiBwcmljaW5nLnRheC5pbmNsdWRlZEluUHJpY2UsXG4gICAgICAgICAgICBzb3VyY2U6ICdwcmljaW5nJ1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZnJvbUxlZ2FjeSh2YXJpYW50OiBQcm9kdWN0VmFyaWFudCB8IGFueSk6IFByaWNlUHJlc2VudGF0aW9uIHtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IHZhcmlhbnQgJiYgKHZhcmlhbnQuc2FsZXByaWNlIHx8IHZhcmlhbnQucHJpY2UpO1xuICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHZhcmlhbnQgJiYgdmFyaWFudC5wcmljZTtcbiAgICAgICAgY29uc3QgaGFzUHJldmlvdXMgPSBjdXJyZW50ICE9IG51bGwgJiYgb3JpZ2luYWwgIT0gbnVsbCAmJiBjdXJyZW50ICE9PSBvcmlnaW5hbDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJpbWFyeTogdGhpcy5sZWdhY3lWYWx1ZShjdXJyZW50KSxcbiAgICAgICAgICAgIHByZXZpb3VzOiBoYXNQcmV2aW91cyA/IHRoaXMubGVnYWN5VmFsdWUob3JpZ2luYWwpIDogbnVsbCxcbiAgICAgICAgICAgIHNlY29uZGFyeTogbnVsbCxcbiAgICAgICAgICAgIGhhc1RheDogZmFsc2UsXG4gICAgICAgICAgICB0YXg6IDAsXG4gICAgICAgICAgICB0YXhSYXRlOiBudWxsLFxuICAgICAgICAgICAgaW5jbHVkZWRJblByaWNlOiBudWxsLFxuICAgICAgICAgICAgc291cmNlOiAnbGVnYWN5J1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgbGVnYWN5VmFsdWUodmFsdWU6IGFueSk6IFByaWNlUHJlc2VudGF0aW9uVmFsdWUge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycgPyAwIDogdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ByaWNpbmdDb250cmFjdChwcmljaW5nOiBhbnkpOiBwcmljaW5nIGlzIFByb2R1Y3RWYXJpYW50UHJpY2luZyB7XG4gICAgICAgIHJldHVybiAhIXByaWNpbmdcbiAgICAgICAgICAgICYmIHRoaXMuaXNWYWx1ZShwcmljaW5nLmN1cnJlbnQpXG4gICAgICAgICAgICAmJiAhIXByaWNpbmcudGF4XG4gICAgICAgICAgICAmJiB0eXBlb2YgcHJpY2luZy50YXguaGFzVGF4ID09PSAnYm9vbGVhbidcbiAgICAgICAgICAgICYmIChwcmljaW5nLnByZXZpb3VzID09PSBudWxsIHx8IHByaWNpbmcucHJldmlvdXMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmlzVmFsdWUocHJpY2luZy5wcmV2aW91cykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWYWx1ZSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXZhbHVlXG4gICAgICAgICAgICAmJiB0aGlzLmlzRmluaXRlTnVtYmVyKHZhbHVlLm5ldClcbiAgICAgICAgICAgICYmIHRoaXMuaXNGaW5pdGVOdW1iZXIodmFsdWUudGF4KVxuICAgICAgICAgICAgJiYgdGhpcy5pc0Zpbml0ZU51bWJlcih2YWx1ZS5ncm9zcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0Zpbml0ZU51bWJlcih2YWx1ZTogYW55KTogdmFsdWUgaXMgbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgaXNGaW5pdGUodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNDYXJ0TGluZVByaWNpbmcodmFsdWU6IGFueSk6IHZhbHVlIGlzIENhcnRMaW5lUHJpY2luZyB7XG4gICAgICAgIHJldHVybiAhIXZhbHVlXG4gICAgICAgICAgICAmJiB0aGlzLmlzVmFsdWUodmFsdWUudW5pdClcbiAgICAgICAgICAgICYmIHRoaXMuaXNWYWx1ZSh2YWx1ZS5kaXNjb3VudClcbiAgICAgICAgICAgICYmIHRoaXMuaXNWYWx1ZSh2YWx1ZS5zdWJ0b3RhbCk7XG4gICAgfVxuXG59XG4iXX0=
@@ -6,7 +6,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { Injectable } from '@angular/core';
8
8
  import * as i0 from "@angular/core";
9
- import * as i1 from "../../public-api";
10
9
  let ShippingPriceDisplayService = class ShippingPriceDisplayService {
11
10
  constructor() {
12
11
  this.normalizePriceValue = (value) => {
@@ -37,11 +36,11 @@ let ShippingPriceDisplayService = class ShippingPriceDisplayService {
37
36
  };
38
37
  }
39
38
  };
40
- ShippingPriceDisplayService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ShippingPriceDisplayService_Factory() { return new i1.ShippingPriceDisplayService(); }, token: i1.ShippingPriceDisplayService, providedIn: "root" });
39
+ ShippingPriceDisplayService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ShippingPriceDisplayService_Factory() { return new ShippingPriceDisplayService(); }, token: ShippingPriceDisplayService, providedIn: "root" });
41
40
  ShippingPriceDisplayService = __decorate([
42
41
  Injectable({
43
42
  providedIn: 'root'
44
43
  })
45
44
  ], ShippingPriceDisplayService);
46
45
  export { ShippingPriceDisplayService };
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcHBpbmctcHJpY2UtZGlzcGxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL3NoaXBwaW5nLXByaWNlLWRpc3BsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFnQjNDLElBQWEsMkJBQTJCLEdBQXhDLE1BQWEsMkJBQTJCO0lBQXhDO1FBQ0ksd0JBQW1CLEdBQUcsQ0FBQyxLQUF5QyxFQUFpQixFQUFFO1lBQy9FLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7Z0JBQ3ZELE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFFRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMzRCxDQUFDLENBQUE7UUFFRCxvQkFBZSxHQUFHLENBQUMsUUFBZ0QsRUFBMEIsRUFBRSxlQUMzRixPQUFBLElBQUksQ0FBQyxjQUFjLE9BQUMsUUFBUSwwQ0FBRSxLQUFLLFFBQUUsUUFBUSwwQ0FBRSxhQUFhLENBQUMsQ0FBQSxFQUFBLENBQUE7UUFFakUsa0JBQWEsR0FBRyxDQUFDLE1BQTBDLEVBQTBCLEVBQUUsQ0FDbkYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFFckMsbUJBQWMsR0FBRyxDQUNiLEtBQXlDLEVBQ3pDLGFBQWlELEVBQzNCLEVBQUU7WUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25ELE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3hFLE1BQU0sYUFBYSxHQUFHLFVBQVUsS0FBSyxJQUFJLENBQUM7WUFDMUMsTUFBTSxnQkFBZ0IsR0FBRyx1QkFBdUIsS0FBSyxJQUFJLENBQUM7WUFDMUQsTUFBTSxXQUFXLEdBQUcsYUFBYSxJQUFJLGdCQUFnQixJQUFJLHVCQUF1QixHQUFHLFVBQVUsQ0FBQztZQUM5RixNQUFNLE1BQU0sR0FBRyxVQUFVLEtBQUssQ0FBQyxDQUFDO1lBRWhDLE9BQU87Z0JBQ0gsVUFBVTtnQkFDVixhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUNoRSxhQUFhO2dCQUNiLGdCQUFnQjtnQkFDaEIsV0FBVztnQkFDWCxNQUFNO2dCQUNOLGlCQUFpQixFQUFFLFdBQVc7YUFDakMsQ0FBQztRQUNOLENBQUMsQ0FBQTtLQUNKO0NBQUEsQ0FBQTs7QUFyQ1ksMkJBQTJCO0lBSHZDLFVBQVUsQ0FBQztRQUNSLFVBQVUsRUFBRSxNQUFNO0tBQ3JCLENBQUM7R0FDVywyQkFBMkIsQ0FxQ3ZDO1NBckNZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNoaXBwaW5nUHJpY2VTb3VyY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NoaXBwaW5nLW9wdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hpcHBpbmdQcmljZVZpZXdNb2RlbCB7XG4gICAgZmluYWxQcmljZTogbnVtYmVyIHwgbnVsbDtcbiAgICBvcmlnaW5hbFByaWNlOiBudW1iZXIgfCBudWxsO1xuICAgIGhhc0ZpbmFsUHJpY2U6IGJvb2xlYW47XG4gICAgaGFzT3JpZ2luYWxQcmljZTogYm9vbGVhbjtcbiAgICBoYXNEaXNjb3VudDogYm9vbGVhbjtcbiAgICBpc0ZyZWU6IGJvb2xlYW47XG4gICAgc2hvd09yaWdpbmFsUHJpY2U6IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2hpcHBpbmdQcmljZURpc3BsYXlTZXJ2aWNlIHtcbiAgICBub3JtYWxpemVQcmljZVZhbHVlID0gKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogbnVtYmVyIHwgbnVsbCA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub3JtYWxpemVkID0gTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShub3JtYWxpemVkKSA/IG5vcm1hbGl6ZWQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldENvbnRyYWN0VmlldyA9IChjb250cmFjdDogU2hpcHBpbmdQcmljZVNvdXJjZSB8IG51bGwgfCB1bmRlZmluZWQpOiBTaGlwcGluZ1ByaWNlVmlld01vZGVsID0+XG4gICAgICAgIHRoaXMuYnVpbGRWaWV3TW9kZWwoY29udHJhY3Q/LnByaWNlLCBjb250cmFjdD8ub3JpZ2luYWxQcmljZSlcblxuICAgIGdldEFtb3VudFZpZXcgPSAoYW1vdW50OiBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogU2hpcHBpbmdQcmljZVZpZXdNb2RlbCA9PlxuICAgICAgICB0aGlzLmJ1aWxkVmlld01vZGVsKGFtb3VudCwgbnVsbClcblxuICAgIGJ1aWxkVmlld01vZGVsID0gKFxuICAgICAgICBwcmljZTogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICAgICAgb3JpZ2luYWxQcmljZTogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICAgICk6IFNoaXBwaW5nUHJpY2VWaWV3TW9kZWwgPT4ge1xuICAgICAgICBjb25zdCBmaW5hbFByaWNlID0gdGhpcy5ub3JtYWxpemVQcmljZVZhbHVlKHByaWNlKTtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZE9yaWdpbmFsUHJpY2UgPSB0aGlzLm5vcm1hbGl6ZVByaWNlVmFsdWUob3JpZ2luYWxQcmljZSk7XG4gICAgICAgIGNvbnN0IGhhc0ZpbmFsUHJpY2UgPSBmaW5hbFByaWNlICE9PSBudWxsO1xuICAgICAgICBjb25zdCBoYXNPcmlnaW5hbFByaWNlID0gbm9ybWFsaXplZE9yaWdpbmFsUHJpY2UgIT09IG51bGw7XG4gICAgICAgIGNvbnN0IGhhc0Rpc2NvdW50ID0gaGFzRmluYWxQcmljZSAmJiBoYXNPcmlnaW5hbFByaWNlICYmIG5vcm1hbGl6ZWRPcmlnaW5hbFByaWNlID4gZmluYWxQcmljZTtcbiAgICAgICAgY29uc3QgaXNGcmVlID0gZmluYWxQcmljZSA9PT0gMDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZmluYWxQcmljZSxcbiAgICAgICAgICAgIG9yaWdpbmFsUHJpY2U6IGhhc09yaWdpbmFsUHJpY2UgPyBub3JtYWxpemVkT3JpZ2luYWxQcmljZSA6IG51bGwsXG4gICAgICAgICAgICBoYXNGaW5hbFByaWNlLFxuICAgICAgICAgICAgaGFzT3JpZ2luYWxQcmljZSxcbiAgICAgICAgICAgIGhhc0Rpc2NvdW50LFxuICAgICAgICAgICAgaXNGcmVlLFxuICAgICAgICAgICAgc2hvd09yaWdpbmFsUHJpY2U6IGhhc0Rpc2NvdW50XG4gICAgICAgIH07XG4gICAgfVxufVxuXG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcHBpbmctcHJpY2UtZGlzcGxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL3NoaXBwaW5nLXByaWNlLWRpc3BsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWdCM0MsSUFBYSwyQkFBMkIsR0FBeEMsTUFBYSwyQkFBMkI7SUFBeEM7UUFDSSx3QkFBbUIsR0FBRyxDQUFDLEtBQXlDLEVBQWlCLEVBQUU7WUFDL0UsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDdkQsT0FBTyxJQUFJLENBQUM7YUFDZjtZQUVELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzNELENBQUMsQ0FBQTtRQUVELG9CQUFlLEdBQUcsQ0FBQyxRQUFnRCxFQUEwQixFQUFFLGVBQzNGLE9BQUEsSUFBSSxDQUFDLGNBQWMsT0FBQyxRQUFRLDBDQUFFLEtBQUssUUFBRSxRQUFRLDBDQUFFLGFBQWEsQ0FBQyxDQUFBLEVBQUEsQ0FBQTtRQUVqRSxrQkFBYSxHQUFHLENBQUMsTUFBMEMsRUFBMEIsRUFBRSxDQUNuRixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUVyQyxtQkFBYyxHQUFHLENBQ2IsS0FBeUMsRUFDekMsYUFBaUQsRUFDM0IsRUFBRTtZQUN4QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkQsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDeEUsTUFBTSxhQUFhLEdBQUcsVUFBVSxLQUFLLElBQUksQ0FBQztZQUMxQyxNQUFNLGdCQUFnQixHQUFHLHVCQUF1QixLQUFLLElBQUksQ0FBQztZQUMxRCxNQUFNLFdBQVcsR0FBRyxhQUFhLElBQUksZ0JBQWdCLElBQUksdUJBQXVCLEdBQUcsVUFBVSxDQUFDO1lBQzlGLE1BQU0sTUFBTSxHQUFHLFVBQVUsS0FBSyxDQUFDLENBQUM7WUFFaEMsT0FBTztnQkFDSCxVQUFVO2dCQUNWLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQ2hFLGFBQWE7Z0JBQ2IsZ0JBQWdCO2dCQUNoQixXQUFXO2dCQUNYLE1BQU07Z0JBQ04saUJBQWlCLEVBQUUsV0FBVzthQUNqQyxDQUFDO1FBQ04sQ0FBQyxDQUFBO0tBQ0o7Q0FBQSxDQUFBOztBQXJDWSwyQkFBMkI7SUFIdkMsVUFBVSxDQUFDO1FBQ1IsVUFBVSxFQUFFLE1BQU07S0FDckIsQ0FBQztHQUNXLDJCQUEyQixDQXFDdkM7U0FyQ1ksMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2hpcHBpbmdQcmljZVNvdXJjZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2hpcHBpbmctb3B0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBTaGlwcGluZ1ByaWNlVmlld01vZGVsIHtcbiAgICBmaW5hbFByaWNlOiBudW1iZXIgfCBudWxsO1xuICAgIG9yaWdpbmFsUHJpY2U6IG51bWJlciB8IG51bGw7XG4gICAgaGFzRmluYWxQcmljZTogYm9vbGVhbjtcbiAgICBoYXNPcmlnaW5hbFByaWNlOiBib29sZWFuO1xuICAgIGhhc0Rpc2NvdW50OiBib29sZWFuO1xuICAgIGlzRnJlZTogYm9vbGVhbjtcbiAgICBzaG93T3JpZ2luYWxQcmljZTogYm9vbGVhbjtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTaGlwcGluZ1ByaWNlRGlzcGxheVNlcnZpY2Uge1xuICAgIG5vcm1hbGl6ZVByaWNlVmFsdWUgPSAodmFsdWU6IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBudW1iZXIgfCBudWxsID0+IHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKG5vcm1hbGl6ZWQpID8gbm9ybWFsaXplZCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0Q29udHJhY3RWaWV3ID0gKGNvbnRyYWN0OiBTaGlwcGluZ1ByaWNlU291cmNlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFNoaXBwaW5nUHJpY2VWaWV3TW9kZWwgPT5cbiAgICAgICAgdGhpcy5idWlsZFZpZXdNb2RlbChjb250cmFjdD8ucHJpY2UsIGNvbnRyYWN0Py5vcmlnaW5hbFByaWNlKVxuXG4gICAgZ2V0QW1vdW50VmlldyA9IChhbW91bnQ6IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBTaGlwcGluZ1ByaWNlVmlld01vZGVsID0+XG4gICAgICAgIHRoaXMuYnVpbGRWaWV3TW9kZWwoYW1vdW50LCBudWxsKVxuXG4gICAgYnVpbGRWaWV3TW9kZWwgPSAoXG4gICAgICAgIHByaWNlOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgICAgICBvcmlnaW5hbFByaWNlOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gICAgKTogU2hpcHBpbmdQcmljZVZpZXdNb2RlbCA9PiB7XG4gICAgICAgIGNvbnN0IGZpbmFsUHJpY2UgPSB0aGlzLm5vcm1hbGl6ZVByaWNlVmFsdWUocHJpY2UpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkT3JpZ2luYWxQcmljZSA9IHRoaXMubm9ybWFsaXplUHJpY2VWYWx1ZShvcmlnaW5hbFByaWNlKTtcbiAgICAgICAgY29uc3QgaGFzRmluYWxQcmljZSA9IGZpbmFsUHJpY2UgIT09IG51bGw7XG4gICAgICAgIGNvbnN0IGhhc09yaWdpbmFsUHJpY2UgPSBub3JtYWxpemVkT3JpZ2luYWxQcmljZSAhPT0gbnVsbDtcbiAgICAgICAgY29uc3QgaGFzRGlzY291bnQgPSBoYXNGaW5hbFByaWNlICYmIGhhc09yaWdpbmFsUHJpY2UgJiYgbm9ybWFsaXplZE9yaWdpbmFsUHJpY2UgPiBmaW5hbFByaWNlO1xuICAgICAgICBjb25zdCBpc0ZyZWUgPSBmaW5hbFByaWNlID09PSAwO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmaW5hbFByaWNlLFxuICAgICAgICAgICAgb3JpZ2luYWxQcmljZTogaGFzT3JpZ2luYWxQcmljZSA/IG5vcm1hbGl6ZWRPcmlnaW5hbFByaWNlIDogbnVsbCxcbiAgICAgICAgICAgIGhhc0ZpbmFsUHJpY2UsXG4gICAgICAgICAgICBoYXNPcmlnaW5hbFByaWNlLFxuICAgICAgICAgICAgaGFzRGlzY291bnQsXG4gICAgICAgICAgICBpc0ZyZWUsXG4gICAgICAgICAgICBzaG93T3JpZ2luYWxQcmljZTogaGFzRGlzY291bnRcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbiJdfQ==
@@ -48,7 +48,7 @@ var ConnectionService = /** @class */ (function () {
48
48
  return this.http.get(api).pipe(take(1));
49
49
  };
50
50
  ConnectionService.prototype.getErrorNotHandler = function (api) {
51
- return this.http.get(this.url + api).pipe(take(1));
51
+ return this.http.get(this.formUrl(api)).pipe(take(1));
52
52
  };
53
53
  ConnectionService.prototype.getOutsiderWithParams = function (api, data) {
54
54
  return this.http.get(api, { params: __assign({}, data) });
@@ -87,4 +87,4 @@ var ConnectionService = /** @class */ (function () {
87
87
  return ConnectionService;
88
88
  }());
89
89
  export { ConnectionService };
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2FwaS9jb25uZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLHlCQUF5QixDQUFDO0FBR2pDO0lBSUssMkJBQW9CLElBQWdCLEVBQVUsU0FBMkIsRUFDNUQsTUFBaUI7UUFEOUIsaUJBR0M7UUFIbUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzVELFdBQU0sR0FBTixNQUFNLENBQVc7UUEwRDlCLFlBQU8sR0FBRyxVQUFDLEdBQUc7WUFDVCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsSUFBSSxDQUFDLEtBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDN0ksQ0FBQyxDQUFBO1FBM0RJLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxD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SyxDQUFDLENBQUM7UUFDdkMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxNQUFNLFFBQUEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxVQUFVO0lBQ1YsK0JBQUcsR0FBSCxVQUFJLEdBQVcsRUFBRSxJQUFJO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxhQUFhO0lBQ2Isa0NBQU0sR0FBTixVQUFPLEdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFNLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7O2dCQXpEeUIsVUFBVTtnQkFBcUIsZ0JBQWdCO2dCQUNwRCxTQUFTOztJQUx0QixpQkFBaUI7UUFEN0IsVUFBVSxFQUFFO09BQ0EsaUJBQWlCLENBa0U3QjtJQUFELHdCQUFDO0NBQUEsQUFsRUQsSUFrRUM7U0FsRVksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zLCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi9jb3JlLmNvbnN0cyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJPcHRpb24sIEZpbHRlck9wdGlvblR5cGVzLCBGaWx0ZXJPcHRpb25WYWx1ZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvY2hvb3NlLW9wdGlvbnMvZmlsdGVyLW9wdGlvbic7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0ICdyeGpzL2FkZC9vcGVyYXRvci9jYXRjaCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uU2VydmljZSB7XG5cbiAgICAgcHJpdmF0ZSB1cmw7XG5cbiAgICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICBwcml2YXRlIGNvbnN0czogQ29uc3RhbnRzKSB7XG4gICAgICAgICAgdGhpcy51cmwgPSB0aGlzLmNvbnN0cy5nZXRVcmxCYXNlKCk7XG4gICAgIH1cblxuICAgICAvKiogUE9TVCAqL1xuICAgICBwb3N0KGFwaTogc3RyaW5nLCBkYXRhPyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odGhpcy51cmwgKyBhcGksIGRhdGEgfHwge30pLnBpcGUodGFrZSgxKSk7XG4gICAgIH1cblxuICAgICBwb3N0T3V0c2lkZXIoYXBpOiBzdHJpbmcsIGRhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGFwaSwgZGF0YSkucGlwZSh0YWtlKDEpKTtcbiAgICAgfVxuXG4gICAgIC8qKiBHRVQgKi9cbiAgICAgZ2V0KGFwaTogc3RyaW5nLCBkYXRhPyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55Pih0aGlzLmZvcm1VcmwoYXBpKSwgeyBwYXJhbXM6IHsgLi4uZGF0YSB9IH0pLmNhdGNoKGVyciA9PiBvZihudWxsKSkucGlwZSh0YWtlKDEpKTtcbiAgICAgfVxuXG4gICAgIGdldE91dHNpZGVyKGFwaTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYXBpKS5waXBlKHRha2UoMSkpO1xuICAgICB9XG5cbiAgICBnZXRFcnJvck5vdEhhbmRsZXIoYXBpOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHRoaXMudXJsICsgYXBpKS5waXBlKHRha2UoMSkpO1xuICAgIH1cblxuICAgICBnZXRPdXRzaWRlcldpdGhQYXJhbXMoYXBpOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihhcGksIHsgcGFyYW1zOiB7IC4uLmRhdGEgfX0pO1xuICAgICB9XG5cbiAgICAgZ2V0SFRNTChhcGk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgICAgbGV0IGh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHsgQWNjZXB0OiAndGV4dC9wbGFpbiwgdGV4dC9odG1sJyB9KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLnVybCArIGFwaSwgeyByZXNwb25zZVR5cGU6ICd0ZXh0JywgaGVhZGVyczogaHR0cEhlYWRlcnMgfSkucGlwZSh0YWtlKDEpKTtcbiAgICAgfVxuXG4gICAgIGdldFdpdGhMaW1pdChhcGk6IHN0cmluZywgbGltaXQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnbGltaXQnLCBsaW1pdCk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55Pih0aGlzLnVybCArIGFwaSwgeyBwYXJhbXMgfSkucGlwZSh0YWtlKDEpKTtcbiAgICAgfVxuXG4gICAgIGdldFBhZ2luYXRlZChhcGk6IHN0cmluZywgbGltaXQ6IHN0cmluZywgcGFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdsaW1pdCcsIGxpbWl0KTtcbiAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdwYWdlJywgcGFnZSk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55Pih0aGlzLnVybCArIGFwaSwgeyBwYXJhbXMgfSkucGlwZSh0YWtlKDEpKTtcbiAgICAgfVxuXG4gICAgIC8qKiBQVVQgKi9cbiAgICAgcHV0KGFwaTogc3RyaW5nLCBkYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KHRoaXMudXJsICsgYXBpLCBkYXRhKS5waXBlKHRha2UoMSkpO1xuICAgICB9XG5cbiAgICAgLyoqIERFTEVURSAqL1xuICAgICBkZWxldGUoYXBpOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4odGhpcy51cmwgKyBhcGkpLnBpcGUodGFrZSgxKSk7XG4gICAgIH1cblxuICAgICBmb3JtVXJsID0gKGFwaSkgPT4ge1xuICAgICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT0gJ2h0dHBzOicgJiYgIXRoaXMudXJsLmluY2x1ZGVzKCdodHRwcycpID8gKHRoaXMudXJsLnJlcGxhY2UoJ2h0dHAnLCAnaHR0cHMnKSkgKyBhcGkgOiB0aGlzLnVybCArIGFwaTtcbiAgICAgfVxufSJdfQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2FwaS9jb25uZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLHlCQUF5QixDQUFDO0FBR2pDO0lBSUssMkJBQW9CLElBQWdCLEVBQVUsU0FBMkIsRUFDNUQsTUFBaUI7UUFEOUIsaUJBR0M7UUFIbUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzVELFdBQU0sR0FBTixNQUFNLENBQVc7UUEwRDlCLFlBQU8sR0FBRyxVQUFDLEdBQUc7WUFDVCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsSUFBSSxDQUFDLEtBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDN0ksQ0FBQyxDQUFBO1FBM0RJLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxD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RSxLQUFLLENBQUMsQ0FBQztRQUN2QyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxFQUFFLE1BQU0sUUFBQSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELFVBQVU7SUFDViwrQkFBRyxHQUFILFVBQUksR0FBVyxFQUFFLElBQUk7UUFDaEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELGFBQWE7SUFDYixrQ0FBTSxHQUFOLFVBQU8sR0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7Z0JBekR5QixVQUFVO2dCQUFxQixnQkFBZ0I7Z0JBQ3BELFNBQVM7O0lBTHRCLGlCQUFpQjtRQUQ3QixVQUFVLEVBQUU7T0FDQSxpQkFBaUIsQ0FrRTdCO0lBQUQsd0JBQUM7Q0FBQSxBQWxFRCxJQWtFQztTQWxFWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uL2NvcmUuY29uc3RzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEZpbHRlck9wdGlvbiwgRmlsdGVyT3B0aW9uVHlwZXMsIEZpbHRlck9wdGlvblZhbHVlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jaG9vc2Utb3B0aW9ucy9maWx0ZXItb3B0aW9uJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgJ3J4anMvYWRkL29wZXJhdG9yL2NhdGNoJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25TZXJ2aWNlIHtcblxuICAgICBwcml2YXRlIHVybDtcblxuICAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgIHByaXZhdGUgY29uc3RzOiBDb25zdGFudHMpIHtcbiAgICAgICAgICB0aGlzLnVybCA9IHRoaXMuY29uc3RzLmdldFVybEJhc2UoKTtcbiAgICAgfVxuXG4gICAgIC8qKiBQT1NUICovXG4gICAgIHBvc3QoYXBpOiBzdHJpbmcsIGRhdGE/KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih0aGlzLnVybCArIGFwaSwgZGF0YSB8fCB7fSkucGlwZSh0YWtlKDEpKTtcbiAgICAgfVxuXG4gICAgIHBvc3RPdXRzaWRlcihhcGk6IHN0cmluZywgZGF0YSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYXBpLCBkYXRhKS5waXBlKHRha2UoMSkpO1xuICAgICB9XG5cbiAgICAgLyoqIEdFVCAqL1xuICAgICBnZXQoYXBpOiBzdHJpbmcsIGRhdGE/KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHRoaXMuZm9ybVVybChhcGkpLCB7IHBhcmFtczogeyAuLi5kYXRhIH0gfSkuY2F0Y2goZXJyID0+IG9mKG51bGwpKS5waXBlKHRha2UoMSkpO1xuICAgICB9XG5cbiAgICAgZ2V0T3V0c2lkZXIoYXBpOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihhcGkpLnBpcGUodGFrZSgxKSk7XG4gICAgIH1cblxuICAgIGdldEVycm9yTm90SGFuZGxlcihhcGk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4odGhpcy5mb3JtVXJsKGFwaSkpLnBpcGUodGFrZSgxKSk7XG4gICAgfVxuXG4gICAgIGdldE91dHNpZGVyV2l0aFBhcmFtcyhhcGk6IHN0cmluZywgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGFwaSwgeyBwYXJhbXM6IHsgLi4uZGF0YSB9fSk7XG4gICAgIH1cblxuICAgICBnZXRIVE1MKGFwaTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgICBsZXQgaHR0cEhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoeyBBY2NlcHQ6ICd0ZXh0L3BsYWluLCB0ZXh0L2h0bWwnIH0pO1xuICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMudXJsICsgYXBpLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnLCBoZWFkZXJzOiBodHRwSGVhZGVycyB9KS5waXBlKHRha2UoMSkpO1xuICAgICB9XG5cbiAgICAgZ2V0V2l0aExpbWl0KGFwaTogc3RyaW5nLCBsaW1pdDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdsaW1pdCcsIGxpbWl0KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHRoaXMudXJsICsgYXBpLCB7IHBhcmFtcyB9KS5waXBlKHRha2UoMSkpO1xuICAgICB9XG5cbiAgICAgZ2V0UGFnaW5hdGVkKGFwaTogc3RyaW5nLCBsaW1pdDogc3RyaW5nLCBwYWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2xpbWl0JywgbGltaXQpO1xuICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3BhZ2UnLCBwYWdlKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHRoaXMudXJsICsgYXBpLCB7IHBhcmFtcyB9KS5waXBlKHRha2UoMSkpO1xuICAgICB9XG5cbiAgICAgLyoqIFBVVCAqL1xuICAgICBwdXQoYXBpOiBzdHJpbmcsIGRhdGEpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4odGhpcy51cmwgKyBhcGksIGRhdGEpLnBpcGUodGFrZSgxKSk7XG4gICAgIH1cblxuICAgICAvKiogREVMRVRFICovXG4gICAgIGRlbGV0ZShhcGk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55Pih0aGlzLnVybCArIGFwaSkucGlwZSh0YWtlKDEpKTtcbiAgICAgfVxuXG4gICAgIGZvcm1VcmwgPSAoYXBpKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCA9PSAnaHR0cHM6JyAmJiAhdGhpcy51cmwuaW5jbHVkZXMoJ2h0dHBzJykgPyAodGhpcy51cmwucmVwbGFjZSgnaHR0cCcsICdodHRwcycpKSArIGFwaSA6IHRoaXMudXJsICsgYXBpO1xuICAgICB9XG59XG4iXX0=