@colijnit/transaction 12.1.58 → 12.1.60

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 (337) hide show
  1. package/bundles/colijnit-transaction.umd.js +2705 -2160
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +223 -203
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +224 -204
  6. package/esm2015/lib/assets/dictionary/text.properties.js +9 -1
  7. package/esm2015/lib/cache/parameter-cache-field.js +2 -2
  8. package/esm2015/lib/cache/service/business-object-cache-manager.service.js +2 -2
  9. package/esm2015/lib/cache/service/select-multiple-cache.service.js +1 -1
  10. package/esm2015/lib/cache/service/select-multiple-parameterized-cache.service.js +1 -1
  11. package/esm2015/lib/cache/service/select-single-cache.service.js +1 -1
  12. package/esm2015/lib/component/animated-checkbox/animated-checkbox.component.js +27 -0
  13. package/esm2015/lib/component/animated-checkbox/animated-checkbox.module.js +21 -0
  14. package/esm2015/lib/component/avatar/avatar.component.js +8 -5
  15. package/esm2015/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +1 -1
  16. package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +85 -94
  17. package/esm2015/lib/component/checkout/checkout-overview-payment/checkout-overview-payment.component.js +2 -2
  18. package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +54 -163
  19. package/esm2015/lib/component/checkout/checkout.component.js +6 -3
  20. package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.component.js +2 -2
  21. package/esm2015/lib/component/core/base/components/characteristic-answer/characteristic-answer.component.js +2 -2
  22. package/esm2015/lib/component/core/base/components/warehouse/warehouse.component.js +2 -2
  23. package/esm2015/lib/component/core/base/dialog-transaction-line-base.component.js +6 -2
  24. package/esm2015/lib/component/core/base/transaction-filter-popup-base.component.js +8 -7
  25. package/esm2015/lib/component/core/base/transaction-header-base.component.js +3 -3
  26. package/esm2015/lib/component/core/base/transaction-header-filter-popup-base.component.js +111 -0
  27. package/esm2015/lib/component/core/base/transaction-line-base.component.js +2 -4
  28. package/esm2015/lib/component/core/base/transaction-lines-line-base.component.js +5 -3
  29. package/esm2015/lib/component/core/core.module.js +1 -4
  30. package/esm2015/lib/component/core/relation/customer-groups.component.js +4 -1
  31. package/esm2015/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.component.js +2 -2
  32. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/dialog-transaction-line-commission-code.component.js +2 -2
  33. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-delivery-method/dialog-transaction-line-delivery-method.component.js +2 -2
  34. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.component.js +3 -7
  35. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.component.js +2 -2
  36. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.component.js +37 -0
  37. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.module.js +28 -0
  38. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.component.js +2 -2
  39. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.component.js +2 -2
  40. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.component.js +2 -2
  41. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/dialog-transaction-line-warehouse-location.component.js +2 -2
  42. package/esm2015/lib/component/down-payment/down-payment.component.js +2 -2
  43. package/esm2015/lib/component/down-payment/down-payment.module.js +4 -2
  44. package/esm2015/lib/component/editable-label/editable-label.component.js +4 -1
  45. package/esm2015/lib/component/loader/loader.component.js +51 -0
  46. package/esm2015/lib/component/loader/loader.module.js +19 -0
  47. package/esm2015/lib/component/payment/payment.component.js +14 -11
  48. package/esm2015/lib/component/payment/payment.module.js +4 -2
  49. package/esm2015/lib/component/payment-qr-code/payment-qr-code.component.js +2 -2
  50. package/esm2015/lib/component/payment-qr-code/payment-qr-code.module.js +4 -2
  51. package/esm2015/lib/component/quick-send-button/quick-send-button.component.js +116 -0
  52. package/esm2015/lib/component/quick-send-button/quick-send-button.module.js +27 -0
  53. package/esm2015/lib/component/relation/relation-address/relation-address.component.js +4 -4
  54. package/esm2015/lib/component/relation/relation-address-select/relation-address-select.component.js +7 -8
  55. package/esm2015/lib/component/relation/relation-address-tile/relation-address-tile.component.js +6 -2
  56. package/esm2015/lib/component/relation/relation-addresses/relation-addresses.component.js +37 -43
  57. package/esm2015/lib/component/relation/relation-addresses/relation-addresses.module.js +5 -3
  58. package/esm2015/lib/component/relation/relation-base.component.js +2 -2
  59. package/esm2015/lib/component/relation/relation-contact-details/relation-contact-details.component.js +10 -8
  60. package/esm2015/lib/component/relation/relation-general/relation-general.component.js +40 -16
  61. package/esm2015/lib/component/relation/relation-preferences/relation-preferences.component.js +6 -3
  62. package/esm2015/lib/component/relation/relation-suggestions-list/relation-suggestions-list.component.js +1 -1
  63. package/esm2015/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.component.js +1 -1
  64. package/esm2015/lib/component/relation/relation-type/relation-type.component.js +7 -3
  65. package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.js +5 -6
  66. package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.js +1 -5
  67. package/esm2015/lib/component/shopping-cart/shopping-cart.component.js +2 -2
  68. package/esm2015/lib/component/tile/tile.component.js +2 -2
  69. package/esm2015/lib/component/transaction/transaction.component.js +7 -3
  70. package/esm2015/lib/component/transaction/transaction.module.js +6 -2
  71. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button-base.component.js +37 -0
  72. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.js +55 -11
  73. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-purchase-button-bar-button.component.js +40 -0
  74. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar.component.js +4 -1
  75. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar.module.js +10 -3
  76. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.component.js +2 -2
  77. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +4 -9
  78. package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.js +125 -57
  79. package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.module.js +5 -3
  80. package/esm2015/lib/component/transaction-header-fields/transaction-header-administrative-relation.component.js +9 -6
  81. package/esm2015/lib/component/transaction-header-fields/transaction-header-branch.component.js +8 -5
  82. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-method.component.js +16 -6
  83. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-method.module.js +4 -3
  84. package/esm2015/lib/component/transaction-header-fields/transaction-header-partial-delivery.component.js +9 -3
  85. package/esm2015/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.js +10 -8
  86. package/esm2015/lib/component/transaction-line/transaction-order-delivery-line/service/transaction-order-delivery.service.js +15 -0
  87. package/esm2015/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.component.js +56 -30
  88. package/esm2015/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.module.js +4 -3
  89. package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.js +6 -31
  90. package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.module.js +4 -2
  91. package/esm2015/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.component.js +87 -0
  92. package/esm2015/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.module.js +45 -0
  93. package/esm2015/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.component.js +2 -2
  94. package/esm2015/lib/component/transaction-line-fields/transaction-line-amount.component.js +47 -0
  95. package/esm2015/lib/component/transaction-line-fields/transaction-line-amount.module.js +21 -0
  96. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-button.component.js +1 -1
  97. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.component.js +3 -3
  98. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-method.component.js +3 -3
  99. package/esm2015/lib/component/transaction-line-fields/transaction-line-price-list.component.js +3 -3
  100. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-button.component.js +50 -0
  101. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-button.module.js +28 -0
  102. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier.component.js +27 -26
  103. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier.module.js +4 -2
  104. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.component.js +3 -3
  105. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-location.component.js +3 -3
  106. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.component.js +3 -3
  107. package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.js +1 -2
  108. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.component.js +10 -7
  109. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.module.js +4 -2
  110. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.component.js +24 -22
  111. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.module.js +4 -2
  112. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.component.js +52 -0
  113. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.module.js +28 -0
  114. package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +2 -2
  115. 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 +9 -6
  116. 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 +7 -4
  117. 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 +9 -6
  118. 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 +9 -6
  119. package/esm2015/lib/component/transaction-send-button-dialog/transaction-send-button-dialog.component.js +75 -0
  120. package/esm2015/lib/component/transaction-send-button-dialog/transaction-send-button-dialog.module.js +25 -0
  121. package/esm2015/lib/enum/icon.enum.js +2 -1
  122. package/esm2015/lib/model/icon-svg.js +2 -1
  123. package/esm2015/lib/model/relation-any-type.js +1 -1
  124. package/esm2015/lib/model/transaction-bar-button.js +2 -3
  125. package/esm2015/lib/pipe/co-currency.pipe.js +2 -2
  126. package/esm2015/lib/pipe/date-duration.pipe.js +2 -2
  127. package/esm2015/lib/pipe/delivery-time.pipe.js +2 -2
  128. package/esm2015/lib/service/article-connector.service.js +10 -6
  129. package/esm2015/lib/service/dictionary.service.js +2 -2
  130. package/esm2015/lib/service/error.service.js +1 -1
  131. package/esm2015/lib/service/payment.service.js +1 -1
  132. package/esm2015/lib/service/pending-reason.service.js +31 -31
  133. package/esm2015/lib/service/relation-connector.service.js +192 -0
  134. package/esm2015/lib/service/relation.service.js +120 -0
  135. package/esm2015/lib/service/shared-connector.service.js +2 -2
  136. package/esm2015/lib/service/shared.service.js +10 -6
  137. package/esm2015/lib/service/transaction-connector-adapter.service.js +108 -93
  138. package/esm2015/lib/service/transaction-connector.service.js +36 -45
  139. package/esm2015/lib/service/transaction-event.service.js +6 -2
  140. package/esm2015/lib/service/transaction-mapping.service.js +8 -2
  141. package/esm2015/lib/service/transaction.service.js +68 -75
  142. package/esm2015/public_api.js +3 -1
  143. package/fesm2015/colijnit-transaction.js +2487 -1995
  144. package/fesm2015/colijnit-transaction.js.map +1 -1
  145. package/lib/cache/service/business-object-cache-manager.service.d.ts +2 -1
  146. package/lib/cache/service/select-multiple-cache.service.d.ts +1 -1
  147. package/lib/cache/service/select-multiple-parameterized-cache.service.d.ts +1 -1
  148. package/lib/cache/service/select-single-cache.service.d.ts +2 -1
  149. package/lib/component/animated-checkbox/animated-checkbox.component.d.ts +5 -0
  150. package/lib/component/animated-checkbox/animated-checkbox.module.d.ts +2 -0
  151. package/lib/component/animated-checkbox/style/_layout.scss +78 -0
  152. package/lib/component/animated-checkbox/style/_material-definition.scss +13 -0
  153. package/lib/component/animated-checkbox/style/_theme.scss +4 -0
  154. package/lib/component/animated-checkbox/style/material.scss +4 -0
  155. package/lib/component/avatar/avatar.component.d.ts +5 -3
  156. package/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.d.ts +1 -1
  157. package/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.d.ts +3 -5
  158. package/lib/component/checkout/checkout-overview-delivery-edit/style/_layout.scss +95 -90
  159. package/lib/component/checkout/checkout-overview-delivery-edit/style/_material-definition.scss +0 -10
  160. package/lib/component/checkout/checkout-overview-delivery-edit/style/_theme.scss +0 -8
  161. package/lib/component/checkout/checkout-overview-payment/checkout-overview-payment.component.d.ts +2 -2
  162. package/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +9 -18
  163. package/lib/component/checkout/checkout-overview-relation-edit/style/_layout.scss +0 -84
  164. package/lib/component/checkout/checkout-overview-relation-edit/style/_material-definition.scss +0 -16
  165. package/lib/component/checkout/style/_layout.scss +86 -1
  166. package/lib/component/checkout/style/_material-definition.scss +7 -0
  167. package/lib/component/core/base/components/characteristic-answer/style/_layout.scss +0 -4
  168. package/lib/component/core/base/components/warehouse/style/_layout.scss +0 -4
  169. package/lib/component/core/base/dialog-transaction-line-base.component.d.ts +3 -0
  170. package/lib/component/core/base/transaction-filter-popup-base.component.d.ts +3 -5
  171. package/lib/component/core/base/transaction-header-base.component.d.ts +4 -5
  172. package/lib/component/core/base/transaction-header-filter-popup-base.component.d.ts +38 -0
  173. package/lib/component/core/base/transaction-line-base.component.d.ts +2 -3
  174. package/lib/component/core/base/transaction-lines-line-base.component.d.ts +1 -1
  175. package/lib/component/core/relation/customer-groups.component.d.ts +2 -1
  176. package/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/style/_layout.scss +0 -4
  177. package/lib/component/dialog/transaction-header/dialog-transaction-header-discount/style/_layout.scss +4 -5
  178. package/lib/component/dialog/transaction-header/dialog-transaction-header-discount/style/_material-definition.scss +5 -3
  179. package/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/style/_layout.scss +0 -4
  180. package/lib/component/dialog/transaction-line/dialog-transaction-line-delivery-method/style/_layout.scss +0 -4
  181. package/lib/component/dialog/transaction-line/dialog-transaction-line-discount/style/_layout.scss +4 -5
  182. package/lib/component/dialog/transaction-line/dialog-transaction-line-discount/style/_material-definition.scss +5 -3
  183. package/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/style/_layout.scss +0 -4
  184. package/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.component.d.ts +4 -0
  185. package/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.module.d.ts +2 -0
  186. package/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/style/_layout.scss +11 -0
  187. package/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/style/_material-definition.scss +2 -0
  188. package/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/style/_theme.scss +4 -0
  189. package/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/style/material.scss +4 -0
  190. package/lib/component/dialog/transaction-line/dialog-transaction-line-vat/style/_layout.scss +0 -4
  191. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/style/_layout.scss +0 -4
  192. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/style/_layout.scss +0 -4
  193. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/style/_layout.scss +0 -4
  194. package/lib/component/editable-label/editable-label.component.d.ts +1 -0
  195. package/lib/component/editable-label/style/_layout.scss +9 -0
  196. package/lib/component/editable-label/style/_material-definition.scss +1 -0
  197. package/lib/component/editable-label/style/material.scss +1 -1
  198. package/lib/component/{core → loader}/loader.component.d.ts +1 -0
  199. package/lib/component/loader/loader.module.d.ts +2 -0
  200. package/lib/component/loader/style/_layout.scss +8 -0
  201. package/lib/component/loader/style/_material-definition.scss +1 -0
  202. package/lib/component/loader/style/_theme.scss +10 -0
  203. package/lib/component/loader/style/material.scss +4 -0
  204. package/lib/component/quick-send-button/quick-send-button.component.d.ts +31 -0
  205. package/lib/component/quick-send-button/quick-send-button.module.d.ts +2 -0
  206. package/lib/component/quick-send-button/style/_layout.scss +52 -1
  207. package/lib/component/quick-send-button/style/_material-definition.scss +4 -0
  208. package/lib/component/relation/relation-address/relation-address.component.d.ts +2 -2
  209. package/lib/component/relation/relation-address/style/_layout.scss +3 -0
  210. package/lib/component/relation/relation-address-select/relation-address-select.component.d.ts +3 -4
  211. package/lib/component/relation/relation-address-tile/relation-address-tile.component.d.ts +3 -2
  212. package/lib/component/relation/relation-addresses/relation-addresses.component.d.ts +10 -9
  213. package/lib/component/relation/relation-addresses/style/_layout.scss +2 -6
  214. package/lib/component/relation/relation-base.component.d.ts +2 -2
  215. package/lib/component/relation/relation-contact-details/relation-contact-details.component.d.ts +2 -1
  216. package/lib/component/relation/relation-general/relation-general.component.d.ts +11 -4
  217. package/lib/component/relation/relation-preferences/relation-preferences.component.d.ts +2 -1
  218. package/lib/component/relation/relation-suggestions-list/relation-suggestions-list.component.d.ts +1 -1
  219. package/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.component.d.ts +1 -1
  220. package/lib/component/relation/relation-type/relation-type.component.d.ts +3 -2
  221. package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +2 -3
  222. package/lib/component/tile/style/_layout.scss +10 -7
  223. package/lib/component/tile/style/_material-definition.scss +2 -1
  224. package/lib/component/transaction/style/_layout.scss +4 -21
  225. package/lib/component/transaction/style/_material-definition.scss +1 -4
  226. package/lib/component/transaction-button-bar/style/_layout.scss +25 -0
  227. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button-base.component.d.ts +16 -0
  228. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.d.ts +14 -5
  229. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-purchase-button-bar-button.component.d.ts +12 -0
  230. package/lib/component/transaction-button-bar/transaction-button-bar.component.d.ts +2 -0
  231. package/lib/component/transaction-header/transaction-header/transaction-header.component.d.ts +1 -1
  232. package/lib/component/transaction-header/transaction-header-payment/style/_material-definition.scss +2 -1
  233. package/lib/component/transaction-header/transaction-header-payment/style/_theme.scss +5 -2
  234. package/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.d.ts +21 -12
  235. package/lib/component/transaction-header-fields/transaction-header-administrative-relation.component.d.ts +4 -2
  236. package/lib/component/transaction-header-fields/transaction-header-branch.component.d.ts +5 -3
  237. package/lib/component/transaction-header-fields/transaction-header-delivery-method.component.d.ts +1 -0
  238. package/lib/component/transaction-header-fields/transaction-header-partial-delivery.component.d.ts +3 -1
  239. package/lib/component/transaction-line/transaction-base-line/style/_layout.scss +2 -93
  240. package/lib/component/transaction-line/transaction-base-line/style/_material-definition.scss +6 -0
  241. package/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.d.ts +4 -2
  242. package/lib/component/transaction-line/transaction-line/style/_layout.scss +170 -0
  243. package/lib/component/transaction-line/transaction-line/style/_material-definition.scss +24 -0
  244. package/lib/component/transaction-line/transaction-line/style/_theme.scss +4 -0
  245. package/lib/component/transaction-line/transaction-line/style/material.scss +13 -0
  246. package/lib/component/transaction-line/transaction-order-delivery-line/service/transaction-order-delivery.service.d.ts +4 -0
  247. package/lib/component/transaction-line/transaction-order-delivery-line/style/_layout.scss +4 -4
  248. package/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.component.d.ts +9 -4
  249. package/lib/component/transaction-line/transaction-overview-line/style/_layout.scss +0 -97
  250. package/lib/component/transaction-line/transaction-overview-line/style/_material-definition.scss +0 -36
  251. package/lib/component/transaction-line/transaction-overview-line/style/_theme.scss +0 -27
  252. package/lib/component/transaction-line/transaction-overview-line/style/material.scss +0 -11
  253. package/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.d.ts +4 -11
  254. package/lib/component/transaction-line/transaction-purchase-line/style/_layout.scss +7 -0
  255. package/lib/component/transaction-line/transaction-purchase-line/style/_material-definition.scss +0 -0
  256. package/lib/component/transaction-line/transaction-purchase-line/style/_theme.scss +4 -0
  257. package/lib/component/transaction-line/transaction-purchase-line/style/material.scss +4 -0
  258. package/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.component.d.ts +19 -0
  259. package/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.module.d.ts +2 -0
  260. package/lib/component/transaction-line-checkbox-list/style/_layout.scss +8 -4
  261. package/lib/component/transaction-line-checkbox-list/style/_material-definition.scss +1 -0
  262. package/lib/component/transaction-line-fields/transaction-line-amount.component.d.ts +10 -0
  263. package/lib/component/transaction-line-fields/transaction-line-amount.module.d.ts +2 -0
  264. package/lib/component/transaction-line-fields/transaction-line-commission-code.component.d.ts +3 -3
  265. package/lib/component/transaction-line-fields/transaction-line-delivery-method.component.d.ts +2 -2
  266. package/lib/component/transaction-line-fields/transaction-line-price-list.component.d.ts +2 -2
  267. package/lib/component/transaction-line-fields/transaction-line-supplier-button.component.d.ts +11 -0
  268. package/lib/component/transaction-line-fields/transaction-line-supplier-button.module.d.ts +2 -0
  269. package/lib/component/transaction-line-fields/transaction-line-supplier.component.d.ts +10 -7
  270. package/lib/component/transaction-line-fields/transaction-line-vat.component.d.ts +2 -2
  271. package/lib/component/transaction-line-fields/transaction-line-warehouse-location.component.d.ts +2 -2
  272. package/lib/component/transaction-line-fields/transaction-line-warehouse.component.d.ts +2 -2
  273. package/lib/component/transaction-line-image-and-description/style/_layout.scss +16 -13
  274. package/lib/component/transaction-line-image-and-description/style/_material-definition.scss +21 -1
  275. package/lib/component/transaction-line-image-and-description/style/_theme.scss +18 -1
  276. package/lib/component/transaction-line-statusbar/style/_layout.scss +4 -0
  277. package/lib/component/transaction-lines/style/material.scss +2 -0
  278. package/lib/component/transaction-quick-access/transaction-quick-access/style/_layout.scss +5 -1
  279. package/lib/component/transaction-quick-access/transaction-quick-access/style/_material-definition.scss +2 -1
  280. package/lib/component/transaction-quick-access/transaction-quick-access/style/material.scss +1 -0
  281. package/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.component.d.ts +5 -3
  282. package/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/style/_layout.scss +5 -48
  283. package/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.component.d.ts +10 -7
  284. package/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/style/_layout.scss +8 -0
  285. package/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/style/_material-definition.scss +0 -0
  286. package/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/style/_theme.scss +4 -0
  287. package/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/style/material.scss +5 -0
  288. package/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.component.d.ts +13 -0
  289. package/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.module.d.ts +2 -0
  290. 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 +3 -1
  291. 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 +3 -1
  292. 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 +3 -1
  293. 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 +3 -1
  294. package/lib/component/transaction-send-button-dialog/style/_layout.scss +47 -0
  295. package/lib/component/transaction-send-button-dialog/style/_material-definition.scss +13 -0
  296. package/lib/component/transaction-send-button-dialog/style/_theme.scss +24 -0
  297. package/lib/component/transaction-send-button-dialog/style/material.scss +4 -0
  298. package/lib/component/transaction-send-button-dialog/transaction-send-button-dialog.component.d.ts +16 -0
  299. package/lib/component/transaction-send-button-dialog/transaction-send-button-dialog.module.d.ts +2 -0
  300. package/lib/enum/icon.enum.d.ts +1 -0
  301. package/lib/model/relation-any-type.d.ts +2 -2
  302. package/lib/model/transaction-bar-button.d.ts +4 -1
  303. package/lib/service/article-connector.service.d.ts +3 -1
  304. package/lib/service/error.service.d.ts +1 -1
  305. package/lib/service/pending-reason.service.d.ts +9 -5
  306. package/lib/service/relation-connector.service.d.ts +34 -0
  307. package/lib/service/relation.service.d.ts +37 -0
  308. package/lib/service/shared.service.d.ts +3 -1
  309. package/lib/service/transaction-connector-adapter.service.d.ts +20 -18
  310. package/lib/service/transaction-connector.service.d.ts +18 -18
  311. package/lib/service/transaction-event.service.d.ts +6 -2
  312. package/lib/service/transaction.service.d.ts +13 -15
  313. package/lib/style/_variables.scss +6 -3
  314. package/lib/style/transaction-globals.scss +12 -1
  315. package/package.json +9 -3
  316. package/public_api.d.ts +2 -0
  317. package/esm2015/lib/component/core/loader.component.js +0 -44
  318. package/esm2015/lib/factory/business-object-factory.js +0 -120
  319. package/esm2015/lib/factory/decorators/boolean.decorator.js +0 -102
  320. package/esm2015/lib/factory/decorators/complex-array.decorator.js +0 -55
  321. package/esm2015/lib/factory/decorators/complex-field.decorator.js +0 -57
  322. package/esm2015/lib/factory/decorators/date-field.decorator.js +0 -36
  323. package/esm2015/lib/factory/decorators/string-number.decorator.js +0 -43
  324. package/esm2015/lib/model/business-object.js +0 -81
  325. package/esm2015/lib/utils/array-utils.js +0 -183
  326. package/esm2015/lib/utils/is-nill.function.js +0 -5
  327. package/esm2015/lib/utils/string-utils.js +0 -64
  328. package/lib/factory/business-object-factory.d.ts +0 -23
  329. package/lib/factory/decorators/boolean.decorator.d.ts +0 -43
  330. package/lib/factory/decorators/complex-array.decorator.d.ts +0 -25
  331. package/lib/factory/decorators/complex-field.decorator.d.ts +0 -25
  332. package/lib/factory/decorators/date-field.decorator.d.ts +0 -17
  333. package/lib/factory/decorators/string-number.decorator.d.ts +0 -22
  334. package/lib/model/business-object.d.ts +0 -7
  335. package/lib/utils/array-utils.d.ts +0 -57
  336. package/lib/utils/is-nill.function.d.ts +0 -1
  337. package/lib/utils/string-utils.d.ts +0 -22
@@ -17,6 +17,9 @@ import { TransactionOverviewLineComponent } from "../component/transaction-line/
17
17
  import { TransactionOrderDeliveryLineComponent } from "../component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.component";
18
18
  import { TransactionQuickAccessOrderDeliveryComponent } from "../component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.component";
19
19
  import { TransactionReceiveGoodsLineComponent } from "../component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.component";
20
+ import { TransactionPurchaseLineComponent } from "../component/transaction-line/transaction-purchase-line/transaction-purchase-line.component";
21
+ import { TransactionQuickAccessOrderPurchaseComponent } from "../component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.component";
22
+ import { TransactionSalesPurchaseButtonBarButtonComponent } from "../component/transaction-button-bar/transaction-button-bar-button/transaction-sales-purchase-button-bar-button.component";
20
23
  import * as i0 from "@angular/core";
21
24
  export class TransactionMappingService {
22
25
  constructor() {
@@ -31,7 +34,7 @@ export class TransactionMappingService {
31
34
  ]],
32
35
  [TransactionKind.SalesOrder, [
33
36
  { title: 'OVERVIEW', icon: Icon.CartShoppingSolid, category: TransactionTypeCategory.SalesOrderOverview },
34
- { title: 'PURCHASE', icon: Icon.PalletBoxesSolid, category: TransactionTypeCategory.SalesOrderPurchase },
37
+ { title: 'PURCHASE', icon: Icon.PalletBoxesSolid, category: TransactionTypeCategory.SalesOrderPurchase, component: TransactionSalesPurchaseButtonBarButtonComponent },
35
38
  { title: 'LOGISTICS', icon: Icon.ShelvesSolid, category: TransactionTypeCategory.SalesOrderLogistics },
36
39
  { title: 'PLANNING', icon: Icon.TruckMovingSolid, category: TransactionTypeCategory.SalesOrderPlanning },
37
40
  { title: 'DELIVERY_NOTE', icon: Icon.MemoCircleCheckSolid, category: TransactionTypeCategory.SalesOrderDeliveryNote },
@@ -42,6 +45,7 @@ export class TransactionMappingService {
42
45
  [{ type: TransactionKind.PurchaseOrder, category: TransactionTypeCategory.PurchaseOrderOrderConfirmation }, TransactionQuickAccessOrderConfirmationComponent],
43
46
  [{ type: TransactionKind.PurchaseOrder, category: TransactionTypeCategory.PurchaseOrderReceivedGoods }, TransactionQuickAccessReceivedGoodsComponent],
44
47
  [{ type: TransactionKind.SalesOrder, category: TransactionTypeCategory.SalesOrderOverview }, TransactionQuickAccessOverviewComponent],
48
+ [{ type: TransactionKind.SalesOrder, category: TransactionTypeCategory.SalesOrderPurchase }, TransactionQuickAccessOrderPurchaseComponent],
45
49
  [{ type: TransactionKind.SalesOrder, category: TransactionTypeCategory.SalesOrderDeliveryNote }, TransactionQuickAccessOrderDeliveryComponent]
46
50
  ]);
47
51
  this._transactionGridComponent = new Map([
@@ -51,7 +55,9 @@ export class TransactionMappingService {
51
55
  ]);
52
56
  this._transactionLineComponent = new Map([
53
57
  [{ type: TransactionKind.SalesOrder, category: TransactionTypeCategory.SalesOrderOverview }, TransactionOverviewLineComponent],
58
+ [{ type: TransactionKind.SalesOrder, category: TransactionTypeCategory.SalesOrderPurchase }, TransactionPurchaseLineComponent],
54
59
  [{ type: TransactionKind.SalesOrder, category: TransactionTypeCategory.SalesOrderDeliveryNote }, TransactionOrderDeliveryLineComponent],
60
+ [{ type: TransactionKind.SalesOrder, category: TransactionTypeCategory.SalesOrderInvoice }, TransactionOrderDeliveryLineComponent],
55
61
  [{ type: TransactionKind.PurchaseOrder, category: TransactionTypeCategory.PurchaseOrderReceivedGoods }, TransactionReceiveGoodsLineComponent],
56
62
  ]);
57
63
  this._transactionFilterComponent = new Map([
@@ -161,4 +167,4 @@ TransactionMappingService.decorators = [
161
167
  providedIn: "root"
162
168
  },] }
163
169
  ];
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbWFwcGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9zZXJ2aWNlL3RyYW5zYWN0aW9uLW1hcHBpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFPLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUkxRixPQUFPLEVBQUMsdUNBQXVDLEVBQUMsTUFBTSxrSUFBa0ksQ0FBQztBQUN6TCxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSw0SEFBNEgsQ0FBQztBQUNoTCxPQUFPLEVBQ0wsMkNBQTJDLEVBQzVDLE1BQU0saUpBQWlKLENBQUM7QUFDekosT0FBTyxFQUFDLHdDQUF3QyxFQUFDLE1BQU0sMklBQTJJLENBQUM7QUFDbk0sT0FBTyxFQUNMLDJDQUEyQyxFQUM1QyxNQUFNLGlKQUFpSixDQUFDO0FBQ3pKLE9BQU8sRUFBQyx3Q0FBd0MsRUFBQyxNQUFNLDJJQUEySSxDQUFDO0FBRW5NLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsZ0RBQWdELEVBQ2pELE1BQU0seUlBQXlJLENBQUM7QUFFakosT0FBTyxFQUFDLDRDQUE0QyxFQUFDLE1BQU0saUlBQWlJLENBQUM7QUFDN0wsT0FBTyxFQUFDLHVDQUF1QyxFQUFDLE1BQU0scUhBQXFILENBQUM7QUFFNUssT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0saUhBQWlILENBQUM7QUFDMUssT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sdUZBQXVGLENBQUM7QUFHcEksT0FBTyxFQUNMLGdDQUFnQyxFQUNqQyxNQUFNLDZGQUE2RixD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QU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7OztZQXpKRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIFR5cGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25GaWx0ZXJCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L2NvcmUvYmFzZS90cmFuc2FjdGlvbi1maWx0ZXItYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaEdyaWRCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L2NvcmUvYmFzZS90cmFuc2FjdGlvbi1zZWFyY2gtZ3JpZC1iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VhcmNoVGlsZUJhc2VDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvY29yZS9iYXNlL3RyYW5zYWN0aW9uLXNlYXJjaC10aWxlLWJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25QdXJjaGFzZU9yZGVyRmlsdGVyQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLXNlYXJjaC90cmFuc2FjdGlvbi1maWx0ZXIvdHJhbnNhY3Rpb24tcHVyY2hhc2Utb3JkZXItZmlsdGVyL3RyYW5zYWN0aW9uLXB1cmNoYXNlLW9yZGVyLWZpbHRlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNhbGVzT3JkZXJGaWx0ZXJDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvdHJhbnNhY3Rpb24tc2VhcmNoL3RyYW5zYWN0aW9uLWZpbHRlci90cmFuc2FjdGlvbi1zYWxlcy1vcmRlci1maWx0ZXIvdHJhbnNhY3Rpb24tc2FsZXMtb3JkZXItZmlsdGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uU2VhcmNoUHVyY2hhc2VPcmRlckdyaWRDb21wb25lbnRcclxufSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLXNlYXJjaC90cmFuc2FjdGlvbi1zZWFyY2gtZ3JpZC90cmFuc2FjdGlvbi1zZWFyY2gtcHVyY2hhc2Utb3JkZXItZ3JpZC90cmFuc2FjdGlvbi1zZWFyY2gtcHVyY2hhc2Utb3JkZXItZ3JpZC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFNhbGVzT3JkZXJHcmlkQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLXNlYXJjaC90cmFuc2FjdGlvbi1zZWFyY2gtZ3JpZC90cmFuc2FjdGlvbi1zZWFyY2gtc2FsZXMtb3JkZXItZ3JpZC90cmFuc2FjdGlvbi1zZWFyY2gtc2FsZXMtb3JkZXItZ3JpZC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtcclxuICBUcmFuc2FjdGlvblNlYXJjaFB1cmNoYXNlT3JkZXJUaWxlQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZWFyY2gvdHJhbnNhY3Rpb24tc2VhcmNoLXRpbGUvdHJhbnNhY3Rpb24tc2VhcmNoLXB1cmNoYXNlLW9yZGVyLXRpbGUvdHJhbnNhY3Rpb24tc2VhcmNoLXB1cmNoYXNlLW9yZGVyLXRpbGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hTYWxlc09yZGVyVGlsZUNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZWFyY2gvdHJhbnNhY3Rpb24tc2VhcmNoLXRpbGUvdHJhbnNhY3Rpb24tc2VhcmNoLXNhbGVzLW9yZGVyLXRpbGUvdHJhbnNhY3Rpb24tc2VhcmNoLXNhbGVzLW9yZGVyLXRpbGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXJCdXR0b259IGZyb20gXCIuLi9tb2RlbC90cmFuc2FjdGlvbi1iYXItYnV0dG9uXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gXCIuLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NPcmRlckNvbmZpcm1hdGlvbkNvbXBvbmVudFxyXG59IGZyb20gXCIuLi9jb21wb25lbnQvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1vcmRlci1jb25maXJtYXRpb24vdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLWNvbmZpcm1hdGlvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25RdWlja0FjY2Vzc1JlY2VpdmVkR29vZHNDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1yZWNlaXZlZC1nb29kcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3MtcmVjZWl2ZWQtZ29vZHMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25RdWlja0FjY2Vzc092ZXJ2aWV3Q29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3ZlcnZpZXcvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW92ZXJ2aWV3LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uR3JpZEJhc2VDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvY29yZS9iYXNlL3RyYW5zYWN0aW9uLWdyaWQtYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbk9yZGVyQ29uZmlybWF0aW9uR3JpZENvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudC90cmFuc2FjdGlvbi1ncmlkL3RyYW5zYWN0aW9uLW9yZGVyLWNvbmZpcm1hdGlvbi1ncmlkL3RyYW5zYWN0aW9uLW9yZGVyLWNvbmZpcm1hdGlvbi1ncmlkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZXNHcmlkQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLWdyaWQvdHJhbnNhY3Rpb24tbGluZXMtZ3JpZC90cmFuc2FjdGlvbi1saW5lcy1ncmlkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVjZWl2ZWRHb29kc0dyaWRDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvdHJhbnNhY3Rpb24tZ3JpZC90cmFuc2FjdGlvbi1yZWNlaXZlZC1nb29kcy1ncmlkL3RyYW5zYWN0aW9uLXJlY2VpdmVkLWdvb2RzLWdyaWQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lc0xpbmVCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L2NvcmUvYmFzZS90cmFuc2FjdGlvbi1saW5lcy1saW5lLWJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgVHJhbnNhY3Rpb25PdmVydmlld0xpbmVDb21wb25lbnRcclxufSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tb3ZlcnZpZXctbGluZS90cmFuc2FjdGlvbi1vdmVydmlldy1saW5lLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uT3JkZXJEZWxpdmVyeUxpbmVDb21wb25lbnRcclxufSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tb3JkZXItZGVsaXZlcnktbGluZS90cmFuc2FjdGlvbi1vcmRlci1kZWxpdmVyeS1saW5lLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NPcmRlckRlbGl2ZXJ5Q29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL2NvbXBvbmVudC90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3MvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLWRlbGl2ZXJ5L3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1vcmRlci1kZWxpdmVyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtcclxuICBUcmFuc2FjdGlvblJlY2VpdmVHb29kc0xpbmVDb21wb25lbnRcclxufSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tcmVjZWl2ZS1nb29kcy1saW5lL3RyYW5zYWN0aW9uLXJlY2VpdmUtZ29vZHMtbGluZS5jb21wb25lbnRcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25NYXBwaW5nU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2J1dHRvbkJhclRyYW5zYWN0aW9uOiBNYXA8VHJhbnNhY3Rpb25LaW5kLCBUcmFuc2FjdGlvbkJhckJ1dHRvbltdPiA9IG5ldyBNYXA8VHJhbnNhY3Rpb25LaW5kLCBUcmFuc2FjdGlvbkJhckJ1dHRvbltdPihbXHJcbiAgICBbVHJhbnNhY3Rpb25LaW5kLlB1cmNoYXNlT3JkZXIsIFtcclxuICAgICAge3RpdGxlOiAnT1ZFUlZJRVcnLCBpY29uOiBJY29uLkNhcnRTaG9wcGluZ1NvbGlkLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck92ZXJ2aWV3fSxcclxuICAgICAge3RpdGxlOiAnQ09ORklSTUFUSU9OJywgaWNvbjogSWNvbi5NZW1vQ2lyY2xlQ2hlY2tTb2xpZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvbn0sXHJcbiAgICAgIHt0aXRsZTogJ1RSQU5TUE9SVCcsIGljb246IEljb24uVHJ1Y2tDb250YWluZXJTb2xpZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJUcmFuc3BvcnR9LFxyXG4gICAgICB7dGl0bGU6ICdSRUNFSVZFRCcsIGljb246IEljb24uQ2FydEZsYXRiZWRCb3hlc1NvbGlkLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlclJlY2VpdmVkR29vZHN9LFxyXG4gICAgICB7dGl0bGU6ICdJTlZPSUNFX0NIRUNLJywgaWNvbjogSWNvbi5UYWcsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeS5QdXJjaGFzZU9yZGVySW52b2ljZUNoZWNrfSxcclxuICAgICAge3RpdGxlOiAnTUVOVScsIGljb246IEljb24uVGFnLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck1lbnV9XHJcbiAgICBdXSxcclxuICAgIFtUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlciwgW1xyXG4gICAgICB7dGl0bGU6ICdPVkVSVklFVycsIGljb246IEljb24uQ2FydFNob3BwaW5nU29saWQsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeS5TYWxlc09yZGVyT3ZlcnZpZXd9LFxyXG4gICAgICB7dGl0bGU6ICdQVVJDSEFTRScsIGljb246IEljb24uUGFsbGV0Qm94ZXNTb2xpZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJQdXJjaGFzZX0sXHJcbiAgICAgIHt0aXRsZTogJ0xPR0lTVElDUycsIGljb246IEljb24uU2hlbHZlc1NvbGlkLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlckxvZ2lzdGljc30sXHJcbiAgICAgIHt0aXRsZTogJ1BMQU5OSU5HJywgaWNvbjogSWNvbi5UcnVja01vdmluZ1NvbGlkLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlclBsYW5uaW5nfSxcclxuICAgICAge3RpdGxlOiAnREVMSVZFUllfTk9URScsIGljb246IEljb24uTWVtb0NpcmNsZUNoZWNrU29saWQsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeS5TYWxlc09yZGVyRGVsaXZlcnlOb3RlfSxcclxuICAgICAge3RpdGxlOiAnSU5WT0lDRScsIGljb246IEljb24uQ2FydENoZWNrLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlckludm9pY2V9XHJcbiAgICBdXSxcclxuICBdKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfcXVpY2tBY2Nlc3NDb21wb25lbnQ6IE1hcDx7dHlwZTogVHJhbnNhY3Rpb25LaW5kLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9LCBUeXBlPFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudD4+ID1cclxuICAgIG5ldyBNYXA8e3R5cGU6IFRyYW5zYWN0aW9uS2luZDsgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSwgVHlwZTxUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQ+PihbXHJcbiAgICAgIFt7dHlwZTogVHJhbnNhY3Rpb25LaW5kLlB1cmNoYXNlT3JkZXIsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeS5QdXJjaGFzZU9yZGVyT3JkZXJDb25maXJtYXRpb259LCBUcmFuc2FjdGlvblF1aWNrQWNjZXNzT3JkZXJDb25maXJtYXRpb25Db21wb25lbnRdLFxyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5QdXJjaGFzZU9yZGVyLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlclJlY2VpdmVkR29vZHN9LCBUcmFuc2FjdGlvblF1aWNrQWNjZXNzUmVjZWl2ZWRHb29kc0NvbXBvbmVudF0sXHJcbiAgICAgIFt7dHlwZTogVHJhbnNhY3Rpb25LaW5kLlNhbGVzT3JkZXIsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeS5TYWxlc09yZGVyT3ZlcnZpZXd9LCBUcmFuc2FjdGlvblF1aWNrQWNjZXNzT3ZlcnZpZXdDb21wb25lbnRdLFxyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlckRlbGl2ZXJ5Tm90ZX0sIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NPcmRlckRlbGl2ZXJ5Q29tcG9uZW50XVxyXG4gICAgXSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RyYW5zYWN0aW9uR3JpZENvbXBvbmVudDogTWFwPHt0eXBlOiBUcmFuc2FjdGlvbktpbmQsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0sIFR5cGU8VHJhbnNhY3Rpb25HcmlkQmFzZUNvbXBvbmVudD4+ID1cclxuICAgIG5ldyBNYXA8e3R5cGU6IFRyYW5zYWN0aW9uS2luZDsgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSwgVHlwZTxUcmFuc2FjdGlvbkdyaWRCYXNlQ29tcG9uZW50Pj4oW1xyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5QdXJjaGFzZU9yZGVyLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck92ZXJ2aWV3fSwgVHJhbnNhY3Rpb25MaW5lc0dyaWRDb21wb25lbnRdLFxyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5QdXJjaGFzZU9yZGVyLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9ufSwgVHJhbnNhY3Rpb25PcmRlckNvbmZpcm1hdGlvbkdyaWRDb21wb25lbnRdLFxyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlck92ZXJ2aWV3fSwgVHJhbnNhY3Rpb25MaW5lc0dyaWRDb21wb25lbnRdXHJcbiAgICBdKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfdHJhbnNhY3Rpb25MaW5lQ29tcG9uZW50OiBNYXA8e3R5cGU6IFRyYW5zYWN0aW9uS2luZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSwgVHlwZTxUcmFuc2FjdGlvbkxpbmVzTGluZUJhc2VDb21wb25lbnQ+PiA9XHJcbiAgICBuZXcgTWFwPHt0eXBlOiBUcmFuc2FjdGlvbktpbmQ7IGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0sIFR5cGU8VHJhbnNhY3Rpb25MaW5lc0xpbmVCYXNlQ29tcG9uZW50Pj4oW1xyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlck92ZXJ2aWV3fSwgVHJhbnNhY3Rpb25PdmVydmlld0xpbmVDb21wb25lbnRdLFxyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlckRlbGl2ZXJ5Tm90ZX0sIFRyYW5zYWN0aW9uT3JkZXJEZWxpdmVyeUxpbmVDb21wb25lbnRdLFxyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5QdXJjaGFzZU9yZGVyLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlclJlY2VpdmVkR29vZHN9LCBUcmFuc2FjdGlvblJlY2VpdmVHb29kc0xpbmVDb21wb25lbnRdLFxyXG4gICAgXSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RyYW5zYWN0aW9uRmlsdGVyQ29tcG9uZW50OiBNYXA8e3R5cGU6IFRyYW5zYWN0aW9uS2luZH0sIFR5cGU8VHJhbnNhY3Rpb25GaWx0ZXJCYXNlQ29tcG9uZW50Pj4gPVxyXG4gICAgbmV3IE1hcDx7dHlwZTogVHJhbnNhY3Rpb25LaW5kfSwgVHlwZTxUcmFuc2FjdGlvbkZpbHRlckJhc2VDb21wb25lbnQ+PihbXHJcbiAgICAgIFt7dHlwZTogVHJhbnNhY3Rpb25LaW5kLlNhbGVzT3JkZXJ9LCBUcmFuc2FjdGlvblNhbGVzT3JkZXJGaWx0ZXJDb21wb25lbnRdLFxyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5QdXJjaGFzZU9yZGVyfSwgVHJhbnNhY3Rpb25QdXJjaGFzZU9yZGVyRmlsdGVyQ29tcG9uZW50XSxcclxuICAgIF0pO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF90cmFuc2FjdGlvblNlYXJjaEdyaWRDb21wb25lbnQ6IE1hcDx7dHlwZTogVHJhbnNhY3Rpb25LaW5kfSwgVHlwZTxUcmFuc2FjdGlvblNlYXJjaEdyaWRCYXNlQ29tcG9uZW50Pj4gPVxyXG4gICAgbmV3IE1hcDx7dHlwZTogVHJhbnNhY3Rpb25LaW5kfSwgVHlwZTxUcmFuc2FjdGlvblNlYXJjaEdyaWRCYXNlQ29tcG9uZW50Pj4oW1xyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyfSwgVHJhbnNhY3Rpb25TZWFyY2hTYWxlc09yZGVyR3JpZENvbXBvbmVudF0sXHJcbiAgICAgIFt7dHlwZTogVHJhbnNhY3Rpb25LaW5kLlB1cmNoYXNlT3JkZXJ9LCBUcmFuc2FjdGlvblNlYXJjaFB1cmNoYXNlT3JkZXJHcmlkQ29tcG9uZW50XSxcclxuICAgIF0pO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF90cmFuc2FjdGlvblNlYXJjaFRpbGVDb21wb25lbnQ6IE1hcDx7dHlwZTogVHJhbnNhY3Rpb25LaW5kfSwgVHlwZTxUcmFuc2FjdGlvblNlYXJjaFRpbGVCYXNlQ29tcG9uZW50Pj4gPVxyXG4gICAgbmV3IE1hcDx7dHlwZTogVHJhbnNhY3Rpb25LaW5kfSwgVHlwZTxUcmFuc2FjdGlvblNlYXJjaFRpbGVCYXNlQ29tcG9uZW50Pj4oW1xyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyfSwgVHJhbnNhY3Rpb25TZWFyY2hTYWxlc09yZGVyVGlsZUNvbXBvbmVudF0sXHJcbiAgICAgIFt7dHlwZTogVHJhbnNhY3Rpb25LaW5kLlB1cmNoYXNlT3JkZXJ9LCBUcmFuc2FjdGlvblNlYXJjaFB1cmNoYXNlT3JkZXJUaWxlQ29tcG9uZW50XSxcclxuICAgIF0pO1xyXG5cclxuICBwdWJsaWMgZ2V0QnV0dG9uQmFyKHR5cGU6IFRyYW5zYWN0aW9uS2luZCk6IFRyYW5zYWN0aW9uQmFyQnV0dG9uW10ge1xyXG4gICAgaWYgKHRoaXMuX2J1dHRvbkJhclRyYW5zYWN0aW9uLmhhcyh0eXBlKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYnV0dG9uQmFyVHJhbnNhY3Rpb24uZ2V0KHR5cGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFF1aWNrQWNjZXNzQ29tcG9uZW50KHR5cGU6IFRyYW5zYWN0aW9uS2luZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5KTogVHlwZTxUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQ+IHtcclxuICAgIGNvbnN0IGtleToge3R5cGU6IFRyYW5zYWN0aW9uS2luZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSA9IHtcclxuICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgY2F0ZWdvcnk6IGNhdGVnb3J5XHJcbiAgICB9XHJcbiAgICBsZXQgZW50cnk6IFR5cGU8VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50PjtcclxuICAgIHRoaXMuX3F1aWNrQWNjZXNzQ29tcG9uZW50LmZvckVhY2goKHYsIHQsIG0pID0+IHtcclxuICAgICAgaWYgKHQudHlwZSA9PT0ga2V5LnR5cGUgJiYgdC5jYXRlZ29yeSA9PT0ga2V5LmNhdGVnb3J5KSB7XHJcbiAgICAgICAgZW50cnkgPSB2O1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHJldHVybiBlbnRyeTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRUcmFuc2FjdGlvbkdyaWRDb21wb25lbnQodHlwZTogVHJhbnNhY3Rpb25LaW5kLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkpOiBUeXBlPFRyYW5zYWN0aW9uR3JpZEJhc2VDb21wb25lbnQ+IHtcclxuICAgIGNvbnN0IGtleToge3R5cGU6IFRyYW5zYWN0aW9uS2luZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSA9IHtcclxuICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgY2F0ZWdvcnk6IGNhdGVnb3J5XHJcbiAgICB9XHJcbiAgICBsZXQgZW50cnk6IFR5cGU8VHJhbnNhY3Rpb25HcmlkQmFzZUNvbXBvbmVudD47XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvbkdyaWRDb21wb25lbnQuZm9yRWFjaCgodiwgdCwgbSkgPT4ge1xyXG4gICAgICBpZiAodC50eXBlID09PSBrZXkudHlwZSAmJiB0LmNhdGVnb3J5ID09PSBrZXkuY2F0ZWdvcnkpIHtcclxuICAgICAgICBlbnRyeSA9IHY7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIGVudHJ5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRyYW5zYWN0aW9uTGluZUNvbXBvbmVudCh0eXBlOiBUcmFuc2FjdGlvbktpbmQsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSk6IFR5cGU8VHJhbnNhY3Rpb25MaW5lc0xpbmVCYXNlQ29tcG9uZW50PiB7XHJcbiAgICBjb25zdCBrZXk6IHt0eXBlOiBUcmFuc2FjdGlvbktpbmQsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0gPSB7XHJcbiAgICAgIHR5cGU6IHR5cGUsXHJcbiAgICAgIGNhdGVnb3J5OiBjYXRlZ29yeVxyXG4gICAgfVxyXG4gICAgbGV0IGVudHJ5OiBUeXBlPFRyYW5zYWN0aW9uTGluZXNMaW5lQmFzZUNvbXBvbmVudD47XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvbkxpbmVDb21wb25lbnQuZm9yRWFjaCgodiwgdCkgPT4ge1xyXG4gICAgICBpZiAodC50eXBlID09PSBrZXkudHlwZSAmJiB0LmNhdGVnb3J5ID09PSBrZXkuY2F0ZWdvcnkpIHtcclxuICAgICAgICBlbnRyeSA9IHY7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIGVudHJ5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRyYW5zYWN0aW9uRmlsdGVyQ29tcG9uZW50KHR5cGU6IFRyYW5zYWN0aW9uS2luZCk6IFR5cGU8VHJhbnNhY3Rpb25GaWx0ZXJCYXNlQ29tcG9uZW50PiB7XHJcbiAgICBjb25zdCBrZXk6IHt0eXBlOiBUcmFuc2FjdGlvbktpbmR9ID0ge1xyXG4gICAgICB0eXBlOiB0eXBlfVxyXG4gICAgbGV0IGVudHJ5OiBUeXBlPFRyYW5zYWN0aW9uRmlsdGVyQmFzZUNvbXBvbmVudD47XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvbkZpbHRlckNvbXBvbmVudC5mb3JFYWNoKCh2LCB0LCBtKSA9PiB7XHJcbiAgICAgIGlmICh0LnR5cGUgPT09IGtleS50eXBlKSB7XHJcbiAgICAgICAgZW50cnkgPSB2O1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHJldHVybiBlbnRyeTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRUcmFuc2FjdGlvblNlYXJjaEdyaWRDb21wb25lbnQodHlwZTogVHJhbnNhY3Rpb25LaW5kKTogVHlwZTxUcmFuc2FjdGlvblNlYXJjaEdyaWRCYXNlQ29tcG9uZW50PiB7XHJcbiAgICBjb25zdCBrZXk6IHt0eXBlOiBUcmFuc2FjdGlvbktpbmR9ID0ge1xyXG4gICAgICB0eXBlOiB0eXBlfVxyXG4gICAgbGV0IGVudHJ5OiBUeXBlPFRyYW5zYWN0aW9uU2VhcmNoR3JpZEJhc2VDb21wb25lbnQ+O1xyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb25TZWFyY2hHcmlkQ29tcG9uZW50LmZvckVhY2goKHYsIHQsIG0pID0+IHtcclxuICAgICAgaWYgKHQudHlwZSA9PT0ga2V5LnR5cGUpIHtcclxuICAgICAgICBlbnRyeSA9IHY7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIGVudHJ5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRyYW5zYWN0aW9uU2VhcmNoVGlsZUNvbXBvbmVudCh0eXBlOiBUcmFuc2FjdGlvbktpbmQpOiBUeXBlPFRyYW5zYWN0aW9uU2VhcmNoVGlsZUJhc2VDb21wb25lbnQ+IHtcclxuICAgIGNvbnN0IGtleToge3R5cGU6IFRyYW5zYWN0aW9uS2luZH0gPSB7XHJcbiAgICAgIHR5cGU6IHR5cGV9XHJcbiAgICBsZXQgZW50cnk6IFR5cGU8VHJhbnNhY3Rpb25TZWFyY2hUaWxlQmFzZUNvbXBvbmVudD47XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvblNlYXJjaFRpbGVDb21wb25lbnQuZm9yRWFjaCgodiwgdCwgbSkgPT4ge1xyXG4gICAgICBpZiAodC50eXBlID09PSBrZXkudHlwZSkge1xyXG4gICAgICAgIGVudHJ5ID0gdjtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICByZXR1cm4gZW50cnk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbWFwcGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9zZXJ2aWNlL3RyYW5zYWN0aW9uLW1hcHBpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFPLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUkxRixPQUFPLEVBQUMsdUNBQXVDLEVBQUMsTUFBTSxrSUFBa0ksQ0FBQztBQUN6TCxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSw0SEFBNEgsQ0FBQztBQUNoTCxPQUFPLEVBQ0wsMkNBQTJDLEVBQzVDLE1BQU0saUpBQWlKLENBQUM7QUFDekosT0FBTyxFQUFDLHdDQUF3QyxFQUFDLE1BQU0sMklBQTJJLENBQUM7QUFDbk0sT0FBTyxFQUNMLDJDQUEyQyxFQUM1QyxNQUFNLGlKQUFpSixDQUFDO0FBQ3pKLE9BQU8sRUFBQyx3Q0FBd0MsRUFBQyxNQUFNLDJJQUEySSxDQUFDO0FBRW5NLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsZ0RBQWdELEVBQ2pELE1BQU0seUlBQXlJLENBQUM7QUFFakosT0FBTyxFQUFDLDRDQUE0QyxFQUFDLE1BQU0saUlBQWlJLENBQUM7QUFDN0wsT0FBTyxFQUFDLHVDQUF1QyxFQUFDLE1BQU0scUhBQXFILENBQUM7QUFFNUssT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0saUhBQWlILENBQUM7QUFDMUssT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sdUZBQXVGLENBQUM7QUFFcEksT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sNkZBQTZGLENB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QUFFO1lBQ3ZELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxFQUFFO2dCQUN2QixLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNWLE9BQU87YUFDUjtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU0saUNBQWlDLENBQUMsSUFBcUI7UUFDNUQsTUFBTSxHQUFHLEdBQTRCO1lBQ25DLElBQUksRUFBRSxJQUFJO1NBQUMsQ0FBQTtRQUNiLElBQUksS0FBK0MsQ0FBQztRQUNwRCxJQUFJLENBQUMsK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRTtnQkFDdkIsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDVixPQUFPO2FBQ1I7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7OztZQTVKRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIFR5cGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25GaWx0ZXJCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L2NvcmUvYmFzZS90cmFuc2FjdGlvbi1maWx0ZXItYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaEdyaWRCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L2NvcmUvYmFzZS90cmFuc2FjdGlvbi1zZWFyY2gtZ3JpZC1iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VhcmNoVGlsZUJhc2VDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvY29yZS9iYXNlL3RyYW5zYWN0aW9uLXNlYXJjaC10aWxlLWJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25QdXJjaGFzZU9yZGVyRmlsdGVyQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLXNlYXJjaC90cmFuc2FjdGlvbi1maWx0ZXIvdHJhbnNhY3Rpb24tcHVyY2hhc2Utb3JkZXItZmlsdGVyL3RyYW5zYWN0aW9uLXB1cmNoYXNlLW9yZGVyLWZpbHRlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNhbGVzT3JkZXJGaWx0ZXJDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvdHJhbnNhY3Rpb24tc2VhcmNoL3RyYW5zYWN0aW9uLWZpbHRlci90cmFuc2FjdGlvbi1zYWxlcy1vcmRlci1maWx0ZXIvdHJhbnNhY3Rpb24tc2FsZXMtb3JkZXItZmlsdGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uU2VhcmNoUHVyY2hhc2VPcmRlckdyaWRDb21wb25lbnRcclxufSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLXNlYXJjaC90cmFuc2FjdGlvbi1zZWFyY2gtZ3JpZC90cmFuc2FjdGlvbi1zZWFyY2gtcHVyY2hhc2Utb3JkZXItZ3JpZC90cmFuc2FjdGlvbi1zZWFyY2gtcHVyY2hhc2Utb3JkZXItZ3JpZC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFNhbGVzT3JkZXJHcmlkQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLXNlYXJjaC90cmFuc2FjdGlvbi1zZWFyY2gtZ3JpZC90cmFuc2FjdGlvbi1zZWFyY2gtc2FsZXMtb3JkZXItZ3JpZC90cmFuc2FjdGlvbi1zZWFyY2gtc2FsZXMtb3JkZXItZ3JpZC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtcclxuICBUcmFuc2FjdGlvblNlYXJjaFB1cmNoYXNlT3JkZXJUaWxlQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZWFyY2gvdHJhbnNhY3Rpb24tc2VhcmNoLXRpbGUvdHJhbnNhY3Rpb24tc2VhcmNoLXB1cmNoYXNlLW9yZGVyLXRpbGUvdHJhbnNhY3Rpb24tc2VhcmNoLXB1cmNoYXNlLW9yZGVyLXRpbGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hTYWxlc09yZGVyVGlsZUNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZWFyY2gvdHJhbnNhY3Rpb24tc2VhcmNoLXRpbGUvdHJhbnNhY3Rpb24tc2VhcmNoLXNhbGVzLW9yZGVyLXRpbGUvdHJhbnNhY3Rpb24tc2VhcmNoLXNhbGVzLW9yZGVyLXRpbGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXJCdXR0b259IGZyb20gXCIuLi9tb2RlbC90cmFuc2FjdGlvbi1iYXItYnV0dG9uXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gXCIuLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NPcmRlckNvbmZpcm1hdGlvbkNvbXBvbmVudFxyXG59IGZyb20gXCIuLi9jb21wb25lbnQvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1vcmRlci1jb25maXJtYXRpb24vdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLWNvbmZpcm1hdGlvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25RdWlja0FjY2Vzc1JlY2VpdmVkR29vZHNDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1yZWNlaXZlZC1nb29kcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3MtcmVjZWl2ZWQtZ29vZHMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25RdWlja0FjY2Vzc092ZXJ2aWV3Q29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3ZlcnZpZXcvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW92ZXJ2aWV3LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uR3JpZEJhc2VDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvY29yZS9iYXNlL3RyYW5zYWN0aW9uLWdyaWQtYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbk9yZGVyQ29uZmlybWF0aW9uR3JpZENvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudC90cmFuc2FjdGlvbi1ncmlkL3RyYW5zYWN0aW9uLW9yZGVyLWNvbmZpcm1hdGlvbi1ncmlkL3RyYW5zYWN0aW9uLW9yZGVyLWNvbmZpcm1hdGlvbi1ncmlkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZXNHcmlkQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLWdyaWQvdHJhbnNhY3Rpb24tbGluZXMtZ3JpZC90cmFuc2FjdGlvbi1saW5lcy1ncmlkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZXNMaW5lQmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudC9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tbGluZXMtbGluZS1iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uT3ZlcnZpZXdMaW5lQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tb3ZlcnZpZXctbGluZS90cmFuc2FjdGlvbi1vdmVydmlldy1saW5lLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uT3JkZXJEZWxpdmVyeUxpbmVDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvdHJhbnNhY3Rpb24tbGluZS90cmFuc2FjdGlvbi1vcmRlci1kZWxpdmVyeS1saW5lL3RyYW5zYWN0aW9uLW9yZGVyLWRlbGl2ZXJ5LWxpbmUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25RdWlja0FjY2Vzc09yZGVyRGVsaXZlcnlDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1vcmRlci1kZWxpdmVyeS90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3JkZXItZGVsaXZlcnkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZWNlaXZlR29vZHNMaW5lQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tcmVjZWl2ZS1nb29kcy1saW5lL3RyYW5zYWN0aW9uLXJlY2VpdmUtZ29vZHMtbGluZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblB1cmNoYXNlTGluZUNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLXB1cmNoYXNlLWxpbmUvdHJhbnNhY3Rpb24tcHVyY2hhc2UtbGluZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblF1aWNrQWNjZXNzT3JkZXJQdXJjaGFzZUNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudC90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3MvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLXB1cmNoYXNlL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1vcmRlci1wdXJjaGFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNhbGVzUHVyY2hhc2VCdXR0b25CYXJCdXR0b25Db21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvdHJhbnNhY3Rpb24tYnV0dG9uLWJhci90cmFuc2FjdGlvbi1idXR0b24tYmFyLWJ1dHRvbi90cmFuc2FjdGlvbi1zYWxlcy1wdXJjaGFzZS1idXR0b24tYmFyLWJ1dHRvbi5jb21wb25lbnRcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25NYXBwaW5nU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2J1dHRvbkJhclRyYW5zYWN0aW9uOiBNYXA8VHJhbnNhY3Rpb25LaW5kLCBUcmFuc2FjdGlvbkJhckJ1dHRvbltdPiA9IG5ldyBNYXA8VHJhbnNhY3Rpb25LaW5kLCBUcmFuc2FjdGlvbkJhckJ1dHRvbltdPihbXHJcbiAgICBbVHJhbnNhY3Rpb25LaW5kLlB1cmNoYXNlT3JkZXIsIFtcclxuICAgICAge3RpdGxlOiAnT1ZFUlZJRVcnLCBpY29uOiBJY29uLkNhcnRTaG9wcGluZ1NvbGlkLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck92ZXJ2aWV3fSxcclxuICAgICAge3RpdGxlOiAnQ09ORklSTUFUSU9OJywgaWNvbjogSWNvbi5NZW1vQ2lyY2xlQ2hlY2tTb2xpZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvbn0sXHJcbiAgICAgIHt0aXRsZTogJ1RSQU5TUE9SVCcsIGljb246IEljb24uVHJ1Y2tDb250YWluZXJTb2xpZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJUcmFuc3BvcnR9LFxyXG4gICAgICB7dGl0bGU6ICdSRUNFSVZFRCcsIGljb246IEljb24uQ2FydEZsYXRiZWRCb3hlc1NvbGlkLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlclJlY2VpdmVkR29vZHN9LFxyXG4gICAgICB7dGl0bGU6ICdJTlZPSUNFX0NIRUNLJywgaWNvbjogSWNvbi5UYWcsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeS5QdXJjaGFzZU9yZGVySW52b2ljZUNoZWNrfSxcclxuICAgICAge3RpdGxlOiAnTUVOVScsIGljb246IEljb24uVGFnLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck1lbnV9XHJcbiAgICBdXSxcclxuICAgIFtUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlciwgW1xyXG4gICAgICB7dGl0bGU6ICdPVkVSVklFVycsIGljb246IEljb24uQ2FydFNob3BwaW5nU29saWQsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeS5TYWxlc09yZGVyT3ZlcnZpZXd9LFxyXG4gICAgICB7dGl0bGU6ICdQVVJDSEFTRScsIGljb246IEljb24uUGFsbGV0Qm94ZXNTb2xpZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJQdXJjaGFzZSwgY29tcG9uZW50OiBUcmFuc2FjdGlvblNhbGVzUHVyY2hhc2VCdXR0b25CYXJCdXR0b25Db21wb25lbnR9LFxyXG4gICAgICB7dGl0bGU6ICdMT0dJU1RJQ1MnLCBpY29uOiBJY29uLlNoZWx2ZXNTb2xpZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJMb2dpc3RpY3N9LFxyXG4gICAgICB7dGl0bGU6ICdQTEFOTklORycsIGljb246IEljb24uVHJ1Y2tNb3ZpbmdTb2xpZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJQbGFubmluZ30sXHJcbiAgICAgIHt0aXRsZTogJ0RFTElWRVJZX05PVEUnLCBpY29uOiBJY29uLk1lbW9DaXJjbGVDaGVja1NvbGlkLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlckRlbGl2ZXJ5Tm90ZX0sXHJcbiAgICAgIHt0aXRsZTogJ0lOVk9JQ0UnLCBpY29uOiBJY29uLkNhcnRDaGVjaywgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJJbnZvaWNlfVxyXG4gICAgXV0sXHJcbiAgXSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3F1aWNrQWNjZXNzQ29tcG9uZW50OiBNYXA8e3R5cGU6IFRyYW5zYWN0aW9uS2luZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSwgVHlwZTxUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQ+PiA9XHJcbiAgICBuZXcgTWFwPHt0eXBlOiBUcmFuc2FjdGlvbktpbmQ7IGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0sIFR5cGU8VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50Pj4oW1xyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5QdXJjaGFzZU9yZGVyLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9ufSwgVHJhbnNhY3Rpb25RdWlja0FjY2Vzc09yZGVyQ29uZmlybWF0aW9uQ29tcG9uZW50XSxcclxuICAgICAgW3t0eXBlOiBUcmFuc2FjdGlvbktpbmQuUHVyY2hhc2VPcmRlciwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJSZWNlaXZlZEdvb2RzfSwgVHJhbnNhY3Rpb25RdWlja0FjY2Vzc1JlY2VpdmVkR29vZHNDb21wb25lbnRdLFxyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlck92ZXJ2aWV3fSwgVHJhbnNhY3Rpb25RdWlja0FjY2Vzc092ZXJ2aWV3Q29tcG9uZW50XSxcclxuICAgICAgW3t0eXBlOiBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlciwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJQdXJjaGFzZX0sIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NPcmRlclB1cmNoYXNlQ29tcG9uZW50XSxcclxuICAgICAgW3t0eXBlOiBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlciwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJEZWxpdmVyeU5vdGV9LCBUcmFuc2FjdGlvblF1aWNrQWNjZXNzT3JkZXJEZWxpdmVyeUNvbXBvbmVudF1cclxuICAgIF0pO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF90cmFuc2FjdGlvbkdyaWRDb21wb25lbnQ6IE1hcDx7dHlwZTogVHJhbnNhY3Rpb25LaW5kLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9LCBUeXBlPFRyYW5zYWN0aW9uR3JpZEJhc2VDb21wb25lbnQ+PiA9XHJcbiAgICBuZXcgTWFwPHt0eXBlOiBUcmFuc2FjdGlvbktpbmQ7IGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0sIFR5cGU8VHJhbnNhY3Rpb25HcmlkQmFzZUNvbXBvbmVudD4+KFtcclxuICAgICAgW3t0eXBlOiBUcmFuc2FjdGlvbktpbmQuUHVyY2hhc2VPcmRlciwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPdmVydmlld30sIFRyYW5zYWN0aW9uTGluZXNHcmlkQ29tcG9uZW50XSxcclxuICAgICAgW3t0eXBlOiBUcmFuc2FjdGlvbktpbmQuUHVyY2hhc2VPcmRlciwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvbn0sIFRyYW5zYWN0aW9uT3JkZXJDb25maXJtYXRpb25HcmlkQ29tcG9uZW50XSxcclxuICAgICAgW3t0eXBlOiBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlciwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJPdmVydmlld30sIFRyYW5zYWN0aW9uTGluZXNHcmlkQ29tcG9uZW50XVxyXG4gICAgXSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RyYW5zYWN0aW9uTGluZUNvbXBvbmVudDogTWFwPHt0eXBlOiBUcmFuc2FjdGlvbktpbmQsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0sIFR5cGU8VHJhbnNhY3Rpb25MaW5lc0xpbmVCYXNlQ29tcG9uZW50Pj4gPVxyXG4gICAgbmV3IE1hcDx7dHlwZTogVHJhbnNhY3Rpb25LaW5kOyBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9LCBUeXBlPFRyYW5zYWN0aW9uTGluZXNMaW5lQmFzZUNvbXBvbmVudD4+KFtcclxuICAgICAgW3t0eXBlOiBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlciwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJPdmVydmlld30sIFRyYW5zYWN0aW9uT3ZlcnZpZXdMaW5lQ29tcG9uZW50XSxcclxuICAgICAgW3t0eXBlOiBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlciwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJQdXJjaGFzZX0sIFRyYW5zYWN0aW9uUHVyY2hhc2VMaW5lQ29tcG9uZW50XSxcclxuICAgICAgW3t0eXBlOiBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlciwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJEZWxpdmVyeU5vdGV9LCBUcmFuc2FjdGlvbk9yZGVyRGVsaXZlcnlMaW5lQ29tcG9uZW50XSxcclxuICAgICAgW3t0eXBlOiBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlciwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJJbnZvaWNlfSwgVHJhbnNhY3Rpb25PcmRlckRlbGl2ZXJ5TGluZUNvbXBvbmVudF0sXHJcbiAgICAgIFt7dHlwZTogVHJhbnNhY3Rpb25LaW5kLlB1cmNoYXNlT3JkZXIsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeS5QdXJjaGFzZU9yZGVyUmVjZWl2ZWRHb29kc30sIFRyYW5zYWN0aW9uUmVjZWl2ZUdvb2RzTGluZUNvbXBvbmVudF0sXHJcbiAgICBdKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfdHJhbnNhY3Rpb25GaWx0ZXJDb21wb25lbnQ6IE1hcDx7dHlwZTogVHJhbnNhY3Rpb25LaW5kfSwgVHlwZTxUcmFuc2FjdGlvbkZpbHRlckJhc2VDb21wb25lbnQ+PiA9XHJcbiAgICBuZXcgTWFwPHt0eXBlOiBUcmFuc2FjdGlvbktpbmR9LCBUeXBlPFRyYW5zYWN0aW9uRmlsdGVyQmFzZUNvbXBvbmVudD4+KFtcclxuICAgICAgW3t0eXBlOiBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcn0sIFRyYW5zYWN0aW9uU2FsZXNPcmRlckZpbHRlckNvbXBvbmVudF0sXHJcbiAgICAgIFt7dHlwZTogVHJhbnNhY3Rpb25LaW5kLlB1cmNoYXNlT3JkZXJ9LCBUcmFuc2FjdGlvblB1cmNoYXNlT3JkZXJGaWx0ZXJDb21wb25lbnRdLFxyXG4gICAgXSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RyYW5zYWN0aW9uU2VhcmNoR3JpZENvbXBvbmVudDogTWFwPHt0eXBlOiBUcmFuc2FjdGlvbktpbmR9LCBUeXBlPFRyYW5zYWN0aW9uU2VhcmNoR3JpZEJhc2VDb21wb25lbnQ+PiA9XHJcbiAgICBuZXcgTWFwPHt0eXBlOiBUcmFuc2FjdGlvbktpbmR9LCBUeXBlPFRyYW5zYWN0aW9uU2VhcmNoR3JpZEJhc2VDb21wb25lbnQ+PihbXHJcbiAgICAgIFt7dHlwZTogVHJhbnNhY3Rpb25LaW5kLlNhbGVzT3JkZXJ9LCBUcmFuc2FjdGlvblNlYXJjaFNhbGVzT3JkZXJHcmlkQ29tcG9uZW50XSxcclxuICAgICAgW3t0eXBlOiBUcmFuc2FjdGlvbktpbmQuUHVyY2hhc2VPcmRlcn0sIFRyYW5zYWN0aW9uU2VhcmNoUHVyY2hhc2VPcmRlckdyaWRDb21wb25lbnRdLFxyXG4gICAgXSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RyYW5zYWN0aW9uU2VhcmNoVGlsZUNvbXBvbmVudDogTWFwPHt0eXBlOiBUcmFuc2FjdGlvbktpbmR9LCBUeXBlPFRyYW5zYWN0aW9uU2VhcmNoVGlsZUJhc2VDb21wb25lbnQ+PiA9XHJcbiAgICBuZXcgTWFwPHt0eXBlOiBUcmFuc2FjdGlvbktpbmR9LCBUeXBlPFRyYW5zYWN0aW9uU2VhcmNoVGlsZUJhc2VDb21wb25lbnQ+PihbXHJcbiAgICAgIFt7dHlwZTogVHJhbnNhY3Rpb25LaW5kLlNhbGVzT3JkZXJ9LCBUcmFuc2FjdGlvblNlYXJjaFNhbGVzT3JkZXJUaWxlQ29tcG9uZW50XSxcclxuICAgICAgW3t0eXBlOiBUcmFuc2FjdGlvbktpbmQuUHVyY2hhc2VPcmRlcn0sIFRyYW5zYWN0aW9uU2VhcmNoUHVyY2hhc2VPcmRlclRpbGVDb21wb25lbnRdLFxyXG4gICAgXSk7XHJcblxyXG4gIHB1YmxpYyBnZXRCdXR0b25CYXIodHlwZTogVHJhbnNhY3Rpb25LaW5kKTogVHJhbnNhY3Rpb25CYXJCdXR0b25bXSB7XHJcbiAgICBpZiAodGhpcy5fYnV0dG9uQmFyVHJhbnNhY3Rpb24uaGFzKHR5cGUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9idXR0b25CYXJUcmFuc2FjdGlvbi5nZXQodHlwZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UXVpY2tBY2Nlc3NDb21wb25lbnQodHlwZTogVHJhbnNhY3Rpb25LaW5kLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkpOiBUeXBlPFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudD4ge1xyXG4gICAgY29uc3Qga2V5OiB7dHlwZTogVHJhbnNhY3Rpb25LaW5kLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9ID0ge1xyXG4gICAgICB0eXBlOiB0eXBlLFxyXG4gICAgICBjYXRlZ29yeTogY2F0ZWdvcnlcclxuICAgIH1cclxuICAgIGxldCBlbnRyeTogVHlwZTxUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQ+O1xyXG4gICAgdGhpcy5fcXVpY2tBY2Nlc3NDb21wb25lbnQuZm9yRWFjaCgodiwgdCwgbSkgPT4ge1xyXG4gICAgICBpZiAodC50eXBlID09PSBrZXkudHlwZSAmJiB0LmNhdGVnb3J5ID09PSBrZXkuY2F0ZWdvcnkpIHtcclxuICAgICAgICBlbnRyeSA9IHY7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIGVudHJ5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRyYW5zYWN0aW9uR3JpZENvbXBvbmVudCh0eXBlOiBUcmFuc2FjdGlvbktpbmQsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSk6IFR5cGU8VHJhbnNhY3Rpb25HcmlkQmFzZUNvbXBvbmVudD4ge1xyXG4gICAgY29uc3Qga2V5OiB7dHlwZTogVHJhbnNhY3Rpb25LaW5kLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9ID0ge1xyXG4gICAgICB0eXBlOiB0eXBlLFxyXG4gICAgICBjYXRlZ29yeTogY2F0ZWdvcnlcclxuICAgIH1cclxuICAgIGxldCBlbnRyeTogVHlwZTxUcmFuc2FjdGlvbkdyaWRCYXNlQ29tcG9uZW50PjtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uR3JpZENvbXBvbmVudC5mb3JFYWNoKCh2LCB0LCBtKSA9PiB7XHJcbiAgICAgIGlmICh0LnR5cGUgPT09IGtleS50eXBlICYmIHQuY2F0ZWdvcnkgPT09IGtleS5jYXRlZ29yeSkge1xyXG4gICAgICAgIGVudHJ5ID0gdjtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICByZXR1cm4gZW50cnk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0VHJhbnNhY3Rpb25MaW5lQ29tcG9uZW50KHR5cGU6IFRyYW5zYWN0aW9uS2luZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5KTogVHlwZTxUcmFuc2FjdGlvbkxpbmVzTGluZUJhc2VDb21wb25lbnQ+IHtcclxuICAgIGNvbnN0IGtleToge3R5cGU6IFRyYW5zYWN0aW9uS2luZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSA9IHtcclxuICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgY2F0ZWdvcnk6IGNhdGVnb3J5XHJcbiAgICB9XHJcbiAgICBsZXQgZW50cnk6IFR5cGU8VHJhbnNhY3Rpb25MaW5lc0xpbmVCYXNlQ29tcG9uZW50PjtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uTGluZUNvbXBvbmVudC5mb3JFYWNoKCh2LCB0KSA9PiB7XHJcbiAgICAgIGlmICh0LnR5cGUgPT09IGtleS50eXBlICYmIHQuY2F0ZWdvcnkgPT09IGtleS5jYXRlZ29yeSkge1xyXG4gICAgICAgIGVudHJ5ID0gdjtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICByZXR1cm4gZW50cnk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0VHJhbnNhY3Rpb25GaWx0ZXJDb21wb25lbnQodHlwZTogVHJhbnNhY3Rpb25LaW5kKTogVHlwZTxUcmFuc2FjdGlvbkZpbHRlckJhc2VDb21wb25lbnQ+IHtcclxuICAgIGNvbnN0IGtleToge3R5cGU6IFRyYW5zYWN0aW9uS2luZH0gPSB7XHJcbiAgICAgIHR5cGU6IHR5cGV9XHJcbiAgICBsZXQgZW50cnk6IFR5cGU8VHJhbnNhY3Rpb25GaWx0ZXJCYXNlQ29tcG9uZW50PjtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uRmlsdGVyQ29tcG9uZW50LmZvckVhY2goKHYsIHQsIG0pID0+IHtcclxuICAgICAgaWYgKHQudHlwZSA9PT0ga2V5LnR5cGUpIHtcclxuICAgICAgICBlbnRyeSA9IHY7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIGVudHJ5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRyYW5zYWN0aW9uU2VhcmNoR3JpZENvbXBvbmVudCh0eXBlOiBUcmFuc2FjdGlvbktpbmQpOiBUeXBlPFRyYW5zYWN0aW9uU2VhcmNoR3JpZEJhc2VDb21wb25lbnQ+IHtcclxuICAgIGNvbnN0IGtleToge3R5cGU6IFRyYW5zYWN0aW9uS2luZH0gPSB7XHJcbiAgICAgIHR5cGU6IHR5cGV9XHJcbiAgICBsZXQgZW50cnk6IFR5cGU8VHJhbnNhY3Rpb25TZWFyY2hHcmlkQmFzZUNvbXBvbmVudD47XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvblNlYXJjaEdyaWRDb21wb25lbnQuZm9yRWFjaCgodiwgdCwgbSkgPT4ge1xyXG4gICAgICBpZiAodC50eXBlID09PSBrZXkudHlwZSkge1xyXG4gICAgICAgIGVudHJ5ID0gdjtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICByZXR1cm4gZW50cnk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0VHJhbnNhY3Rpb25TZWFyY2hUaWxlQ29tcG9uZW50KHR5cGU6IFRyYW5zYWN0aW9uS2luZCk6IFR5cGU8VHJhbnNhY3Rpb25TZWFyY2hUaWxlQmFzZUNvbXBvbmVudD4ge1xyXG4gICAgY29uc3Qga2V5OiB7dHlwZTogVHJhbnNhY3Rpb25LaW5kfSA9IHtcclxuICAgICAgdHlwZTogdHlwZX1cclxuICAgIGxldCBlbnRyeTogVHlwZTxUcmFuc2FjdGlvblNlYXJjaFRpbGVCYXNlQ29tcG9uZW50PjtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uU2VhcmNoVGlsZUNvbXBvbmVudC5mb3JFYWNoKCh2LCB0LCBtKSA9PiB7XHJcbiAgICAgIGlmICh0LnR5cGUgPT09IGtleS50eXBlKSB7XHJcbiAgICAgICAgZW50cnkgPSB2O1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHJldHVybiBlbnRyeTtcclxuICB9XHJcbn1cclxuIl19