@colijnit/transaction 12.1.77 → 12.1.78

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 (1955) hide show
  1. package/.browserslistrc +18 -0
  2. package/.editorconfig +16 -0
  3. package/.eslintrc.json +49 -0
  4. package/README.md +13 -10
  5. package/angular.json +165 -0
  6. package/custom_webpack.config.js +6 -0
  7. package/e2e/protractor.conf.js +32 -0
  8. package/e2e/src/app.e2e-spec.ts +23 -0
  9. package/e2e/src/app.po.ts +11 -0
  10. package/e2e/tsconfig.json +13 -0
  11. package/import.bat +8 -0
  12. package/karma.conf.js +32 -0
  13. package/move-assets.js +14 -0
  14. package/package.json +92 -45
  15. package/projects/transaction/README.md +24 -0
  16. package/projects/transaction/karma.conf.js +44 -0
  17. package/projects/transaction/ng-package.json +13 -0
  18. package/projects/transaction/package.json +44 -0
  19. package/{lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.scss → projects/transaction/src/lib/assets/.gitkeep} +0 -0
  20. package/projects/transaction/src/lib/assets/dictionary/text.properties.ts +748 -0
  21. package/projects/transaction/src/lib/assets/icons/arrow_point_down.svg +6 -0
  22. package/projects/transaction/src/lib/assets/icons/arrow_point_left.svg +8 -0
  23. package/projects/transaction/src/lib/assets/icons/arrow_point_right.svg +8 -0
  24. package/projects/transaction/src/lib/assets/icons/article.svg +1 -0
  25. package/projects/transaction/src/lib/assets/icons/at_solid.svg +1 -0
  26. package/projects/transaction/src/lib/assets/icons/barcode_regular.svg +1 -0
  27. package/projects/transaction/src/lib/assets/icons/barcode_solid.svg +1 -0
  28. package/projects/transaction/src/lib/assets/icons/bars_filter.svg +1 -0
  29. package/projects/transaction/src/lib/assets/icons/calendar_day.svg +37 -0
  30. package/projects/transaction/src/lib/assets/icons/calendar_day_regular.svg +1 -0
  31. package/projects/transaction/src/lib/assets/icons/cancel.svg +1 -0
  32. package/projects/transaction/src/lib/assets/icons/cart_check.svg +1 -0
  33. package/projects/transaction/src/lib/assets/icons/cart_flatbed_boxes_solid.svg +1 -0
  34. package/projects/transaction/src/lib/assets/icons/cart_shopping_solid.svg +5 -0
  35. package/projects/transaction/src/lib/assets/icons/cash_register.svg +1 -0
  36. package/projects/transaction/src/lib/assets/icons/credit_card_solid.svg +1 -0
  37. package/projects/transaction/src/lib/assets/icons/delivery_truck.svg +1 -0
  38. package/projects/transaction/src/lib/assets/icons/edit_pencil.svg +1 -0
  39. package/projects/transaction/src/lib/assets/icons/ellipsis_light.svg +1 -0
  40. package/projects/transaction/src/lib/assets/icons/ellipsis_vertical_solid.svg +1 -0
  41. package/projects/transaction/src/lib/assets/icons/expand_solid.svg +1 -0
  42. package/projects/transaction/src/lib/assets/icons/file_circle_info_solid.svg +1 -0
  43. package/projects/transaction/src/lib/assets/icons/file_export_regular.svg +1 -0
  44. package/projects/transaction/src/lib/assets/icons/file_export_solid.svg +1 -0
  45. package/projects/transaction/src/lib/assets/icons/file_pdf_regular.svg +1 -0
  46. package/projects/transaction/src/lib/assets/icons/file_pdf_solid.svg +1 -0
  47. package/projects/transaction/src/lib/assets/icons/gear_solid.svg +1 -0
  48. package/projects/transaction/src/lib/assets/icons/grip_dots_vertical_solid.svg +1 -0
  49. package/projects/transaction/src/lib/assets/icons/ideal_logo.svg +38 -0
  50. package/projects/transaction/src/lib/assets/icons/inbox_in_solid.svg +1 -0
  51. package/projects/transaction/src/lib/assets/icons/list_regular.svg +1 -0
  52. package/projects/transaction/src/lib/assets/icons/list_view.svg +8 -0
  53. package/projects/transaction/src/lib/assets/icons/location_dot_solid.svg +1 -0
  54. package/projects/transaction/src/lib/assets/icons/lock.svg +1 -0
  55. package/projects/transaction/src/lib/assets/icons/lock_keyhole_open_solid.svg +1 -0
  56. package/projects/transaction/src/lib/assets/icons/lock_keyhole_solid.svg +1 -0
  57. package/projects/transaction/src/lib/assets/icons/magnifier.svg +12 -0
  58. package/projects/transaction/src/lib/assets/icons/map_marker.svg +1 -0
  59. package/projects/transaction/src/lib/assets/icons/master_detail.svg +1 -0
  60. package/projects/transaction/src/lib/assets/icons/memo_circle_check_solid.svg +1 -0
  61. package/projects/transaction/src/lib/assets/icons/menu.svg +1 -0
  62. package/projects/transaction/src/lib/assets/icons/message_sms_regular.svg +1 -0
  63. package/projects/transaction/src/lib/assets/icons/message_sms_solid.svg +1 -0
  64. package/projects/transaction/src/lib/assets/icons/object_intersect_solid.svg +1 -0
  65. package/projects/transaction/src/lib/assets/icons/pallet_boxes_solid.svg +1 -0
  66. package/projects/transaction/src/lib/assets/icons/pdf.svg +15 -0
  67. package/projects/transaction/src/lib/assets/icons/percent_solid.svg +1 -0
  68. package/projects/transaction/src/lib/assets/icons/plus_round.svg +9 -0
  69. package/projects/transaction/src/lib/assets/icons/plus_simple.svg +1 -0
  70. package/projects/transaction/src/lib/assets/icons/print_regular.svg +1 -0
  71. package/projects/transaction/src/lib/assets/icons/print_solid.svg +1 -0
  72. package/projects/transaction/src/lib/assets/icons/purchase.svg +15 -0
  73. package/projects/transaction/src/lib/assets/icons/resize.svg +3 -0
  74. package/projects/transaction/src/lib/assets/icons/share_solid.svg +1 -0
  75. package/projects/transaction/src/lib/assets/icons/shelves_light.svg +1 -0
  76. package/projects/transaction/src/lib/assets/icons/shelves_solid.svg +1 -0
  77. package/projects/transaction/src/lib/assets/icons/side_panel.svg +7 -0
  78. package/projects/transaction/src/lib/assets/icons/slide_in.svg +1 -0
  79. package/projects/transaction/src/lib/assets/icons/square_full.svg +1 -0
  80. package/projects/transaction/src/lib/assets/icons/square_full_solid.svg +1 -0
  81. package/projects/transaction/src/lib/assets/icons/sync_alt.svg +3 -0
  82. package/projects/transaction/src/lib/assets/icons/tag.svg +1 -0
  83. package/projects/transaction/src/lib/assets/icons/text_size_solid.svg +1 -0
  84. package/projects/transaction/src/lib/assets/icons/text_solid.svg +1 -0
  85. package/projects/transaction/src/lib/assets/icons/thick_lines.svg +1 -0
  86. package/projects/transaction/src/lib/assets/icons/thin_lines.svg +1 -0
  87. package/projects/transaction/src/lib/assets/icons/trash_bin.svg +1 -0
  88. package/projects/transaction/src/lib/assets/icons/trash_can_light.svg +1 -0
  89. package/projects/transaction/src/lib/assets/icons/triangle_down.svg +1 -0
  90. package/projects/transaction/src/lib/assets/icons/triangle_up.svg +1 -0
  91. package/projects/transaction/src/lib/assets/icons/truck.svg +1 -0
  92. package/projects/transaction/src/lib/assets/icons/truck_arrow_right_solid.svg +1 -0
  93. package/projects/transaction/src/lib/assets/icons/truck_container_solid.svg +1 -0
  94. package/projects/transaction/src/lib/assets/icons/truck_fast_solid.svg +1 -0
  95. package/projects/transaction/src/lib/assets/icons/truck_moving_solid.svg +1 -0
  96. package/projects/transaction/src/lib/assets/icons/txt.svg +9 -0
  97. package/projects/transaction/src/lib/assets/icons/unlock.svg +1 -0
  98. package/projects/transaction/src/lib/assets/icons/warehouse.svg +1 -0
  99. package/projects/transaction/src/lib/assets/icons/x_solid.svg +1 -0
  100. package/projects/transaction/src/lib/cache/cache-field.ts +91 -0
  101. package/projects/transaction/src/lib/cache/parameter-cache-field.ts +63 -0
  102. package/projects/transaction/src/lib/cache/service/business-object-cache-manager.service.ts +194 -0
  103. package/projects/transaction/src/lib/cache/service/select-multiple-cache.service.ts +36 -0
  104. package/projects/transaction/src/lib/cache/service/select-multiple-parameterized-cache.service.ts +46 -0
  105. package/projects/transaction/src/lib/cache/service/select-single-cache.service.ts +28 -0
  106. package/projects/transaction/src/lib/component/animated-checkbox/animated-checkbox.component.ts +26 -0
  107. package/projects/transaction/src/lib/component/animated-checkbox/animated-checkbox.module.ts +19 -0
  108. package/{lib → projects/transaction/src/lib}/component/animated-checkbox/style/_layout.scss +0 -0
  109. package/{lib → projects/transaction/src/lib}/component/animated-checkbox/style/_material-definition.scss +0 -0
  110. package/{lib → projects/transaction/src/lib}/component/animated-checkbox/style/_theme.scss +0 -0
  111. package/{lib → projects/transaction/src/lib}/component/animated-checkbox/style/material.scss +0 -0
  112. package/projects/transaction/src/lib/component/avatar/avatar.component.ts +120 -0
  113. package/projects/transaction/src/lib/component/avatar/avatar.module.ts +20 -0
  114. package/{lib → projects/transaction/src/lib}/component/avatar/style/_layout.scss +0 -0
  115. package/{lib → projects/transaction/src/lib}/component/avatar/style/_material-definition.scss +0 -0
  116. package/{lib → projects/transaction/src/lib}/component/avatar/style/_theme.scss +0 -0
  117. package/{lib → projects/transaction/src/lib}/component/avatar/style/material.scss +0 -0
  118. package/{lib → projects/transaction/src/lib}/component/checkout/checkout-login/checkout-login.component.scss +0 -0
  119. package/projects/transaction/src/lib/component/checkout/checkout-login/checkout-login.component.ts +115 -0
  120. package/{lib/component/core/base/components/characteristic-answer/style/_material-definition.scss → projects/transaction/src/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.scss} +0 -0
  121. package/projects/transaction/src/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.ts +50 -0
  122. package/projects/transaction/src/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.ts +296 -0
  123. package/{lib → projects/transaction/src/lib}/component/checkout/checkout-overview-delivery-edit/style/_layout.scss +0 -0
  124. package/{lib → projects/transaction/src/lib}/component/checkout/checkout-overview-delivery-edit/style/_material-definition.scss +0 -0
  125. package/{lib → projects/transaction/src/lib}/component/checkout/checkout-overview-delivery-edit/style/_theme.scss +0 -0
  126. package/{lib → projects/transaction/src/lib}/component/checkout/checkout-overview-delivery-edit/style/material.scss +0 -0
  127. package/projects/transaction/src/lib/component/checkout/checkout-overview-payment/checkout-overview-payment.component.ts +107 -0
  128. package/{lib → projects/transaction/src/lib}/component/checkout/checkout-overview-payment/style/_layout.scss +0 -0
  129. package/{lib → projects/transaction/src/lib}/component/checkout/checkout-overview-payment/style/_material-definition.scss +0 -0
  130. package/{lib → projects/transaction/src/lib}/component/checkout/checkout-overview-payment/style/_theme.scss +0 -0
  131. package/{lib → projects/transaction/src/lib}/component/checkout/checkout-overview-payment/style/material.scss +0 -0
  132. package/projects/transaction/src/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.ts +256 -0
  133. package/{lib → projects/transaction/src/lib}/component/checkout/checkout-overview-relation-edit/style/_layout.scss +0 -0
  134. package/{lib → projects/transaction/src/lib}/component/checkout/checkout-overview-relation-edit/style/_material-definition.scss +0 -0
  135. package/{lib → projects/transaction/src/lib}/component/checkout/checkout-overview-relation-edit/style/_theme.scss +0 -0
  136. package/{lib → projects/transaction/src/lib}/component/checkout/checkout-overview-relation-edit/style/material.scss +0 -0
  137. package/projects/transaction/src/lib/component/checkout/checkout.component.ts +205 -0
  138. package/projects/transaction/src/lib/component/checkout/checkout.module.ts +144 -0
  139. package/{lib → projects/transaction/src/lib}/component/checkout/style/_layout.scss +0 -0
  140. package/{lib → projects/transaction/src/lib}/component/checkout/style/_material-definition.scss +0 -0
  141. package/{lib → projects/transaction/src/lib}/component/checkout/style/_theme.scss +0 -0
  142. package/{lib → projects/transaction/src/lib}/component/checkout/style/material.scss +0 -0
  143. package/projects/transaction/src/lib/component/confirmation-dialog/confirmation-dialog.component.ts +72 -0
  144. package/projects/transaction/src/lib/component/confirmation-dialog/confirmation-dialog.module.ts +23 -0
  145. package/{lib → projects/transaction/src/lib}/component/confirmation-dialog/style/_layout.scss +0 -0
  146. package/{lib → projects/transaction/src/lib}/component/confirmation-dialog/style/_material-definition.scss +0 -0
  147. package/{lib → projects/transaction/src/lib}/component/confirmation-dialog/style/_theme.scss +0 -0
  148. package/{lib → projects/transaction/src/lib}/component/confirmation-dialog/style/material.scss +0 -0
  149. package/projects/transaction/src/lib/component/core/base/components/characteristic-answer/characteristic-answer.component.ts +87 -0
  150. package/projects/transaction/src/lib/component/core/base/components/characteristic-answer/characteristic-answer.module.ts +25 -0
  151. package/{lib → projects/transaction/src/lib}/component/core/base/components/characteristic-answer/style/_layout.scss +0 -0
  152. package/{lib/component/core/base/components/default-ok-cancel-buttons → projects/transaction/src/lib/component/core/base/components/characteristic-answer}/style/_material-definition.scss +0 -0
  153. package/{lib → projects/transaction/src/lib}/component/core/base/components/characteristic-answer/style/_theme.scss +0 -0
  154. package/{lib → projects/transaction/src/lib}/component/core/base/components/characteristic-answer/style/material.scss +0 -0
  155. package/projects/transaction/src/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.component.ts +46 -0
  156. package/projects/transaction/src/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.module.ts +20 -0
  157. package/{lib → projects/transaction/src/lib}/component/core/base/components/default-ok-cancel-buttons/style/_layout.scss +0 -0
  158. package/{lib/component/core/base/components/warehouse → projects/transaction/src/lib/component/core/base/components/default-ok-cancel-buttons}/style/_material-definition.scss +0 -0
  159. package/{lib → projects/transaction/src/lib}/component/core/base/components/default-ok-cancel-buttons/style/_theme.scss +0 -0
  160. package/{lib → projects/transaction/src/lib}/component/core/base/components/default-ok-cancel-buttons/style/material.scss +0 -0
  161. package/{lib → projects/transaction/src/lib}/component/core/base/components/transaction-header-block/style/_layout.scss +0 -0
  162. package/{lib → projects/transaction/src/lib}/component/core/base/components/transaction-header-block/style/_material-definition.scss +0 -0
  163. package/{lib → projects/transaction/src/lib}/component/core/base/components/transaction-header-block/style/_theme.scss +0 -0
  164. package/{lib → projects/transaction/src/lib}/component/core/base/components/transaction-header-block/style/material.scss +0 -0
  165. package/projects/transaction/src/lib/component/core/base/components/transaction-header-block/transaction-header-block.component.ts +51 -0
  166. package/projects/transaction/src/lib/component/core/base/components/transaction-header-block/transaction-header-block.module.ts +17 -0
  167. package/{lib → projects/transaction/src/lib}/component/core/base/components/warehouse/style/_layout.scss +0 -0
  168. package/{lib/component/dialog/catalog/dialog-catalog → projects/transaction/src/lib/component/core/base/components/warehouse}/style/_material-definition.scss +0 -0
  169. package/{lib → projects/transaction/src/lib}/component/core/base/components/warehouse/style/_theme.scss +0 -0
  170. package/{lib → projects/transaction/src/lib}/component/core/base/components/warehouse/style/material.scss +0 -0
  171. package/projects/transaction/src/lib/component/core/base/components/warehouse/warehouse.component.ts +65 -0
  172. package/projects/transaction/src/lib/component/core/base/components/warehouse/warehouse.module.ts +24 -0
  173. package/projects/transaction/src/lib/component/core/base/dialog-base.component.ts +8 -0
  174. package/projects/transaction/src/lib/component/core/base/dialog-transaction-base.component.ts +44 -0
  175. package/projects/transaction/src/lib/component/core/base/dynamic-base-component.ts +8 -0
  176. package/projects/transaction/src/lib/component/core/base/transaction-base.component.ts +188 -0
  177. package/projects/transaction/src/lib/component/core/base/transaction-filter-base.component.ts +70 -0
  178. package/projects/transaction/src/lib/component/core/base/transaction-filter-content-base.component.ts +49 -0
  179. package/projects/transaction/src/lib/component/core/base/transaction-filter-popup-base.component.ts +113 -0
  180. package/projects/transaction/src/lib/component/core/base/transaction-grid-base.component.ts +54 -0
  181. package/projects/transaction/src/lib/component/core/base/transaction-header-filter-popup-base.component.ts +124 -0
  182. package/projects/transaction/src/lib/component/core/base/transaction-input-field-base.component.ts +54 -0
  183. package/projects/transaction/src/lib/component/core/base/transaction-lines-grid-view-base.component.ts +6 -0
  184. package/projects/transaction/src/lib/component/core/base/transaction-lines-list-view-base.component.ts +6 -0
  185. package/projects/transaction/src/lib/component/core/base/transaction-search-grid-base.component.ts +24 -0
  186. package/projects/transaction/src/lib/component/core/base/transaction-search-tile-base.component.ts +30 -0
  187. package/projects/transaction/src/lib/component/core/characteristic-answer/characteristic-answer.component.ts +104 -0
  188. package/projects/transaction/src/lib/component/core/core.module.ts +47 -0
  189. package/projects/transaction/src/lib/component/core/directive/lazy-render-master.directive.ts +47 -0
  190. package/projects/transaction/src/lib/component/core/directive/lazy-render.directive.ts +37 -0
  191. package/projects/transaction/src/lib/component/core/directive/template-wrapper.directive.ts +72 -0
  192. package/projects/transaction/src/lib/component/core/enum/app-popup-button-type.enum.ts +9 -0
  193. package/projects/transaction/src/lib/component/core/enum/app-popup-type.enum.ts +6 -0
  194. package/{lib → projects/transaction/src/lib}/component/core/icon/icon.component.scss +0 -0
  195. package/projects/transaction/src/lib/component/core/icon/icon.component.ts +33 -0
  196. package/projects/transaction/src/lib/component/core/image-display/image-display.component.ts +27 -0
  197. package/{lib → projects/transaction/src/lib}/component/core/image-display/style/_layout.scss +0 -0
  198. package/{lib → projects/transaction/src/lib}/component/core/image-display/style/_material-definition.scss +0 -0
  199. package/{lib → projects/transaction/src/lib}/component/core/image-display/style/_theme.scss +0 -0
  200. package/{lib → projects/transaction/src/lib}/component/core/image-display/style/material.scss +0 -0
  201. package/projects/transaction/src/lib/component/core/relation/customer-groups.component.ts +47 -0
  202. package/{lib → projects/transaction/src/lib}/component/core/relation/relation-customer-groups.component.scss +0 -0
  203. package/{lib → projects/transaction/src/lib}/component/core/stock-status-indicator/stock-status-indicator.component.scss +0 -0
  204. package/projects/transaction/src/lib/component/core/stock-status-indicator/stock-status-indicator.component.ts +25 -0
  205. package/projects/transaction/src/lib/component/delivery-type-tile/delivery-type-tile.component.ts +48 -0
  206. package/projects/transaction/src/lib/component/delivery-type-tile/delivery-type-tile.module.ts +25 -0
  207. package/{lib → projects/transaction/src/lib}/component/delivery-type-tile/style/_layout.scss +0 -0
  208. package/{lib → projects/transaction/src/lib}/component/delivery-type-tile/style/_material-definition.scss +0 -0
  209. package/{lib → projects/transaction/src/lib}/component/delivery-type-tile/style/_theme.scss +0 -0
  210. package/{lib → projects/transaction/src/lib}/component/delivery-type-tile/style/material.scss +0 -0
  211. package/projects/transaction/src/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.ts +53 -0
  212. package/projects/transaction/src/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.module.ts +21 -0
  213. package/{lib → projects/transaction/src/lib}/component/dialog/catalog/dialog-catalog/style/_layout.scss +0 -0
  214. package/{lib/component/dialog/transaction-header/dialog-transaction-header-branch → projects/transaction/src/lib/component/dialog/catalog/dialog-catalog}/style/_material-definition.scss +0 -0
  215. package/{lib → projects/transaction/src/lib}/component/dialog/catalog/dialog-catalog/style/_theme.scss +0 -0
  216. package/{lib → projects/transaction/src/lib}/component/dialog/catalog/dialog-catalog/style/material.scss +0 -0
  217. package/projects/transaction/src/lib/component/dialog/dialog-header-search/dialog-header-search.component.ts +40 -0
  218. package/projects/transaction/src/lib/component/dialog/dialog-header-search/dialog-header-search.module.ts +21 -0
  219. package/{lib → projects/transaction/src/lib}/component/dialog/dialog-header-search/style/_layout.scss +0 -0
  220. package/{lib → projects/transaction/src/lib}/component/dialog/dialog-header-search/style/_material-definition.scss +0 -0
  221. package/{lib → projects/transaction/src/lib}/component/dialog/dialog-header-search/style/_theme.scss +0 -0
  222. package/{lib → projects/transaction/src/lib}/component/dialog/dialog-header-search/style/material.scss +0 -0
  223. package/projects/transaction/src/lib/component/dialog/transaction-header/dialog-transaction-header-branch/dialog-transaction-header-branch.component.ts +24 -0
  224. package/projects/transaction/src/lib/component/dialog/transaction-header/dialog-transaction-header-branch/dialog-transaction-header-branch.module.ts +23 -0
  225. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-header/dialog-transaction-header-branch/style/_layout.scss +0 -0
  226. package/{lib/component/discount → projects/transaction/src/lib/component/dialog/transaction-header/dialog-transaction-header-branch}/style/_material-definition.scss +0 -0
  227. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-header/dialog-transaction-header-branch/style/_theme.scss +0 -0
  228. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-header/dialog-transaction-header-branch/style/material.scss +0 -0
  229. package/projects/transaction/src/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.component.ts +35 -0
  230. package/projects/transaction/src/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.module.ts +26 -0
  231. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-header/dialog-transaction-header-delivery-method/style/_layout.scss +0 -0
  232. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-header/dialog-transaction-header-delivery-method/style/_material-definition.scss +0 -0
  233. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-header/dialog-transaction-header-delivery-method/style/_theme.scss +0 -0
  234. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-header/dialog-transaction-header-delivery-method/style/material.scss +0 -0
  235. package/projects/transaction/src/lib/component/dialog/transaction-header/dialog-transaction-header-discount/dialog-transaction-header-discount.component.ts +70 -0
  236. package/projects/transaction/src/lib/component/dialog/transaction-header/dialog-transaction-header-discount/dialog-transaction-header-discount.module.ts +27 -0
  237. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-header/dialog-transaction-header-discount/style/_layout.scss +0 -0
  238. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-header/dialog-transaction-header-discount/style/_material-definition.scss +0 -0
  239. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-header/dialog-transaction-header-discount/style/_theme.scss +0 -0
  240. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-header/dialog-transaction-header-discount/style/material.scss +0 -0
  241. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/dialog-transaction-line-commission-code.component.ts +33 -0
  242. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/dialog-transaction-line-commission-code.module.ts +26 -0
  243. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-commission-code/style/_layout.scss +0 -0
  244. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-commission-code/style/_material-definition.scss +0 -0
  245. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-commission-code/style/_theme.scss +0 -0
  246. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-commission-code/style/material.scss +0 -0
  247. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-delivery-method/dialog-transaction-line-delivery-method.component.ts +34 -0
  248. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-delivery-method/dialog-transaction-line-delivery-method.module.ts +26 -0
  249. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-delivery-method/style/_layout.scss +0 -0
  250. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-delivery-method/style/_material-definition.scss +0 -0
  251. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-delivery-method/style/_theme.scss +0 -0
  252. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-delivery-method/style/material.scss +0 -0
  253. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.component.ts +93 -0
  254. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.module.ts +34 -0
  255. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-discount/style/_layout.scss +0 -0
  256. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-discount/style/_material-definition.scss +0 -0
  257. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-discount/style/_theme.scss +0 -0
  258. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-discount/style/material.scss +0 -0
  259. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.component.ts +34 -0
  260. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.module.ts +26 -0
  261. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-price-list/style/_layout.scss +0 -0
  262. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-price-list/style/_material-definition.scss +0 -0
  263. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-price-list/style/_theme.scss +0 -0
  264. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-price-list/style/material.scss +0 -0
  265. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.component.ts +34 -0
  266. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.module.ts +26 -0
  267. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-supplier/style/_layout.scss +0 -0
  268. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-supplier/style/_material-definition.scss +0 -0
  269. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-supplier/style/_theme.scss +0 -0
  270. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-supplier/style/material.scss +0 -0
  271. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.component.ts +35 -0
  272. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.module.ts +26 -0
  273. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-vat/style/_layout.scss +0 -0
  274. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-vat/style/_material-definition.scss +0 -0
  275. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-vat/style/_theme.scss +0 -0
  276. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-vat/style/material.scss +0 -0
  277. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.component.ts +33 -0
  278. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.module.ts +26 -0
  279. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse/style/_layout.scss +0 -0
  280. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse/style/_material-definition.scss +0 -0
  281. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse/style/_theme.scss +0 -0
  282. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse/style/material.scss +0 -0
  283. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.component.ts +84 -0
  284. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.module.ts +29 -0
  285. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/style/_layout.scss +0 -0
  286. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/style/_material-definition.scss +0 -0
  287. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/style/_theme.scss +0 -0
  288. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/style/material.scss +0 -0
  289. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/dialog-transaction-line-warehouse-location.component.ts +42 -0
  290. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/dialog-transaction-line-warehouse-location.module.ts +26 -0
  291. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/style/_layout.scss +0 -0
  292. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/style/_material-definition.scss +0 -0
  293. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/style/_theme.scss +0 -0
  294. package/{lib → projects/transaction/src/lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/style/material.scss +0 -0
  295. package/projects/transaction/src/lib/component/discount/discount.component.ts +120 -0
  296. package/projects/transaction/src/lib/component/discount/discount.module.ts +26 -0
  297. package/{lib → projects/transaction/src/lib}/component/discount/style/_layout.scss +0 -0
  298. package/{lib/component/payment-qr-code → projects/transaction/src/lib/component/discount}/style/_material-definition.scss +0 -0
  299. package/{lib → projects/transaction/src/lib}/component/discount/style/_theme.scss +0 -0
  300. package/{lib → projects/transaction/src/lib}/component/discount/style/material.scss +0 -0
  301. package/projects/transaction/src/lib/component/down-payment/down-payment.component.ts +77 -0
  302. package/projects/transaction/src/lib/component/down-payment/down-payment.module.ts +25 -0
  303. package/{lib → projects/transaction/src/lib}/component/down-payment/style/_layout.scss +0 -0
  304. package/{lib → projects/transaction/src/lib}/component/down-payment/style/_material-definition.scss +0 -0
  305. package/{lib → projects/transaction/src/lib}/component/down-payment/style/_theme.scss +0 -0
  306. package/{lib → projects/transaction/src/lib}/component/down-payment/style/material.scss +0 -0
  307. package/projects/transaction/src/lib/component/editable-label/editable-label.component.ts +74 -0
  308. package/projects/transaction/src/lib/component/editable-label/editable-label.module.ts +18 -0
  309. package/{lib → projects/transaction/src/lib}/component/editable-label/style/_layout.scss +0 -0
  310. package/{lib → projects/transaction/src/lib}/component/editable-label/style/_material-definition.scss +0 -0
  311. package/{lib → projects/transaction/src/lib}/component/editable-label/style/_theme.scss +0 -0
  312. package/{lib → projects/transaction/src/lib}/component/editable-label/style/material.scss +0 -0
  313. package/projects/transaction/src/lib/component/loader/loader.component.ts +49 -0
  314. package/projects/transaction/src/lib/component/loader/loader.module.ts +17 -0
  315. package/{lib → projects/transaction/src/lib}/component/loader/style/_layout.scss +0 -0
  316. package/{lib → projects/transaction/src/lib}/component/loader/style/_material-definition.scss +0 -0
  317. package/{lib → projects/transaction/src/lib}/component/loader/style/_theme.scss +0 -0
  318. package/{lib → projects/transaction/src/lib}/component/loader/style/material.scss +0 -0
  319. package/projects/transaction/src/lib/component/order-confirmation-create/order-confirmation-create.component.ts +42 -0
  320. package/projects/transaction/src/lib/component/order-confirmation-create/order-confirmation-create.module.ts +26 -0
  321. package/{lib → projects/transaction/src/lib}/component/order-confirmation-create/style/_layout.scss +0 -0
  322. package/{lib → projects/transaction/src/lib}/component/order-confirmation-create/style/_material-definition.scss +0 -0
  323. package/{lib → projects/transaction/src/lib}/component/order-confirmation-create/style/_theme.scss +0 -0
  324. package/{lib → projects/transaction/src/lib}/component/order-confirmation-create/style/material.scss +0 -0
  325. package/projects/transaction/src/lib/component/payment/payment.component.ts +264 -0
  326. package/projects/transaction/src/lib/component/payment/payment.module.ts +36 -0
  327. package/{lib → projects/transaction/src/lib}/component/payment/style/_layout.scss +0 -0
  328. package/{lib → projects/transaction/src/lib}/component/payment/style/_material-definition.scss +0 -0
  329. package/{lib → projects/transaction/src/lib}/component/payment/style/_theme.scss +0 -0
  330. package/{lib → projects/transaction/src/lib}/component/payment/style/material.scss +0 -0
  331. package/projects/transaction/src/lib/component/payment-qr-code/payment-qr-code.component.ts +24 -0
  332. package/projects/transaction/src/lib/component/payment-qr-code/payment-qr-code.module.ts +21 -0
  333. package/{lib → projects/transaction/src/lib}/component/payment-qr-code/style/_layout.scss +0 -0
  334. package/{lib/component/payment-tile → projects/transaction/src/lib/component/payment-qr-code}/style/_material-definition.scss +0 -0
  335. package/{lib → projects/transaction/src/lib}/component/payment-qr-code/style/_theme.scss +0 -0
  336. package/{lib → projects/transaction/src/lib}/component/payment-qr-code/style/material.scss +0 -0
  337. package/projects/transaction/src/lib/component/payment-tile/payment-tile.component.ts +38 -0
  338. package/projects/transaction/src/lib/component/payment-tile/payment-tile.module.ts +24 -0
  339. package/{lib → projects/transaction/src/lib}/component/payment-tile/style/_layout.scss +0 -0
  340. package/{lib/component/relation/relation-suggestions-list → projects/transaction/src/lib/component/payment-tile}/style/_material-definition.scss +0 -0
  341. package/{lib → projects/transaction/src/lib}/component/payment-tile/style/_theme.scss +0 -0
  342. package/{lib → projects/transaction/src/lib}/component/payment-tile/style/material.scss +0 -0
  343. package/projects/transaction/src/lib/component/quick-send-button/quick-send-button.component.ts +60 -0
  344. package/projects/transaction/src/lib/component/quick-send-button/quick-send-button.module.ts +25 -0
  345. package/{lib → projects/transaction/src/lib}/component/quick-send-button/style/_layout.scss +0 -0
  346. package/{lib → projects/transaction/src/lib}/component/quick-send-button/style/_material-definition.scss +0 -0
  347. package/{lib → projects/transaction/src/lib}/component/quick-send-button/style/_theme.scss +0 -0
  348. package/{lib → projects/transaction/src/lib}/component/quick-send-button/style/material.scss +0 -0
  349. package/projects/transaction/src/lib/component/relation/relation-address/relation-address.component.ts +113 -0
  350. package/projects/transaction/src/lib/component/relation/relation-address/relation-address.module.ts +28 -0
  351. package/{lib → projects/transaction/src/lib}/component/relation/relation-address/style/_layout.scss +0 -0
  352. package/{lib → projects/transaction/src/lib}/component/relation/relation-address/style/_material-definition.scss +0 -0
  353. package/{lib → projects/transaction/src/lib}/component/relation/relation-address/style/_theme.scss +0 -0
  354. package/{lib → projects/transaction/src/lib}/component/relation/relation-address/style/material.scss +0 -0
  355. package/projects/transaction/src/lib/component/relation/relation-address-select/relation-address-select.component.ts +158 -0
  356. package/projects/transaction/src/lib/component/relation/relation-address-select/relation-address-select.module.ts +32 -0
  357. package/{lib → projects/transaction/src/lib}/component/relation/relation-address-select/style/_layout.scss +0 -0
  358. package/{lib → projects/transaction/src/lib}/component/relation/relation-address-select/style/_material-definition.scss +0 -0
  359. package/{lib → projects/transaction/src/lib}/component/relation/relation-address-select/style/_theme.scss +0 -0
  360. package/{lib → projects/transaction/src/lib}/component/relation/relation-address-select/style/material.scss +0 -0
  361. package/projects/transaction/src/lib/component/relation/relation-address-tile/relation-address-tile.component.ts +70 -0
  362. package/projects/transaction/src/lib/component/relation/relation-address-tile/relation-address-tile.module.ts +31 -0
  363. package/{lib → projects/transaction/src/lib}/component/relation/relation-address-tile/style/_layout.scss +0 -0
  364. package/{lib → projects/transaction/src/lib}/component/relation/relation-address-tile/style/_material-definition.scss +0 -0
  365. package/{lib → projects/transaction/src/lib}/component/relation/relation-address-tile/style/_theme.scss +0 -0
  366. package/{lib → projects/transaction/src/lib}/component/relation/relation-address-tile/style/material.scss +0 -0
  367. package/projects/transaction/src/lib/component/relation/relation-addresses/relation-addresses.component.ts +123 -0
  368. package/projects/transaction/src/lib/component/relation/relation-addresses/relation-addresses.module.ts +32 -0
  369. package/{lib → projects/transaction/src/lib}/component/relation/relation-addresses/style/_layout.scss +0 -0
  370. package/{lib → projects/transaction/src/lib}/component/relation/relation-addresses/style/_material-definition.scss +0 -0
  371. package/{lib → projects/transaction/src/lib}/component/relation/relation-addresses/style/_theme.scss +0 -0
  372. package/{lib → projects/transaction/src/lib}/component/relation/relation-addresses/style/material.scss +0 -0
  373. package/projects/transaction/src/lib/component/relation/relation-base.component.ts +33 -0
  374. package/projects/transaction/src/lib/component/relation/relation-contact-details/relation-contact-details.component.ts +65 -0
  375. package/projects/transaction/src/lib/component/relation/relation-contact-details/relation-contact-details.module.ts +22 -0
  376. package/{lib → projects/transaction/src/lib}/component/relation/relation-contact-details/style/_layout.scss +0 -0
  377. package/{lib → projects/transaction/src/lib}/component/relation/relation-contact-details/style/_material-definition.scss +0 -0
  378. package/{lib → projects/transaction/src/lib}/component/relation/relation-contact-details/style/_theme.scss +0 -0
  379. package/{lib → projects/transaction/src/lib}/component/relation/relation-contact-details/style/material.scss +0 -0
  380. package/projects/transaction/src/lib/component/relation/relation-general/relation-general.component.ts +237 -0
  381. package/projects/transaction/src/lib/component/relation/relation-general/relation-general.module.ts +25 -0
  382. package/{lib → projects/transaction/src/lib}/component/relation/relation-general/style/_layout.scss +0 -0
  383. package/{lib → projects/transaction/src/lib}/component/relation/relation-general/style/_material-definition.scss +0 -0
  384. package/{lib → projects/transaction/src/lib}/component/relation/relation-general/style/_theme.scss +0 -0
  385. package/{lib → projects/transaction/src/lib}/component/relation/relation-general/style/material.scss +0 -0
  386. package/projects/transaction/src/lib/component/relation/relation-preferences/relation-preferences.component.ts +64 -0
  387. package/projects/transaction/src/lib/component/relation/relation-preferences/relation-preferences.module.ts +19 -0
  388. package/{lib → projects/transaction/src/lib}/component/relation/relation-preferences/style/_layout.scss +0 -0
  389. package/{lib → projects/transaction/src/lib}/component/relation/relation-preferences/style/_material-definition.scss +0 -0
  390. package/{lib → projects/transaction/src/lib}/component/relation/relation-preferences/style/_theme.scss +0 -0
  391. package/{lib → projects/transaction/src/lib}/component/relation/relation-preferences/style/material.scss +0 -0
  392. package/projects/transaction/src/lib/component/relation/relation-suggestions-list/relation-suggestions-list.component.ts +28 -0
  393. package/projects/transaction/src/lib/component/relation/relation-suggestions-list/relation-suggestions-list.module.ts +19 -0
  394. package/{lib → projects/transaction/src/lib}/component/relation/relation-suggestions-list/style/_layout.scss +0 -0
  395. package/{lib/component/relation/relation-type → projects/transaction/src/lib/component/relation/relation-suggestions-list}/style/_material-definition.scss +0 -0
  396. package/{lib → projects/transaction/src/lib}/component/relation/relation-suggestions-list/style/_theme.scss +0 -0
  397. package/{lib → projects/transaction/src/lib}/component/relation/relation-suggestions-list/style/material.scss +0 -0
  398. package/projects/transaction/src/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.component.ts +33 -0
  399. package/projects/transaction/src/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.module.ts +17 -0
  400. package/{lib → projects/transaction/src/lib}/component/relation/relation-suggestions-list-item/style/_layout.scss +0 -0
  401. package/{lib → projects/transaction/src/lib}/component/relation/relation-suggestions-list-item/style/_material-definition.scss +0 -0
  402. package/{lib → projects/transaction/src/lib}/component/relation/relation-suggestions-list-item/style/_theme.scss +0 -0
  403. package/{lib → projects/transaction/src/lib}/component/relation/relation-suggestions-list-item/style/material.scss +0 -0
  404. package/projects/transaction/src/lib/component/relation/relation-type/relation-type.component.ts +48 -0
  405. package/projects/transaction/src/lib/component/relation/relation-type/relation-type.module.ts +21 -0
  406. package/{lib → projects/transaction/src/lib}/component/relation/relation-type/style/_layout.scss +0 -0
  407. package/{lib/component/transaction-allocate-goods-history → projects/transaction/src/lib/component/relation/relation-type}/style/_material-definition.scss +0 -0
  408. package/{lib → projects/transaction/src/lib}/component/relation/relation-type/style/_theme.scss +0 -0
  409. package/{lib → projects/transaction/src/lib}/component/relation/relation-type/style/material.scss +0 -0
  410. package/{lib → projects/transaction/src/lib}/component/shared/transaction-article-text/style/_layout.scss +0 -0
  411. package/{lib → projects/transaction/src/lib}/component/shared/transaction-article-text/style/_material-definition.scss +0 -0
  412. package/{lib → projects/transaction/src/lib}/component/shared/transaction-article-text/style/_theme.scss +0 -0
  413. package/{lib → projects/transaction/src/lib}/component/shared/transaction-article-text/style/material.scss +0 -0
  414. package/projects/transaction/src/lib/component/shared/transaction-article-text/transaction-article-text.component.ts +181 -0
  415. package/projects/transaction/src/lib/component/shared/transaction-article-text/transaction-article-text.module.ts +40 -0
  416. package/{lib → projects/transaction/src/lib}/component/shared/transaction-article-text-overview/style/_layout.scss +0 -0
  417. package/{lib → projects/transaction/src/lib}/component/shared/transaction-article-text-overview/style/_material-definition.scss +0 -0
  418. package/{lib → projects/transaction/src/lib}/component/shared/transaction-article-text-overview/style/_theme.scss +0 -0
  419. package/{lib → projects/transaction/src/lib}/component/shared/transaction-article-text-overview/style/material.scss +0 -0
  420. package/projects/transaction/src/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.ts +145 -0
  421. package/projects/transaction/src/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.ts +27 -0
  422. package/projects/transaction/src/lib/component/shopping-cart/shopping-cart.component.ts +73 -0
  423. package/projects/transaction/src/lib/component/shopping-cart/shopping-cart.module.ts +25 -0
  424. package/{lib → projects/transaction/src/lib}/component/shopping-cart/style/_layout.scss +0 -0
  425. package/{lib → projects/transaction/src/lib}/component/shopping-cart/style/_material-definition.scss +0 -0
  426. package/{lib → projects/transaction/src/lib}/component/shopping-cart/style/_theme.scss +0 -0
  427. package/{lib → projects/transaction/src/lib}/component/shopping-cart/style/material.scss +0 -0
  428. package/projects/transaction/src/lib/component/shopping-cart-OLD/ione-shopping-cart.component.ts +190 -0
  429. package/projects/transaction/src/lib/component/shopping-cart-OLD/ione-shopping-cart.module.ts +81 -0
  430. package/{lib → projects/transaction/src/lib}/component/shopping-cart-OLD/shopping-cart-manager/shopping-cart-manager.component.scss +0 -0
  431. package/projects/transaction/src/lib/component/shopping-cart-OLD/shopping-cart-manager/shopping-cart-manager.component.ts +508 -0
  432. package/projects/transaction/src/lib/component/shopping-cart-preview/shopping-cart-preview.component.ts +59 -0
  433. package/projects/transaction/src/lib/component/shopping-cart-preview/shopping-cart-preview.module.ts +27 -0
  434. package/{lib → projects/transaction/src/lib}/component/shopping-cart-preview/style/_layout.scss +0 -0
  435. package/{lib → projects/transaction/src/lib}/component/shopping-cart-preview/style/_material-definition.scss +0 -0
  436. package/{lib → projects/transaction/src/lib}/component/shopping-cart-preview/style/_theme.scss +0 -0
  437. package/{lib → projects/transaction/src/lib}/component/shopping-cart-preview/style/material.scss +0 -0
  438. package/projects/transaction/src/lib/component/stepper/component/stepper-step.component.ts +45 -0
  439. package/projects/transaction/src/lib/component/stepper/stepper.component.ts +148 -0
  440. package/projects/transaction/src/lib/component/stepper/stepper.module.ts +28 -0
  441. package/{lib → projects/transaction/src/lib}/component/stepper/style/_layout.scss +0 -0
  442. package/{lib → projects/transaction/src/lib}/component/stepper/style/_material-definition.scss +0 -0
  443. package/{lib → projects/transaction/src/lib}/component/stepper/style/_theme.scss +0 -0
  444. package/{lib → projects/transaction/src/lib}/component/stepper/style/material.scss +0 -0
  445. package/{lib → projects/transaction/src/lib}/component/tile/style/_layout.scss +0 -0
  446. package/{lib → projects/transaction/src/lib}/component/tile/style/_material-definition.scss +0 -0
  447. package/{lib → projects/transaction/src/lib}/component/tile/style/_theme.scss +0 -0
  448. package/{lib → projects/transaction/src/lib}/component/tile/style/material.scss +0 -0
  449. package/projects/transaction/src/lib/component/tile/tile.component.ts +31 -0
  450. package/projects/transaction/src/lib/component/tile/tile.module.ts +18 -0
  451. package/projects/transaction/src/lib/component/toast/style/_layout.scss +24 -0
  452. package/projects/transaction/src/lib/component/toast/style/_material-definition.scss +6 -0
  453. package/projects/transaction/src/lib/component/toast/style/_theme.scss +10 -0
  454. package/{lib/component/transaction-allocate-goods-history → projects/transaction/src/lib/component/toast}/style/material.scss +0 -0
  455. package/projects/transaction/src/lib/component/toast/toast.component.ts +35 -0
  456. package/projects/transaction/src/lib/component/toast/toast.module.ts +17 -0
  457. package/projects/transaction/src/lib/component/transaction/style/_layout.scss +56 -0
  458. package/{lib → projects/transaction/src/lib}/component/transaction/style/_material-definition.scss +0 -0
  459. package/{lib → projects/transaction/src/lib}/component/transaction/style/_theme.scss +0 -0
  460. package/projects/transaction/src/lib/component/transaction/style/material.scss +14 -0
  461. package/projects/transaction/src/lib/component/transaction/transaction.component.ts +206 -0
  462. package/projects/transaction/src/lib/component/transaction/transaction.module.ts +68 -0
  463. package/{lib → projects/transaction/src/lib}/component/transaction-allocate-goods-history/style/_layout.scss +0 -0
  464. package/{lib/component/transaction-grid/transaction-available-stock-grid → projects/transaction/src/lib/component/transaction-allocate-goods-history}/style/_material-definition.scss +0 -0
  465. package/{lib → projects/transaction/src/lib}/component/transaction-allocate-goods-history/style/_theme.scss +0 -0
  466. package/{lib/component/transaction-line-checkbox-list → projects/transaction/src/lib/component/transaction-allocate-goods-history}/style/material.scss +0 -0
  467. package/projects/transaction/src/lib/component/transaction-allocate-goods-history/transaction-allocate-goods-history.component.ts +95 -0
  468. package/projects/transaction/src/lib/component/transaction-allocate-goods-history/transaction-allocate-goods-history.module.ts +26 -0
  469. package/{lib → projects/transaction/src/lib}/component/transaction-button-bar/style/_layout.scss +0 -0
  470. package/{lib → projects/transaction/src/lib}/component/transaction-button-bar/style/_material-definition.scss +0 -0
  471. package/{lib → projects/transaction/src/lib}/component/transaction-button-bar/style/_theme.scss +0 -0
  472. package/{lib → projects/transaction/src/lib}/component/transaction-button-bar/style/material.scss +0 -0
  473. package/projects/transaction/src/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button-base.component.ts +45 -0
  474. package/projects/transaction/src/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.ts +76 -0
  475. package/projects/transaction/src/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-purchase-button-bar-button.component.ts +40 -0
  476. package/projects/transaction/src/lib/component/transaction-button-bar/transaction-button-bar.component.ts +63 -0
  477. package/projects/transaction/src/lib/component/transaction-button-bar/transaction-button-bar.module.ts +33 -0
  478. package/projects/transaction/src/lib/component/transaction-card/transaction-card/style/_layout.scss +12 -0
  479. package/{lib/component/transaction-line-side-panel-purchase → projects/transaction/src/lib/component/transaction-card/transaction-card}/style/_material-definition.scss +0 -0
  480. package/projects/transaction/src/lib/component/transaction-card/transaction-card/style/_theme.scss +4 -0
  481. package/projects/transaction/src/lib/component/transaction-card/transaction-card/style/material.scss +7 -0
  482. package/projects/transaction/src/lib/component/transaction-card/transaction-card/transaction-card.component.ts +125 -0
  483. package/projects/transaction/src/lib/component/transaction-card/transaction-card/transaction-card.module.ts +28 -0
  484. package/projects/transaction/src/lib/component/transaction-card/transaction-card-footer/style/_layout.scss +25 -0
  485. package/{lib/component/transaction-grid/transaction-grid → projects/transaction/src/lib/component/transaction-card/transaction-card-footer}/style/_material-definition.scss +0 -0
  486. package/projects/transaction/src/lib/component/transaction-card/transaction-card-footer/style/_theme.scss +4 -0
  487. package/{lib/component/transaction-grid/transaction-received-goods-grid → projects/transaction/src/lib/component/transaction-card/transaction-card-footer}/style/material.scss +0 -0
  488. package/projects/transaction/src/lib/component/transaction-card/transaction-card-footer/transaction-card-footer.component.ts +59 -0
  489. package/projects/transaction/src/lib/component/transaction-card/transaction-card-footer/transaction-card-footer.module.ts +24 -0
  490. package/projects/transaction/src/lib/component/transaction-card/transaction-card-header/style/_layout.scss +66 -0
  491. package/{lib/component/transaction-grid/transaction-received-goods-grid → projects/transaction/src/lib/component/transaction-card/transaction-card-header}/style/_material-definition.scss +0 -0
  492. package/projects/transaction/src/lib/component/transaction-card/transaction-card-header/style/_theme.scss +4 -0
  493. package/{lib/component/transaction-header-fields/transaction-header-delivery-options → projects/transaction/src/lib/component/transaction-card/transaction-card-header}/style/material.scss +0 -0
  494. package/projects/transaction/src/lib/component/transaction-card/transaction-card-header/transaction-card-header.component.ts +68 -0
  495. package/projects/transaction/src/lib/component/transaction-card/transaction-card-header/transaction-card-header.module.ts +31 -0
  496. package/projects/transaction/src/lib/component/transaction-card/transaction-card-purchase-overview/style/_layout.scss +67 -0
  497. package/{lib/component/transaction-line-fields/transaction-line-price → projects/transaction/src/lib/component/transaction-card/transaction-card-purchase-overview}/style/_material-definition.scss +0 -0
  498. package/projects/transaction/src/lib/component/transaction-card/transaction-card-purchase-overview/style/_theme.scss +4 -0
  499. package/{lib/component/transaction-line-fields/transaction-line-price → projects/transaction/src/lib/component/transaction-card/transaction-card-purchase-overview}/style/material.scss +0 -0
  500. package/projects/transaction/src/lib/component/transaction-card/transaction-card-purchase-overview/transaction-card-purchase-overview.component.ts +64 -0
  501. package/projects/transaction/src/lib/component/transaction-card/transaction-card-purchase-overview/transaction-card-purchase-overview.module.ts +44 -0
  502. package/projects/transaction/src/lib/component/transaction-card/transaction-card-sales-overview/style/_layout.scss +4 -0
  503. package/{lib/component/transaction-line-grid → projects/transaction/src/lib/component/transaction-card/transaction-card-sales-overview}/style/_material-definition.scss +0 -0
  504. package/projects/transaction/src/lib/component/transaction-card/transaction-card-sales-overview/style/_theme.scss +4 -0
  505. package/{lib/component/transaction-line/transaction-base-line → projects/transaction/src/lib/component/transaction-card/transaction-card-sales-overview}/style/material.scss +0 -0
  506. package/projects/transaction/src/lib/component/transaction-card/transaction-card-sales-overview/transaction-card-sales-overview.component.ts +21 -0
  507. package/projects/transaction/src/lib/component/transaction-card/transaction-card-sales-overview/transaction-card-sales-overview.module.ts +18 -0
  508. package/{lib → projects/transaction/src/lib}/component/transaction-confirmation-details/style/_layout.scss +0 -0
  509. package/{lib → projects/transaction/src/lib}/component/transaction-confirmation-details/style/_material-definition.scss +0 -0
  510. package/{lib → projects/transaction/src/lib}/component/transaction-confirmation-details/style/_theme.scss +0 -0
  511. package/{lib → projects/transaction/src/lib}/component/transaction-confirmation-details/style/material.scss +0 -0
  512. package/projects/transaction/src/lib/component/transaction-confirmation-details/transaction-confirmation-details.component.ts +148 -0
  513. package/projects/transaction/src/lib/component/transaction-confirmation-details/transaction-confirmation-details.module.ts +40 -0
  514. package/{lib → projects/transaction/src/lib}/component/transaction-confirmation-history/style/_layout.scss +0 -0
  515. package/{lib → projects/transaction/src/lib}/component/transaction-confirmation-history/style/_material-definition.scss +0 -0
  516. package/{lib → projects/transaction/src/lib}/component/transaction-confirmation-history/style/_theme.scss +0 -0
  517. package/{lib → projects/transaction/src/lib}/component/transaction-confirmation-history/style/material.scss +0 -0
  518. package/projects/transaction/src/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.ts +129 -0
  519. package/projects/transaction/src/lib/component/transaction-confirmation-history/transaction-confirmation-history.module.ts +38 -0
  520. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-available-stock-grid/style/_layout.scss +0 -0
  521. package/{lib/component/transaction-line-side-panel-sales → projects/transaction/src/lib/component/transaction-grid/transaction-available-stock-grid}/style/_material-definition.scss +0 -0
  522. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-available-stock-grid/style/_theme.scss +0 -0
  523. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-available-stock-grid/style/material.scss +0 -0
  524. package/projects/transaction/src/lib/component/transaction-grid/transaction-available-stock-grid/transaction-available-stock-grid.component.ts +107 -0
  525. package/projects/transaction/src/lib/component/transaction-grid/transaction-available-stock-grid/transaction-available-stock-grid.module.ts +23 -0
  526. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-base-grid/style/_layout.scss +0 -0
  527. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-base-grid/style/_material-definition.scss +0 -0
  528. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-base-grid/style/_theme.scss +0 -0
  529. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-base-grid/style/material.scss +0 -0
  530. package/projects/transaction/src/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.component.ts +49 -0
  531. package/projects/transaction/src/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.module.ts +31 -0
  532. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-grid/style/_layout.scss +0 -0
  533. package/{lib/component/transaction-line/transaction-goods-allocation-line → projects/transaction/src/lib/component/transaction-grid/transaction-grid}/style/_material-definition.scss +0 -0
  534. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-grid/style/_theme.scss +0 -0
  535. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-grid/style/material.scss +0 -0
  536. package/projects/transaction/src/lib/component/transaction-grid/transaction-grid/transaction-grid.component.ts +91 -0
  537. package/projects/transaction/src/lib/component/transaction-grid/transaction-grid/transaction-grid.module.ts +17 -0
  538. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-history-grid/style/_layout.scss +0 -0
  539. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-history-grid/style/_material-definition.scss +0 -0
  540. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-history-grid/style/_theme.scss +0 -0
  541. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-history-grid/style/material.scss +0 -0
  542. package/projects/transaction/src/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.component.ts +102 -0
  543. package/projects/transaction/src/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.module.ts +26 -0
  544. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-lines-grid/style/_layout.scss +0 -0
  545. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-lines-grid/style/_material-definition.scss +0 -0
  546. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-lines-grid/style/_theme.scss +0 -0
  547. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-lines-grid/style/material.scss +0 -0
  548. package/projects/transaction/src/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.component.ts +119 -0
  549. package/projects/transaction/src/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.module.ts +48 -0
  550. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-order-confirmation-grid/style/_layout.scss +0 -0
  551. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-order-confirmation-grid/style/_material-definition.scss +0 -0
  552. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-order-confirmation-grid/style/_theme.scss +0 -0
  553. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-order-confirmation-grid/style/material.scss +0 -0
  554. package/projects/transaction/src/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.component.ts +48 -0
  555. package/projects/transaction/src/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.module.ts +28 -0
  556. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-received-goods-grid/style/_layout.scss +0 -0
  557. package/{lib/component/transaction-line/transaction-order-delivery-line → projects/transaction/src/lib/component/transaction-grid/transaction-received-goods-grid}/style/_material-definition.scss +0 -0
  558. package/{lib → projects/transaction/src/lib}/component/transaction-grid/transaction-received-goods-grid/style/_theme.scss +0 -0
  559. package/{lib/component/transaction-line/transaction-goods-allocation-line → projects/transaction/src/lib/component/transaction-grid/transaction-received-goods-grid}/style/material.scss +0 -0
  560. package/projects/transaction/src/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.component.ts +165 -0
  561. package/projects/transaction/src/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.module.ts +41 -0
  562. package/{lib → projects/transaction/src/lib}/component/transaction-header/style/_layout.scss +0 -0
  563. package/{lib → projects/transaction/src/lib}/component/transaction-header/style/_material-definition.scss +0 -0
  564. package/{lib → projects/transaction/src/lib}/component/transaction-header/style/_theme.scss +0 -0
  565. package/{lib → projects/transaction/src/lib}/component/transaction-header/style/material.scss +0 -0
  566. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header/style/_layout.scss +0 -0
  567. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header/style/_material-definition.scss +0 -0
  568. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header/style/_theme.scss +0 -0
  569. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header/style/material.scss +0 -0
  570. package/projects/transaction/src/lib/component/transaction-header/transaction-header/transaction-header.component.ts +51 -0
  571. package/projects/transaction/src/lib/component/transaction-header/transaction-header/transaction-header.module.ts +28 -0
  572. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header-delivery/style/_layout.scss +0 -0
  573. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header-delivery/style/_material-definition.scss +0 -0
  574. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header-delivery/style/_theme.scss +0 -0
  575. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header-delivery/style/material.scss +0 -0
  576. package/projects/transaction/src/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.ts +128 -0
  577. package/projects/transaction/src/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.module.ts +45 -0
  578. package/projects/transaction/src/lib/component/transaction-header/transaction-header-order/style/_layout.scss +55 -0
  579. package/projects/transaction/src/lib/component/transaction-header/transaction-header-order/style/_material-definition.scss +13 -0
  580. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header-order/style/_theme.scss +0 -0
  581. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header-order/style/material.scss +0 -0
  582. package/projects/transaction/src/lib/component/transaction-header/transaction-header-order/transaction-header-order.component.ts +51 -0
  583. package/projects/transaction/src/lib/component/transaction-header/transaction-header-order/transaction-header-order.module.ts +30 -0
  584. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header-payment/style/_layout.scss +0 -0
  585. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header-payment/style/_material-definition.scss +0 -0
  586. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header-payment/style/_theme.scss +0 -0
  587. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header-payment/style/material.scss +0 -0
  588. package/projects/transaction/src/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.ts +118 -0
  589. package/projects/transaction/src/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.module.ts +33 -0
  590. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header-relation/style/_layout.scss +0 -0
  591. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header-relation/style/_material-definition.scss +0 -0
  592. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header-relation/style/_theme.scss +0 -0
  593. package/{lib → projects/transaction/src/lib}/component/transaction-header/transaction-header-relation/style/material.scss +0 -0
  594. package/projects/transaction/src/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.ts +235 -0
  595. package/projects/transaction/src/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.module.ts +43 -0
  596. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-administrative-relation.component.ts +60 -0
  597. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-administrative-relation.module.ts +21 -0
  598. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-branch.component.ts +76 -0
  599. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-branch.module.ts +24 -0
  600. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-definitive.component.ts +41 -0
  601. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-definitive.module.ts +21 -0
  602. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-delivery-date.component.ts +46 -0
  603. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-delivery-date.module.ts +21 -0
  604. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-delivery-method.component.ts +94 -0
  605. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-delivery-method.module.ts +27 -0
  606. package/{lib → projects/transaction/src/lib}/component/transaction-header-fields/transaction-header-delivery-options/style/_layout.scss +0 -0
  607. package/{lib → projects/transaction/src/lib}/component/transaction-header-fields/transaction-header-delivery-options/style/_material-definition.scss +0 -0
  608. package/{lib → projects/transaction/src/lib}/component/transaction-header-fields/transaction-header-delivery-options/style/_theme.scss +0 -0
  609. package/{lib/component/transaction-line/transaction-order-delivery-line → projects/transaction/src/lib/component/transaction-header-fields/transaction-header-delivery-options}/style/material.scss +0 -0
  610. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.component.ts +77 -0
  611. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.module.ts +21 -0
  612. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-amount.component.ts +50 -0
  613. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-amount.module.ts +21 -0
  614. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-button.component.ts +51 -0
  615. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-button.module.ts +24 -0
  616. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-percentage.component.ts +50 -0
  617. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-percentage.module.ts +21 -0
  618. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-transaction-total.component.ts +51 -0
  619. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-transaction-total.module.ts +21 -0
  620. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-downpayment-amount.component.ts +49 -0
  621. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-downpayment-amount.module.ts +21 -0
  622. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-downpayment-percentage.component.ts +49 -0
  623. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-downpayment-percentage.module.ts +21 -0
  624. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-marketing.component.ts +48 -0
  625. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-marketing.module.ts +24 -0
  626. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-partial-delivery.component.ts +47 -0
  627. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-partial-delivery.module.ts +21 -0
  628. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.component.ts +51 -0
  629. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.module.ts +21 -0
  630. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-reference.component.ts +48 -0
  631. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-reference.module.ts +21 -0
  632. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-relation-reference.component.ts +48 -0
  633. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-relation-reference.module.ts +21 -0
  634. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-remarks.component.ts +48 -0
  635. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-remarks.module.ts +21 -0
  636. package/{lib → projects/transaction/src/lib}/component/transaction-history-grid-status/style/_layout.scss +0 -0
  637. package/{lib → projects/transaction/src/lib}/component/transaction-history-grid-status/style/_material-definition.scss +0 -0
  638. package/{lib → projects/transaction/src/lib}/component/transaction-history-grid-status/style/_theme.scss +0 -0
  639. package/{lib → projects/transaction/src/lib}/component/transaction-history-grid-status/style/material.scss +0 -0
  640. package/projects/transaction/src/lib/component/transaction-history-grid-status/transaction-history-grid-status.component.ts +51 -0
  641. package/projects/transaction/src/lib/component/transaction-history-grid-status/transaction-history-grid-status.module.ts +21 -0
  642. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-base-line/style/_layout.scss +0 -0
  643. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-base-line/style/_material-definition.scss +0 -0
  644. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-base-line/style/_theme.scss +0 -0
  645. package/{lib/component/transaction-line/transaction-receive-goods-line → projects/transaction/src/lib/component/transaction-line/transaction-base-line}/style/material.scss +0 -0
  646. package/projects/transaction/src/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.ts +93 -0
  647. package/projects/transaction/src/lib/component/transaction-line/transaction-base-line/transaction-base-line.module.ts +28 -0
  648. package/projects/transaction/src/lib/component/transaction-line/transaction-goods-allocation-line/service/transaction-allocate-goods.service.ts +67 -0
  649. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-goods-allocation-line/style/_layout.scss +0 -0
  650. package/{lib/component/transaction-search/transaction-filter-historic-state → projects/transaction/src/lib/component/transaction-line/transaction-goods-allocation-line}/style/_material-definition.scss +0 -0
  651. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-goods-allocation-line/style/_theme.scss +0 -0
  652. package/{lib/component/transaction-quick-access/transaction-quick-access-goods-allocation → projects/transaction/src/lib/component/transaction-line/transaction-goods-allocation-line}/style/material.scss +0 -0
  653. package/projects/transaction/src/lib/component/transaction-line/transaction-goods-allocation-line/transaction-goods-allocation-line.component.ts +115 -0
  654. package/projects/transaction/src/lib/component/transaction-line/transaction-goods-allocation-line/transaction-goods-allocation-line.module.ts +35 -0
  655. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-line/style/_layout.scss +0 -0
  656. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-line/style/_material-definition.scss +0 -0
  657. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-line/style/_theme.scss +0 -0
  658. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-line/style/material.scss +0 -0
  659. package/projects/transaction/src/lib/component/transaction-line/transaction-line/transaction-line.component.ts +143 -0
  660. package/projects/transaction/src/lib/component/transaction-line/transaction-line/transaction-line.module.ts +20 -0
  661. package/projects/transaction/src/lib/component/transaction-line/transaction-order-delivery-line/service/transaction-order-delivery.service.ts +70 -0
  662. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-order-delivery-line/style/_layout.scss +0 -0
  663. package/{lib/component/transaction-search/transaction-filter-item → projects/transaction/src/lib/component/transaction-line/transaction-order-delivery-line}/style/_material-definition.scss +0 -0
  664. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-order-delivery-line/style/_theme.scss +0 -0
  665. package/{lib/component/transaction-quick-access/transaction-quick-access-order-confirmation → projects/transaction/src/lib/component/transaction-line/transaction-order-delivery-line}/style/material.scss +0 -0
  666. package/projects/transaction/src/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.component.ts +178 -0
  667. package/projects/transaction/src/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.module.ts +41 -0
  668. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-overview-line/style/_layout.scss +0 -0
  669. package/{lib/component/transaction-search/transaction-filter/transaction-filter → projects/transaction/src/lib/component/transaction-line/transaction-overview-line}/style/_material-definition.scss +0 -0
  670. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-overview-line/style/_theme.scss +0 -0
  671. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-overview-line/style/material.scss +0 -0
  672. package/projects/transaction/src/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.ts +95 -0
  673. package/projects/transaction/src/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.module.ts +60 -0
  674. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-purchase-line/style/_layout.scss +0 -0
  675. package/{lib/component/transaction-search/transaction-search-grid/transaction-search-grid → projects/transaction/src/lib/component/transaction-line/transaction-purchase-line}/style/_material-definition.scss +0 -0
  676. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-purchase-line/style/_theme.scss +0 -0
  677. package/{lib/component/transaction-quick-access/transaction-quick-access-order-delivery → projects/transaction/src/lib/component/transaction-line/transaction-purchase-line}/style/material.scss +0 -0
  678. package/projects/transaction/src/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.component.ts +105 -0
  679. package/projects/transaction/src/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.module.ts +44 -0
  680. package/projects/transaction/src/lib/component/transaction-line/transaction-receive-goods-line/service/transaction-receive-goods.service.ts +73 -0
  681. package/projects/transaction/src/lib/component/transaction-line/transaction-receive-goods-line/style/_layout.scss +41 -0
  682. package/{lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid → projects/transaction/src/lib/component/transaction-line/transaction-receive-goods-line}/style/_material-definition.scss +0 -0
  683. package/{lib → projects/transaction/src/lib}/component/transaction-line/transaction-receive-goods-line/style/_theme.scss +0 -0
  684. package/{lib/component/transaction-quick-access/transaction-quick-access-order-purchase → projects/transaction/src/lib/component/transaction-line/transaction-receive-goods-line}/style/material.scss +0 -0
  685. package/projects/transaction/src/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.component.ts +130 -0
  686. package/projects/transaction/src/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.module.ts +46 -0
  687. package/{lib → projects/transaction/src/lib}/component/transaction-line-action-buttons/style/_layout.scss +0 -0
  688. package/{lib → projects/transaction/src/lib}/component/transaction-line-action-buttons/style/_material-definition.scss +0 -0
  689. package/{lib → projects/transaction/src/lib}/component/transaction-line-action-buttons/style/_theme.scss +0 -0
  690. package/{lib → projects/transaction/src/lib}/component/transaction-line-action-buttons/style/material.scss +0 -0
  691. package/projects/transaction/src/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.ts +224 -0
  692. package/projects/transaction/src/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.module.ts +30 -0
  693. package/{lib → projects/transaction/src/lib}/component/transaction-line-checkbox-list/style/_layout.scss +0 -0
  694. package/{lib → projects/transaction/src/lib}/component/transaction-line-checkbox-list/style/_material-definition.scss +0 -0
  695. package/{lib → projects/transaction/src/lib}/component/transaction-line-checkbox-list/style/_theme.scss +0 -0
  696. package/{lib/component/transaction-line-image-and-description → projects/transaction/src/lib/component/transaction-line-checkbox-list}/style/material.scss +0 -0
  697. package/projects/transaction/src/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.component.ts +58 -0
  698. package/projects/transaction/src/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.module.ts +23 -0
  699. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-amount.component.ts +46 -0
  700. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-amount.module.ts +19 -0
  701. package/{lib/component/transaction-line/transaction-overview-line/style/_material-definition.scss → projects/transaction/src/lib/component/transaction-line-fields/transaction-line-assembly-time.component.ts} +0 -0
  702. package/{lib/component/transaction-line/transaction-purchase-line/style/_material-definition.scss → projects/transaction/src/lib/component/transaction-line-fields/transaction-line-assembly-time.module.ts} +0 -0
  703. package/{lib/component/transaction-line/transaction-receive-goods-line/style/_material-definition.scss → projects/transaction/src/lib/component/transaction-line-fields/transaction-line-collection-code.component.ts} +0 -0
  704. package/{lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/style/_material-definition.scss → projects/transaction/src/lib/component/transaction-line-fields/transaction-line-collection-code.module.ts} +0 -0
  705. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-commission-button.component.ts +51 -0
  706. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-commission-button.module.ts +22 -0
  707. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-commission-code.component.ts +55 -0
  708. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-commission-code.module.ts +24 -0
  709. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-button.component.ts +58 -0
  710. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-button.module.ts +22 -0
  711. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-date-button.component.ts +34 -0
  712. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-date-button.module.ts +22 -0
  713. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-date.component.ts +56 -0
  714. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-date.module.ts +21 -0
  715. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-method.component.ts +51 -0
  716. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-method.module.ts +24 -0
  717. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-description.component.ts +61 -0
  718. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-description.module.ts +22 -0
  719. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-discount-amount.component.ts +49 -0
  720. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-discount-amount.module.ts +21 -0
  721. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-discount-button.component.ts +53 -0
  722. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-discount-button.module.ts +24 -0
  723. package/{lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/_material-definition.scss → projects/transaction/src/lib/component/transaction-line-fields/transaction-line-edit-time.component.ts} +0 -0
  724. package/{lib/component/transaction-quick-access/transaction-quick-access-order-delivery/style/_material-definition.scss → projects/transaction/src/lib/component/transaction-line-fields/transaction-line-edit-time.module.ts} +0 -0
  725. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-line-discount.component.ts +49 -0
  726. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-line-discount.module.ts +21 -0
  727. package/{lib → projects/transaction/src/lib}/component/transaction-line-fields/transaction-line-price/style/_layout.scss +0 -0
  728. package/{lib/component/transaction-quick-access/transaction-quick-access-order-purchase → projects/transaction/src/lib/component/transaction-line-fields/transaction-line-price}/style/_material-definition.scss +0 -0
  729. package/{lib → projects/transaction/src/lib}/component/transaction-line-fields/transaction-line-price/style/_theme.scss +0 -0
  730. package/{lib/component/transaction-line/transaction-purchase-line → projects/transaction/src/lib/component/transaction-line-fields/transaction-line-price}/style/material.scss +0 -0
  731. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.component.ts +90 -0
  732. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.module.ts +21 -0
  733. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-price-list.component.ts +49 -0
  734. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-price-list.module.ts +24 -0
  735. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-quantity.component.ts +35 -0
  736. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-quantity.module.ts +21 -0
  737. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-quantum-discount.component.ts +49 -0
  738. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-quantum-discount.module.ts +21 -0
  739. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-reference.component.ts +47 -0
  740. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-reference.module.ts +21 -0
  741. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-special-discount.component.ts +49 -0
  742. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-special-discount.module.ts +21 -0
  743. package/{lib/component/transaction-quick-access/transaction-quick-access-received-goods/style/_material-definition.scss → projects/transaction/src/lib/component/transaction-line-fields/transaction-line-supplier-article-number.component.ts} +0 -0
  744. package/{lib/component/transaction-search/transaction-filter-categories/style/_material-definition.scss → projects/transaction/src/lib/component/transaction-line-fields/transaction-line-supplier-article-number.module.ts} +0 -0
  745. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-supplier-button.component.ts +56 -0
  746. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-supplier-button.module.ts +27 -0
  747. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-supplier.component.ts +56 -0
  748. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-supplier.module.ts +23 -0
  749. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-vat-button.component.ts +55 -0
  750. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-vat-button.module.ts +20 -0
  751. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-vat.component.ts +45 -0
  752. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-vat.module.ts +26 -0
  753. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse-button.component.ts +61 -0
  754. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse-button.module.ts +22 -0
  755. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.component.ts +57 -0
  756. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.module.ts +20 -0
  757. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse-location.component.ts +46 -0
  758. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse-location.module.ts +21 -0
  759. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse.component.ts +48 -0
  760. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse.module.ts +25 -0
  761. package/{lib → projects/transaction/src/lib}/component/transaction-line-grid/style/_layout.scss +0 -0
  762. package/{lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics → projects/transaction/src/lib/component/transaction-line-grid}/style/_material-definition.scss +0 -0
  763. package/{lib → projects/transaction/src/lib}/component/transaction-line-grid/style/_theme.scss +0 -0
  764. package/{lib → projects/transaction/src/lib}/component/transaction-line-grid/style/material.scss +0 -0
  765. package/projects/transaction/src/lib/component/transaction-line-grid/transaction-line-grid.component.ts +20 -0
  766. package/projects/transaction/src/lib/component/transaction-line-grid/transaction-line-grid.module.ts +19 -0
  767. package/{lib → projects/transaction/src/lib}/component/transaction-line-image-and-description/style/_layout.scss +0 -0
  768. package/{lib → projects/transaction/src/lib}/component/transaction-line-image-and-description/style/_material-definition.scss +0 -0
  769. package/{lib → projects/transaction/src/lib}/component/transaction-line-image-and-description/style/_theme.scss +0 -0
  770. package/{lib/component/transaction-line-side-panel-sales → projects/transaction/src/lib/component/transaction-line-image-and-description}/style/material.scss +0 -0
  771. package/projects/transaction/src/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.component.ts +102 -0
  772. package/projects/transaction/src/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.module.ts +26 -0
  773. package/{lib → projects/transaction/src/lib}/component/transaction-line-side-panel/style/_layout.scss +0 -0
  774. package/{lib → projects/transaction/src/lib}/component/transaction-line-side-panel/style/_material-definition.scss +0 -0
  775. package/{lib → projects/transaction/src/lib}/component/transaction-line-side-panel/style/_theme.scss +0 -0
  776. package/{lib → projects/transaction/src/lib}/component/transaction-line-side-panel/style/material.scss +0 -0
  777. package/projects/transaction/src/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.ts +125 -0
  778. package/projects/transaction/src/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.ts +43 -0
  779. package/{lib → projects/transaction/src/lib}/component/transaction-line-side-panel-default/style/_layout.scss +0 -0
  780. package/{lib → projects/transaction/src/lib}/component/transaction-line-side-panel-default/style/_material-definition.scss +0 -0
  781. package/{lib → projects/transaction/src/lib}/component/transaction-line-side-panel-default/style/_theme.scss +0 -0
  782. package/{lib → projects/transaction/src/lib}/component/transaction-line-side-panel-default/style/material.scss +0 -0
  783. package/projects/transaction/src/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.ts +120 -0
  784. package/projects/transaction/src/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.module.ts +58 -0
  785. package/{lib → projects/transaction/src/lib}/component/transaction-line-side-panel-purchase/style/_layout.scss +0 -0
  786. package/{lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics → projects/transaction/src/lib/component/transaction-line-side-panel-purchase}/style/_material-definition.scss +0 -0
  787. package/{lib → projects/transaction/src/lib}/component/transaction-line-side-panel-purchase/style/_theme.scss +0 -0
  788. package/{lib → projects/transaction/src/lib}/component/transaction-line-side-panel-purchase/style/material.scss +0 -0
  789. package/projects/transaction/src/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.ts +123 -0
  790. package/projects/transaction/src/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.module.ts +39 -0
  791. package/{lib → projects/transaction/src/lib}/component/transaction-line-side-panel-sales/style/_layout.scss +0 -0
  792. package/{lib/component/transaction-search/transaction-filter-content → projects/transaction/src/lib/component/transaction-line-side-panel-sales}/style/_material-definition.scss +0 -0
  793. package/{lib → projects/transaction/src/lib}/component/transaction-line-side-panel-sales/style/_theme.scss +0 -0
  794. package/{lib/component/transaction-line-statusbar → projects/transaction/src/lib/component/transaction-line-side-panel-sales}/style/material.scss +0 -0
  795. package/projects/transaction/src/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales.component.ts +85 -0
  796. package/projects/transaction/src/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales.module.ts +30 -0
  797. package/{lib → projects/transaction/src/lib}/component/transaction-line-statusbar/style/_layout.scss +0 -0
  798. package/{lib → projects/transaction/src/lib}/component/transaction-line-statusbar/style/_material-definition.scss +0 -0
  799. package/{lib → projects/transaction/src/lib}/component/transaction-line-statusbar/style/_theme.scss +0 -0
  800. package/{lib/component/transaction-side-panel-edit-request-details → projects/transaction/src/lib/component/transaction-line-statusbar}/style/material.scss +0 -0
  801. package/projects/transaction/src/lib/component/transaction-line-statusbar/transaction-line-statusbar.component.ts +110 -0
  802. package/projects/transaction/src/lib/component/transaction-line-statusbar/transaction-line-statusbar.module.ts +21 -0
  803. package/{lib → projects/transaction/src/lib}/component/transaction-lines/style/_layout.scss +0 -0
  804. package/{lib → projects/transaction/src/lib}/component/transaction-lines/style/_material-definition.scss +0 -0
  805. package/{lib → projects/transaction/src/lib}/component/transaction-lines/style/_theme.scss +0 -0
  806. package/{lib → projects/transaction/src/lib}/component/transaction-lines/style/material.scss +0 -0
  807. package/projects/transaction/src/lib/component/transaction-lines/transaction-lines.component.ts +180 -0
  808. package/projects/transaction/src/lib/component/transaction-lines/transaction-lines.module.ts +30 -0
  809. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access/style/_layout.scss +0 -0
  810. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access/style/_material-definition.scss +0 -0
  811. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access/style/_theme.scss +0 -0
  812. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access/style/material.scss +0 -0
  813. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.component.ts +107 -0
  814. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.module.ts +42 -0
  815. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-goods-allocation/style/_layout.scss +0 -0
  816. package/{lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile → projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation}/style/_material-definition.scss +0 -0
  817. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-goods-allocation/style/_theme.scss +0 -0
  818. package/{lib/component/transaction-quick-access/transaction-quick-access-overview → projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation}/style/material.scss +0 -0
  819. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/transaction-quick-access-goods-allocation.component.ts +68 -0
  820. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/transaction-quick-access-goods-allocation.module.ts +24 -0
  821. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/_layout.scss +0 -0
  822. package/{lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile → projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation}/style/_material-definition.scss +0 -0
  823. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/_theme.scss +0 -0
  824. package/{lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview → projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation}/style/material.scss +0 -0
  825. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.component.ts +41 -0
  826. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.module.ts +27 -0
  827. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-order-delivery/style/_layout.scss +0 -0
  828. package/{lib/component/transaction-search/transaction-search-tile/transaction-search-tile → projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-delivery}/style/_material-definition.scss +0 -0
  829. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-order-delivery/style/_theme.scss +0 -0
  830. package/{lib/component/transaction-quick-access/transaction-quick-access-received-goods → projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-delivery}/style/material.scss +0 -0
  831. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.component.ts +120 -0
  832. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.module.ts +28 -0
  833. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-order-purchase/style/_layout.scss +0 -0
  834. package/{lib/component/transaction-tile → projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-purchase}/style/_material-definition.scss +0 -0
  835. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-order-purchase/style/_theme.scss +0 -0
  836. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/style/material.scss +4 -0
  837. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.component.ts +54 -0
  838. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.module.ts +26 -0
  839. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-overview/style/_layout.scss +0 -0
  840. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-overview/style/_material-definition.scss +0 -0
  841. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-overview/style/_theme.scss +0 -0
  842. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-overview/style/material.scss +4 -0
  843. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.component.ts +139 -0
  844. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.module.ts +29 -0
  845. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/style/_layout.scss +0 -0
  846. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/style/_material-definition.scss +0 -0
  847. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/style/_theme.scss +0 -0
  848. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/style/material.scss +4 -0
  849. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/transaction-quick-access-purchase-order-overview.component.ts +133 -0
  850. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/transaction-quick-access-purchase-order-overview.module.ts +27 -0
  851. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-received-goods/style/_layout.scss +0 -0
  852. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-received-goods/style/_material-definition.scss +0 -0
  853. package/{lib → projects/transaction/src/lib}/component/transaction-quick-access/transaction-quick-access-received-goods/style/_theme.scss +0 -0
  854. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-received-goods/style/material.scss +4 -0
  855. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.component.ts +96 -0
  856. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.module.ts +31 -0
  857. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-send-method-base.component.ts +132 -0
  858. package/{lib → projects/transaction/src/lib}/component/transaction-receiving-goods-history/style/_layout.scss +0 -0
  859. package/{lib → projects/transaction/src/lib}/component/transaction-receiving-goods-history/style/_material-definition.scss +0 -0
  860. package/{lib → projects/transaction/src/lib}/component/transaction-receiving-goods-history/style/_theme.scss +0 -0
  861. package/{lib → projects/transaction/src/lib}/component/transaction-receiving-goods-history/style/material.scss +0 -0
  862. package/projects/transaction/src/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.component.ts +90 -0
  863. package/projects/transaction/src/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.module.ts +28 -0
  864. package/projects/transaction/src/lib/component/transaction-search/service/filter-request.service.ts +194 -0
  865. package/projects/transaction/src/lib/component/transaction-search/service/transaction-search.service.ts +134 -0
  866. package/{lib → projects/transaction/src/lib}/component/transaction-search/style/_layout.scss +0 -0
  867. package/{lib → projects/transaction/src/lib}/component/transaction-search/style/_material-definition.scss +0 -0
  868. package/{lib → projects/transaction/src/lib}/component/transaction-search/style/_theme.scss +0 -0
  869. package/{lib → projects/transaction/src/lib}/component/transaction-search/style/material.scss +0 -0
  870. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter/transaction-filter/style/_layout.scss +0 -0
  871. package/projects/transaction/src/lib/component/transaction-search/transaction-filter/transaction-filter/style/_material-definition.scss +0 -0
  872. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter/transaction-filter/style/_theme.scss +0 -0
  873. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter/transaction-filter/style/material.scss +0 -0
  874. package/projects/transaction/src/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.component.ts +119 -0
  875. package/projects/transaction/src/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.module.ts +17 -0
  876. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter/transaction-purchase-order-filter/style/_layout.scss +0 -0
  877. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter/transaction-purchase-order-filter/style/_material-definition.scss +0 -0
  878. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter/transaction-purchase-order-filter/style/_theme.scss +0 -0
  879. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter/transaction-purchase-order-filter/style/material.scss +0 -0
  880. package/projects/transaction/src/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.component.ts +51 -0
  881. package/projects/transaction/src/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.module.ts +40 -0
  882. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter/transaction-sales-order-filter/style/_layout.scss +0 -0
  883. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter/transaction-sales-order-filter/style/_material-definition.scss +0 -0
  884. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter/transaction-sales-order-filter/style/_theme.scss +0 -0
  885. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter/transaction-sales-order-filter/style/material.scss +0 -0
  886. package/projects/transaction/src/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.component.ts +51 -0
  887. package/projects/transaction/src/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.module.ts +38 -0
  888. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-categories/style/_layout.scss +0 -0
  889. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-categories/style/_material-definition.scss +0 -0
  890. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-categories/style/_theme.scss +0 -0
  891. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-categories/style/material.scss +0 -0
  892. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.component.ts +44 -0
  893. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.module.ts +17 -0
  894. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/enum/search-placeholder.enum.ts +25 -0
  895. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/style/_layout.scss +0 -0
  896. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/style/_material-definition.scss +0 -0
  897. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/style/_theme.scss +0 -0
  898. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/style/material.scss +0 -0
  899. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.component.ts +155 -0
  900. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.module.ts +27 -0
  901. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/style/_layout.scss +0 -0
  902. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/style/_material-definition.scss +0 -0
  903. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/style/_theme.scss +0 -0
  904. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/style/material.scss +0 -0
  905. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.component.ts +249 -0
  906. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.module.ts +33 -0
  907. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/style/_layout.scss +0 -0
  908. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/style/_material-definition.scss +0 -0
  909. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/style/_theme.scss +0 -0
  910. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/style/material.scss +0 -0
  911. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.component.ts +246 -0
  912. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.module.ts +38 -0
  913. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/style/_layout.scss +0 -0
  914. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/style/_material-definition.scss +0 -0
  915. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/style/_theme.scss +0 -0
  916. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/style/material.scss +0 -0
  917. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.component.ts +145 -0
  918. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.module.ts +27 -0
  919. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/style/_layout.scss +0 -0
  920. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/style/_material-definition.scss +0 -0
  921. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/style/_theme.scss +0 -0
  922. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/style/material.scss +0 -0
  923. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.component.ts +248 -0
  924. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.module.ts +33 -0
  925. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/style/_layout.scss +0 -0
  926. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/style/_material-definition.scss +0 -0
  927. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/style/_theme.scss +0 -0
  928. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/style/material.scss +0 -0
  929. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.component.ts +274 -0
  930. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.module.ts +38 -0
  931. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/style/_layout.scss +0 -0
  932. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/style/_material-definition.scss +0 -0
  933. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/style/_theme.scss +0 -0
  934. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-content/style/material.scss +0 -0
  935. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-historic-state/style/_layout.scss +0 -0
  936. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-historic-state/style/_material-definition.scss +0 -0
  937. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-historic-state/style/_theme.scss +0 -0
  938. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-historic-state/style/material.scss +0 -0
  939. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.component.ts +70 -0
  940. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.module.ts +24 -0
  941. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-item/style/_layout.scss +0 -0
  942. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-item/style/_material-definition.scss +0 -0
  943. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-item/style/_theme.scss +0 -0
  944. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-filter-item/style/material.scss +0 -0
  945. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.component.ts +71 -0
  946. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.module.ts +21 -0
  947. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-grid/transaction-search-grid/style/_layout.scss +0 -0
  948. package/projects/transaction/src/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/style/_material-definition.scss +0 -0
  949. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-grid/transaction-search-grid/style/_theme.scss +0 -0
  950. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-grid/transaction-search-grid/style/material.scss +0 -0
  951. package/projects/transaction/src/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/transaction-search-grid.component.ts +104 -0
  952. package/projects/transaction/src/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/transaction-search-grid.module.ts +17 -0
  953. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/style/_layout.scss +0 -0
  954. package/projects/transaction/src/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/style/_material-definition.scss +0 -0
  955. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/style/_theme.scss +0 -0
  956. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/style/material.scss +0 -0
  957. package/projects/transaction/src/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.component.ts +80 -0
  958. package/projects/transaction/src/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.module.ts +23 -0
  959. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/_layout.scss +0 -0
  960. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/_material-definition.scss +0 -0
  961. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/_theme.scss +0 -0
  962. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/material.scss +0 -0
  963. package/projects/transaction/src/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.component.ts +80 -0
  964. package/projects/transaction/src/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.module.ts +25 -0
  965. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-header/style/_layout.scss +0 -0
  966. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-header/style/_material-definition.scss +0 -0
  967. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-header/style/_theme.scss +0 -0
  968. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-header/style/material.scss +0 -0
  969. package/projects/transaction/src/lib/component/transaction-search/transaction-search-header/transaction-search-header.component.ts +135 -0
  970. package/projects/transaction/src/lib/component/transaction-search/transaction-search-header/transaction-search-header.module.ts +25 -0
  971. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-result/style/_layout.scss +0 -0
  972. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-result/style/_material-definition.scss +0 -0
  973. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-result/style/_theme.scss +0 -0
  974. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-result/style/material.scss +0 -0
  975. package/projects/transaction/src/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.ts +136 -0
  976. package/projects/transaction/src/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.ts +42 -0
  977. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/style/_layout.scss +0 -0
  978. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/style/_material-definition.scss +0 -0
  979. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/style/_theme.scss +0 -0
  980. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/style/material.scss +0 -0
  981. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.component.ts +65 -0
  982. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.module.ts +27 -0
  983. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/style/_layout.scss +0 -0
  984. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/style/_material-definition.scss +0 -0
  985. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/style/_theme.scss +0 -0
  986. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/style/material.scss +0 -0
  987. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.component.ts +72 -0
  988. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.module.ts +30 -0
  989. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-tile/transaction-search-tile/style/_layout.scss +0 -0
  990. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/style/_material-definition.scss +0 -0
  991. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-tile/transaction-search-tile/style/_theme.scss +0 -0
  992. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-tile/transaction-search-tile/style/material.scss +0 -0
  993. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.component.ts +118 -0
  994. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.module.ts +17 -0
  995. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-tile/transaction-statusbar/style/_layout.scss +0 -0
  996. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-tile/transaction-statusbar/style/_material-definition.scss +0 -0
  997. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-tile/transaction-statusbar/style/_theme.scss +0 -0
  998. package/{lib → projects/transaction/src/lib}/component/transaction-search/transaction-search-tile/transaction-statusbar/style/material.scss +0 -0
  999. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-statusbar/transaction-statusbar.component.ts +90 -0
  1000. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-statusbar/transaction-statusbar.module.ts +21 -0
  1001. package/projects/transaction/src/lib/component/transaction-search/transaction-search.component.ts +166 -0
  1002. package/projects/transaction/src/lib/component/transaction-search/transaction-search.module.ts +34 -0
  1003. package/projects/transaction/src/lib/component/transaction-side-panel-edit-request-details/components/allocation-request.component.ts +143 -0
  1004. package/projects/transaction/src/lib/component/transaction-side-panel-edit-request-details/components/confirm-request.component.ts +0 -0
  1005. package/projects/transaction/src/lib/component/transaction-side-panel-edit-request-details/components/receive-goods-request.component.ts +207 -0
  1006. package/{lib → projects/transaction/src/lib}/component/transaction-side-panel-edit-request-details/style/_layout.scss +0 -0
  1007. package/{lib → projects/transaction/src/lib}/component/transaction-side-panel-edit-request-details/style/_material-definition.scss +0 -0
  1008. package/{lib → projects/transaction/src/lib}/component/transaction-side-panel-edit-request-details/style/_theme.scss +0 -0
  1009. package/projects/transaction/src/lib/component/transaction-side-panel-edit-request-details/style/material.scss +4 -0
  1010. package/projects/transaction/src/lib/component/transaction-side-panel-edit-request-details/transaction-side-panel-edit-request-details.component.ts +63 -0
  1011. package/projects/transaction/src/lib/component/transaction-side-panel-edit-request-details/transaction-side-panel-edit-request-details.module.ts +42 -0
  1012. package/{lib → projects/transaction/src/lib}/component/transaction-tile/style/_layout.scss +0 -0
  1013. package/projects/transaction/src/lib/component/transaction-tile/style/_material-definition.scss +0 -0
  1014. package/{lib → projects/transaction/src/lib}/component/transaction-tile/style/_theme.scss +0 -0
  1015. package/{lib → projects/transaction/src/lib}/component/transaction-tile/style/material.scss +0 -0
  1016. package/projects/transaction/src/lib/component/transaction-tile/transaction-tile.component.ts +117 -0
  1017. package/projects/transaction/src/lib/component/transaction-tile/transaction-tile.module.ts +27 -0
  1018. package/{lib → projects/transaction/src/lib}/component/transaction-totals/style/_layout.scss +0 -0
  1019. package/{lib → projects/transaction/src/lib}/component/transaction-totals/style/_material-definition.scss +0 -0
  1020. package/{lib → projects/transaction/src/lib}/component/transaction-totals/style/_theme.scss +0 -0
  1021. package/{lib → projects/transaction/src/lib}/component/transaction-totals/style/material.scss +0 -0
  1022. package/projects/transaction/src/lib/component/transaction-totals/transaction-totals.component.ts +55 -0
  1023. package/projects/transaction/src/lib/component/transaction-totals/transaction-totals.module.ts +23 -0
  1024. package/{lib → projects/transaction/src/lib}/component/view-mode-buttons/style/_layout.scss +0 -0
  1025. package/{lib → projects/transaction/src/lib}/component/view-mode-buttons/style/_material-definition.scss +0 -0
  1026. package/{lib → projects/transaction/src/lib}/component/view-mode-buttons/style/_theme.scss +0 -0
  1027. package/{lib → projects/transaction/src/lib}/component/view-mode-buttons/style/material.scss +0 -0
  1028. package/projects/transaction/src/lib/component/view-mode-buttons/view-mode-buttons.component.ts +63 -0
  1029. package/projects/transaction/src/lib/component/view-mode-buttons/view-mode-buttons.module.ts +21 -0
  1030. package/projects/transaction/src/lib/enum/content-view-mode.enum.ts +9 -0
  1031. package/projects/transaction/src/lib/enum/direction.enum.ts +7 -0
  1032. package/projects/transaction/src/lib/enum/icon.enum.ts +83 -0
  1033. package/projects/transaction/src/lib/enum/language-code.enum.ts +6 -0
  1034. package/projects/transaction/src/lib/enum/order-discount-type.enum.ts +5 -0
  1035. package/projects/transaction/src/lib/enum/position-grid-row.enum.ts +4 -0
  1036. package/projects/transaction/src/lib/enum/search-view-mode.enum.ts +5 -0
  1037. package/projects/transaction/src/lib/enum/searchbar-view-mode.enum.ts +5 -0
  1038. package/projects/transaction/src/lib/enum/status-type.enum.ts +5 -0
  1039. package/projects/transaction/src/lib/enum/time-size.type.ts +8 -0
  1040. package/projects/transaction/src/lib/enum/transaction-type-category.enum.ts +15 -0
  1041. package/projects/transaction/src/lib/interface/dialog-response.interface.ts +6 -0
  1042. package/projects/transaction/src/lib/model/Settings.ts +20 -0
  1043. package/projects/transaction/src/lib/model/article-characteristic-text-question-answer.ts +8 -0
  1044. package/projects/transaction/src/lib/model/delivery-type.ts +8 -0
  1045. package/projects/transaction/src/lib/model/down-payment-view-model.ts +13 -0
  1046. package/projects/transaction/src/lib/model/extended-transaction-line-view-model.ts +12 -0
  1047. package/projects/transaction/src/lib/model/filter-item.viewmodel.ts +13 -0
  1048. package/projects/transaction/src/lib/model/filter-viewmodel.ts +11 -0
  1049. package/projects/transaction/src/lib/model/icon-svg.ts +83 -0
  1050. package/projects/transaction/src/lib/model/payment.viewmodel.ts +10 -0
  1051. package/projects/transaction/src/lib/model/received-goods-view-model.ts +17 -0
  1052. package/projects/transaction/src/lib/model/relation-any-type.ts +5 -0
  1053. package/projects/transaction/src/lib/model/standard-text.ts +5 -0
  1054. package/projects/transaction/src/lib/model/text-value-container.ts +4 -0
  1055. package/projects/transaction/src/lib/model/transaction-bar-button.ts +11 -0
  1056. package/projects/transaction/src/lib/model/transaction-search-result.ts +6 -0
  1057. package/projects/transaction/src/lib/pipe/append.pipe.ts +17 -0
  1058. package/projects/transaction/src/lib/pipe/co-currency.pipe.ts +45 -0
  1059. package/projects/transaction/src/lib/pipe/date-duration.pipe.ts +51 -0
  1060. package/projects/transaction/src/lib/pipe/delivery-time.pipe.ts +34 -0
  1061. package/projects/transaction/src/lib/pipe/localize.pipe.ts +23 -0
  1062. package/projects/transaction/src/lib/pipe/pipe.module.ts +34 -0
  1063. package/projects/transaction/src/lib/pipe/safe-html.pipe.ts +14 -0
  1064. package/projects/transaction/src/lib/pipe/safe-style.pipe.ts +14 -0
  1065. package/projects/transaction/src/lib/provider/token/all-icons.token.ts +4 -0
  1066. package/projects/transaction/src/lib/service/article-connector.service.ts +93 -0
  1067. package/projects/transaction/src/lib/service/article.service.ts +22 -0
  1068. package/projects/transaction/src/lib/service/dialog.service.ts +143 -0
  1069. package/projects/transaction/src/lib/service/dictionary.service.ts +86 -0
  1070. package/projects/transaction/src/lib/service/dynamic-component.service.ts +101 -0
  1071. package/projects/transaction/src/lib/service/error.service.ts +63 -0
  1072. package/projects/transaction/src/lib/service/icon-cache.service.ts +51 -0
  1073. package/projects/transaction/src/lib/service/options.service.ts +66 -0
  1074. package/projects/transaction/src/lib/service/payment.service.ts +93 -0
  1075. package/projects/transaction/src/lib/service/pending-reason.service.ts +323 -0
  1076. package/projects/transaction/src/lib/service/relation-connector.service.ts +202 -0
  1077. package/projects/transaction/src/lib/service/relation.service.ts +168 -0
  1078. package/projects/transaction/src/lib/service/shared-connector.service.ts +47 -0
  1079. package/projects/transaction/src/lib/service/shared.service.ts +40 -0
  1080. package/projects/transaction/src/lib/service/transaction-connector-adapter.service.ts +1695 -0
  1081. package/projects/transaction/src/lib/service/transaction-connector.service.ts +648 -0
  1082. package/projects/transaction/src/lib/service/transaction-event.service.ts +35 -0
  1083. package/projects/transaction/src/lib/service/transaction-image.service.ts +42 -0
  1084. package/projects/transaction/src/lib/service/transaction-initializer.service.ts +29 -0
  1085. package/projects/transaction/src/lib/service/transaction-mapping.service.ts +230 -0
  1086. package/projects/transaction/src/lib/service/transaction.service.ts +848 -0
  1087. package/{lib → projects/transaction/src/lib}/style/_mixin.scss +0 -0
  1088. package/{lib → projects/transaction/src/lib}/style/_variables.scss +0 -0
  1089. package/{lib → projects/transaction/src/lib}/style/transaction-globals.scss +0 -0
  1090. package/projects/transaction/src/public_api.ts +50 -0
  1091. package/projects/transaction/src/test.ts +25 -0
  1092. package/projects/transaction/tsconfig.lib.json +20 -0
  1093. package/projects/transaction/tsconfig.lib.prod.json +16 -0
  1094. package/projects/transaction/tsconfig.spec.json +17 -0
  1095. package/publish.bat +7 -0
  1096. package/script/merge-icons.js +39 -0
  1097. package/src/app/app-transaction.component.ts +18 -0
  1098. package/src/app/app.component.scss +45 -0
  1099. package/src/app/app.component.ts +327 -0
  1100. package/src/app/app.module.ts +62 -0
  1101. package/src/environments/environment.prod.ts +3 -0
  1102. package/src/environments/environment.ts +16 -0
  1103. package/src/favicon.ico +0 -0
  1104. package/src/index.html +15 -0
  1105. package/src/main.ts +14 -0
  1106. package/src/polyfills.ts +63 -0
  1107. package/src/styles.scss +93 -0
  1108. package/src/test.ts +25 -0
  1109. package/src/transaction.unit.test.ts +60 -0
  1110. package/tsconfig.app.json +15 -0
  1111. package/tsconfig.json +42 -0
  1112. package/tsconfig.spec.json +18 -0
  1113. package/webpack.config.js +18 -0
  1114. package/bundles/colijnit-transaction.umd.js +0 -25632
  1115. package/bundles/colijnit-transaction.umd.js.map +0 -1
  1116. package/colijnit-transaction.d.ts +0 -346
  1117. package/colijnit-transaction.metadata.json +0 -1
  1118. package/esm2015/colijnit-transaction.js +0 -347
  1119. package/esm2015/lib/assets/dictionary/text.properties.js +0 -749
  1120. package/esm2015/lib/cache/cache-field.js +0 -75
  1121. package/esm2015/lib/cache/parameter-cache-field.js +0 -54
  1122. package/esm2015/lib/cache/service/business-object-cache-manager.service.js +0 -150
  1123. package/esm2015/lib/cache/service/select-multiple-cache.service.js +0 -38
  1124. package/esm2015/lib/cache/service/select-multiple-parameterized-cache.service.js +0 -47
  1125. package/esm2015/lib/cache/service/select-single-cache.service.js +0 -30
  1126. package/esm2015/lib/component/animated-checkbox/animated-checkbox.component.js +0 -27
  1127. package/esm2015/lib/component/animated-checkbox/animated-checkbox.module.js +0 -21
  1128. package/esm2015/lib/component/avatar/avatar.component.js +0 -106
  1129. package/esm2015/lib/component/avatar/avatar.module.js +0 -21
  1130. package/esm2015/lib/component/checkout/checkout-login/checkout-login.component.js +0 -106
  1131. package/esm2015/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +0 -47
  1132. package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +0 -267
  1133. package/esm2015/lib/component/checkout/checkout-overview-payment/checkout-overview-payment.component.js +0 -101
  1134. package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +0 -219
  1135. package/esm2015/lib/component/checkout/checkout.component.js +0 -180
  1136. package/esm2015/lib/component/checkout/checkout.module.js +0 -124
  1137. package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.component.js +0 -67
  1138. package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.module.js +0 -25
  1139. package/esm2015/lib/component/core/base/components/characteristic-answer/characteristic-answer.component.js +0 -83
  1140. package/esm2015/lib/component/core/base/components/characteristic-answer/characteristic-answer.module.js +0 -26
  1141. package/esm2015/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.component.js +0 -41
  1142. package/esm2015/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.module.js +0 -21
  1143. package/esm2015/lib/component/core/base/components/transaction-header-block/transaction-header-block.component.js +0 -47
  1144. package/esm2015/lib/component/core/base/components/transaction-header-block/transaction-header-block.module.js +0 -19
  1145. package/esm2015/lib/component/core/base/components/warehouse/warehouse.component.js +0 -64
  1146. package/esm2015/lib/component/core/base/components/warehouse/warehouse.module.js +0 -26
  1147. package/esm2015/lib/component/core/base/dialog-base.component.js +0 -6
  1148. package/esm2015/lib/component/core/base/dialog-transaction-header-base.component.js +0 -33
  1149. package/esm2015/lib/component/core/base/dialog-transaction-line-base.component.js +0 -37
  1150. package/esm2015/lib/component/core/base/dynamic-base-component.js +0 -8
  1151. package/esm2015/lib/component/core/base/transaction-base.component.js +0 -103
  1152. package/esm2015/lib/component/core/base/transaction-filter-base.component.js +0 -61
  1153. package/esm2015/lib/component/core/base/transaction-filter-content-base.component.js +0 -44
  1154. package/esm2015/lib/component/core/base/transaction-filter-popup-base.component.js +0 -110
  1155. package/esm2015/lib/component/core/base/transaction-grid-base.component.js +0 -53
  1156. package/esm2015/lib/component/core/base/transaction-header-base.component.js +0 -47
  1157. package/esm2015/lib/component/core/base/transaction-header-filter-popup-base.component.js +0 -111
  1158. package/esm2015/lib/component/core/base/transaction-line-base.component.js +0 -51
  1159. package/esm2015/lib/component/core/base/transaction-lines-line-base.component.js +0 -44
  1160. package/esm2015/lib/component/core/base/transaction-search-grid-base.component.js +0 -25
  1161. package/esm2015/lib/component/core/base/transaction-search-tile-base.component.js +0 -28
  1162. package/esm2015/lib/component/core/core.module.js +0 -48
  1163. package/esm2015/lib/component/core/directive/lazy-render-master.directive.js +0 -43
  1164. package/esm2015/lib/component/core/directive/lazy-render.directive.js +0 -29
  1165. package/esm2015/lib/component/core/enum/app-popup-button-type.enum.js +0 -11
  1166. package/esm2015/lib/component/core/enum/app-popup-type.enum.js +0 -8
  1167. package/esm2015/lib/component/core/icon/icon.component.js +0 -31
  1168. package/esm2015/lib/component/core/image-display/image-display.component.js +0 -29
  1169. package/esm2015/lib/component/core/relation/customer-groups.component.js +0 -46
  1170. package/esm2015/lib/component/core/stock-status-indicator/stock-status-indicator.component.js +0 -24
  1171. package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.component.js +0 -47
  1172. package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.module.js +0 -26
  1173. package/esm2015/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.js +0 -47
  1174. package/esm2015/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.module.js +0 -23
  1175. package/esm2015/lib/component/dialog/dialog-header-search/dialog-header-search.component.js +0 -37
  1176. package/esm2015/lib/component/dialog/dialog-header-search/dialog-header-search.module.js +0 -23
  1177. package/esm2015/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.component.js +0 -37
  1178. package/esm2015/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.module.js +0 -28
  1179. package/esm2015/lib/component/dialog/transaction-header/dialog-transaction-header-discount/dialog-transaction-header-discount.component.js +0 -78
  1180. package/esm2015/lib/component/dialog/transaction-header/dialog-transaction-header-discount/dialog-transaction-header-discount.module.js +0 -29
  1181. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/dialog-transaction-line-commission-code.component.js +0 -36
  1182. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/dialog-transaction-line-commission-code.module.js +0 -28
  1183. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-delivery-method/dialog-transaction-line-delivery-method.component.js +0 -37
  1184. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-delivery-method/dialog-transaction-line-delivery-method.module.js +0 -28
  1185. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.component.js +0 -95
  1186. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.module.js +0 -36
  1187. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.component.js +0 -36
  1188. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.module.js +0 -28
  1189. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.component.js +0 -37
  1190. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.module.js +0 -28
  1191. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.component.js +0 -37
  1192. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.module.js +0 -28
  1193. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.component.js +0 -37
  1194. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.module.js +0 -28
  1195. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.component.js +0 -80
  1196. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.module.js +0 -31
  1197. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/dialog-transaction-line-warehouse-location.component.js +0 -44
  1198. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/dialog-transaction-line-warehouse-location.module.js +0 -28
  1199. package/esm2015/lib/component/discount/discount.component.js +0 -110
  1200. package/esm2015/lib/component/discount/discount.module.js +0 -29
  1201. package/esm2015/lib/component/down-payment/down-payment.component.js +0 -71
  1202. package/esm2015/lib/component/down-payment/down-payment.module.js +0 -27
  1203. package/esm2015/lib/component/editable-label/editable-label.component.js +0 -65
  1204. package/esm2015/lib/component/editable-label/editable-label.module.js +0 -21
  1205. package/esm2015/lib/component/loader/loader.component.js +0 -51
  1206. package/esm2015/lib/component/loader/loader.module.js +0 -19
  1207. package/esm2015/lib/component/payment/payment.component.js +0 -242
  1208. package/esm2015/lib/component/payment/payment.module.js +0 -37
  1209. package/esm2015/lib/component/payment-qr-code/payment-qr-code.component.js +0 -23
  1210. package/esm2015/lib/component/payment-qr-code/payment-qr-code.module.js +0 -23
  1211. package/esm2015/lib/component/payment-tile/payment-tile.component.js +0 -34
  1212. package/esm2015/lib/component/payment-tile/payment-tile.module.js +0 -25
  1213. package/esm2015/lib/component/quick-send-button/quick-send-button.component.js +0 -50
  1214. package/esm2015/lib/component/quick-send-button/quick-send-button.module.js +0 -27
  1215. package/esm2015/lib/component/relation/relation-address/relation-address.component.js +0 -111
  1216. package/esm2015/lib/component/relation/relation-address/relation-address.module.js +0 -29
  1217. package/esm2015/lib/component/relation/relation-address-select/relation-address-select.component.js +0 -145
  1218. package/esm2015/lib/component/relation/relation-address-select/relation-address-select.module.js +0 -33
  1219. package/esm2015/lib/component/relation/relation-address-tile/relation-address-tile.component.js +0 -65
  1220. package/esm2015/lib/component/relation/relation-address-tile/relation-address-tile.module.js +0 -32
  1221. package/esm2015/lib/component/relation/relation-addresses/relation-addresses.component.js +0 -112
  1222. package/esm2015/lib/component/relation/relation-addresses/relation-addresses.module.js +0 -34
  1223. package/esm2015/lib/component/relation/relation-base.component.js +0 -34
  1224. package/esm2015/lib/component/relation/relation-contact-details/relation-contact-details.component.js +0 -65
  1225. package/esm2015/lib/component/relation/relation-contact-details/relation-contact-details.module.js +0 -24
  1226. package/esm2015/lib/component/relation/relation-general/relation-general.component.js +0 -225
  1227. package/esm2015/lib/component/relation/relation-general/relation-general.module.js +0 -27
  1228. package/esm2015/lib/component/relation/relation-preferences/relation-preferences.component.js +0 -68
  1229. package/esm2015/lib/component/relation/relation-preferences/relation-preferences.module.js +0 -21
  1230. package/esm2015/lib/component/relation/relation-suggestions-list/relation-suggestions-list.component.js +0 -30
  1231. package/esm2015/lib/component/relation/relation-suggestions-list/relation-suggestions-list.module.js +0 -21
  1232. package/esm2015/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.component.js +0 -33
  1233. package/esm2015/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.module.js +0 -19
  1234. package/esm2015/lib/component/relation/relation-type/relation-type.component.js +0 -47
  1235. package/esm2015/lib/component/relation/relation-type/relation-type.module.js +0 -23
  1236. package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.component.js +0 -165
  1237. package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.module.js +0 -34
  1238. package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.js +0 -126
  1239. package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.js +0 -30
  1240. package/esm2015/lib/component/shopping-cart/shopping-cart.component.js +0 -69
  1241. package/esm2015/lib/component/shopping-cart/shopping-cart.module.js +0 -27
  1242. package/esm2015/lib/component/shopping-cart-preview/shopping-cart-preview.component.js +0 -59
  1243. package/esm2015/lib/component/shopping-cart-preview/shopping-cart-preview.module.js +0 -29
  1244. package/esm2015/lib/component/stepper/component/stepper-step.component.js +0 -40
  1245. package/esm2015/lib/component/stepper/stepper.component.js +0 -126
  1246. package/esm2015/lib/component/stepper/stepper.module.js +0 -29
  1247. package/esm2015/lib/component/tile/tile.component.js +0 -32
  1248. package/esm2015/lib/component/tile/tile.module.js +0 -19
  1249. package/esm2015/lib/component/transaction/transaction.component.js +0 -177
  1250. package/esm2015/lib/component/transaction/transaction.module.js +0 -67
  1251. package/esm2015/lib/component/transaction-allocate-goods-history/transaction-allocate-goods-history.component.js +0 -81
  1252. package/esm2015/lib/component/transaction-allocate-goods-history/transaction-allocate-goods-history.module.js +0 -25
  1253. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button-base.component.js +0 -37
  1254. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.js +0 -73
  1255. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-purchase-button-bar-button.component.js +0 -40
  1256. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar.component.js +0 -57
  1257. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar.module.js +0 -35
  1258. package/esm2015/lib/component/transaction-confirmation-details/transaction-confirmation-details.component.js +0 -137
  1259. package/esm2015/lib/component/transaction-confirmation-details/transaction-confirmation-details.module.js +0 -34
  1260. package/esm2015/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.js +0 -113
  1261. package/esm2015/lib/component/transaction-confirmation-history/transaction-confirmation-history.module.js +0 -33
  1262. package/esm2015/lib/component/transaction-grid/transaction-available-stock-grid/transaction-available-stock-grid.component.js +0 -94
  1263. package/esm2015/lib/component/transaction-grid/transaction-available-stock-grid/transaction-available-stock-grid.module.js +0 -24
  1264. package/esm2015/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.component.js +0 -55
  1265. package/esm2015/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.module.js +0 -30
  1266. package/esm2015/lib/component/transaction-grid/transaction-grid/transaction-grid.component.js +0 -85
  1267. package/esm2015/lib/component/transaction-grid/transaction-grid/transaction-grid.module.js +0 -19
  1268. package/esm2015/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.component.js +0 -90
  1269. package/esm2015/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.module.js +0 -28
  1270. package/esm2015/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.component.js +0 -117
  1271. package/esm2015/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.module.js +0 -48
  1272. package/esm2015/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.component.js +0 -51
  1273. package/esm2015/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.module.js +0 -29
  1274. package/esm2015/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.component.js +0 -155
  1275. package/esm2015/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.module.js +0 -34
  1276. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.component.js +0 -50
  1277. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.module.js +0 -31
  1278. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.js +0 -126
  1279. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.module.js +0 -48
  1280. package/esm2015/lib/component/transaction-header/transaction-header-order/transaction-header-order.component.js +0 -71
  1281. package/esm2015/lib/component/transaction-header/transaction-header-order/transaction-header-order.module.js +0 -31
  1282. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +0 -119
  1283. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.module.js +0 -35
  1284. package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.js +0 -230
  1285. package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.module.js +0 -46
  1286. package/esm2015/lib/component/transaction-header-fields/transaction-header-administrative-relation.component.js +0 -62
  1287. package/esm2015/lib/component/transaction-header-fields/transaction-header-administrative-relation.module.js +0 -23
  1288. package/esm2015/lib/component/transaction-header-fields/transaction-header-branch.component.js +0 -78
  1289. package/esm2015/lib/component/transaction-header-fields/transaction-header-branch.module.js +0 -26
  1290. package/esm2015/lib/component/transaction-header-fields/transaction-header-definitive.component.js +0 -48
  1291. package/esm2015/lib/component/transaction-header-fields/transaction-header-definitive.module.js +0 -23
  1292. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-date.component.js +0 -86
  1293. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-date.module.js +0 -23
  1294. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-method.component.js +0 -97
  1295. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-method.module.js +0 -29
  1296. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.component.js +0 -74
  1297. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.module.js +0 -23
  1298. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-amount.component.js +0 -84
  1299. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-amount.module.js +0 -23
  1300. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-percentage.component.js +0 -84
  1301. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-percentage.module.js +0 -23
  1302. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-transaction-total.component.js +0 -85
  1303. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-transaction-total.module.js +0 -23
  1304. package/esm2015/lib/component/transaction-header-fields/transaction-header-downpayment-amount.component.js +0 -83
  1305. package/esm2015/lib/component/transaction-header-fields/transaction-header-downpayment-amount.module.js +0 -23
  1306. package/esm2015/lib/component/transaction-header-fields/transaction-header-downpayment-percentage.component.js +0 -83
  1307. package/esm2015/lib/component/transaction-header-fields/transaction-header-downpayment-percentage.module.js +0 -23
  1308. package/esm2015/lib/component/transaction-header-fields/transaction-header-marketing.component.js +0 -51
  1309. package/esm2015/lib/component/transaction-header-fields/transaction-header-marketing.module.js +0 -26
  1310. package/esm2015/lib/component/transaction-header-fields/transaction-header-partial-delivery.component.js +0 -54
  1311. package/esm2015/lib/component/transaction-header-fields/transaction-header-partial-delivery.module.js +0 -23
  1312. package/esm2015/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.component.js +0 -86
  1313. package/esm2015/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.module.js +0 -23
  1314. package/esm2015/lib/component/transaction-header-fields/transaction-header-reference.component.js +0 -82
  1315. package/esm2015/lib/component/transaction-header-fields/transaction-header-reference.module.js +0 -23
  1316. package/esm2015/lib/component/transaction-header-fields/transaction-header-relation-reference.component.js +0 -82
  1317. package/esm2015/lib/component/transaction-header-fields/transaction-header-relation-reference.module.js +0 -23
  1318. package/esm2015/lib/component/transaction-header-fields/transaction-header-remarks.component.js +0 -82
  1319. package/esm2015/lib/component/transaction-header-fields/transaction-header-remarks.module.js +0 -23
  1320. package/esm2015/lib/component/transaction-history-grid-status/transaction-history-grid-status.component.js +0 -49
  1321. package/esm2015/lib/component/transaction-history-grid-status/transaction-history-grid-status.module.js +0 -23
  1322. package/esm2015/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.js +0 -92
  1323. package/esm2015/lib/component/transaction-line/transaction-base-line/transaction-base-line.module.js +0 -26
  1324. package/esm2015/lib/component/transaction-line/transaction-goods-allocation-line/service/transaction-allocate-goods.service.js +0 -63
  1325. package/esm2015/lib/component/transaction-line/transaction-goods-allocation-line/transaction-goods-allocation-line.component.js +0 -109
  1326. package/esm2015/lib/component/transaction-line/transaction-goods-allocation-line/transaction-goods-allocation-line.module.js +0 -33
  1327. package/esm2015/lib/component/transaction-line/transaction-line/transaction-line.component.js +0 -100
  1328. package/esm2015/lib/component/transaction-line/transaction-line/transaction-line.module.js +0 -21
  1329. package/esm2015/lib/component/transaction-line/transaction-order-delivery-line/service/transaction-order-delivery.service.js +0 -15
  1330. package/esm2015/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.component.js +0 -122
  1331. package/esm2015/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.module.js +0 -36
  1332. package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.js +0 -123
  1333. package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.module.js +0 -59
  1334. package/esm2015/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.component.js +0 -93
  1335. package/esm2015/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.module.js +0 -46
  1336. package/esm2015/lib/component/transaction-line/transaction-receive-goods-line/service/transaction-receive-goods.service.js +0 -68
  1337. package/esm2015/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.component.js +0 -115
  1338. package/esm2015/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.module.js +0 -34
  1339. package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.js +0 -192
  1340. package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.module.js +0 -30
  1341. package/esm2015/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.component.js +0 -53
  1342. package/esm2015/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.module.js +0 -25
  1343. package/esm2015/lib/component/transaction-line-fields/transaction-line-amount.component.js +0 -47
  1344. package/esm2015/lib/component/transaction-line-fields/transaction-line-amount.module.js +0 -21
  1345. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-button.component.js +0 -48
  1346. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-button.module.js +0 -23
  1347. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.component.js +0 -55
  1348. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.module.js +0 -26
  1349. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-button.component.js +0 -54
  1350. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-button.module.js +0 -23
  1351. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date-button.component.js +0 -33
  1352. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date-button.module.js +0 -23
  1353. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date.component.js +0 -86
  1354. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date.module.js +0 -23
  1355. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-method.component.js +0 -52
  1356. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-method.module.js +0 -26
  1357. package/esm2015/lib/component/transaction-line-fields/transaction-line-description.component.js +0 -90
  1358. package/esm2015/lib/component/transaction-line-fields/transaction-line-description.module.js +0 -24
  1359. package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-amount.component.js +0 -53
  1360. package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-amount.module.js +0 -23
  1361. package/esm2015/lib/component/transaction-line-fields/transaction-line-line-discount.component.js +0 -53
  1362. package/esm2015/lib/component/transaction-line-fields/transaction-line-line-discount.module.js +0 -23
  1363. package/esm2015/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.component.js +0 -90
  1364. package/esm2015/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.module.js +0 -23
  1365. package/esm2015/lib/component/transaction-line-fields/transaction-line-price-list.component.js +0 -52
  1366. package/esm2015/lib/component/transaction-line-fields/transaction-line-price-list.module.js +0 -26
  1367. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantity.component.js +0 -36
  1368. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantity.module.js +0 -23
  1369. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantum-discount.component.js +0 -53
  1370. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantum-discount.module.js +0 -23
  1371. package/esm2015/lib/component/transaction-line-fields/transaction-line-reference.component.js +0 -51
  1372. package/esm2015/lib/component/transaction-line-fields/transaction-line-reference.module.js +0 -23
  1373. package/esm2015/lib/component/transaction-line-fields/transaction-line-special-discount.component.js +0 -53
  1374. package/esm2015/lib/component/transaction-line-fields/transaction-line-special-discount.module.js +0 -23
  1375. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-button.component.js +0 -60
  1376. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-button.module.js +0 -28
  1377. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier.component.js +0 -57
  1378. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier.module.js +0 -25
  1379. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.component.js +0 -49
  1380. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.module.js +0 -28
  1381. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-button.component.js +0 -60
  1382. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-button.module.js +0 -23
  1383. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.component.js +0 -58
  1384. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.module.js +0 -21
  1385. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-location.component.js +0 -45
  1386. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-location.module.js +0 -23
  1387. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.component.js +0 -52
  1388. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.module.js +0 -27
  1389. package/esm2015/lib/component/transaction-line-grid/transaction-line-grid.component.js +0 -23
  1390. package/esm2015/lib/component/transaction-line-grid/transaction-line-grid.module.js +0 -21
  1391. package/esm2015/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.component.js +0 -99
  1392. package/esm2015/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.module.js +0 -27
  1393. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js +0 -118
  1394. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.js +0 -41
  1395. package/esm2015/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.js +0 -114
  1396. package/esm2015/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.module.js +0 -60
  1397. package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.js +0 -119
  1398. package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.module.js +0 -35
  1399. package/esm2015/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales.component.js +0 -81
  1400. package/esm2015/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales.module.js +0 -25
  1401. package/esm2015/lib/component/transaction-line-statusbar/transaction-line-statusbar.component.js +0 -111
  1402. package/esm2015/lib/component/transaction-line-statusbar/transaction-line-statusbar.module.js +0 -23
  1403. package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +0 -177
  1404. package/esm2015/lib/component/transaction-lines/transaction-lines.module.js +0 -32
  1405. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.component.js +0 -87
  1406. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.module.js +0 -41
  1407. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/transaction-quick-access-goods-allocation.component.js +0 -69
  1408. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/transaction-quick-access-goods-allocation.module.js +0 -25
  1409. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.component.js +0 -44
  1410. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.module.js +0 -29
  1411. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.component.js +0 -65
  1412. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.module.js +0 -28
  1413. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.component.js +0 -56
  1414. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.module.js +0 -28
  1415. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.component.js +0 -128
  1416. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.module.js +0 -31
  1417. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/transaction-quick-access-purchase-order-overview.component.js +0 -128
  1418. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/transaction-quick-access-purchase-order-overview.module.js +0 -29
  1419. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.component.js +0 -91
  1420. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.module.js +0 -27
  1421. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-send-method-base.component.js +0 -110
  1422. package/esm2015/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.component.js +0 -78
  1423. package/esm2015/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.module.js +0 -30
  1424. package/esm2015/lib/component/transaction-search/service/filter-request.service.js +0 -172
  1425. package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +0 -114
  1426. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.component.js +0 -96
  1427. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.module.js +0 -19
  1428. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.component.js +0 -56
  1429. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.module.js +0 -34
  1430. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.component.js +0 -56
  1431. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.module.js +0 -34
  1432. package/esm2015/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.component.js +0 -42
  1433. package/esm2015/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.module.js +0 -19
  1434. package/esm2015/lib/component/transaction-search/transaction-filter-content/enum/search-placeholder.enum.js +0 -27
  1435. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.component.js +0 -143
  1436. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.module.js +0 -29
  1437. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.component.js +0 -236
  1438. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.module.js +0 -35
  1439. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.component.js +0 -225
  1440. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.module.js +0 -34
  1441. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.component.js +0 -133
  1442. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.module.js +0 -29
  1443. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.component.js +0 -235
  1444. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.module.js +0 -35
  1445. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.component.js +0 -248
  1446. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.module.js +0 -34
  1447. package/esm2015/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.component.js +0 -55
  1448. package/esm2015/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.module.js +0 -26
  1449. package/esm2015/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.component.js +0 -64
  1450. package/esm2015/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.module.js +0 -23
  1451. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/transaction-search-grid.component.js +0 -81
  1452. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/transaction-search-grid.module.js +0 -19
  1453. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.component.js +0 -84
  1454. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.module.js +0 -25
  1455. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.component.js +0 -84
  1456. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.module.js +0 -27
  1457. package/esm2015/lib/component/transaction-search/transaction-search-header/transaction-search-header.component.js +0 -126
  1458. package/esm2015/lib/component/transaction-search/transaction-search-header/transaction-search-header.module.js +0 -27
  1459. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.js +0 -119
  1460. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.js +0 -44
  1461. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.component.js +0 -67
  1462. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.module.js +0 -29
  1463. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.component.js +0 -74
  1464. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.module.js +0 -32
  1465. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.component.js +0 -89
  1466. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.module.js +0 -19
  1467. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-statusbar/transaction-statusbar.component.js +0 -79
  1468. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-statusbar/transaction-statusbar.module.js +0 -23
  1469. package/esm2015/lib/component/transaction-search/transaction-search.component.js +0 -146
  1470. package/esm2015/lib/component/transaction-search/transaction-search.module.js +0 -32
  1471. package/esm2015/lib/component/transaction-side-panel-edit-request-details/components/allocation-request.component.js +0 -144
  1472. package/esm2015/lib/component/transaction-side-panel-edit-request-details/components/receive-goods-request.component.js +0 -201
  1473. package/esm2015/lib/component/transaction-side-panel-edit-request-details/transaction-side-panel-edit-request-details.component.js +0 -50
  1474. package/esm2015/lib/component/transaction-side-panel-edit-request-details/transaction-side-panel-edit-request-details.module.js +0 -35
  1475. package/esm2015/lib/component/transaction-tile/transaction-tile.component.js +0 -121
  1476. package/esm2015/lib/component/transaction-tile/transaction-tile.module.js +0 -30
  1477. package/esm2015/lib/component/transaction-totals/transaction-totals.component.js +0 -51
  1478. package/esm2015/lib/component/transaction-totals/transaction-totals.module.js +0 -25
  1479. package/esm2015/lib/component/view-mode-buttons/view-mode-buttons.component.js +0 -61
  1480. package/esm2015/lib/component/view-mode-buttons/view-mode-buttons.module.js +0 -23
  1481. package/esm2015/lib/enum/content-view-mode.enum.js +0 -11
  1482. package/esm2015/lib/enum/direction.enum.js +0 -9
  1483. package/esm2015/lib/enum/icon.enum.js +0 -84
  1484. package/esm2015/lib/enum/language-code.enum.js +0 -8
  1485. package/esm2015/lib/enum/order-discount-type.enum.js +0 -7
  1486. package/esm2015/lib/enum/position-grid-row.enum.js +0 -6
  1487. package/esm2015/lib/enum/search-view-mode.enum.js +0 -7
  1488. package/esm2015/lib/enum/searchbar-view-mode.enum.js +0 -7
  1489. package/esm2015/lib/enum/status-type.enum.js +0 -7
  1490. package/esm2015/lib/enum/time-size.type.js +0 -10
  1491. package/esm2015/lib/enum/transaction-type-category.enum.js +0 -17
  1492. package/esm2015/lib/interface/dialog-response.interface.js +0 -2
  1493. package/esm2015/lib/model/down-payment-view-model.js +0 -7
  1494. package/esm2015/lib/model/extended-transaction-line-view-model.js +0 -4
  1495. package/esm2015/lib/model/filter-item.viewmodel.js +0 -9
  1496. package/esm2015/lib/model/filter-viewmodel.js +0 -11
  1497. package/esm2015/lib/model/icon-svg.js +0 -83
  1498. package/esm2015/lib/model/payment.viewmodel.js +0 -6
  1499. package/esm2015/lib/model/received-goods-view-model.js +0 -11
  1500. package/esm2015/lib/model/relation-any-type.js +0 -3
  1501. package/esm2015/lib/model/standard-text.js +0 -3
  1502. package/esm2015/lib/model/text-value-container.js +0 -3
  1503. package/esm2015/lib/model/transaction-bar-button.js +0 -2
  1504. package/esm2015/lib/model/transaction-search-result.js +0 -3
  1505. package/esm2015/lib/pipe/append.pipe.js +0 -17
  1506. package/esm2015/lib/pipe/co-currency.pipe.js +0 -47
  1507. package/esm2015/lib/pipe/date-duration.pipe.js +0 -57
  1508. package/esm2015/lib/pipe/delivery-time.pipe.js +0 -36
  1509. package/esm2015/lib/pipe/localize.pipe.js +0 -28
  1510. package/esm2015/lib/pipe/pipe.module.js +0 -37
  1511. package/esm2015/lib/pipe/safe-html.pipe.js +0 -19
  1512. package/esm2015/lib/pipe/safe-style.pipe.js +0 -19
  1513. package/esm2015/lib/service/article-connector.service.js +0 -106
  1514. package/esm2015/lib/service/article.service.js +0 -33
  1515. package/esm2015/lib/service/dialog.service.js +0 -116
  1516. package/esm2015/lib/service/dictionary.service.js +0 -76
  1517. package/esm2015/lib/service/dynamic-component.service.js +0 -71
  1518. package/esm2015/lib/service/error.service.js +0 -68
  1519. package/esm2015/lib/service/icon-cache.service.js +0 -51
  1520. package/esm2015/lib/service/options.service.js +0 -71
  1521. package/esm2015/lib/service/payment.service.js +0 -105
  1522. package/esm2015/lib/service/pending-reason.service.js +0 -310
  1523. package/esm2015/lib/service/relation-connector.service.js +0 -222
  1524. package/esm2015/lib/service/relation.service.js +0 -158
  1525. package/esm2015/lib/service/shared-connector.service.js +0 -53
  1526. package/esm2015/lib/service/shared.service.js +0 -42
  1527. package/esm2015/lib/service/transaction-connector-adapter.service.js +0 -1807
  1528. package/esm2015/lib/service/transaction-connector.service.js +0 -667
  1529. package/esm2015/lib/service/transaction-event.service.js +0 -35
  1530. package/esm2015/lib/service/transaction-image.service.js +0 -53
  1531. package/esm2015/lib/service/transaction-mapping.service.js +0 -178
  1532. package/esm2015/lib/service/transaction.service.js +0 -845
  1533. package/esm2015/public_api.js +0 -46
  1534. package/fesm2015/colijnit-transaction.js +0 -25177
  1535. package/fesm2015/colijnit-transaction.js.map +0 -1
  1536. package/lib/assets/dictionary/text.properties.d.ts +0 -3
  1537. package/lib/cache/cache-field.d.ts +0 -25
  1538. package/lib/cache/parameter-cache-field.d.ts +0 -11
  1539. package/lib/cache/service/business-object-cache-manager.service.d.ts +0 -58
  1540. package/lib/cache/service/select-multiple-cache.service.d.ts +0 -15
  1541. package/lib/cache/service/select-multiple-parameterized-cache.service.d.ts +0 -19
  1542. package/lib/cache/service/select-single-cache.service.d.ts +0 -12
  1543. package/lib/component/animated-checkbox/animated-checkbox.component.d.ts +0 -5
  1544. package/lib/component/animated-checkbox/animated-checkbox.module.d.ts +0 -2
  1545. package/lib/component/avatar/avatar.component.d.ts +0 -31
  1546. package/lib/component/avatar/avatar.module.d.ts +0 -2
  1547. package/lib/component/checkout/checkout-login/checkout-login.component.d.ts +0 -21
  1548. package/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.d.ts +0 -11
  1549. package/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.d.ts +0 -65
  1550. package/lib/component/checkout/checkout-overview-payment/checkout-overview-payment.component.d.ts +0 -21
  1551. package/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +0 -38
  1552. package/lib/component/checkout/checkout.component.d.ts +0 -48
  1553. package/lib/component/checkout/checkout.module.d.ts +0 -2
  1554. package/lib/component/confirmation-dialog/confirmation-dialog.component.d.ts +0 -18
  1555. package/lib/component/confirmation-dialog/confirmation-dialog.module.d.ts +0 -2
  1556. package/lib/component/core/base/components/characteristic-answer/characteristic-answer.component.d.ts +0 -21
  1557. package/lib/component/core/base/components/characteristic-answer/characteristic-answer.module.d.ts +0 -2
  1558. package/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.component.d.ts +0 -13
  1559. package/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.module.d.ts +0 -2
  1560. package/lib/component/core/base/components/transaction-header-block/transaction-header-block.component.d.ts +0 -10
  1561. package/lib/component/core/base/components/transaction-header-block/transaction-header-block.module.d.ts +0 -2
  1562. package/lib/component/core/base/components/warehouse/warehouse.component.d.ts +0 -20
  1563. package/lib/component/core/base/components/warehouse/warehouse.module.d.ts +0 -2
  1564. package/lib/component/core/base/dialog-base.component.d.ts +0 -4
  1565. package/lib/component/core/base/dialog-transaction-header-base.component.d.ts +0 -13
  1566. package/lib/component/core/base/dialog-transaction-line-base.component.d.ts +0 -16
  1567. package/lib/component/core/base/dynamic-base-component.d.ts +0 -3
  1568. package/lib/component/core/base/transaction-base.component.d.ts +0 -30
  1569. package/lib/component/core/base/transaction-filter-base.component.d.ts +0 -26
  1570. package/lib/component/core/base/transaction-filter-content-base.component.d.ts +0 -21
  1571. package/lib/component/core/base/transaction-filter-popup-base.component.d.ts +0 -37
  1572. package/lib/component/core/base/transaction-grid-base.component.d.ts +0 -25
  1573. package/lib/component/core/base/transaction-header-base.component.d.ts +0 -16
  1574. package/lib/component/core/base/transaction-header-filter-popup-base.component.d.ts +0 -38
  1575. package/lib/component/core/base/transaction-line-base.component.d.ts +0 -16
  1576. package/lib/component/core/base/transaction-lines-line-base.component.d.ts +0 -23
  1577. package/lib/component/core/base/transaction-search-grid-base.component.d.ts +0 -11
  1578. package/lib/component/core/base/transaction-search-tile-base.component.d.ts +0 -13
  1579. package/lib/component/core/core.module.d.ts +0 -2
  1580. package/lib/component/core/directive/lazy-render-master.directive.d.ts +0 -10
  1581. package/lib/component/core/directive/lazy-render.directive.d.ts +0 -10
  1582. package/lib/component/core/enum/app-popup-button-type.enum.d.ts +0 -9
  1583. package/lib/component/core/enum/app-popup-type.enum.d.ts +0 -6
  1584. package/lib/component/core/icon/icon.component.d.ts +0 -12
  1585. package/lib/component/core/image-display/image-display.component.d.ts +0 -5
  1586. package/lib/component/core/relation/customer-groups.component.d.ts +0 -14
  1587. package/lib/component/core/stock-status-indicator/stock-status-indicator.component.d.ts +0 -5
  1588. package/lib/component/delivery-type-tile/delivery-type-tile.component.d.ts +0 -10
  1589. package/lib/component/delivery-type-tile/delivery-type-tile.module.d.ts +0 -2
  1590. package/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.d.ts +0 -15
  1591. package/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.module.d.ts +0 -2
  1592. package/lib/component/dialog/dialog-header-search/dialog-header-search.component.d.ts +0 -10
  1593. package/lib/component/dialog/dialog-header-search/dialog-header-search.module.d.ts +0 -2
  1594. package/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.component.d.ts +0 -4
  1595. package/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.module.d.ts +0 -2
  1596. package/lib/component/dialog/transaction-header/dialog-transaction-header-discount/dialog-transaction-header-discount.component.d.ts +0 -8
  1597. package/lib/component/dialog/transaction-header/dialog-transaction-header-discount/dialog-transaction-header-discount.module.d.ts +0 -2
  1598. package/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/dialog-transaction-line-commission-code.component.d.ts +0 -4
  1599. package/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/dialog-transaction-line-commission-code.module.d.ts +0 -2
  1600. package/lib/component/dialog/transaction-line/dialog-transaction-line-delivery-method/dialog-transaction-line-delivery-method.component.d.ts +0 -4
  1601. package/lib/component/dialog/transaction-line/dialog-transaction-line-delivery-method/dialog-transaction-line-delivery-method.module.d.ts +0 -2
  1602. package/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.component.d.ts +0 -14
  1603. package/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.module.d.ts +0 -2
  1604. package/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.component.d.ts +0 -4
  1605. package/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.module.d.ts +0 -2
  1606. package/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.component.d.ts +0 -4
  1607. package/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.module.d.ts +0 -2
  1608. package/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.component.d.ts +0 -4
  1609. package/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.module.d.ts +0 -2
  1610. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.component.d.ts +0 -4
  1611. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.module.d.ts +0 -2
  1612. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.component.d.ts +0 -12
  1613. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.module.d.ts +0 -2
  1614. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/dialog-transaction-line-warehouse-location.component.d.ts +0 -6
  1615. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/dialog-transaction-line-warehouse-location.module.d.ts +0 -2
  1616. package/lib/component/discount/discount.component.d.ts +0 -19
  1617. package/lib/component/discount/discount.module.d.ts +0 -2
  1618. package/lib/component/down-payment/down-payment.component.d.ts +0 -16
  1619. package/lib/component/down-payment/down-payment.module.d.ts +0 -2
  1620. package/lib/component/editable-label/editable-label.component.d.ts +0 -16
  1621. package/lib/component/editable-label/editable-label.module.d.ts +0 -2
  1622. package/lib/component/loader/loader.component.d.ts +0 -3
  1623. package/lib/component/loader/loader.module.d.ts +0 -2
  1624. package/lib/component/payment/payment.component.d.ts +0 -58
  1625. package/lib/component/payment/payment.module.d.ts +0 -2
  1626. package/lib/component/payment-qr-code/payment-qr-code.component.d.ts +0 -4
  1627. package/lib/component/payment-qr-code/payment-qr-code.module.d.ts +0 -2
  1628. package/lib/component/payment-tile/payment-tile.component.d.ts +0 -10
  1629. package/lib/component/payment-tile/payment-tile.module.d.ts +0 -2
  1630. package/lib/component/quick-send-button/quick-send-button.component.d.ts +0 -15
  1631. package/lib/component/quick-send-button/quick-send-button.module.d.ts +0 -2
  1632. package/lib/component/relation/relation-address/relation-address.component.d.ts +0 -25
  1633. package/lib/component/relation/relation-address/relation-address.module.d.ts +0 -2
  1634. package/lib/component/relation/relation-address-select/relation-address-select.component.d.ts +0 -33
  1635. package/lib/component/relation/relation-address-select/relation-address-select.module.d.ts +0 -2
  1636. package/lib/component/relation/relation-address-tile/relation-address-tile.component.d.ts +0 -15
  1637. package/lib/component/relation/relation-address-tile/relation-address-tile.module.d.ts +0 -2
  1638. package/lib/component/relation/relation-addresses/relation-addresses.component.d.ts +0 -27
  1639. package/lib/component/relation/relation-addresses/relation-addresses.module.d.ts +0 -2
  1640. package/lib/component/relation/relation-base.component.d.ts +0 -13
  1641. package/lib/component/relation/relation-contact-details/relation-contact-details.component.d.ts +0 -12
  1642. package/lib/component/relation/relation-contact-details/relation-contact-details.module.d.ts +0 -2
  1643. package/lib/component/relation/relation-general/relation-general.component.d.ts +0 -34
  1644. package/lib/component/relation/relation-general/relation-general.module.d.ts +0 -2
  1645. package/lib/component/relation/relation-preferences/relation-preferences.component.d.ts +0 -15
  1646. package/lib/component/relation/relation-preferences/relation-preferences.module.d.ts +0 -2
  1647. package/lib/component/relation/relation-suggestions-list/relation-suggestions-list.component.d.ts +0 -7
  1648. package/lib/component/relation/relation-suggestions-list/relation-suggestions-list.module.d.ts +0 -2
  1649. package/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.component.d.ts +0 -8
  1650. package/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.module.d.ts +0 -2
  1651. package/lib/component/relation/relation-type/relation-type.component.d.ts +0 -11
  1652. package/lib/component/relation/relation-type/relation-type.module.d.ts +0 -2
  1653. package/lib/component/shared/transaction-article-text/transaction-article-text.component.d.ts +0 -44
  1654. package/lib/component/shared/transaction-article-text/transaction-article-text.module.d.ts +0 -2
  1655. package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +0 -29
  1656. package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.d.ts +0 -2
  1657. package/lib/component/shopping-cart/shopping-cart.component.d.ts +0 -17
  1658. package/lib/component/shopping-cart/shopping-cart.module.d.ts +0 -2
  1659. package/lib/component/shopping-cart-preview/shopping-cart-preview.component.d.ts +0 -13
  1660. package/lib/component/shopping-cart-preview/shopping-cart-preview.module.d.ts +0 -2
  1661. package/lib/component/stepper/component/stepper-step.component.d.ts +0 -12
  1662. package/lib/component/stepper/stepper.component.d.ts +0 -36
  1663. package/lib/component/stepper/stepper.module.d.ts +0 -2
  1664. package/lib/component/tile/tile.component.d.ts +0 -6
  1665. package/lib/component/tile/tile.module.d.ts +0 -2
  1666. package/lib/component/transaction/style/_layout.scss +0 -56
  1667. package/lib/component/transaction/style/material.scss +0 -13
  1668. package/lib/component/transaction/transaction.component.d.ts +0 -45
  1669. package/lib/component/transaction/transaction.module.d.ts +0 -2
  1670. package/lib/component/transaction-allocate-goods-history/transaction-allocate-goods-history.component.d.ts +0 -18
  1671. package/lib/component/transaction-allocate-goods-history/transaction-allocate-goods-history.module.d.ts +0 -2
  1672. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button-base.component.d.ts +0 -16
  1673. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.d.ts +0 -18
  1674. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-purchase-button-bar-button.component.d.ts +0 -12
  1675. package/lib/component/transaction-button-bar/transaction-button-bar.component.d.ts +0 -19
  1676. package/lib/component/transaction-button-bar/transaction-button-bar.module.d.ts +0 -2
  1677. package/lib/component/transaction-confirmation-details/transaction-confirmation-details.component.d.ts +0 -24
  1678. package/lib/component/transaction-confirmation-details/transaction-confirmation-details.module.d.ts +0 -2
  1679. package/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.d.ts +0 -30
  1680. package/lib/component/transaction-confirmation-history/transaction-confirmation-history.module.d.ts +0 -2
  1681. package/lib/component/transaction-grid/transaction-available-stock-grid/transaction-available-stock-grid.component.d.ts +0 -26
  1682. package/lib/component/transaction-grid/transaction-available-stock-grid/transaction-available-stock-grid.module.d.ts +0 -2
  1683. package/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.component.d.ts +0 -8
  1684. package/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.module.d.ts +0 -2
  1685. package/lib/component/transaction-grid/transaction-grid/transaction-grid.component.d.ts +0 -26
  1686. package/lib/component/transaction-grid/transaction-grid/transaction-grid.module.d.ts +0 -2
  1687. package/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.component.d.ts +0 -19
  1688. package/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.module.d.ts +0 -2
  1689. package/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.component.d.ts +0 -21
  1690. package/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.module.d.ts +0 -2
  1691. package/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.component.d.ts +0 -4
  1692. package/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.module.d.ts +0 -2
  1693. package/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.component.d.ts +0 -37
  1694. package/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.module.d.ts +0 -2
  1695. package/lib/component/transaction-header/transaction-header/transaction-header.component.d.ts +0 -12
  1696. package/lib/component/transaction-header/transaction-header/transaction-header.module.d.ts +0 -2
  1697. package/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.d.ts +0 -21
  1698. package/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.module.d.ts +0 -2
  1699. package/lib/component/transaction-header/transaction-header-order/style/_layout.scss +0 -51
  1700. package/lib/component/transaction-header/transaction-header-order/style/_material-definition.scss +0 -12
  1701. package/lib/component/transaction-header/transaction-header-order/transaction-header-order.component.d.ts +0 -13
  1702. package/lib/component/transaction-header/transaction-header-order/transaction-header-order.module.d.ts +0 -2
  1703. package/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.d.ts +0 -22
  1704. package/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.module.d.ts +0 -2
  1705. package/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.d.ts +0 -41
  1706. package/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.module.d.ts +0 -2
  1707. package/lib/component/transaction-header-fields/transaction-header-administrative-relation.component.d.ts +0 -14
  1708. package/lib/component/transaction-header-fields/transaction-header-administrative-relation.module.d.ts +0 -2
  1709. package/lib/component/transaction-header-fields/transaction-header-branch.component.d.ts +0 -17
  1710. package/lib/component/transaction-header-fields/transaction-header-branch.module.d.ts +0 -2
  1711. package/lib/component/transaction-header-fields/transaction-header-definitive.component.d.ts +0 -9
  1712. package/lib/component/transaction-header-fields/transaction-header-definitive.module.d.ts +0 -2
  1713. package/lib/component/transaction-header-fields/transaction-header-delivery-date.component.d.ts +0 -17
  1714. package/lib/component/transaction-header-fields/transaction-header-delivery-date.module.d.ts +0 -2
  1715. package/lib/component/transaction-header-fields/transaction-header-delivery-method.component.d.ts +0 -20
  1716. package/lib/component/transaction-header-fields/transaction-header-delivery-method.module.d.ts +0 -2
  1717. package/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.component.d.ts +0 -21
  1718. package/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.module.d.ts +0 -2
  1719. package/lib/component/transaction-header-fields/transaction-header-discount-amount.component.d.ts +0 -17
  1720. package/lib/component/transaction-header-fields/transaction-header-discount-amount.module.d.ts +0 -2
  1721. package/lib/component/transaction-header-fields/transaction-header-discount-percentage.component.d.ts +0 -17
  1722. package/lib/component/transaction-header-fields/transaction-header-discount-percentage.module.d.ts +0 -2
  1723. package/lib/component/transaction-header-fields/transaction-header-discount-transaction-total.component.d.ts +0 -18
  1724. package/lib/component/transaction-header-fields/transaction-header-discount-transaction-total.module.d.ts +0 -2
  1725. package/lib/component/transaction-header-fields/transaction-header-downpayment-amount.component.d.ts +0 -17
  1726. package/lib/component/transaction-header-fields/transaction-header-downpayment-amount.module.d.ts +0 -2
  1727. package/lib/component/transaction-header-fields/transaction-header-downpayment-percentage.component.d.ts +0 -17
  1728. package/lib/component/transaction-header-fields/transaction-header-downpayment-percentage.module.d.ts +0 -2
  1729. package/lib/component/transaction-header-fields/transaction-header-marketing.component.d.ts +0 -14
  1730. package/lib/component/transaction-header-fields/transaction-header-marketing.module.d.ts +0 -2
  1731. package/lib/component/transaction-header-fields/transaction-header-partial-delivery.component.d.ts +0 -11
  1732. package/lib/component/transaction-header-fields/transaction-header-partial-delivery.module.d.ts +0 -2
  1733. package/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.component.d.ts +0 -17
  1734. package/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.module.d.ts +0 -2
  1735. package/lib/component/transaction-header-fields/transaction-header-reference.component.d.ts +0 -17
  1736. package/lib/component/transaction-header-fields/transaction-header-reference.module.d.ts +0 -2
  1737. package/lib/component/transaction-header-fields/transaction-header-relation-reference.component.d.ts +0 -17
  1738. package/lib/component/transaction-header-fields/transaction-header-relation-reference.module.d.ts +0 -2
  1739. package/lib/component/transaction-header-fields/transaction-header-remarks.component.d.ts +0 -17
  1740. package/lib/component/transaction-header-fields/transaction-header-remarks.module.d.ts +0 -2
  1741. package/lib/component/transaction-history-grid-status/transaction-history-grid-status.component.d.ts +0 -11
  1742. package/lib/component/transaction-history-grid-status/transaction-history-grid-status.module.d.ts +0 -2
  1743. package/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.d.ts +0 -20
  1744. package/lib/component/transaction-line/transaction-base-line/transaction-base-line.module.d.ts +0 -2
  1745. package/lib/component/transaction-line/transaction-goods-allocation-line/service/transaction-allocate-goods.service.d.ts +0 -12
  1746. package/lib/component/transaction-line/transaction-goods-allocation-line/transaction-goods-allocation-line.component.d.ts +0 -27
  1747. package/lib/component/transaction-line/transaction-goods-allocation-line/transaction-goods-allocation-line.module.d.ts +0 -2
  1748. package/lib/component/transaction-line/transaction-line/transaction-line.component.d.ts +0 -32
  1749. package/lib/component/transaction-line/transaction-line/transaction-line.module.d.ts +0 -2
  1750. package/lib/component/transaction-line/transaction-order-delivery-line/service/transaction-order-delivery.service.d.ts +0 -4
  1751. package/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.component.d.ts +0 -25
  1752. package/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.module.d.ts +0 -2
  1753. package/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.d.ts +0 -28
  1754. package/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.module.d.ts +0 -2
  1755. package/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.component.d.ts +0 -19
  1756. package/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.module.d.ts +0 -2
  1757. package/lib/component/transaction-line/transaction-receive-goods-line/service/transaction-receive-goods.service.d.ts +0 -19
  1758. package/lib/component/transaction-line/transaction-receive-goods-line/style/_layout.scss +0 -36
  1759. package/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.component.d.ts +0 -27
  1760. package/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.module.d.ts +0 -2
  1761. package/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.d.ts +0 -49
  1762. package/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.module.d.ts +0 -2
  1763. package/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.component.d.ts +0 -20
  1764. package/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.module.d.ts +0 -2
  1765. package/lib/component/transaction-line-fields/transaction-line-amount.component.d.ts +0 -10
  1766. package/lib/component/transaction-line-fields/transaction-line-amount.module.d.ts +0 -2
  1767. package/lib/component/transaction-line-fields/transaction-line-commission-button.component.d.ts +0 -9
  1768. package/lib/component/transaction-line-fields/transaction-line-commission-button.module.d.ts +0 -2
  1769. package/lib/component/transaction-line-fields/transaction-line-commission-code.component.d.ts +0 -15
  1770. package/lib/component/transaction-line-fields/transaction-line-commission-code.module.d.ts +0 -2
  1771. package/lib/component/transaction-line-fields/transaction-line-delivery-button.component.d.ts +0 -13
  1772. package/lib/component/transaction-line-fields/transaction-line-delivery-button.module.d.ts +0 -2
  1773. package/lib/component/transaction-line-fields/transaction-line-delivery-date-button.component.d.ts +0 -10
  1774. package/lib/component/transaction-line-fields/transaction-line-delivery-date-button.module.d.ts +0 -2
  1775. package/lib/component/transaction-line-fields/transaction-line-delivery-date.component.d.ts +0 -17
  1776. package/lib/component/transaction-line-fields/transaction-line-delivery-date.module.d.ts +0 -2
  1777. package/lib/component/transaction-line-fields/transaction-line-delivery-method.component.d.ts +0 -14
  1778. package/lib/component/transaction-line-fields/transaction-line-delivery-method.module.d.ts +0 -2
  1779. package/lib/component/transaction-line-fields/transaction-line-description.component.d.ts +0 -21
  1780. package/lib/component/transaction-line-fields/transaction-line-description.module.d.ts +0 -2
  1781. package/lib/component/transaction-line-fields/transaction-line-discount-amount.component.d.ts +0 -10
  1782. package/lib/component/transaction-line-fields/transaction-line-discount-amount.module.d.ts +0 -2
  1783. package/lib/component/transaction-line-fields/transaction-line-line-discount.component.d.ts +0 -10
  1784. package/lib/component/transaction-line-fields/transaction-line-line-discount.module.d.ts +0 -2
  1785. package/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.component.d.ts +0 -18
  1786. package/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.module.d.ts +0 -2
  1787. package/lib/component/transaction-line-fields/transaction-line-price-list.component.d.ts +0 -14
  1788. package/lib/component/transaction-line-fields/transaction-line-price-list.module.d.ts +0 -2
  1789. package/lib/component/transaction-line-fields/transaction-line-quantity.component.d.ts +0 -7
  1790. package/lib/component/transaction-line-fields/transaction-line-quantity.module.d.ts +0 -2
  1791. package/lib/component/transaction-line-fields/transaction-line-quantum-discount.component.d.ts +0 -10
  1792. package/lib/component/transaction-line-fields/transaction-line-quantum-discount.module.d.ts +0 -2
  1793. package/lib/component/transaction-line-fields/transaction-line-reference.component.d.ts +0 -10
  1794. package/lib/component/transaction-line-fields/transaction-line-reference.module.d.ts +0 -2
  1795. package/lib/component/transaction-line-fields/transaction-line-special-discount.component.d.ts +0 -10
  1796. package/lib/component/transaction-line-fields/transaction-line-special-discount.module.d.ts +0 -2
  1797. package/lib/component/transaction-line-fields/transaction-line-supplier-button.component.d.ts +0 -12
  1798. package/lib/component/transaction-line-fields/transaction-line-supplier-button.module.d.ts +0 -2
  1799. package/lib/component/transaction-line-fields/transaction-line-supplier.component.d.ts +0 -16
  1800. package/lib/component/transaction-line-fields/transaction-line-supplier.module.d.ts +0 -2
  1801. package/lib/component/transaction-line-fields/transaction-line-vat.component.d.ts +0 -13
  1802. package/lib/component/transaction-line-fields/transaction-line-vat.module.d.ts +0 -2
  1803. package/lib/component/transaction-line-fields/transaction-line-warehouse-button.component.d.ts +0 -15
  1804. package/lib/component/transaction-line-fields/transaction-line-warehouse-button.module.d.ts +0 -2
  1805. package/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.component.d.ts +0 -18
  1806. package/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.module.d.ts +0 -2
  1807. package/lib/component/transaction-line-fields/transaction-line-warehouse-location.component.d.ts +0 -13
  1808. package/lib/component/transaction-line-fields/transaction-line-warehouse-location.module.d.ts +0 -2
  1809. package/lib/component/transaction-line-fields/transaction-line-warehouse.component.d.ts +0 -14
  1810. package/lib/component/transaction-line-fields/transaction-line-warehouse.module.d.ts +0 -2
  1811. package/lib/component/transaction-line-grid/transaction-line-grid.component.d.ts +0 -5
  1812. package/lib/component/transaction-line-grid/transaction-line-grid.module.d.ts +0 -2
  1813. package/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.component.d.ts +0 -29
  1814. package/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.module.d.ts +0 -2
  1815. package/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.d.ts +0 -27
  1816. package/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.d.ts +0 -2
  1817. package/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.d.ts +0 -21
  1818. package/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.module.d.ts +0 -2
  1819. package/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.d.ts +0 -28
  1820. package/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.module.d.ts +0 -2
  1821. package/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales.component.d.ts +0 -20
  1822. package/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales.module.d.ts +0 -2
  1823. package/lib/component/transaction-line-statusbar/transaction-line-statusbar.component.d.ts +0 -30
  1824. package/lib/component/transaction-line-statusbar/transaction-line-statusbar.module.d.ts +0 -2
  1825. package/lib/component/transaction-lines/transaction-lines.component.d.ts +0 -48
  1826. package/lib/component/transaction-lines/transaction-lines.module.d.ts +0 -2
  1827. package/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.component.d.ts +0 -28
  1828. package/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.module.d.ts +0 -2
  1829. package/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/transaction-quick-access-goods-allocation.component.d.ts +0 -20
  1830. package/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/transaction-quick-access-goods-allocation.module.d.ts +0 -2
  1831. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.component.d.ts +0 -7
  1832. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.module.d.ts +0 -2
  1833. package/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.component.d.ts +0 -19
  1834. package/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.module.d.ts +0 -2
  1835. package/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.component.d.ts +0 -14
  1836. package/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.module.d.ts +0 -2
  1837. package/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.component.d.ts +0 -33
  1838. package/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.module.d.ts +0 -2
  1839. package/lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/transaction-quick-access-purchase-order-overview.component.d.ts +0 -33
  1840. package/lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/transaction-quick-access-purchase-order-overview.module.d.ts +0 -2
  1841. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.component.d.ts +0 -34
  1842. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.module.d.ts +0 -2
  1843. package/lib/component/transaction-quick-access/transaction-quick-access-send-method-base.component.d.ts +0 -43
  1844. package/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.component.d.ts +0 -17
  1845. package/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.module.d.ts +0 -2
  1846. package/lib/component/transaction-search/service/filter-request.service.d.ts +0 -87
  1847. package/lib/component/transaction-search/service/transaction-search.service.d.ts +0 -37
  1848. package/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.component.d.ts +0 -26
  1849. package/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.module.d.ts +0 -2
  1850. package/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.component.d.ts +0 -9
  1851. package/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.module.d.ts +0 -2
  1852. package/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.component.d.ts +0 -9
  1853. package/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.module.d.ts +0 -2
  1854. package/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.component.d.ts +0 -10
  1855. package/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.module.d.ts +0 -2
  1856. package/lib/component/transaction-search/transaction-filter-content/enum/search-placeholder.enum.d.ts +0 -25
  1857. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.component.d.ts +0 -40
  1858. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.module.d.ts +0 -2
  1859. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.component.d.ts +0 -36
  1860. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.module.d.ts +0 -2
  1861. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.component.d.ts +0 -50
  1862. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.module.d.ts +0 -2
  1863. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.component.d.ts +0 -40
  1864. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.module.d.ts +0 -2
  1865. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.component.d.ts +0 -36
  1866. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.module.d.ts +0 -2
  1867. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.component.d.ts +0 -57
  1868. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.module.d.ts +0 -2
  1869. package/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.component.d.ts +0 -24
  1870. package/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.module.d.ts +0 -2
  1871. package/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.component.d.ts +0 -21
  1872. package/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.module.d.ts +0 -2
  1873. package/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/transaction-search-grid.component.d.ts +0 -22
  1874. package/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/transaction-search-grid.module.d.ts +0 -2
  1875. package/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.component.d.ts +0 -7
  1876. package/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.module.d.ts +0 -2
  1877. package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.component.d.ts +0 -7
  1878. package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.module.d.ts +0 -2
  1879. package/lib/component/transaction-search/transaction-search-header/transaction-search-header.component.d.ts +0 -36
  1880. package/lib/component/transaction-search/transaction-search-header/transaction-search-header.module.d.ts +0 -2
  1881. package/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.d.ts +0 -32
  1882. package/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.d.ts +0 -2
  1883. package/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.component.d.ts +0 -3
  1884. package/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.module.d.ts +0 -2
  1885. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.component.d.ts +0 -6
  1886. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.module.d.ts +0 -2
  1887. package/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.component.d.ts +0 -25
  1888. package/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.module.d.ts +0 -2
  1889. package/lib/component/transaction-search/transaction-search-tile/transaction-statusbar/transaction-statusbar.component.d.ts +0 -22
  1890. package/lib/component/transaction-search/transaction-search-tile/transaction-statusbar/transaction-statusbar.module.d.ts +0 -2
  1891. package/lib/component/transaction-search/transaction-search.component.d.ts +0 -32
  1892. package/lib/component/transaction-search/transaction-search.module.d.ts +0 -2
  1893. package/lib/component/transaction-side-panel-edit-request-details/components/allocation-request.component.d.ts +0 -35
  1894. package/lib/component/transaction-side-panel-edit-request-details/components/receive-goods-request.component.d.ts +0 -48
  1895. package/lib/component/transaction-side-panel-edit-request-details/transaction-side-panel-edit-request-details.component.d.ts +0 -15
  1896. package/lib/component/transaction-side-panel-edit-request-details/transaction-side-panel-edit-request-details.module.d.ts +0 -2
  1897. package/lib/component/transaction-tile/transaction-tile.component.d.ts +0 -24
  1898. package/lib/component/transaction-tile/transaction-tile.module.d.ts +0 -2
  1899. package/lib/component/transaction-totals/transaction-totals.component.d.ts +0 -12
  1900. package/lib/component/transaction-totals/transaction-totals.module.d.ts +0 -2
  1901. package/lib/component/view-mode-buttons/view-mode-buttons.component.d.ts +0 -17
  1902. package/lib/component/view-mode-buttons/view-mode-buttons.module.d.ts +0 -2
  1903. package/lib/enum/content-view-mode.enum.d.ts +0 -8
  1904. package/lib/enum/direction.enum.d.ts +0 -6
  1905. package/lib/enum/icon.enum.d.ts +0 -82
  1906. package/lib/enum/language-code.enum.d.ts +0 -6
  1907. package/lib/enum/order-discount-type.enum.d.ts +0 -5
  1908. package/lib/enum/position-grid-row.enum.d.ts +0 -4
  1909. package/lib/enum/search-view-mode.enum.d.ts +0 -4
  1910. package/lib/enum/searchbar-view-mode.enum.d.ts +0 -4
  1911. package/lib/enum/status-type.enum.d.ts +0 -5
  1912. package/lib/enum/time-size.type.d.ts +0 -7
  1913. package/lib/enum/transaction-type-category.enum.d.ts +0 -15
  1914. package/lib/interface/dialog-response.interface.d.ts +0 -5
  1915. package/lib/model/down-payment-view-model.d.ts +0 -7
  1916. package/lib/model/extended-transaction-line-view-model.d.ts +0 -10
  1917. package/lib/model/filter-item.viewmodel.d.ts +0 -7
  1918. package/lib/model/filter-viewmodel.d.ts +0 -8
  1919. package/lib/model/icon-svg.d.ts +0 -4
  1920. package/lib/model/payment.viewmodel.d.ts +0 -6
  1921. package/lib/model/received-goods-view-model.d.ts +0 -10
  1922. package/lib/model/relation-any-type.d.ts +0 -3
  1923. package/lib/model/standard-text.d.ts +0 -5
  1924. package/lib/model/text-value-container.d.ts +0 -4
  1925. package/lib/model/transaction-bar-button.d.ts +0 -10
  1926. package/lib/model/transaction-search-result.d.ts +0 -5
  1927. package/lib/pipe/append.pipe.d.ts +0 -4
  1928. package/lib/pipe/co-currency.pipe.d.ts +0 -10
  1929. package/lib/pipe/date-duration.pipe.d.ts +0 -10
  1930. package/lib/pipe/delivery-time.pipe.d.ts +0 -12
  1931. package/lib/pipe/localize.pipe.d.ts +0 -7
  1932. package/lib/pipe/pipe.module.d.ts +0 -2
  1933. package/lib/pipe/safe-html.pipe.d.ts +0 -7
  1934. package/lib/pipe/safe-style.pipe.d.ts +0 -7
  1935. package/lib/service/article-connector.service.d.ts +0 -20
  1936. package/lib/service/article.service.d.ts +0 -8
  1937. package/lib/service/dialog.service.d.ts +0 -25
  1938. package/lib/service/dictionary.service.d.ts +0 -21
  1939. package/lib/service/dynamic-component.service.d.ts +0 -11
  1940. package/lib/service/error.service.d.ts +0 -12
  1941. package/lib/service/icon-cache.service.d.ts +0 -18
  1942. package/lib/service/options.service.d.ts +0 -13
  1943. package/lib/service/payment.service.d.ts +0 -23
  1944. package/lib/service/pending-reason.service.d.ts +0 -59
  1945. package/lib/service/relation-connector.service.d.ts +0 -36
  1946. package/lib/service/relation.service.d.ts +0 -44
  1947. package/lib/service/shared-connector.service.d.ts +0 -12
  1948. package/lib/service/shared.service.d.ts +0 -15
  1949. package/lib/service/transaction-connector-adapter.service.d.ts +0 -206
  1950. package/lib/service/transaction-connector.service.d.ts +0 -197
  1951. package/lib/service/transaction-event.service.d.ts +0 -67
  1952. package/lib/service/transaction-image.service.d.ts +0 -10
  1953. package/lib/service/transaction-mapping.service.d.ts +0 -26
  1954. package/lib/service/transaction.service.d.ts +0 -175
  1955. package/public_api.d.ts +0 -45
@@ -1,1807 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from "@angular/core";
3
- import { Marketing } from "@colijnit/transactionapi/build/model/marketing.bo";
4
- import { TransactionInfoResponse } from "@colijnit/transactionapi/build/model/transaction-info-response.bo";
5
- import { Country } from "@colijnit/transactionapi/build/model/country.bo";
6
- import { DeliveryMethod } from "@colijnit/transactionapi/build/model/delivery-method.bo";
7
- import { DeliveryOption } from "@colijnit/transactionapi/build/model/delivery-option.bo";
8
- import { GetPostalCodeRetrievalOutputParams } from "@colijnit/transactionapi/build/model/get-postal-code-retrieval-output-params";
9
- import { ArticleFullObject } from "@colijnit/transactionapi/build/model/article-full-object";
10
- import { Transaction } from "@colijnit/transactionapi/build/transaction";
11
- import { StandardText } from "../model/standard-text";
12
- import { CustomerGroup } from "@colijnit/transactionapi/build/model/customer-group.bo";
13
- import { TransactionLineInfo } from "@colijnit/transactionapi/build/model/transaction-line-info.bo";
14
- import { OptionsService } from "./options.service";
15
- import { CashRegister } from "@colijnit/transactionapi/build/model/cash-register";
16
- import { PriceList } from "@colijnit/transactionapi/build/model/price-list";
17
- import { Vat } from "@colijnit/transactionapi/build/model/vat";
18
- import { TransactionSearchView } from "@colijnit/transactionapi/build/model/transaction-search-view.bo";
19
- import { OnHoldCode } from "@colijnit/transactionapi/build/model/on-hold-code.bo";
20
- import { Warehouse } from "@colijnit/transactionapi/build/model/warehouse.bo";
21
- import { CodeDescription } from "@colijnit/transactionapi/build/model/code-description";
22
- import { GoodsReceiptStatusWithHistory } from "@colijnit/transactionapi/build/model/goods-receipt-status-with-history.bo";
23
- import { PaymentMethod } from "@colijnit/transactionapi/build/model/payment-method.bo";
24
- import { PurchasePortalLine } from "@colijnit/transactionapi/build/model/purchase-portal-line.bo";
25
- import { CreatePaymentLinkResult } from "@colijnit/transactionapi/build/model/create-payment-link-result.bo";
26
- import { TransactionSearchResult } from "../model/transaction-search-result";
27
- import { PaymentLinkStatus } from "@colijnit/transactionapi/build/model/payment-link-status.bo";
28
- import { SelectMultipleCacheService } from "../cache/service/select-multiple-cache.service";
29
- import { SelectMultipleParameterizedCacheService } from "../cache/service/select-multiple-parameterized-cache.service";
30
- import { ErrorService } from "./error.service";
31
- import { TransactionDownPaymentInfo } from "@colijnit/transactionapi/build/model/transaction-down-payment-info.bo";
32
- import { TransactionLockResult } from "@colijnit/transactionapi/build/model/transaction-lock-result.bo";
33
- import { PrivacySetting } from "@colijnit/mainapi/build/model/privacy-setting.bo";
34
- import { RelationPrivacySetting } from "@colijnit/relationapi/build/model/relation-privacy-setting.bo";
35
- import { BusinessObjectFactory } from "@colijnit/ioneconnector/build/factory/business-object-factory";
36
- import { ImageUtils } from "@colijnit/ioneconnector/build/utils/image-utils";
37
- import { CoDomainValue } from "@colijnit/mainapi/build/model/co-domain-value.bo";
38
- import { Tag } from "@colijnit/mainapi/build/model/tag";
39
- import { DeliveryOrderStatus } from "@colijnit/transactionapi/build/model/delivery-order-status.bo";
40
- import { SalesPerson } from "@colijnit/relationapi/build/model/sales-person.bo";
41
- import { StockStickersPrintLayouts } from "@colijnit/sharedapi/build/model/report/stock-stickers-print-layouts.bo";
42
- import { Sharedapi } from "@colijnit/sharedapi/build/sharedapi";
43
- import { AvailableStock } from "@colijnit/transactionapi/build/model/available-stock.bo";
44
- import { GoodsAllocationStatus } from "@colijnit/transactionapi/build/model/goods-allocation-status.bo";
45
- import { GoodsAllocationStatusWithHistory } from "@colijnit/transactionapi/build/model/goods-allocation-status-with-history.bo";
46
- import { ReportLayoutSelectionEmail } from "@colijnit/mainapi/build/model/report-layout-selection-email.bo";
47
- import { ReportLayoutSelectionPrint } from "@colijnit/mainapi/build/model/report-layout-selection-print.bo";
48
- import { PurchaseAdviceLine } from "@colijnit/transactionapi/build/model/purchase-advice-line.bo";
49
- import * as i0 from "@angular/core";
50
- import * as i1 from "./options.service";
51
- import * as i2 from "../cache/service/select-multiple-cache.service";
52
- import * as i3 from "../cache/service/select-multiple-parameterized-cache.service";
53
- import * as i4 from "./error.service";
54
- export class TransactionConnectorAdapterService {
55
- constructor(_optionsService, _selectMultipleCacheService, _selectMultipleParameterizedCacheService, _errorService) {
56
- this._optionsService = _optionsService;
57
- this._selectMultipleCacheService = _selectMultipleCacheService;
58
- this._selectMultipleParameterizedCacheService = _selectMultipleParameterizedCacheService;
59
- this._errorService = _errorService;
60
- this._boFactory = new BusinessObjectFactory();
61
- }
62
- connect() {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- this.connector = new Transaction(this._optionsService.options);
65
- this.sharedConnector = new Sharedapi(this._optionsService.options);
66
- this._optionsService.options.session = this.connector.session;
67
- });
68
- }
69
- getArticleFullObject(goodId) {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- const result = yield this.connector.getArticleFullObject(goodId);
72
- if (result.validationResult && result.validationResult.success) {
73
- return this._boFactory.makeWithRawBackendData(ArticleFullObject, result.resultObject);
74
- }
75
- else {
76
- this._handleExceptionFromResponse(result);
77
- return null;
78
- }
79
- });
80
- }
81
- getGoodIdFromArticleNr(articleNr) {
82
- return __awaiter(this, void 0, void 0, function* () {
83
- const result = yield this.connector.getGoodIdFromArticleNr(articleNr);
84
- if (result.validationResult && result.validationResult.success) {
85
- return result.resultObject;
86
- }
87
- else {
88
- this._handleExceptionFromResponse(result);
89
- return null;
90
- }
91
- });
92
- }
93
- getSingleImage(nodeId, publication, includeMimetype, thumb) {
94
- return __awaiter(this, void 0, void 0, function* () {
95
- const result = yield this.connector.getSingleImage(nodeId, publication, includeMimetype, thumb);
96
- if (result.validationResult && result.validationResult.success) {
97
- if (result.resultObject && result.resultObject.filePath !== null && result.resultObject.filePath !== undefined && result.resultObject.filePath !== "") {
98
- return ImageUtils.getFixedImageFilepathUrl(result.resultObject.filePath);
99
- }
100
- else {
101
- if (result.resultObject) {
102
- if (includeMimetype) {
103
- return ImageUtils.getDocBodyWithMimeTypeDefinition(result.resultObject.fileName, thumb ? result.resultObject.thumbnailBody : result.resultObject.documentBody);
104
- }
105
- return thumb ? result.resultObject.thumbnailBody : result.resultObject.documentBody;
106
- }
107
- else { // no image
108
- return "";
109
- }
110
- }
111
- }
112
- else {
113
- this._handleExceptionFromResponse(result);
114
- return null;
115
- }
116
- });
117
- }
118
- getCountries() {
119
- return __awaiter(this, void 0, void 0, function* () {
120
- const result = yield this.connector.getCountries();
121
- if (result.validationResult && result.validationResult.success) {
122
- return this._boFactory.makeBOArrayFromRawBackendDataArray(Country, result.resultObjects);
123
- }
124
- else {
125
- this._handleExceptionFromResponse(result);
126
- return [];
127
- }
128
- });
129
- }
130
- getCustomerGroups() {
131
- return __awaiter(this, void 0, void 0, function* () {
132
- const result = yield this.connector.getCustomerGroups();
133
- if (result.validationResult && result.validationResult.success) {
134
- return this._boFactory.makeBOArrayFromRawBackendDataArray(CustomerGroup, result.resultObjects);
135
- }
136
- else {
137
- this._handleExceptionFromResponse(result);
138
- return [];
139
- }
140
- });
141
- }
142
- getCountry(countryCode) {
143
- return __awaiter(this, void 0, void 0, function* () {
144
- const countries = yield this.getCountries();
145
- return countries.find(country => country.code === countryCode);
146
- });
147
- }
148
- getPrivacySettings() {
149
- return __awaiter(this, void 0, void 0, function* () {
150
- const result = yield this.connector.getPrivacySettings();
151
- if (result.validationResult && result.validationResult.success) {
152
- return this._boFactory.makeBOArrayFromRawBackendDataArray(PrivacySetting, result.resultObjects);
153
- }
154
- else {
155
- this._handleExceptionFromResponse(result);
156
- return [];
157
- }
158
- });
159
- }
160
- getRelationPrivacySettings() {
161
- return __awaiter(this, void 0, void 0, function* () {
162
- const privacySettings = [];
163
- const basePrivacySettings = yield this.getPrivacySettings();
164
- for (let i = 0, len = basePrivacySettings.length; i < len; i++) {
165
- const basePrivSetting = basePrivacySettings[i];
166
- const newRelPrivSet = this._boFactory.instantiateNewBo(RelationPrivacySetting);
167
- newRelPrivSet.applyBasePrivacySettingValues(basePrivSetting);
168
- privacySettings.push(newRelPrivSet);
169
- }
170
- return privacySettings;
171
- });
172
- }
173
- getMarketingCodes() {
174
- return __awaiter(this, void 0, void 0, function* () {
175
- const result = yield this.connector.getMarketingCodes();
176
- if (result.validationResult && result.validationResult.success) {
177
- return this._boFactory.makeBOArrayFromRawBackendDataArray(Marketing, result.resultObjects);
178
- }
179
- else {
180
- this._handleExceptionFromResponse(result);
181
- return [];
182
- }
183
- });
184
- }
185
- getArticleBoundTextLinesOfArticleLine(articleLineUuid) {
186
- return __awaiter(this, void 0, void 0, function* () {
187
- const result = yield this.connector.getArticleBoundTextLinesOfArticleLine(articleLineUuid);
188
- if (result.validationResult && result.validationResult.success) {
189
- return this._boFactory.makeBOArrayFromRawBackendDataArray(TransactionLineInfo, result.resultObject);
190
- }
191
- else {
192
- this._handleExceptionFromResponse(result);
193
- return [];
194
- }
195
- });
196
- }
197
- getTransactionByNrAndKind(kind, transactionNo) {
198
- return __awaiter(this, void 0, void 0, function* () {
199
- const result = yield this.connector.getTransactionByNrAndKind(kind, transactionNo);
200
- if (result.validationResult && result.validationResult.success) {
201
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject);
202
- }
203
- else {
204
- this._handleExceptionFromResponse(result);
205
- return null;
206
- }
207
- });
208
- }
209
- getTransactionById(transactionId) {
210
- return __awaiter(this, void 0, void 0, function* () {
211
- const result = yield this.connector.getTransactionById(transactionId);
212
- if (result.validationResult && result.validationResult.success) {
213
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject);
214
- }
215
- else {
216
- this._handleExceptionFromResponse(result);
217
- return null;
218
- }
219
- });
220
- }
221
- lockTransactionById(transactionId, version) {
222
- return __awaiter(this, void 0, void 0, function* () {
223
- const result = yield this.connector.lockTransactionByTransId(transactionId, version);
224
- if (result.validationResult && result.validationResult.success) {
225
- return this._boFactory.makeWithRawBackendData(TransactionLockResult, result.resultObject);
226
- }
227
- else {
228
- this._handleExceptionFromResponse(result);
229
- return null;
230
- }
231
- });
232
- }
233
- getCashRegisters(branch, group) {
234
- return __awaiter(this, void 0, void 0, function* () {
235
- const result = yield this.connector.getCashRegister(branch, group);
236
- if (result.validationResult && result.validationResult.success) {
237
- return this._boFactory.makeBOArrayFromRawBackendDataArray(CashRegister, result.resultObjects);
238
- }
239
- else {
240
- this._handleExceptionFromResponse(result);
241
- return [];
242
- }
243
- });
244
- }
245
- getPriceLists(code) {
246
- return __awaiter(this, void 0, void 0, function* () {
247
- const result = yield this.connector.getPriceLists(code);
248
- if (result.validationResult && result.validationResult.success) {
249
- return this._boFactory.makeBOArrayFromRawBackendDataArray(PriceList, result.resultObjects);
250
- }
251
- else {
252
- this._handleExceptionFromResponse(result);
253
- return [];
254
- }
255
- });
256
- }
257
- getVatList(onlyValid = false) {
258
- return __awaiter(this, void 0, void 0, function* () {
259
- const result = yield this.connector.getVatList(onlyValid);
260
- if (result.validationResult && result.validationResult.success) {
261
- return this._boFactory.makeBOArrayFromRawBackendDataArray(Vat, result.resultObjects);
262
- }
263
- else {
264
- this._handleExceptionFromResponse(result);
265
- return [];
266
- }
267
- });
268
- }
269
- searchTransactions(request) {
270
- return __awaiter(this, void 0, void 0, function* () {
271
- const response = yield this.connector.searchTransactions(request);
272
- if (response.validationResult && response.validationResult.success) {
273
- const result = new TransactionSearchResult();
274
- result.count = response.pagingParameters.resultCount; // todo: fix property in api
275
- result.transactions = this._boFactory.makeBOArrayFromRawBackendDataArray(TransactionSearchView, response.resultObjects);
276
- return result;
277
- }
278
- else {
279
- this._handleExceptionFromResponse(response);
280
- return null;
281
- }
282
- });
283
- }
284
- getSequenceValue(sequenceName) {
285
- return __awaiter(this, void 0, void 0, function* () {
286
- return new Promise((resolve, reject) => {
287
- return this.connector.getSequenceValue(sequenceName).then((result) => {
288
- if (result.validationResult && result.validationResult.success) {
289
- resolve(result.resultObject);
290
- }
291
- else {
292
- this._handleExceptionFromResponse(result);
293
- reject(null);
294
- }
295
- });
296
- });
297
- });
298
- }
299
- getDeliveryMethods() {
300
- return __awaiter(this, void 0, void 0, function* () {
301
- const result = yield this.connector.getDeliveryMethods();
302
- if (result.validationResult && result.validationResult.success) {
303
- return this._boFactory.makeBOArrayFromRawBackendDataArray(DeliveryMethod, result.resultObjects);
304
- }
305
- else {
306
- this._handleExceptionFromResponse(result);
307
- return [];
308
- }
309
- });
310
- }
311
- getDeliveryOptions() {
312
- return __awaiter(this, void 0, void 0, function* () {
313
- const result = yield this.connector.getDeliveryOptions();
314
- if (result.validationResult && result.validationResult.success) {
315
- return this._boFactory.makeBOArrayFromRawBackendDataArray(DeliveryOption, result.resultObjects);
316
- }
317
- else {
318
- this._handleExceptionFromResponse(result);
319
- return [];
320
- }
321
- });
322
- }
323
- getPostalCodeRetrieval(postcalCode, houseNo) {
324
- return __awaiter(this, void 0, void 0, function* () {
325
- const result = yield this.connector.getPostalCodeRetrieval(postcalCode, houseNo);
326
- if (result.validationResult && result.validationResult.success) {
327
- if (result.validationResult && result.validationResult.success) {
328
- const outputParams = new GetPostalCodeRetrievalOutputParams();
329
- outputParams.city = result.resultObject.city;
330
- outputParams.street = result.resultObject.street;
331
- outputParams.status = result.resultObject.status;
332
- outputParams.netNumber = result.resultObject.netNumber;
333
- return outputParams;
334
- }
335
- else {
336
- this._handleExceptionFromResponse(result);
337
- return null;
338
- }
339
- }
340
- });
341
- }
342
- getCommissionCodes(languageCode) {
343
- return __awaiter(this, void 0, void 0, function* () {
344
- const result = yield this.connector.getCommissionCodes(languageCode);
345
- if (result.validationResult && result.validationResult.success) {
346
- return this._boFactory.makeBOArrayFromRawBackendDataArray(CoDomainValue, result.resultObjects);
347
- }
348
- else {
349
- this._handleExceptionFromResponse(result);
350
- return [];
351
- }
352
- });
353
- }
354
- getInOutCollection(languageCode) {
355
- return __awaiter(this, void 0, void 0, function* () {
356
- const result = yield this.connector.getInOutCollection(languageCode);
357
- if (result.validationResult && result.validationResult.success) {
358
- return this._boFactory.makeBOArrayFromRawBackendDataArray(CoDomainValue, result.resultObjects);
359
- }
360
- else {
361
- this._handleExceptionFromResponse(result);
362
- return [];
363
- }
364
- });
365
- }
366
- getTransactionArticleWarehouses(goodId) {
367
- return __awaiter(this, void 0, void 0, function* () {
368
- return new Promise((resolve, reject) => {
369
- return this.connector.getTransactionArticleWarehouses(goodId).then((result) => {
370
- if (result.validationResult && result.validationResult.success) {
371
- resolve(result.resultObjects);
372
- }
373
- else {
374
- this._handleExceptionFromResponse(result);
375
- reject([]);
376
- }
377
- });
378
- });
379
- });
380
- }
381
- getTextTypes(languageCode) {
382
- return __awaiter(this, void 0, void 0, function* () {
383
- const result = yield this.connector.getTextTypes(languageCode);
384
- if (result.validationResult && result.validationResult.success) {
385
- const texts = this._boFactory.makeBOArrayFromRawBackendDataArray(CoDomainValue, result.resultObjects);
386
- texts.sort((a, b) => a.sequence > b.sequence ? 1 : -1);
387
- return texts;
388
- }
389
- else {
390
- this._handleExceptionFromResponse(result);
391
- return [];
392
- }
393
- });
394
- }
395
- getStandardTexts(languageCode) {
396
- return __awaiter(this, void 0, void 0, function* () {
397
- const result = yield this.connector.getStandardTexts(languageCode);
398
- if (result.validationResult && result.validationResult.success) {
399
- return this._boFactory.makeBOArrayFromRawBackendDataArray(StandardText, result.resultObject);
400
- }
401
- else {
402
- this._handleExceptionFromResponse(result);
403
- return [];
404
- }
405
- });
406
- }
407
- getSalesPersons(date) {
408
- return __awaiter(this, void 0, void 0, function* () {
409
- const result = yield this.connector.getSalesPersons(date);
410
- if (result.validationResult && result.validationResult.success) {
411
- return this._boFactory.makeBOArrayFromRawBackendDataArray(SalesPerson, result.resultObjects);
412
- }
413
- else {
414
- this._handleExceptionFromResponse(result);
415
- return [];
416
- }
417
- });
418
- }
419
- getTags(category) {
420
- return __awaiter(this, void 0, void 0, function* () {
421
- const result = yield this.connector.getTags(category);
422
- if (result.validationResult && result.validationResult.success) {
423
- return this._boFactory.makeBOArrayFromRawBackendDataArray(Tag, result.resultObjects);
424
- }
425
- else {
426
- this._handleExceptionFromResponse(result);
427
- return [];
428
- }
429
- });
430
- }
431
- getOnHoldCodes() {
432
- return __awaiter(this, void 0, void 0, function* () {
433
- const result = yield this.connector.getOnHoldCodes();
434
- if (result.validationResult && result.validationResult.success) {
435
- return this._boFactory.makeBOArrayFromRawBackendDataArray(OnHoldCode, result.resultObjects);
436
- }
437
- else {
438
- this._handleExceptionFromResponse(result);
439
- return [];
440
- }
441
- });
442
- }
443
- getWarehouses(branchNr) {
444
- return __awaiter(this, void 0, void 0, function* () {
445
- const result = yield this.connector.getWarehouses(branchNr);
446
- if (result.validationResult && result.validationResult.success) {
447
- return this._boFactory.makeBOArrayFromRawBackendDataArray(Warehouse, result.resultObjects);
448
- }
449
- else {
450
- this._handleExceptionFromResponse(result);
451
- return [];
452
- }
453
- });
454
- }
455
- getHistoricStateValues() {
456
- return __awaiter(this, void 0, void 0, function* () {
457
- const result = yield this.connector.getHistoricStateValues();
458
- if (result.validationResult && result.validationResult.success) {
459
- return this._boFactory.makeBOArrayFromRawBackendDataArray(CodeDescription, result.resultObjects);
460
- }
461
- else {
462
- this._handleExceptionFromResponse(result);
463
- return [];
464
- }
465
- });
466
- }
467
- getPaymentMethods() {
468
- return __awaiter(this, void 0, void 0, function* () {
469
- const result = yield this.connector.getPaymentMethodsForSalesOrder();
470
- if (result.validationResult && result.validationResult.success) {
471
- return this._boFactory.makeBOArrayFromRawBackendDataArray(PaymentMethod, result.resultObject);
472
- }
473
- else {
474
- this._handleExceptionFromResponse(result);
475
- return [];
476
- }
477
- });
478
- }
479
- commit() {
480
- return this.connector.commit();
481
- }
482
- createTransaction(kind, branchNr) {
483
- return new Promise((resolve, reject) => {
484
- return this.connector.createTransaction(kind, branchNr).then((result) => {
485
- if (result.validationResult && result.validationResult.success) {
486
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
487
- }
488
- else {
489
- this._handleExceptionFromResponse(result);
490
- reject(null);
491
- }
492
- });
493
- });
494
- }
495
- createSalesOrder(request) {
496
- return __awaiter(this, void 0, void 0, function* () {
497
- return new Promise((resolve, reject) => {
498
- return this.connector.createSalesOrder(request).then((result) => {
499
- if (result.validationResult && result.validationResult.success) {
500
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
501
- }
502
- else {
503
- this._handleExceptionFromResponse(result);
504
- reject(null);
505
- }
506
- });
507
- });
508
- });
509
- }
510
- createCashRegisterOrder(request) {
511
- return __awaiter(this, void 0, void 0, function* () {
512
- return new Promise((resolve, reject) => {
513
- return this.connector.createCashRegisterOrder(request).then((result) => {
514
- if (result.validationResult && result.validationResult.success) {
515
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
516
- }
517
- else {
518
- this._handleExceptionFromResponse(result);
519
- reject(null);
520
- }
521
- });
522
- });
523
- });
524
- }
525
- createPurchaseOrder(request) {
526
- return __awaiter(this, void 0, void 0, function* () {
527
- return new Promise((resolve, reject) => {
528
- return this.connector.createPurchaseOrder(request).then((result) => {
529
- if (result.validationResult && result.validationResult.success) {
530
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
531
- }
532
- else {
533
- this._handleExceptionFromResponse(result);
534
- reject(null);
535
- }
536
- });
537
- });
538
- });
539
- }
540
- createServiceOrder(request) {
541
- return __awaiter(this, void 0, void 0, function* () {
542
- return new Promise((resolve, reject) => {
543
- return this.connector.createServiceOrder(request).then((result) => {
544
- if (result.validationResult && result.validationResult.success) {
545
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
546
- }
547
- else {
548
- this._handleExceptionFromResponse(result);
549
- reject(null);
550
- }
551
- });
552
- });
553
- });
554
- }
555
- createSalesQuotation(request) {
556
- return __awaiter(this, void 0, void 0, function* () {
557
- return new Promise((resolve, reject) => {
558
- return this.connector.createSalesQuotation(request).then((result) => {
559
- if (result.validationResult && result.validationResult.success) {
560
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
561
- }
562
- else {
563
- this._handleExceptionFromResponse(result);
564
- reject(null);
565
- }
566
- });
567
- });
568
- });
569
- }
570
- saveTransaction(uuid) {
571
- return new Promise((resolve, reject) => {
572
- return this.connector.saveTransaction(uuid).then((result) => {
573
- if (result.validationResult && result.validationResult.success) {
574
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
575
- }
576
- else {
577
- this._handleExceptionFromResponse(result);
578
- reject(null);
579
- }
580
- });
581
- });
582
- }
583
- setRelationByUser(uuid, username, password) {
584
- return __awaiter(this, void 0, void 0, function* () {
585
- return new Promise((resolve, reject) => {
586
- return this.connector.setRelationByUser(uuid, username, password).then((result) => {
587
- if (result.validationResult && result.validationResult.success) {
588
- resolve(result.validationResult.success);
589
- }
590
- else {
591
- this._handleExceptionFromResponse(result);
592
- reject(false);
593
- }
594
- });
595
- });
596
- });
597
- }
598
- resolvePendingHeaderReason(pendingHeaderValues) {
599
- return __awaiter(this, void 0, void 0, function* () {
600
- return new Promise((resolve, reject) => {
601
- return this.connector.resolvePendingHeaderReason(pendingHeaderValues).then((result) => {
602
- if (result.validationResult && result.validationResult.success) {
603
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
604
- }
605
- else {
606
- this._handleExceptionFromResponse(result);
607
- reject(null);
608
- }
609
- });
610
- });
611
- });
612
- }
613
- resolvePendingLineReason(pendingLineValues) {
614
- return __awaiter(this, void 0, void 0, function* () {
615
- return new Promise((resolve, reject) => {
616
- return this.connector.resolvePendingLineReason(pendingLineValues).then((result) => {
617
- if (result.validationResult && result.validationResult.success) {
618
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
619
- }
620
- else {
621
- this._handleExceptionFromResponse(result);
622
- reject(null);
623
- }
624
- });
625
- });
626
- });
627
- }
628
- addTransactionLine(uuid, articleLine, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr) {
629
- return __awaiter(this, void 0, void 0, function* () {
630
- return new Promise((resolve, reject) => {
631
- return this.connector.addTransactionLine(uuid, articleLine, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr).then((result) => {
632
- if (result.validationResult && result.validationResult.success) {
633
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
634
- }
635
- else {
636
- this._handleExceptionFromResponse(result);
637
- reject(null);
638
- }
639
- });
640
- });
641
- });
642
- }
643
- addTextLineToTransaction(uuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr) {
644
- return __awaiter(this, void 0, void 0, function* () {
645
- return new Promise((resolve, reject) => {
646
- return this.connector.addTextLineToTransaction(uuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr).then((result) => {
647
- if (result.validationResult && result.validationResult.success) {
648
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
649
- }
650
- else {
651
- this._handleExceptionFromResponse(result);
652
- reject(null);
653
- }
654
- });
655
- });
656
- });
657
- }
658
- addRelationToTransaction(uuid, relationId) {
659
- return __awaiter(this, void 0, void 0, function* () {
660
- return new Promise((resolve, reject) => {
661
- return this.connector.addRelationToTransaction(uuid, relationId).then((result) => {
662
- if (result.validationResult && result.validationResult.success) {
663
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
664
- }
665
- else {
666
- this._handleExceptionFromResponse(result);
667
- reject(null);
668
- }
669
- });
670
- });
671
- });
672
- }
673
- setTransactionDeliveryOptions(transactionDeliveryOptionsRequest) {
674
- return __awaiter(this, void 0, void 0, function* () {
675
- return new Promise((resolve, reject) => {
676
- return this.connector.setTransactionDeliveryOptions(transactionDeliveryOptionsRequest).then((result) => {
677
- if (result.validationResult && result.validationResult.success) {
678
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
679
- }
680
- else {
681
- this._handleExceptionFromResponse(result);
682
- reject(null);
683
- }
684
- });
685
- });
686
- });
687
- }
688
- changeLineSequence(uuid, lineUuid, aboveLineNr, belowLineNr) {
689
- return __awaiter(this, void 0, void 0, function* () {
690
- return new Promise((resolve, reject) => {
691
- const request = {
692
- transactionUuid: uuid,
693
- lineUuid: lineUuid,
694
- aboveLineNr: aboveLineNr,
695
- belowLineNr: belowLineNr
696
- };
697
- return this.connector.changeLineSequence(request).then((result) => {
698
- if (result.validationResult && result.validationResult.success) {
699
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
700
- }
701
- else {
702
- this._handleExceptionFromResponse(result);
703
- reject(null);
704
- }
705
- });
706
- });
707
- });
708
- }
709
- cancelAddTransactionLine(lineUuid) {
710
- return __awaiter(this, void 0, void 0, function* () {
711
- return new Promise((resolve, reject) => {
712
- return this.connector.cancelAddTransactionLine(lineUuid).then((result) => {
713
- if (result.validationResult && result.validationResult.success) {
714
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
715
- }
716
- else {
717
- this._handleExceptionFromResponse(result);
718
- reject(null);
719
- }
720
- });
721
- });
722
- });
723
- }
724
- deleteTransactionLine(uuid, lineUuid) {
725
- return __awaiter(this, void 0, void 0, function* () {
726
- return new Promise((resolve, reject) => {
727
- return this.connector.deleteTransactionLine(uuid, lineUuid).then((result) => {
728
- if (result.validationResult && result.validationResult.success) {
729
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
730
- }
731
- else {
732
- this._handleExceptionFromResponse(result);
733
- reject(null);
734
- }
735
- });
736
- });
737
- });
738
- }
739
- changeTransactionLineQuantity(uuid, lineUuid, newQuantity) {
740
- return __awaiter(this, void 0, void 0, function* () {
741
- return new Promise((resolve, reject) => {
742
- const request = {
743
- transactionUuid: uuid,
744
- lineUuid: lineUuid,
745
- newQuantity: newQuantity
746
- };
747
- return this.connector.changeTransactionLineQuantity(request).then((result) => {
748
- if (result.validationResult && result.validationResult.success) {
749
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
750
- }
751
- else {
752
- this._handleExceptionFromResponse(result);
753
- reject(null);
754
- }
755
- });
756
- });
757
- });
758
- }
759
- changeTransactionLineCommissionCode(uuid, lineUuid, code) {
760
- return __awaiter(this, void 0, void 0, function* () {
761
- const request = {
762
- transactionUuid: uuid,
763
- lineUuid: lineUuid,
764
- newCommissionCode: code
765
- };
766
- const response = yield this.connector.changeTransactionLineCommissionCode(request);
767
- if (response && response.validationResult && response.validationResult.success) {
768
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
769
- }
770
- else {
771
- this._handleExceptionFromResponse(response);
772
- return null;
773
- }
774
- });
775
- }
776
- changeTransactionLineSupplier(uuid, lineUuid, id) {
777
- return __awaiter(this, void 0, void 0, function* () {
778
- const request = {
779
- transactionUuid: uuid,
780
- lineUuid: lineUuid,
781
- newSupplierId: id
782
- };
783
- const response = yield this.connector.changeTransactionLineSupplier(request);
784
- if (response && response.validationResult && response.validationResult.success) {
785
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
786
- }
787
- else {
788
- this._handleExceptionFromResponse(response);
789
- return null;
790
- }
791
- });
792
- }
793
- changeTransactionLineWarehouse(uuid, lineUuid, warehouseNumber) {
794
- return __awaiter(this, void 0, void 0, function* () {
795
- const request = {
796
- transactionUuid: uuid,
797
- lineUuid: lineUuid,
798
- newWarehouseNumber: warehouseNumber
799
- };
800
- const response = yield this.connector.changeTransactionLineWarehouse(request);
801
- if (response && response.validationResult && response.validationResult.success) {
802
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
803
- }
804
- else {
805
- this._handleExceptionFromResponse(response);
806
- return null;
807
- }
808
- });
809
- }
810
- changeTransactionLinePrice(uuid, lineUuid, price) {
811
- return __awaiter(this, void 0, void 0, function* () {
812
- const request = {
813
- transactionUuid: uuid,
814
- lineUuid: lineUuid,
815
- newPrice: price
816
- };
817
- const response = yield this.connector.changeTransactionLinePrice(request);
818
- if (response && response.validationResult && response.validationResult.success) {
819
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
820
- }
821
- else {
822
- this._handleExceptionFromResponse(response);
823
- return null;
824
- }
825
- });
826
- }
827
- changeTransactionLinePriceList(uuid, lineUuid, priceList) {
828
- return __awaiter(this, void 0, void 0, function* () {
829
- const request = {
830
- transactionUuid: uuid,
831
- lineUuid: lineUuid,
832
- newPriceListCode: priceList
833
- };
834
- const response = yield this.connector.changeTransactionLinePriceList(request);
835
- if (response && response.validationResult && response.validationResult.success) {
836
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
837
- }
838
- else {
839
- this._handleExceptionFromResponse(response);
840
- return null;
841
- }
842
- });
843
- }
844
- changeTransactionLineVat(uuid, lineUuid, id) {
845
- return __awaiter(this, void 0, void 0, function* () {
846
- const request = {
847
- transactionUuid: uuid,
848
- lineUuid: lineUuid,
849
- newVatId: id
850
- };
851
- const response = yield this.connector.changeTransactionLineVat(request);
852
- if (response && response.validationResult && response.validationResult.success) {
853
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
854
- }
855
- else {
856
- this._handleExceptionFromResponse(response);
857
- return null;
858
- }
859
- });
860
- }
861
- changeTransactionLineLineDiscount(uuid, lineUuid, type, discount, reason, code) {
862
- return __awaiter(this, void 0, void 0, function* () {
863
- const request = {
864
- transactionUuid: uuid,
865
- lineUuid: lineUuid,
866
- discountType: type,
867
- newDiscount: discount,
868
- newDiscountReason: reason,
869
- newDiscountCode: code
870
- };
871
- const response = yield this.connector.changeTransactionLineDiscount(request);
872
- if (response && response.validationResult && response.validationResult.success) {
873
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
874
- }
875
- else {
876
- this._handleExceptionFromResponse(response);
877
- return null;
878
- }
879
- });
880
- }
881
- changeTransactionLineDeliveryMethod(uuid, lineUuid, method) {
882
- return __awaiter(this, void 0, void 0, function* () {
883
- const request = {
884
- transactionUuid: uuid,
885
- lineUuid: lineUuid,
886
- newDeliveryMethodCode: method
887
- };
888
- const response = yield this.connector.changeTransactionLineDeliveryMethod(request);
889
- if (response && response.validationResult && response.validationResult.success) {
890
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
891
- }
892
- else {
893
- this._handleExceptionFromResponse(response);
894
- return null;
895
- }
896
- });
897
- }
898
- changeTransactionLineDeliveryDate(uuid, lineUuid, date) {
899
- return __awaiter(this, void 0, void 0, function* () {
900
- const request = {
901
- transactionUuid: uuid,
902
- lineUuid: lineUuid,
903
- newDeliveryDate: date
904
- };
905
- const response = yield this.connector.changeTransactionLineDeliveryDate(request);
906
- if (response && response.validationResult && response.validationResult.success) {
907
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
908
- }
909
- else {
910
- this._handleExceptionFromResponse(response);
911
- return null;
912
- }
913
- });
914
- }
915
- changeTransactionLineAssemblyTime(uuid, lineUuid, time) {
916
- return __awaiter(this, void 0, void 0, function* () {
917
- const request = {
918
- transactionUuid: uuid,
919
- lineUuid: lineUuid,
920
- newAssemblyTime: time
921
- };
922
- const response = yield this.connector.changeTransactionLineAssemblyTime(request);
923
- if (response && response.validationResult && response.validationResult.success) {
924
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
925
- }
926
- else {
927
- this._handleExceptionFromResponse(response);
928
- return null;
929
- }
930
- });
931
- }
932
- changeTransactionLineEditTime(uuid, lineUuid, time) {
933
- return __awaiter(this, void 0, void 0, function* () {
934
- const request = {
935
- transactionUuid: uuid,
936
- lineUuid: lineUuid,
937
- newEditTime: time
938
- };
939
- const response = yield this.connector.changeTransactionLineEditTime(request);
940
- if (response && response.validationResult && response.validationResult.success) {
941
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
942
- }
943
- else {
944
- this._handleExceptionFromResponse(response);
945
- return null;
946
- }
947
- });
948
- }
949
- changeTransactionLineSupplierArticleNumber(uuid, lineUuid, articleNumber) {
950
- return __awaiter(this, void 0, void 0, function* () {
951
- const request = {
952
- transactionUuid: uuid,
953
- lineUuid: lineUuid,
954
- newSupplierArticleNumber: articleNumber
955
- };
956
- const response = yield this.connector.changeTransactionLineSupplierArticleNumber(request);
957
- if (response && response.validationResult && response.validationResult.success) {
958
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
959
- }
960
- else {
961
- this._handleExceptionFromResponse(response);
962
- return null;
963
- }
964
- });
965
- }
966
- changeTransactionLineReference(uuid, lineUuid, reference) {
967
- return __awaiter(this, void 0, void 0, function* () {
968
- const request = {
969
- transactionUuid: uuid,
970
- lineUuid: lineUuid,
971
- newReference: reference
972
- };
973
- const response = yield this.connector.changeTransactionLineReference(request);
974
- if (response && response.validationResult && response.validationResult.success) {
975
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
976
- }
977
- else {
978
- this._handleExceptionFromResponse(response);
979
- return null;
980
- }
981
- });
982
- }
983
- changeTransactionLineGoodDescription(uuid, lineUuid, goodDescription) {
984
- return __awaiter(this, void 0, void 0, function* () {
985
- const request = {
986
- transactionUuid: uuid,
987
- lineUuid: lineUuid,
988
- newGoodDescription: goodDescription
989
- };
990
- const response = yield this.connector.changeTransactionLineGoodDescription(request);
991
- if (response && response.validationResult && response.validationResult.success) {
992
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
993
- }
994
- else {
995
- this._handleExceptionFromResponse(response);
996
- return null;
997
- }
998
- });
999
- }
1000
- changeHeaderTransactionDefinitive(uuid, definitive) {
1001
- return __awaiter(this, void 0, void 0, function* () {
1002
- const request = {
1003
- transactionUuid: uuid,
1004
- newTransactionDefinitive: definitive
1005
- };
1006
- const response = yield this.connector.changeHeaderTransactionDefinitive(request);
1007
- if (response && response.validationResult && response.validationResult.success) {
1008
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1009
- }
1010
- else {
1011
- this._handleExceptionFromResponse(response);
1012
- return null;
1013
- }
1014
- });
1015
- }
1016
- changeHeaderDeliveryAddress(uuid, newNawNr) {
1017
- return __awaiter(this, void 0, void 0, function* () {
1018
- const request = {
1019
- transactionUuid: uuid,
1020
- newTransactionAddressNawNr: newNawNr
1021
- };
1022
- const response = yield this.connector.changeHeaderTransactionAddress(request);
1023
- if (response && response.validationResult && response.validationResult.success) {
1024
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1025
- }
1026
- else {
1027
- this._handleExceptionFromResponse(response);
1028
- return null;
1029
- }
1030
- });
1031
- }
1032
- changeHeaderInvoiceAddress(uuid, newNawNr) {
1033
- return __awaiter(this, void 0, void 0, function* () {
1034
- const request = {
1035
- transactionUuid: uuid,
1036
- newInvoiceAddressNawNr: newNawNr
1037
- };
1038
- const response = yield this.connector.changeHeaderInvoiceAddress(request);
1039
- if (response && response.validationResult && response.validationResult.success) {
1040
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1041
- }
1042
- else {
1043
- this._handleExceptionFromResponse(response);
1044
- return null;
1045
- }
1046
- });
1047
- }
1048
- changeHeaderTransactionDeliveryDate(uuid, date) {
1049
- return __awaiter(this, void 0, void 0, function* () {
1050
- const request = {
1051
- transactionUuid: uuid,
1052
- newDeliveryDate: date
1053
- };
1054
- const response = yield this.connector.changeHeaderDeliveryDate(request);
1055
- if (response && response.validationResult && response.validationResult.success) {
1056
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1057
- }
1058
- else {
1059
- this._handleExceptionFromResponse(response);
1060
- return null;
1061
- }
1062
- });
1063
- }
1064
- changeHeaderTransactionDeliveryDateDefinitive(uuid, definitive) {
1065
- return __awaiter(this, void 0, void 0, function* () {
1066
- const request = {
1067
- transactionUuid: uuid,
1068
- newDeliveryDateDefinitive: definitive
1069
- };
1070
- const response = yield this.connector.changeHeaderDeliveryDateDefinitive(request);
1071
- if (response && response.validationResult && response.validationResult.success) {
1072
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1073
- }
1074
- else {
1075
- this._handleExceptionFromResponse(response);
1076
- return null;
1077
- }
1078
- });
1079
- }
1080
- changeHeaderTransactionRemark(uuid, remark) {
1081
- return __awaiter(this, void 0, void 0, function* () {
1082
- const request = {
1083
- transactionUuid: uuid,
1084
- newRemarks: remark
1085
- };
1086
- const response = yield this.connector.changeHeaderRemarks(request);
1087
- if (response && response.validationResult && response.validationResult.success) {
1088
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1089
- }
1090
- else {
1091
- this._handleExceptionFromResponse(response);
1092
- return null;
1093
- }
1094
- });
1095
- }
1096
- changeHeaderTransactionReference(uuid, reference) {
1097
- return __awaiter(this, void 0, void 0, function* () {
1098
- const request = {
1099
- transactionUuid: uuid,
1100
- newOwnReference: reference
1101
- };
1102
- const response = yield this.connector.changeHeaderOwnReference(request);
1103
- if (response && response.validationResult && response.validationResult.success) {
1104
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1105
- }
1106
- else {
1107
- this._handleExceptionFromResponse(response);
1108
- return null;
1109
- }
1110
- });
1111
- }
1112
- changeHeaderTransactionRelationReference(uuid, reference) {
1113
- return __awaiter(this, void 0, void 0, function* () {
1114
- const request = {
1115
- transactionUuid: uuid,
1116
- newRelationReference: reference
1117
- };
1118
- const response = yield this.connector.changeHeaderRelationReference(request);
1119
- if (response && response.validationResult && response.validationResult.success) {
1120
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1121
- }
1122
- else {
1123
- this._handleExceptionFromResponse(response);
1124
- return null;
1125
- }
1126
- });
1127
- }
1128
- changeHeaderToDownPayPercentage(uuid, amount) {
1129
- return __awaiter(this, void 0, void 0, function* () {
1130
- const request = {
1131
- transactionUuid: uuid,
1132
- newToDownPayPercentage: amount
1133
- };
1134
- const response = yield this.connector.changeHeaderToDownPayPercentage(request);
1135
- if (response && response.validationResult && response.validationResult.success) {
1136
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1137
- }
1138
- else {
1139
- this._handleExceptionFromResponse(response);
1140
- return null;
1141
- }
1142
- });
1143
- }
1144
- changeHeaderToDownPayAmount(uuid, amount) {
1145
- return __awaiter(this, void 0, void 0, function* () {
1146
- const request = {
1147
- transactionUuid: uuid,
1148
- newToDownPayAmount: amount
1149
- };
1150
- const response = yield this.connector.changeHeaderToDownPayAmount(request);
1151
- if (response && response.validationResult && response.validationResult.success) {
1152
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1153
- }
1154
- else {
1155
- this._handleExceptionFromResponse(response);
1156
- return null;
1157
- }
1158
- });
1159
- }
1160
- changeHeaderTransactionPreferredDeliveryDate(uuid, date) {
1161
- return __awaiter(this, void 0, void 0, function* () {
1162
- const request = {
1163
- transactionUuid: uuid,
1164
- newPreferredDeliveryDate: date,
1165
- newPreferredDeliveryDateOption: ""
1166
- };
1167
- const response = yield this.connector.changeHeaderPreferredDeliveryDate(request);
1168
- if (response && response.validationResult && response.validationResult.success) {
1169
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1170
- }
1171
- else {
1172
- this._handleExceptionFromResponse(response);
1173
- return null;
1174
- }
1175
- });
1176
- }
1177
- changeHeaderTransactionDeliveryMethod(uuid, method) {
1178
- return __awaiter(this, void 0, void 0, function* () {
1179
- const request = {
1180
- transactionUuid: uuid,
1181
- newDeliveryMethodCode: method
1182
- };
1183
- const response = yield this.connector.changeHeaderDeliveryMethod(request);
1184
- if (response && response.validationResult && response.validationResult.success) {
1185
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1186
- }
1187
- else {
1188
- this._handleExceptionFromResponse(response);
1189
- return null;
1190
- }
1191
- });
1192
- }
1193
- changeHeaderTransactionDeliveryOptions(uuid, options) {
1194
- return __awaiter(this, void 0, void 0, function* () {
1195
- const request = {
1196
- transactionUuid: uuid,
1197
- newDeliveryOptions: options
1198
- };
1199
- const response = yield this.connector.changeHeaderDeliveryOptions(request);
1200
- if (response && response.validationResult && response.validationResult.success) {
1201
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1202
- }
1203
- else {
1204
- this._handleExceptionFromResponse(response);
1205
- return null;
1206
- }
1207
- });
1208
- }
1209
- changeHeaderTransactionPartialDelivery(uuid, allowPartial) {
1210
- return __awaiter(this, void 0, void 0, function* () {
1211
- const request = {
1212
- transactionUuid: uuid,
1213
- newPartialDeliveryAllowed: allowPartial
1214
- };
1215
- const response = yield this.connector.changeHeaderPartialDeliveryAllowed(request);
1216
- if (response && response.validationResult && response.validationResult.success) {
1217
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1218
- }
1219
- else {
1220
- this._handleExceptionFromResponse(response);
1221
- return null;
1222
- }
1223
- });
1224
- }
1225
- changeHeaderTransactionBranch(uuid, branch) {
1226
- return __awaiter(this, void 0, void 0, function* () {
1227
- const request = {
1228
- transactionUuid: uuid,
1229
- newBranchId: branch
1230
- };
1231
- const response = yield this.connector.changeHeaderBranch(request);
1232
- if (response && response.validationResult && response.validationResult.success) {
1233
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1234
- }
1235
- else {
1236
- this._handleExceptionFromResponse(response);
1237
- return null;
1238
- }
1239
- });
1240
- }
1241
- changeHeaderTransactionAdmCoordinator(uuid, relation) {
1242
- return __awaiter(this, void 0, void 0, function* () {
1243
- const request = {
1244
- transactionUuid: uuid,
1245
- newAdmCoordinator: relation
1246
- };
1247
- const response = yield this.connector.changeHeaderAdmCoordinator(request);
1248
- if (response && response.validationResult && response.validationResult.success) {
1249
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1250
- }
1251
- else {
1252
- this._handleExceptionFromResponse(response);
1253
- return null;
1254
- }
1255
- });
1256
- }
1257
- changeHeaderTransactionMarketing(uuid, code) {
1258
- return __awaiter(this, void 0, void 0, function* () {
1259
- const request = {
1260
- transactionUuid: uuid,
1261
- newMarketingCode: code
1262
- };
1263
- const response = yield this.connector.changeHeaderMarketingCode(request);
1264
- if (response && response.validationResult && response.validationResult.success) {
1265
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1266
- }
1267
- else {
1268
- this._handleExceptionFromResponse(response);
1269
- return null;
1270
- }
1271
- });
1272
- }
1273
- changeHeaderTransactionDiscount(uuid, type, amount) {
1274
- return __awaiter(this, void 0, void 0, function* () {
1275
- const request = {
1276
- transactionUuid: uuid,
1277
- orderDiscountType: type,
1278
- discountValue: amount
1279
- };
1280
- const response = yield this.connector.setTransactionDiscounts(request);
1281
- if (response && response.validationResult && response.validationResult.success) {
1282
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1283
- }
1284
- else {
1285
- this._handleExceptionFromResponse(response);
1286
- return null;
1287
- }
1288
- });
1289
- }
1290
- changeHeaderTransactionToDownPay(uuid, downPayment) {
1291
- return __awaiter(this, void 0, void 0, function* () {
1292
- const request = {
1293
- transactionUuid: uuid,
1294
- newToDownPayAmount: downPayment
1295
- };
1296
- const response = yield this.connector.changeHeaderToDownPayAmount(request);
1297
- if (response && response.validationResult && response.validationResult.success) {
1298
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1299
- }
1300
- else {
1301
- this._handleExceptionFromResponse(response);
1302
- return null;
1303
- }
1304
- });
1305
- }
1306
- changeTransactionLineCollectionCode(uuid, lineUuid, code) {
1307
- return __awaiter(this, void 0, void 0, function* () {
1308
- const request = {
1309
- transactionUuid: uuid,
1310
- lineUuid: lineUuid,
1311
- newCollectionCode: code
1312
- };
1313
- const response = yield this.connector.changeTransactionLineCollectionCode(request);
1314
- if (response && response.validationResult && response.validationResult.success) {
1315
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1316
- }
1317
- else {
1318
- this._handleExceptionFromResponse(response);
1319
- return null;
1320
- }
1321
- });
1322
- }
1323
- createOutstandingEntry(uuid, amount) {
1324
- return __awaiter(this, void 0, void 0, function* () {
1325
- const request = {
1326
- transUUID: uuid,
1327
- amount: amount
1328
- };
1329
- const response = yield this.connector.createOutstandingEntry(request);
1330
- if (response && response.validationResult && response.validationResult.success) {
1331
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1332
- }
1333
- else {
1334
- this._handleExceptionFromResponse(response);
1335
- return null;
1336
- }
1337
- });
1338
- }
1339
- registerSalesOrderPayment(uuid, amount, currencyId, paymentMethod, cashRegisterGroupId) {
1340
- return __awaiter(this, void 0, void 0, function* () {
1341
- const request = {
1342
- transUUID: uuid,
1343
- amount: amount,
1344
- currencyId: currencyId,
1345
- paymentMethodCode: paymentMethod,
1346
- cashRegisterGroupId: cashRegisterGroupId
1347
- };
1348
- const response = yield this.connector.registerSalesOrderPayment(request);
1349
- if (response && response.validationResult && response.validationResult.success) {
1350
- return response;
1351
- }
1352
- else {
1353
- this._handleExceptionFromResponse(response);
1354
- return null;
1355
- }
1356
- });
1357
- }
1358
- createIonePaymentLinkAndQRCode(uuid, amount, paymentMethodCode) {
1359
- return __awaiter(this, void 0, void 0, function* () {
1360
- const request = {
1361
- transUUID: uuid,
1362
- amount: amount,
1363
- paymentMethodCode: paymentMethodCode
1364
- };
1365
- const response = yield this.connector.createIonePaymentLinkAndQRCode(request);
1366
- if (response && response.validationResult && response.validationResult.success) {
1367
- return this._boFactory.makeWithRawBackendData(CreatePaymentLinkResult, response.resultObject);
1368
- }
1369
- else {
1370
- this._handleExceptionFromResponse(response);
1371
- return null;
1372
- }
1373
- });
1374
- }
1375
- getPaymentLinkStatus(paymentLinkUUID) {
1376
- return __awaiter(this, void 0, void 0, function* () {
1377
- const response = yield this.connector.getPaymentLinkStatus(paymentLinkUUID);
1378
- if (response && response.validationResult && response.validationResult.success) {
1379
- return this._boFactory.makeWithRawBackendData(PaymentLinkStatus, response.resultObject);
1380
- }
1381
- else {
1382
- this._handleExceptionFromResponse(response);
1383
- return null;
1384
- }
1385
- });
1386
- }
1387
- getDownPaymentInfo(uuid) {
1388
- return __awaiter(this, void 0, void 0, function* () {
1389
- const response = yield this.connector.getDownPaymentInfo(uuid);
1390
- if (response && response.validationResult && response.validationResult.success) {
1391
- return this._boFactory.makeWithRawBackendData(TransactionDownPaymentInfo, response.resultObject);
1392
- }
1393
- else {
1394
- this._handleExceptionFromResponse(response);
1395
- return null;
1396
- }
1397
- });
1398
- }
1399
- getGoodsReceiptStatus(transId, lineNr) {
1400
- return __awaiter(this, void 0, void 0, function* () {
1401
- const response = yield this.connector.getGoodsReceiptStatus(transId, lineNr);
1402
- if (response && response.validationResult && response.validationResult.success) {
1403
- return this._boFactory.makeWithRawBackendData(GoodsReceiptStatusWithHistory, response.resultObject);
1404
- }
1405
- else {
1406
- this._handleExceptionFromResponse(response);
1407
- return null;
1408
- }
1409
- });
1410
- }
1411
- getGoodsReceiptStatusWithHistory(transId, lineNr) {
1412
- return __awaiter(this, void 0, void 0, function* () {
1413
- const response = yield this.connector.getGoodsReceiptStatusWithHistory(transId, lineNr);
1414
- if (response && response.validationResult && response.validationResult.success) {
1415
- return this._boFactory.makeWithRawBackendData(GoodsReceiptStatusWithHistory, response.resultObject);
1416
- }
1417
- else {
1418
- this._handleExceptionFromResponse(response);
1419
- return null;
1420
- }
1421
- });
1422
- }
1423
- receiveGoodsForPurchaseOrder(request) {
1424
- return __awaiter(this, void 0, void 0, function* () {
1425
- const response = yield this.connector.receiveGoodsForPurchaseOrder(request);
1426
- if (response && response.validationResult && response.validationResult.success) {
1427
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1428
- }
1429
- else {
1430
- this._handleExceptionFromResponse(response);
1431
- return null;
1432
- }
1433
- });
1434
- }
1435
- receiveGoodsForPurchaseOrderCorrection(request) {
1436
- return __awaiter(this, void 0, void 0, function* () {
1437
- const response = yield this.connector.receiveGoodsForPurchaseOrderCorrection(request);
1438
- if (response && response.validationResult && response.validationResult.success) {
1439
- return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1440
- }
1441
- else {
1442
- this._handleExceptionFromResponse(response);
1443
- return null;
1444
- }
1445
- });
1446
- }
1447
- getPurchasePortalLines(request) {
1448
- return __awaiter(this, void 0, void 0, function* () {
1449
- return new Promise((resolve, reject) => {
1450
- return this.connector.getPurchasePortalLines(request).then((result) => {
1451
- if (result.validationResult && result.validationResult.success) {
1452
- if (result.resultObjects) {
1453
- resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(PurchasePortalLine, result.resultObjects));
1454
- }
1455
- }
1456
- else {
1457
- this._handleExceptionFromResponse(result);
1458
- reject(null);
1459
- }
1460
- });
1461
- });
1462
- });
1463
- }
1464
- updatePurchasePortalLines(purchasePortalLine) {
1465
- return __awaiter(this, void 0, void 0, function* () {
1466
- const result = yield this.connector.updatePurchasePortalLines(purchasePortalLine);
1467
- if (result && result.validationResult && result.validationResult.success) {
1468
- yield this.commit();
1469
- return null;
1470
- }
1471
- });
1472
- }
1473
- purchaseOrderConfirmation(purchaseOrderConfirmation) {
1474
- return __awaiter(this, void 0, void 0, function* () {
1475
- const result = yield this.connector.getPurchaseOrderConfirmation(purchaseOrderConfirmation);
1476
- if (result && result.validationResult && result.validationResult.success) {
1477
- yield this.commit();
1478
- return null;
1479
- }
1480
- });
1481
- }
1482
- lockPurchasePortalLines(transIdPurchase, lineId) {
1483
- return __awaiter(this, void 0, void 0, function* () {
1484
- return new Promise((resolve, reject) => {
1485
- return this.connector.lockPurchasePortalLines(transIdPurchase, lineId).then((result) => __awaiter(this, void 0, void 0, function* () {
1486
- if (result.validationResult && result.validationResult.success) {
1487
- resolve(true);
1488
- }
1489
- else {
1490
- reject(result.validationMessagesAsString);
1491
- }
1492
- }));
1493
- });
1494
- });
1495
- }
1496
- getStockStickerTemplates(data) {
1497
- return __awaiter(this, void 0, void 0, function* () {
1498
- return new Promise((resolve, reject) => {
1499
- // @ts-ignore
1500
- return this.sharedConnector.getStockStickerPrintLayouts(data).then((result) => {
1501
- if (result.validationResult && result.validationResult.success) {
1502
- if (result.resultObject) {
1503
- resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockStickersPrintLayouts, result.resultObject));
1504
- }
1505
- }
1506
- else {
1507
- reject(result.validationMessagesAsString);
1508
- }
1509
- });
1510
- });
1511
- });
1512
- }
1513
- generateCommissionOrders(transId, onlyGenerateForDirectSellSuppliers) {
1514
- return __awaiter(this, void 0, void 0, function* () {
1515
- return new Promise((resolve, reject) => {
1516
- return this.connector.generateCommissionOrders(transId, onlyGenerateForDirectSellSuppliers).then((result) => __awaiter(this, void 0, void 0, function* () {
1517
- if (result.validationResult && result.validationResult.success) {
1518
- resolve(true);
1519
- }
1520
- else {
1521
- reject(result.validationMessagesAsString);
1522
- }
1523
- }));
1524
- });
1525
- });
1526
- }
1527
- getDeliveryOrderStatus(transId, lineNr) {
1528
- return __awaiter(this, void 0, void 0, function* () {
1529
- const response = yield this.connector.getDeliveryOrderStatus(transId, lineNr);
1530
- if (response && response.validationResult && response.validationResult.success) {
1531
- return this._boFactory.makeWithRawBackendData(DeliveryOrderStatus, response.resultObject);
1532
- }
1533
- else {
1534
- this._handleExceptionFromResponse(response);
1535
- return null;
1536
- }
1537
- });
1538
- }
1539
- getAvailableStockGroupedByWLBSByTransIdLineNr(transId, lineNr) {
1540
- return __awaiter(this, void 0, void 0, function* () {
1541
- const response = yield this.connector.getAvailableStockGroupedByWLBSByTransIdLineNr(transId, lineNr);
1542
- if (response && response.validationResult && response.validationResult.success) {
1543
- return this._boFactory.makeBOArrayFromRawBackendDataArray(AvailableStock, response.resultObject);
1544
- }
1545
- else {
1546
- this._handleExceptionFromResponse(response);
1547
- return null;
1548
- }
1549
- });
1550
- }
1551
- allocateGoodsForSalesOrder(request) {
1552
- return __awaiter(this, void 0, void 0, function* () {
1553
- const response = yield this.connector.allocateGoodsForSalesOrder(request);
1554
- if (response && response.validationResult && response.validationResult.success) {
1555
- return true;
1556
- }
1557
- else {
1558
- this._handleExceptionFromResponse(response);
1559
- return null;
1560
- }
1561
- });
1562
- }
1563
- allocateGoodsForSalesOrderCorrection(request) {
1564
- return __awaiter(this, void 0, void 0, function* () {
1565
- const response = yield this.connector.allocateGoodsForSalesOrderCorrection(request);
1566
- if (response && response.validationResult && response.validationResult.success) {
1567
- return true;
1568
- }
1569
- else {
1570
- this._handleExceptionFromResponse(response);
1571
- return null;
1572
- }
1573
- });
1574
- }
1575
- getGoodsAllocationStatus(transId, lineNr) {
1576
- return __awaiter(this, void 0, void 0, function* () {
1577
- const response = yield this.connector.getGoodsAllocationStatus(transId, lineNr);
1578
- if (response && response.resultObject) {
1579
- return this._boFactory.makeWithRawBackendData(GoodsAllocationStatus, response.resultObject);
1580
- }
1581
- else {
1582
- this._handleExceptionFromResponse(response);
1583
- return null;
1584
- }
1585
- });
1586
- }
1587
- getGoodsAllocationStatusWithHistory(transId, lineNr) {
1588
- return __awaiter(this, void 0, void 0, function* () {
1589
- const response = yield this.connector.getGoodsAllocationStatusWithHistory(transId, lineNr);
1590
- if (response && response.resultObject) {
1591
- return this._boFactory.makeWithRawBackendData(GoodsAllocationStatusWithHistory, response.resultObject);
1592
- }
1593
- else {
1594
- this._handleExceptionFromResponse(response);
1595
- return null;
1596
- }
1597
- });
1598
- }
1599
- getOrderConfirmationEmailLayouts(transactionUUID) {
1600
- return __awaiter(this, void 0, void 0, function* () {
1601
- const response = yield this.connector.getOrderConfirmationEmailLayouts(transactionUUID);
1602
- if (response && response.validationResult && response.validationResult.success) {
1603
- return this._boFactory.makeBOArrayFromRawBackendDataArray(ReportLayoutSelectionEmail, response.resultObject);
1604
- }
1605
- else {
1606
- this._handleExceptionFromResponse(response);
1607
- return null;
1608
- }
1609
- });
1610
- }
1611
- getOrderConfirmationPrintLayouts(transactionUUID) {
1612
- return __awaiter(this, void 0, void 0, function* () {
1613
- const response = yield this.connector.getOrderConfirmationPrintLayouts(transactionUUID);
1614
- if (response && response.validationResult && response.validationResult.success) {
1615
- return this._boFactory.makeBOArrayFromRawBackendDataArray(ReportLayoutSelectionPrint, response.resultObject);
1616
- }
1617
- else {
1618
- this._handleExceptionFromResponse(response);
1619
- return null;
1620
- }
1621
- });
1622
- }
1623
- getOrderConfirmationDefaultSendMethod(relationId) {
1624
- return __awaiter(this, void 0, void 0, function* () {
1625
- const response = yield this.connector.getOrderConfirmationDefaultSendMethod(relationId);
1626
- if (response && response.validationResult && response.validationResult.success) {
1627
- return response.resultObject;
1628
- }
1629
- else {
1630
- this._handleExceptionFromResponse(response);
1631
- return null;
1632
- }
1633
- });
1634
- }
1635
- printOrderConfirmation(request) {
1636
- return __awaiter(this, void 0, void 0, function* () {
1637
- const response = yield this.connector.printOrderConfirmation(request);
1638
- if (response && response.validationResult && response.validationResult.success) {
1639
- return response.resultObject;
1640
- }
1641
- else {
1642
- this._handleExceptionFromResponse(response);
1643
- return null;
1644
- }
1645
- });
1646
- }
1647
- emailOrderConfirmation(request) {
1648
- return __awaiter(this, void 0, void 0, function* () {
1649
- const response = yield this.connector.emailOrderConfirmation(request);
1650
- if (response && response.validationResult && response.validationResult.success) {
1651
- return response.resultObject;
1652
- }
1653
- else {
1654
- this._handleExceptionFromResponse(response);
1655
- return null;
1656
- }
1657
- });
1658
- }
1659
- pdfOrderConfirmation(request) {
1660
- return __awaiter(this, void 0, void 0, function* () {
1661
- const response = yield this.connector.pdfOrderConfirmation(request);
1662
- if (response && response.validationResult && response.validationResult.success) {
1663
- return response.resultObject;
1664
- }
1665
- else {
1666
- this._handleExceptionFromResponse(response);
1667
- return null;
1668
- }
1669
- });
1670
- }
1671
- printPurchaseOrder(request) {
1672
- return __awaiter(this, void 0, void 0, function* () {
1673
- const response = yield this.connector.printPurchaseOrder(request);
1674
- if (response && response.validationResult && response.validationResult.success) {
1675
- return response.resultObject;
1676
- }
1677
- else {
1678
- this._handleExceptionFromResponse(response);
1679
- return null;
1680
- }
1681
- });
1682
- }
1683
- emailPurchaseOrder(request) {
1684
- return __awaiter(this, void 0, void 0, function* () {
1685
- const response = yield this.connector.emailPurchaseOrder(request);
1686
- if (response && response.validationResult && response.validationResult.success) {
1687
- return response.resultObject;
1688
- }
1689
- else {
1690
- this._handleExceptionFromResponse(response);
1691
- return null;
1692
- }
1693
- });
1694
- }
1695
- pdfPurchaseOrder(request) {
1696
- return __awaiter(this, void 0, void 0, function* () {
1697
- const response = yield this.connector.pdfPurchaseOrder(request);
1698
- if (response && response.validationResult && response.validationResult.success) {
1699
- return response.resultObject;
1700
- }
1701
- else {
1702
- this._handleExceptionFromResponse(response);
1703
- return null;
1704
- }
1705
- });
1706
- }
1707
- getPurchaseOrderEmailLayouts(transactionUUID) {
1708
- return __awaiter(this, void 0, void 0, function* () {
1709
- const response = yield this.connector.getPurchaseOrderEmailLayouts(transactionUUID);
1710
- if (response && response.validationResult && response.validationResult.success) {
1711
- return this._boFactory.makeBOArrayFromRawBackendDataArray(ReportLayoutSelectionEmail, response.resultObject);
1712
- }
1713
- else {
1714
- this._handleExceptionFromResponse(response);
1715
- return null;
1716
- }
1717
- });
1718
- }
1719
- getPurchaseOrderPrintLayouts(transactionUUID) {
1720
- return __awaiter(this, void 0, void 0, function* () {
1721
- const response = yield this.connector.getPurchaseOrderPrintLayouts(transactionUUID);
1722
- if (response && response.validationResult && response.validationResult.success) {
1723
- return this._boFactory.makeBOArrayFromRawBackendDataArray(ReportLayoutSelectionPrint, response.resultObject);
1724
- }
1725
- else {
1726
- this._handleExceptionFromResponse(response);
1727
- return null;
1728
- }
1729
- });
1730
- }
1731
- getDefaultEmailAddressListForOrderConfirmation(transactionUUID) {
1732
- return __awaiter(this, void 0, void 0, function* () {
1733
- const response = yield this.connector.getDefaultEmailAddressListForOrderConfirmation(transactionUUID);
1734
- if (response && response.validationResult && response.validationResult.success) {
1735
- return response.resultObject;
1736
- }
1737
- else {
1738
- this._handleExceptionFromResponse(response);
1739
- return null;
1740
- }
1741
- });
1742
- }
1743
- getPurchaseOrderDefaultSendMethod(relationId) {
1744
- return __awaiter(this, void 0, void 0, function* () {
1745
- const response = yield this.connector.getPurchaseOrderDefaultSendMethod(relationId);
1746
- if (response && response.validationResult && response.validationResult.success) {
1747
- return response.resultObject;
1748
- }
1749
- else {
1750
- this._handleExceptionFromResponse(response);
1751
- return null;
1752
- }
1753
- });
1754
- }
1755
- generateAndSendPurchaseOrdersForSalesOrder(transactionId) {
1756
- return __awaiter(this, void 0, void 0, function* () {
1757
- const response = yield this.connector.generateAndSendPurchaseOrdersForSalesOrder(transactionId);
1758
- if (response && response.validationResult && response.validationResult.success) {
1759
- return response.resultObject;
1760
- }
1761
- else {
1762
- this._handleExceptionFromResponse(response);
1763
- return null;
1764
- }
1765
- });
1766
- }
1767
- getPurchaseAdviceLines(filters, goodId) {
1768
- return __awaiter(this, void 0, void 0, function* () {
1769
- const response = yield this.connector.getPurchaseAdviceLines(filters, goodId);
1770
- if (response && response.validationResult && response.validationResult.success) {
1771
- return this._boFactory.makeBOArrayFromRawBackendDataArray(PurchaseAdviceLine, response.resultObject);
1772
- }
1773
- else {
1774
- this._handleExceptionFromResponse(response);
1775
- return null;
1776
- }
1777
- });
1778
- }
1779
- generateAndSendPurchaseOrders(purchaseAdviceLines) {
1780
- return __awaiter(this, void 0, void 0, function* () {
1781
- const response = yield this.connector.generateAndSendPurchaseOrders(purchaseAdviceLines);
1782
- if (response && response.validationResult && response.validationResult.success) {
1783
- return true;
1784
- }
1785
- else {
1786
- this._handleExceptionFromResponse(response);
1787
- return null;
1788
- }
1789
- });
1790
- }
1791
- _handleExceptionFromResponse(result) {
1792
- this._errorService.showValidationError(result);
1793
- }
1794
- }
1795
- TransactionConnectorAdapterService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TransactionConnectorAdapterService_Factory() { return new TransactionConnectorAdapterService(i0.ɵɵinject(i1.OptionsService), i0.ɵɵinject(i2.SelectMultipleCacheService), i0.ɵɵinject(i3.SelectMultipleParameterizedCacheService), i0.ɵɵinject(i4.ErrorService)); }, token: TransactionConnectorAdapterService, providedIn: "root" });
1796
- TransactionConnectorAdapterService.decorators = [
1797
- { type: Injectable, args: [{
1798
- providedIn: "root"
1799
- },] }
1800
- ];
1801
- TransactionConnectorAdapterService.ctorParameters = () => [
1802
- { type: OptionsService },
1803
- { type: SelectMultipleCacheService },
1804
- { type: SelectMultipleParameterizedCacheService },
1805
- { type: ErrorService }
1806
- ];
1807
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tY29ubmVjdG9yLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3ItYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUM1RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUUxRyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saURBQWlELENBQUM7QUFFeEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUV2RixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUdoSSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUUzRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDdkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUNyRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUNsRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBR2hGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUMxRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFHN0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDdEcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sdURBQXVELENBQUM7QUFFdEYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sMkVBQTJFLENBQUM7QUFFeEgsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBRXJGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQzNHLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRTNFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBQzlGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQ3JILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSx1RUFBdUUsQ0FBQztBQUNqSCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQUN0RyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFFaEYsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDckcsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDcEcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzNFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMvRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDdEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDbEcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzlFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ2pILE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seURBQXlELENBQUM7QUFHdkYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDdEcsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFDOUgsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDMUcsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFZMUcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOERBQThELENBQUM7Ozs7OztBQU1oRyxNQUFNLE9BQU8sa0NBQWtDO0lBTTdDLFlBQ1UsZUFBK0IsRUFDL0IsMkJBQXVELEVBQ3ZELHdDQUFpRixFQUNqRixhQUEyQjtRQUgzQixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE0QjtRQUN2RCw2Q0FBd0MsR0FBeEMsd0NBQXdDLENBQXlDO1FBQ2pGLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBTjdCLGVBQVUsR0FBMEIsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO0lBT3JFLENBQUM7SUFFUyxPQUFPOztZQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25FLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUNoRSxDQUFDO0tBQUE7SUFFWSxvQkFBb0IsQ0FBQyxNQUFjOztZQUM5QyxNQUFNLE1BQU0sR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFGLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFpQyxDQUFDO2FBQ3ZIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLHNCQUFzQixDQUFDLFNBQWlCOztZQUNuRCxNQUFNLE1BQU0sR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQy9GLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlELE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQzthQUM1QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSxjQUFjLENBQUMsTUFBdUIsRUFBRSxXQUFtQixFQUFFLGVBQXdCLEVBQUUsS0FBYzs7WUFDaEgsTUFBTSxNQUFNLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekgsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUQsSUFBSSxNQUFNLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLEtBQUssRUFBRSxFQUFFO29CQUNySixPQUFPLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUMxRTtxQkFBTTtvQkFDTCxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUU7d0JBQ3ZCLElBQUksZUFBZSxFQUFFOzRCQUNuQixPQUFPLFVBQVUsQ0FBQyxnQ0FBZ0MsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFDN0UsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQzt5QkFDakY7d0JBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQztxQkFDckY7eUJBQ0ksRUFBRSxXQUFXO3dCQUNoQixPQUFPLEVBQUUsQ0FBQztxQkFDWDtpQkFDRjthQUNGO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLFlBQVk7O1lBQ3ZCLE1BQU0sTUFBTSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUUsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGtDQUFrQyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsYUFBYSxDQUF5QixDQUFDO2FBQ2xIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxFQUFFLENBQUM7YUFDWDtRQUNILENBQUM7S0FBQTtJQUVZLGlCQUFpQjs7WUFDNUIsTUFBTSxNQUFNLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2pGLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQ0FBa0MsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBK0IsQ0FBQzthQUM5SDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sRUFBRSxDQUFDO2FBQ1g7UUFDSCxDQUFDO0tBQUE7SUFFWSxVQUFVLENBQUMsV0FBbUI7O1lBQ3pDLE1BQU0sU0FBUyxHQUFjLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUM7UUFDakUsQ0FBQztLQUFBO0lBRVksa0JBQWtCOztZQUM3QixNQUFNLE1BQU0sR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDbEYsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGtDQUFrQyxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFnQyxDQUFDO2FBQ2hJO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxFQUFFLENBQUM7YUFDWDtRQUNILENBQUM7S0FBQTtJQUVZLDBCQUEwQjs7WUFDckMsTUFBTSxlQUFlLEdBQTZCLEVBQUUsQ0FBQztZQUVyRCxNQUFNLG1CQUFtQixHQUFxQixNQUFNLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzlFLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLEdBQUcsR0FBVyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDOUUsTUFBTSxlQUFlLEdBQW1CLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvRCxNQUFNLGFBQWEsR0FBNEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO2dCQUN4SSxhQUFhLENBQUMsNkJBQTZCLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQzdELGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDckM7WUFDRCxPQUFPLGVBQWUsQ0FBQztRQUN6QixDQUFDO0tBQUE7SUFFWSxpQkFBaUI7O1lBQzVCLE1BQU0sTUFBTSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNqRixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsa0NBQWtDLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQTJCLENBQUM7YUFDdEg7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQyxPQUFPLEVBQUUsQ0FBQzthQUNYO1FBQ0gsQ0FBQztLQUFBO0lBRVkscUNBQXFDLENBQUMsZUFBdUI7O1lBQ3hFLE1BQU0sTUFBTSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMscUNBQXFDLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDcEgsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUQsT0FBdUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQ0FBa0MsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDckk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQyxPQUFPLEVBQUUsQ0FBQzthQUNYO1FBQ0gsQ0FBQztLQUFBO0lBRVkseUJBQXlCLENBQUMsSUFBcUIsRUFBRSxhQUFxQjs7WUFDakYsTUFBTSxNQUFNLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDNUcsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQXVDLENBQUM7YUFDbkk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksa0JBQWtCLENBQUMsYUFBcUI7O1lBQ25ELE1BQU0sTUFBTSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDL0YsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQXVDLENBQUM7YUFDbkk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksbUJBQW1CLENBQUMsYUFBcUIsRUFBRSxPQUFlOztZQUNyRSxNQUFNLE1BQU0sR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM5RyxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBcUMsQ0FBQzthQUMvSDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSxnQkFBZ0IsQ0FBQyxNQUFlLEVBQUUsS0FBYzs7WUFDM0QsTUFBTSxNQUFNLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVGLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQ0FBa0MsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBOEIsQ0FBQzthQUM1SDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sRUFBRSxDQUFDO2FBQ1g7UUFDSCxDQUFDO0tBQUE7SUFFWSxhQUFhLENBQUMsSUFBYTs7WUFDdEMsTUFBTSxNQUFNLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakYsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGtDQUFrQyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUEyQixDQUFDO2FBQ3RIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxFQUFFLENBQUM7YUFDWDtRQUNILENBQUM7S0FBQTtJQUVZLFVBQVUsQ0FBQyxZQUFxQixLQUFLOztZQUNoRCxNQUFNLE1BQU0sR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNuRixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsa0NBQWtDLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQXFCLENBQUM7YUFDMUc7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQyxPQUFPLEVBQUUsQ0FBQzthQUNYO1FBQ0gsQ0FBQztLQUFBO0lBRVksa0JBQWtCLENBQUMsT0FBcUM7O1lBQ25FLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsRSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUNsRSxNQUFNLE1BQU0sR0FBNEIsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO2dCQUN0RSxNQUFNLENBQUMsS0FBSyxHQUFJLFFBQVEsQ0FBQyxnQkFBd0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyw0QkFBNEI7Z0JBQzNGLE1BQU0sQ0FBQyxZQUFZLEdBQVksSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQ0FBa0MsQ0FBQyxxQkFBcUIsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUE0QixDQUFDO2dCQUM1SixPQUFPLE1BQU0sQ0FBQzthQUNmO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLGdCQUFnQixDQUFDLFlBQTBCOztZQUN0RCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBaUIsRUFBRSxNQUFnQixFQUFFLEVBQUU7Z0JBQ3pELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUErQixFQUFFLEVBQUU7b0JBQzVGLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzlELE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7cUJBQzlCO3lCQUFNO3dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNkO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFWSxrQkFBa0I7O1lBQzdCLE1BQU0sTUFBTSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNsRixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsa0NBQWtDLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQWdDLENBQUM7YUFDaEk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQyxPQUFPLEVBQUUsQ0FBQzthQUNYO1FBQ0gsQ0FBQztLQUFBO0lBRVksa0JBQWtCOztZQUM3QixNQUFNLE1BQU0sR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDbEYsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGtDQUFrQyxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFnQyxDQUFDO2FBQ2hJO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxFQUFFLENBQUM7YUFDWDtRQUNILENBQUM7S0FBQTtJQUVZLHNCQUFzQixDQUFDLFdBQW1CLEVBQUUsT0FBZTs7WUFDdEUsTUFBTSxNQUFNLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDMUcsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUQsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtvQkFDOUQsTUFBTSxZQUFZLEdBQXVDLElBQUksa0NBQWtDLEVBQUUsQ0FBQztvQkFDbEcsWUFBWSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztvQkFDN0MsWUFBWSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztvQkFDakQsWUFBWSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztvQkFDakQsWUFBWSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztvQkFDdkQsT0FBTyxZQUFZLENBQUM7aUJBQ3JCO3FCQUFNO29CQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDMUMsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtRQUNILENBQUM7S0FBQTtJQUVZLGtCQUFrQixDQUFDLFlBQW9COztZQUNsRCxNQUFNLE1BQU0sR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzlGLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQ0FBa0MsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBK0IsQ0FBQzthQUM5SDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sRUFBRSxDQUFDO2FBQ1g7UUFDSCxDQUFDO0tBQUE7SUFFWSxrQkFBa0IsQ0FBQyxZQUFvQjs7WUFDbEQsTUFBTSxNQUFNLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM5RixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsa0NBQWtDLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQStCLENBQUM7YUFDOUg7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQyxPQUFPLEVBQUUsQ0FBQzthQUNYO1FBQ0gsQ0FBQztLQUFBO0lBRVksK0JBQStCLENBQUMsTUFBYzs7WUFDekQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQWlCLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO2dCQUN6RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBK0IsRUFBRSxFQUFFO29CQUNyRyxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO3dCQUM5RCxPQUFPLENBQWdDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztxQkFDOUQ7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUMxQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQ1o7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVZLFlBQVksQ0FBQyxZQUFvQjs7WUFDNUMsTUFBTSxNQUFNLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDeEYsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUQsTUFBTSxLQUFLLEdBQThDLElBQUksQ0FBQyxVQUFVLENBQUMsa0NBQWtDLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDakosS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2RCxPQUFPLEtBQUssQ0FBQzthQUNkO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxFQUFFLENBQUM7YUFDWDtRQUNILENBQUM7S0FBQTtJQUVZLGdCQUFnQixDQUFDLFlBQW9COztZQUNoRCxNQUFNLE1BQU0sR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVGLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQ0FBa0MsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBOEIsQ0FBQzthQUMzSDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sRUFBRSxDQUFDO2FBQ1g7UUFDSCxDQUFDO0tBQUE7SUFFWSxlQUFlLENBQUMsSUFBVzs7WUFDdEMsTUFBTSxNQUFNLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkYsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGtDQUFrQyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUE2QixDQUFDO2FBQzFIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxFQUFFLENBQUM7YUFDWDtRQUNILENBQUM7S0FBQTtJQUVZLE9BQU8sQ0FBQyxRQUFnQjs7WUFDbkMsTUFBTSxNQUFNLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0UsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGtDQUFrQyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFxQixDQUFDO2FBQzFHO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxFQUFFLENBQUM7YUFDWDtRQUNILENBQUM7S0FBQTtJQUVZLGNBQWM7O1lBQ3pCLE1BQU0sTUFBTSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDOUUsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGtDQUFrQyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUE0QixDQUFDO2FBQ3hIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxFQUFFLENBQUM7YUFDWDtRQUNILENBQUM7S0FBQTtJQUVZLGFBQWEsQ0FBQyxRQUFpQjs7WUFDMUMsTUFBTSxNQUFNLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckYsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGtDQUFrQyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUEyQixDQUFDO2FBQ3RIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxFQUFFLENBQUM7YUFDWDtRQUNILENBQUM7S0FBQTtJQUVZLHNCQUFzQjs7WUFDakMsTUFBTSxNQUFNLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3RGLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQ0FBa0MsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBaUMsQ0FBQzthQUNsSTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sRUFBRSxDQUFDO2FBQ1g7UUFDSCxDQUFDO0tBQUE7SUFFWSxpQkFBaUI7O1lBQzVCLE1BQU0sTUFBTSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLEVBQUUsQ0FBQztZQUM5RixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsa0NBQWtDLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQStCLENBQUM7YUFDN0g7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQyxPQUFPLEVBQUUsQ0FBQzthQUNYO1FBQ0gsQ0FBQztLQUFBO0lBRU0sTUFBTTtRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0saUJBQWlCLENBQUMsSUFBcUIsRUFBRSxRQUFnQjtRQUM5RCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBaUIsRUFBRSxNQUFnQixFQUFFLEVBQUU7WUFDekQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUErQixFQUFFLEVBQUU7Z0JBQy9GLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7b0JBQzlELE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2lCQUMvRjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDZDtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVksZ0JBQWdCLENBQUMsT0FBZ0M7O1lBQzVELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFpQixFQUFFLE1BQWdCLEVBQUUsRUFBRTtnQkFDekQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQStCLEVBQUUsRUFBRTtvQkFDdkYsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTt3QkFDOUQsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7cUJBQy9GO3lCQUFNO3dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNkO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFWSx1QkFBdUIsQ0FBQyxPQUF1Qzs7WUFDMUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQWlCLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO2dCQUN6RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBK0IsRUFBRSxFQUFFO29CQUM5RixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO3dCQUM5RCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztxQkFDL0Y7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2Q7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVZLG1CQUFtQixDQUFDLE9BQW1DOztZQUNsRSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBaUIsRUFBRSxNQUFnQixFQUFFLEVBQUU7Z0JBQ3pELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUErQixFQUFFLEVBQUU7b0JBQzFGLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzlELE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO3FCQUMvRjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZDtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRVksa0JBQWtCLENBQUMsT0FBa0M7O1lBQ2hFLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFpQixFQUFFLE1BQWdCLEVBQUUsRUFBRTtnQkFDekQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQStCLEVBQUUsRUFBRTtvQkFDekYsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTt3QkFDOUQsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7cUJBQy9GO3lCQUFNO3dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNkO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFWSxvQkFBb0IsQ0FBQyxPQUFvQzs7WUFDcEUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQWlCLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO2dCQUN6RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBK0IsRUFBRSxFQUFFO29CQUMzRixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO3dCQUM5RCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztxQkFDL0Y7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2Q7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUdNLGVBQWUsQ0FBQyxJQUFZO1FBQ2pDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFpQixFQUFFLE1BQWdCLEVBQUUsRUFBRTtZQUN6RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQStCLEVBQUUsRUFBRTtnQkFDbkYsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtvQkFDOUQsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7aUJBQy9GO3FCQUFNO29CQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNkO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFWSxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsUUFBZ0IsRUFBRSxRQUFnQjs7WUFDN0UsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQWlCLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO2dCQUN6RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUErQixFQUFFLEVBQUU7b0JBQ3pHLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzlELE9BQU8sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQzFDO3lCQUFNO3dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDMUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNmO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFWSwwQkFBMEIsQ0FBQyxtQkFBc0Q7O1lBQzVGLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFpQixFQUFFLE1BQWdCLEVBQUUsRUFBRTtnQkFDekQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLDBCQUEwQixDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBK0IsRUFBRSxFQUFFO29CQUM3RyxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO3dCQUM5RCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztxQkFDL0Y7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2Q7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVZLHdCQUF3QixDQUFDLGlCQUFrRDs7WUFDdEYsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQWlCLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO2dCQUN6RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUErQixFQUFFLEVBQUU7b0JBQ3pHLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzlELE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO3FCQUMvRjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZDtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRVksa0JBQWtCLENBQzdCLElBQVksRUFDWixXQUFnQyxFQUNoQyxTQUFpQixFQUNqQixNQUFjLEVBQ2QsV0FBbUIsRUFDbkIsY0FBc0IsRUFDdEIsUUFBaUIsRUFDakIsV0FBbUIsRUFDbkIsV0FBbUI7O1lBR25CLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFpQixFQUFFLE1BQWdCLEVBQUUsRUFBRTtnQkFDekQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBK0IsRUFBRSxFQUFFO29CQUN2TCxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO3dCQUM5RCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztxQkFDL0Y7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2Q7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVZLHdCQUF3QixDQUFDLElBQVksRUFBRSxlQUF1QixFQUFFLElBQVksRUFBRSxNQUFjLEVBQUUsWUFBcUIsRUFBRSxnQkFBd0IsRUFBRSxXQUFvQixFQUFFLFdBQW9COztZQUVwTSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBaUIsRUFBRSxNQUFnQixFQUFFLEVBQUU7Z0JBQ3pELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUErQixFQUFFLEVBQUU7b0JBQ3JMLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzlELE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO3FCQUMvRjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZDtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRVksd0JBQXdCLENBQUMsSUFBWSxFQUFFLFVBQWtCOztZQUNwRSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBaUIsRUFBRSxNQUFnQixFQUFFLEVBQUU7Z0JBQ3pELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBK0IsRUFBRSxFQUFFO29CQUN4RyxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO3dCQUM5RCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztxQkFDL0Y7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2Q7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVZLDZCQUE2QixDQUFDLGlDQUF1RTs7WUFDaEgsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQWlCLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO2dCQUN6RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUErQixFQUFFLEVBQUU7b0JBQzlILElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzlELE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO3FCQUMvRjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZDtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRVksa0JBQWtCLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsV0FBb0IsRUFBRSxXQUFvQjs7WUFFeEcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQWlCLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO2dCQUN6RCxNQUFNLE9BQU8sR0FBOEI7b0JBQ3pDLGVBQWUsRUFBRSxJQUFJO29CQUNyQixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsV0FBVyxFQUFFLFdBQVc7b0JBQ3hCLFdBQVcsRUFBRSxXQUFXO2lCQUN6QixDQUFBO2dCQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUErQixFQUFFLEVBQUU7b0JBQ3pGLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzlELE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO3FCQUMvRjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZDtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRVksd0JBQXdCLENBQUMsUUFBZ0I7O1lBQ3BELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFpQixFQUFFLE1BQWdCLEVBQUUsRUFBRTtnQkFDekQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQStCLEVBQUUsRUFBRTtvQkFDaEcsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTt3QkFDOUQsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7cUJBQy9GO3lCQUFNO3dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNkO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFTCxDQUFDO0tBQUE7SUFFWSxxQkFBcUIsQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7O1lBQy9ELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFpQixFQUFFLE1BQWdCLEVBQUUsRUFBRTtnQkFDekQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUErQixFQUFFLEVBQUU7b0JBQ25HLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzlELE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO3FCQUMvRjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZDtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBR1ksNkJBQTZCLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsV0FBbUI7O1lBQzVGLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFpQixFQUFFLE1BQWdCLEVBQUUsRUFBRTtnQkFDekQsTUFBTSxPQUFPLEdBQUc7b0JBQ2QsZUFBZSxFQUFFLElBQUk7b0JBQ3JCLFFBQVEsRUFBRSxRQUFRO29CQUNsQixXQUFXLEVBQUUsV0FBVztpQkFDekIsQ0FBQTtnQkFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBK0IsRUFBRSxFQUFFO29CQUNwRyxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO3dCQUM5RCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztxQkFDL0Y7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2Q7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVZLG1DQUFtQyxDQUFDLElBQVksRUFBRSxRQUFnQixFQUFFLElBQVk7O1lBQzNGLE1BQU0sT0FBTyxHQUFHO2dCQUNkLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsaUJBQWlCLEVBQUUsSUFBSTthQUN4QixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQ0FBbUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1RyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksNkJBQTZCLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsRUFBVTs7WUFDbkYsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixhQUFhLEVBQUUsRUFBRTthQUNsQixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0RyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksOEJBQThCLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsZUFBdUI7O1lBQ2pHLE1BQU0sT0FBTyxHQUFHO2dCQUNkLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsa0JBQWtCLEVBQUUsZUFBZTthQUNwQyxDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2RyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksMEJBQTBCLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsS0FBYTs7WUFDbkYsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixRQUFRLEVBQUUsS0FBSzthQUNoQixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksOEJBQThCLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsU0FBaUI7O1lBQzNGLE1BQU0sT0FBTyxHQUFHO2dCQUNkLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsZ0JBQWdCLEVBQUUsU0FBUzthQUM1QixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2RyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksd0JBQXdCLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsRUFBVTs7WUFDOUUsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixRQUFRLEVBQUUsRUFBRTthQUNiLENBQUM7WUFDRixNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pHLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUF5QyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNqSTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSxpQ0FBaUMsQ0FBQyxJQUFZLEVBQUUsUUFBZ0IsRUFBRSxJQUFrQixFQUFFLFFBQWdCLEVBQUUsTUFBYyxFQUFFLElBQVk7O1lBQy9JLE1BQU0sT0FBTyxHQUFHO2dCQUNkLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFdBQVcsRUFBRSxRQUFRO2dCQUNyQixpQkFBaUIsRUFBRSxNQUFNO2dCQUN6QixlQUFlLEVBQUUsSUFBSTthQUN0QixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0RyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksbUNBQW1DLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsTUFBYzs7WUFDN0YsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixxQkFBcUIsRUFBRSxNQUFNO2FBQzlCLENBQUM7WUFDRixNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLG1DQUFtQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVHLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUF5QyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNqSTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSxpQ0FBaUMsQ0FBQyxJQUFZLEVBQUUsUUFBZ0IsRUFBRSxJQUFVOztZQUN2RixNQUFNLE9BQU8sR0FBRztnQkFDZCxlQUFlLEVBQUUsSUFBSTtnQkFDckIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLGVBQWUsRUFBRSxJQUFJO2FBQ3RCLENBQUM7WUFDRixNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGlDQUFpQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFHLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUF5QyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNqSTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSxpQ0FBaUMsQ0FBQyxJQUFZLEVBQUUsUUFBZ0IsRUFBRSxJQUFZOztZQUN6RixNQUFNLE9BQU8sR0FBRztnQkFDZCxlQUFlLEVBQUUsSUFBSTtnQkFDckIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLGVBQWUsRUFBRSxJQUFJO2FBQ3RCLENBQUM7WUFDRixNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGlDQUFpQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFHLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUF5QyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNqSTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSw2QkFBNkIsQ0FBQyxJQUFZLEVBQUUsUUFBZ0IsRUFBRSxJQUFZOztZQUNyRixNQUFNLE9BQU8sR0FBRztnQkFDZCxlQUFlLEVBQUUsSUFBSTtnQkFDckIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFdBQVcsRUFBRSxJQUFJO2FBQ2xCLENBQUM7WUFDRixNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLDZCQUE2QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RHLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUF5QyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNqSTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSwwQ0FBMEMsQ0FBQyxJQUFZLEVBQUUsUUFBZ0IsRUFBRSxhQUFxQjs7WUFDM0csTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQix3QkFBd0IsRUFBRSxhQUFhO2FBQ3hDLENBQUM7WUFDRixNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLDBDQUEwQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25ILElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUF5QyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNqSTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSw4QkFBOEIsQ0FBQyxJQUFZLEVBQUUsUUFBZ0IsRUFBRSxTQUFpQjs7WUFDM0YsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixZQUFZLEVBQUUsU0FBUzthQUN4QixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2RyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksb0NBQW9DLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsZUFBdUI7O1lBQ3ZHLE1BQU0sT0FBTyxHQUFHO2dCQUNkLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsa0JBQWtCLEVBQUUsZUFBZTthQUNwQyxDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQ0FBb0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3RyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksaUNBQWlDLENBQUMsSUFBWSxFQUFFLFVBQW1COztZQUM5RSxNQUFNLE9BQU8sR0FBRztnQkFDZCxlQUFlLEVBQUUsSUFBSTtnQkFDckIsd0JBQXdCLEVBQUUsVUFBVTthQUNyQyxDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQ0FBaUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxRyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksMkJBQTJCLENBQUMsSUFBWSxFQUFFLFFBQWdCOztZQUNyRSxNQUFNLE9BQU8sR0FBRztnQkFDZCxlQUFlLEVBQUUsSUFBSTtnQkFDckIsMEJBQTBCLEVBQUUsUUFBUTthQUNyQyxDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2RyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksMEJBQTBCLENBQUMsSUFBWSxFQUFFLFFBQWdCOztZQUNwRSxNQUFNLE9BQU8sR0FBRztnQkFDZCxlQUFlLEVBQUUsSUFBSTtnQkFDckIsc0JBQXNCLEVBQUUsUUFBUTthQUNqQyxDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksbUNBQW1DLENBQUMsSUFBWSxFQUFFLElBQVU7O1lBQ3ZFLE1BQU0sT0FBTyxHQUFHO2dCQUNkLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixlQUFlLEVBQUUsSUFBSTthQUN0QixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksNkNBQTZDLENBQUMsSUFBWSxFQUFFLFVBQW1COztZQUMxRixNQUFNLE9BQU8sR0FBRztnQkFDZCxlQUFlLEVBQUUsSUFBSTtnQkFDckIseUJBQXlCLEVBQUUsVUFBVTthQUN0QyxDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzRyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksNkJBQTZCLENBQUMsSUFBWSxFQUFFLE1BQWM7O1lBQ3JFLE1BQU0sT0FBTyxHQUFHO2dCQUNkLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixVQUFVLEVBQUUsTUFBTTthQUNuQixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1RixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksZ0NBQWdDLENBQUMsSUFBWSxFQUFFLFNBQWlCOztZQUMzRSxNQUFNLE9BQU8sR0FBRztnQkFDZCxlQUFlLEVBQUUsSUFBSTtnQkFDckIsZUFBZSxFQUFFLFNBQVM7YUFDM0IsQ0FBQztZQUNGLE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakcsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQXlDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2pJO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLHdDQUF3QyxDQUFDLElBQVksRUFBRSxTQUFpQjs7WUFDbkYsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLG9CQUFvQixFQUFFLFNBQVM7YUFDaEMsQ0FBQztZQUNGLE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEcsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQXlDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2pJO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLCtCQUErQixDQUFDLElBQVksRUFBRSxNQUFjOztZQUN2RSxNQUFNLE9BQU8sR0FBRztnQkFDZCxlQUFlLEVBQUUsSUFBSTtnQkFDckIsc0JBQXNCLEVBQUUsTUFBTTthQUMvQixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4RyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksMkJBQTJCLENBQUMsSUFBWSxFQUFFLE1BQWM7O1lBQ25FLE1BQU0sT0FBTyxHQUFHO2dCQUNkLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixrQkFBa0IsRUFBRSxNQUFNO2FBQzNCLENBQUM7WUFDRixNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BHLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUF5QyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNqSTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSw0Q0FBNEMsQ0FBQyxJQUFZLEVBQUUsSUFBVTs7WUFDaEYsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLHdCQUF3QixFQUFFLElBQUk7Z0JBQzlCLDhCQUE4QixFQUFFLEVBQUU7YUFDbkMsQ0FBQztZQUNGLE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsaUNBQWlDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUcsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQXlDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2pJO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLHFDQUFxQyxDQUFDLElBQVksRUFBRSxNQUFjOztZQUM3RSxNQUFNLE9BQU8sR0FBRztnQkFDZCxlQUFlLEVBQUUsSUFBSTtnQkFDckIscUJBQXFCLEVBQUUsTUFBTTthQUM5QixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksc0NBQXNDLENBQUMsSUFBWSxFQUFFLE9BQWlCOztZQUNqRixNQUFNLE9BQU8sR0FBRztnQkFDZCxlQUFlLEVBQUUsSUFBSTtnQkFDckIsa0JBQWtCLEVBQUUsT0FBTzthQUM1QixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksc0NBQXNDLENBQUMsSUFBWSxFQUFFLFlBQXFCOztZQUNyRixNQUFNLE9BQU8sR0FBRztnQkFDZCxlQUFlLEVBQUUsSUFBSTtnQkFDckIseUJBQXlCLEVBQUUsWUFBWTthQUN4QyxDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzRyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksNkJBQTZCLENBQUMsSUFBWSxFQUFFLE1BQWM7O1lBQ3JFLE1BQU0sT0FBTyxHQUFHO2dCQUNkLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixXQUFXLEVBQUUsTUFBTTthQUNwQixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzRixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVkscUNBQXFDLENBQUMsSUFBWSxFQUFFLFFBQWdCOztZQUMvRSxNQUFNLE9BQU8sR0FBRztnQkFDZCxlQUFlLEVBQUUsSUFBSTtnQkFDckIsaUJBQWlCLEVBQUUsUUFBUTthQUM1QixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksZ0NBQWdDLENBQUMsSUFBWSxFQUFFLElBQVk7O1lBQ3RFLE1BQU0sT0FBTyxHQUFHO2dCQUNkLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixnQkFBZ0IsRUFBRSxJQUFJO2FBQ3ZCLENBQUM7WUFDRixNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xHLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUF5QyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNqSTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSwrQkFBK0IsQ0FBQyxJQUFZLEVBQUUsSUFBa0IsRUFBRSxNQUFjOztZQUMzRixNQUFNLE9BQU8sR0FBRztnQkFDZCxlQUFlLEVBQUUsSUFBSTtnQkFDckIsaUJBQWlCLEVBQUUsSUFBSTtnQkFDdkIsYUFBYSxFQUFFLE1BQU07YUFDdEIsQ0FBQztZQUNGLE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEcsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQXlDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2pJO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLGdDQUFnQyxDQUFDLElBQVksRUFBRSxXQUFtQjs7WUFDN0UsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLGtCQUFrQixFQUFFLFdBQVc7YUFDaEMsQ0FBQztZQUNGLE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEcsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQXlDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2pJO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLG1DQUFtQyxDQUFDLElBQVksRUFBRSxRQUFnQixFQUFFLElBQVk7O1lBQzNGLE1BQU0sT0FBTyxHQUFHO2dCQUNkLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsaUJBQWlCLEVBQUUsSUFBSTthQUN4QixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQ0FBbUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1RyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBeUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksc0JBQXNCLENBQUMsSUFBWSxFQUFFLE1BQWM7O1lBQzlELE1BQU0sT0FBTyxHQUFHO2dCQUNkLFNBQVMsRUFBRSxJQUFJO2dCQUNmLE1BQU0sRUFBRSxNQUFNO2FBQ2YsQ0FBQztZQUNGLE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0YsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQXlDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2pJO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLHlCQUF5QixDQUNwQyxJQUFZLEVBQUUsTUFBYyxFQUFFLFVBQWtCLEVBQUUsYUFBcUIsRUFBRSxtQkFBMkI7O1lBRXBHLE1BQU0sT0FBTyxHQUFHO2dCQUNkLFNBQVMsRUFBRSxJQUFJO2dCQUNmLE1BQU0sRUFBRSxNQUFNO2dCQUNkLFVBQVUsRUFBRSxVQUFVO2dCQUN0QixpQkFBaUIsRUFBRSxhQUFhO2dCQUNoQyxtQkFBbUIsRUFBRSxtQkFBbUI7YUFDekMsQ0FBQztZQUNGLE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEcsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQU8sUUFBUSxDQUFDO2FBQ2pCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLDhCQUE4QixDQUFDLElBQVksRUFBRSxNQUFjLEVBQUUsaUJBQXlCOztZQUNqRyxNQUFNLE9BQU8sR0FBRztnQkFDZCxTQUFTLEVBQUUsSUFBSTtnQkFDZixNQUFNLEVBQUUsTUFBTTtnQkFDZCxpQkFBaUIsRUFBRSxpQkFBaUI7YUFDckMsQ0FBQztZQUNGLE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkcsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUF1QyxDQUFDO2FBQ3JJO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLG9CQUFvQixDQUFDLGVBQXVCOztZQUN2RCxNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3JHLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBaUMsQ0FBQzthQUN6SDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSxrQkFBa0IsQ0FBQyxJQUFZOztZQUMxQyxNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hGLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsMEJBQTBCLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBMEMsQ0FBQzthQUMzSTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSxxQkFBcUIsQ0FBQyxPQUFlLEVBQUUsTUFBYzs7WUFDaEUsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDdEcsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQStDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsNkJBQTZCLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQzdJO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLGdDQUFnQyxDQUFDLE9BQWUsRUFBRSxNQUFjOztZQUMzRSxNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGdDQUFnQyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNqSCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBK0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyw2QkFBNkIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDN0k7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksNEJBQTRCLENBQUMsT0FBNEM7O1lBQ3BGLE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckcsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQXlDLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2pJO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLHNDQUFzQyxDQUFDLE9BQXNEOztZQUN4RyxNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9HLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUF5QyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNqSTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSxzQkFBc0IsQ0FBQyxPQUE4Qjs7WUFDaEUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQWlCLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO2dCQUN6RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBK0IsRUFBRSxFQUFFO29CQUM3RixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO3dCQUM5RCxJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUU7NEJBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGtDQUFrQyxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO3lCQUN2RztxQkFDRjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZDtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRVkseUJBQXlCLENBQUMsa0JBQXNDOztZQUMzRSxNQUFNLE1BQU0sR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDM0csSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3hFLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQixPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVkseUJBQXlCLENBQUMseUJBQXVEOztZQUM1RixNQUFNLE1BQU0sR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDckgsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3hFLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQixPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksdUJBQXVCLENBQUMsZUFBdUIsRUFBRSxNQUFjOztZQUMxRSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBaUIsRUFBRSxNQUFnQixFQUFFLEVBQUU7Z0JBQ3pELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQU8sTUFBK0IsRUFBRSxFQUFFO29CQUNwSCxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO3dCQUM5RCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2Y7eUJBQU07d0JBQ0wsTUFBTSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO3FCQUMzQztnQkFDSCxDQUFDLENBQUEsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFWSx3QkFBd0IsQ0FBQyxJQUErQjs7WUFDbkUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQWlCLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO2dCQUN6RCxhQUFhO2dCQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUErQixFQUFFLEVBQUU7b0JBQ3JHLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzlELElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTs0QkFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsa0NBQWtDLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7eUJBQzdHO3FCQUNGO3lCQUFNO3dCQUNMLE1BQU0sQ0FBQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztxQkFDM0M7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVZLHdCQUF3QixDQUFDLE9BQWUsRUFBRSxrQ0FBMkM7O1lBQ2hHLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFpQixFQUFFLE1BQWdCLEVBQUUsRUFBRTtnQkFDekQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFPLE1BQStCLEVBQUUsRUFBRTtvQkFDekksSUFBSSxNQUFNLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTt3QkFDOUQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNmO3lCQUFNO3dCQUNMLE1BQU0sQ0FBQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztxQkFDM0M7Z0JBQ0gsQ0FBQyxDQUFBLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRVksc0JBQXNCLENBQUMsT0FBZSxFQUFFLE1BQWM7O1lBQ2pFLE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZHLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUFxQyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUN6SDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSw2Q0FBNkMsQ0FBQyxPQUFlLEVBQUUsTUFBYzs7WUFDeEYsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyw2Q0FBNkMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDOUgsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQWtDLElBQUksQ0FBQyxVQUFVLENBQUMsa0NBQWtDLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUM3SDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSwwQkFBMEIsQ0FBQyxPQUEwQzs7WUFDaEYsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBTyxJQUFJLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSxvQ0FBb0MsQ0FBQyxPQUFvRDs7WUFDcEcsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQ0FBb0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3RyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBTyxJQUFJLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSx3QkFBd0IsQ0FBQyxPQUFlLEVBQUUsTUFBYzs7WUFDbkUsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDekcsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLFlBQVksRUFBRTtnQkFDckMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLHFCQUFxQixFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQXFDLENBQUM7YUFDakk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksbUNBQW1DLENBQUMsT0FBZSxFQUFFLE1BQWM7O1lBQzlFLE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsbUNBQW1DLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BILElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxZQUFZLEVBQUU7Z0JBQ3JDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxnQ0FBZ0MsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFnRCxDQUFDO2FBQ3ZKO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLGdDQUFnQyxDQUFDLGVBQXVCOztZQUNuRSxNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGdDQUFnQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2pILElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUE4QyxJQUFJLENBQUMsVUFBVSxDQUFDLGtDQUFrQyxDQUFDLDBCQUEwQixFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNySjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSxnQ0FBZ0MsQ0FBQyxlQUF1Qjs7WUFDbkUsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQ0FBZ0MsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNqSCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBOEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQ0FBa0MsQ0FBQywwQkFBMEIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDcko7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVkscUNBQXFDLENBQUMsVUFBa0I7O1lBQ25FLE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMscUNBQXFDLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDakgsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQzthQUM5QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSxzQkFBc0IsQ0FBQyxPQUFzQzs7WUFDeEUsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvRixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBTyxRQUFRLENBQUMsWUFBWSxDQUFDO2FBQzlCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLHNCQUFzQixDQUFDLE9BQXNDOztZQUN4RSxNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9GLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUFPLFFBQVEsQ0FBQyxZQUFZLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksb0JBQW9CLENBQUMsT0FBb0M7O1lBQ3BFLE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0YsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQzthQUM5QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSxrQkFBa0IsQ0FBQyxPQUFrQzs7WUFDaEUsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMzRixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBTyxRQUFRLENBQUMsWUFBWSxDQUFDO2FBQzlCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLGtCQUFrQixDQUFDLE9BQWtDOztZQUNoRSxNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNGLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUFPLFFBQVEsQ0FBQyxZQUFZLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksZ0JBQWdCLENBQUMsT0FBZ0M7O1lBQzVELE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekYsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQzthQUM5QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSw0QkFBNEIsQ0FBQyxlQUF1Qjs7WUFDL0QsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUM3RyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBOEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQ0FBa0MsQ0FBQywwQkFBMEIsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDcko7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksNEJBQTRCLENBQUMsZUFBdUI7O1lBQy9ELE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsNEJBQTRCLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDN0csSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQThDLElBQUksQ0FBQyxVQUFVLENBQUMsa0NBQWtDLENBQUMsMEJBQTBCLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3JKO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLDhDQUE4QyxDQUFDLGVBQWU7O1lBQ3pFLE1BQU0sUUFBUSxHQUE0QixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsOENBQThDLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDL0gsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQzthQUM5QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSxpQ0FBaUMsQ0FBQyxVQUFrQjs7WUFDL0QsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQ0FBaUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3RyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBTyxRQUFRLENBQUMsWUFBWSxDQUFDO2FBQzlCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTtJQUVZLDBDQUEwQyxDQUFDLGFBQXFCOztZQUMzRSxNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLDBDQUEwQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pILElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUM5RSxPQUFPLFFBQVEsQ0FBQyxZQUFZLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksc0JBQXNCLENBQUMsT0FBOEIsRUFBRSxNQUFlOztZQUNqRixNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN2RyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtnQkFDOUUsT0FBc0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQ0FBa0MsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDckk7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRVksNkJBQTZCLENBQUMsbUJBQXlDOztZQUNsRixNQUFNLFFBQVEsR0FBNEIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLDZCQUE2QixDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDbEgsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7Z0JBQzlFLE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRU8sNEJBQTRCLENBQUMsTUFBK0I7UUFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDOzs7O1lBNS9DRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQTlETyxjQUFjO1lBc0JkLDBCQUEwQjtZQUMxQix1Q0FBdUM7WUFDdkMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtNYXJrZXRpbmd9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbWFya2V0aW5nLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWtpbmQuZW51bVwiO1xyXG5pbXBvcnQge0NvdW50cnl9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY291bnRyeS5ib1wiO1xyXG5pbXBvcnQge1NlcXVlbmNlTmFtZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3NlcXVlbmNlLW5hbWUuZW51bVwiO1xyXG5pbXBvcnQge0RlbGl2ZXJ5TWV0aG9kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW1ldGhvZC5ib1wiO1xyXG5pbXBvcnQge0RlbGl2ZXJ5T3B0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW9wdGlvbi5ib1wiO1xyXG5pbXBvcnQge1NldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9zZXQtdHJhbnNhY3Rpb24tZGVsaXZlcnktb3B0aW9ucy1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7R2V0UG9zdGFsQ29kZVJldHJpZXZhbE91dHB1dFBhcmFtc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9nZXQtcG9zdGFsLWNvZGUtcmV0cmlldmFsLW91dHB1dC1wYXJhbXNcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24tbGluZS10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tYXJ0aWNsZS13YXJlaG91c2UuYm9cIjtcclxuaW1wb3J0IHtBcnRpY2xlRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWZ1bGwtb2JqZWN0XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZXNwb25zZUJhc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tcmVzcG9uc2UtYmFzZS5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL3RyYW5zYWN0aW9uXCI7XHJcbmltcG9ydCB7U3RhbmRhcmRUZXh0fSBmcm9tIFwiLi4vbW9kZWwvc3RhbmRhcmQtdGV4dFwiO1xyXG5pbXBvcnQge0N1c3RvbWVyR3JvdXB9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZ3JvdXAuYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5pbXBvcnQge09wdGlvbnNTZXJ2aWNlfSBmcm9tIFwiLi9vcHRpb25zLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtDYXNoUmVnaXN0ZXJ9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY2FzaC1yZWdpc3RlclwiO1xyXG5pbXBvcnQge0NoYW5nZUxpbmVTZXF1ZW5jZVJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY2hhbmdlLWxpbmUtc2VxdWVuY2UtcmVxdWVzdFwiO1xyXG5pbXBvcnQge1Jlc29sdmVMaW5lUGVuZGluZ1JlYXNvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb2x2ZS1wZW5kaW5nLXJlYXNvbi1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7UHJpY2VMaXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3ByaWNlLWxpc3RcIjtcclxuaW1wb3J0IHtWYXR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdmF0XCI7XHJcbmltcG9ydCB7RGlzY291bnRUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vZGlzY291bnQtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hWaWV3UmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1zZWFyY2gtdmlldy1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hWaWV3fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLXNlYXJjaC12aWV3LmJvXCI7XHJcbmltcG9ydCB7T25Ib2xkQ29kZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9vbi1ob2xkLWNvZGUuYm9cIjtcclxuaW1wb3J0IHtXYXJlaG91c2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvd2FyZWhvdXNlLmJvXCI7XHJcbmltcG9ydCB7Q29kZURlc2NyaXB0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NvZGUtZGVzY3JpcHRpb25cIjtcclxuaW1wb3J0IHtSZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZWNlaXZlLWdvb2RzLWZvci1wdXJjaGFzZS1vcmRlci1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7R29vZHNSZWNlaXB0U3RhdHVzV2l0aEhpc3Rvcnl9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZ29vZHMtcmVjZWlwdC1zdGF0dXMtd2l0aC1oaXN0b3J5LmJvXCI7XHJcbmltcG9ydCB7UmVjZWl2ZUdvb2RzRm9yUHVyY2hhc2VPcmRlckNvcnJlY3Rpb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlY2VpdmUtZ29vZHMtZm9yLXB1cmNoYXNlLW9yZGVyLWNvcnJlY3Rpb24tcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge1BheW1lbnRNZXRob2R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGF5bWVudC1tZXRob2QuYm9cIjtcclxuaW1wb3J0IHtHZXRQdXJjaGFzZVBvcnRhbExpbmV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZ2V0LXB1cmNoYXNlLXBvcnRhbC1saW5lXCI7XHJcbmltcG9ydCB7UHVyY2hhc2VQb3J0YWxMaW5lfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLXBvcnRhbC1saW5lLmJvXCI7XHJcbmltcG9ydCB7Q3JlYXRlUGF5bWVudExpbmtSZXN1bHR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY3JlYXRlLXBheW1lbnQtbGluay1yZXN1bHQuYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFJlc3VsdH0gZnJvbSBcIi4uL21vZGVsL3RyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHRcIjtcclxuaW1wb3J0IHtSZXNvbHZlSGVhZGVyUGVuZGluZ1JlYXNvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb2x2ZS1oZWFkZXItcGVuZGluZy1yZWFzb24tcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge1BheW1lbnRMaW5rU3RhdHVzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BheW1lbnQtbGluay1zdGF0dXMuYm9cIjtcclxuaW1wb3J0IHtTZWxlY3RNdWx0aXBsZUNhY2hlU2VydmljZX0gZnJvbSBcIi4uL2NhY2hlL3NlcnZpY2Uvc2VsZWN0LW11bHRpcGxlLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTZWxlY3RNdWx0aXBsZVBhcmFtZXRlcml6ZWRDYWNoZVNlcnZpY2V9IGZyb20gXCIuLi9jYWNoZS9zZXJ2aWNlL3NlbGVjdC1tdWx0aXBsZS1wYXJhbWV0ZXJpemVkLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtFcnJvclNlcnZpY2V9IGZyb20gXCIuL2Vycm9yLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtHZXRQdXJjaGFzZU9yZGVyQ29uZmlybWF0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2dldC1wdXJjaGFzZS1vcmRlci1jb25maXJtYXRpb25cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkRvd25QYXltZW50SW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1kb3duLXBheW1lbnQtaW5mby5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTG9ja1Jlc3VsdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1sb2NrLXJlc3VsdC5ib1wiO1xyXG5pbXBvcnQge1ByaXZhY3lTZXR0aW5nfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcHJpdmFjeS1zZXR0aW5nLmJvXCI7XHJcbmltcG9ydCB7RGF0YVNlcnZpY2VSZXNwb25zZURhdGF9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9kYXRhLXNlcnZpY2UtcmVzcG9uc2UtZGF0YVwiO1xyXG5pbXBvcnQge1JlbGF0aW9uUHJpdmFjeVNldHRpbmd9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tcHJpdmFjeS1zZXR0aW5nLmJvXCI7XHJcbmltcG9ydCB7QnVzaW5lc3NPYmplY3RGYWN0b3J5fSBmcm9tIFwiQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvZmFjdG9yeS9idXNpbmVzcy1vYmplY3QtZmFjdG9yeVwiO1xyXG5pbXBvcnQge0ltYWdlVXRpbHN9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC91dGlscy9pbWFnZS11dGlsc1wiO1xyXG5pbXBvcnQge0NvRG9tYWluVmFsdWV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb21haW4tdmFsdWUuYm9cIjtcclxuaW1wb3J0IHtUYWd9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC90YWdcIjtcclxuaW1wb3J0IHtEZWxpdmVyeU9yZGVyU3RhdHVzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW9yZGVyLXN0YXR1cy5ib1wiO1xyXG5pbXBvcnQge1NhbGVzUGVyc29ufSBmcm9tIFwiQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3NhbGVzLXBlcnNvbi5ib1wiO1xyXG5pbXBvcnQge1N0b2NrU3RpY2tlcnNQcmludExheW91dHN9IGZyb20gXCJAY29saWpuaXQvc2hhcmVkYXBpL2J1aWxkL21vZGVsL3JlcG9ydC9zdG9jay1zdGlja2Vycy1wcmludC1sYXlvdXRzLmJvXCI7XHJcbmltcG9ydCB7U2hhcmVkYXBpfSBmcm9tIFwiQGNvbGlqbml0L3NoYXJlZGFwaS9idWlsZC9zaGFyZWRhcGlcIjtcclxuaW1wb3J0IHtBdmFpbGFibGVTdG9ja30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9hdmFpbGFibGUtc3RvY2suYm9cIjtcclxuaW1wb3J0IHtBbGxvY2F0ZUdvb2RzRm9yU2FsZXNPcmRlclJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvYWxsb2NhdGUtZ29vZHMtZm9yLXNhbGVzLW9yZGVyLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtBbGxvY2F0ZUdvb2RzRm9yU2FsZXNPcmRlckNvcnJlY3Rpb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2FsbG9jYXRlLWdvb2RzLWZvci1zYWxlcy1vcmRlci1jb3JyZWN0aW9uLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtHb29kc0FsbG9jYXRpb25TdGF0dXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZ29vZHMtYWxsb2NhdGlvbi1zdGF0dXMuYm9cIjtcclxuaW1wb3J0IHtHb29kc0FsbG9jYXRpb25TdGF0dXNXaXRoSGlzdG9yeX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9nb29kcy1hbGxvY2F0aW9uLXN0YXR1cy13aXRoLWhpc3RvcnkuYm9cIjtcclxuaW1wb3J0IHtSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLWVtYWlsLmJvXCI7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1wcmludC5ib1wiO1xyXG5pbXBvcnQge0VtYWlsT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvZW1haWwtb3JkZXItY29uZmlybWF0aW9uLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtQcmludE9yZGVyQ29uZmlybWF0aW9uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3ByaW50LW9yZGVyLWNvbmZpcm1hdGlvbi1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7UGRmT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcGRmLW9yZGVyLWNvbmZpcm1hdGlvbi1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7UHJpbnRQdXJjaGFzZU9yZGVyUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3ByaW50LXB1cmNoYXNlLW9yZGVyLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtFbWFpbFB1cmNoYXNlT3JkZXJSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvZW1haWwtcHVyY2hhc2Utb3JkZXItcmVxdWVzdFwiO1xyXG5pbXBvcnQge1BkZlB1cmNoYXNlT3JkZXJSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcGRmLXB1cmNoYXNlLW9yZGVyLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtDcmVhdGVTYWxlc09yZGVyUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jcmVhdGUtc2FsZXMtb3JkZXItcmVxdWVzdFwiO1xyXG5pbXBvcnQge0NyZWF0ZUNhc2hSZWdpc3Rlck9yZGVyUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jcmVhdGUtY2FzaC1yZWdpc3Rlci1vcmRlci1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7Q3JlYXRlUHVyY2hhc2VPcmRlclJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY3JlYXRlLXB1cmNoYXNlLW9yZGVyLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtDcmVhdGVTZXJ2aWNlT3JkZXJSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NyZWF0ZS1zZXJ2aWNlLW9yZGVyLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtDcmVhdGVTYWxlc1F1b3RhdGlvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY3JlYXRlLXNhbGVzLXF1b3RhdGlvbi1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7UHVyY2hhc2VBZHZpY2VMaW5lfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLWFkdmljZS1saW5lLmJvXCI7XHJcbmltcG9ydCB7UHVyY2hhc2VBZHZpY2VGaWx0ZXJzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLWFkdmljZS1maWx0ZXJzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQ29ubmVjdG9yQWRhcHRlclNlcnZpY2Uge1xyXG4gIHB1YmxpYyBjb25uZWN0b3I6IFRyYW5zYWN0aW9uO1xyXG4gIHB1YmxpYyBzaGFyZWRDb25uZWN0b3I6IFNoYXJlZGFwaTtcclxuXHJcbiAgcHJpdmF0ZSBfYm9GYWN0b3J5OiBCdXNpbmVzc09iamVjdEZhY3RvcnkgPSBuZXcgQnVzaW5lc3NPYmplY3RGYWN0b3J5KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VsZWN0TXVsdGlwbGVDYWNoZVNlcnZpY2U6IFNlbGVjdE11bHRpcGxlQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVTZXJ2aWNlOiBTZWxlY3RNdWx0aXBsZVBhcmFtZXRlcml6ZWRDYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9lcnJvclNlcnZpY2U6IEVycm9yU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgcHVibGljIGFzeW5jIGNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmNvbm5lY3RvciA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zKTtcclxuICAgIHRoaXMuc2hhcmVkQ29ubmVjdG9yID0gbmV3IFNoYXJlZGFwaSh0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zKTtcclxuICAgIHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMuc2Vzc2lvbiA9IHRoaXMuY29ubmVjdG9yLnNlc3Npb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QXJ0aWNsZUZ1bGxPYmplY3QoZ29vZElkOiBudW1iZXIpOiBQcm9taXNlPEFydGljbGVGdWxsT2JqZWN0PiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0QXJ0aWNsZUZ1bGxPYmplY3QoZ29vZElkKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShBcnRpY2xlRnVsbE9iamVjdCwgcmVzdWx0LnJlc3VsdE9iamVjdCkgYXMgdW5rbm93biBhcyBBcnRpY2xlRnVsbE9iamVjdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRHb29kSWRGcm9tQXJ0aWNsZU5yKGFydGljbGVOcjogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRHb29kSWRGcm9tQXJ0aWNsZU5yKGFydGljbGVOcik7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gcmVzdWx0LnJlc3VsdE9iamVjdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTaW5nbGVJbWFnZShub2RlSWQ6IG51bWJlciB8IHN0cmluZywgcHVibGljYXRpb246IG51bWJlciwgaW5jbHVkZU1pbWV0eXBlOiBib29sZWFuLCB0aHVtYjogYm9vbGVhbik6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0U2luZ2xlSW1hZ2Uobm9kZUlkLCBwdWJsaWNhdGlvbiwgaW5jbHVkZU1pbWV0eXBlLCB0aHVtYik7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCAmJiByZXN1bHQucmVzdWx0T2JqZWN0LmZpbGVQYXRoICE9PSBudWxsICYmIHJlc3VsdC5yZXN1bHRPYmplY3QuZmlsZVBhdGggIT09IHVuZGVmaW5lZCAmJiByZXN1bHQucmVzdWx0T2JqZWN0LmZpbGVQYXRoICE9PSBcIlwiKSB7XHJcbiAgICAgICAgcmV0dXJuIEltYWdlVXRpbHMuZ2V0Rml4ZWRJbWFnZUZpbGVwYXRoVXJsKHJlc3VsdC5yZXN1bHRPYmplY3QuZmlsZVBhdGgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0KSB7XHJcbiAgICAgICAgICBpZiAoaW5jbHVkZU1pbWV0eXBlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBJbWFnZVV0aWxzLmdldERvY0JvZHlXaXRoTWltZVR5cGVEZWZpbml0aW9uKHJlc3VsdC5yZXN1bHRPYmplY3QuZmlsZU5hbWUsXHJcbiAgICAgICAgICAgICAgdGh1bWIgPyByZXN1bHQucmVzdWx0T2JqZWN0LnRodW1ibmFpbEJvZHkgOiByZXN1bHQucmVzdWx0T2JqZWN0LmRvY3VtZW50Qm9keSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdGh1bWIgPyByZXN1bHQucmVzdWx0T2JqZWN0LnRodW1ibmFpbEJvZHkgOiByZXN1bHQucmVzdWx0T2JqZWN0LmRvY3VtZW50Qm9keTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7IC8vIG5vIGltYWdlXHJcbiAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRDb3VudHJpZXMoKTogUHJvbWlzZTxDb3VudHJ5W10+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRDb3VudHJpZXMoKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShDb3VudHJ5LCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBDb3VudHJ5W107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEN1c3RvbWVyR3JvdXBzKCk6IFByb21pc2U8Q3VzdG9tZXJHcm91cFtdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0Q3VzdG9tZXJHcm91cHMoKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShDdXN0b21lckdyb3VwLCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBDdXN0b21lckdyb3VwW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldENvdW50cnkoY291bnRyeUNvZGU6IHN0cmluZyk6IFByb21pc2U8Q291bnRyeT4ge1xyXG4gICAgY29uc3QgY291bnRyaWVzOiBDb3VudHJ5W10gPSBhd2FpdCB0aGlzLmdldENvdW50cmllcygpO1xyXG4gICAgcmV0dXJuIGNvdW50cmllcy5maW5kKGNvdW50cnkgPT4gY291bnRyeS5jb2RlID09PSBjb3VudHJ5Q29kZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UHJpdmFjeVNldHRpbmdzKCk6IFByb21pc2U8UHJpdmFjeVNldHRpbmdbXT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFByaXZhY3lTZXR0aW5ncygpO1xyXG4gICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFByaXZhY3lTZXR0aW5nLCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBQcml2YWN5U2V0dGluZ1tdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvblByaXZhY3lTZXR0aW5ncygpOiBQcm9taXNlPFJlbGF0aW9uUHJpdmFjeVNldHRpbmdbXT4ge1xyXG4gICAgY29uc3QgcHJpdmFjeVNldHRpbmdzOiBSZWxhdGlvblByaXZhY3lTZXR0aW5nW10gPSBbXTtcclxuXHJcbiAgICBjb25zdCBiYXNlUHJpdmFjeVNldHRpbmdzOiBQcml2YWN5U2V0dGluZ1tdID0gYXdhaXQgdGhpcy5nZXRQcml2YWN5U2V0dGluZ3MoKTtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDAsIGxlbjogbnVtYmVyID0gYmFzZVByaXZhY3lTZXR0aW5ncy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBjb25zdCBiYXNlUHJpdlNldHRpbmc6IFByaXZhY3lTZXR0aW5nID0gYmFzZVByaXZhY3lTZXR0aW5nc1tpXTtcclxuICAgICAgY29uc3QgbmV3UmVsUHJpdlNldDogUmVsYXRpb25Qcml2YWN5U2V0dGluZyA9IDxSZWxhdGlvblByaXZhY3lTZXR0aW5nPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5pbnN0YW50aWF0ZU5ld0JvKFJlbGF0aW9uUHJpdmFjeVNldHRpbmcpO1xyXG4gICAgICBuZXdSZWxQcml2U2V0LmFwcGx5QmFzZVByaXZhY3lTZXR0aW5nVmFsdWVzKGJhc2VQcml2U2V0dGluZyk7XHJcbiAgICAgIHByaXZhY3lTZXR0aW5ncy5wdXNoKG5ld1JlbFByaXZTZXQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHByaXZhY3lTZXR0aW5ncztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRNYXJrZXRpbmdDb2RlcygpOiBQcm9taXNlPE1hcmtldGluZ1tdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0TWFya2V0aW5nQ29kZXMoKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShNYXJrZXRpbmcsIHJlc3VsdC5yZXN1bHRPYmplY3RzKSBhcyB1bmtub3duIGFzIE1hcmtldGluZ1tdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRBcnRpY2xlQm91bmRUZXh0TGluZXNPZkFydGljbGVMaW5lKGFydGljbGVMaW5lVXVpZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkxpbmVJbmZvW10+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRBcnRpY2xlQm91bmRUZXh0TGluZXNPZkFydGljbGVMaW5lKGFydGljbGVMaW5lVXVpZCk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uTGluZUluZm9bXT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShUcmFuc2FjdGlvbkxpbmVJbmZvLCByZXN1bHQucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0VHJhbnNhY3Rpb25CeU5yQW5kS2luZChraW5kOiBUcmFuc2FjdGlvbktpbmQsIHRyYW5zYWN0aW9uTm86IG51bWJlcik6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRUcmFuc2FjdGlvbkJ5TnJBbmRLaW5kKGtpbmQsIHRyYW5zYWN0aW9uTm8pO1xyXG4gICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSBhcyB1bmtub3duIGFzIFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFRyYW5zYWN0aW9uQnlJZCh0cmFuc2FjdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0VHJhbnNhY3Rpb25CeUlkKHRyYW5zYWN0aW9uSWQpO1xyXG4gICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSBhcyB1bmtub3duIGFzIFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGxvY2tUcmFuc2FjdGlvbkJ5SWQodHJhbnNhY3Rpb25JZDogbnVtYmVyLCB2ZXJzaW9uOiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uTG9ja1Jlc3VsdD4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmxvY2tUcmFuc2FjdGlvbkJ5VHJhbnNJZCh0cmFuc2FjdGlvbklkLCB2ZXJzaW9uKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkxvY2tSZXN1bHQsIHJlc3VsdC5yZXN1bHRPYmplY3QpIGFzIHVua25vd24gYXMgVHJhbnNhY3Rpb25Mb2NrUmVzdWx0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldENhc2hSZWdpc3RlcnMoYnJhbmNoPzogc3RyaW5nLCBncm91cD86IG51bWJlcik6IFByb21pc2U8Q2FzaFJlZ2lzdGVyW10+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRDYXNoUmVnaXN0ZXIoYnJhbmNoLCBncm91cCk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoQ2FzaFJlZ2lzdGVyLCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBDYXNoUmVnaXN0ZXJbXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UHJpY2VMaXN0cyhjb2RlPzogc3RyaW5nKTogUHJvbWlzZTxQcmljZUxpc3RbXT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFByaWNlTGlzdHMoY29kZSk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoUHJpY2VMaXN0LCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBQcmljZUxpc3RbXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0VmF0TGlzdChvbmx5VmFsaWQ6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8VmF0W10+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRWYXRMaXN0KG9ubHlWYWxpZCk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoVmF0LCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBWYXRbXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2VhcmNoVHJhbnNhY3Rpb25zKHJlcXVlc3Q6IFRyYW5zYWN0aW9uU2VhcmNoVmlld1JlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uU2VhcmNoUmVzdWx0PiB7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLnNlYXJjaFRyYW5zYWN0aW9ucyhyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uU2VhcmNoUmVzdWx0ID0gbmV3IFRyYW5zYWN0aW9uU2VhcmNoUmVzdWx0KCk7XHJcbiAgICAgIHJlc3VsdC5jb3VudCA9IChyZXNwb25zZS5wYWdpbmdQYXJhbWV0ZXJzIGFzIGFueSkucmVzdWx0Q291bnQ7IC8vIHRvZG86IGZpeCBwcm9wZXJ0eSBpbiBhcGlcclxuICAgICAgcmVzdWx0LnRyYW5zYWN0aW9ucyA9IDx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFRyYW5zYWN0aW9uU2VhcmNoVmlldywgcmVzcG9uc2UucmVzdWx0T2JqZWN0cykgYXMgVHJhbnNhY3Rpb25TZWFyY2hWaWV3W107XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTZXF1ZW5jZVZhbHVlKHNlcXVlbmNlTmFtZTogU2VxdWVuY2VOYW1lKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldFNlcXVlbmNlVmFsdWUoc2VxdWVuY2VOYW1lKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUocmVzdWx0LnJlc3VsdE9iamVjdCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXREZWxpdmVyeU1ldGhvZHMoKTogUHJvbWlzZTxEZWxpdmVyeU1ldGhvZFtdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0RGVsaXZlcnlNZXRob2RzKCk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoRGVsaXZlcnlNZXRob2QsIHJlc3VsdC5yZXN1bHRPYmplY3RzKSBhcyB1bmtub3duIGFzIERlbGl2ZXJ5TWV0aG9kW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldERlbGl2ZXJ5T3B0aW9ucygpOiBQcm9taXNlPERlbGl2ZXJ5T3B0aW9uW10+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXREZWxpdmVyeU9wdGlvbnMoKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShEZWxpdmVyeU9wdGlvbiwgcmVzdWx0LnJlc3VsdE9iamVjdHMpIGFzIHVua25vd24gYXMgRGVsaXZlcnlPcHRpb25bXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UG9zdGFsQ29kZVJldHJpZXZhbChwb3N0Y2FsQ29kZTogc3RyaW5nLCBob3VzZU5vOiBzdHJpbmcpOiBQcm9taXNlPEdldFBvc3RhbENvZGVSZXRyaWV2YWxPdXRwdXRQYXJhbXM+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRQb3N0YWxDb2RlUmV0cmlldmFsKHBvc3RjYWxDb2RlLCBob3VzZU5vKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgY29uc3Qgb3V0cHV0UGFyYW1zOiBHZXRQb3N0YWxDb2RlUmV0cmlldmFsT3V0cHV0UGFyYW1zID0gbmV3IEdldFBvc3RhbENvZGVSZXRyaWV2YWxPdXRwdXRQYXJhbXMoKTtcclxuICAgICAgICBvdXRwdXRQYXJhbXMuY2l0eSA9IHJlc3VsdC5yZXN1bHRPYmplY3QuY2l0eTtcclxuICAgICAgICBvdXRwdXRQYXJhbXMuc3RyZWV0ID0gcmVzdWx0LnJlc3VsdE9iamVjdC5zdHJlZXQ7XHJcbiAgICAgICAgb3V0cHV0UGFyYW1zLnN0YXR1cyA9IHJlc3VsdC5yZXN1bHRPYmplY3Quc3RhdHVzO1xyXG4gICAgICAgIG91dHB1dFBhcmFtcy5uZXROdW1iZXIgPSByZXN1bHQucmVzdWx0T2JqZWN0Lm5ldE51bWJlcjtcclxuICAgICAgICByZXR1cm4gb3V0cHV0UGFyYW1zO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0Q29tbWlzc2lvbkNvZGVzKGxhbmd1YWdlQ29kZTogc3RyaW5nKTogUHJvbWlzZTxDb0RvbWFpblZhbHVlW10+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRDb21taXNzaW9uQ29kZXMobGFuZ3VhZ2VDb2RlKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShDb0RvbWFpblZhbHVlLCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBDb0RvbWFpblZhbHVlW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEluT3V0Q29sbGVjdGlvbihsYW5ndWFnZUNvZGU6IHN0cmluZyk6IFByb21pc2U8Q29Eb21haW5WYWx1ZVtdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0SW5PdXRDb2xsZWN0aW9uKGxhbmd1YWdlQ29kZSk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoQ29Eb21haW5WYWx1ZSwgcmVzdWx0LnJlc3VsdE9iamVjdHMpIGFzIHVua25vd24gYXMgQ29Eb21haW5WYWx1ZVtdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VzKGdvb2RJZDogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VbXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlcyhnb29kSWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSg8VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlW10+cmVzdWx0LnJlc3VsdE9iamVjdHMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChbXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFRleHRUeXBlcyhsYW5ndWFnZUNvZGU6IHN0cmluZyk6IFByb21pc2U8Q29Eb21haW5WYWx1ZVtdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0VGV4dFR5cGVzKGxhbmd1YWdlQ29kZSk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICBjb25zdCB0ZXh0czogQ29Eb21haW5WYWx1ZVtdID0gPENvRG9tYWluVmFsdWVbXT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShDb0RvbWFpblZhbHVlLCByZXN1bHQucmVzdWx0T2JqZWN0cyk7XHJcbiAgICAgIHRleHRzLnNvcnQoKGEsIGIpID0+IGEuc2VxdWVuY2UgPiBiLnNlcXVlbmNlID8gMSA6IC0xKTtcclxuICAgICAgcmV0dXJuIHRleHRzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTdGFuZGFyZFRleHRzKGxhbmd1YWdlQ29kZTogc3RyaW5nKTogUHJvbWlzZTxTdGFuZGFyZFRleHRbXT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFN0YW5kYXJkVGV4dHMobGFuZ3VhZ2VDb2RlKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShTdGFuZGFyZFRleHQsIHJlc3VsdC5yZXN1bHRPYmplY3QpIGFzIHVua25vd24gYXMgU3RhbmRhcmRUZXh0W107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFNhbGVzUGVyc29ucyhkYXRlPzogRGF0ZSk6IFByb21pc2U8U2FsZXNQZXJzb25bXT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFNhbGVzUGVyc29ucyhkYXRlKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShTYWxlc1BlcnNvbiwgcmVzdWx0LnJlc3VsdE9iamVjdHMpIGFzIHVua25vd24gYXMgU2FsZXNQZXJzb25bXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0VGFncyhjYXRlZ29yeTogbnVtYmVyKTogUHJvbWlzZTxUYWdbXT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFRhZ3MoY2F0ZWdvcnkpO1xyXG4gICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFRhZywgcmVzdWx0LnJlc3VsdE9iamVjdHMpIGFzIHVua25vd24gYXMgVGFnW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldE9uSG9sZENvZGVzKCk6IFByb21pc2U8T25Ib2xkQ29kZVtdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0T25Ib2xkQ29kZXMoKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShPbkhvbGRDb2RlLCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBPbkhvbGRDb2RlW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFdhcmVob3VzZXMoYnJhbmNoTnI/OiBzdHJpbmcpOiBQcm9taXNlPFdhcmVob3VzZVtdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0V2FyZWhvdXNlcyhicmFuY2hOcik7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoV2FyZWhvdXNlLCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBXYXJlaG91c2VbXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0SGlzdG9yaWNTdGF0ZVZhbHVlcygpOiBQcm9taXNlPENvZGVEZXNjcmlwdGlvbltdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0SGlzdG9yaWNTdGF0ZVZhbHVlcygpO1xyXG4gICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KENvZGVEZXNjcmlwdGlvbiwgcmVzdWx0LnJlc3VsdE9iamVjdHMpIGFzIHVua25vd24gYXMgQ29kZURlc2NyaXB0aW9uW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFBheW1lbnRNZXRob2RzKCk6IFByb21pc2U8UGF5bWVudE1ldGhvZFtdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0UGF5bWVudE1ldGhvZHNGb3JTYWxlc09yZGVyKCk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoUGF5bWVudE1ldGhvZCwgcmVzdWx0LnJlc3VsdE9iamVjdCkgYXMgdW5rbm93biBhcyBQYXltZW50TWV0aG9kW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbW1pdCgpOiBQcm9taXNlPERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuY29tbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3JlYXRlVHJhbnNhY3Rpb24oa2luZDogVHJhbnNhY3Rpb25LaW5kLCBicmFuY2hOcjogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuY3JlYXRlVHJhbnNhY3Rpb24oa2luZCwgYnJhbmNoTnIpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY3JlYXRlU2FsZXNPcmRlcihyZXF1ZXN0OiBDcmVhdGVTYWxlc09yZGVyUmVxdWVzdCk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmNyZWF0ZVNhbGVzT3JkZXIocmVxdWVzdCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVDYXNoUmVnaXN0ZXJPcmRlcihyZXF1ZXN0OiBDcmVhdGVDYXNoUmVnaXN0ZXJPcmRlclJlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5jcmVhdGVDYXNoUmVnaXN0ZXJPcmRlcihyZXF1ZXN0KS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNyZWF0ZVB1cmNoYXNlT3JkZXIocmVxdWVzdDogQ3JlYXRlUHVyY2hhc2VPcmRlclJlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5jcmVhdGVQdXJjaGFzZU9yZGVyKHJlcXVlc3QpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY3JlYXRlU2VydmljZU9yZGVyKHJlcXVlc3Q6IENyZWF0ZVNlcnZpY2VPcmRlclJlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5jcmVhdGVTZXJ2aWNlT3JkZXIocmVxdWVzdCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVTYWxlc1F1b3RhdGlvbihyZXF1ZXN0OiBDcmVhdGVTYWxlc1F1b3RhdGlvblJlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5jcmVhdGVTYWxlc1F1b3RhdGlvbihyZXF1ZXN0KS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBzYXZlVHJhbnNhY3Rpb24odXVpZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3Iuc2F2ZVRyYW5zYWN0aW9uKHV1aWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2V0UmVsYXRpb25CeVVzZXIodXVpZDogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5zZXRSZWxhdGlvbkJ5VXNlcih1dWlkLCB1c2VybmFtZSwgcGFzc3dvcmQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgICAgICByZWplY3QoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyByZXNvbHZlUGVuZGluZ0hlYWRlclJlYXNvbihwZW5kaW5nSGVhZGVyVmFsdWVzOiBSZXNvbHZlSGVhZGVyUGVuZGluZ1JlYXNvblJlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5yZXNvbHZlUGVuZGluZ0hlYWRlclJlYXNvbihwZW5kaW5nSGVhZGVyVmFsdWVzKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihwZW5kaW5nTGluZVZhbHVlczogUmVzb2x2ZUxpbmVQZW5kaW5nUmVhc29uUmVxdWVzdCk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihwZW5kaW5nTGluZVZhbHVlcykudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBhZGRUcmFuc2FjdGlvbkxpbmUoXHJcbiAgICB1dWlkOiBzdHJpbmcsXHJcbiAgICBhcnRpY2xlTGluZTogVHJhbnNhY3Rpb25MaW5lVHlwZSxcclxuICAgIGFydGljbGVObzogc3RyaW5nLFxyXG4gICAgYW1vdW50OiBudW1iZXIsXHJcbiAgICB3YXJlaG91c2VObzogbnVtYmVyLFxyXG4gICAgY29tbWlzc2lvbkNvZGU6IHN0cmluZyxcclxuICAgIGlzUmV0dXJuOiBib29sZWFuLFxyXG4gICAgYWJvdmVMaW5lTnI6IG51bWJlcixcclxuICAgIGJlbG93TGluZU5yOiBudW1iZXJcclxuICApOlxyXG4gICAgUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuYWRkVHJhbnNhY3Rpb25MaW5lKHV1aWQsIGFydGljbGVMaW5lLCBhcnRpY2xlTm8sIGFtb3VudCwgd2FyZWhvdXNlTm8sIGNvbW1pc3Npb25Db2RlLCBpc1JldHVybiwgYWJvdmVMaW5lTnIsIGJlbG93TGluZU5yKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGFkZFRleHRMaW5lVG9UcmFuc2FjdGlvbih1dWlkOiBzdHJpbmcsIHNob3dPbkRvY3VtZW50czogbnVtYmVyLCB0ZXh0OiBzdHJpbmcsIGFtb3VudDogbnVtYmVyLCBhcnRpY2xlQm91bmQ6IGJvb2xlYW4sIHJlZkFydGljbGVMaW5lTnI6IG51bWJlciwgYWJvdmVMaW5lTnI/OiBudW1iZXIsIGJlbG93TGluZU5yPzogbnVtYmVyKTpcclxuICAgIFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmFkZFRleHRMaW5lVG9UcmFuc2FjdGlvbih1dWlkLCBzaG93T25Eb2N1bWVudHMsIHRleHQsIGFtb3VudCwgYXJ0aWNsZUJvdW5kLCByZWZBcnRpY2xlTGluZU5yLCBhYm92ZUxpbmVOciwgYmVsb3dMaW5lTnIpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgYWRkUmVsYXRpb25Ub1RyYW5zYWN0aW9uKHV1aWQ6IHN0cmluZywgcmVsYXRpb25JZDogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuYWRkUmVsYXRpb25Ub1RyYW5zYWN0aW9uKHV1aWQsIHJlbGF0aW9uSWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnModHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0OiBTZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVzcG9uc2VCYXNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5zZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9ucyh0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlTGluZVNlcXVlbmNlKHV1aWQ6IHN0cmluZywgbGluZVV1aWQ6IHN0cmluZywgYWJvdmVMaW5lTnI/OiBudW1iZXIsIGJlbG93TGluZU5yPzogbnVtYmVyKTpcclxuICAgIFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgY29uc3QgcmVxdWVzdDogQ2hhbmdlTGluZVNlcXVlbmNlUmVxdWVzdCA9IHtcclxuICAgICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgICAgbGluZVV1aWQ6IGxpbmVVdWlkLFxyXG4gICAgICAgIGFib3ZlTGluZU5yOiBhYm92ZUxpbmVOcixcclxuICAgICAgICBiZWxvd0xpbmVOcjogYmVsb3dMaW5lTnJcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuY2hhbmdlTGluZVNlcXVlbmNlKHJlcXVlc3QpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKGxpbmVVdWlkOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5jYW5jZWxBZGRUcmFuc2FjdGlvbkxpbmUobGluZVV1aWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRlbGV0ZVRyYW5zYWN0aW9uTGluZSh1dWlkOiBzdHJpbmcsIGxpbmVVdWlkOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5kZWxldGVUcmFuc2FjdGlvbkxpbmUodXVpZCwgbGluZVV1aWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZVF1YW50aXR5KHV1aWQ6IHN0cmluZywgbGluZVV1aWQ6IHN0cmluZywgbmV3UXVhbnRpdHk6IG51bWJlcik6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgICAgbGluZVV1aWQ6IGxpbmVVdWlkLFxyXG4gICAgICAgIG5ld1F1YW50aXR5OiBuZXdRdWFudGl0eVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVRdWFudGl0eShyZXF1ZXN0KS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZUNvbW1pc3Npb25Db2RlKHV1aWQ6IHN0cmluZywgbGluZVV1aWQ6IHN0cmluZywgY29kZTogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBsaW5lVXVpZDogbGluZVV1aWQsXHJcbiAgICAgIG5ld0NvbW1pc3Npb25Db2RlOiBjb2RlXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlVHJhbnNhY3Rpb25MaW5lQ29tbWlzc2lvbkNvZGUocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZVN1cHBsaWVyKHV1aWQ6IHN0cmluZywgbGluZVV1aWQ6IHN0cmluZywgaWQ6IG51bWJlcik6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbGluZVV1aWQ6IGxpbmVVdWlkLFxyXG4gICAgICBuZXdTdXBwbGllcklkOiBpZFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZVRyYW5zYWN0aW9uTGluZVN1cHBsaWVyKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VUcmFuc2FjdGlvbkxpbmVXYXJlaG91c2UodXVpZDogc3RyaW5nLCBsaW5lVXVpZDogc3RyaW5nLCB3YXJlaG91c2VOdW1iZXI6IG51bWJlcik6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbGluZVV1aWQ6IGxpbmVVdWlkLFxyXG4gICAgICBuZXdXYXJlaG91c2VOdW1iZXI6IHdhcmVob3VzZU51bWJlclxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZVRyYW5zYWN0aW9uTGluZVdhcmVob3VzZShyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlVHJhbnNhY3Rpb25MaW5lUHJpY2UodXVpZDogc3RyaW5nLCBsaW5lVXVpZDogc3RyaW5nLCBwcmljZTogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBsaW5lVXVpZDogbGluZVV1aWQsXHJcbiAgICAgIG5ld1ByaWNlOiBwcmljZVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZVRyYW5zYWN0aW9uTGluZVByaWNlKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VUcmFuc2FjdGlvbkxpbmVQcmljZUxpc3QodXVpZDogc3RyaW5nLCBsaW5lVXVpZDogc3RyaW5nLCBwcmljZUxpc3Q6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbGluZVV1aWQ6IGxpbmVVdWlkLFxyXG4gICAgICBuZXdQcmljZUxpc3RDb2RlOiBwcmljZUxpc3RcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVQcmljZUxpc3QocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZVZhdCh1dWlkOiBzdHJpbmcsIGxpbmVVdWlkOiBzdHJpbmcsIGlkOiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIGxpbmVVdWlkOiBsaW5lVXVpZCxcclxuICAgICAgbmV3VmF0SWQ6IGlkXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlVHJhbnNhY3Rpb25MaW5lVmF0KHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VUcmFuc2FjdGlvbkxpbmVMaW5lRGlzY291bnQodXVpZDogc3RyaW5nLCBsaW5lVXVpZDogc3RyaW5nLCB0eXBlOiBEaXNjb3VudFR5cGUsIGRpc2NvdW50OiBudW1iZXIsIHJlYXNvbjogc3RyaW5nLCBjb2RlOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIGxpbmVVdWlkOiBsaW5lVXVpZCxcclxuICAgICAgZGlzY291bnRUeXBlOiB0eXBlLFxyXG4gICAgICBuZXdEaXNjb3VudDogZGlzY291bnQsXHJcbiAgICAgIG5ld0Rpc2NvdW50UmVhc29uOiByZWFzb24sXHJcbiAgICAgIG5ld0Rpc2NvdW50Q29kZTogY29kZVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZVRyYW5zYWN0aW9uTGluZURpc2NvdW50KHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VUcmFuc2FjdGlvbkxpbmVEZWxpdmVyeU1ldGhvZCh1dWlkOiBzdHJpbmcsIGxpbmVVdWlkOiBzdHJpbmcsIG1ldGhvZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBsaW5lVXVpZDogbGluZVV1aWQsXHJcbiAgICAgIG5ld0RlbGl2ZXJ5TWV0aG9kQ29kZTogbWV0aG9kXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlVHJhbnNhY3Rpb25MaW5lRGVsaXZlcnlNZXRob2QocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZURlbGl2ZXJ5RGF0ZSh1dWlkOiBzdHJpbmcsIGxpbmVVdWlkOiBzdHJpbmcsIGRhdGU6IERhdGUpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIGxpbmVVdWlkOiBsaW5lVXVpZCxcclxuICAgICAgbmV3RGVsaXZlcnlEYXRlOiBkYXRlXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlVHJhbnNhY3Rpb25MaW5lRGVsaXZlcnlEYXRlKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VUcmFuc2FjdGlvbkxpbmVBc3NlbWJseVRpbWUodXVpZDogc3RyaW5nLCBsaW5lVXVpZDogc3RyaW5nLCB0aW1lOiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIGxpbmVVdWlkOiBsaW5lVXVpZCxcclxuICAgICAgbmV3QXNzZW1ibHlUaW1lOiB0aW1lXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlVHJhbnNhY3Rpb25MaW5lQXNzZW1ibHlUaW1lKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VUcmFuc2FjdGlvbkxpbmVFZGl0VGltZSh1dWlkOiBzdHJpbmcsIGxpbmVVdWlkOiBzdHJpbmcsIHRpbWU6IG51bWJlcik6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbGluZVV1aWQ6IGxpbmVVdWlkLFxyXG4gICAgICBuZXdFZGl0VGltZTogdGltZVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZVRyYW5zYWN0aW9uTGluZUVkaXRUaW1lKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VUcmFuc2FjdGlvbkxpbmVTdXBwbGllckFydGljbGVOdW1iZXIodXVpZDogc3RyaW5nLCBsaW5lVXVpZDogc3RyaW5nLCBhcnRpY2xlTnVtYmVyOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIGxpbmVVdWlkOiBsaW5lVXVpZCxcclxuICAgICAgbmV3U3VwcGxpZXJBcnRpY2xlTnVtYmVyOiBhcnRpY2xlTnVtYmVyXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlVHJhbnNhY3Rpb25MaW5lU3VwcGxpZXJBcnRpY2xlTnVtYmVyKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VUcmFuc2FjdGlvbkxpbmVSZWZlcmVuY2UodXVpZDogc3RyaW5nLCBsaW5lVXVpZDogc3RyaW5nLCByZWZlcmVuY2U6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbGluZVV1aWQ6IGxpbmVVdWlkLFxyXG4gICAgICBuZXdSZWZlcmVuY2U6IHJlZmVyZW5jZVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZVRyYW5zYWN0aW9uTGluZVJlZmVyZW5jZShyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlVHJhbnNhY3Rpb25MaW5lR29vZERlc2NyaXB0aW9uKHV1aWQ6IHN0cmluZywgbGluZVV1aWQ6IHN0cmluZywgZ29vZERlc2NyaXB0aW9uOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIGxpbmVVdWlkOiBsaW5lVXVpZCxcclxuICAgICAgbmV3R29vZERlc2NyaXB0aW9uOiBnb29kRGVzY3JpcHRpb25cclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVHb29kRGVzY3JpcHRpb24ocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZUhlYWRlclRyYW5zYWN0aW9uRGVmaW5pdGl2ZSh1dWlkOiBzdHJpbmcsIGRlZmluaXRpdmU6IGJvb2xlYW4pOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIG5ld1RyYW5zYWN0aW9uRGVmaW5pdGl2ZTogZGVmaW5pdGl2ZVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZUhlYWRlclRyYW5zYWN0aW9uRGVmaW5pdGl2ZShyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlSGVhZGVyRGVsaXZlcnlBZGRyZXNzKHV1aWQ6IHN0cmluZywgbmV3TmF3TnI6IG51bWJlcik6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbmV3VHJhbnNhY3Rpb25BZGRyZXNzTmF3TnI6IG5ld05hd05yXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlSGVhZGVyVHJhbnNhY3Rpb25BZGRyZXNzKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VIZWFkZXJJbnZvaWNlQWRkcmVzcyh1dWlkOiBzdHJpbmcsIG5ld05hd05yOiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIG5ld0ludm9pY2VBZGRyZXNzTmF3TnI6IG5ld05hd05yXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlSGVhZGVySW52b2ljZUFkZHJlc3MocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZUhlYWRlclRyYW5zYWN0aW9uRGVsaXZlcnlEYXRlKHV1aWQ6IHN0cmluZywgZGF0ZTogRGF0ZSk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbmV3RGVsaXZlcnlEYXRlOiBkYXRlXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlSGVhZGVyRGVsaXZlcnlEYXRlKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VIZWFkZXJUcmFuc2FjdGlvbkRlbGl2ZXJ5RGF0ZURlZmluaXRpdmUodXVpZDogc3RyaW5nLCBkZWZpbml0aXZlOiBib29sZWFuKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBuZXdEZWxpdmVyeURhdGVEZWZpbml0aXZlOiBkZWZpbml0aXZlXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlSGVhZGVyRGVsaXZlcnlEYXRlRGVmaW5pdGl2ZShyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlSGVhZGVyVHJhbnNhY3Rpb25SZW1hcmsodXVpZDogc3RyaW5nLCByZW1hcms6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbmV3UmVtYXJrczogcmVtYXJrXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlSGVhZGVyUmVtYXJrcyhyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlSGVhZGVyVHJhbnNhY3Rpb25SZWZlcmVuY2UodXVpZDogc3RyaW5nLCByZWZlcmVuY2U6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbmV3T3duUmVmZXJlbmNlOiByZWZlcmVuY2VcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VIZWFkZXJPd25SZWZlcmVuY2UocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZUhlYWRlclRyYW5zYWN0aW9uUmVsYXRpb25SZWZlcmVuY2UodXVpZDogc3RyaW5nLCByZWZlcmVuY2U6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbmV3UmVsYXRpb25SZWZlcmVuY2U6IHJlZmVyZW5jZVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZUhlYWRlclJlbGF0aW9uUmVmZXJlbmNlKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VIZWFkZXJUb0Rvd25QYXlQZXJjZW50YWdlKHV1aWQ6IHN0cmluZywgYW1vdW50OiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIG5ld1RvRG93blBheVBlcmNlbnRhZ2U6IGFtb3VudFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZUhlYWRlclRvRG93blBheVBlcmNlbnRhZ2UocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZUhlYWRlclRvRG93blBheUFtb3VudCh1dWlkOiBzdHJpbmcsIGFtb3VudDogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBuZXdUb0Rvd25QYXlBbW91bnQ6IGFtb3VudFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZUhlYWRlclRvRG93blBheUFtb3VudChyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlSGVhZGVyVHJhbnNhY3Rpb25QcmVmZXJyZWREZWxpdmVyeURhdGUodXVpZDogc3RyaW5nLCBkYXRlOiBEYXRlKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBuZXdQcmVmZXJyZWREZWxpdmVyeURhdGU6IGRhdGUsXHJcbiAgICAgIG5ld1ByZWZlcnJlZERlbGl2ZXJ5RGF0ZU9wdGlvbjogXCJcIlxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZUhlYWRlclByZWZlcnJlZERlbGl2ZXJ5RGF0ZShyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlSGVhZGVyVHJhbnNhY3Rpb25EZWxpdmVyeU1ldGhvZCh1dWlkOiBzdHJpbmcsIG1ldGhvZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBuZXdEZWxpdmVyeU1ldGhvZENvZGU6IG1ldGhvZFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZUhlYWRlckRlbGl2ZXJ5TWV0aG9kKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VIZWFkZXJUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9ucyh1dWlkOiBzdHJpbmcsIG9wdGlvbnM6IHN0cmluZ1tdKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBuZXdEZWxpdmVyeU9wdGlvbnM6IG9wdGlvbnNcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VIZWFkZXJEZWxpdmVyeU9wdGlvbnMocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZUhlYWRlclRyYW5zYWN0aW9uUGFydGlhbERlbGl2ZXJ5KHV1aWQ6IHN0cmluZywgYWxsb3dQYXJ0aWFsOiBib29sZWFuKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBuZXdQYXJ0aWFsRGVsaXZlcnlBbGxvd2VkOiBhbGxvd1BhcnRpYWxcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VIZWFkZXJQYXJ0aWFsRGVsaXZlcnlBbGxvd2VkKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VIZWFkZXJUcmFuc2FjdGlvbkJyYW5jaCh1dWlkOiBzdHJpbmcsIGJyYW5jaDogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBuZXdCcmFuY2hJZDogYnJhbmNoXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlSGVhZGVyQnJhbmNoKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VIZWFkZXJUcmFuc2FjdGlvbkFkbUNvb3JkaW5hdG9yKHV1aWQ6IHN0cmluZywgcmVsYXRpb246IG51bWJlcik6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbmV3QWRtQ29vcmRpbmF0b3I6IHJlbGF0aW9uXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlSGVhZGVyQWRtQ29vcmRpbmF0b3IocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZUhlYWRlclRyYW5zYWN0aW9uTWFya2V0aW5nKHV1aWQ6IHN0cmluZywgY29kZTogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBuZXdNYXJrZXRpbmdDb2RlOiBjb2RlXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlSGVhZGVyTWFya2V0aW5nQ29kZShyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlSGVhZGVyVHJhbnNhY3Rpb25EaXNjb3VudCh1dWlkOiBzdHJpbmcsIHR5cGU6IERpc2NvdW50VHlwZSwgYW1vdW50OiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIG9yZGVyRGlzY291bnRUeXBlOiB0eXBlLFxyXG4gICAgICBkaXNjb3VudFZhbHVlOiBhbW91bnRcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5zZXRUcmFuc2FjdGlvbkRpc2NvdW50cyhyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlSGVhZGVyVHJhbnNhY3Rpb25Ub0Rvd25QYXkodXVpZDogc3RyaW5nLCBkb3duUGF5bWVudDogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBuZXdUb0Rvd25QYXlBbW91bnQ6IGRvd25QYXltZW50XHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlSGVhZGVyVG9Eb3duUGF5QW1vdW50KHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VUcmFuc2FjdGlvbkxpbmVDb2xsZWN0aW9uQ29kZSh1dWlkOiBzdHJpbmcsIGxpbmVVdWlkOiBzdHJpbmcsIGNvZGU6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbGluZVV1aWQ6IGxpbmVVdWlkLFxyXG4gICAgICBuZXdDb2xsZWN0aW9uQ29kZTogY29kZVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZVRyYW5zYWN0aW9uTGluZUNvbGxlY3Rpb25Db2RlKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVPdXRzdGFuZGluZ0VudHJ5KHV1aWQ6IHN0cmluZywgYW1vdW50OiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc1VVSUQ6IHV1aWQsXHJcbiAgICAgIGFtb3VudDogYW1vdW50XHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY3JlYXRlT3V0c3RhbmRpbmdFbnRyeShyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcmVnaXN0ZXJTYWxlc09yZGVyUGF5bWVudChcclxuICAgIHV1aWQ6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIGN1cnJlbmN5SWQ6IG51bWJlciwgcGF5bWVudE1ldGhvZDogc3RyaW5nLCBjYXNoUmVnaXN0ZXJHcm91cElkOiBudW1iZXJcclxuICApOiBQcm9taXNlPERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc1VVSUQ6IHV1aWQsXHJcbiAgICAgIGFtb3VudDogYW1vdW50LFxyXG4gICAgICBjdXJyZW5jeUlkOiBjdXJyZW5jeUlkLFxyXG4gICAgICBwYXltZW50TWV0aG9kQ29kZTogcGF5bWVudE1ldGhvZCxcclxuICAgICAgY2FzaFJlZ2lzdGVyR3JvdXBJZDogY2FzaFJlZ2lzdGVyR3JvdXBJZFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLnJlZ2lzdGVyU2FsZXNPcmRlclBheW1lbnQocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY3JlYXRlSW9uZVBheW1lbnRMaW5rQW5kUVJDb2RlKHV1aWQ6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIHBheW1lbnRNZXRob2RDb2RlOiBzdHJpbmcpOiBQcm9taXNlPENyZWF0ZVBheW1lbnRMaW5rUmVzdWx0PiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc1VVSUQ6IHV1aWQsXHJcbiAgICAgIGFtb3VudDogYW1vdW50LFxyXG4gICAgICBwYXltZW50TWV0aG9kQ29kZTogcGF5bWVudE1ldGhvZENvZGVcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jcmVhdGVJb25lUGF5bWVudExpbmtBbmRRUkNvZGUocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKENyZWF0ZVBheW1lbnRMaW5rUmVzdWx0LCByZXNwb25zZS5yZXN1bHRPYmplY3QpIGFzIHVua25vd24gYXMgQ3JlYXRlUGF5bWVudExpbmtSZXN1bHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRQYXltZW50TGlua1N0YXR1cyhwYXltZW50TGlua1VVSUQ6IHN0cmluZyk6IFByb21pc2U8UGF5bWVudExpbmtTdGF0dXM+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFBheW1lbnRMaW5rU3RhdHVzKHBheW1lbnRMaW5rVVVJRCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFBheW1lbnRMaW5rU3RhdHVzLCByZXNwb25zZS5yZXN1bHRPYmplY3QpIGFzIHVua25vd24gYXMgUGF5bWVudExpbmtTdGF0dXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXREb3duUGF5bWVudEluZm8odXVpZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkRvd25QYXltZW50SW5mbz4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0RG93blBheW1lbnRJbmZvKHV1aWQpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkRvd25QYXltZW50SW5mbywgcmVzcG9uc2UucmVzdWx0T2JqZWN0KSBhcyB1bmtub3duIGFzIFRyYW5zYWN0aW9uRG93blBheW1lbnRJbmZvO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0R29vZHNSZWNlaXB0U3RhdHVzKHRyYW5zSWQ6IG51bWJlciwgbGluZU5yOiBudW1iZXIpOiBQcm9taXNlPEdvb2RzUmVjZWlwdFN0YXR1c1dpdGhIaXN0b3J5PiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRHb29kc1JlY2VpcHRTdGF0dXModHJhbnNJZCwgbGluZU5yKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPEdvb2RzUmVjZWlwdFN0YXR1c1dpdGhIaXN0b3J5Pjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKEdvb2RzUmVjZWlwdFN0YXR1c1dpdGhIaXN0b3J5LCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0R29vZHNSZWNlaXB0U3RhdHVzV2l0aEhpc3RvcnkodHJhbnNJZDogbnVtYmVyLCBsaW5lTnI6IG51bWJlcik6IFByb21pc2U8R29vZHNSZWNlaXB0U3RhdHVzV2l0aEhpc3Rvcnk+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldEdvb2RzUmVjZWlwdFN0YXR1c1dpdGhIaXN0b3J5KHRyYW5zSWQsIGxpbmVOcik7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxHb29kc1JlY2VpcHRTdGF0dXNXaXRoSGlzdG9yeT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShHb29kc1JlY2VpcHRTdGF0dXNXaXRoSGlzdG9yeSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHJlY2VpdmVHb29kc0ZvclB1cmNoYXNlT3JkZXIocmVxdWVzdDogUmVjZWl2ZUdvb2RzRm9yUHVyY2hhc2VPcmRlclJlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5yZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyByZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyQ29ycmVjdGlvbihyZXF1ZXN0OiBSZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyQ29ycmVjdGlvblJlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5yZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyQ29ycmVjdGlvbihyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UHVyY2hhc2VQb3J0YWxMaW5lcyhyZXF1ZXN0OiBHZXRQdXJjaGFzZVBvcnRhbExpbmUpOiBQcm9taXNlPFB1cmNoYXNlUG9ydGFsTGluZVtdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRQdXJjaGFzZVBvcnRhbExpbmVzKHJlcXVlc3QpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3RzKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoUHVyY2hhc2VQb3J0YWxMaW5lLCByZXN1bHQucmVzdWx0T2JqZWN0cykpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgdXBkYXRlUHVyY2hhc2VQb3J0YWxMaW5lcyhwdXJjaGFzZVBvcnRhbExpbmU6IFB1cmNoYXNlUG9ydGFsTGluZSk6IFByb21pc2U8RGF0YVNlcnZpY2VSZXNwb25zZURhdGE+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci51cGRhdGVQdXJjaGFzZVBvcnRhbExpbmVzKHB1cmNoYXNlUG9ydGFsTGluZSk7XHJcbiAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgYXdhaXQgdGhpcy5jb21taXQoKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcHVyY2hhc2VPcmRlckNvbmZpcm1hdGlvbihwdXJjaGFzZU9yZGVyQ29uZmlybWF0aW9uOiBHZXRQdXJjaGFzZU9yZGVyQ29uZmlybWF0aW9uKTogUHJvbWlzZTxEYXRhU2VydmljZVJlc3BvbnNlRGF0YT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFB1cmNoYXNlT3JkZXJDb25maXJtYXRpb24ocHVyY2hhc2VPcmRlckNvbmZpcm1hdGlvbik7XHJcbiAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgYXdhaXQgdGhpcy5jb21taXQoKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbG9ja1B1cmNoYXNlUG9ydGFsTGluZXModHJhbnNJZFB1cmNoYXNlOiBudW1iZXIsIGxpbmVJZDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5sb2NrUHVyY2hhc2VQb3J0YWxMaW5lcyh0cmFuc0lkUHVyY2hhc2UsIGxpbmVJZCkudGhlbihhc3luYyAocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U3RvY2tTdGlja2VyVGVtcGxhdGVzKGRhdGE6IFN0b2NrU3RpY2tlcnNQcmludExheW91dHMpOiBQcm9taXNlPFN0b2NrU3RpY2tlcnNQcmludExheW91dHNbXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIHJldHVybiB0aGlzLnNoYXJlZENvbm5lY3Rvci5nZXRTdG9ja1N0aWNrZXJQcmludExheW91dHMoZGF0YSkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFN0b2NrU3RpY2tlcnNQcmludExheW91dHMsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdlbmVyYXRlQ29tbWlzc2lvbk9yZGVycyh0cmFuc0lkOiBudW1iZXIsIG9ubHlHZW5lcmF0ZUZvckRpcmVjdFNlbGxTdXBwbGllcnM6IGJvb2xlYW4pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdlbmVyYXRlQ29tbWlzc2lvbk9yZGVycyh0cmFuc0lkLCBvbmx5R2VuZXJhdGVGb3JEaXJlY3RTZWxsU3VwcGxpZXJzKS50aGVuKGFzeW5jIChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXREZWxpdmVyeU9yZGVyU3RhdHVzKHRyYW5zSWQ6IG51bWJlciwgbGluZU5yOiBudW1iZXIpOiBQcm9taXNlPERlbGl2ZXJ5T3JkZXJTdGF0dXM+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldERlbGl2ZXJ5T3JkZXJTdGF0dXModHJhbnNJZCwgbGluZU5yKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPERlbGl2ZXJ5T3JkZXJTdGF0dXM+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoRGVsaXZlcnlPcmRlclN0YXR1cywgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEF2YWlsYWJsZVN0b2NrR3JvdXBlZEJ5V0xCU0J5VHJhbnNJZExpbmVOcih0cmFuc0lkOiBudW1iZXIsIGxpbmVOcjogbnVtYmVyKTogUHJvbWlzZTxBdmFpbGFibGVTdG9ja1tdPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRBdmFpbGFibGVTdG9ja0dyb3VwZWRCeVdMQlNCeVRyYW5zSWRMaW5lTnIodHJhbnNJZCwgbGluZU5yKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPEF2YWlsYWJsZVN0b2NrW10+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoQXZhaWxhYmxlU3RvY2ssIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBhbGxvY2F0ZUdvb2RzRm9yU2FsZXNPcmRlcihyZXF1ZXN0OiBBbGxvY2F0ZUdvb2RzRm9yU2FsZXNPcmRlclJlcXVlc3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmFsbG9jYXRlR29vZHNGb3JTYWxlc09yZGVyKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgYWxsb2NhdGVHb29kc0ZvclNhbGVzT3JkZXJDb3JyZWN0aW9uKHJlcXVlc3Q6IEFsbG9jYXRlR29vZHNGb3JTYWxlc09yZGVyQ29ycmVjdGlvblJlcXVlc3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmFsbG9jYXRlR29vZHNGb3JTYWxlc09yZGVyQ29ycmVjdGlvbihyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEdvb2RzQWxsb2NhdGlvblN0YXR1cyh0cmFuc0lkOiBudW1iZXIsIGxpbmVOcjogbnVtYmVyKTogUHJvbWlzZTxHb29kc0FsbG9jYXRpb25TdGF0dXM+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldEdvb2RzQWxsb2NhdGlvblN0YXR1cyh0cmFuc0lkLCBsaW5lTnIpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnJlc3VsdE9iamVjdCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoR29vZHNBbGxvY2F0aW9uU3RhdHVzLCByZXNwb25zZS5yZXN1bHRPYmplY3QpIGFzIHVua25vd24gYXMgR29vZHNBbGxvY2F0aW9uU3RhdHVzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0R29vZHNBbGxvY2F0aW9uU3RhdHVzV2l0aEhpc3RvcnkodHJhbnNJZDogbnVtYmVyLCBsaW5lTnI6IG51bWJlcik6IFByb21pc2U8R29vZHNBbGxvY2F0aW9uU3RhdHVzV2l0aEhpc3Rvcnk+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldEdvb2RzQWxsb2NhdGlvblN0YXR1c1dpdGhIaXN0b3J5KHRyYW5zSWQsIGxpbmVOcik7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UucmVzdWx0T2JqZWN0KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShHb29kc0FsbG9jYXRpb25TdGF0dXNXaXRoSGlzdG9yeSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KSBhcyB1bmtub3duIGFzIEdvb2RzQWxsb2NhdGlvblN0YXR1c1dpdGhIaXN0b3J5O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0T3JkZXJDb25maXJtYXRpb25FbWFpbExheW91dHModHJhbnNhY3Rpb25VVUlEOiBzdHJpbmcpOiBQcm9taXNlPFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsW10+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldE9yZGVyQ29uZmlybWF0aW9uRW1haWxMYXlvdXRzKHRyYW5zYWN0aW9uVVVJRCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbFtdPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0T3JkZXJDb25maXJtYXRpb25QcmludExheW91dHModHJhbnNhY3Rpb25VVUlEOiBzdHJpbmcpOiBQcm9taXNlPFJlcG9ydExheW91dFNlbGVjdGlvblByaW50W10+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldE9yZGVyQ29uZmlybWF0aW9uUHJpbnRMYXlvdXRzKHRyYW5zYWN0aW9uVVVJRCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludFtdPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFJlcG9ydExheW91dFNlbGVjdGlvblByaW50LCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0T3JkZXJDb25maXJtYXRpb25EZWZhdWx0U2VuZE1ldGhvZChyZWxhdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPG51bWJlcj4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0T3JkZXJDb25maXJtYXRpb25EZWZhdWx0U2VuZE1ldGhvZChyZWxhdGlvbklkKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2UucmVzdWx0T2JqZWN0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcHJpbnRPcmRlckNvbmZpcm1hdGlvbihyZXF1ZXN0OiBQcmludE9yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IucHJpbnRPcmRlckNvbmZpcm1hdGlvbihyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2UucmVzdWx0T2JqZWN0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZW1haWxPcmRlckNvbmZpcm1hdGlvbihyZXF1ZXN0OiBFbWFpbE9yZGVyQ29uZmlybWF0aW9uUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZW1haWxPcmRlckNvbmZpcm1hdGlvbihyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2UucmVzdWx0T2JqZWN0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcGRmT3JkZXJDb25maXJtYXRpb24ocmVxdWVzdDogUGRmT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5wZGZPcmRlckNvbmZpcm1hdGlvbihyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2UucmVzdWx0T2JqZWN0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcHJpbnRQdXJjaGFzZU9yZGVyKHJlcXVlc3Q6IFByaW50UHVyY2hhc2VPcmRlclJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLnByaW50UHVyY2hhc2VPcmRlcihyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2UucmVzdWx0T2JqZWN0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZW1haWxQdXJjaGFzZU9yZGVyKHJlcXVlc3Q6IEVtYWlsUHVyY2hhc2VPcmRlclJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmVtYWlsUHVyY2hhc2VPcmRlcihyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2UucmVzdWx0T2JqZWN0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcGRmUHVyY2hhc2VPcmRlcihyZXF1ZXN0OiBQZGZQdXJjaGFzZU9yZGVyUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IucGRmUHVyY2hhc2VPcmRlcihyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2UucmVzdWx0T2JqZWN0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UHVyY2hhc2VPcmRlckVtYWlsTGF5b3V0cyh0cmFuc2FjdGlvblVVSUQ6IHN0cmluZyk6IFByb21pc2U8UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWxbXT4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0UHVyY2hhc2VPcmRlckVtYWlsTGF5b3V0cyh0cmFuc2FjdGlvblVVSUQpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWxbXT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbCwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFB1cmNoYXNlT3JkZXJQcmludExheW91dHModHJhbnNhY3Rpb25VVUlEOiBzdHJpbmcpOiBQcm9taXNlPFJlcG9ydExheW91dFNlbGVjdGlvblByaW50W10+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFB1cmNoYXNlT3JkZXJQcmludExheW91dHModHJhbnNhY3Rpb25VVUlEKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFJlcG9ydExheW91dFNlbGVjdGlvblByaW50W10+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoUmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnQsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXREZWZhdWx0RW1haWxBZGRyZXNzTGlzdEZvck9yZGVyQ29uZmlybWF0aW9uKHRyYW5zYWN0aW9uVVVJRCk6IFByb21pc2U8c3RyaW5nW10+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldERlZmF1bHRFbWFpbEFkZHJlc3NMaXN0Rm9yT3JkZXJDb25maXJtYXRpb24odHJhbnNhY3Rpb25VVUlEKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2UucmVzdWx0T2JqZWN0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UHVyY2hhc2VPcmRlckRlZmF1bHRTZW5kTWV0aG9kKHJlbGF0aW9uSWQ6IG51bWJlcik6IFByb21pc2U8bnVtYmVyPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRQdXJjaGFzZU9yZGVyRGVmYXVsdFNlbmRNZXRob2QocmVsYXRpb25JZCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlc3VsdE9iamVjdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdlbmVyYXRlQW5kU2VuZFB1cmNoYXNlT3JkZXJzRm9yU2FsZXNPcmRlcih0cmFuc2FjdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdlbmVyYXRlQW5kU2VuZFB1cmNoYXNlT3JkZXJzRm9yU2FsZXNPcmRlcih0cmFuc2FjdGlvbklkKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2UucmVzdWx0T2JqZWN0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UHVyY2hhc2VBZHZpY2VMaW5lcyhmaWx0ZXJzOiBQdXJjaGFzZUFkdmljZUZpbHRlcnMsIGdvb2RJZD86IG51bWJlcik6IFByb21pc2U8UHVyY2hhc2VBZHZpY2VMaW5lW10+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFB1cmNoYXNlQWR2aWNlTGluZXMoZmlsdGVycywgZ29vZElkKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFB1cmNoYXNlQWR2aWNlTGluZVtdPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFB1cmNoYXNlQWR2aWNlTGluZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdlbmVyYXRlQW5kU2VuZFB1cmNoYXNlT3JkZXJzKHB1cmNoYXNlQWR2aWNlTGluZXM6IFB1cmNoYXNlQWR2aWNlTGluZVtdKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZW5lcmF0ZUFuZFNlbmRQdXJjaGFzZU9yZGVycyhwdXJjaGFzZUFkdmljZUxpbmVzKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Vycm9yU2VydmljZS5zaG93VmFsaWRhdGlvbkVycm9yKHJlc3VsdCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==