ng-easycommerce-v18 0.3.19-beta.2 → 0.3.20-beta.2

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 (212) hide show
  1. package/README.md +110 -109
  2. package/assets/decidirFormEc.html +514 -514
  3. package/assets/ec-i18n/ct.json +282 -282
  4. package/assets/ec-i18n/en.json +0 -1
  5. package/assets/ec-i18n/es.json +433 -434
  6. package/assets/ec-i18n/fr.json +0 -0
  7. package/assets/ec-i18n/gl.json +282 -282
  8. package/assets/ec-i18n/pr.json +282 -282
  9. package/assets/images/cards-occasional.svg +21 -21
  10. package/assets/recaptcha/recaptcha-site-keys.json +3 -3
  11. package/assets/recaptcha/recaptcha-sites-prod.json +38 -38
  12. package/assets/recaptcha/recaptcha-sites.json +52 -52
  13. package/esm2022/lib/api/connection.service.mjs +1 -1
  14. package/esm2022/lib/classes/checkout/steps.mjs +1 -1
  15. package/esm2022/lib/classes/component-helper.mjs +1 -1
  16. package/esm2022/lib/classes/filters/attributes-filter.mjs +74 -4
  17. package/esm2022/lib/classes/filters/category-filter.mjs +105 -26
  18. package/esm2022/lib/classes/filters/dynamics-filter.mjs +1 -1
  19. package/esm2022/lib/classes/filters/filter-factory.mjs +7 -3
  20. package/esm2022/lib/classes/filters/filter.mjs +1 -1
  21. package/esm2022/lib/classes/filters/index.mjs +1 -1
  22. package/esm2022/lib/classes/filters/price_range-filter.mjs +3 -3
  23. package/esm2022/lib/classes/filters/sort-filter.mjs +1 -1
  24. package/esm2022/lib/classes/index.mjs +1 -1
  25. package/esm2022/lib/classes/user.mjs +1 -1
  26. package/esm2022/lib/constants/api.constants.service.mjs +15 -19
  27. package/esm2022/lib/constants/core.constants.service.mjs +16 -5
  28. package/esm2022/lib/constants/index.mjs +1 -1
  29. package/esm2022/lib/ec-components/abstractions-components/block-ec.component.mjs +1 -1
  30. package/esm2022/lib/ec-components/abstractions-components/index.mjs +1 -1
  31. package/esm2022/lib/ec-components/abstractions-components/menu-ec.component.mjs +1 -17
  32. package/esm2022/lib/ec-components/account-ec/account-ec.component.mjs +3 -3
  33. package/esm2022/lib/ec-components/account-ec/index.mjs +1 -1
  34. package/esm2022/lib/ec-components/account-ec/order-ec/order-ec.component.mjs +3 -3
  35. package/esm2022/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.mjs +3 -3
  36. package/esm2022/lib/ec-components/auth-ec/auth-ec.component.mjs +3 -3
  37. package/esm2022/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.mjs +3 -3
  38. package/esm2022/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.mjs +3 -3
  39. package/esm2022/lib/ec-components/auth-ec/index.mjs +1 -1
  40. package/esm2022/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.mjs +18 -28
  41. package/esm2022/lib/ec-components/auth-ec/password-reset-ec/password-reset-ec.component.mjs +23 -27
  42. package/esm2022/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.mjs +3 -3
  43. package/esm2022/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.mjs +3 -3
  44. package/esm2022/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.mjs +3 -3
  45. package/esm2022/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.mjs +3 -3
  46. package/esm2022/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.mjs +3 -3
  47. package/esm2022/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.mjs +3 -3
  48. package/esm2022/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.mjs +3 -3
  49. package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +18 -9
  50. package/esm2022/lib/ec-components/blocks-ec/blocks-ec.component.mjs +3 -3
  51. package/esm2022/lib/ec-components/blocks-ec/index.mjs +1 -1
  52. package/esm2022/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.mjs +3 -3
  53. package/esm2022/lib/ec-components/cart-ec/cart-ec.component.mjs +3 -3
  54. package/esm2022/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.mjs +11 -39
  55. package/esm2022/lib/ec-components/cart-ec/index.mjs +1 -1
  56. package/esm2022/lib/ec-components/checkout-ec/checkout-ec.component.mjs +3 -3
  57. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.mjs +3 -3
  58. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.mjs +3 -3
  59. package/esm2022/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.mjs +3 -3
  60. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.mjs +3 -3
  61. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.mjs +3 -3
  62. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/index.mjs +1 -1
  63. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.mjs +3 -3
  64. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.mjs +3 -3
  65. package/esm2022/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.mjs +3 -3
  66. package/esm2022/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.mjs +3 -3
  67. package/esm2022/lib/ec-components/checkout-ec/success-ec/success-ec.component.mjs +3 -3
  68. package/esm2022/lib/ec-components/collection-ec/collection-ec.component.mjs +43 -19
  69. package/esm2022/lib/ec-components/contact-ec/contact-ec.component.mjs +1 -1
  70. package/esm2022/lib/ec-components/coupon-ec/coupon-ec.component.mjs +3 -3
  71. package/esm2022/lib/ec-components/faqs-ec/faqs-ec.component.mjs +3 -3
  72. package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +45 -41
  73. package/esm2022/lib/ec-components/filters-sort-ec/filters-sort-ec.component.mjs +3 -3
  74. package/esm2022/lib/ec-components/footer-ec/footer-ec.component.mjs +3 -3
  75. package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +37 -45
  76. package/esm2022/lib/ec-components/home-ec/home-ec.component.mjs +3 -3
  77. package/esm2022/lib/ec-components/index.mjs +1 -1
  78. package/esm2022/lib/ec-components/price-range-filter/price-range-filter.component.mjs +15 -4
  79. package/esm2022/lib/ec-components/product-detail-ec/product-detail-ec.component.mjs +7 -12
  80. package/esm2022/lib/ec-components/product-ec/product-ec.component.mjs +8 -56
  81. package/esm2022/lib/ec-components/related-products-ec/related-products-ec.component.mjs +3 -3
  82. package/esm2022/lib/ec-components/reviews-ec/reviews-ec.component.mjs +3 -3
  83. package/esm2022/lib/ec-components/reviews-form-ec/reviews-form-ec.component.mjs +3 -3
  84. package/esm2022/lib/ec-components/section-container-ec/section-container-ec.component.mjs +3 -3
  85. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/index.mjs +1 -1
  86. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-email-ec/share-email-ec.component.mjs +3 -3
  87. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-facebook-ec/share-facebook-ec.component.mjs +3 -3
  88. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-pinterest-ec/share-pinterest-ec.component.mjs +3 -3
  89. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-twitter-ec/share-twitter-ec.component.mjs +3 -3
  90. package/esm2022/lib/ec-components/share-ec/share-buttons-ec/share-whatsapp-ec/share-whatsapp-ec.component.mjs +3 -3
  91. package/esm2022/lib/ec-components/share-ec/share-ec.component.mjs +3 -3
  92. package/esm2022/lib/ec-components/sidebar-ec/sidebar-ec.component.mjs +3 -3
  93. package/esm2022/lib/ec-components/stores-ec/stores-ec.component.mjs +11 -20
  94. package/esm2022/lib/ec-components/variants-ec/variants-ec.component.mjs +3 -3
  95. package/esm2022/lib/ec-components/widgets-ec/decidir-ec/decidir-ec.component.mjs +8 -14
  96. package/esm2022/lib/ec-components/widgets-ec/index.mjs +1 -1
  97. package/esm2022/lib/ec-components/widgets-ec/loading/index.mjs +1 -1
  98. package/esm2022/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.mjs +3 -3
  99. package/esm2022/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.mjs +3 -3
  100. package/esm2022/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.mjs +3 -3
  101. package/esm2022/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.mjs +6 -8
  102. package/esm2022/lib/ec-components/widgets-ec/price-ec/price-ec.component.mjs +3 -3
  103. package/esm2022/lib/ec-components/widgets-ec/rating-ec/rating-ec.component.mjs +3 -3
  104. package/esm2022/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.mjs +3 -3
  105. package/esm2022/lib/ec-components/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.mjs +3 -3
  106. package/esm2022/lib/ec-directive/index.mjs +1 -1
  107. package/esm2022/lib/ec-directive/product-off.directive.mjs +1 -1
  108. package/esm2022/lib/ec-directive/product-stock.directive.mjs +1 -1
  109. package/esm2022/lib/ec-guards/auth.guard.mjs +1 -1
  110. package/esm2022/lib/ec-pipe/ec-currency-symbol.pipe.mjs +1 -1
  111. package/esm2022/lib/ec-pipe/ec-safe-html.pipe.mjs +1 -1
  112. package/esm2022/lib/ec-pipe/index.mjs +1 -1
  113. package/esm2022/lib/ec-services/addressing.service.mjs +1 -1
  114. package/esm2022/lib/ec-services/analytics/analytics.service.mjs +1 -1
  115. package/esm2022/lib/ec-services/analytics/doppler.service.mjs +1 -1
  116. package/esm2022/lib/ec-services/analytics/facebook-pixel.service.mjs +1 -1
  117. package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +4 -4
  118. package/esm2022/lib/ec-services/analytics/gtm.service.mjs +6 -10
  119. package/esm2022/lib/ec-services/analytics/index.mjs +1 -1
  120. package/esm2022/lib/ec-services/analytics/metricool-pixel.service.mjs +18 -17
  121. package/esm2022/lib/ec-services/auth.service.mjs +1 -1
  122. package/esm2022/lib/ec-services/auth.storage.service.mjs +1 -1
  123. package/esm2022/lib/ec-services/blocks-repository.service.mjs +1 -1
  124. package/esm2022/lib/ec-services/blocks.service.mjs +1 -1
  125. package/esm2022/lib/ec-services/cart.service.mjs +4 -22
  126. package/esm2022/lib/ec-services/channel.service.mjs +1 -1
  127. package/esm2022/lib/ec-services/checkout.service.mjs +2 -4
  128. package/esm2022/lib/ec-services/currency.service.mjs +1 -1
  129. package/esm2022/lib/ec-services/filters.service.mjs +124 -18
  130. package/esm2022/lib/ec-services/form.service.mjs +1 -1
  131. package/esm2022/lib/ec-services/index.mjs +1 -3
  132. package/esm2022/lib/ec-services/local-storage.service.mjs +1 -1
  133. package/esm2022/lib/ec-services/ngx-local-storage.service.mjs +1 -1
  134. package/esm2022/lib/ec-services/options.service.mjs +1 -1
  135. package/esm2022/lib/ec-services/order-utility.service.mjs +1 -1
  136. package/esm2022/lib/ec-services/orders.service.mjs +1 -1
  137. package/esm2022/lib/ec-services/pagination.service.mjs +70 -22
  138. package/esm2022/lib/ec-services/parameters.service.mjs +1 -1
  139. package/esm2022/lib/ec-services/payment.service.mjs +1 -1
  140. package/esm2022/lib/ec-services/product-detail.service.mjs +1 -11
  141. package/esm2022/lib/ec-services/products.service.mjs +5 -3
  142. package/esm2022/lib/ec-services/re-captcha.service.mjs +1 -1
  143. package/esm2022/lib/ec-services/reviews.service.mjs +1 -1
  144. package/esm2022/lib/ec-services/shipment.service.mjs +1 -1
  145. package/esm2022/lib/ec-services/stores.service.mjs +1 -1
  146. package/esm2022/lib/ec-services/test.service.mjs +1 -1
  147. package/esm2022/lib/ec-services/toast.service.mjs +1 -1
  148. package/esm2022/lib/interceptors/auth.interceptor.mjs +1 -1
  149. package/esm2022/lib/interceptors/index.mjs +1 -2
  150. package/esm2022/lib/interfaces/analytics/event-key.mjs +1 -1
  151. package/esm2022/lib/interfaces/analytics/facebook-pixel-data.mjs +1 -1
  152. package/esm2022/lib/interfaces/analytics/gtm-config.mjs +1 -1
  153. package/esm2022/lib/interfaces/analytics/index.mjs +1 -1
  154. package/esm2022/lib/interfaces/blocks.mjs +1 -1
  155. package/esm2022/lib/interfaces/checkout.mjs +1 -1
  156. package/esm2022/lib/interfaces/connection.mjs +1 -1
  157. package/esm2022/lib/interfaces/coupon.mjs +1 -1
  158. package/esm2022/lib/interfaces/currency.mjs +1 -1
  159. package/esm2022/lib/interfaces/deserializable.mjs +1 -1
  160. package/esm2022/lib/interfaces/environment.mjs +1 -1
  161. package/esm2022/lib/interfaces/faqs.mjs +1 -1
  162. package/esm2022/lib/interfaces/filter.mjs +1 -1
  163. package/esm2022/lib/interfaces/index.mjs +1 -2
  164. package/esm2022/lib/interfaces/options.mjs +1 -1
  165. package/esm2022/lib/interfaces/pagination.mjs +1 -1
  166. package/esm2022/lib/interfaces/parameter.mjs +1 -1
  167. package/esm2022/lib/interfaces/product.mjs +1 -1
  168. package/esm2022/lib/interfaces/step.mjs +1 -1
  169. package/esm2022/lib/interfaces/storage.mjs +1 -1
  170. package/esm2022/lib/interfaces/store.mjs +1 -1
  171. package/esm2022/lib/interfaces/types/user.type.mjs +1 -1
  172. package/esm2022/lib/providers/index.mjs +1 -2
  173. package/esm2022/lib/providers/provideEnvironment.mjs +1 -1
  174. package/esm2022/lib/stores/currency.store.mjs +1 -1
  175. package/esm2022/public-api.mjs +1 -1
  176. package/fesm2022/ng-easycommerce-v18.mjs +797 -1008
  177. package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
  178. package/lib/classes/filters/attributes-filter.d.ts +24 -0
  179. package/lib/classes/filters/category-filter.d.ts +30 -3
  180. package/lib/constants/api.constants.service.d.ts +0 -1
  181. package/lib/constants/core.constants.service.d.ts +7 -0
  182. package/lib/ec-components/abstractions-components/menu-ec.component.d.ts +0 -12
  183. package/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.d.ts +0 -2
  184. package/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.d.ts +1 -1
  185. package/lib/ec-components/collection-ec/collection-ec.component.d.ts +5 -4
  186. package/lib/ec-components/filters-ec/filters-ec.component.d.ts +17 -12
  187. package/lib/ec-components/price-range-filter/price-range-filter.component.d.ts +2 -0
  188. package/lib/ec-components/product-ec/product-ec.component.d.ts +0 -4
  189. package/lib/ec-services/analytics/gtm.service.d.ts +1 -1
  190. package/lib/ec-services/cart.service.d.ts +1 -1
  191. package/lib/ec-services/filters.service.d.ts +18 -1
  192. package/lib/ec-services/index.d.ts +0 -2
  193. package/lib/ec-services/pagination.service.d.ts +21 -5
  194. package/lib/ec-services/products.service.d.ts +1 -1
  195. package/lib/interceptors/index.d.ts +0 -1
  196. package/lib/interfaces/environment.d.ts +0 -1
  197. package/lib/interfaces/filter.d.ts +0 -1
  198. package/lib/interfaces/index.d.ts +0 -1
  199. package/lib/interfaces/options.d.ts +0 -2
  200. package/lib/interfaces/product.d.ts +0 -6
  201. package/lib/providers/index.d.ts +0 -1
  202. package/package.json +1 -1
  203. package/esm2022/lib/ec-services/base-api.service.mjs +0 -148
  204. package/esm2022/lib/ec-services/runtime-config.service.mjs +0 -190
  205. package/esm2022/lib/interceptors/runtime-config.interceptor.mjs +0 -41
  206. package/esm2022/lib/interfaces/runtime-config.mjs +0 -2
  207. package/esm2022/lib/providers/provideRuntimeConfig.mjs +0 -42
  208. package/lib/ec-services/base-api.service.d.ts +0 -64
  209. package/lib/ec-services/runtime-config.service.d.ts +0 -63
  210. package/lib/interceptors/runtime-config.interceptor.d.ts +0 -7
  211. package/lib/interfaces/runtime-config.d.ts +0 -22
  212. package/lib/providers/provideRuntimeConfig.d.ts +0 -13
@@ -107,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
107
107
  template: '<p>Block Helper Component</p>'
108
108
  }]
109
109
  }], ctorParameters: () => [] });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYWJzdHJhY3Rpb25zLWNvbXBvbmVudHMvYmxvY2stZWMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFNUU7Ozs7O0dBS0c7QUFPSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCOztPQUVHO0lBQ0ssTUFBTSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQzdDOztPQUVHO0lBQ08sU0FBUyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0lBQ2pEOztPQUVHO0lBQ0ksUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDeEM7O09BRUc7SUFDSSxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQTtJQUNwRDs7T0FFRztJQUNJLFlBQVksR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRXpELGdCQUFjLENBQUM7SUFDZjs7Ozs7O09BTUc7SUFDSCxjQUFjLENBQUUsSUFBVztRQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUMvRSxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILGNBQWMsQ0FBQyxNQUFXO1FBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7WUFDeEosQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlO1lBQzVELENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQy9ELENBQUM7SUFFQTs7Ozs7TUFLRTtJQUNILFFBQVEsQ0FBQyxNQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGNBQWM7WUFDdEIsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7WUFDckosQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlO1lBQzVELENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQzlELENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILGFBQWE7UUFDVCxPQUFPO1lBQ0gsYUFBYSxFQUFFLENBQUM7WUFDaEIsUUFBUSxFQUFFLElBQUk7WUFDZCxJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxJQUFJO1lBQ1gsVUFBVSxFQUFFLElBQUk7WUFDaEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsVUFBVSxFQUFFLElBQUk7WUFDaEIsV0FBVyxFQUFFO2dCQUNULENBQUMsRUFBRTtvQkFDQyxhQUFhLEVBQUUsQ0FBQztpQkFDbkI7Z0JBQ0QsR0FBRyxFQUFDO29CQUNBLGFBQWEsRUFBRSxDQUFDO2lCQUNuQjtnQkFDRCxHQUFHLEVBQUU7b0JBQ0QsYUFBYSxFQUFFLENBQUM7aUJBQ25CO2dCQUNELEdBQUcsRUFBRTtvQkFDRCxhQUFhLEVBQUUsQ0FBQztpQkFDbkI7Z0JBQ0QsSUFBSSxFQUFFO29CQUNGLGFBQWEsRUFBRSxDQUFDO2lCQUNuQjthQUNKO1NBQ0osQ0FBQTtJQUNMLENBQUM7d0dBekZRLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLHdFQUZsQiwrQkFBK0I7OzRGQUU3QixnQkFBZ0I7a0JBTjVCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsRUFBRTtvQkFDWCxRQUFRLEVBQUUsK0JBQStCO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBcGlDb25zdGFudHNTZXJ2aWNlLCBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgU3dpcGVyT3B0aW9ucyB9IGZyb20gXCJzd2lwZXIvdHlwZXNcIjtcclxuLyoqXHJcbiAqIENvbXBvbmVudGUgcGFyYSBhYnN0cmFlciBsYSBmdW5jaW9uYWxpZGFkIGRlIGxvcyBjb21wb25lbnRlc1xyXG4gKiB5IHF1ZSBwdWVkYW4gaGVyZWRhcmxhLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBCbG9ja0VjQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2xpYi1ibG9jay1lYycsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbXSxcclxuXHR0ZW1wbGF0ZTogJzxwPkJsb2NrIEhlbHBlciBDb21wb25lbnQ8L3A+J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQmxvY2tFY0NvbXBvbmVudCB7XHJcbiAgICAvKipcclxuICAgICAqIENvbnN0YW50ZXMgZGVsIGNvcmVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBjb25zdHMgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0YW50ZXMgZGUgbGEgQVBJXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBhcGlDb25zdHMgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSlcclxuICAgIC8qKlxyXG4gICAgICogVXJsIHBhcmEgbGFzIGltYWdlbmVzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtZWRpYVVybCA9IHRoaXMuY29uc3RzLm1lZGlhVXJsKClcclxuICAgIC8qKlxyXG4gICAgICogVXJsIHBhcmEgbGFzIGltYWdlbmVzIGRlIGxvcyBiYW5uZXJzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtZWRpYUJhbm5lclVybCA9IHRoaXMuY29uc3RzLm1lZGlhQmFubmVyVXJsKClcclxuICAgIC8qKlxyXG4gICAgICogU2kgbGEgdmlzdGEgZXMgbW9iaWxlIG8gbm8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtb2JpbGVTY3JlZW46Ym9vbGVhbiA9IHRoaXMuY29uc3RzLm1vYmlsZVNjcmVlbigpOyBcclxuICAgIFxyXG4gICAgY29uc3RydWN0b3IoKXt9XHJcbiAgICAvKipcclxuICAgICAqIEVzdGEgZnVuY2nDs24gc2VwYXJhIGVsIGPDs2RpZ28gZGVsIGJsb3F1ZSB5IHNlIHF1ZWRhIGNvbiBlbCBlbGVtZW50byBlbiBsYSBwb3NpY2lvbiB1bm8gcGFyYSB1c2FybG8gY29tbyBjbGFzZSBDU1MuIFxyXG4gICAgICogTGEgaWRlYSBlcyBxdWUgZWwgY8OzZGlnbyBkZWwgYmxvcXVlIG1hbnRlbmdhIHVuIGZvcm1hdG8gc2ltaWxhciBhICoqQkxPUVVFLVtub21icmVdLVtleHRyYV0uLi4qKiBlbnRvbmNlcyBlc3RhIGZ1bmNpw7NuIFxyXG4gICAgICogc2UgcXVlZGFyaWEgY29uIGxvIHF1ZSBjb250aWVuZSAqKm5vbWJyZSoqIHBhcmEgdXNhcmxvIGNvbW8gbm9tYnJlIGRlIGNsYXNlIGNzcy5cclxuICAgICAqIEBwYXJhbSBjb2RlIEPDs2RpZ28gZGVsIGJsb3F1ZS5cclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9XHJcbiAgICAgKi9cclxuICAgIHRyaW1DbGFzc0Jsb2NrIChjb2RlOnN0cmluZyk6c3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gKGNvZGUuc3BsaXQoJy0nKS5sZW5ndGggPiAxKSA/IGNvZGUuc3BsaXQoJy0nKVsxXS50b0xvd2VyQ2FzZSgpIDogJydcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogT2J0aWVuZSBsYSBpbWFnZW4gZGVsIGJhbm5lciBkZXBlbmRpZW5kbyBkZSBzaSBlcyBwYXJhIG1vYmlsZSBvIGRlc2t0b3BcclxuICAgICAqIEBwYXJhbSBiYW5uZXIgXHJcbiAgICAgKiBAcmV0dXJucyBcclxuICAgICAqL1xyXG4gICAgZ2V0QmFubmVySW1hZ2UoYmFubmVyOiBhbnkpOnN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLm1vYmlsZVNjcmVlbiAmJiBiYW5uZXIudHJhbnNsYXRpb25zW3RoaXMuYXBpQ29uc3RzLkxPQ0FMRV0ubW9iaWxlSW1hZ2VOYW1lICYmIGJhbm5lci50cmFuc2xhdGlvbnNbdGhpcy5hcGlDb25zdHMuTE9DQUxFXS5tb2JpbGVJbWFnZU5hbWUgIT0gJycpXHJcbiAgICAgICAgICAgID8gYmFubmVyLnRyYW5zbGF0aW9uc1t0aGlzLmFwaUNvbnN0cy5MT0NBTEVdLm1vYmlsZUltYWdlTmFtZVxyXG4gICAgICAgICAgICA6IGJhbm5lci50cmFuc2xhdGlvbnNbdGhpcy5hcGlDb25zdHMuTE9DQUxFXS5pbWFnZU5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgIC8qKlxyXG4gICAgICogT2J0aWVuZSBsYSBpbWFnZW4gZGVsIGJhbm5lciBkZXBlbmRpZW5kbyBkZSBzaSBlcyBwYXJhIG1vYmlsZSBvIGRlc2t0b3AuXHJcbiAgICAgKiBMZSBzdW1hIGVsIHBhdGggcGFyYSBsYXMgdXJsIGRlbCBiYW5uZXIuXHJcbiAgICAgKiBAcGFyYW0gYmFubmVyIFxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIGdldEltYWdlKGJhbm5lcjogYW55KTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tZWRpYUJhbm5lclVybCArXHJcbiAgICAgICAgICAgICh0aGlzLm1vYmlsZVNjcmVlbiAmJiBiYW5uZXIudHJhbnNsYXRpb25zW3RoaXMuYXBpQ29uc3RzLkxPQ0FMRV0ubW9iaWxlSW1hZ2VOYW1lICYmIGJhbm5lci50cmFuc2xhdGlvbnNbdGhpcy5hcGlDb25zdHMuTE9DQUxFXS5tb2JpbGVJbWFnZU5hbWUgIT0gJycpXHJcbiAgICAgICAgICAgID8gYmFubmVyLnRyYW5zbGF0aW9uc1t0aGlzLmFwaUNvbnN0cy5MT0NBTEVdLm1vYmlsZUltYWdlTmFtZVxyXG4gICAgICAgICAgICA6IGJhbm5lci50cmFuc2xhdGlvbnNbdGhpcy5hcGlDb25zdHMuTE9DQUxFXS5pbWFnZU5hbWVcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogUmV0b3JuYSBsYSBjb25maWd1cmFjacOzbiBiYXNlIHBhcmEgZWwgY2FycnVzZWwuXHJcbiAgICAgKiBNw6FzIGRldGFsbGVzOiB7QGxpbmsgaHR0cHM6Ly9zd2lwZXJqcy5jb20vdHlwZXMvaW50ZXJmYWNlcy90eXBlc19zd2lwZXJfb3B0aW9ucy5Td2lwZXJPcHRpb25zfVxyXG4gICAgICogQHJldHVybnMge1N3aXBlck9wdGlvbnN9XHJcbiAgICAgKiBcclxuICAgICAqL1xyXG4gICAgc3dpcGVyT3B0aW9ucygpOlN3aXBlck9wdGlvbnMge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDEsXHJcbiAgICAgICAgICAgIGF1dG9wbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICBsb29wOiB0cnVlLFxyXG4gICAgICAgICAgICBzcGVlZDogMTA1MCxcclxuICAgICAgICAgICAgcGFnaW5hdGlvbjogdHJ1ZSxcclxuICAgICAgICAgICAgbmF2aWdhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIGF1dG9IZWlnaHQ6IHRydWUsXHJcbiAgICAgICAgICAgIGJyZWFrcG9pbnRzOiB7XHJcbiAgICAgICAgICAgICAgICAwOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIDU3Njp7XHJcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMSBcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICA3Njg6IHtcclxuICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAxLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIDk5Mjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDEsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgMTIwMDoge1xyXG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDEsXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59Il19
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYWJzdHJhY3Rpb25zLWNvbXBvbmVudHMvYmxvY2stZWMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFNUU7Ozs7O0dBS0c7QUFPSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCOztPQUVHO0lBQ0ssTUFBTSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQzdDOztPQUVHO0lBQ08sU0FBUyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0lBQ2pEOztPQUVHO0lBQ0ksUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDeEM7O09BRUc7SUFDSSxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQTtJQUNwRDs7T0FFRztJQUNJLFlBQVksR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRXpELGdCQUFjLENBQUM7SUFDZjs7Ozs7O09BTUc7SUFDSCxjQUFjLENBQUUsSUFBVztRQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUMvRSxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILGNBQWMsQ0FBQyxNQUFXO1FBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7WUFDeEosQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlO1lBQzVELENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQy9ELENBQUM7SUFFQTs7Ozs7TUFLRTtJQUNILFFBQVEsQ0FBQyxNQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGNBQWM7WUFDdEIsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7WUFDckosQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlO1lBQzVELENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQzlELENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILGFBQWE7UUFDVCxPQUFPO1lBQ0gsYUFBYSxFQUFFLENBQUM7WUFDaEIsUUFBUSxFQUFFLElBQUk7WUFDZCxJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxJQUFJO1lBQ1gsVUFBVSxFQUFFLElBQUk7WUFDaEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsVUFBVSxFQUFFLElBQUk7WUFDaEIsV0FBVyxFQUFFO2dCQUNULENBQUMsRUFBRTtvQkFDQyxhQUFhLEVBQUUsQ0FBQztpQkFDbkI7Z0JBQ0QsR0FBRyxFQUFDO29CQUNBLGFBQWEsRUFBRSxDQUFDO2lCQUNuQjtnQkFDRCxHQUFHLEVBQUU7b0JBQ0QsYUFBYSxFQUFFLENBQUM7aUJBQ25CO2dCQUNELEdBQUcsRUFBRTtvQkFDRCxhQUFhLEVBQUUsQ0FBQztpQkFDbkI7Z0JBQ0QsSUFBSSxFQUFFO29CQUNGLGFBQWEsRUFBRSxDQUFDO2lCQUNuQjthQUNKO1NBQ0osQ0FBQTtJQUNMLENBQUM7d0dBekZRLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLHdFQUZsQiwrQkFBK0I7OzRGQUU3QixnQkFBZ0I7a0JBTjVCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsRUFBRTtvQkFDWCxRQUFRLEVBQUUsK0JBQStCO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQXBpQ29uc3RhbnRzU2VydmljZSwgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBTd2lwZXJPcHRpb25zIH0gZnJvbSBcInN3aXBlci90eXBlc1wiO1xuLyoqXG4gKiBDb21wb25lbnRlIHBhcmEgYWJzdHJhZXIgbGEgZnVuY2lvbmFsaWRhZCBkZSBsb3MgY29tcG9uZW50ZXNcbiAqIHkgcXVlIHB1ZWRhbiBoZXJlZGFybGEuXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgQmxvY2tFY0NvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdsaWItYmxvY2stZWMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbXSxcblx0dGVtcGxhdGU6ICc8cD5CbG9jayBIZWxwZXIgQ29tcG9uZW50PC9wPidcbn0pXG5leHBvcnQgY2xhc3MgQmxvY2tFY0NvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogQ29uc3RhbnRlcyBkZWwgY29yZVxuICAgICAqL1xuICAgIHByaXZhdGUgY29uc3RzID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKVxuICAgIC8qKlxuICAgICAqIENvbnN0YW50ZXMgZGUgbGEgQVBJXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFwaUNvbnN0cyA9IGluamVjdChBcGlDb25zdGFudHNTZXJ2aWNlKVxuICAgIC8qKlxuICAgICAqIFVybCBwYXJhIGxhcyBpbWFnZW5lc1xuICAgICAqL1xuICAgIHB1YmxpYyBtZWRpYVVybCA9IHRoaXMuY29uc3RzLm1lZGlhVXJsKClcbiAgICAvKipcbiAgICAgKiBVcmwgcGFyYSBsYXMgaW1hZ2VuZXMgZGUgbG9zIGJhbm5lcnNcbiAgICAgKi9cbiAgICBwdWJsaWMgbWVkaWFCYW5uZXJVcmwgPSB0aGlzLmNvbnN0cy5tZWRpYUJhbm5lclVybCgpXG4gICAgLyoqXG4gICAgICogU2kgbGEgdmlzdGEgZXMgbW9iaWxlIG8gbm8uXG4gICAgICovXG4gICAgcHVibGljIG1vYmlsZVNjcmVlbjpib29sZWFuID0gdGhpcy5jb25zdHMubW9iaWxlU2NyZWVuKCk7IFxuICAgIFxuICAgIGNvbnN0cnVjdG9yKCl7fVxuICAgIC8qKlxuICAgICAqIEVzdGEgZnVuY2nDs24gc2VwYXJhIGVsIGPDs2RpZ28gZGVsIGJsb3F1ZSB5IHNlIHF1ZWRhIGNvbiBlbCBlbGVtZW50byBlbiBsYSBwb3NpY2lvbiB1bm8gcGFyYSB1c2FybG8gY29tbyBjbGFzZSBDU1MuIFxuICAgICAqIExhIGlkZWEgZXMgcXVlIGVsIGPDs2RpZ28gZGVsIGJsb3F1ZSBtYW50ZW5nYSB1biBmb3JtYXRvIHNpbWlsYXIgYSAqKkJMT1FVRS1bbm9tYnJlXS1bZXh0cmFdLi4uKiogZW50b25jZXMgZXN0YSBmdW5jacOzbiBcbiAgICAgKiBzZSBxdWVkYXJpYSBjb24gbG8gcXVlIGNvbnRpZW5lICoqbm9tYnJlKiogcGFyYSB1c2FybG8gY29tbyBub21icmUgZGUgY2xhc2UgY3NzLlxuICAgICAqIEBwYXJhbSBjb2RlIEPDs2RpZ28gZGVsIGJsb3F1ZS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAqL1xuICAgIHRyaW1DbGFzc0Jsb2NrIChjb2RlOnN0cmluZyk6c3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIChjb2RlLnNwbGl0KCctJykubGVuZ3RoID4gMSkgPyBjb2RlLnNwbGl0KCctJylbMV0udG9Mb3dlckNhc2UoKSA6ICcnXG4gICAgfVxuICAgIC8qKlxuICAgICAqIE9idGllbmUgbGEgaW1hZ2VuIGRlbCBiYW5uZXIgZGVwZW5kaWVuZG8gZGUgc2kgZXMgcGFyYSBtb2JpbGUgbyBkZXNrdG9wXG4gICAgICogQHBhcmFtIGJhbm5lciBcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBnZXRCYW5uZXJJbWFnZShiYW5uZXI6IGFueSk6c3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLm1vYmlsZVNjcmVlbiAmJiBiYW5uZXIudHJhbnNsYXRpb25zW3RoaXMuYXBpQ29uc3RzLkxPQ0FMRV0ubW9iaWxlSW1hZ2VOYW1lICYmIGJhbm5lci50cmFuc2xhdGlvbnNbdGhpcy5hcGlDb25zdHMuTE9DQUxFXS5tb2JpbGVJbWFnZU5hbWUgIT0gJycpXG4gICAgICAgICAgICA/IGJhbm5lci50cmFuc2xhdGlvbnNbdGhpcy5hcGlDb25zdHMuTE9DQUxFXS5tb2JpbGVJbWFnZU5hbWVcbiAgICAgICAgICAgIDogYmFubmVyLnRyYW5zbGF0aW9uc1t0aGlzLmFwaUNvbnN0cy5MT0NBTEVdLmltYWdlTmFtZTtcbiAgICB9XG5cbiAgICAgLyoqXG4gICAgICogT2J0aWVuZSBsYSBpbWFnZW4gZGVsIGJhbm5lciBkZXBlbmRpZW5kbyBkZSBzaSBlcyBwYXJhIG1vYmlsZSBvIGRlc2t0b3AuXG4gICAgICogTGUgc3VtYSBlbCBwYXRoIHBhcmEgbGFzIHVybCBkZWwgYmFubmVyLlxuICAgICAqIEBwYXJhbSBiYW5uZXIgXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgZ2V0SW1hZ2UoYmFubmVyOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5tZWRpYUJhbm5lclVybCArXG4gICAgICAgICAgICAodGhpcy5tb2JpbGVTY3JlZW4gJiYgYmFubmVyLnRyYW5zbGF0aW9uc1t0aGlzLmFwaUNvbnN0cy5MT0NBTEVdLm1vYmlsZUltYWdlTmFtZSAmJiBiYW5uZXIudHJhbnNsYXRpb25zW3RoaXMuYXBpQ29uc3RzLkxPQ0FMRV0ubW9iaWxlSW1hZ2VOYW1lICE9ICcnKVxuICAgICAgICAgICAgPyBiYW5uZXIudHJhbnNsYXRpb25zW3RoaXMuYXBpQ29uc3RzLkxPQ0FMRV0ubW9iaWxlSW1hZ2VOYW1lXG4gICAgICAgICAgICA6IGJhbm5lci50cmFuc2xhdGlvbnNbdGhpcy5hcGlDb25zdHMuTE9DQUxFXS5pbWFnZU5hbWVcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0b3JuYSBsYSBjb25maWd1cmFjacOzbiBiYXNlIHBhcmEgZWwgY2FycnVzZWwuXG4gICAgICogTcOhcyBkZXRhbGxlczoge0BsaW5rIGh0dHBzOi8vc3dpcGVyanMuY29tL3R5cGVzL2ludGVyZmFjZXMvdHlwZXNfc3dpcGVyX29wdGlvbnMuU3dpcGVyT3B0aW9uc31cbiAgICAgKiBAcmV0dXJucyB7U3dpcGVyT3B0aW9uc31cbiAgICAgKiBcbiAgICAgKi9cbiAgICBzd2lwZXJPcHRpb25zKCk6U3dpcGVyT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAxLFxuICAgICAgICAgICAgYXV0b3BsYXk6IHRydWUsXG4gICAgICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICAgICAgc3BlZWQ6IDEwNTAsXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiB0cnVlLFxuICAgICAgICAgICAgbmF2aWdhdGlvbjogZmFsc2UsXG4gICAgICAgICAgICBhdXRvSGVpZ2h0OiB0cnVlLFxuICAgICAgICAgICAgYnJlYWtwb2ludHM6IHtcbiAgICAgICAgICAgICAgICAwOiB7XG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDFcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIDU3Njp7XG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1BlclZpZXc6IDEgXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICA3Njg6IHtcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzUGVyVmlldzogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIDk5Mjoge1xuICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAxLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgMTIwMDoge1xuICAgICAgICAgICAgICAgICAgICBzbGlkZXNQZXJWaWV3OiAxLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufSJdfQ==
@@ -1,3 +1,3 @@
1
1
  export * from './menu-ec.component';
2
2
  export * from './block-ec.component';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hYnN0cmFjdGlvbnMtY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21lbnUtZWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9ibG9jay1lYy5jb21wb25lbnQnOyJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hYnN0cmFjdGlvbnMtY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21lbnUtZWMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYmxvY2stZWMuY29tcG9uZW50JzsiXX0=
@@ -117,22 +117,6 @@ export class MenuEcComponent {
117
117
  hasVisibleProperty(category) {
118
118
  return category.isVisible === true;
119
119
  }
120
- filterVisibleTree(list) {
121
- return (list ?? [])
122
- .filter((n) => n?.isVisible === true)
123
- .map(n => ({ ...n, children: this.filterVisibleTree(n.children) }));
124
- }
125
- // Exponé streams ya filtrados
126
- categoriesVisible$ = this.categories$.pipe(map((list) => this.filterVisibleTree(list)));
127
- sectionsVisible$ = this.sections$.pipe(map((list) => this.filterVisibleTree(list)));
128
- attributesVisible$ = this.attributes$.pipe(map((list) => this.filterVisibleTree(list)));
129
- // Helpers de conveniencia opcionales
130
- getVisibleChildren(node) {
131
- return this.filterVisibleTree(node?.children);
132
- }
133
- hasVisibleChildren(node) {
134
- return this.getVisibleChildren(node).length > 0;
135
- }
136
120
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MenuEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
137
121
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MenuEcComponent, isStandalone: true, selector: "lib-footer-ec", ngImport: i0, template: '<p>Menu and Footer Helper Component</p>', isInline: true });
138
122
  }
@@ -145,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
145
129
  template: '<p>Menu and Footer Helper Component</p>'
146
130
  }]
147
131
  }], ctorParameters: () => [] });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hYnN0cmFjdGlvbnMtY29tcG9uZW50cy9tZW51LWVjLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFNL0Q7Ozs7R0FJRztBQU9ILE1BQU0sT0FBTyxlQUFlO0lBQ25CLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDdkMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDN0MsWUFBWSxHQUFnQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDL0MsYUFBYSxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDMUQ7O09BRUc7SUFDSyxNQUFNLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFFN0M7O09BRUc7SUFDSSxXQUFXLEdBQTJCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDaEY7O09BRUc7SUFDSSxTQUFTLEdBQTBCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDM0U7O09BRUc7SUFDSSxXQUFXLEdBQTRCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENB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QUMvQyxDQUFDO0lBRU0sa0JBQWtCLENBQW9ELElBQVE7UUFDcEYsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNqRCxDQUFDO3dHQS9JVyxlQUFlOzRGQUFmLGVBQWUseUVBRmpCLHlDQUF5Qzs7NEZBRXZDLGVBQWU7a0JBTjNCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsRUFBRTtvQkFDWCxRQUFRLEVBQUUseUNBQXlDO2lCQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgYWZ0ZXJSZW5kZXIsIENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBPcHRpb25zU2VydmljZSwgUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEF0dHJpYnV0ZSwgQ2F0ZWdvcnksIFBhcmFtZXRlciwgU2VjdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcclxuLyoqXHJcbiAqIFBhcmEgZGlmZXJlbmNpYXIgbG9zIHRpcG9zIGRlIE1lbnVcclxuICovXHJcbnR5cGUgTWVudVR5cGUgPSBcImNhdGVnb3J5XCIgfCBcImF0dHJpYnV0ZVwiIHwgXCJzZWN0aW9uXCJcclxudHlwZSBUcmVlTm9kZTxUPiA9IFQgJiB7IGlzVmlzaWJsZT86IGJvb2xlYW47IGNoaWxkcmVuPzogVFtdIH07XHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIHF1ZSBzaXJ2ZSBwYXJhIGFic3RyYWVyIGxhIGZ1bmNpb25hbGlkYWQgcXVlIGNvbXBhcnRlbiBcclxuICogZWwgbWVuw7ogeSBlbCBmb290ZXIuXHJcbiAqIEBjbGFzcyBNZW51RWNDb21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLWZvb3Rlci1lYycsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbXSxcclxuXHR0ZW1wbGF0ZTogJzxwPk1lbnUgYW5kIEZvb3RlciBIZWxwZXIgQ29tcG9uZW50PC9wPidcclxufSlcclxuZXhwb3J0IGNsYXNzIE1lbnVFY0NvbXBvbmVudCB7XHJcblx0cHJpdmF0ZSBvcHRpb25zU2VydmljZSA9IGluamVjdChPcHRpb25zU2VydmljZSlcclxuXHRwcml2YXRlIHBhcmFtZXRlcnNTZXJ2aWNlID0gaW5qZWN0KFBhcmFtZXRlcnNTZXJ2aWNlKVxyXG5cdHByaXZhdGUgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSlcclxuXHRwcml2YXRlIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpXHJcblx0LyoqXHJcblx0ICogQ29uc3RhbnRlcyBkZWwgY29yZS5cclxuXHQgKi9cclxuXHRwcml2YXRlIGNvbnN0cyA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSlcclxuXHJcblx0LyoqXHJcblx0ICogT2JzZXJ2YWJsZSBkZSBjYXRlZ29yaWFzXHJcblx0ICovXHJcblx0cHVibGljIGNhdGVnb3JpZXMkOiBPYnNlcnZhYmxlPENhdGVnb3J5W10+ID0gdGhpcy5vcHRpb25zU2VydmljZS5nZXRDYXRlZ29yaWVzKClcclxuXHQvKipcclxuXHQgKiBPYnNlcnZhYmxlIGRlIHNlY2Npb25lc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBzZWN0aW9ucyQ6IE9ic2VydmFibGU8U2VjdGlvbltdPiA9IHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0U2VjdGlvbnMoKVxyXG5cdC8qKlxyXG5cdCAqIE9ic2VydmFibGUgZGUgYXRyaWJ1dG9zXHJcblx0ICovXHJcblx0cHVibGljIGF0dHJpYnV0ZXMkOiBPYnNlcnZhYmxlPEF0dHJpYnV0ZVtdPiA9IHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0QXR0cmlidXRlcygpXHJcblx0LyoqXHJcblx0ICogT2JzZXJ2YWJsZSBkZSBwYXJhbWV0cm9zXHJcblx0ICovXHJcblx0cHVibGljIHBhcmFtZXRlcnMkOiBPYnNlcnZhYmxlPFBhcmFtZXRlcltdIHwgbnVsbD4gPSB0aGlzLnBhcmFtZXRlcnNTZXJ2aWNlLmdldFBhcmFtZXRlcnMoKVxyXG5cdC8qKlxyXG5cdCAqIFVybCBwYXJhIGxhcyBpbWFnZW5lcyBndWFyZGFkZXMgZW4gZWwgYmFja2VuZC5cclxuXHQgKi9cclxuXHRwdWJsaWMgbWVkaWFVcmwgPSB0aGlzLmNvbnN0cy5tZWRpYVVybCgpXHJcblx0LyoqXHJcblx0ICogRnVuY2lvbiBwYXJhIHNhYmVyIHNpIGV4aXN0ZW4gdW4gcGFyYW1ldHJvLiBcclxuXHQgKi9cclxuXHRwdWJsaWMgaGFzUGFyYW1zID0gdGhpcy5wYXJhbWV0ZXJzU2VydmljZS5oYXNQYXJhbXNcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7IH1cclxuXHJcblx0cHJvdGVjdGVkIGFkZENoaWxkcmVuID0gKG1lbnVUeXBlOiBNZW51VHlwZSwgY29kZTogc3RyaW5nLCBpdGVtOiBhbnksIHN0YWNrUGxhY2UgPSAnZW5kJyk6IHZvaWQgPT4ge1xyXG5cclxuXHR9XHJcblxyXG5cdC8qIHByb3RlY3RlZCBhZGRDaGlsZHJlbiA9IChtZW51SXRlbXM6IGFueVtdLCBjb2RlOiBzdHJpbmcsIGl0ZW06IGFueSwgc3RhY2tQbGFjZSA9ICdlbmQnKSA9PiB7XHJcblx0ICAoc3RhY2tQbGFjZSA9PT0gJ3N0YXJ0JylcclxuXHRcdD8gbWVudUl0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmNvZGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoY29kZSkpPy5jaGlsZHJlbi51bnNoaWZ0KGl0ZW0pXHJcblx0XHQ6IG1lbnVJdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5jb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGNvZGUpKT8uY2hpbGRyZW4ucHVzaChpdGVtKVxyXG4gICAgXHJcblx0fSAqL1xyXG5cdC8qKlxyXG5cdCAqIEFjdHVhbGl6YSBsYXMgY2F0ZWdvcmlhcyBhZ3JlZ2FuZG8gbnVldmFzLlxyXG5cdCAqIEBwYXJhbSBjYXRlZ29yaWVzIFxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCB1cGRhdGVDYXRlZ29yaWVzKGNhdGVnb3JpZXM6IENhdGVnb3J5W10pIHtcclxuXHRcdHRoaXMuY2F0ZWdvcmllcyQgPSB0aGlzLmNhdGVnb3JpZXMkLnBpcGUobWFwKChkYXRhOiBDYXRlZ29yeVtdKSA9PiB7XHJcblx0XHRcdHJldHVybiBbLi4uZGF0YSwgLi4uY2F0ZWdvcmllc11cclxuXHRcdH0pKVxyXG5cdH1cclxuXHQvKipcclxuXHQgKiBBY3R1YWxpemEgbGFzIHNlY2Npb25lcyBhZ3JlZ2FuZG8gbnVldmFzLlxyXG5cdCAqIEBwYXJhbSBzZWN0aW9ucyBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgdXBkYXRlU2VjdGlvbnMoc2VjdGlvbnM6IFNlY3Rpb25bXSkge1xyXG5cdFx0dGhpcy5zZWN0aW9ucyQgPSB0aGlzLnNlY3Rpb25zJC5waXBlKG1hcCgoZGF0YTogU2VjdGlvbltdKSA9PiB7XHJcblx0XHRcdHJldHVybiBbLi4uZGF0YSwgLi4uc2VjdGlvbnNdXHJcblx0XHR9KSlcclxuXHR9XHJcblx0LyoqXHJcblx0ICogQWN0dWFsaXphIGVsIG1lbsO6IGRlIGF0cmlidXRvcyBhZ3JlZGFuZG8gbnVldm9zLlxyXG5cdCAqIEBwYXJhbSBhdHRyaWJ1dGVzIFxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCB1cGRhdGVBdHRyaWJ1dGVzKGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZVtdKSB7XHJcblx0XHR0aGlzLmF0dHJpYnV0ZXMkID0gdGhpcy5hdHRyaWJ1dGVzJC5waXBlKG1hcCgoZGF0YTogQXR0cmlidXRlW10pID0+IHtcclxuXHRcdFx0cmV0dXJuIFsuLi5kYXRhLCAuLi5hdHRyaWJ1dGVzXVxyXG5cdFx0fSkpXHJcblx0fVxyXG5cclxuXHRwdWJsaWMgaXNBdXRoZW50aWNhdGVkKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2F1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCgpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGxvZ291dCgpIHtcclxuXHRcdHRoaXMuX2F1dGhTZXJ2aWNlLmxvZ291dCgpO1xyXG5cdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ2xvZ291dC1zdWNjZXNzJyk7XHJcblx0XHR3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvaG9tZSc7IC8vIFJlZGlyaWdlIGEgbGEgcMOhZ2luYSBkZSBpbmljaW8gZGVzcHXDqXMgZGVsIGxvZ291dFxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQcOxYWRlIHZhcmlvcyBoaWpvcyBhIHVuYSBzZWNjacOzbiBwb3IgY29kZS5cclxuXHQgKiBAcGFyYW0gc2VjdGlvbkNvZGUgQ8OzZGlnbyBkZSBsYSBzZWNjacOzblxyXG5cdCAqIEBwYXJhbSBjaGlsZHJlbiBBcnJheSBkZSBoaWpvcyBhIGFncmVnYXJcclxuXHQgKiBAcGFyYW0gc3RhY2tQbGFjZSAnc3RhcnQnIHwgJ2VuZCcgKHBvciBkZWZlY3RvICdlbmQnKVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBhZGRTZWN0aW9uQ2hpbGRyZW4oc2VjdGlvbkNvZGU6IHN0cmluZywgY2hpbGRyZW46IGFueVtdLCBzdGFja1BsYWNlOiAnc3RhcnQnIHwgJ2VuZCcgPSAnZW5kJykge1xyXG5cdFx0dGhpcy5zZWN0aW9ucyQgPSB0aGlzLnNlY3Rpb25zJC5waXBlKFxyXG5cdFx0XHRtYXAoKHNlY3Rpb25zOiBTZWN0aW9uW10pID0+IHtcclxuXHRcdFx0XHRyZXR1cm4gc2VjdGlvbnMubWFwKHNlY3Rpb24gPT4ge1xyXG5cdFx0XHRcdFx0aWYgKHNlY3Rpb24uY29kZT8udG9Mb3dlckNhc2UoKSA9PT0gc2VjdGlvbkNvZGUudG9Mb3dlckNhc2UoKSkge1xyXG5cdFx0XHRcdFx0XHRpZiAoIXNlY3Rpb24uY2hpbGRyZW4pIHNlY3Rpb24uY2hpbGRyZW4gPSBbXTtcclxuXHRcdFx0XHRcdFx0aWYgKHN0YWNrUGxhY2UgPT09ICdzdGFydCcpIHtcclxuXHRcdFx0XHRcdFx0XHRzZWN0aW9uLmNoaWxkcmVuID0gWy4uLmNoaWxkcmVuLCAuLi5zZWN0aW9uLmNoaWxkcmVuXTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRzZWN0aW9uLmNoaWxkcmVuID0gWy4uLnNlY3Rpb24uY2hpbGRyZW4sIC4uLmNoaWxkcmVuXTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIHNlY3Rpb247XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvKipcclxuICAgKiBWZXJpZmljYSBzaSB1bmEgY2F0ZWdvcsOtYSB0aWVuZSBsYSBwcm9waWVkYWQgaXNWaXNpYmxlIHkgZXN0w6EgbWFyY2FkYSBjb21vIHZpc2libGVcclxuICAgKiBAcGFyYW0gY2F0ZWdvcnkgLSBMYSBjYXRlZ29yw61hIGEgdmVyaWZpY2FyXHJcbiAgICogQHJldHVybnMgdHJ1ZSBzaSBsYSBjYXRlZ29yw61hIGVzIHZpc2libGUsIGZhbHNlIGVuIGNhc28gY29udHJhcmlvXHJcbiAgICovXHJcblx0aGFzVmlzaWJsZVByb3BlcnR5KGNhdGVnb3J5OiBDYXRlZ29yeSk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIChjYXRlZ29yeSBhcyBhbnkpLmlzVmlzaWJsZSA9PT0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZmlsdGVyVmlzaWJsZVRyZWU8VCBleHRlbmRzIHsgaXNWaXNpYmxlPzogYm9vbGVhbjsgY2hpbGRyZW4/OiBUW10gfT4obGlzdD86IFRbXSk6IFRbXSB7XHJcblx0XHRyZXR1cm4gKGxpc3QgPz8gW10pXHJcblx0XHRcdC5maWx0ZXIoKG4pOiBuIGlzIFQgPT4gbj8uaXNWaXNpYmxlID09PSB0cnVlKVxyXG5cdFx0XHQubWFwKG4gPT4gKHsgLi4ubiwgY2hpbGRyZW46IHRoaXMuZmlsdGVyVmlzaWJsZVRyZWUobi5jaGlsZHJlbikgfSBhcyBUKSk7XHJcblx0fVxyXG5cclxuXHQvLyBFeHBvbsOpIHN0cmVhbXMgeWEgZmlsdHJhZG9zXHJcblx0cHVibGljIGNhdGVnb3JpZXNWaXNpYmxlJDogT2JzZXJ2YWJsZTxDYXRlZ29yeVtdPiA9IHRoaXMuY2F0ZWdvcmllcyQucGlwZShcclxuXHRcdG1hcCgobGlzdDogQ2F0ZWdvcnlbXSkgPT4gdGhpcy5maWx0ZXJWaXNpYmxlVHJlZTxDYXRlZ29yeT4obGlzdCkpXHJcblx0KTtcclxuXHJcblx0cHVibGljIHNlY3Rpb25zVmlzaWJsZSQ6IE9ic2VydmFibGU8U2VjdGlvbltdPiA9IHRoaXMuc2VjdGlvbnMkLnBpcGUoXHJcblx0XHRtYXAoKGxpc3Q6IFNlY3Rpb25bXSkgPT4gdGhpcy5maWx0ZXJWaXNpYmxlVHJlZTxTZWN0aW9uPihsaXN0KSlcclxuXHQpO1xyXG5cclxuXHRwdWJsaWMgYXR0cmlidXRlc1Zpc2libGUkOiBPYnNlcnZhYmxlPEF0dHJpYnV0ZVtdPiA9IHRoaXMuYXR0cmlidXRlcyQucGlwZShcclxuXHRcdG1hcCgobGlzdDogQXR0cmlidXRlW10pID0+IHRoaXMuZmlsdGVyVmlzaWJsZVRyZWU8QXR0cmlidXRlPihsaXN0KSlcclxuXHQpO1xyXG5cclxuXHQvLyBIZWxwZXJzIGRlIGNvbnZlbmllbmNpYSBvcGNpb25hbGVzXHJcblx0cHVibGljIGdldFZpc2libGVDaGlsZHJlbjxUIGV4dGVuZHMgeyBpc1Zpc2libGU/OiBib29sZWFuOyBjaGlsZHJlbj86IFRbXSB9Pihub2RlPzogVCk6IFRbXSB7XHJcblx0XHRyZXR1cm4gdGhpcy5maWx0ZXJWaXNpYmxlVHJlZShub2RlPy5jaGlsZHJlbik7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgaGFzVmlzaWJsZUNoaWxkcmVuPFQgZXh0ZW5kcyB7IGlzVmlzaWJsZT86IGJvb2xlYW47IGNoaWxkcmVuPzogVFtdIH0+KG5vZGU/OiBUKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5nZXRWaXNpYmxlQ2hpbGRyZW4obm9kZSkubGVuZ3RoID4gMDtcclxuXHR9XHJcbn0iXX0=
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hYnN0cmFjdGlvbnMtY29tcG9uZW50cy9tZW51LWVjLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFLL0Q7Ozs7R0FJRztBQU9ILE1BQU0sT0FBTyxlQUFlO0lBQ25CLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDdkMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDN0MsWUFBWSxHQUFnQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDL0MsYUFBYSxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDMUQ7O09BRUc7SUFDSyxNQUFNLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFFN0M7O09BRUc7SUFDSSxXQUFXLEdBQTJCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDaEY7O09BRUc7SUFDSSxTQUFTLEdBQTBCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDM0U7O09BRUc7SUFDSSxXQUFXLEdBQTRCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENB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LENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDO0lBQ0Q7Ozs7S0FJSTtJQUNKLGtCQUFrQixDQUFDLFFBQWtCO1FBQ3BDLE9BQVEsUUFBZ0IsQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDO0lBQzdDLENBQUM7d0dBbkhXLGVBQWU7NEZBQWYsZUFBZSx5RUFGakIseUNBQXlDOzs0RkFFdkMsZUFBZTtrQkFOM0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLFFBQVEsRUFBRSx5Q0FBeUM7aUJBQ25EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBhZnRlclJlbmRlciwgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBPcHRpb25zU2VydmljZSwgUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEF0dHJpYnV0ZSwgQ2F0ZWdvcnksIFBhcmFtZXRlciwgU2VjdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWMtc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG4vKipcbiAqIFBhcmEgZGlmZXJlbmNpYXIgbG9zIHRpcG9zIGRlIE1lbnVcbiAqL1xudHlwZSBNZW51VHlwZSA9IFwiY2F0ZWdvcnlcIiB8IFwiYXR0cmlidXRlXCIgfCBcInNlY3Rpb25cIlxuLyoqXG4gKiBDb21wb25lbnRlIHF1ZSBzaXJ2ZSBwYXJhIGFic3RyYWVyIGxhIGZ1bmNpb25hbGlkYWQgcXVlIGNvbXBhcnRlbiBcbiAqIGVsIG1lbsO6IHkgZWwgZm9vdGVyLlxuICogQGNsYXNzIE1lbnVFY0NvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdsaWItZm9vdGVyLWVjJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW10sXG5cdHRlbXBsYXRlOiAnPHA+TWVudSBhbmQgRm9vdGVyIEhlbHBlciBDb21wb25lbnQ8L3A+J1xufSlcbmV4cG9ydCBjbGFzcyBNZW51RWNDb21wb25lbnQge1xuXHRwcml2YXRlIG9wdGlvbnNTZXJ2aWNlID0gaW5qZWN0KE9wdGlvbnNTZXJ2aWNlKVxuXHRwcml2YXRlIHBhcmFtZXRlcnNTZXJ2aWNlID0gaW5qZWN0KFBhcmFtZXRlcnNTZXJ2aWNlKVxuXHRwcml2YXRlIF9hdXRoU2VydmljZTogQXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpXG5cdHByaXZhdGUgX3RvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlID0gaW5qZWN0KFRvYXN0U2VydmljZSlcblx0LyoqXG5cdCAqIENvbnN0YW50ZXMgZGVsIGNvcmUuXG5cdCAqL1xuXHRwcml2YXRlIGNvbnN0cyA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSlcblxuXHQvKipcblx0ICogT2JzZXJ2YWJsZSBkZSBjYXRlZ29yaWFzXG5cdCAqL1xuXHRwdWJsaWMgY2F0ZWdvcmllcyQ6IE9ic2VydmFibGU8Q2F0ZWdvcnlbXT4gPSB0aGlzLm9wdGlvbnNTZXJ2aWNlLmdldENhdGVnb3JpZXMoKVxuXHQvKipcblx0ICogT2JzZXJ2YWJsZSBkZSBzZWNjaW9uZXNcblx0ICovXG5cdHB1YmxpYyBzZWN0aW9ucyQ6IE9ic2VydmFibGU8U2VjdGlvbltdPiA9IHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0U2VjdGlvbnMoKVxuXHQvKipcblx0ICogT2JzZXJ2YWJsZSBkZSBhdHJpYnV0b3Ncblx0ICovXG5cdHB1YmxpYyBhdHRyaWJ1dGVzJDogT2JzZXJ2YWJsZTxBdHRyaWJ1dGVbXT4gPSB0aGlzLm9wdGlvbnNTZXJ2aWNlLmdldEF0dHJpYnV0ZXMoKVxuXHQvKipcblx0ICogT2JzZXJ2YWJsZSBkZSBwYXJhbWV0cm9zXG5cdCAqL1xuXHRwdWJsaWMgcGFyYW1ldGVycyQ6IE9ic2VydmFibGU8UGFyYW1ldGVyW10gfCBudWxsPiA9IHRoaXMucGFyYW1ldGVyc1NlcnZpY2UuZ2V0UGFyYW1ldGVycygpXG5cdC8qKlxuXHQgKiBVcmwgcGFyYSBsYXMgaW1hZ2VuZXMgZ3VhcmRhZGVzIGVuIGVsIGJhY2tlbmQuXG5cdCAqL1xuXHRwdWJsaWMgbWVkaWFVcmwgPSB0aGlzLmNvbnN0cy5tZWRpYVVybCgpXG5cdC8qKlxuXHQgKiBGdW5jaW9uIHBhcmEgc2FiZXIgc2kgZXhpc3RlbiB1biBwYXJhbWV0cm8uIFxuXHQgKi9cblx0cHVibGljIGhhc1BhcmFtcyA9IHRoaXMucGFyYW1ldGVyc1NlcnZpY2UuaGFzUGFyYW1zXG5cblx0Y29uc3RydWN0b3IoKSB7IH1cblxuXHRwcm90ZWN0ZWQgYWRkQ2hpbGRyZW4gPSAobWVudVR5cGU6IE1lbnVUeXBlLCBjb2RlOiBzdHJpbmcsIGl0ZW06IGFueSwgc3RhY2tQbGFjZSA9ICdlbmQnKTogdm9pZCA9PiB7XG5cblx0fVxuXG5cdC8qIHByb3RlY3RlZCBhZGRDaGlsZHJlbiA9IChtZW51SXRlbXM6IGFueVtdLCBjb2RlOiBzdHJpbmcsIGl0ZW06IGFueSwgc3RhY2tQbGFjZSA9ICdlbmQnKSA9PiB7XG5cdCAgKHN0YWNrUGxhY2UgPT09ICdzdGFydCcpXG5cdFx0PyBtZW51SXRlbXMuZmluZChpdGVtID0+IGl0ZW0uY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjb2RlKSk/LmNoaWxkcmVuLnVuc2hpZnQoaXRlbSlcblx0XHQ6IG1lbnVJdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5jb2RlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGNvZGUpKT8uY2hpbGRyZW4ucHVzaChpdGVtKVxuICAgIFxuXHR9ICovXG5cdC8qKlxuXHQgKiBBY3R1YWxpemEgbGFzIGNhdGVnb3JpYXMgYWdyZWdhbmRvIG51ZXZhcy5cblx0ICogQHBhcmFtIGNhdGVnb3JpZXMgXG5cdCAqL1xuXHRwcm90ZWN0ZWQgdXBkYXRlQ2F0ZWdvcmllcyhjYXRlZ29yaWVzOiBDYXRlZ29yeVtdKSB7XG5cdFx0dGhpcy5jYXRlZ29yaWVzJCA9IHRoaXMuY2F0ZWdvcmllcyQucGlwZShtYXAoKGRhdGE6IENhdGVnb3J5W10pID0+IHtcblx0XHRcdHJldHVybiBbLi4uZGF0YSwgLi4uY2F0ZWdvcmllc11cblx0XHR9KSlcblx0fVxuXHQvKipcblx0ICogQWN0dWFsaXphIGxhcyBzZWNjaW9uZXMgYWdyZWdhbmRvIG51ZXZhcy5cblx0ICogQHBhcmFtIHNlY3Rpb25zIFxuXHQgKi9cblx0cHJvdGVjdGVkIHVwZGF0ZVNlY3Rpb25zKHNlY3Rpb25zOiBTZWN0aW9uW10pIHtcblx0XHR0aGlzLnNlY3Rpb25zJCA9IHRoaXMuc2VjdGlvbnMkLnBpcGUobWFwKChkYXRhOiBTZWN0aW9uW10pID0+IHtcblx0XHRcdHJldHVybiBbLi4uZGF0YSwgLi4uc2VjdGlvbnNdXG5cdFx0fSkpXG5cdH1cblx0LyoqXG5cdCAqIEFjdHVhbGl6YSBlbCBtZW7DuiBkZSBhdHJpYnV0b3MgYWdyZWRhbmRvIG51ZXZvcy5cblx0ICogQHBhcmFtIGF0dHJpYnV0ZXMgXG5cdCAqL1xuXHRwcm90ZWN0ZWQgdXBkYXRlQXR0cmlidXRlcyhhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXSkge1xuXHRcdHRoaXMuYXR0cmlidXRlcyQgPSB0aGlzLmF0dHJpYnV0ZXMkLnBpcGUobWFwKChkYXRhOiBBdHRyaWJ1dGVbXSkgPT4ge1xuXHRcdFx0cmV0dXJuIFsuLi5kYXRhLCAuLi5hdHRyaWJ1dGVzXVxuXHRcdH0pKVxuXHR9XG5cblx0cHVibGljIGlzQXV0aGVudGljYXRlZCgpIHtcblx0XHRyZXR1cm4gdGhpcy5fYXV0aFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkKCk7XG5cdH1cblxuXHRwdWJsaWMgbG9nb3V0KCkge1xuXHRcdHRoaXMuX2F1dGhTZXJ2aWNlLmxvZ291dCgpO1xuXHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdsb2dvdXQtc3VjY2VzcycpO1xuXHRcdHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9ob21lJzsgLy8gUmVkaXJpZ2UgYSBsYSBww6FnaW5hIGRlIGluaWNpbyBkZXNwdcOpcyBkZWwgbG9nb3V0XG5cdH1cblxuXHQvKipcblx0ICogQcOxYWRlIHZhcmlvcyBoaWpvcyBhIHVuYSBzZWNjacOzbiBwb3IgY29kZS5cblx0ICogQHBhcmFtIHNlY3Rpb25Db2RlIEPDs2RpZ28gZGUgbGEgc2VjY2nDs25cblx0ICogQHBhcmFtIGNoaWxkcmVuIEFycmF5IGRlIGhpam9zIGEgYWdyZWdhclxuXHQgKiBAcGFyYW0gc3RhY2tQbGFjZSAnc3RhcnQnIHwgJ2VuZCcgKHBvciBkZWZlY3RvICdlbmQnKVxuXHQgKi9cblx0cHVibGljIGFkZFNlY3Rpb25DaGlsZHJlbihzZWN0aW9uQ29kZTogc3RyaW5nLCBjaGlsZHJlbjogYW55W10sIHN0YWNrUGxhY2U6ICdzdGFydCcgfCAnZW5kJyA9ICdlbmQnKSB7XG5cdFx0dGhpcy5zZWN0aW9ucyQgPSB0aGlzLnNlY3Rpb25zJC5waXBlKFxuXHRcdFx0bWFwKChzZWN0aW9uczogU2VjdGlvbltdKSA9PiB7XG5cdFx0XHRcdHJldHVybiBzZWN0aW9ucy5tYXAoc2VjdGlvbiA9PiB7XG5cdFx0XHRcdFx0aWYgKHNlY3Rpb24uY29kZT8udG9Mb3dlckNhc2UoKSA9PT0gc2VjdGlvbkNvZGUudG9Mb3dlckNhc2UoKSkge1xuXHRcdFx0XHRcdFx0aWYgKCFzZWN0aW9uLmNoaWxkcmVuKSBzZWN0aW9uLmNoaWxkcmVuID0gW107XG5cdFx0XHRcdFx0XHRpZiAoc3RhY2tQbGFjZSA9PT0gJ3N0YXJ0Jykge1xuXHRcdFx0XHRcdFx0XHRzZWN0aW9uLmNoaWxkcmVuID0gWy4uLmNoaWxkcmVuLCAuLi5zZWN0aW9uLmNoaWxkcmVuXTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHNlY3Rpb24uY2hpbGRyZW4gPSBbLi4uc2VjdGlvbi5jaGlsZHJlbiwgLi4uY2hpbGRyZW5dO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gc2VjdGlvbjtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdCk7XG5cdH1cblx0LyoqXG4gICAqIFZlcmlmaWNhIHNpIHVuYSBjYXRlZ29yw61hIHRpZW5lIGxhIHByb3BpZWRhZCBpc1Zpc2libGUgeSBlc3TDoSBtYXJjYWRhIGNvbW8gdmlzaWJsZVxuICAgKiBAcGFyYW0gY2F0ZWdvcnkgLSBMYSBjYXRlZ29yw61hIGEgdmVyaWZpY2FyXG4gICAqIEByZXR1cm5zIHRydWUgc2kgbGEgY2F0ZWdvcsOtYSBlcyB2aXNpYmxlLCBmYWxzZSBlbiBjYXNvIGNvbnRyYXJpb1xuICAgKi9cblx0aGFzVmlzaWJsZVByb3BlcnR5KGNhdGVnb3J5OiBDYXRlZ29yeSk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAoY2F0ZWdvcnkgYXMgYW55KS5pc1Zpc2libGUgPT09IHRydWU7XG5cdH1cbn0iXX0=
@@ -13,10 +13,10 @@ export class AccountEcComponent {
13
13
  this._router.navigateByUrl(path);
14
14
  };
15
15
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccountEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AccountEcComponent, isStandalone: true, selector: "lib-account-ec", ngImport: i0, template: "<section class=\"perfil mt-0\" id=\"accountEcComponent\">\r\n <div class=\"container row w-100 mx-auto py-md-3\">\r\n <div class=\"col-12 py-3\">\r\n <div class=\"row w-100 mx-auto border-bottom justify-content-between align-items-center py-3\">\r\n <h3 class=\"text-black w-auto\">MIS PEDIDOS</h3>\r\n <button class=\"btn btn-outline-dark px-3 py-1 font-size-10 w-auto\" (click)=\"logout()\">CERRAR\r\n SESI\u00D3N</button>\r\n </div>\r\n <app-orders-ec></app-orders-ec>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: [""], dependencies: [{ kind: "component", type: OrdersListEcComponent, selector: "app-orders-ec" }] });
16
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AccountEcComponent, isStandalone: true, selector: "lib-account-ec", ngImport: i0, template: "<section class=\"perfil mt-0\" id=\"accountEcComponent\">\n <div class=\"container row w-100 mx-auto py-md-3\">\n <div class=\"col-12 py-3\">\n <div class=\"row w-100 mx-auto border-bottom justify-content-between align-items-center py-3\">\n <h3 class=\"text-black w-auto\">MIS PEDIDOS</h3>\n <button class=\"btn btn-outline-dark px-3 py-1 font-size-10 w-auto\" (click)=\"logout()\">CERRAR\n SESI\u00D3N</button>\n </div>\n <app-orders-ec></app-orders-ec>\n </div>\n </div>\n</section>\n", styles: [""], dependencies: [{ kind: "component", type: OrdersListEcComponent, selector: "app-orders-ec" }] });
17
17
  }
18
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccountEcComponent, decorators: [{
19
19
  type: Component,
20
- args: [{ selector: 'lib-account-ec', standalone: true, imports: [OrdersListEcComponent], template: "<section class=\"perfil mt-0\" id=\"accountEcComponent\">\r\n <div class=\"container row w-100 mx-auto py-md-3\">\r\n <div class=\"col-12 py-3\">\r\n <div class=\"row w-100 mx-auto border-bottom justify-content-between align-items-center py-3\">\r\n <h3 class=\"text-black w-auto\">MIS PEDIDOS</h3>\r\n <button class=\"btn btn-outline-dark px-3 py-1 font-size-10 w-auto\" (click)=\"logout()\">CERRAR\r\n SESI\u00D3N</button>\r\n </div>\r\n <app-orders-ec></app-orders-ec>\r\n </div>\r\n </div>\r\n</section>\r\n" }]
20
+ args: [{ selector: 'lib-account-ec', standalone: true, imports: [OrdersListEcComponent], template: "<section class=\"perfil mt-0\" id=\"accountEcComponent\">\n <div class=\"container row w-100 mx-auto py-md-3\">\n <div class=\"col-12 py-3\">\n <div class=\"row w-100 mx-auto border-bottom justify-content-between align-items-center py-3\">\n <h3 class=\"text-black w-auto\">MIS PEDIDOS</h3>\n <button class=\"btn btn-outline-dark px-3 py-1 font-size-10 w-auto\" (click)=\"logout()\">CERRAR\n SESI\u00D3N</button>\n </div>\n <app-orders-ec></app-orders-ec>\n </div>\n </div>\n</section>\n" }]
21
21
  }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hY2NvdW50LWVjL2FjY291bnQtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYWNjb3VudC1lYy9hY2NvdW50LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBU2xGLE1BQU0sT0FBTyxrQkFBa0I7SUFDdEIsWUFBWSxHQUFnQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDL0MsT0FBTyxHQUFXLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNoQyxjQUFjLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQzlELE9BQU8sR0FBUSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBRXpELE1BQU0sR0FBRyxDQUFDLE9BQWMsT0FBTyxFQUFFLEVBQUU7UUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDLENBQUE7d0dBVFEsa0JBQWtCOzRGQUFsQixrQkFBa0IsMEVDYi9CLHVtQkFZQSwwRERIVyxxQkFBcUI7OzRGQUluQixrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0MsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPcmRlckVjQ29tcG9uZW50IH0gZnJvbSAnLi9vcmRlci1lYy9vcmRlci1lYy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSwgUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9yZGVyc0xpc3RFY0NvbXBvbmVudCB9IGZyb20gJy4vb3JkZXJzLWxpc3QtZWMvb3JkZXJzLWxpc3QtZWMuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLWFjY291bnQtZWMnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW09yZGVyc0xpc3RFY0NvbXBvbmVudF0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2FjY291bnQtZWMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9hY2NvdW50LWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWNjb3VudEVjQ29tcG9uZW50IHtcclxuXHRwcml2YXRlIF9hdXRoU2VydmljZTogQXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpXHJcblx0cHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKVxyXG5cdHByaXZhdGUgX3BhcmFtc1NlcnZpY2U6IFBhcmFtZXRlcnNTZXJ2aWNlID0gaW5qZWN0KFBhcmFtZXRlcnNTZXJ2aWNlKVxyXG5cdHB1YmxpYyBwYXJhbXMkOiBhbnkgPSB0aGlzLl9wYXJhbXNTZXJ2aWNlLmdldFBhcmFtZXRlcnMoKVxyXG5cdFxyXG5cdGxvZ291dCA9IChwYXRoOnN0cmluZyA9ICcvaG9tZScpID0+IHtcclxuICAgICAgICB0aGlzLl9hdXRoU2VydmljZS5sb2dvdXQoKTtcclxuICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChwYXRoKTtcclxuICAgIH1cclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cInBlcmZpbCBtdC0wXCIgaWQ9XCJhY2NvdW50RWNDb21wb25lbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgcm93IHctMTAwIG14LWF1dG8gcHktbWQtM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgcHktM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwIG14LWF1dG8gYm9yZGVyLWJvdHRvbSBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgcHktM1wiPlxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidGV4dC1ibGFjayB3LWF1dG9cIj5NSVMgUEVESURPUzwvaDM+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLWRhcmsgcHgtMyBweS0xIGZvbnQtc2l6ZS0xMCB3LWF1dG9cIiAoY2xpY2spPVwibG9nb3V0KClcIj5DRVJSQVJcclxuICAgICAgICAgICAgICAgICAgICBTRVNJw5NOPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLW9yZGVycy1lYz48L2FwcC1vcmRlcnMtZWM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hY2NvdW50LWVjL2FjY291bnQtZWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYWNjb3VudC1lYy9hY2NvdW50LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBU2xGLE1BQU0sT0FBTyxrQkFBa0I7SUFDdEIsWUFBWSxHQUFnQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDL0MsT0FBTyxHQUFXLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNoQyxjQUFjLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQzlELE9BQU8sR0FBUSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBRXpELE1BQU0sR0FBRyxDQUFDLE9BQWMsT0FBTyxFQUFFLEVBQUU7UUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDLENBQUE7d0dBVFEsa0JBQWtCOzRGQUFsQixrQkFBa0IsMEVDYi9CLCtrQkFZQSwwRERIVyxxQkFBcUI7OzRGQUluQixrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0MsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3JkZXJFY0NvbXBvbmVudCB9IGZyb20gJy4vb3JkZXItZWMvb3JkZXItZWMuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBQYXJhbWV0ZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL2VjLXNlcnZpY2VzJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPcmRlcnNMaXN0RWNDb21wb25lbnQgfSBmcm9tICcuL29yZGVycy1saXN0LWVjL29yZGVycy1saXN0LWVjLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2xpYi1hY2NvdW50LWVjJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW09yZGVyc0xpc3RFY0NvbXBvbmVudF0sXG5cdHRlbXBsYXRlVXJsOiAnLi9hY2NvdW50LWVjLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmw6ICcuL2FjY291bnQtZWMuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEFjY291bnRFY0NvbXBvbmVudCB7XG5cdHByaXZhdGUgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSlcblx0cHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKVxuXHRwcml2YXRlIF9wYXJhbXNTZXJ2aWNlOiBQYXJhbWV0ZXJzU2VydmljZSA9IGluamVjdChQYXJhbWV0ZXJzU2VydmljZSlcblx0cHVibGljIHBhcmFtcyQ6IGFueSA9IHRoaXMuX3BhcmFtc1NlcnZpY2UuZ2V0UGFyYW1ldGVycygpXG5cdFxuXHRsb2dvdXQgPSAocGF0aDpzdHJpbmcgPSAnL2hvbWUnKSA9PiB7XG4gICAgICAgIHRoaXMuX2F1dGhTZXJ2aWNlLmxvZ291dCgpO1xuICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChwYXRoKTtcbiAgICB9XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cInBlcmZpbCBtdC0wXCIgaWQ9XCJhY2NvdW50RWNDb21wb25lbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIHJvdyB3LTEwMCBteC1hdXRvIHB5LW1kLTNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBweS0zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwIG14LWF1dG8gYm9yZGVyLWJvdHRvbSBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgcHktM1wiPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInRleHQtYmxhY2sgdy1hdXRvXCI+TUlTIFBFRElET1M8L2gzPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtZGFyayBweC0zIHB5LTEgZm9udC1zaXplLTEwIHctYXV0b1wiIChjbGljayk9XCJsb2dvdXQoKVwiPkNFUlJBUlxuICAgICAgICAgICAgICAgICAgICBTRVNJw5NOPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxhcHAtb3JkZXJzLWVjPjwvYXBwLW9yZGVycy1lYz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
@@ -1,4 +1,4 @@
1
1
  export * from './account-ec.component';
2
2
  export * from './order-ec/order-ec.component';
3
3
  export * from './orders-list-ec/orders-list-ec.component';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hY2NvdW50LWVjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJDQUEyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY2NvdW50LWVjLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXItZWMvb3JkZXItZWMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9vcmRlcnMtbGlzdC1lYy9vcmRlcnMtbGlzdC1lYy5jb21wb25lbnQnOyJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hY2NvdW50LWVjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJDQUEyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY2NvdW50LWVjLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL29yZGVyLWVjL29yZGVyLWVjLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL29yZGVycy1saXN0LWVjL29yZGVycy1saXN0LWVjLmNvbXBvbmVudCc7Il19
@@ -70,7 +70,7 @@ export class OrderEcComponent {
70
70
  }
71
71
  mediaUrl = () => this._constants.mediaUrl();
72
72
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OrderEcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
73
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: OrderEcComponent, isStandalone: true, selector: "app-order-ec", ngImport: i0, template: "<main class=\"py-5\" id=\"orderEcComponent\">\r\n <div class=\"container\">\r\n @if(order$ | async; as order){\r\n <div class=\"wrap\">\r\n @if(order){\r\n\r\n <div class=\"row justify-content-between \">\r\n <div class=\"col-sm-auto col-12 font-brandon\">\r\n <h4 class=\"tit1 fw-bold\">{{ ('order' | translate) + ': ' + order.number }}</h4>\r\n </div>\r\n @if(order?.invoice){\r\n <div class=\"col-sm col-12 font-brandon\">\r\n <a target=\"_blank\" [href]=\"getUrlBase().slice(0, -1) + order.invoice\"\r\n class=\"btn btn-link btn-invoice\">\r\n <i class=\"fas fa-file-download me-1\"></i>\r\n {{ 'download' | translate }} {{ 'invoices' | translate | titlecase }}\r\n </a>\r\n </div>\r\n }\r\n <a (click)=\"back()\" class=\"col-auto text-end\">\r\n <button class=\"btn btn-outline-dark btvolver border\">{{ 'back-to-orders' | translate }}</button>\r\n </a>\r\n </div>\r\n\r\n <section id=\"orders\">\r\n <div class=\"row pt-2\">\r\n <div class=\"col-md-2 col-12\">\r\n <p class=\"st\">{{ 'payment-state' | translate }}:</p>\r\n <p class=\"\">\r\n {{ order.payments[0].state | translate }}\r\n </p>\r\n </div>\r\n <div class=\"col-md-2 col-12 font-brandon\">\r\n <p class=\"st\">{{ 'shipment-state' | translate }}:</p>\r\n <p class=\"\">\r\n {{ order.shipments[0].state | translate }}\r\n </p>\r\n </div>\r\n <div class=\"col-md-2 col-12 font-brandon\">\r\n <p class=\"st\">{{ 'payment-method' | translate }}:</p>\r\n <p class=\"\">\r\n {{ order.payments[0]?.method?.name | translate }}\r\n </p>\r\n </div>\r\n <div class=\"col-md-2 col-12 font-brandon\">\r\n <p class=\"st\">{{ 'shipment-method' | translate }}:</p>\r\n <p class=\"\">\r\n {{ order.shipments[0].method.name }}\r\n </p>\r\n <!-- ACA DEBERIA IR EL LINK DE SEGUIMIENTO -->\r\n @if(order.tracking){\r\n <a [href]=\"order.tracking\"\r\n class=\"btn btn-outline-dark btnLogout px-3 py-1 font-size-10 w-auto btn-sm\">\r\n Ver seguimiento</a>\r\n }\r\n </div>\r\n <div class=\"col-md-2 col-12 font-brandon\">\r\n <p class=\"st\">{{ 'date' | translate }}:</p>\r\n <p class=\"\">\r\n {{ toDate(order.checkoutCompletedAt, 'DD/MM/YYYY') | translate }}<br>\r\n {{ toDate(order.checkoutCompletedAt, 'h:mm:ss a') | translate }}\r\n </p>\r\n </div>\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-md-2 col-12 font-brandon\">\r\n <p class=\"st\">{{ 'total' | translate }}:</p>\r\n <h5 class=\"fw-bold\">\r\n {{ (order.totals.total) | ecCurrencySymbol}}\r\n\r\n </h5>\r\n </div>\r\n }\r\n </div>\r\n </section>\r\n @if(!hidePrices && allowRepeatOrders){\r\n <div class=\"text-end mt-3\">\r\n <button class=\"btn btn-primary mb-2 btnRepeatOrder\" (click)=\"repeatOrder()\">\r\n {{ 'repeat-order' | translate }}\r\n </button>\r\n </div> \r\n }\r\n\r\n <div class=\"container py-3 border-top border-bottom\">\r\n @if(order.items.length){\r\n <div class=\"row\">\r\n <div class=\"col-2 font-sm font-brandon d-none d-md-block\">\r\n {{ 'product' | translate | uppercase }}\r\n </div>\r\n <div class=\"col-4 font-sm font-brandon d-none d-md-block\">\r\n {{ 'description' | translate | uppercase }}\r\n </div>\r\n @if(channelConfig.applyOrderLot){\r\n <div id=\"colLots\" class=\"col-1 font-sm font-brandon d-none d-md-block\">\r\n <!-- {{ 'description' | translate | uppercase }} -->\r\n {{ 'lots' | translate | uppercase }}\r\n </div>\r\n }\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-2 text-center font-sm font-brandon d-none d-md-block\">\r\n {{ 'unit-price' | translate | uppercase }}\r\n </div>\r\n }\r\n <div class=\"col-1 text-center font-sm font-brandon d-none d-md-block\">\r\n {{ 'quantity' | translate | uppercase }}\r\n </div>\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-2 text-end font-sm font-brandon d-none d-md-block\">\r\n {{ 'total' | translate | uppercase }}\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n\r\n }\r\n @for(item of order.items; track $index; let i = $index){\r\n <div class=\"row cart-items\">\r\n <div class=\"col-5 col-md-2 py-2\">\r\n @if(item.product.variants[0]?.images?.length){\r\n <img class=\"smc maxwidth img-fluid rounded-custom \"\r\n [src]=\"mediaUrl() + item.product.variants[0].images[0]\" alt=\"\">\r\n } @else {\r\n @if(item.product.picturesdefault){\r\n <img class=\"smc maxwidth img-fluid rounded-custom\"\r\n [src]=\"mediaUrl() + item.product.picturesdefault[0]\" alt=\"\">\r\n }\r\n }\r\n </div>\r\n <div\r\n class=\"col-md-4 col-7 flex-column flex-md-row justify-content-start d-flex align-items-center\">\r\n <p class=\"font-brandon d-flex w-100 mb-0\">\r\n {{ item.product.name }} (Cod:{{ item.product.variants[0].code }})\r\n </p>\r\n </div>\r\n @if(channelConfig.applyOrderLot){\r\n <div class=\"col-md-1 col-1 flex-column flex-md-row justify-content-start d-flex align-items-center\">\r\n <input type=\"button\" class=\"btn btn-primary btnSeguir m-0 text-center\" type=\"button\"\r\n [attr.data-bs-toggle]=\"'collapse'\" [attr.data-bs-target]=\"'#collapseExample'+i\"\r\n aria-expanded=\"false\" [attr.aria-controls]=\"'collapseExample'+i\"\r\n value=\"{{ 'see' | translate | uppercase }}\">\r\n </div>\r\n }\r\n <div class=\"container d-md-none\">\r\n <div class=\"row\">\r\n <div class=\"col-4\">\r\n <p class=\"text-center w-100 m-0\"> {{ item.quantity }}</p>\r\n </div>\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-4 font-xl\">\r\n <p class=\"text-center w-100 m-0\"> {{ (item.product.variants[0].saleprice ?\r\n item.product.variants[0].saleprice : item.product.variants[0].price) |\r\n ecCurrencySymbol}}</p>\r\n </div>\r\n }\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-4 font-xl\">\r\n <p class=\"text-center w-100 m-0\"> {{ ((item.product.variants[0].saleprice ?\r\n item.product.variants[0].saleprice : item.product.variants[0].price) *\r\n item.quantity) | ecCurrencySymbol}}aaaa</p>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-2 d-none d-md-flex align-items-center\">\r\n <p class=\"text-center w-100 m-0\">\r\n {{ (item.product.variants[0].saleprice ? item.product.variants[0].saleprice :\r\n item.product.variants[0].price) | ecCurrencySymbol}}\r\n </p>\r\n </div>\r\n }\r\n <div class=\"col-1 d-none d-md-flex align-items-center\">\r\n <p class=\"text-center w-100 m-0\"> {{ item.quantity }}</p>\r\n </div>\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-2 d-none d-md-flex align-items-center\">\r\n <p class=\"text-end w-100 m-0\">\r\n {{ ((item.product.variants[0].saleprice ? item.product.variants[0].saleprice :\r\n item.product.variants[0].price) * item.quantity) | ecCurrencySymbol}}</p>\r\n </div>\r\n }\r\n <div class=\"collapse\" [attr.id]=\"'collapseExample'+i\">\r\n <div class=\"card card-body\">\r\n <table class=\"table table-striped\">\r\n <thead>\r\n <tr>\r\n <th scope=\"col\">#</th>\r\n <th scope=\"col\">Estado</th>\r\n <th scope=\"col\">Cantidad</th>\r\n <th scope=\"col\">Fecha Solicitada</th>\r\n <th scope=\"col\">Fecha Estimada</th>\r\n <th scope=\"col\">Sede</th>\r\n <th scope=\"col\">Nota</th>\r\n <th scope=\"col\">Total Lote</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for( lot of item.orderItemLot; track $index){\r\n <tr>\r\n <th scope=\"row\">{{lot.id}}</th>\r\n <td>{{lot.lot_status}}</td>\r\n <td>{{lot.quantity}}</td>\r\n <td>{{ toDate(lot.date_request, 'DD/MM/YYYY') | translate }}</td>\r\n @if(lot.date_deliver){\r\n <td>{{\r\n toDate(lot.date_deliver, 'DD/MM/YYYY') | translate }}</td>\r\n } @else {\r\n <td>Pendiente</td>\r\n }\r\n <td>{{lot.shipping_address_name}}</td>\r\n <td>{{lot.notes}}</td>\r\n <td>{{lot.total_lot | ecCurrencySymbol}}</td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-md-6\"></div>\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-12 col-md-6\">\r\n <div class=\"row py-4\">\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'total-products' |\r\n translate }}</div>\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end\">\r\n {{ (order.totals.items) | ecCurrencySymbol }}\r\n </div>\r\n\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'shipment' |\r\n translate }}</div>\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end\">\r\n {{ (order.totals.shipping || '0') | ecCurrencySymbol }}\r\n\r\n </div>\r\n @if(!hideDiscounts && order.totals.promotion && order.totals.promotion != 0){\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'discount' |\r\n translate }}</div>\r\n }\r\n @if(!hideDiscounts && order.totals.promotion && order.totals.promotion != 0){\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end text-end\">\r\n {{ (order.totals.promotion) | ecCurrencySymbol }}</div>\r\n }\r\n @if(!hideTaxes && order.totals.taxes && order.totals.taxes != 0 ){\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'taxes' | translate }}</div>\r\n }\r\n @if(!hideTaxes && order.totals.taxes && order.totals.taxes != 0){\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end\">\r\n {{ (order.totals.taxes) | ecCurrencySymbol }}</div>\r\n }\r\n\r\n <div class=\"col-6 font-brandon font-md\">{{ 'total' | translate | uppercase }}</div>\r\n <div class=\"col-6 font-brandon font-md text-end\">\r\n {{ (order.totals.total) | ecCurrencySymbol }}\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n } @else {\r\n <div class=\"w-100 h-50\">\r\n <div class=\"d-flex flex-row justify-content-center align-items-center text-center\">\r\n <h5>{{ 'no-orders' | translate }}</h5>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n } @else {\r\n <div class=\"w-100 h-50 py-5\">\r\n <div class=\"d-flex flex-row justify-content-center align-items-center text-center\">\r\n <app-loading-full-ec></app-loading-full-ec>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</main>", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }, { kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }] });
73
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: OrderEcComponent, isStandalone: true, selector: "app-order-ec", ngImport: i0, template: "<main class=\"py-5\" id=\"orderEcComponent\">\n <div class=\"container\">\n @if(order$ | async; as order){\n <div class=\"wrap\">\n @if(order){\n\n <div class=\"row justify-content-between \">\n <div class=\"col-sm-auto col-12 font-brandon\">\n <h4 class=\"tit1 fw-bold\">{{ ('order' | translate) + ': ' + order.number }}</h4>\n </div>\n @if(order?.invoice){\n <div class=\"col-sm col-12 font-brandon\">\n <a target=\"_blank\" [href]=\"getUrlBase().slice(0, -1) + order.invoice\"\n class=\"btn btn-link btn-invoice\">\n <i class=\"fas fa-file-download me-1\"></i>\n {{ 'download' | translate }} {{ 'invoices' | translate | titlecase }}\n </a>\n </div>\n }\n <a (click)=\"back()\" class=\"col-auto text-end\">\n <button class=\"btn btn-outline-dark btvolver border\">{{ 'back-to-orders' | translate }}</button>\n </a>\n </div>\n\n <section id=\"orders\">\n <div class=\"row pt-2\">\n <div class=\"col-md-2 col-12\">\n <p class=\"st\">{{ 'payment-state' | translate }}:</p>\n <p class=\"\">\n {{ order.payments[0].state | translate }}\n </p>\n </div>\n <div class=\"col-md-2 col-12 font-brandon\">\n <p class=\"st\">{{ 'shipment-state' | translate }}:</p>\n <p class=\"\">\n {{ order.shipments[0].state | translate }}\n </p>\n </div>\n <div class=\"col-md-2 col-12 font-brandon\">\n <p class=\"st\">{{ 'payment-method' | translate }}:</p>\n <p class=\"\">\n {{ order.payments[0]?.method?.name | translate }}\n </p>\n </div>\n <div class=\"col-md-2 col-12 font-brandon\">\n <p class=\"st\">{{ 'shipment-method' | translate }}:</p>\n <p class=\"\">\n {{ order.shipments[0].method.name }}\n </p>\n <!-- ACA DEBERIA IR EL LINK DE SEGUIMIENTO -->\n @if(order.tracking){\n <a [href]=\"order.tracking\"\n class=\"btn btn-outline-dark btnLogout px-3 py-1 font-size-10 w-auto btn-sm\">\n Ver seguimiento</a>\n }\n </div>\n <div class=\"col-md-2 col-12 font-brandon\">\n <p class=\"st\">{{ 'date' | translate }}:</p>\n <p class=\"\">\n {{ toDate(order.checkoutCompletedAt, 'DD/MM/YYYY') | translate }}<br>\n {{ toDate(order.checkoutCompletedAt, 'h:mm:ss a') | translate }}\n </p>\n </div>\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-md-2 col-12 font-brandon\">\n <p class=\"st\">{{ 'total' | translate }}:</p>\n <h5 class=\"fw-bold\">\n {{ (order.totals.total) | ecCurrencySymbol}}\n\n </h5>\n </div>\n }\n </div>\n </section>\n @if(!hidePrices && allowRepeatOrders){\n <div class=\"text-end mt-3\">\n <button class=\"btn btn-primary mb-2 btnRepeatOrder\" (click)=\"repeatOrder()\">\n {{ 'repeat-order' | translate }}\n </button>\n </div> \n }\n\n <div class=\"container py-3 border-top border-bottom\">\n @if(order.items.length){\n <div class=\"row\">\n <div class=\"col-2 font-sm font-brandon d-none d-md-block\">\n {{ 'product' | translate | uppercase }}\n </div>\n <div class=\"col-4 font-sm font-brandon d-none d-md-block\">\n {{ 'description' | translate | uppercase }}\n </div>\n @if(channelConfig.applyOrderLot){\n <div id=\"colLots\" class=\"col-1 font-sm font-brandon d-none d-md-block\">\n <!-- {{ 'description' | translate | uppercase }} -->\n {{ 'lots' | translate | uppercase }}\n </div>\n }\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-2 text-center font-sm font-brandon d-none d-md-block\">\n {{ 'unit-price' | translate | uppercase }}\n </div>\n }\n <div class=\"col-1 text-center font-sm font-brandon d-none d-md-block\">\n {{ 'quantity' | translate | uppercase }}\n </div>\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-2 text-end font-sm font-brandon d-none d-md-block\">\n {{ 'total' | translate | uppercase }}\n </div>\n }\n </div>\n } @else {\n\n }\n @for(item of order.items; track $index; let i = $index){\n <div class=\"row cart-items\">\n <div class=\"col-5 col-md-2 py-2\">\n @if(item.product.variants[0]?.images?.length){\n <img class=\"smc maxwidth img-fluid rounded-custom \"\n [src]=\"mediaUrl() + item.product.variants[0].images[0]\" alt=\"\">\n } @else {\n @if(item.product.picturesdefault){\n <img class=\"smc maxwidth img-fluid rounded-custom\"\n [src]=\"mediaUrl() + item.product.picturesdefault[0]\" alt=\"\">\n }\n }\n </div>\n <div\n class=\"col-md-4 col-7 flex-column flex-md-row justify-content-start d-flex align-items-center\">\n <p class=\"font-brandon d-flex w-100 mb-0\">\n {{ item.product.name }} (Cod:{{ item.product.variants[0].code }})\n </p>\n </div>\n @if(channelConfig.applyOrderLot){\n <div class=\"col-md-1 col-1 flex-column flex-md-row justify-content-start d-flex align-items-center\">\n <input type=\"button\" class=\"btn btn-primary btnSeguir m-0 text-center\" type=\"button\"\n [attr.data-bs-toggle]=\"'collapse'\" [attr.data-bs-target]=\"'#collapseExample'+i\"\n aria-expanded=\"false\" [attr.aria-controls]=\"'collapseExample'+i\"\n value=\"{{ 'see' | translate | uppercase }}\">\n </div>\n }\n <div class=\"container d-md-none\">\n <div class=\"row\">\n <div class=\"col-4\">\n <p class=\"text-center w-100 m-0\"> {{ item.quantity }}</p>\n </div>\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-4 font-xl\">\n <p class=\"text-center w-100 m-0\"> {{ (item.product.variants[0].saleprice ?\n item.product.variants[0].saleprice : item.product.variants[0].price) |\n ecCurrencySymbol}}</p>\n </div>\n }\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-4 font-xl\">\n <p class=\"text-center w-100 m-0\"> {{ ((item.product.variants[0].saleprice ?\n item.product.variants[0].saleprice : item.product.variants[0].price) *\n item.quantity) | ecCurrencySymbol}}aaaa</p>\n </div>\n }\n </div>\n </div>\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-2 d-none d-md-flex align-items-center\">\n <p class=\"text-center w-100 m-0\">\n {{ (item.product.variants[0].saleprice ? item.product.variants[0].saleprice :\n item.product.variants[0].price) | ecCurrencySymbol}}\n </p>\n </div>\n }\n <div class=\"col-1 d-none d-md-flex align-items-center\">\n <p class=\"text-center w-100 m-0\"> {{ item.quantity }}</p>\n </div>\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-2 d-none d-md-flex align-items-center\">\n <p class=\"text-end w-100 m-0\">\n {{ ((item.product.variants[0].saleprice ? item.product.variants[0].saleprice :\n item.product.variants[0].price) * item.quantity) | ecCurrencySymbol}}</p>\n </div>\n }\n <div class=\"collapse\" [attr.id]=\"'collapseExample'+i\">\n <div class=\"card card-body\">\n <table class=\"table table-striped\">\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">Estado</th>\n <th scope=\"col\">Cantidad</th>\n <th scope=\"col\">Fecha Solicitada</th>\n <th scope=\"col\">Fecha Estimada</th>\n <th scope=\"col\">Sede</th>\n <th scope=\"col\">Nota</th>\n <th scope=\"col\">Total Lote</th>\n </tr>\n </thead>\n <tbody>\n @for( lot of item.orderItemLot; track $index){\n <tr>\n <th scope=\"row\">{{lot.id}}</th>\n <td>{{lot.lot_status}}</td>\n <td>{{lot.quantity}}</td>\n <td>{{ toDate(lot.date_request, 'DD/MM/YYYY') | translate }}</td>\n @if(lot.date_deliver){\n <td>{{\n toDate(lot.date_deliver, 'DD/MM/YYYY') | translate }}</td>\n } @else {\n <td>Pendiente</td>\n }\n <td>{{lot.shipping_address_name}}</td>\n <td>{{lot.notes}}</td>\n <td>{{lot.total_lot | ecCurrencySymbol}}</td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n </div>\n </div>\n }\n </div>\n\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12 col-md-6\"></div>\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-12 col-md-6\">\n <div class=\"row py-4\">\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'total-products' |\n translate }}</div>\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end\">\n {{ (order.totals.items) | ecCurrencySymbol }}\n </div>\n\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'shipment' |\n translate }}</div>\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end\">\n {{ (order.totals.shipping || '0') | ecCurrencySymbol }}\n\n </div>\n @if(!hideDiscounts && order.totals.promotion && order.totals.promotion != 0){\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'discount' |\n translate }}</div>\n }\n @if(!hideDiscounts && order.totals.promotion && order.totals.promotion != 0){\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end text-end\">\n {{ (order.totals.promotion) | ecCurrencySymbol }}</div>\n }\n @if(!hideTaxes && order.totals.taxes && order.totals.taxes != 0 ){\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'taxes' | translate }}</div>\n }\n @if(!hideTaxes && order.totals.taxes && order.totals.taxes != 0){\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end\">\n {{ (order.totals.taxes) | ecCurrencySymbol }}</div>\n }\n\n <div class=\"col-6 font-brandon font-md\">{{ 'total' | translate | uppercase }}</div>\n <div class=\"col-6 font-brandon font-md text-end\">\n {{ (order.totals.total) | ecCurrencySymbol }}\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n\n } @else {\n <div class=\"w-100 h-50\">\n <div class=\"d-flex flex-row justify-content-center align-items-center text-center\">\n <h5>{{ 'no-orders' | translate }}</h5>\n </div>\n </div>\n }\n </div>\n\n } @else {\n <div class=\"w-100 h-50 py-5\">\n <div class=\"d-flex flex-row justify-content-center align-items-center text-center\">\n <app-loading-full-ec></app-loading-full-ec>\n </div>\n </div>\n }\n </div>\n</main>", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: EcCurrencySymbolPipe, name: "ecCurrencySymbol" }, { kind: "component", type: LoadingFullEcComponent, selector: "app-loading-full-ec" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }] });
74
74
  }
75
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OrderEcComponent, decorators: [{
76
76
  type: Component,
@@ -80,6 +80,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
80
80
  AsyncPipe,
81
81
  TitleCasePipe,
82
82
  UpperCasePipe
83
- ], template: "<main class=\"py-5\" id=\"orderEcComponent\">\r\n <div class=\"container\">\r\n @if(order$ | async; as order){\r\n <div class=\"wrap\">\r\n @if(order){\r\n\r\n <div class=\"row justify-content-between \">\r\n <div class=\"col-sm-auto col-12 font-brandon\">\r\n <h4 class=\"tit1 fw-bold\">{{ ('order' | translate) + ': ' + order.number }}</h4>\r\n </div>\r\n @if(order?.invoice){\r\n <div class=\"col-sm col-12 font-brandon\">\r\n <a target=\"_blank\" [href]=\"getUrlBase().slice(0, -1) + order.invoice\"\r\n class=\"btn btn-link btn-invoice\">\r\n <i class=\"fas fa-file-download me-1\"></i>\r\n {{ 'download' | translate }} {{ 'invoices' | translate | titlecase }}\r\n </a>\r\n </div>\r\n }\r\n <a (click)=\"back()\" class=\"col-auto text-end\">\r\n <button class=\"btn btn-outline-dark btvolver border\">{{ 'back-to-orders' | translate }}</button>\r\n </a>\r\n </div>\r\n\r\n <section id=\"orders\">\r\n <div class=\"row pt-2\">\r\n <div class=\"col-md-2 col-12\">\r\n <p class=\"st\">{{ 'payment-state' | translate }}:</p>\r\n <p class=\"\">\r\n {{ order.payments[0].state | translate }}\r\n </p>\r\n </div>\r\n <div class=\"col-md-2 col-12 font-brandon\">\r\n <p class=\"st\">{{ 'shipment-state' | translate }}:</p>\r\n <p class=\"\">\r\n {{ order.shipments[0].state | translate }}\r\n </p>\r\n </div>\r\n <div class=\"col-md-2 col-12 font-brandon\">\r\n <p class=\"st\">{{ 'payment-method' | translate }}:</p>\r\n <p class=\"\">\r\n {{ order.payments[0]?.method?.name | translate }}\r\n </p>\r\n </div>\r\n <div class=\"col-md-2 col-12 font-brandon\">\r\n <p class=\"st\">{{ 'shipment-method' | translate }}:</p>\r\n <p class=\"\">\r\n {{ order.shipments[0].method.name }}\r\n </p>\r\n <!-- ACA DEBERIA IR EL LINK DE SEGUIMIENTO -->\r\n @if(order.tracking){\r\n <a [href]=\"order.tracking\"\r\n class=\"btn btn-outline-dark btnLogout px-3 py-1 font-size-10 w-auto btn-sm\">\r\n Ver seguimiento</a>\r\n }\r\n </div>\r\n <div class=\"col-md-2 col-12 font-brandon\">\r\n <p class=\"st\">{{ 'date' | translate }}:</p>\r\n <p class=\"\">\r\n {{ toDate(order.checkoutCompletedAt, 'DD/MM/YYYY') | translate }}<br>\r\n {{ toDate(order.checkoutCompletedAt, 'h:mm:ss a') | translate }}\r\n </p>\r\n </div>\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-md-2 col-12 font-brandon\">\r\n <p class=\"st\">{{ 'total' | translate }}:</p>\r\n <h5 class=\"fw-bold\">\r\n {{ (order.totals.total) | ecCurrencySymbol}}\r\n\r\n </h5>\r\n </div>\r\n }\r\n </div>\r\n </section>\r\n @if(!hidePrices && allowRepeatOrders){\r\n <div class=\"text-end mt-3\">\r\n <button class=\"btn btn-primary mb-2 btnRepeatOrder\" (click)=\"repeatOrder()\">\r\n {{ 'repeat-order' | translate }}\r\n </button>\r\n </div> \r\n }\r\n\r\n <div class=\"container py-3 border-top border-bottom\">\r\n @if(order.items.length){\r\n <div class=\"row\">\r\n <div class=\"col-2 font-sm font-brandon d-none d-md-block\">\r\n {{ 'product' | translate | uppercase }}\r\n </div>\r\n <div class=\"col-4 font-sm font-brandon d-none d-md-block\">\r\n {{ 'description' | translate | uppercase }}\r\n </div>\r\n @if(channelConfig.applyOrderLot){\r\n <div id=\"colLots\" class=\"col-1 font-sm font-brandon d-none d-md-block\">\r\n <!-- {{ 'description' | translate | uppercase }} -->\r\n {{ 'lots' | translate | uppercase }}\r\n </div>\r\n }\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-2 text-center font-sm font-brandon d-none d-md-block\">\r\n {{ 'unit-price' | translate | uppercase }}\r\n </div>\r\n }\r\n <div class=\"col-1 text-center font-sm font-brandon d-none d-md-block\">\r\n {{ 'quantity' | translate | uppercase }}\r\n </div>\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-2 text-end font-sm font-brandon d-none d-md-block\">\r\n {{ 'total' | translate | uppercase }}\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n\r\n }\r\n @for(item of order.items; track $index; let i = $index){\r\n <div class=\"row cart-items\">\r\n <div class=\"col-5 col-md-2 py-2\">\r\n @if(item.product.variants[0]?.images?.length){\r\n <img class=\"smc maxwidth img-fluid rounded-custom \"\r\n [src]=\"mediaUrl() + item.product.variants[0].images[0]\" alt=\"\">\r\n } @else {\r\n @if(item.product.picturesdefault){\r\n <img class=\"smc maxwidth img-fluid rounded-custom\"\r\n [src]=\"mediaUrl() + item.product.picturesdefault[0]\" alt=\"\">\r\n }\r\n }\r\n </div>\r\n <div\r\n class=\"col-md-4 col-7 flex-column flex-md-row justify-content-start d-flex align-items-center\">\r\n <p class=\"font-brandon d-flex w-100 mb-0\">\r\n {{ item.product.name }} (Cod:{{ item.product.variants[0].code }})\r\n </p>\r\n </div>\r\n @if(channelConfig.applyOrderLot){\r\n <div class=\"col-md-1 col-1 flex-column flex-md-row justify-content-start d-flex align-items-center\">\r\n <input type=\"button\" class=\"btn btn-primary btnSeguir m-0 text-center\" type=\"button\"\r\n [attr.data-bs-toggle]=\"'collapse'\" [attr.data-bs-target]=\"'#collapseExample'+i\"\r\n aria-expanded=\"false\" [attr.aria-controls]=\"'collapseExample'+i\"\r\n value=\"{{ 'see' | translate | uppercase }}\">\r\n </div>\r\n }\r\n <div class=\"container d-md-none\">\r\n <div class=\"row\">\r\n <div class=\"col-4\">\r\n <p class=\"text-center w-100 m-0\"> {{ item.quantity }}</p>\r\n </div>\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-4 font-xl\">\r\n <p class=\"text-center w-100 m-0\"> {{ (item.product.variants[0].saleprice ?\r\n item.product.variants[0].saleprice : item.product.variants[0].price) |\r\n ecCurrencySymbol}}</p>\r\n </div>\r\n }\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-4 font-xl\">\r\n <p class=\"text-center w-100 m-0\"> {{ ((item.product.variants[0].saleprice ?\r\n item.product.variants[0].saleprice : item.product.variants[0].price) *\r\n item.quantity) | ecCurrencySymbol}}aaaa</p>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-2 d-none d-md-flex align-items-center\">\r\n <p class=\"text-center w-100 m-0\">\r\n {{ (item.product.variants[0].saleprice ? item.product.variants[0].saleprice :\r\n item.product.variants[0].price) | ecCurrencySymbol}}\r\n </p>\r\n </div>\r\n }\r\n <div class=\"col-1 d-none d-md-flex align-items-center\">\r\n <p class=\"text-center w-100 m-0\"> {{ item.quantity }}</p>\r\n </div>\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-2 d-none d-md-flex align-items-center\">\r\n <p class=\"text-end w-100 m-0\">\r\n {{ ((item.product.variants[0].saleprice ? item.product.variants[0].saleprice :\r\n item.product.variants[0].price) * item.quantity) | ecCurrencySymbol}}</p>\r\n </div>\r\n }\r\n <div class=\"collapse\" [attr.id]=\"'collapseExample'+i\">\r\n <div class=\"card card-body\">\r\n <table class=\"table table-striped\">\r\n <thead>\r\n <tr>\r\n <th scope=\"col\">#</th>\r\n <th scope=\"col\">Estado</th>\r\n <th scope=\"col\">Cantidad</th>\r\n <th scope=\"col\">Fecha Solicitada</th>\r\n <th scope=\"col\">Fecha Estimada</th>\r\n <th scope=\"col\">Sede</th>\r\n <th scope=\"col\">Nota</th>\r\n <th scope=\"col\">Total Lote</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for( lot of item.orderItemLot; track $index){\r\n <tr>\r\n <th scope=\"row\">{{lot.id}}</th>\r\n <td>{{lot.lot_status}}</td>\r\n <td>{{lot.quantity}}</td>\r\n <td>{{ toDate(lot.date_request, 'DD/MM/YYYY') | translate }}</td>\r\n @if(lot.date_deliver){\r\n <td>{{\r\n toDate(lot.date_deliver, 'DD/MM/YYYY') | translate }}</td>\r\n } @else {\r\n <td>Pendiente</td>\r\n }\r\n <td>{{lot.shipping_address_name}}</td>\r\n <td>{{lot.notes}}</td>\r\n <td>{{lot.total_lot | ecCurrencySymbol}}</td>\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-md-6\"></div>\r\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\r\n <div class=\"col-12 col-md-6\">\r\n <div class=\"row py-4\">\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'total-products' |\r\n translate }}</div>\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end\">\r\n {{ (order.totals.items) | ecCurrencySymbol }}\r\n </div>\r\n\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'shipment' |\r\n translate }}</div>\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end\">\r\n {{ (order.totals.shipping || '0') | ecCurrencySymbol }}\r\n\r\n </div>\r\n @if(!hideDiscounts && order.totals.promotion && order.totals.promotion != 0){\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'discount' |\r\n translate }}</div>\r\n }\r\n @if(!hideDiscounts && order.totals.promotion && order.totals.promotion != 0){\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end text-end\">\r\n {{ (order.totals.promotion) | ecCurrencySymbol }}</div>\r\n }\r\n @if(!hideTaxes && order.totals.taxes && order.totals.taxes != 0 ){\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'taxes' | translate }}</div>\r\n }\r\n @if(!hideTaxes && order.totals.taxes && order.totals.taxes != 0){\r\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end\">\r\n {{ (order.totals.taxes) | ecCurrencySymbol }}</div>\r\n }\r\n\r\n <div class=\"col-6 font-brandon font-md\">{{ 'total' | translate | uppercase }}</div>\r\n <div class=\"col-6 font-brandon font-md text-end\">\r\n {{ (order.totals.total) | ecCurrencySymbol }}\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n } @else {\r\n <div class=\"w-100 h-50\">\r\n <div class=\"d-flex flex-row justify-content-center align-items-center text-center\">\r\n <h5>{{ 'no-orders' | translate }}</h5>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n\r\n } @else {\r\n <div class=\"w-100 h-50 py-5\">\r\n <div class=\"d-flex flex-row justify-content-center align-items-center text-center\">\r\n <app-loading-full-ec></app-loading-full-ec>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</main>" }]
83
+ ], template: "<main class=\"py-5\" id=\"orderEcComponent\">\n <div class=\"container\">\n @if(order$ | async; as order){\n <div class=\"wrap\">\n @if(order){\n\n <div class=\"row justify-content-between \">\n <div class=\"col-sm-auto col-12 font-brandon\">\n <h4 class=\"tit1 fw-bold\">{{ ('order' | translate) + ': ' + order.number }}</h4>\n </div>\n @if(order?.invoice){\n <div class=\"col-sm col-12 font-brandon\">\n <a target=\"_blank\" [href]=\"getUrlBase().slice(0, -1) + order.invoice\"\n class=\"btn btn-link btn-invoice\">\n <i class=\"fas fa-file-download me-1\"></i>\n {{ 'download' | translate }} {{ 'invoices' | translate | titlecase }}\n </a>\n </div>\n }\n <a (click)=\"back()\" class=\"col-auto text-end\">\n <button class=\"btn btn-outline-dark btvolver border\">{{ 'back-to-orders' | translate }}</button>\n </a>\n </div>\n\n <section id=\"orders\">\n <div class=\"row pt-2\">\n <div class=\"col-md-2 col-12\">\n <p class=\"st\">{{ 'payment-state' | translate }}:</p>\n <p class=\"\">\n {{ order.payments[0].state | translate }}\n </p>\n </div>\n <div class=\"col-md-2 col-12 font-brandon\">\n <p class=\"st\">{{ 'shipment-state' | translate }}:</p>\n <p class=\"\">\n {{ order.shipments[0].state | translate }}\n </p>\n </div>\n <div class=\"col-md-2 col-12 font-brandon\">\n <p class=\"st\">{{ 'payment-method' | translate }}:</p>\n <p class=\"\">\n {{ order.payments[0]?.method?.name | translate }}\n </p>\n </div>\n <div class=\"col-md-2 col-12 font-brandon\">\n <p class=\"st\">{{ 'shipment-method' | translate }}:</p>\n <p class=\"\">\n {{ order.shipments[0].method.name }}\n </p>\n <!-- ACA DEBERIA IR EL LINK DE SEGUIMIENTO -->\n @if(order.tracking){\n <a [href]=\"order.tracking\"\n class=\"btn btn-outline-dark btnLogout px-3 py-1 font-size-10 w-auto btn-sm\">\n Ver seguimiento</a>\n }\n </div>\n <div class=\"col-md-2 col-12 font-brandon\">\n <p class=\"st\">{{ 'date' | translate }}:</p>\n <p class=\"\">\n {{ toDate(order.checkoutCompletedAt, 'DD/MM/YYYY') | translate }}<br>\n {{ toDate(order.checkoutCompletedAt, 'h:mm:ss a') | translate }}\n </p>\n </div>\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-md-2 col-12 font-brandon\">\n <p class=\"st\">{{ 'total' | translate }}:</p>\n <h5 class=\"fw-bold\">\n {{ (order.totals.total) | ecCurrencySymbol}}\n\n </h5>\n </div>\n }\n </div>\n </section>\n @if(!hidePrices && allowRepeatOrders){\n <div class=\"text-end mt-3\">\n <button class=\"btn btn-primary mb-2 btnRepeatOrder\" (click)=\"repeatOrder()\">\n {{ 'repeat-order' | translate }}\n </button>\n </div> \n }\n\n <div class=\"container py-3 border-top border-bottom\">\n @if(order.items.length){\n <div class=\"row\">\n <div class=\"col-2 font-sm font-brandon d-none d-md-block\">\n {{ 'product' | translate | uppercase }}\n </div>\n <div class=\"col-4 font-sm font-brandon d-none d-md-block\">\n {{ 'description' | translate | uppercase }}\n </div>\n @if(channelConfig.applyOrderLot){\n <div id=\"colLots\" class=\"col-1 font-sm font-brandon d-none d-md-block\">\n <!-- {{ 'description' | translate | uppercase }} -->\n {{ 'lots' | translate | uppercase }}\n </div>\n }\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-2 text-center font-sm font-brandon d-none d-md-block\">\n {{ 'unit-price' | translate | uppercase }}\n </div>\n }\n <div class=\"col-1 text-center font-sm font-brandon d-none d-md-block\">\n {{ 'quantity' | translate | uppercase }}\n </div>\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-2 text-end font-sm font-brandon d-none d-md-block\">\n {{ 'total' | translate | uppercase }}\n </div>\n }\n </div>\n } @else {\n\n }\n @for(item of order.items; track $index; let i = $index){\n <div class=\"row cart-items\">\n <div class=\"col-5 col-md-2 py-2\">\n @if(item.product.variants[0]?.images?.length){\n <img class=\"smc maxwidth img-fluid rounded-custom \"\n [src]=\"mediaUrl() + item.product.variants[0].images[0]\" alt=\"\">\n } @else {\n @if(item.product.picturesdefault){\n <img class=\"smc maxwidth img-fluid rounded-custom\"\n [src]=\"mediaUrl() + item.product.picturesdefault[0]\" alt=\"\">\n }\n }\n </div>\n <div\n class=\"col-md-4 col-7 flex-column flex-md-row justify-content-start d-flex align-items-center\">\n <p class=\"font-brandon d-flex w-100 mb-0\">\n {{ item.product.name }} (Cod:{{ item.product.variants[0].code }})\n </p>\n </div>\n @if(channelConfig.applyOrderLot){\n <div class=\"col-md-1 col-1 flex-column flex-md-row justify-content-start d-flex align-items-center\">\n <input type=\"button\" class=\"btn btn-primary btnSeguir m-0 text-center\" type=\"button\"\n [attr.data-bs-toggle]=\"'collapse'\" [attr.data-bs-target]=\"'#collapseExample'+i\"\n aria-expanded=\"false\" [attr.aria-controls]=\"'collapseExample'+i\"\n value=\"{{ 'see' | translate | uppercase }}\">\n </div>\n }\n <div class=\"container d-md-none\">\n <div class=\"row\">\n <div class=\"col-4\">\n <p class=\"text-center w-100 m-0\"> {{ item.quantity }}</p>\n </div>\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-4 font-xl\">\n <p class=\"text-center w-100 m-0\"> {{ (item.product.variants[0].saleprice ?\n item.product.variants[0].saleprice : item.product.variants[0].price) |\n ecCurrencySymbol}}</p>\n </div>\n }\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-4 font-xl\">\n <p class=\"text-center w-100 m-0\"> {{ ((item.product.variants[0].saleprice ?\n item.product.variants[0].saleprice : item.product.variants[0].price) *\n item.quantity) | ecCurrencySymbol}}aaaa</p>\n </div>\n }\n </div>\n </div>\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-2 d-none d-md-flex align-items-center\">\n <p class=\"text-center w-100 m-0\">\n {{ (item.product.variants[0].saleprice ? item.product.variants[0].saleprice :\n item.product.variants[0].price) | ecCurrencySymbol}}\n </p>\n </div>\n }\n <div class=\"col-1 d-none d-md-flex align-items-center\">\n <p class=\"text-center w-100 m-0\"> {{ item.quantity }}</p>\n </div>\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-2 d-none d-md-flex align-items-center\">\n <p class=\"text-end w-100 m-0\">\n {{ ((item.product.variants[0].saleprice ? item.product.variants[0].saleprice :\n item.product.variants[0].price) * item.quantity) | ecCurrencySymbol}}</p>\n </div>\n }\n <div class=\"collapse\" [attr.id]=\"'collapseExample'+i\">\n <div class=\"card card-body\">\n <table class=\"table table-striped\">\n <thead>\n <tr>\n <th scope=\"col\">#</th>\n <th scope=\"col\">Estado</th>\n <th scope=\"col\">Cantidad</th>\n <th scope=\"col\">Fecha Solicitada</th>\n <th scope=\"col\">Fecha Estimada</th>\n <th scope=\"col\">Sede</th>\n <th scope=\"col\">Nota</th>\n <th scope=\"col\">Total Lote</th>\n </tr>\n </thead>\n <tbody>\n @for( lot of item.orderItemLot; track $index){\n <tr>\n <th scope=\"row\">{{lot.id}}</th>\n <td>{{lot.lot_status}}</td>\n <td>{{lot.quantity}}</td>\n <td>{{ toDate(lot.date_request, 'DD/MM/YYYY') | translate }}</td>\n @if(lot.date_deliver){\n <td>{{\n toDate(lot.date_deliver, 'DD/MM/YYYY') | translate }}</td>\n } @else {\n <td>Pendiente</td>\n }\n <td>{{lot.shipping_address_name}}</td>\n <td>{{lot.notes}}</td>\n <td>{{lot.total_lot | ecCurrencySymbol}}</td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n </div>\n </div>\n }\n </div>\n\n <div class=\"container\">\n <div class=\"row\">\n <div class=\"col-12 col-md-6\"></div>\n @if(creditAccountShowPrices !== null ? creditAccountShowPrices : true){\n <div class=\"col-12 col-md-6\">\n <div class=\"row py-4\">\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'total-products' |\n translate }}</div>\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end\">\n {{ (order.totals.items) | ecCurrencySymbol }}\n </div>\n\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'shipment' |\n translate }}</div>\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end\">\n {{ (order.totals.shipping || '0') | ecCurrencySymbol }}\n\n </div>\n @if(!hideDiscounts && order.totals.promotion && order.totals.promotion != 0){\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'discount' |\n translate }}</div>\n }\n @if(!hideDiscounts && order.totals.promotion && order.totals.promotion != 0){\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end text-end\">\n {{ (order.totals.promotion) | ecCurrencySymbol }}</div>\n }\n @if(!hideTaxes && order.totals.taxes && order.totals.taxes != 0 ){\n <div class=\"col-6 font-brandon font-md text-gray border-bottom \">{{ 'taxes' | translate }}</div>\n }\n @if(!hideTaxes && order.totals.taxes && order.totals.taxes != 0){\n <div class=\"col-6 font-brandon font-md text-gray border-bottom text-end\">\n {{ (order.totals.taxes) | ecCurrencySymbol }}</div>\n }\n\n <div class=\"col-6 font-brandon font-md\">{{ 'total' | translate | uppercase }}</div>\n <div class=\"col-6 font-brandon font-md text-end\">\n {{ (order.totals.total) | ecCurrencySymbol }}\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n\n } @else {\n <div class=\"w-100 h-50\">\n <div class=\"d-flex flex-row justify-content-center align-items-center text-center\">\n <h5>{{ 'no-orders' | translate }}</h5>\n </div>\n </div>\n }\n </div>\n\n } @else {\n <div class=\"w-100 h-50 py-5\">\n <div class=\"d-flex flex-row justify-content-center align-items-center text-center\">\n <app-loading-full-ec></app-loading-full-ec>\n </div>\n </div>\n }\n </div>\n</main>" }]
84
84
  }] });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYWNjb3VudC1lYy9vcmRlci1lYy9vcmRlci1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hY2NvdW50LWVjL29yZGVyLWVjL29yZGVyLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7O0FBZTVCLE1BQU0sT0FBTyxnQkFBZ0I7SUFFcEIsY0FBYyxHQUFrQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsT0FBTyxHQUF3QixNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMzRCxVQUFV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N0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDRixDQUFDO0lBRUQsUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7d0dBakVoQyxnQkFBZ0I7NEZBQWhCLGdCQUFnQix3RUN4QjdCLGczbEJBMFJPLHlERDVRSSxlQUFlLHVGQUN4QixvQkFBb0IseURBQ3BCLHNCQUFzQiwyREFDdEIsU0FBUyx5Q0FDVCxhQUFhLDZDQUNiLGFBQWE7OzRGQUtGLGdCQUFnQjtrQkFiNUIsU0FBUzsrQkFDQyxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsZUFBZTt3QkFDeEIsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLFNBQVM7d0JBQ1QsYUFBYTt3QkFDYixhQUFhO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYXJ0U2VydmljZSwgQ2hhbm5lbFNlcnZpY2UsIE9yZGVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgRWNDdXJyZW5jeVN5bWJvbFBpcGUgfSBmcm9tICcuLi8uLi8uLi9lYy1waXBlJztcclxuaW1wb3J0IHsgTG9hZGluZ0Z1bGxFY0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3dpZGdldHMtZWMnO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIFRpdGxlQ2FzZVBpcGUsIFVwcGVyQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBcGlDb25zdGFudHNTZXJ2aWNlLCBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1vcmRlci1lYycsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLFxyXG5cdFx0RWNDdXJyZW5jeVN5bWJvbFBpcGUsXHJcblx0XHRMb2FkaW5nRnVsbEVjQ29tcG9uZW50LFxyXG5cdFx0QXN5bmNQaXBlLFxyXG5cdFx0VGl0bGVDYXNlUGlwZSxcclxuXHRcdFVwcGVyQ2FzZVBpcGVcclxuXHRdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9vcmRlci1lYy5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL29yZGVyLWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgT3JkZXJFY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cdHByaXZhdGUgX29yZGVyc1NlcnZpY2U6IE9yZGVyc1NlcnZpY2UgPSBpbmplY3QoT3JkZXJzU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfY29uc3RzOiBBcGlDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KEFwaUNvbnN0YW50c1NlcnZpY2UpO1xyXG5cdHByaXZhdGUgX2NvbnN0YW50czogQ29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpO1xyXG5cdHByaXZhdGUgX3JvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblx0cHJpdmF0ZSBfY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlID0gaW5qZWN0KENhcnRTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9jaGFubmVsQ29uZmlnU2VydmljZTogQ2hhbm5lbFNlcnZpY2UgPSBpbmplY3QoQ2hhbm5lbFNlcnZpY2UpO1xyXG5cdHByaXZhdGUgX2FjdGl2ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG5cclxuXHRwdWJsaWMgb3JkZXIkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLl9vcmRlcnNTZXJ2aWNlLnNlbGVjdGVkT3JkZXIkO1xyXG5cdHB1YmxpYyBhbGxvd1JlcGVhdE9yZGVyczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdHB1YmxpYyBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblx0cHVibGljIGNyZWRpdEFjY291bnRTaG93UHJpY2VzOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XHJcblx0cHVibGljIGhpZGVQcmljZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRwdWJsaWMgaGlkZURpc2NvdW50czogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdHB1YmxpYyBoaWRlVGF4ZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRwdWJsaWMgY2hhbm5lbENvbmZpZzogYW55ID0gdGhpcy5fb3JkZXJzU2VydmljZS5jaGFubmVsQ29uZmlnO1xyXG5cdHB1YmxpYyBudW1iZXJPcmRlcjogYW55O1xyXG5cdHB1YmxpYyBvcmRlck9iajogYW55ID0gbnVsbDsgLy8gQcOxYWRlIGVzdGEgcHJvcGllZGFkXHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuXHRcdHRoaXMuX29yZGVyc1NlcnZpY2Uuc2VsZWN0ZWRPcmRlciQuc3Vic2NyaWJlKHJlcyA9PiB7XHJcblx0XHRcdGlmICghcmVzKSB7XHJcblx0XHRcdFx0Y29uc3QgbnVtYmVyID0gdGhpcy5fYWN0aXZlZFJvdXRlLnNuYXBzaG90LnBhcmFtc1tcIm51bWJlclwiXTtcclxuXHRcdFx0XHR0aGlzLl9vcmRlcnNTZXJ2aWNlLmdldE9yZGVyQnlOdW1iZXIobnVtYmVyKVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMub3JkZXJPYmogPSByZXM7IC8vIEd1YXJkYSBlbCBvYmpldG8gcGVkaWRvXHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2luc2lkZScpO1xyXG5cdFx0fSlcclxuXHRcdHRoaXMuX2NoYW5uZWxDb25maWdTZXJ2aWNlLmNoYW5uZWwkLnN1YnNjcmliZShcclxuXHRcdFx0KGNvbmZpZzogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKGNvbmZpZyAmJiBjb25maWcuYWxsb3dSZXBlYXRPcmRlcnMgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5hbGxvd1JlcGVhdE9yZGVycyA9IGNvbmZpZy5hbGxvd1JlcGVhdE9yZGVycztcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5hbGxvd1JlcGVhdE9yZGVycyA9IGZhbHNlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmhpZGVQcmljZXMgPSBjb25maWc/LmhpZGVQcmljZXMgPz8gZmFsc2U7XHJcblx0XHRcdFx0dGhpcy5oaWRlRGlzY291bnRzID0gY29uZmlnPy5oaWRlRGlzY291bnRzID8/IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuaGlkZVRheGVzID0gY29uZmlnPy5oaWRlVGF4ZXMgPz8gZmFsc2U7XHJcblx0XHRcdH0sXHJcblx0XHQpO1xyXG5cdFx0dGhpcy5fY2FydFNlcnZpY2Uuc2hvd1ByaWNlJC5zdWJzY3JpYmUoKHNob3dQcmljZTogYW55KSA9PiB7XHJcblx0XHRcdHRoaXMuY3JlZGl0QWNjb3VudFNob3dQcmljZXMgPSBzaG93UHJpY2U7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGdldFVybEJhc2UoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fY29uc3RzLmdldFVybEJhc2UoKTtcclxuXHR9XHJcblx0YmFjaygpIHtcclxuXHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCdhY2NvdW50L29yZGVycycpO1xyXG5cdH1cclxuXHR0b0RhdGUoZGF0ZTogYW55LCBmb3JtYXQ6IGFueSkge1xyXG5cdFx0cmV0dXJuIG1vbWVudChkYXRlKS5mb3JtYXQoIWZvcm1hdCAmJiAnREQvTU0vWVlZWSwgaDptbTpzcyBhJyB8fCBmb3JtYXQpXHJcblx0fVxyXG5cclxuXHRyZXBlYXRPcmRlcigpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLmFsbG93UmVwZWF0T3JkZXJzICYmIHRoaXMub3JkZXJPYmopIHtcclxuXHRcdFx0dGhpcy5fY2FydFNlcnZpY2UuYWRkUmVwZWF0T3JkZXJUb0NhcnQodGhpcy5vcmRlck9iai5pdGVtcyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRtZWRpYVVybCA9ICgpID0+IHRoaXMuX2NvbnN0YW50cy5tZWRpYVVybCgpO1xyXG59XHJcbiIsIjxtYWluIGNsYXNzPVwicHktNVwiIGlkPVwib3JkZXJFY0NvbXBvbmVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIEBpZihvcmRlciQgfCBhc3luYzsgYXMgb3JkZXIpe1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgQGlmKG9yZGVyKXtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS1hdXRvIGNvbC0xMiBmb250LWJyYW5kb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInRpdDEgZnctYm9sZFwiPnt7ICgnb3JkZXInIHwgdHJhbnNsYXRlKSArICc6ICcgKyBvcmRlci5udW1iZXIgfX08L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKG9yZGVyPy5pbnZvaWNlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20gY29sLTEyIGZvbnQtYnJhbmRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIFtocmVmXT1cImdldFVybEJhc2UoKS5zbGljZSgwLCAtMSkgKyBvcmRlci5pbnZvaWNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgYnRuLWludm9pY2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZmlsZS1kb3dubG9hZCBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnZG93bmxvYWQnIHwgdHJhbnNsYXRlIH19IHt7ICdpbnZvaWNlcycgfCB0cmFuc2xhdGUgfCB0aXRsZWNhc2UgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwiYmFjaygpXCIgY2xhc3M9XCJjb2wtYXV0byB0ZXh0LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kYXJrIGJ0dm9sdmVyIGJvcmRlclwiPnt7ICdiYWNrLXRvLW9yZGVycycgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBpZD1cIm9yZGVyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB0LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBjb2wtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInN0XCI+e3sgJ3BheW1lbnQtc3RhdGUnIHwgdHJhbnNsYXRlIH19OjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcmRlci5wYXltZW50c1swXS5zdGF0ZSB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGNvbC0xMiBmb250LWJyYW5kb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInN0XCI+e3sgJ3NoaXBtZW50LXN0YXRlJyB8IHRyYW5zbGF0ZSB9fTo8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3JkZXIuc2hpcG1lbnRzWzBdLnN0YXRlIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgY29sLTEyIGZvbnQtYnJhbmRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwic3RcIj57eyAncGF5bWVudC1tZXRob2QnIHwgdHJhbnNsYXRlIH19OjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcmRlci5wYXltZW50c1swXT8ubWV0aG9kPy5uYW1lIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgY29sLTEyIGZvbnQtYnJhbmRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwic3RcIj57eyAnc2hpcG1lbnQtbWV0aG9kJyB8IHRyYW5zbGF0ZSB9fTo8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3JkZXIuc2hpcG1lbnRzWzBdLm1ldGhvZC5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQUNBIERFQkVSSUEgSVIgRUwgTElOSyBERSBTRUdVSU1JRU5UTyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKG9yZGVyLnRyYWNraW5nKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwib3JkZXIudHJhY2tpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kYXJrIGJ0bkxvZ291dCBweC0zIHB5LTEgZm9udC1zaXplLTEwIHctYXV0byBidG4tc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyIHNlZ3VpbWllbnRvPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBjb2wtMTIgZm9udC1icmFuZG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzdFwiPnt7ICdkYXRlJyB8IHRyYW5zbGF0ZSB9fTo8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdG9EYXRlKG9yZGVyLmNoZWNrb3V0Q29tcGxldGVkQXQsICdERC9NTS9ZWVlZJykgfCB0cmFuc2xhdGUgfX08YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHRvRGF0ZShvcmRlci5jaGVja291dENvbXBsZXRlZEF0LCAnaDptbTpzcyBhJykgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihjcmVkaXRBY2NvdW50U2hvd1ByaWNlcyAhPT0gbnVsbCA/IGNyZWRpdEFjY291bnRTaG93UHJpY2VzIDogdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGNvbC0xMiBmb250LWJyYW5kb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzdFwiPnt7ICd0b3RhbCcgfCB0cmFuc2xhdGUgfX06PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJmdy1ib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAob3JkZXIudG90YWxzLnRvdGFsKSB8IGVjQ3VycmVuY3lTeW1ib2x9fVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZighaGlkZVByaWNlcyAmJiBhbGxvd1JlcGVhdE9yZGVycyl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtYi0yIGJ0blJlcGVhdE9yZGVyXCIgKGNsaWNrKT1cInJlcGVhdE9yZGVyKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncmVwZWF0LW9yZGVyJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgcHktMyBib3JkZXItdG9wIGJvcmRlci1ib3R0b21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKG9yZGVyLml0ZW1zLmxlbmd0aCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMiBmb250LXNtIGZvbnQtYnJhbmRvbiBkLW5vbmUgZC1tZC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncHJvZHVjdCcgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2UgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTQgZm9udC1zbSBmb250LWJyYW5kb24gZC1ub25lIGQtbWQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2Rlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihjaGFubmVsQ29uZmlnLmFwcGx5T3JkZXJMb3Qpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY29sTG90c1wiIGNsYXNzPVwiY29sLTEgZm9udC1zbSBmb250LWJyYW5kb24gZC1ub25lIGQtbWQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0ge3sgJ2Rlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdsb3RzJyB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGNyZWRpdEFjY291bnRTaG93UHJpY2VzICE9PSBudWxsID8gY3JlZGl0QWNjb3VudFNob3dQcmljZXMgOiB0cnVlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0yIHRleHQtY2VudGVyIGZvbnQtc20gZm9udC1icmFuZG9uIGQtbm9uZSBkLW1kLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAndW5pdC1wcmljZScgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2UgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMSB0ZXh0LWNlbnRlciBmb250LXNtIGZvbnQtYnJhbmRvbiBkLW5vbmUgZC1tZC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncXVhbnRpdHknIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGNyZWRpdEFjY291bnRTaG93UHJpY2VzICE9PSBudWxsID8gY3JlZGl0QWNjb3VudFNob3dQcmljZXMgOiB0cnVlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0yIHRleHQtZW5kIGZvbnQtc20gZm9udC1icmFuZG9uIGQtbm9uZSBkLW1kLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAndG90YWwnIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvcihpdGVtIG9mIG9yZGVyLml0ZW1zOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY2FydC1pdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNSBjb2wtbWQtMiBweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0/LmltYWdlcz8ubGVuZ3RoKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJzbWMgbWF4d2lkdGggaW1nLWZsdWlkIHJvdW5kZWQtY3VzdG9tIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJtZWRpYVVybCgpICsgIGl0ZW0ucHJvZHVjdC52YXJpYW50c1swXS5pbWFnZXNbMF1cIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoaXRlbS5wcm9kdWN0LnBpY3R1cmVzZGVmYXVsdCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInNtYyBtYXh3aWR0aCBpbWctZmx1aWQgcm91bmRlZC1jdXN0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwibWVkaWFVcmwoKSArIGl0ZW0ucHJvZHVjdC5waWN0dXJlc2RlZmF1bHRbMF1cIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbWQtNCBjb2wtNyBmbGV4LWNvbHVtbiBmbGV4LW1kLXJvdyBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtYnJhbmRvbiBkLWZsZXggdy0xMDAgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5wcm9kdWN0Lm5hbWUgfX0gKENvZDp7eyBpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0uY29kZSB9fSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihjaGFubmVsQ29uZmlnLmFwcGx5T3JkZXJMb3Qpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgY29sLTEgZmxleC1jb2x1bW4gZmxleC1tZC1yb3cganVzdGlmeS1jb250ZW50LXN0YXJ0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuU2VndWlyIG0tMCB0ZXh0LWNlbnRlclwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYnMtdG9nZ2xlXT1cIidjb2xsYXBzZSdcIiBbYXR0ci5kYXRhLWJzLXRhcmdldF09XCInI2NvbGxhcHNlRXhhbXBsZScraVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCIgW2F0dHIuYXJpYS1jb250cm9sc109XCInY29sbGFwc2VFeGFtcGxlJytpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInt7ICdzZWUnIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIGQtbWQtbm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtY2VudGVyIHctMTAwIG0tMFwiPiB7eyBpdGVtLnF1YW50aXR5IH19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoY3JlZGl0QWNjb3VudFNob3dQcmljZXMgIT09IG51bGwgPyBjcmVkaXRBY2NvdW50U2hvd1ByaWNlcyA6IHRydWUpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNCBmb250LXhsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1jZW50ZXIgdy0xMDAgbS0wXCI+IHt7IChpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0uc2FsZXByaWNlID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ucHJvZHVjdC52YXJpYW50c1swXS5zYWxlcHJpY2UgOiBpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0ucHJpY2UpIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjQ3VycmVuY3lTeW1ib2x9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihjcmVkaXRBY2NvdW50U2hvd1ByaWNlcyAhPT0gbnVsbCA/IGNyZWRpdEFjY291bnRTaG93UHJpY2VzIDogdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00IGZvbnQteGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlciB3LTEwMCBtLTBcIj4ge3sgKChpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0uc2FsZXByaWNlID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ucHJvZHVjdC52YXJpYW50c1swXS5zYWxlcHJpY2UgOiBpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0ucHJpY2UpICpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ucXVhbnRpdHkpIHwgZWNDdXJyZW5jeVN5bWJvbH19YWFhYTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGNyZWRpdEFjY291bnRTaG93UHJpY2VzICE9PSBudWxsID8gY3JlZGl0QWNjb3VudFNob3dQcmljZXMgOiB0cnVlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0yIGQtbm9uZSBkLW1kLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtY2VudGVyIHctMTAwIG0tMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IChpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0uc2FsZXByaWNlID8gaXRlbS5wcm9kdWN0LnZhcmlhbnRzWzBdLnNhbGVwcmljZSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5wcm9kdWN0LnZhcmlhbnRzWzBdLnByaWNlKSB8IGVjQ3VycmVuY3lTeW1ib2x9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xIGQtbm9uZSBkLW1kLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1jZW50ZXIgdy0xMDAgbS0wXCI+IHt7IGl0ZW0ucXVhbnRpdHkgfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGNyZWRpdEFjY291bnRTaG93UHJpY2VzICE9PSBudWxsID8gY3JlZGl0QWNjb3VudFNob3dQcmljZXMgOiB0cnVlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0yIGQtbm9uZSBkLW1kLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtZW5kIHctMTAwIG0tMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICgoaXRlbS5wcm9kdWN0LnZhcmlhbnRzWzBdLnNhbGVwcmljZSA/IGl0ZW0ucHJvZHVjdC52YXJpYW50c1swXS5zYWxlcHJpY2UgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ucHJvZHVjdC52YXJpYW50c1swXS5wcmljZSkgKiBpdGVtLnF1YW50aXR5KSB8IGVjQ3VycmVuY3lTeW1ib2x9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzZVwiIFthdHRyLmlkXT1cIidjb2xsYXBzZUV4YW1wbGUnK2lcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1zdHJpcGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj4jPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPkVzdGFkbzwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5DYW50aWRhZDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5GZWNoYSBTb2xpY2l0YWRhPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPkZlY2hhIEVzdGltYWRhPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlNlZGU8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+Tm90YTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5Ub3RhbCBMb3RlPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciggbG90IG9mIGl0ZW0ub3JkZXJJdGVtTG90OyB0cmFjayAkaW5kZXgpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cInJvd1wiPnt7bG90LmlkfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2xvdC5sb3Rfc3RhdHVzfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2xvdC5xdWFudGl0eX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgdG9EYXRlKGxvdC5kYXRlX3JlcXVlc3QsICdERC9NTS9ZWVlZJykgfCB0cmFuc2xhdGUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihsb3QuZGF0ZV9kZWxpdmVyKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvRGF0ZShsb3QuZGF0ZV9kZWxpdmVyLCAnREQvTU0vWVlZWScpIHwgdHJhbnNsYXRlIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlBlbmRpZW50ZTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2xvdC5zaGlwcGluZ19hZGRyZXNzX25hbWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7bG90Lm5vdGVzfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2xvdC50b3RhbF9sb3QgfCBlY0N1cnJlbmN5U3ltYm9sfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNlwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGNyZWRpdEFjY291bnRTaG93UHJpY2VzICE9PSBudWxsID8gY3JlZGl0QWNjb3VudFNob3dQcmljZXMgOiB0cnVlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB5LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IGZvbnQtYnJhbmRvbiBmb250LW1kIHRleHQtZ3JheSBib3JkZXItYm90dG9tIFwiPnt7ICd0b3RhbC1wcm9kdWN0cycgfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBmb250LWJyYW5kb24gZm9udC1tZCB0ZXh0LWdyYXkgYm9yZGVyLWJvdHRvbSAgdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IChvcmRlci50b3RhbHMuaXRlbXMpIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBmb250LWJyYW5kb24gZm9udC1tZCB0ZXh0LWdyYXkgYm9yZGVyLWJvdHRvbSBcIj57eyAnc2hpcG1lbnQnIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgZm9udC1icmFuZG9uIGZvbnQtbWQgdGV4dC1ncmF5IGJvcmRlci1ib3R0b20gIHRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAob3JkZXIudG90YWxzLnNoaXBwaW5nIHx8ICcwJykgfCBlY0N1cnJlbmN5U3ltYm9sIH19XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKCFoaWRlRGlzY291bnRzICYmIG9yZGVyLnRvdGFscy5wcm9tb3Rpb24gJiYgb3JkZXIudG90YWxzLnByb21vdGlvbiAhPSAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBmb250LWJyYW5kb24gZm9udC1tZCB0ZXh0LWdyYXkgYm9yZGVyLWJvdHRvbSBcIj57eyAnZGlzY291bnQnIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZighaGlkZURpc2NvdW50cyAmJiBvcmRlci50b3RhbHMucHJvbW90aW9uICYmIG9yZGVyLnRvdGFscy5wcm9tb3Rpb24gIT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgZm9udC1icmFuZG9uIGZvbnQtbWQgdGV4dC1ncmF5IGJvcmRlci1ib3R0b20gIHRleHQtZW5kIHRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAob3JkZXIudG90YWxzLnByb21vdGlvbikgfCBlY0N1cnJlbmN5U3ltYm9sIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKCFoaWRlVGF4ZXMgJiYgb3JkZXIudG90YWxzLnRheGVzICYmIG9yZGVyLnRvdGFscy50YXhlcyAhPSAwICl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgZm9udC1icmFuZG9uIGZvbnQtbWQgdGV4dC1ncmF5IGJvcmRlci1ib3R0b20gXCI+e3sgJ3RheGVzJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZighaGlkZVRheGVzICYmIG9yZGVyLnRvdGFscy50YXhlcyAmJiBvcmRlci50b3RhbHMudGF4ZXMgIT0gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgZm9udC1icmFuZG9uIGZvbnQtbWQgdGV4dC1ncmF5IGJvcmRlci1ib3R0b20gIHRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAob3JkZXIudG90YWxzLnRheGVzKSB8IGVjQ3VycmVuY3lTeW1ib2wgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IGZvbnQtYnJhbmRvbiBmb250LW1kXCI+e3sgJ3RvdGFsJyB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgZm9udC1icmFuZG9uIGZvbnQtbWQgdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IChvcmRlci50b3RhbHMudG90YWwpIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgaC01MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+e3sgJ25vLW9yZGVycycgfCB0cmFuc2xhdGUgfX08L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgaC01MCBweS01XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1sb2FkaW5nLWZ1bGwtZWM+PC9hcHAtbG9hZGluZy1mdWxsLWVjPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG48L21haW4+Il19
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYWNjb3VudC1lYy9vcmRlci1lYy9vcmRlci1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hY2NvdW50LWVjL29yZGVyLWVjL29yZGVyLWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7O0FBZTVCLE1BQU0sT0FBTyxnQkFBZ0I7SUFFcEIsY0FBYyxHQUFrQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsT0FBTyxHQUF3QixNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMzRCxVQUFV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N0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDRixDQUFDO0lBRUQsUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7d0dBakVoQyxnQkFBZ0I7NEZBQWhCLGdCQUFnQix3RUN4QjdCLDR6a0JBMFJPLHlERDVRSSxlQUFlLHVGQUN4QixvQkFBb0IseURBQ3BCLHNCQUFzQiwyREFDdEIsU0FBUyx5Q0FDVCxhQUFhLDZDQUNiLGFBQWE7OzRGQUtGLGdCQUFnQjtrQkFiNUIsU0FBUzsrQkFDQyxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsZUFBZTt3QkFDeEIsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLFNBQVM7d0JBQ1QsYUFBYTt3QkFDYixhQUFhO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UsIENoYW5uZWxTZXJ2aWNlLCBPcmRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEVjQ3VycmVuY3lTeW1ib2xQaXBlIH0gZnJvbSAnLi4vLi4vLi4vZWMtcGlwZSc7XG5pbXBvcnQgeyBMb2FkaW5nRnVsbEVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy1lYyc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIFRpdGxlQ2FzZVBpcGUsIFVwcGVyQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQXBpQ29uc3RhbnRzU2VydmljZSwgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2FwcC1vcmRlci1lYycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtUcmFuc2xhdGVNb2R1bGUsXG5cdFx0RWNDdXJyZW5jeVN5bWJvbFBpcGUsXG5cdFx0TG9hZGluZ0Z1bGxFY0NvbXBvbmVudCxcblx0XHRBc3luY1BpcGUsXG5cdFx0VGl0bGVDYXNlUGlwZSxcblx0XHRVcHBlckNhc2VQaXBlXG5cdF0sXG5cdHRlbXBsYXRlVXJsOiAnLi9vcmRlci1lYy5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsOiAnLi9vcmRlci1lYy5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgT3JkZXJFY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cblx0cHJpdmF0ZSBfb3JkZXJzU2VydmljZTogT3JkZXJzU2VydmljZSA9IGluamVjdChPcmRlcnNTZXJ2aWNlKTtcblx0cHJpdmF0ZSBfY29uc3RzOiBBcGlDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KEFwaUNvbnN0YW50c1NlcnZpY2UpO1xuXHRwcml2YXRlIF9jb25zdGFudHM6IENvcmVDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KENvcmVDb25zdGFudHNTZXJ2aWNlKTtcblx0cHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblx0cHJpdmF0ZSBfY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlID0gaW5qZWN0KENhcnRTZXJ2aWNlKTtcblx0cHJpdmF0ZSBfY2hhbm5lbENvbmZpZ1NlcnZpY2U6IENoYW5uZWxTZXJ2aWNlID0gaW5qZWN0KENoYW5uZWxTZXJ2aWNlKTtcblx0cHJpdmF0ZSBfYWN0aXZlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG5cblx0cHVibGljIG9yZGVyJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fb3JkZXJzU2VydmljZS5zZWxlY3RlZE9yZGVyJDtcblx0cHVibGljIGFsbG93UmVwZWF0T3JkZXJzOiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBjcmVkaXRBY2NvdW50U2hvd1ByaWNlczogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXHRwdWJsaWMgaGlkZVByaWNlczogYm9vbGVhbiA9IGZhbHNlO1xuXHRwdWJsaWMgaGlkZURpc2NvdW50czogYm9vbGVhbiA9IGZhbHNlO1xuXHRwdWJsaWMgaGlkZVRheGVzOiBib29sZWFuID0gZmFsc2U7XG5cdHB1YmxpYyBjaGFubmVsQ29uZmlnOiBhbnkgPSB0aGlzLl9vcmRlcnNTZXJ2aWNlLmNoYW5uZWxDb25maWc7XG5cdHB1YmxpYyBudW1iZXJPcmRlcjogYW55O1xuXHRwdWJsaWMgb3JkZXJPYmo6IGFueSA9IG51bGw7IC8vIEHDsWFkZSBlc3RhIHByb3BpZWRhZFxuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XG5cdFx0dGhpcy5fb3JkZXJzU2VydmljZS5zZWxlY3RlZE9yZGVyJC5zdWJzY3JpYmUocmVzID0+IHtcblx0XHRcdGlmICghcmVzKSB7XG5cdFx0XHRcdGNvbnN0IG51bWJlciA9IHRoaXMuX2FjdGl2ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXNbXCJudW1iZXJcIl07XG5cdFx0XHRcdHRoaXMuX29yZGVyc1NlcnZpY2UuZ2V0T3JkZXJCeU51bWJlcihudW1iZXIpXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLm9yZGVyT2JqID0gcmVzOyAvLyBHdWFyZGEgZWwgb2JqZXRvIHBlZGlkb1xuXHRcdFx0fVxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ2luc2lkZScpO1xuXHRcdH0pXG5cdFx0dGhpcy5fY2hhbm5lbENvbmZpZ1NlcnZpY2UuY2hhbm5lbCQuc3Vic2NyaWJlKFxuXHRcdFx0KGNvbmZpZzogYW55KSA9PiB7XG5cdFx0XHRcdGlmIChjb25maWcgJiYgY29uZmlnLmFsbG93UmVwZWF0T3JkZXJzICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHR0aGlzLmFsbG93UmVwZWF0T3JkZXJzID0gY29uZmlnLmFsbG93UmVwZWF0T3JkZXJzO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuYWxsb3dSZXBlYXRPcmRlcnMgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmhpZGVQcmljZXMgPSBjb25maWc/LmhpZGVQcmljZXMgPz8gZmFsc2U7XG5cdFx0XHRcdHRoaXMuaGlkZURpc2NvdW50cyA9IGNvbmZpZz8uaGlkZURpc2NvdW50cyA/PyBmYWxzZTtcblx0XHRcdFx0dGhpcy5oaWRlVGF4ZXMgPSBjb25maWc/LmhpZGVUYXhlcyA/PyBmYWxzZTtcblx0XHRcdH0sXG5cdFx0KTtcblx0XHR0aGlzLl9jYXJ0U2VydmljZS5zaG93UHJpY2UkLnN1YnNjcmliZSgoc2hvd1ByaWNlOiBhbnkpID0+IHtcblx0XHRcdHRoaXMuY3JlZGl0QWNjb3VudFNob3dQcmljZXMgPSBzaG93UHJpY2U7XG5cdFx0fSk7XG5cdH1cblxuXHRnZXRVcmxCYXNlKCkge1xuXHRcdHJldHVybiB0aGlzLl9jb25zdHMuZ2V0VXJsQmFzZSgpO1xuXHR9XG5cdGJhY2soKSB7XG5cdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJ2FjY291bnQvb3JkZXJzJyk7XG5cdH1cblx0dG9EYXRlKGRhdGU6IGFueSwgZm9ybWF0OiBhbnkpIHtcblx0XHRyZXR1cm4gbW9tZW50KGRhdGUpLmZvcm1hdCghZm9ybWF0ICYmICdERC9NTS9ZWVlZLCBoOm1tOnNzIGEnIHx8IGZvcm1hdClcblx0fVxuXG5cdHJlcGVhdE9yZGVyKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmFsbG93UmVwZWF0T3JkZXJzICYmIHRoaXMub3JkZXJPYmopIHtcblx0XHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmFkZFJlcGVhdE9yZGVyVG9DYXJ0KHRoaXMub3JkZXJPYmouaXRlbXMpO1xuXHRcdH1cblx0fVxuXG5cdG1lZGlhVXJsID0gKCkgPT4gdGhpcy5fY29uc3RhbnRzLm1lZGlhVXJsKCk7XG59XG4iLCI8bWFpbiBjbGFzcz1cInB5LTVcIiBpZD1cIm9yZGVyRWNDb21wb25lbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgIEBpZihvcmRlciQgfCBhc3luYzsgYXMgb3JkZXIpe1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBcIj5cbiAgICAgICAgICAgICAgICBAaWYob3JkZXIpe1xuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW4gXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLWF1dG8gY29sLTEyIGZvbnQtYnJhbmRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInRpdDEgZnctYm9sZFwiPnt7ICgnb3JkZXInIHwgdHJhbnNsYXRlKSArICc6ICcgKyBvcmRlci5udW1iZXIgfX08L2g0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYob3JkZXI/Lmludm9pY2Upe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20gY29sLTEyIGZvbnQtYnJhbmRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBbaHJlZl09XCJnZXRVcmxCYXNlKCkuc2xpY2UoMCwgLTEpICsgb3JkZXIuaW52b2ljZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBidG4taW52b2ljZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZmlsZS1kb3dubG9hZCBtZS0xXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2Rvd25sb2FkJyB8IHRyYW5zbGF0ZSB9fSB7eyAnaW52b2ljZXMnIHwgdHJhbnNsYXRlIHwgdGl0bGVjYXNlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJiYWNrKClcIiBjbGFzcz1cImNvbC1hdXRvIHRleHQtZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kYXJrIGJ0dm9sdmVyIGJvcmRlclwiPnt7ICdiYWNrLXRvLW9yZGVycycgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gaWQ9XCJvcmRlcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBjb2wtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzdFwiPnt7ICdwYXltZW50LXN0YXRlJyB8IHRyYW5zbGF0ZSB9fTo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcmRlci5wYXltZW50c1swXS5zdGF0ZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yIGNvbC0xMiBmb250LWJyYW5kb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzdFwiPnt7ICdzaGlwbWVudC1zdGF0ZScgfCB0cmFuc2xhdGUgfX06PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3JkZXIuc2hpcG1lbnRzWzBdLnN0YXRlIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgY29sLTEyIGZvbnQtYnJhbmRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInN0XCI+e3sgJ3BheW1lbnQtbWV0aG9kJyB8IHRyYW5zbGF0ZSB9fTo8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcmRlci5wYXltZW50c1swXT8ubWV0aG9kPy5uYW1lIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgY29sLTEyIGZvbnQtYnJhbmRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInN0XCI+e3sgJ3NoaXBtZW50LW1ldGhvZCcgfCB0cmFuc2xhdGUgfX06PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3JkZXIuc2hpcG1lbnRzWzBdLm1ldGhvZC5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBBQ0EgREVCRVJJQSBJUiBFTCBMSU5LIERFIFNFR1VJTUlFTlRPIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKG9yZGVyLnRyYWNraW5nKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cIm9yZGVyLnRyYWNraW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLWRhcmsgYnRuTG9nb3V0IHB4LTMgcHktMSBmb250LXNpemUtMTAgdy1hdXRvIGJ0bi1zbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyIHNlZ3VpbWllbnRvPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBjb2wtMTIgZm9udC1icmFuZG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwic3RcIj57eyAnZGF0ZScgfCB0cmFuc2xhdGUgfX06PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdG9EYXRlKG9yZGVyLmNoZWNrb3V0Q29tcGxldGVkQXQsICdERC9NTS9ZWVlZJykgfCB0cmFuc2xhdGUgfX08YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0b0RhdGUob3JkZXIuY2hlY2tvdXRDb21wbGV0ZWRBdCwgJ2g6bW06c3MgYScpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoY3JlZGl0QWNjb3VudFNob3dQcmljZXMgIT09IG51bGwgPyBjcmVkaXRBY2NvdW50U2hvd1ByaWNlcyA6IHRydWUpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgY29sLTEyIGZvbnQtYnJhbmRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzdFwiPnt7ICd0b3RhbCcgfCB0cmFuc2xhdGUgfX06PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwiZnctYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IChvcmRlci50b3RhbHMudG90YWwpIHwgZWNDdXJyZW5jeVN5bWJvbH19XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgIEBpZighaGlkZVByaWNlcyAmJiBhbGxvd1JlcGVhdE9yZGVycyl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kIG10LTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1iLTIgYnRuUmVwZWF0T3JkZXJcIiAoY2xpY2spPVwicmVwZWF0T3JkZXIoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncmVwZWF0LW9yZGVyJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IFxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBweS0zIGJvcmRlci10b3AgYm9yZGVyLWJvdHRvbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmKG9yZGVyLml0ZW1zLmxlbmd0aCl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0yIGZvbnQtc20gZm9udC1icmFuZG9uIGQtbm9uZSBkLW1kLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAncHJvZHVjdCcgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2UgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNCBmb250LXNtIGZvbnQtYnJhbmRvbiBkLW5vbmUgZC1tZC1ibG9ja1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2Rlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGNoYW5uZWxDb25maWcuYXBwbHlPcmRlckxvdCl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiY29sTG90c1wiIGNsYXNzPVwiY29sLTEgZm9udC1zbSBmb250LWJyYW5kb24gZC1ub25lIGQtbWQtYmxvY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIHt7ICdkZXNjcmlwdGlvbicgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2UgfX0gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2xvdHMnIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoY3JlZGl0QWNjb3VudFNob3dQcmljZXMgIT09IG51bGwgPyBjcmVkaXRBY2NvdW50U2hvd1ByaWNlcyA6IHRydWUpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0yIHRleHQtY2VudGVyIGZvbnQtc20gZm9udC1icmFuZG9uIGQtbm9uZSBkLW1kLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3VuaXQtcHJpY2UnIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEgdGV4dC1jZW50ZXIgZm9udC1zbSBmb250LWJyYW5kb24gZC1ub25lIGQtbWQtYmxvY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdxdWFudGl0eScgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2UgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihjcmVkaXRBY2NvdW50U2hvd1ByaWNlcyAhPT0gbnVsbCA/IGNyZWRpdEFjY291bnRTaG93UHJpY2VzIDogdHJ1ZSl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTIgdGV4dC1lbmQgZm9udC1zbSBmb250LWJyYW5kb24gZC1ub25lIGQtbWQtYmxvY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAndG90YWwnIHwgdHJhbnNsYXRlIHwgdXBwZXJjYXNlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IoaXRlbSBvZiBvcmRlci5pdGVtczsgdHJhY2sgJGluZGV4OyBsZXQgaSA9ICRpbmRleCl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjYXJ0LWl0ZW1zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNSBjb2wtbWQtMiBweS0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoaXRlbS5wcm9kdWN0LnZhcmlhbnRzWzBdPy5pbWFnZXM/Lmxlbmd0aCl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInNtYyBtYXh3aWR0aCBpbWctZmx1aWQgcm91bmRlZC1jdXN0b20gXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJtZWRpYVVybCgpICsgIGl0ZW0ucHJvZHVjdC52YXJpYW50c1swXS5pbWFnZXNbMF1cIiBhbHQ9XCJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihpdGVtLnByb2R1Y3QucGljdHVyZXNkZWZhdWx0KXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInNtYyBtYXh3aWR0aCBpbWctZmx1aWQgcm91bmRlZC1jdXN0b21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIm1lZGlhVXJsKCkgKyBpdGVtLnByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzBdXCIgYWx0PVwiXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbWQtNCBjb2wtNyBmbGV4LWNvbHVtbiBmbGV4LW1kLXJvdyBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJyYW5kb24gZC1mbGV4IHctMTAwIG1iLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnByb2R1Y3QubmFtZSB9fSAoQ29kOnt7IGl0ZW0ucHJvZHVjdC52YXJpYW50c1swXS5jb2RlIH19KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGNoYW5uZWxDb25maWcuYXBwbHlPcmRlckxvdCl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgY29sLTEgZmxleC1jb2x1bW4gZmxleC1tZC1yb3cganVzdGlmeS1jb250ZW50LXN0YXJ0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0blNlZ3VpciBtLTAgdGV4dC1jZW50ZXJcIiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1icy10b2dnbGVdPVwiJ2NvbGxhcHNlJ1wiIFthdHRyLmRhdGEtYnMtdGFyZ2V0XT1cIicjY29sbGFwc2VFeGFtcGxlJytpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCIgW2F0dHIuYXJpYS1jb250cm9sc109XCInY29sbGFwc2VFeGFtcGxlJytpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJ7eyAnc2VlJyB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZSB9fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBkLW1kLW5vbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlciB3LTEwMCBtLTBcIj4ge3sgaXRlbS5xdWFudGl0eSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoY3JlZGl0QWNjb3VudFNob3dQcmljZXMgIT09IG51bGwgPyBjcmVkaXRBY2NvdW50U2hvd1ByaWNlcyA6IHRydWUpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTQgZm9udC14bFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlciB3LTEwMCBtLTBcIj4ge3sgKGl0ZW0ucHJvZHVjdC52YXJpYW50c1swXS5zYWxlcHJpY2UgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ucHJvZHVjdC52YXJpYW50c1swXS5zYWxlcHJpY2UgOiBpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0ucHJpY2UpIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY0N1cnJlbmN5U3ltYm9sfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoY3JlZGl0QWNjb3VudFNob3dQcmljZXMgIT09IG51bGwgPyBjcmVkaXRBY2NvdW50U2hvd1ByaWNlcyA6IHRydWUpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTQgZm9udC14bFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWNlbnRlciB3LTEwMCBtLTBcIj4ge3sgKChpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0uc2FsZXByaWNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0uc2FsZXByaWNlIDogaXRlbS5wcm9kdWN0LnZhcmlhbnRzWzBdLnByaWNlKSAqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5xdWFudGl0eSkgfCBlY0N1cnJlbmN5U3ltYm9sfX1hYWFhPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZihjcmVkaXRBY2NvdW50U2hvd1ByaWNlcyAhPT0gbnVsbCA/IGNyZWRpdEFjY291bnRTaG93UHJpY2VzIDogdHJ1ZSl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTIgZC1ub25lIGQtbWQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtY2VudGVyIHctMTAwIG0tMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAoaXRlbS5wcm9kdWN0LnZhcmlhbnRzWzBdLnNhbGVwcmljZSA/IGl0ZW0ucHJvZHVjdC52YXJpYW50c1swXS5zYWxlcHJpY2UgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0ucHJpY2UpIHwgZWNDdXJyZW5jeVN5bWJvbH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xIGQtbm9uZSBkLW1kLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtY2VudGVyIHctMTAwIG0tMFwiPiB7eyBpdGVtLnF1YW50aXR5IH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGNyZWRpdEFjY291bnRTaG93UHJpY2VzICE9PSBudWxsID8gY3JlZGl0QWNjb3VudFNob3dQcmljZXMgOiB0cnVlKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMiBkLW5vbmUgZC1tZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1lbmQgdy0xMDAgbS0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICgoaXRlbS5wcm9kdWN0LnZhcmlhbnRzWzBdLnNhbGVwcmljZSA/IGl0ZW0ucHJvZHVjdC52YXJpYW50c1swXS5zYWxlcHJpY2UgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnByb2R1Y3QudmFyaWFudHNbMF0ucHJpY2UpICogaXRlbS5xdWFudGl0eSkgfCBlY0N1cnJlbmN5U3ltYm9sfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFwc2VcIiBbYXR0ci5pZF09XCInY29sbGFwc2VFeGFtcGxlJytpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1zdHJpcGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj4jPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5Fc3RhZG88L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPkNhbnRpZGFkPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5GZWNoYSBTb2xpY2l0YWRhPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5GZWNoYSBFc3RpbWFkYTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+U2VkZTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+Tm90YTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+VG90YWwgTG90ZTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yKCBsb3Qgb2YgaXRlbS5vcmRlckl0ZW1Mb3Q7IHRyYWNrICRpbmRleCl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj57e2xvdC5pZH19PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7bG90LmxvdF9zdGF0dXN9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2xvdC5xdWFudGl0eX19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHRvRGF0ZShsb3QuZGF0ZV9yZXF1ZXN0LCAnREQvTU0vWVlZWScpIHwgdHJhbnNsYXRlIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGxvdC5kYXRlX2RlbGl2ZXIpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0RhdGUobG90LmRhdGVfZGVsaXZlciwgJ0REL01NL1lZWVknKSB8IHRyYW5zbGF0ZSB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlBlbmRpZW50ZTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7bG90LnNoaXBwaW5nX2FkZHJlc3NfbmFtZX19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7bG90Lm5vdGVzfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tsb3QudG90YWxfbG90IHwgZWNDdXJyZW5jeVN5bWJvbH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02XCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKGNyZWRpdEFjY291bnRTaG93UHJpY2VzICE9PSBudWxsID8gY3JlZGl0QWNjb3VudFNob3dQcmljZXMgOiB0cnVlKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHktNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IGZvbnQtYnJhbmRvbiBmb250LW1kIHRleHQtZ3JheSBib3JkZXItYm90dG9tIFwiPnt7ICd0b3RhbC1wcm9kdWN0cycgfFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IGZvbnQtYnJhbmRvbiBmb250LW1kIHRleHQtZ3JheSBib3JkZXItYm90dG9tICB0ZXh0LWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IChvcmRlci50b3RhbHMuaXRlbXMpIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBmb250LWJyYW5kb24gZm9udC1tZCB0ZXh0LWdyYXkgYm9yZGVyLWJvdHRvbSBcIj57eyAnc2hpcG1lbnQnIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBmb250LWJyYW5kb24gZm9udC1tZCB0ZXh0LWdyYXkgYm9yZGVyLWJvdHRvbSAgdGV4dC1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAob3JkZXIudG90YWxzLnNoaXBwaW5nIHx8ICcwJykgfCBlY0N1cnJlbmN5U3ltYm9sIH19XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKCFoaWRlRGlzY291bnRzICYmIG9yZGVyLnRvdGFscy5wcm9tb3Rpb24gJiYgb3JkZXIudG90YWxzLnByb21vdGlvbiAhPSAwKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgZm9udC1icmFuZG9uIGZvbnQtbWQgdGV4dC1ncmF5IGJvcmRlci1ib3R0b20gXCI+e3sgJ2Rpc2NvdW50JyB8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoIWhpZGVEaXNjb3VudHMgJiYgb3JkZXIudG90YWxzLnByb21vdGlvbiAmJiBvcmRlci50b3RhbHMucHJvbW90aW9uICE9IDApe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBmb250LWJyYW5kb24gZm9udC1tZCB0ZXh0LWdyYXkgYm9yZGVyLWJvdHRvbSAgdGV4dC1lbmQgdGV4dC1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAob3JkZXIudG90YWxzLnByb21vdGlvbikgfCBlY0N1cnJlbmN5U3ltYm9sIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYoIWhpZGVUYXhlcyAmJiBvcmRlci50b3RhbHMudGF4ZXMgJiYgb3JkZXIudG90YWxzLnRheGVzICE9IDAgKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgZm9udC1icmFuZG9uIGZvbnQtbWQgdGV4dC1ncmF5IGJvcmRlci1ib3R0b20gXCI+e3sgJ3RheGVzJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmKCFoaWRlVGF4ZXMgJiYgb3JkZXIudG90YWxzLnRheGVzICYmIG9yZGVyLnRvdGFscy50YXhlcyAhPSAwKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgZm9udC1icmFuZG9uIGZvbnQtbWQgdGV4dC1ncmF5IGJvcmRlci1ib3R0b20gIHRleHQtZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgKG9yZGVyLnRvdGFscy50YXhlcykgfCBlY0N1cnJlbmN5U3ltYm9sIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBmb250LWJyYW5kb24gZm9udC1tZFwiPnt7ICd0b3RhbCcgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2UgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBmb250LWJyYW5kb24gZm9udC1tZCB0ZXh0LWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IChvcmRlci50b3RhbHMudG90YWwpIHwgZWNDdXJyZW5jeVN5bWJvbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgaC01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNT57eyAnbm8tb3JkZXJzJyB8IHRyYW5zbGF0ZSB9fTwvaDU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgaC01MCBweS01XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWxvYWRpbmctZnVsbC1lYz48L2FwcC1sb2FkaW5nLWZ1bGwtZWM+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9tYWluPiJdfQ==