@colijnit/transaction 12.1.12 → 12.1.15

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 (409) hide show
  1. package/bundles/colijnit-transaction.umd.js +2683 -1143
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +120 -85
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +121 -86
  6. package/esm2015/lib/assets/dictionary/text.properties.js +78 -2
  7. package/esm2015/lib/component/avatar/avatar.component.js +61 -0
  8. package/esm2015/lib/component/avatar/avatar.module.js +21 -0
  9. package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +30 -32
  10. package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +21 -22
  11. package/esm2015/lib/component/checkout/checkout.component.js +5 -5
  12. package/esm2015/lib/component/checkout/checkout.module.js +3 -3
  13. package/esm2015/lib/component/core/base/components/transaction-header-block/transaction-header-block.component.js +38 -0
  14. package/esm2015/lib/component/core/base/components/transaction-header-block/transaction-header-block.module.js +19 -0
  15. package/esm2015/lib/component/core/base/transaction-grid-base.component.js +50 -0
  16. package/esm2015/lib/component/core/core.module.js +3 -6
  17. package/esm2015/lib/component/core/icon/icon.component.js +1 -1
  18. package/esm2015/lib/component/core/stock-status-indicator/stock-status-indicator.component.js +1 -1
  19. package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.component.js +10 -12
  20. package/esm2015/lib/component/shopping-cart/shopping-cart.component.js +7 -2
  21. package/esm2015/lib/component/transaction/transaction.component.js +35 -37
  22. package/esm2015/lib/component/transaction/transaction.module.js +15 -9
  23. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.js +29 -0
  24. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar.component.js +54 -0
  25. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar.module.js +28 -0
  26. package/esm2015/lib/component/transaction-confirmation-history/transaction-confirmation-history.module.js +2 -2
  27. package/esm2015/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.component.js +47 -0
  28. package/esm2015/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.module.js +28 -0
  29. package/esm2015/lib/component/transaction-grid/transaction-grid/transaction-grid.component.js +83 -0
  30. package/esm2015/lib/component/transaction-grid/transaction-grid/transaction-grid.module.js +19 -0
  31. package/esm2015/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.component.js +47 -0
  32. package/esm2015/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.module.js +27 -0
  33. package/esm2015/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.component.js +76 -0
  34. package/esm2015/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.module.js +30 -0
  35. package/esm2015/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.component.js +51 -0
  36. package/esm2015/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.module.js +29 -0
  37. package/esm2015/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.component.js +42 -0
  38. package/esm2015/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.module.js +28 -0
  39. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.component.js +40 -0
  40. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.module.js +29 -0
  41. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.js +75 -0
  42. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.module.js +28 -0
  43. package/esm2015/lib/component/transaction-header/transaction-header-order/transaction-header-order.component.js +37 -0
  44. package/esm2015/lib/component/transaction-header/transaction-header-order/transaction-header-order.module.js +26 -0
  45. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +41 -0
  46. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.module.js +25 -0
  47. package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.js +36 -0
  48. package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.module.js +21 -0
  49. package/esm2015/lib/component/transaction-header/transaction-header.component.js +6 -11
  50. package/esm2015/lib/component/transaction-header/transaction-header.module.js +8 -6
  51. package/esm2015/lib/component/transaction-line/transaction-line.component.js +26 -29
  52. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js +19 -27
  53. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.js +6 -4
  54. package/esm2015/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.js +1 -1
  55. package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.js +44 -0
  56. package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.module.js +31 -0
  57. package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +8 -5
  58. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.component.js +72 -0
  59. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.module.js +33 -0
  60. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.component.js +28 -0
  61. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.module.js +25 -0
  62. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.component.js +23 -0
  63. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.module.js +23 -0
  64. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.component.js +27 -0
  65. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.module.js +24 -0
  66. package/esm2015/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.component.js +10 -2
  67. package/esm2015/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.module.js +3 -2
  68. package/esm2015/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.module.js +2 -2
  69. package/esm2015/lib/component/transaction-search/service/filter-request.service.js +59 -0
  70. package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +33 -0
  71. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter.component.js +90 -0
  72. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter.module.js +34 -0
  73. package/esm2015/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.component.js +42 -0
  74. package/esm2015/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.module.js +19 -0
  75. package/esm2015/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.component.js +104 -0
  76. package/esm2015/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.module.js +25 -0
  77. package/esm2015/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.component.js +239 -0
  78. package/esm2015/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.module.js +28 -0
  79. package/esm2015/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.component.js +239 -0
  80. package/esm2015/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.module.js +30 -0
  81. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.js +52 -0
  82. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.js +28 -0
  83. package/esm2015/lib/component/transaction-search/transaction-search.component.js +56 -0
  84. package/esm2015/lib/component/transaction-search/transaction-search.module.js +25 -0
  85. package/esm2015/lib/component/transaction-search/transaction-tile/transaction-tile.component.js +80 -0
  86. package/esm2015/lib/component/transaction-search/transaction-tile/transaction-tile.module.js +28 -0
  87. package/esm2015/lib/component/view-mode-buttons/view-mode-buttons.component.js +59 -0
  88. package/esm2015/lib/component/view-mode-buttons/view-mode-buttons.module.js +23 -0
  89. package/esm2015/lib/enum/content-view-mode.enum.js +2 -1
  90. package/esm2015/lib/enum/icon.enum.js +16 -1
  91. package/esm2015/lib/enum/transaction-type-category.enum.js +16 -0
  92. package/esm2015/lib/model/filter-item.viewmodel.js +9 -0
  93. package/esm2015/lib/model/filter-viewmodel.js +11 -0
  94. package/esm2015/lib/model/icon-svg.js +16 -1
  95. package/esm2015/lib/model/transaction-bar-button.js +3 -0
  96. package/esm2015/lib/service/collection-cache.service.js +38 -0
  97. package/esm2015/lib/service/ione-connector-adapter.service.js +140 -6
  98. package/esm2015/lib/service/pending-reason.service.js +1 -21
  99. package/esm2015/lib/service/transaction-image.service.js +53 -0
  100. package/esm2015/lib/service/transaction-mapping.service.js +85 -0
  101. package/esm2015/lib/service/transaction.service.js +80 -180
  102. package/esm2015/public_api.js +15 -9
  103. package/fesm2015/colijnit-transaction.js +3662 -1636
  104. package/fesm2015/colijnit-transaction.js.map +1 -1
  105. package/lib/component/{seller-information/seller-information.component.d.ts → avatar/avatar.component.d.ts} +1 -1
  106. package/lib/component/avatar/avatar.module.d.ts +2 -0
  107. package/lib/component/{seller-information → avatar}/style/_layout.scss +5 -5
  108. package/lib/component/avatar/style/_material-definition.scss +2 -0
  109. package/lib/component/avatar/style/_theme.scss +7 -0
  110. package/lib/component/{order-confirmation-grid → avatar}/style/material.scss +0 -1
  111. package/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.d.ts +3 -5
  112. package/lib/component/checkout/checkout-overview-delivery-edit/style/material.scss +0 -1
  113. package/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +0 -2
  114. package/lib/component/checkout/checkout-overview-relation-edit/style/material.scss +0 -1
  115. package/lib/component/checkout/checkout-relation-suggestions-list/style/material.scss +0 -1
  116. package/lib/component/checkout/checkout-relation-suggestions-list-item/style/material.scss +0 -1
  117. package/lib/component/checkout/style/material.scss +1 -2
  118. package/lib/component/confirmation-dialog/style/material.scss +0 -1
  119. package/lib/component/core/base/components/transaction-header-block/style/_layout.scss +53 -0
  120. package/lib/component/core/base/components/transaction-header-block/style/_material-definition.scss +20 -0
  121. package/lib/component/core/base/components/transaction-header-block/style/_theme.scss +11 -0
  122. package/lib/component/core/base/components/transaction-header-block/style/material.scss +4 -0
  123. package/lib/component/core/base/components/transaction-header-block/transaction-header-block.component.d.ts +8 -0
  124. package/lib/component/core/base/components/transaction-header-block/transaction-header-block.module.d.ts +2 -0
  125. package/lib/component/core/base/style/material.scss +0 -1
  126. package/lib/component/core/base/transaction-grid-base.component.d.ts +23 -0
  127. package/lib/component/core/characteristic-answer/characteristic-answer.component.scss +0 -1
  128. package/lib/component/core/icon/icon.component.scss +0 -1
  129. package/lib/component/core/image-display/style/material.scss +0 -1
  130. package/lib/component/core/stock-status-indicator/stock-status-indicator.component.scss +0 -1
  131. package/lib/component/delivery-type-tile/delivery-type-tile.component.d.ts +3 -5
  132. package/lib/component/delivery-type-tile/style/material.scss +0 -1
  133. package/lib/component/order-confirmation-create/style/material.scss +0 -1
  134. package/lib/component/payment/style/material.scss +0 -1
  135. package/lib/component/payment-tile/style/material.scss +0 -1
  136. package/lib/component/relation-address/style/material.scss +0 -1
  137. package/lib/component/relation-address-select/style/material.scss +0 -1
  138. package/lib/component/relation-address-tile/style/material.scss +0 -1
  139. package/lib/component/shared/transaction-article-text/style/material.scss +0 -1
  140. package/lib/component/shared/transaction-article-text-overview/style/material.scss +0 -1
  141. package/lib/component/shopping-cart/style/material.scss +0 -1
  142. package/lib/component/shopping-cart-OLD/shopping-cart-manager/shopping-cart-manager.component.scss +0 -1
  143. package/lib/component/shopping-cart-preview/style/material.scss +0 -1
  144. package/lib/component/stepper/style/material.scss +0 -1
  145. package/lib/component/tile/style/material.scss +0 -1
  146. package/lib/component/transaction/style/_layout.scss +13 -13
  147. package/lib/component/transaction/style/_material-definition.scss +2 -6
  148. package/lib/component/transaction/style/_theme.scss +0 -18
  149. package/lib/component/transaction/style/material.scss +5 -5
  150. package/lib/component/transaction/transaction.component.d.ts +7 -7
  151. package/lib/component/transaction-button-bar/style/_layout.scss +47 -0
  152. package/lib/component/transaction-button-bar/style/_material-definition.scss +11 -0
  153. package/lib/component/transaction-button-bar/style/_theme.scss +14 -0
  154. package/lib/component/{order-grid → transaction-button-bar}/style/material.scss +0 -1
  155. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.d.ts +9 -0
  156. package/lib/component/transaction-button-bar/transaction-button-bar.component.d.ts +17 -0
  157. package/lib/component/transaction-button-bar/transaction-button-bar.module.d.ts +2 -0
  158. package/lib/component/transaction-confirmation-history/style/material.scss +0 -1
  159. package/lib/component/transaction-grid/transaction-base-grid/style/_layout.scss +33 -0
  160. package/lib/component/transaction-grid/transaction-base-grid/style/_material-definition.scss +8 -0
  161. package/lib/component/transaction-grid/transaction-base-grid/style/_theme.scss +6 -0
  162. package/lib/component/{seller-information → transaction-grid/transaction-base-grid}/style/material.scss +0 -1
  163. package/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.component.d.ts +8 -0
  164. package/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.module.d.ts +2 -0
  165. package/lib/component/transaction-grid/transaction-grid/style/_layout.scss +6 -0
  166. package/lib/component/{transaction-history-grid → transaction-grid/transaction-grid}/style/_material-definition.scss +0 -0
  167. package/lib/component/transaction-grid/transaction-grid/style/_theme.scss +6 -0
  168. package/lib/component/transaction-grid/transaction-grid/style/material.scss +5 -0
  169. package/lib/component/transaction-grid/transaction-grid/transaction-grid.component.d.ts +25 -0
  170. package/lib/component/transaction-grid/transaction-grid/transaction-grid.module.d.ts +2 -0
  171. package/lib/component/{transaction-history-grid → transaction-grid/transaction-history-grid}/style/_layout.scss +1 -1
  172. package/lib/component/transaction-grid/transaction-history-grid/style/_material-definition.scss +0 -0
  173. package/lib/component/{transaction-history-grid → transaction-grid/transaction-history-grid}/style/_theme.scss +1 -1
  174. package/lib/component/{transaction-commit-bar → transaction-grid/transaction-history-grid}/style/material.scss +0 -1
  175. package/lib/component/{transaction-history-grid → transaction-grid/transaction-history-grid}/transaction-history-grid.component.d.ts +2 -2
  176. package/lib/component/{transaction-history-grid → transaction-grid/transaction-history-grid}/transaction-history-grid.module.d.ts +0 -0
  177. package/lib/component/{transaction-lines-grid → transaction-grid/transaction-lines-grid}/style/_layout.scss +5 -1
  178. package/lib/component/{transaction-lines-grid → transaction-grid/transaction-lines-grid}/style/_material-definition.scss +3 -0
  179. package/lib/component/{transaction-lines-grid → transaction-grid/transaction-lines-grid}/style/_theme.scss +1 -1
  180. package/lib/component/transaction-grid/transaction-lines-grid/style/material.scss +4 -0
  181. package/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.component.d.ts +11 -0
  182. package/lib/component/{transaction-lines-grid → transaction-grid/transaction-lines-grid}/transaction-lines-grid.module.d.ts +0 -0
  183. package/lib/component/transaction-grid/transaction-order-confirmation-grid/style/_layout.scss +7 -0
  184. package/lib/component/{order-confirmation-grid → transaction-grid/transaction-order-confirmation-grid}/style/_material-definition.scss +0 -0
  185. package/lib/component/transaction-grid/transaction-order-confirmation-grid/style/_theme.scss +7 -0
  186. package/lib/component/transaction-grid/transaction-order-confirmation-grid/style/material.scss +3 -0
  187. package/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.component.d.ts +4 -0
  188. package/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.module.d.ts +2 -0
  189. package/lib/component/transaction-grid/transaction-received-goods-grid/style/_layout.scss +6 -0
  190. package/lib/component/transaction-grid/transaction-received-goods-grid/style/_material-definition.scss +0 -0
  191. package/lib/component/transaction-grid/transaction-received-goods-grid/style/_theme.scss +6 -0
  192. package/lib/component/transaction-grid/transaction-received-goods-grid/style/material.scss +4 -0
  193. package/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.component.d.ts +4 -0
  194. package/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.module.d.ts +2 -0
  195. package/lib/component/transaction-header/transaction-header/style/_layout.scss +40 -0
  196. package/lib/component/transaction-header/transaction-header/style/_material-definition.scss +9 -0
  197. package/lib/component/transaction-header/transaction-header/style/_theme.scss +11 -0
  198. package/lib/component/transaction-header/transaction-header/style/material.scss +7 -0
  199. package/lib/component/transaction-header/transaction-header/transaction-header.component.d.ts +10 -0
  200. package/lib/component/transaction-header/transaction-header/transaction-header.module.d.ts +2 -0
  201. package/lib/component/transaction-header/transaction-header-delivery/style/_layout.scss +33 -0
  202. package/lib/component/transaction-header/transaction-header-delivery/style/_material-definition.scss +6 -0
  203. package/lib/component/transaction-header/transaction-header-delivery/style/_theme.scss +17 -0
  204. package/lib/component/transaction-header/transaction-header-delivery/style/material.scss +3 -0
  205. package/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.d.ts +15 -0
  206. package/lib/component/{transaction-header-delivery → transaction-header/transaction-header-delivery}/transaction-header-delivery.module.d.ts +0 -0
  207. package/lib/component/transaction-header/transaction-header-order/style/_layout.scss +7 -0
  208. package/lib/component/transaction-header/transaction-header-order/style/_material-definition.scss +0 -0
  209. package/lib/component/transaction-header/transaction-header-order/style/_theme.scss +6 -0
  210. package/lib/component/transaction-header/transaction-header-order/style/material.scss +4 -0
  211. package/lib/component/transaction-header/transaction-header-order/transaction-header-order.component.d.ts +4 -0
  212. package/lib/component/transaction-header/transaction-header-order/transaction-header-order.module.d.ts +2 -0
  213. package/lib/component/transaction-header/transaction-header-payment/style/_layout.scss +13 -0
  214. package/lib/component/transaction-header/transaction-header-payment/style/_material-definition.scss +4 -0
  215. package/lib/component/transaction-header/transaction-header-payment/style/_theme.scss +12 -0
  216. package/lib/component/transaction-header/transaction-header-payment/style/material.scss +5 -0
  217. package/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.d.ts +4 -0
  218. package/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.module.d.ts +2 -0
  219. package/lib/component/transaction-header/transaction-header-relation/style/_layout.scss +7 -0
  220. package/lib/component/transaction-header/transaction-header-relation/style/_material-definition.scss +0 -0
  221. package/lib/component/transaction-header/transaction-header-relation/style/_theme.scss +6 -0
  222. package/lib/component/transaction-header/transaction-header-relation/style/material.scss +4 -0
  223. package/lib/component/{transaction-header-relation → transaction-header/transaction-header-relation}/transaction-header-relation.component.d.ts +1 -1
  224. package/lib/component/{transaction-header-relation → transaction-header/transaction-header-relation}/transaction-header-relation.module.d.ts +0 -0
  225. package/lib/component/transaction-header/transaction-header.component.d.ts +0 -2
  226. package/lib/component/transaction-history-grid-status/style/material.scss +0 -1
  227. package/lib/component/transaction-line/style/_layout.scss +36 -0
  228. package/lib/component/transaction-line/style/material.scss +0 -1
  229. package/lib/component/transaction-line/transaction-line.component.d.ts +7 -4
  230. package/lib/component/transaction-line-grid/style/material.scss +0 -1
  231. package/lib/component/transaction-line-side-panel/style/_layout.scss +2 -2
  232. package/lib/component/transaction-line-side-panel/style/_material-definition.scss +2 -0
  233. package/lib/component/transaction-line-side-panel/style/material.scss +0 -1
  234. package/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.d.ts +5 -3
  235. package/lib/component/transaction-line-side-panel-default/style/material.scss +0 -1
  236. package/lib/component/transaction-line-side-panel-purchase/style/_layout.scss +6 -0
  237. package/lib/component/transaction-line-side-panel-purchase/style/_material-definition.scss +0 -0
  238. package/lib/component/transaction-line-side-panel-purchase/style/_theme.scss +6 -0
  239. package/lib/component/transaction-line-side-panel-purchase/style/material.scss +5 -0
  240. package/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.d.ts +8 -0
  241. package/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.module.d.ts +2 -0
  242. package/lib/component/transaction-lines/style/material.scss +0 -1
  243. package/lib/component/transaction-lines/transaction-lines.component.d.ts +3 -5
  244. package/lib/component/transaction-quick-access/transaction-quick-access/style/_layout.scss +11 -0
  245. package/lib/component/{transaction-commit-bar → transaction-quick-access/transaction-quick-access}/style/_material-definition.scss +0 -0
  246. package/lib/component/{transaction-commit-bar → transaction-quick-access/transaction-quick-access}/style/_theme.scss +1 -1
  247. package/lib/component/transaction-quick-access/transaction-quick-access/style/material.scss +6 -0
  248. package/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.component.d.ts +21 -0
  249. package/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.module.d.ts +2 -0
  250. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/_layout.scss +9 -0
  251. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/_material-definition.scss +0 -0
  252. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/_theme.scss +6 -0
  253. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/material.scss +4 -0
  254. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.component.d.ts +4 -0
  255. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.module.d.ts +2 -0
  256. package/lib/component/transaction-quick-access/transaction-quick-access-overview/style/_layout.scss +7 -0
  257. package/lib/component/transaction-quick-access/transaction-quick-access-overview/style/_material-definition.scss +0 -0
  258. package/lib/component/transaction-quick-access/transaction-quick-access-overview/style/_theme.scss +6 -0
  259. package/lib/component/transaction-quick-access/transaction-quick-access-overview/style/material.scss +4 -0
  260. package/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.component.d.ts +4 -0
  261. package/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.module.d.ts +2 -0
  262. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/style/_layout.scss +9 -0
  263. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/style/_material-definition.scss +0 -0
  264. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/style/_theme.scss +6 -0
  265. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/style/material.scss +4 -0
  266. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.component.d.ts +4 -0
  267. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.module.d.ts +2 -0
  268. package/lib/component/transaction-receiving-goods-details/style/material.scss +0 -1
  269. package/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.component.d.ts +2 -0
  270. package/lib/component/transaction-receiving-goods-history/style/material.scss +0 -1
  271. package/lib/component/transaction-search/service/filter-request.service.d.ts +11 -0
  272. package/lib/component/transaction-search/service/transaction-search.service.d.ts +11 -0
  273. package/lib/component/transaction-search/style/_layout.scss +37 -0
  274. package/lib/component/transaction-search/style/_material-definition.scss +39 -0
  275. package/lib/component/transaction-search/style/_theme.scss +6 -0
  276. package/lib/component/transaction-search/style/material.scss +7 -0
  277. package/lib/component/transaction-search/transaction-filter/style/_layout.scss +53 -0
  278. package/lib/component/transaction-search/transaction-filter/style/_material-definition.scss +1 -0
  279. package/lib/component/transaction-search/transaction-filter/style/_theme.scss +8 -0
  280. package/lib/component/transaction-search/transaction-filter/style/material.scss +7 -0
  281. package/lib/component/transaction-search/transaction-filter/transaction-filter.component.d.ts +21 -0
  282. package/lib/component/transaction-search/transaction-filter/transaction-filter.module.d.ts +2 -0
  283. package/lib/component/transaction-search/transaction-filter-categories/style/_layout.scss +23 -0
  284. package/lib/component/transaction-search/transaction-filter-categories/style/_material-definition.scss +0 -0
  285. package/lib/component/transaction-search/transaction-filter-categories/style/_theme.scss +13 -0
  286. package/lib/component/transaction-search/transaction-filter-categories/style/material.scss +3 -0
  287. package/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.component.d.ts +10 -0
  288. package/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.module.d.ts +2 -0
  289. package/lib/component/transaction-search/transaction-filter-content-article/style/_layout.scss +13 -0
  290. package/lib/component/transaction-search/transaction-filter-content-article/style/_material-definition.scss +1 -0
  291. package/lib/component/transaction-search/transaction-filter-content-article/style/_theme.scss +6 -0
  292. package/lib/component/transaction-search/transaction-filter-content-article/style/material.scss +4 -0
  293. package/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.component.d.ts +27 -0
  294. package/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.module.d.ts +2 -0
  295. package/lib/component/transaction-search/transaction-filter-content-logistics/style/_layout.scss +12 -0
  296. package/lib/component/transaction-search/transaction-filter-content-logistics/style/_material-definition.scss +0 -0
  297. package/lib/component/transaction-search/transaction-filter-content-logistics/style/_theme.scss +6 -0
  298. package/lib/component/transaction-search/transaction-filter-content-logistics/style/material.scss +4 -0
  299. package/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.component.d.ts +38 -0
  300. package/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.module.d.ts +2 -0
  301. package/lib/component/transaction-search/transaction-filter-content-order/style/_layout.scss +12 -0
  302. package/lib/component/transaction-search/transaction-filter-content-order/style/_material-definition.scss +1 -0
  303. package/lib/component/transaction-search/transaction-filter-content-order/style/_theme.scss +6 -0
  304. package/lib/component/transaction-search/transaction-filter-content-order/style/material.scss +4 -0
  305. package/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.component.d.ts +64 -0
  306. package/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.module.d.ts +2 -0
  307. package/lib/component/transaction-search/transaction-search-result/style/_layout.scss +26 -0
  308. package/lib/component/transaction-search/transaction-search-result/style/_material-definition.scss +1 -0
  309. package/lib/component/transaction-search/transaction-search-result/style/_theme.scss +6 -0
  310. package/lib/component/transaction-search/transaction-search-result/style/material.scss +3 -0
  311. package/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.d.ts +15 -0
  312. package/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.d.ts +2 -0
  313. package/lib/component/transaction-search/transaction-search.component.d.ts +12 -0
  314. package/lib/component/transaction-search/transaction-search.module.d.ts +2 -0
  315. package/lib/component/transaction-search/transaction-tile/style/_layout.scss +91 -0
  316. package/lib/component/transaction-search/transaction-tile/style/_material-definition.scss +0 -0
  317. package/lib/component/transaction-search/transaction-tile/style/_theme.scss +46 -0
  318. package/lib/component/transaction-search/transaction-tile/style/material.scss +5 -0
  319. package/lib/component/transaction-search/transaction-tile/transaction-tile.component.d.ts +13 -0
  320. package/lib/component/transaction-search/transaction-tile/transaction-tile.module.d.ts +2 -0
  321. package/lib/component/transaction-totals/style/material.scss +0 -1
  322. package/lib/component/view-mode-buttons/style/_layout.scss +20 -0
  323. package/lib/component/view-mode-buttons/style/_material-definition.scss +5 -0
  324. package/lib/component/view-mode-buttons/style/_theme.scss +22 -0
  325. package/lib/component/view-mode-buttons/style/material.scss +3 -0
  326. package/lib/component/view-mode-buttons/view-mode-buttons.component.d.ts +16 -0
  327. package/lib/component/view-mode-buttons/view-mode-buttons.module.d.ts +2 -0
  328. package/lib/enum/content-view-mode.enum.d.ts +2 -1
  329. package/lib/enum/icon.enum.d.ts +15 -0
  330. package/lib/enum/transaction-type-category.enum.d.ts +14 -0
  331. package/lib/model/filter-item.viewmodel.d.ts +7 -0
  332. package/lib/model/filter-viewmodel.d.ts +8 -0
  333. package/lib/model/transaction-bar-button.d.ts +7 -0
  334. package/lib/service/collection-cache.service.d.ts +6 -0
  335. package/lib/service/ione-connector-adapter.service.d.ts +20 -2
  336. package/lib/service/pending-reason.service.d.ts +0 -3
  337. package/lib/service/transaction-image.service.d.ts +10 -0
  338. package/lib/service/transaction-mapping.service.d.ts +14 -0
  339. package/lib/service/transaction.service.d.ts +42 -29
  340. package/lib/style/_variables.scss +41 -36
  341. package/lib/style/transaction-globals.scss +23 -0
  342. package/package.json +6 -3
  343. package/public_api.d.ts +14 -8
  344. package/esm2015/lib/component/core/base/default-ok-cancel-buttons.component.js +0 -41
  345. package/esm2015/lib/component/order-confirmation-grid/order-confirmation-grid.component.js +0 -70
  346. package/esm2015/lib/component/order-confirmation-grid/order-confirmation-grid.module.js +0 -29
  347. package/esm2015/lib/component/order-grid/order-grid.component.js +0 -99
  348. package/esm2015/lib/component/order-grid/order-grid.module.js +0 -28
  349. package/esm2015/lib/component/seller-information/seller-information.component.js +0 -61
  350. package/esm2015/lib/component/seller-information/seller-information.module.js +0 -21
  351. package/esm2015/lib/component/transaction-commit-bar/transaction-commit-bar.component.js +0 -46
  352. package/esm2015/lib/component/transaction-commit-bar/transaction-commit-bar.module.js +0 -27
  353. package/esm2015/lib/component/transaction-header-contact/transaction-header-contact.component.js +0 -34
  354. package/esm2015/lib/component/transaction-header-contact/transaction-header-contact.module.js +0 -19
  355. package/esm2015/lib/component/transaction-header-delivery/transaction-header-delivery.component.js +0 -60
  356. package/esm2015/lib/component/transaction-header-delivery/transaction-header-delivery.module.js +0 -21
  357. package/esm2015/lib/component/transaction-header-relation/transaction-header-relation.component.js +0 -35
  358. package/esm2015/lib/component/transaction-header-relation/transaction-header-relation.module.js +0 -19
  359. package/esm2015/lib/component/transaction-history-grid/transaction-history-grid.component.js +0 -47
  360. package/esm2015/lib/component/transaction-history-grid/transaction-history-grid.module.js +0 -27
  361. package/esm2015/lib/component/transaction-lines-grid/transaction-lines-grid.component.js +0 -63
  362. package/esm2015/lib/component/transaction-lines-grid/transaction-lines-grid.module.js +0 -27
  363. package/esm2015/lib/component/transaction-nav-bar/transaction-nav-bar-button/transaction-nav-bar-button.component.js +0 -29
  364. package/esm2015/lib/component/transaction-nav-bar/transaction-nav-bar.component.js +0 -65
  365. package/esm2015/lib/component/transaction-nav-bar/transaction-nav-bar.module.js +0 -26
  366. package/esm2015/lib/model/delivery-type.js +0 -3
  367. package/lib/component/core/base/default-ok-cancel-buttons.component.d.ts +0 -13
  368. package/lib/component/order-confirmation-grid/order-confirmation-grid.component.d.ts +0 -15
  369. package/lib/component/order-confirmation-grid/order-confirmation-grid.module.d.ts +0 -2
  370. package/lib/component/order-confirmation-grid/style/_layout.scss +0 -5
  371. package/lib/component/order-confirmation-grid/style/_theme.scss +0 -5
  372. package/lib/component/order-grid/order-grid.component.d.ts +0 -23
  373. package/lib/component/order-grid/order-grid.module.d.ts +0 -2
  374. package/lib/component/order-grid/style/_layout.scss +0 -21
  375. package/lib/component/order-grid/style/_material-definition.scss +0 -2
  376. package/lib/component/order-grid/style/_theme.scss +0 -6
  377. package/lib/component/seller-information/seller-information.module.d.ts +0 -2
  378. package/lib/component/seller-information/style/_material-definition.scss +0 -2
  379. package/lib/component/seller-information/style/_theme.scss +0 -7
  380. package/lib/component/transaction-commit-bar/style/_layout.scss +0 -16
  381. package/lib/component/transaction-commit-bar/transaction-commit-bar.component.d.ts +0 -11
  382. package/lib/component/transaction-commit-bar/transaction-commit-bar.module.d.ts +0 -2
  383. package/lib/component/transaction-header-contact/style/_layout.scss +0 -25
  384. package/lib/component/transaction-header-contact/style/_material-definition.scss +0 -7
  385. package/lib/component/transaction-header-contact/style/_theme.scss +0 -11
  386. package/lib/component/transaction-header-contact/style/material.scss +0 -4
  387. package/lib/component/transaction-header-contact/transaction-header-contact.component.d.ts +0 -4
  388. package/lib/component/transaction-header-contact/transaction-header-contact.module.d.ts +0 -2
  389. package/lib/component/transaction-header-delivery/style/_layout.scss +0 -54
  390. package/lib/component/transaction-header-delivery/style/_material-definition.scss +0 -12
  391. package/lib/component/transaction-header-delivery/style/_theme.scss +0 -24
  392. package/lib/component/transaction-header-delivery/style/material.scss +0 -4
  393. package/lib/component/transaction-header-delivery/transaction-header-delivery.component.d.ts +0 -13
  394. package/lib/component/transaction-header-relation/style/_layout.scss +0 -25
  395. package/lib/component/transaction-header-relation/style/_material-definition.scss +0 -7
  396. package/lib/component/transaction-header-relation/style/_theme.scss +0 -11
  397. package/lib/component/transaction-header-relation/style/material.scss +0 -4
  398. package/lib/component/transaction-history-grid/style/material.scss +0 -4
  399. package/lib/component/transaction-lines-grid/style/material.scss +0 -5
  400. package/lib/component/transaction-lines-grid/transaction-lines-grid.component.d.ts +0 -20
  401. package/lib/component/transaction-nav-bar/style/_layout.scss +0 -13
  402. package/lib/component/transaction-nav-bar/style/_material-definition.scss +0 -1
  403. package/lib/component/transaction-nav-bar/style/_theme.scss +0 -7
  404. package/lib/component/transaction-nav-bar/style/material.scss +0 -4
  405. package/lib/component/transaction-nav-bar/transaction-nav-bar-button/transaction-nav-bar-button.component.d.ts +0 -14
  406. package/lib/component/transaction-nav-bar/transaction-nav-bar-button/transaction-nav-bar-button.component.scss +0 -23
  407. package/lib/component/transaction-nav-bar/transaction-nav-bar.component.d.ts +0 -18
  408. package/lib/component/transaction-nav-bar/transaction-nav-bar.module.d.ts +0 -2
  409. package/lib/model/delivery-type.d.ts +0 -7
@@ -0,0 +1,61 @@
1
+ import { Component, HostBinding, Input, ViewEncapsulation } from "@angular/core";
2
+ import { TransactionService } from "../../service/transaction.service";
3
+ import { RelationRequest } from "@colijnit/transactionapi/build/model/relation-request";
4
+ export class AvatarComponent {
5
+ constructor(_service) {
6
+ this._service = _service;
7
+ }
8
+ set relationId(value) {
9
+ this._relationId = value;
10
+ this._getRelation();
11
+ }
12
+ get relationId() {
13
+ return this._relationId;
14
+ }
15
+ showClass() {
16
+ return true;
17
+ }
18
+ _getRelation() {
19
+ if (!isNaN(this._relationId)) {
20
+ const request = new RelationRequest();
21
+ request.relationId = this._relationId;
22
+ this._service.getRelationListObjects(request).then((data) => {
23
+ if (data && data.length > 0) {
24
+ this.relation = data[0];
25
+ if (this.relation && this.relation.image && this.relation.image.documentId) {
26
+ this._service.getDocumentContent(this.relation.image.documentId)
27
+ .then((content) => {
28
+ this.image = content;
29
+ })
30
+ .catch((e) => {
31
+ this.image = "";
32
+ });
33
+ }
34
+ }
35
+ });
36
+ }
37
+ }
38
+ }
39
+ AvatarComponent.decorators = [
40
+ { type: Component, args: [{
41
+ selector: "co-avatar",
42
+ template: `
43
+ <co-image-display [model]="image" *ngIf="image; else showInitials"></co-image-display>
44
+ <ng-template #showInitials>
45
+ <svg viewBox="0 0 30 30">
46
+ <text x="50%" y="50%" dominant-baseline="central" text-anchor="middle">{{ relation?.displayInitials }}</text>
47
+ </svg>
48
+ </ng-template>
49
+ `,
50
+ encapsulation: ViewEncapsulation.None
51
+ },] }
52
+ ];
53
+ AvatarComponent.ctorParameters = () => [
54
+ { type: TransactionService }
55
+ ];
56
+ AvatarComponent.propDecorators = {
57
+ relationId: [{ type: Input }],
58
+ relation: [{ type: Input }],
59
+ showClass: [{ type: HostBinding, args: ["class.co-avatar",] }]
60
+ };
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2F2YXRhci9hdmF0YXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUVyRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sdURBQXVELENBQUM7QUFjdEYsTUFBTSxPQUFPLGVBQWU7SUF3QjFCLFlBQ1UsUUFBNEI7UUFBNUIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7SUFFdEMsQ0FBQztJQXpCRCxJQUNXLFVBQVUsQ0FBQyxLQUFhO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBTU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQVdPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDNUIsTUFBTSxPQUFPLEdBQW9CLElBQUksZUFBZSxFQUFFLENBQUM7WUFDdkQsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzFELElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDeEIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRTt3QkFDMUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7NkJBQzdELElBQUksQ0FBQyxDQUFDLE9BQWUsRUFBRSxFQUFFOzRCQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQzt3QkFDdkIsQ0FBQyxDQUFDOzZCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFOzRCQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO3dCQUNsQixDQUFDLENBQUMsQ0FBQTtxQkFDTDtpQkFDRjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzs7WUE1REYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixRQUFRLEVBQUU7Ozs7Ozs7R0FPVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBZk8sa0JBQWtCOzs7eUJBa0J2QixLQUFLO3VCQVVMLEtBQUs7d0JBR0wsV0FBVyxTQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge1JlbGF0aW9uTGlzdE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1saXN0LW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge1JlbGF0aW9uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1yZXF1ZXN0XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1hdmF0YXJcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLWltYWdlLWRpc3BsYXkgW21vZGVsXT1cImltYWdlXCIgKm5nSWY9XCJpbWFnZTsgZWxzZSBzaG93SW5pdGlhbHNcIj48L2NvLWltYWdlLWRpc3BsYXk+XHJcbiAgICA8bmctdGVtcGxhdGUgI3Nob3dJbml0aWFscz5cclxuICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDMwIDMwXCI+XHJcbiAgICAgICAgPHRleHQgeD1cIjUwJVwiIHk9XCI1MCVcIiBkb21pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIiB0ZXh0LWFuY2hvcj1cIm1pZGRsZVwiPnt7IHJlbGF0aW9uPy5kaXNwbGF5SW5pdGlhbHMgfX08L3RleHQ+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEF2YXRhckNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCByZWxhdGlvbklkKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3JlbGF0aW9uSWQgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2dldFJlbGF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlbGF0aW9uSWQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9yZWxhdGlvbklkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmVsYXRpb246IFJlbGF0aW9uTGlzdE9iamVjdDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tYXZhdGFyXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGltYWdlOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgX3JlbGF0aW9uSWQ6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFJlbGF0aW9uKCk6IHZvaWQge1xyXG4gICAgaWYgKCFpc05hTih0aGlzLl9yZWxhdGlvbklkKSkge1xyXG4gICAgICBjb25zdCByZXF1ZXN0OiBSZWxhdGlvblJlcXVlc3QgPSBuZXcgUmVsYXRpb25SZXF1ZXN0KCk7XHJcbiAgICAgIHJlcXVlc3QucmVsYXRpb25JZCA9IHRoaXMuX3JlbGF0aW9uSWQ7XHJcbiAgICAgIHRoaXMuX3NlcnZpY2UuZ2V0UmVsYXRpb25MaXN0T2JqZWN0cyhyZXF1ZXN0KS50aGVuKChkYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbGF0aW9uID0gZGF0YVswXTtcclxuICAgICAgICAgIGlmICh0aGlzLnJlbGF0aW9uICYmIHRoaXMucmVsYXRpb24uaW1hZ2UgJiYgdGhpcy5yZWxhdGlvbi5pbWFnZS5kb2N1bWVudElkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NlcnZpY2UuZ2V0RG9jdW1lbnRDb250ZW50KHRoaXMucmVsYXRpb24uaW1hZ2UuZG9jdW1lbnRJZClcclxuICAgICAgICAgICAgICAudGhlbigoY29udGVudDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmltYWdlID0gY29udGVudDtcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbWFnZSA9IFwiXCI7XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { AvatarComponent } from "./avatar.component";
4
+ import { CoreModule } from "../core/core.module";
5
+ export class AvatarModule {
6
+ }
7
+ AvatarModule.decorators = [
8
+ { type: NgModule, args: [{
9
+ imports: [
10
+ CommonModule,
11
+ CoreModule
12
+ ],
13
+ declarations: [
14
+ AvatarComponent
15
+ ],
16
+ exports: [
17
+ AvatarComponent
18
+ ]
19
+ },] }
20
+ ];
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2F2YXRhci9hdmF0YXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFjL0MsTUFBTSxPQUFPLFlBQVk7OztZQVp4QixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osVUFBVTtpQkFDWDtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osZUFBZTtpQkFDaEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGVBQWU7aUJBQ2hCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0F2YXRhckNvbXBvbmVudH0gZnJvbSBcIi4vYXZhdGFyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0NvcmVNb2R1bGV9IGZyb20gXCIuLi9jb3JlL2NvcmUubW9kdWxlXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIENvcmVNb2R1bGVcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgQXZhdGFyQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBBdmF0YXJDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdmF0YXJNb2R1bGUge1xyXG5cclxufVxyXG4iXX0=
@@ -17,11 +17,11 @@ export class CheckoutOverviewDeliveryEditComponent {
17
17
  this.icons = Icon;
18
18
  this.validSubmit = new EventEmitter();
19
19
  this.invalidSubmit = new EventEmitter();
20
- this.deliveryTypes = [
21
- { code: '1', description: 'Bezorgen', icon: this.icons.DeliveryTruck, price: 89 },
22
- { code: '2', description: 'Bezorgen & monteren', icon: this.icons.CalendarDay, price: 119 },
23
- { code: '3', description: 'Meenemen', icon: this.icons.Truck },
24
- ];
20
+ // public deliveryTypes: DeliveryType[] = [
21
+ // {code: '1', description: 'Bezorgen', icon: this.icons.DeliveryTruck, price: 89},
22
+ // {code: '2', description: 'Bezorgen & monteren', icon: this.icons.CalendarDay, price: 119},
23
+ // {code: '3', description: 'Meenemen', icon: this.icons.Truck},
24
+ // ];
25
25
  this.deliveryOptionList = [];
26
26
  this.deliveryOptions = [];
27
27
  this.deliveryOptionFields = { text: "description", value: "code" };
@@ -29,6 +29,7 @@ export class CheckoutOverviewDeliveryEditComponent {
29
29
  this.deliveryMethodFields = { text: "description", value: "code" };
30
30
  this.deliveryTypeIdx = 0;
31
31
  this.changeLocationPopup = false;
32
+ this.transactionDefinitive = false;
32
33
  this.preferredDateOptions = [
33
34
  { text: "NOT_AFTER", value: ">" },
34
35
  { text: "NOT_BEFORE", value: "<" },
@@ -69,7 +70,7 @@ export class CheckoutOverviewDeliveryEditComponent {
69
70
  this.deliveryCosts = this.calculateDeliveryCosts();
70
71
  this.assemblyCosts = this.calculateAssemblyCosts();
71
72
  this.service.getDeliveryMethods().then((methods) => {
72
- this.deliveryMethods = methods;
73
+ this.deliveryMethods = methods.filter(m => m.webshop);
73
74
  });
74
75
  this.service.getDeliveryOptions().then((options) => {
75
76
  this.deliveryOptionList = options;
@@ -82,13 +83,13 @@ export class CheckoutOverviewDeliveryEditComponent {
82
83
  submit() {
83
84
  return this._formMasterService.submitSlaves();
84
85
  }
85
- handleDeliveryMethodChange(deliveryMethodId) {
86
+ handleDeliveryMethodChange(deliveryMethod) {
86
87
  return __awaiter(this, void 0, void 0, function* () {
87
- const deliveryMethod = this.selectDeliveryMethodById(deliveryMethodId);
88
- this.deliveryOptionsRequest.deliveryMethod = deliveryMethodId;
88
+ this.transaction.transactionLines.forEach((tl) => {
89
+ tl.deliveryMethodCode = deliveryMethod.code;
90
+ });
89
91
  if (deliveryMethod) {
90
92
  this.deliveryOptions = this.selectDeliveryOptionsByDeliveryMethod(deliveryMethod);
91
- this.deliveryOptionsRequest.deliveryOptions = [];
92
93
  }
93
94
  });
94
95
  }
@@ -114,6 +115,14 @@ export class CheckoutOverviewDeliveryEditComponent {
114
115
  onChangeLocationCancelClick() {
115
116
  this.changeLocationPopup = false;
116
117
  }
118
+ handleTransactionDefinitive(definitive) {
119
+ return __awaiter(this, void 0, void 0, function* () {
120
+ const success = yield this.service.updateHeaderTransactionDefinitive(this.transaction.transactionInfo.uuid, definitive);
121
+ if (!success) {
122
+ this.transactionDefinitive = !definitive;
123
+ }
124
+ });
125
+ }
117
126
  calculateDeliveryCosts() {
118
127
  return 0;
119
128
  }
@@ -139,37 +148,27 @@ CheckoutOverviewDeliveryEditComponent.decorators = [
139
148
  [tileHeight]="100"
140
149
  [selectedIndex]="deliveryTypeIdx"
141
150
  (indexSelected)="setIndexDeliveryType($event)">
142
- <co-delivery-type-tile #carouselItem *ngFor="let type of deliveryTypes; let index = index"
143
- [type]="type"
151
+ <co-delivery-type-tile #carouselItem *ngFor="let method of deliveryMethods; let index = index"
152
+ [method]="method"
144
153
  [selected]="deliveryTypeIdx === index"
154
+ (selectedChange)="handleDeliveryMethodChange($event)"
145
155
  ></co-delivery-type-tile>
146
156
  </co-carousel-3d>
147
157
  </div>
148
158
  <div class="checkout-data-row">
149
- <co-input-date [(model)]="deliveryOptionsRequest.deliveryDate" [placeholder]="'DELIVERY_DATE' | localize" [required]="true"></co-input-date>
159
+ <co-input-date [placeholder]="'DELIVERY_DATE' | localize" [required]="true"></co-input-date>
150
160
  </div>
151
161
  <div class="checkout-data-row">
152
- <co-input-date [(model)]="deliveryOptionsRequest.preferredDeliveryDate" [placeholder]="'PREFERRED_DATE' | localize"></co-input-date>
162
+ <co-input-date [placeholder]="'PREFERRED_DATE' | localize"></co-input-date>
153
163
  </div>
154
164
  <div class="checkout-data-row">
155
- <co-input-checkbox [(model)]="deliveryOptionsRequest.allowPartialDelivery" [label]="'PART_DELIVERIES' | localize"></co-input-checkbox>
165
+ <co-input-checkbox [label]="'PART_DELIVERIES' | localize"></co-input-checkbox>
156
166
  </div>
157
167
  <div class="checkout-data-row">
158
168
  <co-collapsible [headerTitle]="'ADD_DELIVERY_OPTION' | localize" [iconData]="iconService.getIcon(icons.TriangleDown)">
159
- <div class="checkout-data-row">
160
- <co-drop-down-list
161
- [collection]="deliveryMethods"
162
- [fields]="deliveryMethodFields"
163
- [required]="true"
164
- [model]="deliveryOptionsRequest.deliveryMethod"
165
- (modelChange)="handleDeliveryMethodChange($event)"
166
- [placeholder]="'DELIVERY_METHOD' | localize"></co-drop-down-list>
167
- <co-input-text [placeholder]="'TOTAL_ASSEMBLY_TIME' | localize"></co-input-text>
168
- </div>
169
169
  <div class="checkout-data-row">
170
170
  <co-input-listbox
171
171
  [placeholder]="'DELIVERY_OPTIONS' | localize"
172
- [(model)]="deliveryOptionsRequest.deliveryOptions"
173
172
  [collection]="deliveryOptions"
174
173
  [fields]="deliveryOptionFields"
175
174
  [showCheckbox]="true"
@@ -180,17 +179,17 @@ CheckoutOverviewDeliveryEditComponent.decorators = [
180
179
  <div class="checkout-data-row">
181
180
  <co-collapsible [headerTitle]="'ADD_REMARK' | localize" [iconData]="iconService.getIcon(icons.TriangleDown)">
182
181
  <div class="checkout-data-row">
183
- <co-input-textarea [(model)]="deliveryOptionsRequest.remark" [placeholder]="'REMARKS' | localize"></co-input-textarea>
182
+ <co-input-textarea [placeholder]="'REMARKS' | localize"></co-input-textarea>
184
183
  </div>
185
184
  </co-collapsible>
186
185
  </div>
187
186
  <div class="checkout-data-row">
188
187
  <co-collapsible [headerTitle]="'ADD_REFERENCE' | localize" [iconData]="iconService.getIcon(icons.TriangleDown)">
189
188
  <div class="checkout-data-row">
190
- <co-input-text [(model)]="deliveryOptionsRequest.ownReference" [placeholder]="'REFERENCE' | localize"></co-input-text>
189
+ <co-input-text [placeholder]="'REFERENCE' | localize"></co-input-text>
191
190
  </div>
192
191
  <div class="checkout-data-row">
193
- <co-input-text [(model)]="deliveryOptionsRequest.relationReference" [placeholder]="'REFERENCE_RELATION' | localize"></co-input-text>
192
+ <co-input-text [placeholder]="'REFERENCE_RELATION' | localize"></co-input-text>
194
193
  </div>
195
194
  </co-collapsible>
196
195
  </div>
@@ -224,6 +223,7 @@ CheckoutOverviewDeliveryEditComponent.decorators = [
224
223
  </div>
225
224
  <div class="checkout-data-column">
226
225
  <div class="checkout-data-row">
226
+ <co-input-checkbox [model]="transactionDefinitive" (modelChange)="handleTransactionDefinitive($event)" [label]="'ORDER_DEFINITIVE' | localize"></co-input-checkbox>
227
227
  <co-input-text [model]="'NOG_NIET_GEIMPLEMENTEERD'" [placeholder]="'BRANCH' | localize"></co-input-text>
228
228
  <co-input-text [model]="'NOG_NIET_GEIMPLEMENTEERD'" [placeholder]="'ADMINISTRATIVE_MANAGER' | localize"></co-input-text>
229
229
  </div>
@@ -231,7 +231,6 @@ CheckoutOverviewDeliveryEditComponent.decorators = [
231
231
  <co-drop-down-list
232
232
  [collection]="marketing"
233
233
  [fields]="marketingFields"
234
- [(model)]="deliveryOptionsRequest.marketingCode"
235
234
  [placeholder]="'MARKETING' | localize"></co-drop-down-list>
236
235
  </div>
237
236
  <div class="checkout-data-row">
@@ -266,10 +265,9 @@ CheckoutOverviewDeliveryEditComponent.ctorParameters = () => [
266
265
  { type: IconCacheService }
267
266
  ];
268
267
  CheckoutOverviewDeliveryEditComponent.propDecorators = {
269
- deliveryOptionsRequest: [{ type: Input }],
270
268
  transaction: [{ type: Input }],
271
269
  validSubmit: [{ type: Output }],
272
270
  invalidSubmit: [{ type: Output }],
273
271
  showClass: [{ type: HostBinding, args: ["class.co-checkout-overview-delivery-edit",] }]
274
272
  };
275
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9jaGVja291dC9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQU0vRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUd0RSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUUvRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQXlJckUsTUFBTSxPQUFPLHFDQUFxQztJQTRFaEQsWUFDVSxrQkFBcUMsRUFDckMsa0JBQXFDLEVBQ3JDLFVBQWlDLEVBQ2xDLE9BQTJCLEVBQzNCLFdBQTZCO1FBSjVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxlQUFVLEdBQVYsVUFBVSxDQUF1QjtRQUNsQyxZ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QUM7SUFFTyxzQkFBc0I7UUFDNUIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDOzs7WUExUkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQ0FBb0M7Z0JBQzlDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1SFQ7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGlCQUFpQjtpQkFDbEI7Z0JBQ0QsVUFBVSxFQUFFO29CQUNWLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRTt3QkFDaEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO3dCQUM3QyxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7d0JBQzVDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7d0JBQ3JELFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7cUJBQ25ELENBQUM7aUJBQ0g7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQS9JTyxpQkFBaUI7WUFSakIsaUJBQWlCO1lBYWpCLHFCQUFxQjtZQVByQixrQkFBa0I7WUFTbEIsZ0JBQWdCOzs7cUNBNElyQixLQUFLOzBCQUdMLEtBQUs7MEJBR0wsTUFBTTs0QkFHTixNQUFNO3dCQUdOLFdBQVcsU0FBQywwQ0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7Rm9ybU1hc3RlclNlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XG5pbXBvcnQge0FkZHJlc3N9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvYWRkcmVzcy5ib1wiO1xuaW1wb3J0IHtHZW5kZXJUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vZ2VuZGVyLXR5cGUuZW51bVwiO1xuaW1wb3J0IHtNYXJrZXRpbmd9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbWFya2V0aW5nLmJvXCI7XG5pbXBvcnQge0RlbGl2ZXJ5TWV0aG9kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW1ldGhvZC5ib1wiO1xuaW1wb3J0IHtEZWxpdmVyeU9wdGlvbn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kZWxpdmVyeS1vcHRpb24uYm9cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQge1RleHRWYWx1ZUNvbnRhaW5lcn0gZnJvbSBcIi4uLy4uLy4uL21vZGVsL3RleHQtdmFsdWUtY29udGFpbmVyXCI7XG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xuaW1wb3J0IHtTZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvc2V0LXRyYW5zYWN0aW9uLWRlbGl2ZXJ5LW9wdGlvbnMtcmVxdWVzdC5ib1wiO1xuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xuaW1wb3J0IHtCdXNpbmVzc09iamVjdEZhY3Rvcnl9IGZyb20gXCIuLi8uLi8uLi9mYWN0b3J5L2J1c2luZXNzLW9iamVjdC1mYWN0b3J5XCI7XG5pbXBvcnQge0RlbGl2ZXJ5VHlwZX0gZnJvbSBcIi4uLy4uLy4uL21vZGVsL2RlbGl2ZXJ5LXR5cGVcIjtcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjby1jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0XCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRlbGl2ZXJ5LWVkaXQtY29udGVudFwiPlxuICAgICAgPGNvLWZvcm0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1mb3JtLXdyYXBwZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtc2VjdGlvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtbGFiZWwtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxzcGFuPjAxPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCIgW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9EQVRBJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgPGNvLWNhcm91c2VsLTNkIFt0aWxlV2lkdGhdPVwiMjAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpbGVIZWlnaHRdPVwiMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkSW5kZXhdPVwiZGVsaXZlcnlUeXBlSWR4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluZGV4U2VsZWN0ZWQpPVwic2V0SW5kZXhEZWxpdmVyeVR5cGUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgPGNvLWRlbGl2ZXJ5LXR5cGUtdGlsZSAjY2Fyb3VzZWxJdGVtICpuZ0Zvcj1cImxldCB0eXBlIG9mIGRlbGl2ZXJ5VHlwZXM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJkZWxpdmVyeVR5cGVJZHggPT09IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgID48L2NvLWRlbGl2ZXJ5LXR5cGUtdGlsZT5cbiAgICAgICAgICAgICAgICA8L2NvLWNhcm91c2VsLTNkPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LWRhdGUgWyhtb2RlbCldPVwiZGVsaXZlcnlPcHRpb25zUmVxdWVzdC5kZWxpdmVyeURhdGVcIiBbcGxhY2Vob2xkZXJdPVwiJ0RFTElWRVJZX0RBVEUnIHwgbG9jYWxpemVcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvY28taW5wdXQtZGF0ZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC1kYXRlIFsobW9kZWwpXT1cImRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QucHJlZmVycmVkRGVsaXZlcnlEYXRlXCIgW3BsYWNlaG9sZGVyXT1cIidQUkVGRVJSRURfREFURScgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtZGF0ZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC1jaGVja2JveCBbKG1vZGVsKV09XCJkZWxpdmVyeU9wdGlvbnNSZXF1ZXN0LmFsbG93UGFydGlhbERlbGl2ZXJ5XCIgW2xhYmVsXT1cIidQQVJUX0RFTElWRVJJRVMnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LWNoZWNrYm94PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgPGNvLWNvbGxhcHNpYmxlIFtoZWFkZXJUaXRsZV09XCInQUREX0RFTElWRVJZX09QVElPTicgfCBsb2NhbGl6ZVwiIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlRyaWFuZ2xlRG93bilcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8Y28tZHJvcC1kb3duLWxpc3RcbiAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJkZWxpdmVyeU1ldGhvZHNcIlxuICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwiZGVsaXZlcnlNZXRob2RGaWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiZGVsaXZlcnlPcHRpb25zUmVxdWVzdC5kZWxpdmVyeU1ldGhvZFwiXG4gICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZURlbGl2ZXJ5TWV0aG9kQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInREVMSVZFUllfTUVUSE9EJyB8IGxvY2FsaXplXCI+PC9jby1kcm9wLWRvd24tbGlzdD5cbiAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgW3BsYWNlaG9sZGVyXT1cIidUT1RBTF9BU1NFTUJMWV9USU1FJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LWxpc3Rib3hcbiAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0RFTElWRVJZX09QVElPTlMnIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QuZGVsaXZlcnlPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJkZWxpdmVyeU9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwiZGVsaXZlcnlPcHRpb25GaWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q2hlY2tib3hdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LWxpc3Rib3g+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2NvLWNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgPGNvLWNvbGxhcHNpYmxlIFtoZWFkZXJUaXRsZV09XCInQUREX1JFTUFSSycgfCBsb2NhbGl6ZVwiIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlRyaWFuZ2xlRG93bilcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dGFyZWEgWyhtb2RlbCldPVwiZGVsaXZlcnlPcHRpb25zUmVxdWVzdC5yZW1hcmtcIiBbcGxhY2Vob2xkZXJdPVwiJ1JFTUFSS1MnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHRhcmVhPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9jby1jb2xsYXBzaWJsZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxjby1jb2xsYXBzaWJsZSBbaGVhZGVyVGl0bGVdPVwiJ0FERF9SRUZFUkVOQ0UnIHwgbG9jYWxpemVcIiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcmlhbmdsZURvd24pXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwiZGVsaXZlcnlPcHRpb25zUmVxdWVzdC5vd25SZWZlcmVuY2VcIiBbcGxhY2Vob2xkZXJdPVwiJ1JFRkVSRU5DRScgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cImRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QucmVsYXRpb25SZWZlcmVuY2VcIiBbcGxhY2Vob2xkZXJdPVwiJ1JFRkVSRU5DRV9SRUxBVElPTicgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvY28tY29sbGFwc2libGU+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtZGF0ZSBbbW9kZWxdPVwiJ05PR19OSUVUX0dFSU1QTEVNRU5URUVSRCdcIiBbcGxhY2Vob2xkZXJdPVwiJ0FTU0VNQkxZX0RBVEUnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LWRhdGU+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LXNlY3Rpb24td3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWxhYmVsLWNvbHVtblwiPlxuICAgICAgICAgICAgICA8c3Bhbj4wMjwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInRE9XTlBBWU1FTlQnIHwgbG9jYWxpemVcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLWNvbHVtblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbbW9kZWxdPVwiJ05PR19OSUVUX0dFSU1QTEVNRU5URUVSRCdcIiBbcGxhY2Vob2xkZXJdPVwiJ0RPV05QQVlNRU5UX1BFUkNFTlRBR0UnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgW21vZGVsXT1cIidOT0dfTklFVF9HRUlNUExFTUVOVEVFUkQnXCIgW3BsYWNlaG9sZGVyXT1cIidET1dOUEFZTUVOVF9BTU9VTlQnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbbW9kZWxdPVwiJ05PR19OSUVUX0dFSU1QTEVNRU5URUVSRCdcIiBbcGxhY2Vob2xkZXJdPVwiJ0RPV05QQVlNRU5UX0JZX0JSJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgW21vZGVsXT1cIidOT0dfTklFVF9HRUlNUExFTUVOVEVFUkQnXCIgW3BsYWNlaG9sZGVyXT1cIidET1dOUEFZTUVOVF9PTl9ERUxJVkVSWScgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtc2VjdGlvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtbGFiZWwtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxzcGFuPjAzPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCIgW3RleHRDb250ZW50XT1cIidPUkRFUl9EQVRBJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgW21vZGVsXT1cIidOT0dfTklFVF9HRUlNUExFTUVOVEVFUkQnXCIgW3BsYWNlaG9sZGVyXT1cIidCUkFOQ0gnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgW21vZGVsXT1cIidOT0dfTklFVF9HRUlNUExFTUVOVEVFUkQnXCIgW3BsYWNlaG9sZGVyXT1cIidBRE1JTklTVFJBVElWRV9NQU5BR0VSJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgPGNvLWRyb3AtZG93bi1saXN0XG4gICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJtYXJrZXRpbmdcIlxuICAgICAgICAgICAgICAgICAgW2ZpZWxkc109XCJtYXJrZXRpbmdGaWVsZHNcIlxuICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiZGVsaXZlcnlPcHRpb25zUmVxdWVzdC5tYXJrZXRpbmdDb2RlXCJcbiAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInTUFSS0VUSU5HJyB8IGxvY2FsaXplXCI+PC9jby1kcm9wLWRvd24tbGlzdD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jby1mb3JtPlxuICAgIDwvZGl2PlxuICBgLFxuICBwcm92aWRlcnM6IFtcbiAgICBGb3JtTWFzdGVyU2VydmljZVxuICBdLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcihcInNob3dIaWRlSW52b2ljZUFkZHJlc3NcIiwgW1xuICAgICAgc3RhdGUoXCJ2b2lkXCIsIHN0eWxlKHtoZWlnaHQ6IDAsIG9wYWNpdHk6IDB9KSksXG4gICAgICBzdGF0ZShcIipcIiwgc3R5bGUoe2hlaWdodDogXCIqXCIsIG9wYWNpdHk6IDF9KSksXG4gICAgICB0cmFuc2l0aW9uKFwidm9pZCA9PiAqXCIsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluLW91dFwiKSksXG4gICAgICB0cmFuc2l0aW9uKFwiKiA9PiB2b2lkXCIsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLW91dFwiKSlcbiAgICBdKVxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrb3V0T3ZlcnZpZXdEZWxpdmVyeUVkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGVsaXZlcnlPcHRpb25zUmVxdWVzdDogU2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyB2YWxpZFN1Ym1pdDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgaW52YWxpZFN1Ym1pdDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWNoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXRcIilcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxpdmVyeVR5cGVzOiBEZWxpdmVyeVR5cGVbXSA9IFtcbiAgICB7Y29kZTogJzEnLCBkZXNjcmlwdGlvbjogJ0Jlem9yZ2VuJywgaWNvbjogdGhpcy5pY29ucy5EZWxpdmVyeVRydWNrLCBwcmljZTogODl9LFxuICAgIHtjb2RlOiAnMicsIGRlc2NyaXB0aW9uOiAnQmV6b3JnZW4gJiBtb250ZXJlbicsIGljb246IHRoaXMuaWNvbnMuQ2FsZW5kYXJEYXksIHByaWNlOiAxMTl9LFxuICAgIHtjb2RlOiAnMycsIGRlc2NyaXB0aW9uOiAnTWVlbmVtZW4nLCBpY29uOiB0aGlzLmljb25zLlRydWNrfSxcbiAgXTtcbiAgcHVibGljIGRlbGl2ZXJ5T3B0aW9uTGlzdDogRGVsaXZlcnlPcHRpb25bXSA9IFtdO1xuICBwdWJsaWMgZGVsaXZlcnlPcHRpb25zOiBEZWxpdmVyeU9wdGlvbltdID0gW107XG4gIHB1YmxpYyBkZWxpdmVyeU9wdGlvbkZpZWxkczogVGV4dFZhbHVlQ29udGFpbmVyID0ge3RleHQ6IFwiZGVzY3JpcHRpb25cIiwgdmFsdWU6IFwiY29kZVwifTtcbiAgcHVibGljIGRlbGl2ZXJ5TWV0aG9kczogRGVsaXZlcnlNZXRob2RbXSA9IFtdO1xuICBwdWJsaWMgZGVsaXZlcnlNZXRob2RGaWVsZHM6IFRleHRWYWx1ZUNvbnRhaW5lciA9IHt0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIn07XG4gIHB1YmxpYyBkZWxpdmVyeVR5cGVJZHg6IG51bWJlciA9IDA7XG5cbiAgcHVibGljIGNoYW5nZUxvY2F0aW9uUG9wdXA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIG5ld0FkZHJlc3M6IEFkZHJlc3M7XG4gIHB1YmxpYyBwcmVmZXJyZWREYXRlT3B0aW9uczogVGV4dFZhbHVlQ29udGFpbmVyW10gPSBbXG4gICAge3RleHQ6IFwiTk9UX0FGVEVSXCIsIHZhbHVlOiBcIj5cIn0sXG4gICAge3RleHQ6IFwiTk9UX0JFRk9SRVwiLCB2YWx1ZTogXCI8XCJ9LFxuICAgIHt0ZXh0OiBcIk9OX0RBVEVcIiwgdmFsdWU6IFwiPVwifSxcbiAgXTtcbiAgcHVibGljIGFkZHJlc3NUb0VkaXQ6IEFkZHJlc3M7XG4gIHB1YmxpYyBwcmVmZXJyZWREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgcHVibGljIGdlbmRlcjogR2VuZGVyVHlwZTtcbiAgcHVibGljIG1hcmtldGluZzogTWFya2V0aW5nW10gPSBbXTtcbiAgcHVibGljIG1hcmtldGluZ0ZpZWxkczogT2JqZWN0ID0ge3RleHQ6IFwiZGVzY3JpcHRpb25cIiwgdmFsdWU6IFwiY29kZVwifTtcbiAgcHVibGljIG1hcmtldGluZ0NvZGU6IHN0cmluZztcbiAgcHVibGljIGFzc2VtYmx5Q29zdHM6IG51bWJlcjtcbiAgcHVibGljIGRlbGl2ZXJ5Q29zdHM6IG51bWJlcjtcblxuICAvLyBUT0RPOiBEZXplIHZlbGRlbiBub2cgb3BuZW1lbiBpbiBUcmFuc2FjdGlvbiEhXG4gIHB1YmxpYyBkZWxpdmVyeURhdGVGaW5hbDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgYXNzZW1ibHlEYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgcHVibGljIHRvdGFsQXNzZW1ibHlUaW1lOiBzdHJpbmcgPSBcIlwiO1xuICBwdWJsaWMgZHJvcHNoaXBtZW50OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGdldCBkZWxpdmVyeURhdGUoKTogRGF0ZSB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmRlbGl2ZXJ5RGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5kZWxpdmVyeURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uZGVsaXZlcnlEYXRlO1xuICB9XG5cbiAgcHVibGljIHNldCBkZWxpdmVyeURhdGUodmFsdWU6IERhdGUpIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5kZWxpdmVyeURhdGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJlZmVycmVkRGVsaXZlcnlEYXRlKCk6IERhdGUge1xuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5wcmVmZXJyZWREZWxpdmVyeURhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucHJlZmVycmVkRGVsaXZlcnlEYXRlID0gbmV3IERhdGUoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgcHJlZmVycmVkRGVsaXZlcnlEYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucHJlZmVycmVkRGVsaXZlcnlEYXRlID0gdmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9kaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfZm9ybU1hc3RlclNlcnZpY2U6IEZvcm1NYXN0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2JvRmFjdG9yeTogQnVzaW5lc3NPYmplY3RGYWN0b3J5LFxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHVibGljIGljb25TZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZGVsaXZlcnlDb3N0cyA9IHRoaXMuY2FsY3VsYXRlRGVsaXZlcnlDb3N0cygpO1xuICAgIHRoaXMuYXNzZW1ibHlDb3N0cyA9IHRoaXMuY2FsY3VsYXRlQXNzZW1ibHlDb3N0cygpO1xuICAgIHRoaXMuc2VydmljZS5nZXREZWxpdmVyeU1ldGhvZHMoKS50aGVuKChtZXRob2RzOiBEZWxpdmVyeU1ldGhvZFtdKSA9PiB7XG4gICAgICB0aGlzLmRlbGl2ZXJ5TWV0aG9kcyA9IG1ldGhvZHM7XG4gICAgfSk7XG4gICAgdGhpcy5zZXJ2aWNlLmdldERlbGl2ZXJ5T3B0aW9ucygpLnRoZW4oKG9wdGlvbnM6IERlbGl2ZXJ5T3B0aW9uW10pID0+IHtcbiAgICAgIHRoaXMuZGVsaXZlcnlPcHRpb25MaXN0ID0gb3B0aW9ucztcbiAgICB9KTtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0TWFya2V0aW5nQ29kZXMoKS50aGVuKChtYXJrZXRpbmdDb2RlczogTWFya2V0aW5nW10pID0+IHtcbiAgICAgIHRoaXMubWFya2V0aW5nID0gbWFya2V0aW5nQ29kZXM7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb3JtTWFzdGVyU2VydmljZS5zdWJtaXRTbGF2ZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVEZWxpdmVyeU1ldGhvZENoYW5nZShkZWxpdmVyeU1ldGhvZElkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkZWxpdmVyeU1ldGhvZDogRGVsaXZlcnlNZXRob2QgPSB0aGlzLnNlbGVjdERlbGl2ZXJ5TWV0aG9kQnlJZChkZWxpdmVyeU1ldGhvZElkKTtcbiAgICB0aGlzLmRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QuZGVsaXZlcnlNZXRob2QgPSBkZWxpdmVyeU1ldGhvZElkO1xuICAgIGlmIChkZWxpdmVyeU1ldGhvZCkge1xuICAgICAgdGhpcy5kZWxpdmVyeU9wdGlvbnMgPSB0aGlzLnNlbGVjdERlbGl2ZXJ5T3B0aW9uc0J5RGVsaXZlcnlNZXRob2QoZGVsaXZlcnlNZXRob2QpO1xuICAgICAgdGhpcy5kZWxpdmVyeU9wdGlvbnNSZXF1ZXN0LmRlbGl2ZXJ5T3B0aW9ucyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRJbmRleERlbGl2ZXJ5VHlwZShpZHg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuZGVsaXZlcnlUeXBlSWR4ID0gaWR4O1xuICAgIC8vIHRoaXMuc2VsZWN0QWRkcmVzcyh0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlc1tpZHhdKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3REZWxpdmVyeU9wdGlvbnNCeURlbGl2ZXJ5TWV0aG9kKGRlbGl2ZXJ5TWV0aG9kOiBEZWxpdmVyeU1ldGhvZCk6IERlbGl2ZXJ5T3B0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLmRlbGl2ZXJ5T3B0aW9uTGlzdC5maWx0ZXIoZGVsaXZlcnlPcHRpb24gPT4gZGVsaXZlcnlNZXRob2QuZGVsaXZlcnlPcHRpb25zLmluZGV4T2YoZGVsaXZlcnlPcHRpb24uY29kZSkgIT09IC0xKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3REZWxpdmVyeU1ldGhvZEJ5SWQoZGVsaXZlcnlNZXRob2RJZDogc3RyaW5nKTogRGVsaXZlcnlNZXRob2Qge1xuICAgIHJldHVybiB0aGlzLmRlbGl2ZXJ5TWV0aG9kcy5maW5kKGRlbGl2ZXJ5ID0+IGRlbGl2ZXJ5LmNvZGUgPT09IGRlbGl2ZXJ5TWV0aG9kSWQpO1xuICB9XG5cbiAgcHVibGljIGlzRGVsaXZlcnlPcHRpb25DaGVja2VkKGRlbGl2ZXJ5T3B0aW9uSXRlbTogRGVsaXZlcnlPcHRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmRlbGl2ZXJ5T3B0aW9ucy5pbmRleE9mKGRlbGl2ZXJ5T3B0aW9uSXRlbS5jb2RlLCAwKSA9PT0gMCk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlUHJlZmVycmVkRGVsaXZlcnlEYXRlMihwcmVmZXJyZWREYXRlT3B0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5wcmVmZXJyZWREZWxpdmVyeURhdGUyID0gcHJlZmVycmVkRGF0ZU9wdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBvbk1hcmtldGluZ0NvZGVDaGFuZ2UobWFya2V0aW5nQ29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ubWFya2V0aW5nQ29kZSA9IG1hcmtldGluZ0NvZGU7XG4gIH1cblxuICBwdWJsaWMgb25DaGFuZ2VMb2NhdGlvbkNhbmNlbENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlTG9jYXRpb25Qb3B1cCA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVEZWxpdmVyeUNvc3RzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZUFzc2VtYmx5Q29zdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxufVxuIl19
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9jaGVja291dC9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQU0vRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQWdJckUsTUFBTSxPQUFPLHFDQUFxQztJQThFaEQsWUFDVSxrQkFBcUMsRUFDckMsa0JBQXFDLEVBQ3JDLFVBQWlDLEVBQ2xDLE9BQTJCLEVBQzNCLFdBQTZCO1FBSjVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxlQUFVLEdBQVYsVUFBVSxDQUF1QjtRQUNsQyxZ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QUNYLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDOzs7WUF6UkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQ0FBb0M7Z0JBQzlDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZHVDtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsaUJBQWlCO2lCQUNsQjtnQkFDRCxVQUFVLEVBQUU7b0JBQ1YsT0FBTyxDQUFDLHdCQUF3QixFQUFFO3dCQUNoQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7d0JBQzdDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQzt3QkFDNUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQzt3QkFDckQsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztxQkFDbkQsQ0FBQztpQkFDSDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBcElPLGlCQUFpQjtZQVJqQixpQkFBaUI7WUFZakIscUJBQXFCO1lBTnJCLGtCQUFrQjtZQU9sQixnQkFBZ0I7OzswQkFzSXJCLEtBQUs7MEJBR0wsTUFBTTs0QkFHTixNQUFNO3dCQUdOLFdBQVcsU0FBQywwQ0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7Rm9ybU1hc3RlclNlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XG5pbXBvcnQge0FkZHJlc3N9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvYWRkcmVzcy5ib1wiO1xuaW1wb3J0IHtHZW5kZXJUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vZ2VuZGVyLXR5cGUuZW51bVwiO1xuaW1wb3J0IHtNYXJrZXRpbmd9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbWFya2V0aW5nLmJvXCI7XG5pbXBvcnQge0RlbGl2ZXJ5TWV0aG9kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW1ldGhvZC5ib1wiO1xuaW1wb3J0IHtEZWxpdmVyeU9wdGlvbn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kZWxpdmVyeS1vcHRpb24uYm9cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQge1RleHRWYWx1ZUNvbnRhaW5lcn0gZnJvbSBcIi4uLy4uLy4uL21vZGVsL3RleHQtdmFsdWUtY29udGFpbmVyXCI7XG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xuaW1wb3J0IHtCdXNpbmVzc09iamVjdEZhY3Rvcnl9IGZyb20gXCIuLi8uLi8uLi9mYWN0b3J5L2J1c2luZXNzLW9iamVjdC1mYWN0b3J5XCI7XG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiY28tY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdFwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJkZWxpdmVyeS1lZGl0LWNvbnRlbnRcIj5cbiAgICAgIDxjby1mb3JtPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZm9ybS13cmFwcGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LXNlY3Rpb24td3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWxhYmVsLWNvbHVtblwiPlxuICAgICAgICAgICAgICA8c3Bhbj4wMTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInREVMSVZFUllfREFUQScgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxjby1jYXJvdXNlbC0zZCBbdGlsZVdpZHRoXT1cIjIwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aWxlSGVpZ2h0XT1cIjEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZEluZGV4XT1cImRlbGl2ZXJ5VHlwZUlkeFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmRleFNlbGVjdGVkKT1cInNldEluZGV4RGVsaXZlcnlUeXBlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgIDxjby1kZWxpdmVyeS10eXBlLXRpbGUgI2Nhcm91c2VsSXRlbSAqbmdGb3I9XCJsZXQgbWV0aG9kIG9mIGRlbGl2ZXJ5TWV0aG9kczsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWV0aG9kXT1cIm1ldGhvZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJkZWxpdmVyeVR5cGVJZHggPT09IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cImhhbmRsZURlbGl2ZXJ5TWV0aG9kQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgPjwvY28tZGVsaXZlcnktdHlwZS10aWxlPlxuICAgICAgICAgICAgICAgIDwvY28tY2Fyb3VzZWwtM2Q+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtZGF0ZSBbcGxhY2Vob2xkZXJdPVwiJ0RFTElWRVJZX0RBVEUnIHwgbG9jYWxpemVcIiBbcmVxdWlyZWRdPVwidHJ1ZVwiPjwvY28taW5wdXQtZGF0ZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC1kYXRlIFtwbGFjZWhvbGRlcl09XCInUFJFRkVSUkVEX0RBVEUnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LWRhdGU+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggW2xhYmVsXT1cIidQQVJUX0RFTElWRVJJRVMnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LWNoZWNrYm94PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgPGNvLWNvbGxhcHNpYmxlIFtoZWFkZXJUaXRsZV09XCInQUREX0RFTElWRVJZX09QVElPTicgfCBsb2NhbGl6ZVwiIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlRyaWFuZ2xlRG93bilcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtbGlzdGJveFxuICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInREVMSVZFUllfT1BUSU9OUycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwiZGVsaXZlcnlPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZmllbGRzXT1cImRlbGl2ZXJ5T3B0aW9uRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc2hvd0NoZWNrYm94XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1saXN0Ym94PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9jby1jb2xsYXBzaWJsZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxjby1jb2xsYXBzaWJsZSBbaGVhZGVyVGl0bGVdPVwiJ0FERF9SRU1BUksnIHwgbG9jYWxpemVcIiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcmlhbmdsZURvd24pXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHRhcmVhIFtwbGFjZWhvbGRlcl09XCInUkVNQVJLUycgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2NvLWNvbGxhcHNpYmxlPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgPGNvLWNvbGxhcHNpYmxlIFtoZWFkZXJUaXRsZV09XCInQUREX1JFRkVSRU5DRScgfCBsb2NhbGl6ZVwiIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlRyaWFuZ2xlRG93bilcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbcGxhY2Vob2xkZXJdPVwiJ1JFRkVSRU5DRScgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFtwbGFjZWhvbGRlcl09XCInUkVGRVJFTkNFX1JFTEFUSU9OJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9jby1jb2xsYXBzaWJsZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC1kYXRlIFttb2RlbF09XCInTk9HX05JRVRfR0VJTVBMRU1FTlRFRVJEJ1wiIFtwbGFjZWhvbGRlcl09XCInQVNTRU1CTFlfREFURScgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtZGF0ZT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtc2VjdGlvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtbGFiZWwtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxzcGFuPjAyPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCIgW3RleHRDb250ZW50XT1cIidET1dOUEFZTUVOVCcgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFttb2RlbF09XCInTk9HX05JRVRfR0VJTVBMRU1FTlRFRVJEJ1wiIFtwbGFjZWhvbGRlcl09XCInRE9XTlBBWU1FTlRfUEVSQ0VOVEFHRScgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbbW9kZWxdPVwiJ05PR19OSUVUX0dFSU1QTEVNRU5URUVSRCdcIiBbcGxhY2Vob2xkZXJdPVwiJ0RPV05QQVlNRU5UX0FNT1VOVCcgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFttb2RlbF09XCInTk9HX05JRVRfR0VJTVBMRU1FTlRFRVJEJ1wiIFtwbGFjZWhvbGRlcl09XCInRE9XTlBBWU1FTlRfQllfQlInIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbbW9kZWxdPVwiJ05PR19OSUVUX0dFSU1QTEVNRU5URUVSRCdcIiBbcGxhY2Vob2xkZXJdPVwiJ0RPV05QQVlNRU5UX09OX0RFTElWRVJZJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1zZWN0aW9uLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1sYWJlbC1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgPHNwYW4+MDM8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ09SREVSX0RBVEEnIHwgbG9jYWxpemVcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLWNvbHVtblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggW21vZGVsXT1cInRyYW5zYWN0aW9uRGVmaW5pdGl2ZVwiIChtb2RlbENoYW5nZSk9XCJoYW5kbGVUcmFuc2FjdGlvbkRlZmluaXRpdmUoJGV2ZW50KVwiIFtsYWJlbF09XCInT1JERVJfREVGSU5JVElWRScgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgW21vZGVsXT1cIidOT0dfTklFVF9HRUlNUExFTUVOVEVFUkQnXCIgW3BsYWNlaG9sZGVyXT1cIidCUkFOQ0gnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XG4gICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgW21vZGVsXT1cIidOT0dfTklFVF9HRUlNUExFTUVOVEVFUkQnXCIgW3BsYWNlaG9sZGVyXT1cIidBRE1JTklTVFJBVElWRV9NQU5BR0VSJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgPGNvLWRyb3AtZG93bi1saXN0XG4gICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJtYXJrZXRpbmdcIlxuICAgICAgICAgICAgICAgICAgW2ZpZWxkc109XCJtYXJrZXRpbmdGaWVsZHNcIlxuICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidNQVJLRVRJTkcnIHwgbG9jYWxpemVcIj48L2NvLWRyb3AtZG93bi1saXN0PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2NvLWZvcm0+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHByb3ZpZGVyczogW1xuICAgIEZvcm1NYXN0ZXJTZXJ2aWNlXG4gIF0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKFwic2hvd0hpZGVJbnZvaWNlQWRkcmVzc1wiLCBbXG4gICAgICBzdGF0ZShcInZvaWRcIiwgc3R5bGUoe2hlaWdodDogMCwgb3BhY2l0eTogMH0pKSxcbiAgICAgIHN0YXRlKFwiKlwiLCBzdHlsZSh7aGVpZ2h0OiBcIipcIiwgb3BhY2l0eTogMX0pKSxcbiAgICAgIHRyYW5zaXRpb24oXCJ2b2lkID0+ICpcIiwgYW5pbWF0ZShcIjIwMG1zIGVhc2UtaW4tb3V0XCIpKSxcbiAgICAgIHRyYW5zaXRpb24oXCIqID0+IHZvaWRcIiwgYW5pbWF0ZShcIjIwMG1zIGVhc2Utb3V0XCIpKVxuICAgIF0pXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRPdmVydmlld0RlbGl2ZXJ5RWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xuXG4gIC8vIEBJbnB1dCgpXG4gIC8vIHB1YmxpYyBkZWxpdmVyeU9wdGlvbnNSZXF1ZXN0OiBTZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3Q7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHZhbGlkU3VibWl0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBpbnZhbGlkU3VibWl0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdFwiKVxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gcHVibGljIGRlbGl2ZXJ5VHlwZXM6IERlbGl2ZXJ5VHlwZVtdID0gW1xuICAvLyAgIHtjb2RlOiAnMScsIGRlc2NyaXB0aW9uOiAnQmV6b3JnZW4nLCBpY29uOiB0aGlzLmljb25zLkRlbGl2ZXJ5VHJ1Y2ssIHByaWNlOiA4OX0sXG4gIC8vICAge2NvZGU6ICcyJywgZGVzY3JpcHRpb246ICdCZXpvcmdlbiAmIG1vbnRlcmVuJywgaWNvbjogdGhpcy5pY29ucy5DYWxlbmRhckRheSwgcHJpY2U6IDExOX0sXG4gIC8vICAge2NvZGU6ICczJywgZGVzY3JpcHRpb246ICdNZWVuZW1lbicsIGljb246IHRoaXMuaWNvbnMuVHJ1Y2t9LFxuICAvLyBdO1xuICBwdWJsaWMgZGVsaXZlcnlPcHRpb25MaXN0OiBEZWxpdmVyeU9wdGlvbltdID0gW107XG4gIHB1YmxpYyBkZWxpdmVyeU9wdGlvbnM6IERlbGl2ZXJ5T3B0aW9uW10gPSBbXTtcbiAgcHVibGljIGRlbGl2ZXJ5T3B0aW9uRmllbGRzOiBUZXh0VmFsdWVDb250YWluZXIgPSB7dGV4dDogXCJkZXNjcmlwdGlvblwiLCB2YWx1ZTogXCJjb2RlXCJ9O1xuICBwdWJsaWMgZGVsaXZlcnlNZXRob2RzOiBEZWxpdmVyeU1ldGhvZFtdID0gW107XG4gIHB1YmxpYyBkZWxpdmVyeU1ldGhvZEZpZWxkczogVGV4dFZhbHVlQ29udGFpbmVyID0ge3RleHQ6IFwiZGVzY3JpcHRpb25cIiwgdmFsdWU6IFwiY29kZVwifTtcbiAgcHVibGljIGRlbGl2ZXJ5VHlwZUlkeDogbnVtYmVyID0gMDtcblxuICBwdWJsaWMgY2hhbmdlTG9jYXRpb25Qb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgdHJhbnNhY3Rpb25EZWZpbml0aXZlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIG5ld0FkZHJlc3M6IEFkZHJlc3M7XG4gIHB1YmxpYyBwcmVmZXJyZWREYXRlT3B0aW9uczogVGV4dFZhbHVlQ29udGFpbmVyW10gPSBbXG4gICAge3RleHQ6IFwiTk9UX0FGVEVSXCIsIHZhbHVlOiBcIj5cIn0sXG4gICAge3RleHQ6IFwiTk9UX0JFRk9SRVwiLCB2YWx1ZTogXCI8XCJ9LFxuICAgIHt0ZXh0OiBcIk9OX0RBVEVcIiwgdmFsdWU6IFwiPVwifSxcbiAgXTtcbiAgcHVibGljIGFkZHJlc3NUb0VkaXQ6IEFkZHJlc3M7XG4gIHB1YmxpYyBwcmVmZXJyZWREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgcHVibGljIGdlbmRlcjogR2VuZGVyVHlwZTtcbiAgcHVibGljIG1hcmtldGluZzogTWFya2V0aW5nW10gPSBbXTtcbiAgcHVibGljIG1hcmtldGluZ0ZpZWxkczogT2JqZWN0ID0ge3RleHQ6IFwiZGVzY3JpcHRpb25cIiwgdmFsdWU6IFwiY29kZVwifTtcbiAgcHVibGljIG1hcmtldGluZ0NvZGU6IHN0cmluZztcbiAgcHVibGljIGFzc2VtYmx5Q29zdHM6IG51bWJlcjtcbiAgcHVibGljIGRlbGl2ZXJ5Q29zdHM6IG51bWJlcjtcblxuICAvLyBUT0RPOiBEZXplIHZlbGRlbiBub2cgb3BuZW1lbiBpbiBUcmFuc2FjdGlvbiEhXG4gIHB1YmxpYyBkZWxpdmVyeURhdGVGaW5hbDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgYXNzZW1ibHlEYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgcHVibGljIHRvdGFsQXNzZW1ibHlUaW1lOiBzdHJpbmcgPSBcIlwiO1xuICBwdWJsaWMgZHJvcHNoaXBtZW50OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGdldCBkZWxpdmVyeURhdGUoKTogRGF0ZSB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmRlbGl2ZXJ5RGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5kZWxpdmVyeURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uZGVsaXZlcnlEYXRlO1xuICB9XG5cbiAgcHVibGljIHNldCBkZWxpdmVyeURhdGUodmFsdWU6IERhdGUpIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5kZWxpdmVyeURhdGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJlZmVycmVkRGVsaXZlcnlEYXRlKCk6IERhdGUge1xuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5wcmVmZXJyZWREZWxpdmVyeURhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucHJlZmVycmVkRGVsaXZlcnlEYXRlID0gbmV3IERhdGUoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgcHJlZmVycmVkRGVsaXZlcnlEYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucHJlZmVycmVkRGVsaXZlcnlEYXRlID0gdmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9kaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfZm9ybU1hc3RlclNlcnZpY2U6IEZvcm1NYXN0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2JvRmFjdG9yeTogQnVzaW5lc3NPYmplY3RGYWN0b3J5LFxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHVibGljIGljb25TZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZGVsaXZlcnlDb3N0cyA9IHRoaXMuY2FsY3VsYXRlRGVsaXZlcnlDb3N0cygpO1xuICAgIHRoaXMuYXNzZW1ibHlDb3N0cyA9IHRoaXMuY2FsY3VsYXRlQXNzZW1ibHlDb3N0cygpO1xuICAgIHRoaXMuc2VydmljZS5nZXREZWxpdmVyeU1ldGhvZHMoKS50aGVuKChtZXRob2RzOiBEZWxpdmVyeU1ldGhvZFtdKSA9PiB7XG4gICAgICB0aGlzLmRlbGl2ZXJ5TWV0aG9kcyA9IG1ldGhvZHMuZmlsdGVyKG0gPT4gbS53ZWJzaG9wKTtcbiAgICB9KTtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0RGVsaXZlcnlPcHRpb25zKCkudGhlbigob3B0aW9uczogRGVsaXZlcnlPcHRpb25bXSkgPT4ge1xuICAgICAgdGhpcy5kZWxpdmVyeU9wdGlvbkxpc3QgPSBvcHRpb25zO1xuICAgIH0pO1xuICAgIHRoaXMuc2VydmljZS5nZXRNYXJrZXRpbmdDb2RlcygpLnRoZW4oKG1hcmtldGluZ0NvZGVzOiBNYXJrZXRpbmdbXSkgPT4ge1xuICAgICAgdGhpcy5tYXJrZXRpbmcgPSBtYXJrZXRpbmdDb2RlcztcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1NYXN0ZXJTZXJ2aWNlLnN1Ym1pdFNsYXZlcygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGhhbmRsZURlbGl2ZXJ5TWV0aG9kQ2hhbmdlKGRlbGl2ZXJ5TWV0aG9kOiBEZWxpdmVyeU1ldGhvZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcy5mb3JFYWNoKCh0bDogVHJhbnNhY3Rpb25MaW5lSW5mbykgPT4ge1xuICAgICAgdGwuZGVsaXZlcnlNZXRob2RDb2RlID0gZGVsaXZlcnlNZXRob2QuY29kZTtcbiAgICB9KVxuICAgIGlmIChkZWxpdmVyeU1ldGhvZCkge1xuICAgICAgdGhpcy5kZWxpdmVyeU9wdGlvbnMgPSB0aGlzLnNlbGVjdERlbGl2ZXJ5T3B0aW9uc0J5RGVsaXZlcnlNZXRob2QoZGVsaXZlcnlNZXRob2QpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRJbmRleERlbGl2ZXJ5VHlwZShpZHg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuZGVsaXZlcnlUeXBlSWR4ID0gaWR4O1xuICAgIC8vIHRoaXMuc2VsZWN0QWRkcmVzcyh0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlc1tpZHhdKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3REZWxpdmVyeU9wdGlvbnNCeURlbGl2ZXJ5TWV0aG9kKGRlbGl2ZXJ5TWV0aG9kOiBEZWxpdmVyeU1ldGhvZCk6IERlbGl2ZXJ5T3B0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLmRlbGl2ZXJ5T3B0aW9uTGlzdC5maWx0ZXIoZGVsaXZlcnlPcHRpb24gPT4gZGVsaXZlcnlNZXRob2QuZGVsaXZlcnlPcHRpb25zLmluZGV4T2YoZGVsaXZlcnlPcHRpb24uY29kZSkgIT09IC0xKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3REZWxpdmVyeU1ldGhvZEJ5SWQoZGVsaXZlcnlNZXRob2RJZDogc3RyaW5nKTogRGVsaXZlcnlNZXRob2Qge1xuICAgIHJldHVybiB0aGlzLmRlbGl2ZXJ5TWV0aG9kcy5maW5kKGRlbGl2ZXJ5ID0+IGRlbGl2ZXJ5LmNvZGUgPT09IGRlbGl2ZXJ5TWV0aG9kSWQpO1xuICB9XG5cbiAgcHVibGljIGlzRGVsaXZlcnlPcHRpb25DaGVja2VkKGRlbGl2ZXJ5T3B0aW9uSXRlbTogRGVsaXZlcnlPcHRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmRlbGl2ZXJ5T3B0aW9ucy5pbmRleE9mKGRlbGl2ZXJ5T3B0aW9uSXRlbS5jb2RlLCAwKSA9PT0gMCk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlUHJlZmVycmVkRGVsaXZlcnlEYXRlMihwcmVmZXJyZWREYXRlT3B0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5wcmVmZXJyZWREZWxpdmVyeURhdGUyID0gcHJlZmVycmVkRGF0ZU9wdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBvbk1hcmtldGluZ0NvZGVDaGFuZ2UobWFya2V0aW5nQ29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ubWFya2V0aW5nQ29kZSA9IG1hcmtldGluZ0NvZGU7XG4gIH1cblxuICBwdWJsaWMgb25DaGFuZ2VMb2NhdGlvbkNhbmNlbENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlTG9jYXRpb25Qb3B1cCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGhhbmRsZVRyYW5zYWN0aW9uRGVmaW5pdGl2ZShkZWZpbml0aXZlOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc3VjY2VzczogYm9vbGVhbiA9IGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVIZWFkZXJUcmFuc2FjdGlvbkRlZmluaXRpdmUodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCwgZGVmaW5pdGl2ZSk7XG4gICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRGVmaW5pdGl2ZSA9ICFkZWZpbml0aXZlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlRGVsaXZlcnlDb3N0cygpOiBudW1iZXIge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVBc3NlbWJseUNvc3RzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbn1cbiJdfQ==