taxtank-core 0.30.7 → 0.30.9

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 (279) hide show
  1. package/esm2020/lib/db/Enums/subscription/service-payment-method-card-brand.enum.mjs +12 -0
  2. package/esm2020/lib/db/Enums/subscription/service-payment-method-type.enum.mjs +6 -0
  3. package/esm2020/lib/db/Models/subscription/service-payment-method.mjs +4 -0
  4. package/esm2020/lib/models/endpoint/endpoints.const.mjs +6 -1
  5. package/esm2020/lib/models/service-subscription/index.mjs +3 -1
  6. package/esm2020/lib/models/service-subscription/payment-method-brand.enum.mjs +12 -0
  7. package/esm2020/lib/models/service-subscription/service-payment-method.mjs +21 -0
  8. package/esm2020/lib/models/service-subscription/service-subscription.mjs +16 -3
  9. package/esm2020/lib/models/service-subscription/stripe-promo-code.mjs +12 -0
  10. package/esm2020/lib/services/http/subscription/index.mjs +3 -2
  11. package/esm2020/lib/services/http/subscription/service-payment-method/service-payment-method.service.mjs +62 -0
  12. package/esm2020/lib/services/http/subscription/service-subscription/subscription.service.mjs +5 -3
  13. package/fesm2015/taxtank-core.mjs +158 -24
  14. package/fesm2015/taxtank-core.mjs.map +1 -1
  15. package/fesm2020/taxtank-core.mjs +155 -24
  16. package/fesm2020/taxtank-core.mjs.map +1 -1
  17. package/lib/db/Enums/subscription/service-payment-method-card-brand.enum.d.ts +10 -0
  18. package/lib/db/Enums/subscription/service-payment-method-type.enum.d.ts +4 -0
  19. package/lib/db/Models/subscription/service-payment-method.d.ts +16 -0
  20. package/lib/forms/abstract.form.d.ts.map +1 -0
  21. package/lib/forms/address/address.form.d.ts.map +1 -0
  22. package/lib/forms/address/index.d.ts.map +1 -0
  23. package/lib/forms/bank/bank-account/bank-account-add-manual.form.d.ts.map +1 -0
  24. package/lib/forms/bank/bank-account/bank-account-allocation.form.d.ts.map +1 -0
  25. package/lib/forms/bank/bank-account/bank-account-import.form.d.ts.map +1 -0
  26. package/lib/forms/bank/bank-account/bank-account-properties.form.d.ts.map +1 -0
  27. package/lib/forms/bank/bank-account/bank-accounts-import.form.d.ts.map +1 -0
  28. package/lib/forms/bank/bank-login.form.d.ts.map +1 -0
  29. package/lib/forms/client/client-income-types.form.d.ts.map +1 -0
  30. package/lib/forms/depreciation/depreciation.form.d.ts.map +1 -0
  31. package/lib/forms/depreciation/index.d.ts.map +1 -0
  32. package/lib/forms/form-validations.enum.d.ts.map +1 -0
  33. package/lib/forms/index.d.ts.map +1 -0
  34. package/lib/forms/loan/index.d.ts.map +1 -0
  35. package/lib/forms/loan/loan.form.d.ts.map +1 -0
  36. package/lib/forms/login/login.form.d.ts.map +1 -0
  37. package/lib/forms/phone/index.d.ts.map +1 -0
  38. package/lib/forms/phone/phone.form.d.ts.map +1 -0
  39. package/lib/forms/property/index.d.ts.map +1 -0
  40. package/lib/forms/property/property-sale/index.d.ts.map +1 -0
  41. package/lib/forms/property/property-sale/property-sale-cost-base.form.d.ts.map +1 -0
  42. package/lib/forms/property/property-sale/property-sale-cost-sale.form.d.ts.map +1 -0
  43. package/lib/forms/property/property-sale/property-sale-exemptions.form.d.ts.map +1 -0
  44. package/lib/forms/register/register-client.form.d.ts.map +1 -0
  45. package/lib/forms/register/register-firm.form.d.ts.map +1 -0
  46. package/lib/forms/report/my-tax/index.d.ts.map +1 -0
  47. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-details/my-tax-business-details.form.d.ts.map +1 -0
  48. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income/my-tax-business-income.form.d.ts.map +1 -0
  49. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-income-or-losses.form.d.ts.map +1 -0
  50. package/lib/forms/report/my-tax/my-tax-business-income-or-losses/my-tax-business-losses/my-tax-business-losses.form.d.ts.map +1 -0
  51. package/lib/forms/report/my-tax/my-tax-cgt.form.d.ts.map +1 -0
  52. package/lib/forms/report/my-tax/my-tax-deductions.form.d.ts.map +1 -0
  53. package/lib/forms/report/my-tax/my-tax-dividends.form.d.ts.map +1 -0
  54. package/lib/forms/report/my-tax/my-tax-income-statements.form.d.ts.map +1 -0
  55. package/lib/forms/report/my-tax/my-tax-income-tests.form.d.ts.map +1 -0
  56. package/lib/forms/report/my-tax/my-tax-interest.form.d.ts.map +1 -0
  57. package/lib/forms/report/my-tax/my-tax-losses.form.d.ts.map +1 -0
  58. package/lib/forms/report/my-tax/my-tax-medicare.form.d.ts.map +1 -0
  59. package/lib/forms/report/my-tax/my-tax-offsets.form.d.ts.map +1 -0
  60. package/lib/forms/report/my-tax/my-tax-other-income.form.d.ts.map +1 -0
  61. package/lib/forms/report/my-tax/my-tax-partnerships-and-trusts.form.d.ts.map +1 -0
  62. package/lib/forms/report/my-tax/my-tax-rent.form.d.ts.map +1 -0
  63. package/lib/forms/sole/bas-report.form.d.ts.map +1 -0
  64. package/lib/forms/sole/index.d.ts.map +1 -0
  65. package/lib/forms/sole/sole-business-allocations.form.d.ts.map +1 -0
  66. package/lib/forms/sole/sole-business-loss.form.d.ts.map +1 -0
  67. package/lib/forms/sole/sole-business.form.d.ts.map +1 -0
  68. package/lib/forms/sole/sole-contact.form.d.ts.map +1 -0
  69. package/lib/forms/sole/sole-depreciation-method.form.d.ts.map +1 -0
  70. package/lib/forms/sole/sole-details.form.d.ts.map +1 -0
  71. package/lib/forms/sole/sole-invoice-item.form.d.ts.map +1 -0
  72. package/lib/forms/sole/sole-invoice-template.form.d.ts.map +1 -0
  73. package/lib/forms/sole/sole-invoice.form.d.ts.map +1 -0
  74. package/lib/forms/transaction/index.d.ts.map +1 -0
  75. package/lib/forms/transaction/messages.enum.d.ts.map +1 -0
  76. package/lib/forms/transaction/transaction-base.form.d.ts.map +1 -0
  77. package/lib/forms/transaction/transaction.form.d.ts.map +1 -0
  78. package/lib/forms/transaction/work/work-expense.form.d.ts.map +1 -0
  79. package/lib/forms/transaction/work/work-income.form.d.ts.map +1 -0
  80. package/lib/forms/transaction/work/work-transaction.form.d.ts.map +1 -0
  81. package/lib/forms/user/index.d.ts.map +1 -0
  82. package/lib/forms/user/password.form.d.ts.map +1 -0
  83. package/lib/forms/user/reset-password.form.d.ts.map +1 -0
  84. package/lib/forms/user/user-invite.form.d.ts.map +1 -0
  85. package/lib/forms/vehicle/index.d.ts.map +1 -0
  86. package/lib/forms/vehicle/vehicle-claim-details.form.d.ts.map +1 -0
  87. package/lib/forms/vehicle/vehicle-claim.form.d.ts.map +1 -0
  88. package/lib/forms/vehicle/vehicle-logbook.form.d.ts.map +1 -0
  89. package/lib/forms/vehicle/vehicle.form.d.ts.map +1 -0
  90. package/lib/functions/clone-deep.d.ts.map +1 -0
  91. package/lib/functions/create-date.d.ts.map +1 -0
  92. package/lib/functions/get-doc-icon.d.ts.map +1 -0
  93. package/lib/functions/mat-options-functions.d.ts.map +1 -0
  94. package/lib/functions/mat-sort-options.d.ts.map +1 -0
  95. package/lib/functions/round-to.d.ts.map +1 -0
  96. package/lib/functions/tax-review-filter-predicate.d.ts.map +1 -0
  97. package/lib/models/account-setup/account-setup-items.const.d.ts.map +1 -0
  98. package/lib/models/account-setup/account-setup-items.enum.d.ts.map +1 -0
  99. package/lib/models/endpoint/endpoints.const.d.ts +1 -0
  100. package/lib/models/service-subscription/index.d.ts +2 -0
  101. package/lib/models/service-subscription/payment-method-brand.enum.d.ts +10 -0
  102. package/lib/models/service-subscription/service-payment-method.d.ts +10 -0
  103. package/lib/models/service-subscription/service-subscription.d.ts +6 -0
  104. package/lib/models/service-subscription/stripe-promo-code.d.ts +8 -0
  105. package/lib/services/account-setup/account-setup.service.d.ts.map +1 -0
  106. package/lib/services/account-setup/index.d.ts.map +1 -0
  107. package/lib/services/affiliate/index.d.ts.map +1 -0
  108. package/lib/services/affiliate/rewardful/index.d.ts.map +1 -0
  109. package/lib/services/affiliate/rewardful/rewardful.service.d.ts.map +1 -0
  110. package/lib/services/asset/assets.service.d.ts.map +1 -0
  111. package/lib/services/asset/index.d.ts.map +1 -0
  112. package/lib/services/bank/bank-account-calculation.service.d.ts.map +1 -0
  113. package/lib/services/bank/bank-transaction-calculation.service.d.ts.map +1 -0
  114. package/lib/services/bank/index.d.ts.map +1 -0
  115. package/lib/services/export/export-formatter.service.d.ts.map +1 -0
  116. package/lib/services/export/index.d.ts.map +1 -0
  117. package/lib/services/header-title/header-title.service.d.ts.map +1 -0
  118. package/lib/services/header-title/index.d.ts.map +1 -0
  119. package/lib/services/http/bank/bank.service.d.ts.map +1 -0
  120. package/lib/services/http/bank/index.d.ts.map +1 -0
  121. package/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.d.ts.map +1 -0
  122. package/lib/services/http/chart-accounts/chart-accounts-depreciations/index.d.ts.map +1 -0
  123. package/lib/services/http/chart-accounts/chart-accounts.service.d.ts.map +1 -0
  124. package/lib/services/http/chart-accounts/index.d.ts.map +1 -0
  125. package/lib/services/http/chat/chat.service.d.ts.map +1 -0
  126. package/lib/services/http/chat/index.d.ts.map +1 -0
  127. package/lib/services/http/chat/message-document.service.d.ts.map +1 -0
  128. package/lib/services/http/chat/message.service.d.ts.map +1 -0
  129. package/lib/services/http/depreciation/depreciation-capital-project/depreciation-capital-project.service.d.ts.map +1 -0
  130. package/lib/services/http/depreciation/depreciation-capital-project/index.d.ts.map +1 -0
  131. package/lib/services/http/depreciation/depreciation-receipt/depreciation-receipt.service.d.ts.map +1 -0
  132. package/lib/services/http/depreciation/depreciation-receipt/index.d.ts.map +1 -0
  133. package/lib/services/http/depreciation/depreciation.service.d.ts.map +1 -0
  134. package/lib/services/http/depreciation/index.d.ts.map +1 -0
  135. package/lib/services/http/document/document-folder/document-folder.service.d.ts.map +1 -0
  136. package/lib/services/http/document/document.service.d.ts.map +1 -0
  137. package/lib/services/http/document/index.d.ts.map +1 -0
  138. package/lib/services/http/facebook/facebook-auth-options.interface.d.ts.map +1 -0
  139. package/lib/services/http/facebook/facebook-auth-response.interface.d.ts.map +1 -0
  140. package/lib/services/http/facebook/facebook-status-response.interface.d.ts.map +1 -0
  141. package/lib/services/http/facebook/facebook.service.d.ts.map +1 -0
  142. package/lib/services/http/facebook/index.d.ts.map +1 -0
  143. package/lib/services/http/file/file.service.d.ts.map +1 -0
  144. package/lib/services/http/file/index.d.ts.map +1 -0
  145. package/lib/services/http/firm/client-income/client-income-types.service.d.ts.map +1 -0
  146. package/lib/services/http/firm/client-income/index.d.ts.map +1 -0
  147. package/lib/services/http/firm/client-invite/client-invite.service.d.ts.map +1 -0
  148. package/lib/services/http/firm/client-invite/index.d.ts.map +1 -0
  149. package/lib/services/http/firm/client-movement/client-movement.service.d.ts.map +1 -0
  150. package/lib/services/http/firm/client-movement/index.d.ts.map +1 -0
  151. package/lib/services/http/firm/employee/employee.service.d.ts.map +1 -0
  152. package/lib/services/http/firm/employee/index.d.ts.map +1 -0
  153. package/lib/services/http/firm/employee-invite/employee-invite.service.d.ts.map +1 -0
  154. package/lib/services/http/firm/employee-invite/index.d.ts.map +1 -0
  155. package/lib/services/http/firm/firm.service.d.ts.map +1 -0
  156. package/lib/services/http/firm/index.d.ts.map +1 -0
  157. package/lib/services/http/firm/portfolio-report/client-portfolio-report.service.d.ts.map +1 -0
  158. package/lib/services/http/firm/portfolio-report/index.d.ts.map +1 -0
  159. package/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.d.ts.map +1 -0
  160. package/lib/services/http/income-source/income-source-forecast/index.d.ts.map +1 -0
  161. package/lib/services/http/income-source/income-source.service.d.ts.map +1 -0
  162. package/lib/services/http/income-source/index.d.ts.map +1 -0
  163. package/lib/services/http/income-source/salary-forecast/index.d.ts.map +1 -0
  164. package/lib/services/http/income-source/salary-forecast/salary-forecast.service.d.ts.map +1 -0
  165. package/lib/services/http/income-source/sole-forecast/index.d.ts.map +1 -0
  166. package/lib/services/http/income-source/sole-forecast/sole-forecast.service.d.ts.map +1 -0
  167. package/lib/services/http/index.d.ts.map +1 -0
  168. package/lib/services/http/loan/borrowing-expense/borrowing-expense.service.d.ts.map +1 -0
  169. package/lib/services/http/loan/borrowing-expense/index.d.ts.map +1 -0
  170. package/lib/services/http/loan/index.d.ts.map +1 -0
  171. package/lib/services/http/loan/loan.service.d.ts.map +1 -0
  172. package/lib/services/http/property/index.d.ts.map +1 -0
  173. package/lib/services/http/property/property-category/index.d.ts.map +1 -0
  174. package/lib/services/http/property/property-category/property-category.service.d.ts.map +1 -0
  175. package/lib/services/http/property/property-category-movement/index.d.ts.map +1 -0
  176. package/lib/services/http/property/property-category-movement/property-category-movement.service.d.ts.map +1 -0
  177. package/lib/services/http/property/property-document/index.d.ts.map +1 -0
  178. package/lib/services/http/property/property-document/property-document.service.d.ts.map +1 -0
  179. package/lib/services/http/property/property-sale/index.d.ts.map +1 -0
  180. package/lib/services/http/property/property-sale/property-sale.service.d.ts.map +1 -0
  181. package/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.d.ts.map +1 -0
  182. package/lib/services/http/property/property-share/index.d.ts.map +1 -0
  183. package/lib/services/http/property/property-share/property-share.service.d.ts.map +1 -0
  184. package/lib/services/http/property/property.service.d.ts.map +1 -0
  185. package/lib/services/http/receipt/index.d.ts.map +1 -0
  186. package/lib/services/http/receipt/receipt.service.d.ts.map +1 -0
  187. package/lib/services/http/rest/rest-old.service.d.ts.map +1 -0
  188. package/lib/services/http/service-notification/index.d.ts.map +1 -0
  189. package/lib/services/http/service-notification/service-notification.service.d.ts.map +1 -0
  190. package/lib/services/http/sole/bas-report/bas-report.service.d.ts.map +1 -0
  191. package/lib/services/http/sole/index.d.ts.map +1 -0
  192. package/lib/services/http/sole/sole-business/messages.enum.d.ts.map +1 -0
  193. package/lib/services/http/sole/sole-business/sole-business.service.d.ts.map +1 -0
  194. package/lib/services/http/sole/sole-business-activity/sole-business-activity.service.d.ts.map +1 -0
  195. package/lib/services/http/sole/sole-business-loss/sole-business-loss-rules/sole-business-loss-offset-rule.service.d.ts.map +1 -0
  196. package/lib/services/http/sole/sole-business-loss/sole-business-loss.service.d.ts.map +1 -0
  197. package/lib/services/http/sole/sole-contact/sole-contact.service.d.ts.map +1 -0
  198. package/lib/services/http/sole/sole-depreciation-method/sole-depreciation-method.service.d.ts.map +1 -0
  199. package/lib/services/http/sole/sole-details/sole-details.service.d.ts.map +1 -0
  200. package/lib/services/http/sole/sole-invoice/sole-invoice.service.d.ts.map +1 -0
  201. package/lib/services/http/sole/sole-invoice-template/sole-invoice-template.service.d.ts.map +1 -0
  202. package/lib/services/http/subscription/index.d.ts +2 -1
  203. package/lib/services/http/subscription/index.d.ts.map +1 -0
  204. package/lib/services/http/subscription/service-payment/service-payment.service.d.ts.map +1 -0
  205. package/lib/services/http/subscription/service-payment-method/service-payment-method.service.d.ts +27 -0
  206. package/lib/services/http/subscription/service-payment-method/service-payment-method.service.d.ts.map +1 -0
  207. package/lib/services/http/subscription/service-price/service-price.service.d.ts.map +1 -0
  208. package/lib/services/http/subscription/service-product/service-product.service.d.ts.map +1 -0
  209. package/lib/services/http/subscription/service-subscription/subscription.service.d.ts +2 -1
  210. package/lib/services/http/subscription/service-subscription/subscription.service.d.ts.map +1 -0
  211. package/lib/services/http/tax-review/index.d.ts.map +1 -0
  212. package/lib/services/http/tax-review/tax-review-history/tax-review-history.service.d.ts.map +1 -0
  213. package/lib/services/http/tax-review/tax-review.service.d.ts.map +1 -0
  214. package/lib/services/http/tax-summary/index.d.ts.map +1 -0
  215. package/lib/services/http/tax-summary/tax-summary.service.d.ts.map +1 -0
  216. package/lib/services/http/transaction/index.d.ts.map +1 -0
  217. package/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.d.ts.map +1 -0
  218. package/lib/services/http/transaction/transaction-receipt/transaction-receipt.service.d.ts.map +1 -0
  219. package/lib/services/http/transaction/transaction.service.d.ts.map +1 -0
  220. package/lib/services/http/tutorial-video/index.d.ts.map +1 -0
  221. package/lib/services/http/tutorial-video/tutorial-video-response.interface.d.ts.map +1 -0
  222. package/lib/services/http/tutorial-video/tutorial-video.service.d.ts.map +1 -0
  223. package/lib/services/http/tutorial-video/video-source.interface.d.ts.map +1 -0
  224. package/lib/services/http/user/index.d.ts.map +1 -0
  225. package/lib/services/http/user/occupation/occupation.service.d.ts.map +1 -0
  226. package/lib/services/http/user/user-event-setting/user-event-setting.service.d.ts.map +1 -0
  227. package/lib/services/http/user/user-event-type/user-event-type.service.d.ts.map +1 -0
  228. package/lib/services/http/user/users-invite/users-invite.service.d.ts.map +1 -0
  229. package/lib/services/http/vehicle/index.d.ts.map +1 -0
  230. package/lib/services/http/vehicle/vehicle-claim-details.service.d.ts.map +1 -0
  231. package/lib/services/http/vehicle/vehicle-claim.service.d.ts.map +1 -0
  232. package/lib/services/http/vehicle/vehicle-logbook.service.d.ts.map +1 -0
  233. package/lib/services/http/vehicle/vehicle.service.d.ts.map +1 -0
  234. package/lib/services/index.d.ts.map +1 -0
  235. package/lib/services/intercom/index.d.ts.map +1 -0
  236. package/lib/services/intercom/intercom.service.d.ts.map +1 -0
  237. package/lib/services/pdf/index.d.ts.map +1 -0
  238. package/lib/services/pdf/js-pdf.d.ts.map +1 -0
  239. package/lib/services/pdf/pdf-from-dom-element/file-settings.d.ts.map +1 -0
  240. package/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.d.ts.map +1 -0
  241. package/lib/services/pdf/pdf-from-table/file-settings.d.ts.map +1 -0
  242. package/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.d.ts.map +1 -0
  243. package/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.d.ts.map +1 -0
  244. package/lib/services/pdf/pdf-from-table/pdf-from-table.service.d.ts.map +1 -0
  245. package/lib/services/preloader/index.d.ts.map +1 -0
  246. package/lib/services/property/corelogic/index.d.ts.map +1 -0
  247. package/lib/services/property/equity-position-chart/equity-position-chart.service.d.ts.map +1 -0
  248. package/lib/services/property/equity-position-chart/index.d.ts.map +1 -0
  249. package/lib/services/property/index.d.ts.map +1 -0
  250. package/lib/services/property/property-calculation/index.d.ts.map +1 -0
  251. package/lib/services/property/property-calculation/property-calculation.service.d.ts.map +1 -0
  252. package/lib/services/report/index.d.ts.map +1 -0
  253. package/lib/services/report/property/property-transaction-report.service.d.ts.map +1 -0
  254. package/lib/services/transaction/index.d.ts.map +1 -0
  255. package/lib/services/transaction/transaction-calculation.service.d.ts.map +1 -0
  256. package/lib/services/user/index.d.ts.map +1 -0
  257. package/lib/services/vehicle/index.d.ts.map +1 -0
  258. package/lib/services/vehicle/logbook-best-period.service.d.ts.map +1 -0
  259. package/lib/services/xlsx/index.d.ts.map +1 -0
  260. package/lib/services/xlsx/xlsx.service.d.ts.map +1 -0
  261. package/lib/validators/address-corelogic.validator.d.ts.map +1 -0
  262. package/lib/validators/at-least-one-enabled.validator.d.ts.map +1 -0
  263. package/lib/validators/at-least-one.validator.d.ts.map +1 -0
  264. package/lib/validators/autocomplete.validator.d.ts.map +1 -0
  265. package/lib/validators/conditional.validator.d.ts.map +1 -0
  266. package/lib/validators/current-fin-year.validator.d.ts.map +1 -0
  267. package/lib/validators/date-range.validator.d.ts.map +1 -0
  268. package/lib/validators/fields-sum.validator.d.ts.map +1 -0
  269. package/lib/validators/file.validator.d.ts.map +1 -0
  270. package/lib/validators/index.d.ts.map +1 -0
  271. package/lib/validators/min-date/messages.enum.d.ts.map +1 -0
  272. package/lib/validators/min-date/min-date.validator.d.ts.map +1 -0
  273. package/lib/validators/password-match.validator.d.ts.map +1 -0
  274. package/lib/validators/password.validator.d.ts.map +1 -0
  275. package/lib/validators/phone-number.validator.d.ts.map +1 -0
  276. package/lib/validators/required-length.validator.d.ts.map +1 -0
  277. package/package.json +1 -1
  278. package/public-api.d.ts.map +1 -0
  279. package/taxtank-core.d.ts.map +1 -0
@@ -0,0 +1,12 @@
1
+ export var ServicePaymentMethodCardBrandEnum;
2
+ (function (ServicePaymentMethodCardBrandEnum) {
3
+ ServicePaymentMethodCardBrandEnum[ServicePaymentMethodCardBrandEnum["UNKNOWN"] = 0] = "UNKNOWN";
4
+ ServicePaymentMethodCardBrandEnum[ServicePaymentMethodCardBrandEnum["AMEX"] = 1] = "AMEX";
5
+ ServicePaymentMethodCardBrandEnum[ServicePaymentMethodCardBrandEnum["DINERS"] = 2] = "DINERS";
6
+ ServicePaymentMethodCardBrandEnum[ServicePaymentMethodCardBrandEnum["DISCOVER"] = 3] = "DISCOVER";
7
+ ServicePaymentMethodCardBrandEnum[ServicePaymentMethodCardBrandEnum["JCB"] = 4] = "JCB";
8
+ ServicePaymentMethodCardBrandEnum[ServicePaymentMethodCardBrandEnum["MASTERCARD"] = 5] = "MASTERCARD";
9
+ ServicePaymentMethodCardBrandEnum[ServicePaymentMethodCardBrandEnum["UNIONPAY"] = 6] = "UNIONPAY";
10
+ ServicePaymentMethodCardBrandEnum[ServicePaymentMethodCardBrandEnum["VISA"] = 7] = "VISA";
11
+ })(ServicePaymentMethodCardBrandEnum || (ServicePaymentMethodCardBrandEnum = {}));
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wYXltZW50LW1ldGhvZC1jYXJkLWJyYW5kLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcGF5bWVudC1tZXRob2QtY2FyZC1icmFuZC5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGlDQVNYO0FBVEQsV0FBWSxpQ0FBaUM7SUFDNUMsK0ZBQVcsQ0FBQTtJQUNYLHlGQUFRLENBQUE7SUFDUiw2RkFBVSxDQUFBO0lBQ1YsaUdBQVksQ0FBQTtJQUNaLHVGQUFPLENBQUE7SUFDUCxxR0FBYyxDQUFBO0lBQ2QsaUdBQVksQ0FBQTtJQUNaLHlGQUFRLENBQUE7QUFDVCxDQUFDLEVBVFcsaUNBQWlDLEtBQWpDLGlDQUFpQyxRQVM1QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFNlcnZpY2VQYXltZW50TWV0aG9kQ2FyZEJyYW5kRW51bSB7XG5cdFVOS05PV04gPSAwLFxuXHRBTUVYID0gMSxcblx0RElORVJTID0gMixcblx0RElTQ09WRVIgPSAzLFxuXHRKQ0IgPSA0LFxuXHRNQVNURVJDQVJEID0gNSxcblx0VU5JT05QQVkgPSA2LFxuXHRWSVNBID0gNyxcbn0iXX0=
@@ -0,0 +1,6 @@
1
+ export var ServicePaymentMethodTypeEnum;
2
+ (function (ServicePaymentMethodTypeEnum) {
3
+ ServicePaymentMethodTypeEnum[ServicePaymentMethodTypeEnum["AU_BECS_DEBIT"] = 1] = "AU_BECS_DEBIT";
4
+ ServicePaymentMethodTypeEnum[ServicePaymentMethodTypeEnum["CARD"] = 2] = "CARD";
5
+ })(ServicePaymentMethodTypeEnum || (ServicePaymentMethodTypeEnum = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wYXltZW50LW1ldGhvZC10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcGF5bWVudC1tZXRob2QtdHlwZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLDRCQUdYO0FBSEQsV0FBWSw0QkFBNEI7SUFDdkMsaUdBQWlCLENBQUE7SUFDakIsK0VBQVEsQ0FBQTtBQUNULENBQUMsRUFIVyw0QkFBNEIsS0FBNUIsNEJBQTRCLFFBR3ZDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gU2VydmljZVBheW1lbnRNZXRob2RUeXBlRW51bSB7XG5cdEFVX0JFQ1NfREVCSVQgPSAxLFxuXHRDQVJEID0gMixcbn0iXX0=
@@ -0,0 +1,4 @@
1
+ import { AbstractModel } from '../abstract-model';
2
+ export class ServicePaymentMethod extends AbstractModel {
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wYXltZW50LW1ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcGF5bWVudC1tZXRob2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxhQUFhO0NBV3REIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VydmljZVBheW1lbnRNZXRob2RUeXBlRW51bSB9IGZyb20gJy4uLy4uL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXBheW1lbnQtbWV0aG9kLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBTZXJ2aWNlUGF5bWVudE1ldGhvZENhcmRCcmFuZEVudW0gfSBmcm9tICcuLi8uLi9FbnVtcy9zdWJzY3JpcHRpb24vc2VydmljZS1wYXltZW50LW1ldGhvZC1jYXJkLWJyYW5kLmVudW0nO1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL3VzZXIvdXNlcic7XG5pbXBvcnQgeyBBYnN0cmFjdE1vZGVsIH0gZnJvbSAnLi4vYWJzdHJhY3QtbW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgU2VydmljZVBheW1lbnRNZXRob2QgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsIHtcblx0c3RyaXBlSWQ/OiBzdHJpbmc7XG5cdHR5cGU/OiBTZXJ2aWNlUGF5bWVudE1ldGhvZFR5cGVFbnVtO1xuXHRsYXN0Rm91ckRpZ2l0cz86IHN0cmluZztcblx0Y2FyZEJyYW5kPzogU2VydmljZVBheW1lbnRNZXRob2RDYXJkQnJhbmRFbnVtO1xuXHRjYXJkRXhwaXJhdGlvbk1vbnRoPzogbnVtYmVyO1xuXHRjYXJkRXhwaXJhdGlvblllYXI/OiBudW1iZXI7XG5cdGlzRGVmYXVsdD86IGJvb2xlYW47XG5cdGlkPzogbnVtYmVyO1xuXHRkZWxldGVkQXQ/OiBEYXRlO1xuXHR1c2VyPzogVXNlcjtcbn1cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { Endpoint } from './endpoint';
2
2
  /**
3
3
  * List of all app endpoints
4
+ * @TODO Alex/Vik: Create some smart system for preloader endpoints.
4
5
  */
5
6
  export const ENDPOINTS = {
6
7
  ASSETS_GET: new Endpoint('GET', '\\/assets\\/\.\*\\/\\d+'),
@@ -119,6 +120,10 @@ export const ENDPOINTS = {
119
120
  SERVICE_SUBSCRIPTIONS_CANCEL: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/cancel'),
120
121
  SERVICE_SUBSCRIPTIONS_RENEW: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/renewal'),
121
122
  SERVICE_PAYMENT_INVOICE_URL_GET: new Endpoint('GET', '\\/service-payments\\/\\d+\\/invoice-url'),
123
+ SERVICE_PAYMENT_METHODS_GET: new Endpoint('GET', '\\/service-payment-methods'),
124
+ SERVICE_PAYMENT_METHODS_DELETE: new Endpoint('DELETE', '\\/service-payment-methods\\/\\d+'),
125
+ SERVICE_PAYMENT_METHODS_GET_SECRET: new Endpoint('GET', '\\/service-payment-methods\\/setup-intent-secret'),
126
+ SERVICE_PAYMENT_METHODS_DEFAULT_PUT: new Endpoint('PUT', '\\/service-payment-methods\\/\\d+\\/default'),
122
127
  SUBSCRIPTION_ITEMS_PUT: new Endpoint('PUT', '\\/service-subscriptions\\/\\d+\\/items'),
123
128
  SOLE_BUSINESSES_GET: new Endpoint('GET', '\\/sole-businesses'),
124
129
  SOLE_BUSINESSES_POST: new Endpoint('POST', '\\/sole-businesses'),
@@ -194,4 +199,4 @@ export const ENDPOINTS = {
194
199
  VEHICLE_CLAIM_DETAILS_POST: new Endpoint('POST', '\\/vehicle-claim-details'),
195
200
  VEHICLE_CLAIM_DETAILS_PUT: new Endpoint('PUT', '\\/vehicle-claim-details\\/\\d+'),
196
201
  };
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnRzLmNvbnN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9lbmRwb2ludC9lbmRwb2ludHMuY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBOEI7SUFDbEQsVUFBVSxFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSx5QkFBeUIsQ0FBQztJQUUxRCxTQUFTLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQztJQUMxQyxpQkFBaUIsRUFBRSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUM7SUFDMUQsa0JBQWtCLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDO0lBQzVELGlCQUFpQixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSx5QkFBeUIsQ0FBQztJQUNqRSxvQkFBb0IsRUFBRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUM7SUFDakUsb0JBQW9CLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLHFCQUFxQixDQUFDO0lBQ2hFLHFCQUFxQixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxzQkFBc0IsQ0FBQztJQUNsRSx3QkFBd0IsRUFBRSxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLENBQUM7SUFDL0UsNkJBQTZCLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLHNDQUFzQyxDQUFDO0lBQzNGLGtCQUFrQixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxxQkFBcUIsQ0FBQztJQUM5RCxlQUFlLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLG1CQUFt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S0FBSyxFQUFFLGFBQWEsQ0FBQztJQUNoRCxhQUFhLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQztJQUNsRCxZQUFZLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLG9CQUFvQixDQUFDO0lBQ3ZELGtCQUFrQixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQztJQUM1RCxtQkFBbUIsRUFBRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUM7SUFDOUQsa0JBQWtCLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLDBCQUEwQixDQUFDO0lBQ25FLG9CQUFvQixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSx3QkFBd0IsQ0FBQztJQUNuRSxxQkFBcUIsRUFBRSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsd0JBQXdCLENBQUM7SUFDckUsb0JBQW9CLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLCtCQUErQixDQUFDO0lBQzFFLHVCQUF1QixFQUFFLElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRSwrQkFBK0IsQ0FBQztJQUNoRix5QkFBeUIsRUFBRSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsMEJBQTBCLENBQUM7SUFDMUUsMEJBQTBCLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLDBCQUEwQixDQUFDO0lBQzVFLHlCQUF5QixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxpQ0FBaUMsQ0FBQztDQUNsRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5kcG9pbnQgfSBmcm9tICcuL2VuZHBvaW50JztcclxuXHJcbi8qKlxyXG4gKiBMaXN0IG9mIGFsbCBhcHAgZW5kcG9pbnRzXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgRU5EUE9JTlRTOiB7W2tleTogc3RyaW5nXTogRW5kcG9pbnR9ID0ge1xyXG4gIEFTU0VUU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvYXNzZXRzXFxcXC9cXC5cXCpcXFxcL1xcXFxkKycpLFxyXG5cclxuICBCQU5LU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvYmFua3MnKSxcclxuICBCQU5LX0FDQ09VTlRTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9iYW5rLWFjY291bnRzJyksXHJcbiAgQkFOS19BQ0NPVU5UU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9iYW5rLWFjY291bnRzJyksXHJcbiAgQkFOS19BQ0NPVU5UU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvYmFuay1hY2NvdW50c1xcXFwvXFxcXGQrJyksXHJcbiAgQkFOS19DT05ORUNUSU9OX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2JhbmstY29ubmVjdGlvbnMnKSxcclxuICBCQU5LX0NPTk5FQ1RJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9iYW5rLWNvbm5lY3Rpb25zJyksXHJcbiAgQkFOS19UUkFOU0FDVElPTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2JhbmstdHJhbnNhY3Rpb25zJyksXHJcbiAgQkFOS19UUkFOU0FDVElPTlNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL2JhbmstdHJhbnNhY3Rpb25zXFxcXC9cXFxcZCsnKSxcclxuICBCQU5LX1RSQU5TQUNUSU9OU19JTVBPUlRfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvYmFuay10cmFuc2FjdGlvbnNcXFxcL1xcXFxkK1xcXFwvaW1wb3J0JyksXHJcbiAgQkFTSVFfQUNDT1VOVFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2Jhc2lxXFxcXC9hY2NvdW50cycpLFxyXG4gIEJBU0lRX1RPS0VOX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9iYXNpcVxcXFwvdG9rZW5zJyksXHJcblxyXG4gIEJPUlJPV0lOR19FWFBFTlNFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvYm9ycm93aW5nLWV4cGVuc2VzJyksXHJcblxyXG4gIENIQVJUU19JTkNPTUVfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2NoYXJ0c1xcXFwvXFxcXGluY29tZXMnKSxcclxuICBDSEFSVFNfRVhQRU5TRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2NoYXJ0c1xcXFwvXFxcXGV4cGVuc2VzJyksXHJcbiAgQ0hBUlRfQUNDT1VOVFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2NoYXJ0LWFjY291bnRzJyksXHJcbiAgQ0xJRU5UU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvY2xpZW50cycpLFxyXG4gIENMSUVOVFNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2NsaWVudHMnKSxcclxuICBDTElFTlRTX0VYQ0xVREVfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2NsaWVudHNcXFxcL1xcXFxkK1xcXFwvZXhjbHVkZScpLFxyXG4gIENMSUVOVFNfSU5WSVRFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvY2xpZW50c1xcXFwvXFxcXGludml0ZXMnKSxcclxuICBDTElFTlRTX0lOVklURVNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvY2xpZW50c1xcXFwvXFxcXGludml0ZXMnKSxcclxuICBDTElFTlRTX0lOVklURVNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL2NsaWVudHNcXFxcL1xcXFxpbnZpdGVzXFxcXC9cXFxcZCsnKSxcclxuICBDTElFTlRTX0lOVklURVNfQUNDRVBUX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2NsaWVudHNcXFxcL1xcXFxpbnZpdGVzXFxcXC9cXFxcZCtcXFxcL2FjY2VwdCcpLFxyXG4gIENMSUVOVFNfSU5WSVRFU19SRUpFQ1RfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvY2xpZW50c1xcXFwvXFxcXGludml0ZXNcXFxcL1xcXFxkK1xcXFwvcmVqZWN0JyksXHJcbiAgQ0xJRU5UU19JTlZJVEVTX1JFU0VORF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9jbGllbnRzXFxcXC9cXFxcaW52aXRlc1xcXFwvXFxcXGQrXFxcXC9yZXNlbmQnKSxcclxuICBDTElFTlRfTU9WRU1FTlRTX0NMT1NFOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2NsaWVudC1tb3ZlbWVudHNcXFxcL1xcXFxkK1xcXFwvY2xvc2UnKSxcclxuICBDTElFTlRfTU9WRU1FTlRTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9jbGllbnQtbW92ZW1lbnRzJyksXHJcbiAgQ0xJRU5UX01PVkVNRU5UU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9jbGllbnQtbW92ZW1lbnRzJyksXHJcbiAgQ0xJRU5UX0lOQ09NRV9UWVBFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9jbGllbnQtaW5jb21lLXR5cGVzJyksXHJcbiAgQ09VTlRSSUVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9jb3VudHJpZXMnKSxcclxuICBDT1JFTE9HSUNfVE9LRU5fR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICcvYWNjZXNzXFxcXC9vYXV0aFxcXFwvdG9rZW4uKiQnKSxcclxuXHJcbiAgREVQUkVDSUFUSU9OU19PUEVOSU5HX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9kZXByZWNpYXRpb25zXFxcXC9cXFxcb3BlbmluZy1iYWxhbmNlXFwuXFwqJyksXHJcbiAgREVQUkVDSUFUSU9OU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvZGVwcmVjaWF0aW9ucycpLFxyXG4gIERFUFJFQ0lBVElPTlNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZGVwcmVjaWF0aW9ucycpLFxyXG4gIERFUFJFQ0lBVElPTlNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2RlcHJlY2lhdGlvbnNcXFxcL1xcXFxkKycpLFxyXG4gIERFUFJFQ0lBVElPTlNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL2RlcHJlY2lhdGlvbnNcXFxcL1xcXFxkKycpLFxyXG4gIERFUFJFQ0lBVElPTl9SRUNFSVBUU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9kZXByZWNpYXRpb25zXFxcXC9cXFxcZCtcXFxcL3JlY2VpcHRzJyksXHJcbiAgREVQUkVDSUFUSU9OX1JFQ0VJUFRTX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9kZXByZWNpYXRpb25zXFxcXC9cXFxcZCtcXFxcL3JlY2VpcHRzXFxcXC9cXFxcZCsnKSxcclxuXHJcbiAgRU1QTE9ZRUVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9lbXBsb3llZXMnKSxcclxuICBFTVBMT1lFRVNfSU5WSVRFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvZW1wbG95ZWVzXFxcXC9cXFxcaW52aXRlcycpLFxyXG4gIEVNUExPWUVFU19JTlZJVEVTX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9lbXBsb3llZXNcXFxcL1xcXFxpbnZpdGVzXFxcXC9cXFxcZCsnKSxcclxuICBFTVBMT1lFRVNfSU5WSVRFX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2VtcGxveWVlc1xcXFwvXFxcXGludml0ZXMnKSxcclxuICBFTVBMT1lFRVNfSU5WSVRFU19SRUpFQ1RfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZW1wbG95ZWVzXFxcXC9cXFxcaW52aXRlc1xcXFwvXFxcXGQrXFxcXC9cXFxccmVqZWN0JyksXHJcbiAgRU1QTE9ZRUVTX0lOVklURVNfUkVTRU5EX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2VtcGxveWVlc1xcXFwvXFxcXGludml0ZXNcXFxcL1xcXFxkK1xcXFwvXFxcXHJlc2VuZCcpLFxyXG5cclxuICBGQUNFQk9PS19MT0dJTl9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC91c2Vyc1xcXFwvYXV0aGVudGljYXRpb25cXFxcL2ZhY2Vib29rJyksXHJcbiAgRklSTV9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvZmlybXMnKSxcclxuICBGSVJNX0NVUlJFTlRfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2Zpcm1zXFxcXC9jdXJyZW50JyksXHJcbiAgRklSTV9DVVJSRU5UX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9maXJtc1xcXFwvY3VycmVudFxcLlxcKicpLFxyXG4gIEZJUk1fSU5WSVRFX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2Zpcm1zXFxcXC9pbnZpdGUnKSxcclxuICBGSVJNX1JFR0lTVFJBVElPTl9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9maXJtc1xcXFwvcmVnaXN0cmF0aW9uJyksXHJcbiAgRklSTV9VUERBVEVfUEhPVE9fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZmlybXNcXFxcL3Bob3RvXFwuXFwqJyksXHJcbiAgRk9MREVSU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvZm9sZGVycycpLFxyXG4gIEZPTERFUlNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZm9sZGVycycpLFxyXG4gIEZPTERFUlNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2ZvbGRlcnNcXFxcL1xcXFxkKycpLFxyXG4gIEZPTERFUlNfRE9DVU1FTlRTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2ZvbGRlcnNcXFxcL1xcXFxkK1xcXFwvZG9jdW1lbnRzJyksXHJcbiAgRk9MREVSU19ET0NVTUVOVFNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2ZvbGRlcnNcXFxcL1xcXFxkK1xcXFwvZG9jdW1lbnRzXFxcXC9cXFxcZCsnKSxcclxuXHJcbiAgSU5DT01FX1NPVVJDRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2luY29tZS1zb3VyY2VzJyksXHJcbiAgSU5DT01FX1NPVVJDRVNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvaW5jb21lLXNvdXJjZXMnKSxcclxuICBJTkNPTUVfU09VUkNFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvaW5jb21lLXNvdXJjZXMnKSxcclxuICBJTkNPTUVfU09VUkNFU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvaW5jb21lLXNvdXJjZXNcXFxcL1xcXFxkKycpLFxyXG4gIElOQ09NRV9TT1VSQ0VfRk9SRUNBU1RfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2luY29tZS1zb3VyY2UtZm9yZWNhc3RzJyksXHJcbiAgSU5DT01FX1NPVVJDRV9GT1JFQ0FTVF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9pbmNvbWUtc291cmNlLWZvcmVjYXN0cycpLFxyXG4gIElOQ09NRV9TT1VSQ0VfRk9SRUNBU1RfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2luY29tZS1zb3VyY2UtZm9yZWNhc3RzJyksXHJcbiAgSU5DT01FX1NPVVJDRV9GT1JFQ0FTVF9ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvaW5jb21lLXNvdXJjZS1mb3JlY2FzdHNcXFxcL1xcXFxkKycpLFxyXG4gIElOQ09NRV9TT1VSQ0VfVFlQRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2luY29tZS1zb3VyY2UtdHlwZXMnKSxcclxuXHJcbiAgTE9BTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2JhbmstYWNjb3VudHNcXFxcL2xvYW5zJyksXHJcbiAgTE9BTlNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvYmFuay1hY2NvdW50c1xcXFwvbG9hbnMnKSxcclxuICBMT0FOU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvYmFuay1hY2NvdW50c1xcXFwvbG9hbnMvXFxcXGQrJyksXHJcbiAgTE9BTlNfUEFZT1VUX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2xvYW5zXFxcXC9cXFxcZCtcXFxcL3BheW91dCcpLFxyXG4gIExPQU5TX1BBWU9VVF9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvbG9hbnNcXFxcL1xcXFxkK1xcXFwvcGF5b3V0XFxcXC9cXFxcZCsnKSxcclxuICBMT0FOU19QQVlPVVRfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL2xvYW5zXFxcXC9cXFxcZCtcXFxcL3BheW91dFxcXFwvXFxcXGQrJyksXHJcbiAgTE9BTlNfQ0FMQ1VMQVRJT05fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvYmFuay1hY2NvdW50c1xcXFwvbG9hbnNcXFxcL2NhbGN1bGF0aW9uJyksXHJcbiAgTE9HSU5fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvbG9naW4nKSxcclxuXHJcbiAgTk9USUZJQ0FUSU9OU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc2VydmljZS1ub3RpZmljYXRpb25zJyksXHJcblxyXG4gIE9DQ1VQQVRJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9vY2N1cGF0aW9ucycpLFxyXG5cclxuICBQUk9QRVJUSUVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9wcm9wZXJ0aWVzJyksXHJcbiAgUFJPUEVSVElFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9wcm9wZXJ0aWVzJyksXHJcbiAgUFJPUEVSVFlfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3Byb3BlcnRpZXMvXFxcXGQrJyksXHJcbiAgUFJPUEVSVFlfU1VCU0NSSVBUSU9OU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvcHJvcGVydHktc3Vic2NyaXB0aW9uc1xcXFwvXFxcXGQrJyksXHJcbiAgUFJPUEVSVFlfU1VCU0NSSVBUSU9OU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvcHJvcGVydHktc3Vic2NyaXB0aW9uc1xcXFwvXFxcXGQrJyksXHJcbiAgUFJPUEVSVElFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvcHJvcGVydGllcycpLFxyXG4gIFBST1BFUlRJRVNfQ0FURUdPUklFU19FUVVJVFlfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL2NhdGVnb3JpZXNcXFxcL2VxdWl0eScpLFxyXG4gIFBST1BFUlRJRVNfQ0FURUdPUklFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvY2F0ZWdvcmllcycpLFxyXG4gIFBST1BFUlRJRVNfQ0FURUdPUklFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvY2F0ZWdvcmllc1xcXFwvXFxcXGQrJyksXHJcbiAgUFJPUEVSVElFU19DQVRFR09SSUVTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL2NhdGVnb3JpZXMnKSxcclxuICBQUk9QRVJUSUVTX0NBVEVHT1JJRVNfTU9WRU1FTlRTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9cXFxcZCtcXFxcL2NhdGVnb3J5LW1vdmVtZW50cycpLFxyXG4gIFBST1BFUlRJRVNfQ0FURUdPUllfTU9WRU1FTlRTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL1xcXFxkK1xcXFwvY2F0ZWdvcnktbW92ZW1lbnRzJyksXHJcbiAgUFJPUEVSVElFU19DQVRFR09SWV9NT1ZFTUVOVFNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL1xcXFxkK1xcXFwvY2F0ZWdvcnktbW92ZW1lbnRzXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX1NIQVJFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvc2hhcmVzXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX1NIQVJFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvc2hhcmVzJyksXHJcbiAgUFJPUEVSVElFU19TSEFSRVNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvc2hhcmVzJyksXHJcbiAgUFJPUEVSVElFU19ERUFDVElWQVRFX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9cXFxcZCtcXFxcL2RlYWN0aXZhdGUnKSxcclxuICBQUk9QRVJUSUVTX0RFUFJFQ0lBVElPTl9DQVBJVEFMX1BST0pFQ1RfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL1xcXFxkK1xcXFwvZGVwcmVjaWF0aW9uLWNhcGl0YWwtcHJvamVjdHMnKSxcclxuICBQUk9QRVJUSUVTX0RFUFJFQ0lBVElPTl9DQVBJVEFMX1BST0pFQ1RfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC9kZXByZWNpYXRpb24tY2FwaXRhbC1wcm9qZWN0cycpLFxyXG4gIFBST1BFUlRJRVNfREVQUkVDSUFUSU9OX0NBUElUQUxfUFJPSkVDVF9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC9kZXByZWNpYXRpb24tY2FwaXRhbC1wcm9qZWN0c1xcXFwvXFxcXGQrJyksXHJcbiAgUFJPUEVSVElFU19ERVBSRUNJQVRJT05fQ0FQSVRBTF9QUk9KRUNUX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9cXFxcZCtcXFxcL2RlcHJlY2lhdGlvbi1jYXBpdGFsLXByb2plY3RzXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX0RPQ1VNRU5UU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvZG9jdW1lbnRzJyksXHJcbiAgUFJPUEVSVElFU19ET0NVTUVOVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC9kb2N1bWVudHMnKSxcclxuICBQUk9QRVJUSUVTX0RPQ1VNRU5UU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvZG9jdW1lbnRzXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX0RPQ1VNRU5UU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvZG9jdW1lbnRzXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX1BIT1RPX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL1xcXFxkK1xcXFwvcGhvdG9cXC5cXConKSxcclxuICBQUk9QRVJUSUVTX1NBTEVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9zYWxlcycpLFxyXG4gIFBST1BFUlRJRVNfU1VHR0VTVElPTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICcvcHJvcGVydHlcXFxcL1xcXFx3K1xcXFwvdjJcXFxcLy4qJCcpLFxyXG4gIFBST1BFUlRJRVNfVkFMVUFUSU9OU19ET0NVTUVOVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC92YWx1YXRpb25zXFxcXC9cXFxcZCtcXFxcL2RvY3VtZW50cycpLFxyXG5cclxuICAvLyBAVE9ETyByZW5hbWVcclxuICBQUk9SQVRJT05fQ09TVF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3NlcnZpY2Utc3Vic2NyaXB0aW9uc1xcXFwvXFxcXGQrXFxcXC9wcm9yYXRpb24tY29zdCcpLFxyXG5cclxuICBTQUxBUllfRk9SRUNBU1RfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NhbGFyeS1mb3JlY2FzdHMnKSxcclxuICBTQUxBUllfRk9SRUNBU1RfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvc2FsYXJ5LWZvcmVjYXN0cycpLFxyXG4gIFNBTEFSWV9GT1JFQ0FTVF9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc2FsYXJ5LWZvcmVjYXN0cycpLFxyXG4gIFNFUlZJQ0VfUFJJQ0VTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zZXJ2aWNlLXByaWNlcycpLFxyXG4gIFNFUlZJQ0VfUFJPRFVDVFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NlcnZpY2UtcHJvZHVjdHMnKSxcclxuICBTRVJWSUNFX1BBWU1FTlRTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zZXJ2aWNlLXBheW1lbnRzJyksXHJcbiAgU0VSVklDRV9TVUJTQ1JJUFRJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zZXJ2aWNlLXN1YnNjcmlwdGlvbnMnKSxcclxuICBTRVJWSUNFX1NVQlNDUklQVElPTlNfQ0FOQ0VMOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3NlcnZpY2Utc3Vic2NyaXB0aW9uc1xcXFwvXFxcXGQrXFxcXC9jYW5jZWwnKSxcclxuICBTRVJWSUNFX1NVQlNDUklQVElPTlNfUkVORVc6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc2VydmljZS1zdWJzY3JpcHRpb25zXFxcXC9cXFxcZCtcXFxcL3JlbmV3YWwnKSxcclxuICBTRVJWSUNFX1BBWU1FTlRfSU5WT0lDRV9VUkxfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NlcnZpY2UtcGF5bWVudHNcXFxcL1xcXFxkK1xcXFwvaW52b2ljZS11cmwnKSxcclxuICBTVUJTQ1JJUFRJT05fSVRFTVNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3NlcnZpY2Utc3Vic2NyaXB0aW9uc1xcXFwvXFxcXGQrXFxcXC9pdGVtcycpLFxyXG5cclxuICBTT0xFX0JVU0lORVNTRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NvbGUtYnVzaW5lc3NlcycpLFxyXG4gIFNPTEVfQlVTSU5FU1NFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWJ1c2luZXNzZXMnKSxcclxuICBTT0xFX0JVU0lORVNTRVNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3NvbGUtYnVzaW5lc3Nlc1xcXFwvXFxcXGQrJyksXHJcbiAgU09MRV9CVVNJTkVTU19MT1NTRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NvbGUtYnVzaW5lc3MtbG9zc2VzJyksXHJcbiAgU09MRV9CVVNJTkVTU19MT1NTRVNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvc29sZS1idXNpbmVzcy1sb3NzZXMnKSxcclxuICBTT0xFX0JVU0lORVNTX0xPU1NFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1idXNpbmVzcy1sb3NzZXNcXFxcL1xcXFxkKycpLFxyXG4gIFNPTEVfQlVTSU5FU1NfTE9TU19PRkZTRVRfUlVMRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NvbGUtYnVzaW5lc3MtbG9zcy1vZmZzZXQtcnVsZXMnKSxcclxuICBTT0xFX0JVU0lORVNTX0xPR09fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvc29sZS1idXNpbmVzc2VzXFxcXC9cXFxcZCtcXFxcL2xvZ28nKSxcclxuXHJcbiAgU09MRV9DT05UQUNUU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc29sZS1jb250YWN0cycpLFxyXG4gIFNPTEVfQ09OVEFDVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvc29sZS1jb250YWN0cycpLFxyXG4gIFNPTEVfQ09OVEFDVFNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3NvbGUtY29udGFjdHNcXFxcL1xcXFxkKycpLFxyXG5cclxuICBCVVNJTkVTU19BQ1RJVklUSUVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zb2xlLWJ1c2luZXNzLWFjdGl2aXRpZXMnKSxcclxuXHJcbiAgU09MRV9ERVBSRUNJQVRJT05fTUVUSE9EU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc29sZS1kZXByZWNpYXRpb24tbWV0aG9kcycpLFxyXG4gIFNPTEVfREVQUkVDSUFUSU9OX01FVEhPRFNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3NvbGUtZGVwcmVjaWF0aW9uLW1ldGhvZHNcXFxcL1xcXFxkKycpLFxyXG5cclxuICBTT0xFX0RFVEFJTFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NvbGUtZGV0YWlscycpLFxyXG4gIFNPTEVfREVUQUlMU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1kZXRhaWxzXFxcXC9cXFxcZCsnKSxcclxuXHJcbiAgU09MRV9GT1JFQ0FTVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvc29sZS1mb3JlY2FzdHMnKSxcclxuICBTT0xFX0ZPUkVDQVNUU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1mb3JlY2FzdHNcXFxcL1xcXFxkKycpLFxyXG5cclxuICBTT0xFX0lOVk9JQ0VTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zb2xlLWludm9pY2VzJyksXHJcbiAgU09MRV9JTlZPSUNFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWludm9pY2VzJyksXHJcbiAgU09MRV9JTlZPSUNFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1pbnZvaWNlc1xcXFwvXFxcXGQrJyksXHJcbiAgU09MRV9JTlZPSUNFU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvc29sZS1pbnZvaWNlc1xcXFwvXFxcXGQrJyksXHJcbiAgU09MRV9JTlZPSUNFU19FTUFJTF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWludm9pY2VzXFxcXC9cXFxcZCtcXFxcL3NlbmQnKSxcclxuICBTT0xFX0lOVk9JQ0VfVEVNUExBVEVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zb2xlLWludm9pY2UtdGVtcGxhdGVzJyksXHJcbiAgU09MRV9JTlZPSUNFX1RFTVBMQVRFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWludm9pY2UtdGVtcGxhdGVzJyksXHJcbiAgU09MRV9JTlZPSUNFX1RFTVBMQVRFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1pbnZvaWNlLXRlbXBsYXRlc1xcXFwvXFxcXGQrJyksXHJcbiAgU09MRV9JTlZPSUNFX1RFTVBMQVRFU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvc29sZS1pbnZvaWNlLXRlbXBsYXRlc1xcXFwvXFxcXGQrJyksXHJcblxyXG4gIFRBWF9FWEVNUFRJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC90YXgtZXhlbXB0aW9ucycpLFxyXG5cclxuICBUQVhfQ0FMQ1VMQVRJT05fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdGF4LWNhbGN1bGF0aW9uJyksXHJcbiAgVEFYX1JFVklFV1NfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3RheC1yZXZpZXdzJyksXHJcbiAgVEFYX1JFVklFV1NfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3RheC1yZXZpZXdzXFxcXC9cXFxcZCsnKSxcclxuICBUQVhfUkVWSUVXU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC90YXgtcmV2aWV3cycpLFxyXG4gIFRBWF9SRVZJRVdTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC90YXgtcmV2aWV3c1xcXFwvXFxcXGQrJyksXHJcbiAgVEFYX1NVTU1BUllfQUNUVUFMX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC90YXgtc3VtbWFyeVxcXFwvYWN0dWFscycpLFxyXG4gIFRBWF9TVU1NQVJZX0ZPUkVDQVNUX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC90YXgtc3VtbWFyeVxcXFwvZm9yZWNhc3RzJyksXHJcbiAgVFJBTlNBQ1RJT05fREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3RyYW5zYWN0aW9uc1xcXFwvXFxcXGQrJyksXHJcbiAgVFJBTlNBQ1RJT05fUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3RyYW5zYWN0aW9uc1xcXFwvXFxcXGQrJyksXHJcbiAgVFJBTlNBQ1RJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC90cmFuc2FjdGlvbnMnKSxcclxuICBUUkFOU0FDVElPTlNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdHJhbnNhY3Rpb25zJyksXHJcbiAgVFJBTlNBQ1RJT05TX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC90cmFuc2FjdGlvbnMnKSxcclxuICBUUkFOU0FDVElPTlNfQUxMT0NBVElPTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3RyYW5zYWN0aW9ucy1hbGxvY2F0aW9ucycpLFxyXG4gIFRSQU5TQUNUSU9OU19BTExPQ0FUSU9OU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC90cmFuc2FjdGlvbnMtYWxsb2NhdGlvbnMnKSxcclxuICBUUkFOU0FDVElPTlNfQUxMT0NBVElPTlNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3RyYW5zYWN0aW9ucy1hbGxvY2F0aW9uc1xcXFwvXFxcXGQrJyksXHJcbiAgVFJBTlNBQ1RJT05fUkVDRUlQVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdHJhbnNhY3Rpb25zXFxcXC9cXFxcZCtcXFxcL3JlY2VpcHRzJyksXHJcbiAgVFJBTlNBQ1RJT05fUkVDRUlQVFNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3RyYW5zYWN0aW9uc1xcXFwvXFxcXGQrXFxcXC9yZWNlaXB0c1xcXFwvXFxcXGQrJyksXHJcblxyXG4gIFVTRVJfQ09ORklSTUFUSU9OX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3VzZXJzXFxcXC9jb25maXJtYXRpb24nKSxcclxuICBVU0VSX0NPTkZJUk1BVElPTl9SRVNFTkRfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdXNlcnNcXFxcL2NvbmZpcm1hdGlvblxcXFwvcmVzZW5kJyksXHJcbiAgVVNFUl9DVVJSRU5UX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC91c2Vyc1xcXFwvY3VycmVudCcpLFxyXG4gIFVTRVJfQ1VSUkVOVF9QQVNTV09SRF9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvdXNlcnNcXFxcL2N1cnJlbnRcXFxcL3Bhc3N3b3JkXFwuXFwqJyksXHJcbiAgVVNFUl9FVkVOVF9TRVRUSU5HU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvdXNlci1ldmVudC1zZXR0aW5ncycpLFxyXG4gIFVTRVJfRVZFTlRfVFlQRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3VzZXItZXZlbnQtdHlwZXMnKSxcclxuICBVU0VSX0lOVklURV9ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvdXNlcnNcXFxcL2ludml0ZVxcXFwvXFxcXGQrJyksXHJcbiAgVVNFUl9JTlZJVEVfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdXNlcnNcXFxcL2ludml0ZScpLFxyXG4gIFVTRVJfSU5WSVRFX1JFU0VORF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC91c2Vyc1xcXFwvaW52aXRlL1xcXFxkK1xcXFwvcmVzZW5kJyksXHJcbiAgVVNFUl9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvdXNlcnNcXFxcL1xcXFxkKycpLFxyXG4gIFVTRVJfUkVHSVNUUkFUSU9OX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3VzZXJzXFxcXC9yZWdpc3RyYXRpb24nKSxcclxuICBVU0VSX1JFU0VUX1BBU1NXT1JEX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC91c2Vyc1xcXFwvcmVzZXQtcGFzc3dvcmQnKSxcclxuICBVU0VSX1NFQVJDSF9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvdXNlcnNcXFxcL3NlYXJjaFxcLlxcKicpLFxyXG4gIFVTRVJfVVBEQVRFX1BIT1RPX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3VzZXJzXFxcXC9waG90b1xcLlxcKicpLFxyXG4gIFVTRVJfU1RBVFVTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC91c2Vyc1xcXFwvc3RhdHVzJyksXHJcblxyXG4gIFZFSElDTEVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC92ZWhpY2xlcycpLFxyXG4gIFZFSElDTEVTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3ZlaGljbGVzJyksXHJcbiAgVkVISUNMRVNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3ZlaGljbGVzXFxcXC9cXFxcZCsnKSxcclxuICBWRUhJQ0xFX0NMQUlNU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvdmVoaWNsZS1jbGFpbXMnKSxcclxuICBWRUhJQ0xFX0NMQUlNU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC92ZWhpY2xlLWNsYWltcycpLFxyXG4gIFZFSElDTEVfQ0xBSU1TX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC92ZWhpY2xlLWNsYWltc1xcXFwvXFxcXGQrJyksXHJcbiAgVkVISUNMRV9MT0dCT09LU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvdmVoaWNsZXNcXFxcL2xvZ2Jvb2tzJyksXHJcbiAgVkVISUNMRV9MT0dCT09LU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC92ZWhpY2xlc1xcXFwvbG9nYm9va3MnKSxcclxuICBWRUhJQ0xFX0xPR0JPT0tTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC92ZWhpY2xlc1xcXFwvbG9nYm9va3NcXFxcL1xcXFxkKycpLFxyXG4gIFZFSElDTEVfTE9HQk9PS1NfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3ZlaGljbGVzXFxcXC9sb2dib29rc1xcXFwvXFxcXGQrJyksXHJcbiAgVkVISUNMRV9DTEFJTV9ERVRBSUxTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC92ZWhpY2xlLWNsYWltLWRldGFpbHMnKSxcclxuICBWRUhJQ0xFX0NMQUlNX0RFVEFJTFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdmVoaWNsZS1jbGFpbS1kZXRhaWxzJyksXHJcbiAgVkVISUNMRV9DTEFJTV9ERVRBSUxTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC92ZWhpY2xlLWNsYWltLWRldGFpbHNcXFxcL1xcXFxkKycpLFxyXG59O1xyXG4iXX0=
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnRzLmNvbnN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9lbmRwb2ludC9lbmRwb2ludHMuY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQThCO0lBQ2xELFVBQVUsRUFBRSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUseUJBQXlCLENBQUM7SUFFMUQsU0FBUyxFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUM7SUFDMUMsaUJBQWlCLEVBQUUsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLGtCQUFrQixDQUFDO0lBQzFELGtCQUFrQixFQUFFLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQztJQUM1RCxpQkFBaUIsRUFBRSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUseUJBQXlCLENBQUM7SUFDakUsb0JBQW9CLEVBQUUsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDO0lBQ2pFLG9CQUFvQixFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxxQkFBcUIsQ0FBQztJQUNoRSxxQkFBcUIsRUFBRSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsc0JBQXNCLENBQUM7SUFDbEUsd0JBQXdCLEVBQUUsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUFDO0lBQy9FLDZCQUE2QixFQUFFLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxzQ0FBc0MsQ0FBQztJQUMzRixrQkFBa0IsRUFBRSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUscUJBQXFCLENBQUM7SUFDOUQsZUFBZSxFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxtQkFB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LENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRwb2ludCB9IGZyb20gJy4vZW5kcG9pbnQnO1xyXG5cclxuLyoqXHJcbiAqIExpc3Qgb2YgYWxsIGFwcCBlbmRwb2ludHNcclxuICogQFRPRE8gQWxleC9WaWs6IENyZWF0ZSBzb21lIHNtYXJ0IHN5c3RlbSBmb3IgcHJlbG9hZGVyIGVuZHBvaW50cy5cclxuICovXHJcbmV4cG9ydCBjb25zdCBFTkRQT0lOVFM6IHtba2V5OiBzdHJpbmddOiBFbmRwb2ludH0gPSB7XHJcbiAgQVNTRVRTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9hc3NldHNcXFxcL1xcLlxcKlxcXFwvXFxcXGQrJyksXHJcblxyXG4gIEJBTktTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9iYW5rcycpLFxyXG4gIEJBTktfQUNDT1VOVFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2JhbmstYWNjb3VudHMnKSxcclxuICBCQU5LX0FDQ09VTlRTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2JhbmstYWNjb3VudHMnKSxcclxuICBCQU5LX0FDQ09VTlRTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9iYW5rLWFjY291bnRzXFxcXC9cXFxcZCsnKSxcclxuICBCQU5LX0NPTk5FQ1RJT05fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvYmFuay1jb25uZWN0aW9ucycpLFxyXG4gIEJBTktfQ09OTkVDVElPTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2JhbmstY29ubmVjdGlvbnMnKSxcclxuICBCQU5LX1RSQU5TQUNUSU9OU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvYmFuay10cmFuc2FjdGlvbnMnKSxcclxuICBCQU5LX1RSQU5TQUNUSU9OU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvYmFuay10cmFuc2FjdGlvbnNcXFxcL1xcXFxkKycpLFxyXG4gIEJBTktfVFJBTlNBQ1RJT05TX0lNUE9SVF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9iYW5rLXRyYW5zYWN0aW9uc1xcXFwvXFxcXGQrXFxcXC9pbXBvcnQnKSxcclxuICBCQVNJUV9BQ0NPVU5UU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvYmFzaXFcXFxcL2FjY291bnRzJyksXHJcbiAgQkFTSVFfVE9LRU5fR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2Jhc2lxXFxcXC90b2tlbnMnKSxcclxuXHJcbiAgQk9SUk9XSU5HX0VYUEVOU0VTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9ib3Jyb3dpbmctZXhwZW5zZXMnKSxcclxuXHJcbiAgQ0hBUlRTX0lOQ09NRV9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvY2hhcnRzXFxcXC9cXFxcaW5jb21lcycpLFxyXG4gIENIQVJUU19FWFBFTlNFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvY2hhcnRzXFxcXC9cXFxcZXhwZW5zZXMnKSxcclxuICBDSEFSVF9BQ0NPVU5UU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvY2hhcnQtYWNjb3VudHMnKSxcclxuICBDTElFTlRTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9jbGllbnRzJyksXHJcbiAgQ0xJRU5UU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvY2xpZW50cycpLFxyXG4gIENMSUVOVFNfRVhDTFVERV9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvY2xpZW50c1xcXFwvXFxcXGQrXFxcXC9leGNsdWRlJyksXHJcbiAgQ0xJRU5UU19JTlZJVEVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9jbGllbnRzXFxcXC9cXFxcaW52aXRlcycpLFxyXG4gIENMSUVOVFNfSU5WSVRFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9jbGllbnRzXFxcXC9cXFxcaW52aXRlcycpLFxyXG4gIENMSUVOVFNfSU5WSVRFU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvY2xpZW50c1xcXFwvXFxcXGludml0ZXNcXFxcL1xcXFxkKycpLFxyXG4gIENMSUVOVFNfSU5WSVRFU19BQ0NFUFRfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvY2xpZW50c1xcXFwvXFxcXGludml0ZXNcXFxcL1xcXFxkK1xcXFwvYWNjZXB0JyksXHJcbiAgQ0xJRU5UU19JTlZJVEVTX1JFSkVDVF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9jbGllbnRzXFxcXC9cXFxcaW52aXRlc1xcXFwvXFxcXGQrXFxcXC9yZWplY3QnKSxcclxuICBDTElFTlRTX0lOVklURVNfUkVTRU5EX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2NsaWVudHNcXFxcL1xcXFxpbnZpdGVzXFxcXC9cXFxcZCtcXFxcL3Jlc2VuZCcpLFxyXG4gIENMSUVOVF9NT1ZFTUVOVFNfQ0xPU0U6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvY2xpZW50LW1vdmVtZW50c1xcXFwvXFxcXGQrXFxcXC9jbG9zZScpLFxyXG4gIENMSUVOVF9NT1ZFTUVOVFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2NsaWVudC1tb3ZlbWVudHMnKSxcclxuICBDTElFTlRfTU9WRU1FTlRTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2NsaWVudC1tb3ZlbWVudHMnKSxcclxuICBDTElFTlRfSU5DT01FX1RZUEVTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2NsaWVudC1pbmNvbWUtdHlwZXMnKSxcclxuICBDT1VOVFJJRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2NvdW50cmllcycpLFxyXG4gIENPUkVMT0dJQ19UT0tFTl9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJy9hY2Nlc3NcXFxcL29hdXRoXFxcXC90b2tlbi4qJCcpLFxyXG5cclxuICBERVBSRUNJQVRJT05TX09QRU5JTkdfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2RlcHJlY2lhdGlvbnNcXFxcL1xcXFxvcGVuaW5nLWJhbGFuY2VcXC5cXConKSxcclxuICBERVBSRUNJQVRJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9kZXByZWNpYXRpb25zJyksXHJcbiAgREVQUkVDSUFUSU9OU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9kZXByZWNpYXRpb25zJyksXHJcbiAgREVQUkVDSUFUSU9OU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvZGVwcmVjaWF0aW9uc1xcXFwvXFxcXGQrJyksXHJcbiAgREVQUkVDSUFUSU9OU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvZGVwcmVjaWF0aW9uc1xcXFwvXFxcXGQrJyksXHJcbiAgREVQUkVDSUFUSU9OX1JFQ0VJUFRTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2RlcHJlY2lhdGlvbnNcXFxcL1xcXFxkK1xcXFwvcmVjZWlwdHMnKSxcclxuICBERVBSRUNJQVRJT05fUkVDRUlQVFNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL2RlcHJlY2lhdGlvbnNcXFxcL1xcXFxkK1xcXFwvcmVjZWlwdHNcXFxcL1xcXFxkKycpLFxyXG5cclxuICBFTVBMT1lFRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL2VtcGxveWVlcycpLFxyXG4gIEVNUExPWUVFU19JTlZJVEVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9lbXBsb3llZXNcXFxcL1xcXFxpbnZpdGVzJyksXHJcbiAgRU1QTE9ZRUVTX0lOVklURVNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL2VtcGxveWVlc1xcXFwvXFxcXGludml0ZXNcXFxcL1xcXFxkKycpLFxyXG4gIEVNUExPWUVFU19JTlZJVEVfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZW1wbG95ZWVzXFxcXC9cXFxcaW52aXRlcycpLFxyXG4gIEVNUExPWUVFU19JTlZJVEVTX1JFSkVDVF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9lbXBsb3llZXNcXFxcL1xcXFxpbnZpdGVzXFxcXC9cXFxcZCtcXFxcL1xcXFxyZWplY3QnKSxcclxuICBFTVBMT1lFRVNfSU5WSVRFU19SRVNFTkRfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZW1wbG95ZWVzXFxcXC9cXFxcaW52aXRlc1xcXFwvXFxcXGQrXFxcXC9cXFxccmVzZW5kJyksXHJcblxyXG4gIEZBQ0VCT09LX0xPR0lOX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3VzZXJzXFxcXC9hdXRoZW50aWNhdGlvblxcXFwvZmFjZWJvb2snKSxcclxuICBGSVJNX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9maXJtcycpLFxyXG4gIEZJUk1fQ1VSUkVOVF9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvZmlybXNcXFxcL2N1cnJlbnQnKSxcclxuICBGSVJNX0NVUlJFTlRfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL2Zpcm1zXFxcXC9jdXJyZW50XFwuXFwqJyksXHJcbiAgRklSTV9JTlZJVEVfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZmlybXNcXFxcL2ludml0ZScpLFxyXG4gIEZJUk1fUkVHSVNUUkFUSU9OX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2Zpcm1zXFxcXC9yZWdpc3RyYXRpb24nKSxcclxuICBGSVJNX1VQREFURV9QSE9UT19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9maXJtc1xcXFwvcGhvdG9cXC5cXConKSxcclxuICBGT0xERVJTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9mb2xkZXJzJyksXHJcbiAgRk9MREVSU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9mb2xkZXJzJyksXHJcbiAgRk9MREVSU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvZm9sZGVyc1xcXFwvXFxcXGQrJyksXHJcbiAgRk9MREVSU19ET0NVTUVOVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvZm9sZGVyc1xcXFwvXFxcXGQrXFxcXC9kb2N1bWVudHMnKSxcclxuICBGT0xERVJTX0RPQ1VNRU5UU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvZm9sZGVyc1xcXFwvXFxcXGQrXFxcXC9kb2N1bWVudHNcXFxcL1xcXFxkKycpLFxyXG5cclxuICBJTkNPTUVfU09VUkNFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvaW5jb21lLXNvdXJjZXMnKSxcclxuICBJTkNPTUVfU09VUkNFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9pbmNvbWUtc291cmNlcycpLFxyXG4gIElOQ09NRV9TT1VSQ0VTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9pbmNvbWUtc291cmNlcycpLFxyXG4gIElOQ09NRV9TT1VSQ0VTX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9pbmNvbWUtc291cmNlc1xcXFwvXFxcXGQrJyksXHJcbiAgSU5DT01FX1NPVVJDRV9GT1JFQ0FTVF9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvaW5jb21lLXNvdXJjZS1mb3JlY2FzdHMnKSxcclxuICBJTkNPTUVfU09VUkNFX0ZPUkVDQVNUX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL2luY29tZS1zb3VyY2UtZm9yZWNhc3RzJyksXHJcbiAgSU5DT01FX1NPVVJDRV9GT1JFQ0FTVF9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvaW5jb21lLXNvdXJjZS1mb3JlY2FzdHMnKSxcclxuICBJTkNPTUVfU09VUkNFX0ZPUkVDQVNUX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9pbmNvbWUtc291cmNlLWZvcmVjYXN0c1xcXFwvXFxcXGQrJyksXHJcbiAgSU5DT01FX1NPVVJDRV9UWVBFU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvaW5jb21lLXNvdXJjZS10eXBlcycpLFxyXG5cclxuICBMT0FOU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvYmFuay1hY2NvdW50c1xcXFwvbG9hbnMnKSxcclxuICBMT0FOU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9iYW5rLWFjY291bnRzXFxcXC9sb2FucycpLFxyXG4gIExPQU5TX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9iYW5rLWFjY291bnRzXFxcXC9sb2Fucy9cXFxcZCsnKSxcclxuICBMT0FOU19QQVlPVVRfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvbG9hbnNcXFxcL1xcXFxkK1xcXFwvcGF5b3V0JyksXHJcbiAgTE9BTlNfUEFZT1VUX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9sb2Fuc1xcXFwvXFxcXGQrXFxcXC9wYXlvdXRcXFxcL1xcXFxkKycpLFxyXG4gIExPQU5TX1BBWU9VVF9ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvbG9hbnNcXFxcL1xcXFxkK1xcXFwvcGF5b3V0XFxcXC9cXFxcZCsnKSxcclxuICBMT0FOU19DQUxDVUxBVElPTl9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9iYW5rLWFjY291bnRzXFxcXC9sb2Fuc1xcXFwvY2FsY3VsYXRpb24nKSxcclxuICBMT0dJTl9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9sb2dpbicpLFxyXG5cclxuICBOT1RJRklDQVRJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zZXJ2aWNlLW5vdGlmaWNhdGlvbnMnKSxcclxuXHJcbiAgT0NDVVBBVElPTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL29jY3VwYXRpb25zJyksXHJcblxyXG4gIFBST1BFUlRJRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3Byb3BlcnRpZXMnKSxcclxuICBQUk9QRVJUSUVTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3Byb3BlcnRpZXMnKSxcclxuICBQUk9QRVJUWV9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvcHJvcGVydGllcy9cXFxcZCsnKSxcclxuICBQUk9QRVJUWV9TVUJTQ1JJUFRJT05TX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9wcm9wZXJ0eS1zdWJzY3JpcHRpb25zXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUWV9TVUJTQ1JJUFRJT05TX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9wcm9wZXJ0eS1zdWJzY3JpcHRpb25zXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9wcm9wZXJ0aWVzJyksXHJcbiAgUFJPUEVSVElFU19DQVRFR09SSUVTX0VRVUlUWV9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvY2F0ZWdvcmllc1xcXFwvZXF1aXR5JyksXHJcbiAgUFJPUEVSVElFU19DQVRFR09SSUVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9jYXRlZ29yaWVzJyksXHJcbiAgUFJPUEVSVElFU19DQVRFR09SSUVTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9jYXRlZ29yaWVzXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX0NBVEVHT1JJRVNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvY2F0ZWdvcmllcycpLFxyXG4gIFBST1BFUlRJRVNfQ0FURUdPUklFU19NT1ZFTUVOVFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL1xcXFxkK1xcXFwvY2F0ZWdvcnktbW92ZW1lbnRzJyksXHJcbiAgUFJPUEVSVElFU19DQVRFR09SWV9NT1ZFTUVOVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC9jYXRlZ29yeS1tb3ZlbWVudHMnKSxcclxuICBQUk9QRVJUSUVTX0NBVEVHT1JZX01PVkVNRU5UU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC9jYXRlZ29yeS1tb3ZlbWVudHNcXFxcL1xcXFxkKycpLFxyXG4gIFBST1BFUlRJRVNfU0hBUkVTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9zaGFyZXNcXFxcL1xcXFxkKycpLFxyXG4gIFBST1BFUlRJRVNfU0hBUkVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9zaGFyZXMnKSxcclxuICBQUk9QRVJUSUVTX1NIQVJFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9zaGFyZXMnKSxcclxuICBQUk9QRVJUSUVTX0RFQUNUSVZBVEVfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL1xcXFxkK1xcXFwvZGVhY3RpdmF0ZScpLFxyXG4gIFBST1BFUlRJRVNfREVQUkVDSUFUSU9OX0NBUElUQUxfUFJPSkVDVF9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC9kZXByZWNpYXRpb24tY2FwaXRhbC1wcm9qZWN0cycpLFxyXG4gIFBST1BFUlRJRVNfREVQUkVDSUFUSU9OX0NBUElUQUxfUFJPSkVDVF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9cXFxcZCtcXFxcL2RlcHJlY2lhdGlvbi1jYXBpdGFsLXByb2plY3RzJyksXHJcbiAgUFJPUEVSVElFU19ERVBSRUNJQVRJT05fQ0FQSVRBTF9QUk9KRUNUX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9cXFxcZCtcXFxcL2RlcHJlY2lhdGlvbi1jYXBpdGFsLXByb2plY3RzXFxcXC9cXFxcZCsnKSxcclxuICBQUk9QRVJUSUVTX0RFUFJFQ0lBVElPTl9DQVBJVEFMX1BST0pFQ1RfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3Byb3BlcnRpZXNcXFxcL1xcXFxkK1xcXFwvZGVwcmVjaWF0aW9uLWNhcGl0YWwtcHJvamVjdHNcXFxcL1xcXFxkKycpLFxyXG4gIFBST1BFUlRJRVNfRE9DVU1FTlRTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9kb2N1bWVudHMnKSxcclxuICBQUk9QRVJUSUVTX0RPQ1VNRU5UU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9cXFxcZCtcXFxcL2RvY3VtZW50cycpLFxyXG4gIFBST1BFUlRJRVNfRE9DVU1FTlRTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9kb2N1bWVudHNcXFxcL1xcXFxkKycpLFxyXG4gIFBST1BFUlRJRVNfRE9DVU1FTlRTX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9kb2N1bWVudHNcXFxcL1xcXFxkKycpLFxyXG4gIFBST1BFUlRJRVNfUEhPVE9fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvcHJvcGVydGllc1xcXFwvXFxcXGQrXFxcXC9waG90b1xcLlxcKicpLFxyXG4gIFBST1BFUlRJRVNfU0FMRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3Byb3BlcnRpZXNcXFxcL3NhbGVzJyksXHJcbiAgUFJPUEVSVElFU19TVUdHRVNUSU9OU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJy9wcm9wZXJ0eVxcXFwvXFxcXHcrXFxcXC92MlxcXFwvLiokJyksXHJcbiAgUFJPUEVSVElFU19WQUxVQVRJT05TX0RPQ1VNRU5UU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9wcm9wZXJ0aWVzXFxcXC9cXFxcZCtcXFxcL3ZhbHVhdGlvbnNcXFxcL1xcXFxkK1xcXFwvZG9jdW1lbnRzJyksXHJcblxyXG4gIC8vIEBUT0RPIHJlbmFtZVxyXG4gIFBST1JBVElPTl9DT1NUX1BPU1Q6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc2VydmljZS1zdWJzY3JpcHRpb25zXFxcXC9cXFxcZCtcXFxcL3Byb3JhdGlvbi1jb3N0JyksXHJcblxyXG4gIFNBTEFSWV9GT1JFQ0FTVF9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc2FsYXJ5LWZvcmVjYXN0cycpLFxyXG4gIFNBTEFSWV9GT1JFQ0FTVF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zYWxhcnktZm9yZWNhc3RzJyksXHJcbiAgU0FMQVJZX0ZPUkVDQVNUX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9zYWxhcnktZm9yZWNhc3RzJyksXHJcbiAgU0VSVklDRV9QUklDRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NlcnZpY2UtcHJpY2VzJyksXHJcbiAgU0VSVklDRV9QUk9EVUNUU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc2VydmljZS1wcm9kdWN0cycpLFxyXG4gIFNFUlZJQ0VfUEFZTUVOVFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NlcnZpY2UtcGF5bWVudHMnKSxcclxuICBTRVJWSUNFX1NVQlNDUklQVElPTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NlcnZpY2Utc3Vic2NyaXB0aW9ucycpLFxyXG4gIFNFUlZJQ0VfU1VCU0NSSVBUSU9OU19DQU5DRUw6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc2VydmljZS1zdWJzY3JpcHRpb25zXFxcXC9cXFxcZCtcXFxcL2NhbmNlbCcpLFxyXG4gIFNFUlZJQ0VfU1VCU0NSSVBUSU9OU19SRU5FVzogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC9zZXJ2aWNlLXN1YnNjcmlwdGlvbnNcXFxcL1xcXFxkK1xcXFwvcmVuZXdhbCcpLFxyXG4gIFNFUlZJQ0VfUEFZTUVOVF9JTlZPSUNFX1VSTF9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc2VydmljZS1wYXltZW50c1xcXFwvXFxcXGQrXFxcXC9pbnZvaWNlLXVybCcpLFxyXG4gIFNFUlZJQ0VfUEFZTUVOVF9NRVRIT0RTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zZXJ2aWNlLXBheW1lbnQtbWV0aG9kcycpLFxyXG4gIFNFUlZJQ0VfUEFZTUVOVF9NRVRIT0RTX0RFTEVURTogbmV3IEVuZHBvaW50KCdERUxFVEUnLCAnXFxcXC9zZXJ2aWNlLXBheW1lbnQtbWV0aG9kc1xcXFwvXFxcXGQrJyksXHJcbiAgU0VSVklDRV9QQVlNRU5UX01FVEhPRFNfR0VUX1NFQ1JFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zZXJ2aWNlLXBheW1lbnQtbWV0aG9kc1xcXFwvc2V0dXAtaW50ZW50LXNlY3JldCcpLFxyXG4gIFNFUlZJQ0VfUEFZTUVOVF9NRVRIT0RTX0RFRkFVTFRfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3NlcnZpY2UtcGF5bWVudC1tZXRob2RzXFxcXC9cXFxcZCtcXFxcL2RlZmF1bHQnKSxcclxuICBTVUJTQ1JJUFRJT05fSVRFTVNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3NlcnZpY2Utc3Vic2NyaXB0aW9uc1xcXFwvXFxcXGQrXFxcXC9pdGVtcycpLFxyXG5cclxuICBTT0xFX0JVU0lORVNTRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NvbGUtYnVzaW5lc3NlcycpLFxyXG4gIFNPTEVfQlVTSU5FU1NFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWJ1c2luZXNzZXMnKSxcclxuICBTT0xFX0JVU0lORVNTRVNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3NvbGUtYnVzaW5lc3Nlc1xcXFwvXFxcXGQrJyksXHJcbiAgU09MRV9CVVNJTkVTU19MT1NTRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NvbGUtYnVzaW5lc3MtbG9zc2VzJyksXHJcbiAgU09MRV9CVVNJTkVTU19MT1NTRVNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvc29sZS1idXNpbmVzcy1sb3NzZXMnKSxcclxuICBTT0xFX0JVU0lORVNTX0xPU1NFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1idXNpbmVzcy1sb3NzZXNcXFxcL1xcXFxkKycpLFxyXG4gIFNPTEVfQlVTSU5FU1NfTE9TU19PRkZTRVRfUlVMRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NvbGUtYnVzaW5lc3MtbG9zcy1vZmZzZXQtcnVsZXMnKSxcclxuICBTT0xFX0JVU0lORVNTX0xPR09fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvc29sZS1idXNpbmVzc2VzXFxcXC9cXFxcZCtcXFxcL2xvZ28nKSxcclxuXHJcbiAgU09MRV9DT05UQUNUU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc29sZS1jb250YWN0cycpLFxyXG4gIFNPTEVfQ09OVEFDVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvc29sZS1jb250YWN0cycpLFxyXG4gIFNPTEVfQ09OVEFDVFNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3NvbGUtY29udGFjdHNcXFxcL1xcXFxkKycpLFxyXG5cclxuICBCVVNJTkVTU19BQ1RJVklUSUVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zb2xlLWJ1c2luZXNzLWFjdGl2aXRpZXMnKSxcclxuXHJcbiAgU09MRV9ERVBSRUNJQVRJT05fTUVUSE9EU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvc29sZS1kZXByZWNpYXRpb24tbWV0aG9kcycpLFxyXG4gIFNPTEVfREVQUkVDSUFUSU9OX01FVEhPRFNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3NvbGUtZGVwcmVjaWF0aW9uLW1ldGhvZHNcXFxcL1xcXFxkKycpLFxyXG5cclxuICBTT0xFX0RFVEFJTFNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3NvbGUtZGV0YWlscycpLFxyXG4gIFNPTEVfREVUQUlMU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1kZXRhaWxzXFxcXC9cXFxcZCsnKSxcclxuXHJcbiAgU09MRV9GT1JFQ0FTVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvc29sZS1mb3JlY2FzdHMnKSxcclxuICBTT0xFX0ZPUkVDQVNUU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1mb3JlY2FzdHNcXFxcL1xcXFxkKycpLFxyXG5cclxuICBTT0xFX0lOVk9JQ0VTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zb2xlLWludm9pY2VzJyksXHJcbiAgU09MRV9JTlZPSUNFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWludm9pY2VzJyksXHJcbiAgU09MRV9JTlZPSUNFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1pbnZvaWNlc1xcXFwvXFxcXGQrJyksXHJcbiAgU09MRV9JTlZPSUNFU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvc29sZS1pbnZvaWNlc1xcXFwvXFxcXGQrJyksXHJcbiAgU09MRV9JTlZPSUNFU19FTUFJTF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWludm9pY2VzXFxcXC9cXFxcZCtcXFxcL3NlbmQnKSxcclxuICBTT0xFX0lOVk9JQ0VfVEVNUExBVEVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC9zb2xlLWludm9pY2UtdGVtcGxhdGVzJyksXHJcbiAgU09MRV9JTlZPSUNFX1RFTVBMQVRFU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC9zb2xlLWludm9pY2UtdGVtcGxhdGVzJyksXHJcbiAgU09MRV9JTlZPSUNFX1RFTVBMQVRFU19QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvc29sZS1pbnZvaWNlLXRlbXBsYXRlc1xcXFwvXFxcXGQrJyksXHJcbiAgU09MRV9JTlZPSUNFX1RFTVBMQVRFU19ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvc29sZS1pbnZvaWNlLXRlbXBsYXRlc1xcXFwvXFxcXGQrJyksXHJcblxyXG4gIFRBWF9FWEVNUFRJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC90YXgtZXhlbXB0aW9ucycpLFxyXG5cclxuICBUQVhfQ0FMQ1VMQVRJT05fUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdGF4LWNhbGN1bGF0aW9uJyksXHJcbiAgVEFYX1JFVklFV1NfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3RheC1yZXZpZXdzJyksXHJcbiAgVEFYX1JFVklFV1NfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3RheC1yZXZpZXdzXFxcXC9cXFxcZCsnKSxcclxuICBUQVhfUkVWSUVXU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC90YXgtcmV2aWV3cycpLFxyXG4gIFRBWF9SRVZJRVdTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC90YXgtcmV2aWV3c1xcXFwvXFxcXGQrJyksXHJcbiAgVEFYX1NVTU1BUllfQUNUVUFMX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC90YXgtc3VtbWFyeVxcXFwvYWN0dWFscycpLFxyXG4gIFRBWF9TVU1NQVJZX0ZPUkVDQVNUX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC90YXgtc3VtbWFyeVxcXFwvZm9yZWNhc3RzJyksXHJcbiAgVFJBTlNBQ1RJT05fREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3RyYW5zYWN0aW9uc1xcXFwvXFxcXGQrJyksXHJcbiAgVFJBTlNBQ1RJT05fUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3RyYW5zYWN0aW9uc1xcXFwvXFxcXGQrJyksXHJcbiAgVFJBTlNBQ1RJT05TX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC90cmFuc2FjdGlvbnMnKSxcclxuICBUUkFOU0FDVElPTlNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdHJhbnNhY3Rpb25zJyksXHJcbiAgVFJBTlNBQ1RJT05TX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC90cmFuc2FjdGlvbnMnKSxcclxuICBUUkFOU0FDVElPTlNfQUxMT0NBVElPTlNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3RyYW5zYWN0aW9ucy1hbGxvY2F0aW9ucycpLFxyXG4gIFRSQU5TQUNUSU9OU19BTExPQ0FUSU9OU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC90cmFuc2FjdGlvbnMtYWxsb2NhdGlvbnMnKSxcclxuICBUUkFOU0FDVElPTlNfQUxMT0NBVElPTlNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3RyYW5zYWN0aW9ucy1hbGxvY2F0aW9uc1xcXFwvXFxcXGQrJyksXHJcbiAgVFJBTlNBQ1RJT05fUkVDRUlQVFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdHJhbnNhY3Rpb25zXFxcXC9cXFxcZCtcXFxcL3JlY2VpcHRzJyksXHJcbiAgVFJBTlNBQ1RJT05fUkVDRUlQVFNfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3RyYW5zYWN0aW9uc1xcXFwvXFxcXGQrXFxcXC9yZWNlaXB0c1xcXFwvXFxcXGQrJyksXHJcblxyXG4gIFVTRVJfQ09ORklSTUFUSU9OX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3VzZXJzXFxcXC9jb25maXJtYXRpb24nKSxcclxuICBVU0VSX0NPTkZJUk1BVElPTl9SRVNFTkRfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdXNlcnNcXFxcL2NvbmZpcm1hdGlvblxcXFwvcmVzZW5kJyksXHJcbiAgVVNFUl9DVVJSRU5UX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC91c2Vyc1xcXFwvY3VycmVudCcpLFxyXG4gIFVTRVJfQ1VSUkVOVF9QQVNTV09SRF9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvdXNlcnNcXFxcL2N1cnJlbnRcXFxcL3Bhc3N3b3JkXFwuXFwqJyksXHJcbiAgVVNFUl9FVkVOVF9TRVRUSU5HU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvdXNlci1ldmVudC1zZXR0aW5ncycpLFxyXG4gIFVTRVJfRVZFTlRfVFlQRVNfR0VUOiBuZXcgRW5kcG9pbnQoJ0dFVCcsICdcXFxcL3VzZXItZXZlbnQtdHlwZXMnKSxcclxuICBVU0VSX0lOVklURV9ERUxFVEU6IG5ldyBFbmRwb2ludCgnREVMRVRFJywgJ1xcXFwvdXNlcnNcXFxcL2ludml0ZVxcXFwvXFxcXGQrJyksXHJcbiAgVVNFUl9JTlZJVEVfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdXNlcnNcXFxcL2ludml0ZScpLFxyXG4gIFVTRVJfSU5WSVRFX1JFU0VORF9QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC91c2Vyc1xcXFwvaW52aXRlL1xcXFxkK1xcXFwvcmVzZW5kJyksXHJcbiAgVVNFUl9QVVQ6IG5ldyBFbmRwb2ludCgnUFVUJywgJ1xcXFwvdXNlcnNcXFxcL1xcXFxkKycpLFxyXG4gIFVTRVJfUkVHSVNUUkFUSU9OX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3VzZXJzXFxcXC9yZWdpc3RyYXRpb24nKSxcclxuICBVU0VSX1JFU0VUX1BBU1NXT1JEX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC91c2Vyc1xcXFwvcmVzZXQtcGFzc3dvcmQnKSxcclxuICBVU0VSX1NFQVJDSF9HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvdXNlcnNcXFxcL3NlYXJjaFxcLlxcKicpLFxyXG4gIFVTRVJfVVBEQVRFX1BIT1RPX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3VzZXJzXFxcXC9waG90b1xcLlxcKicpLFxyXG4gIFVTRVJfU1RBVFVTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC91c2Vyc1xcXFwvc3RhdHVzJyksXHJcblxyXG4gIFZFSElDTEVTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC92ZWhpY2xlcycpLFxyXG4gIFZFSElDTEVTX1BPU1Q6IG5ldyBFbmRwb2ludCgnUE9TVCcsICdcXFxcL3ZlaGljbGVzJyksXHJcbiAgVkVISUNMRVNfUFVUOiBuZXcgRW5kcG9pbnQoJ1BVVCcsICdcXFxcL3ZlaGljbGVzXFxcXC9cXFxcZCsnKSxcclxuICBWRUhJQ0xFX0NMQUlNU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvdmVoaWNsZS1jbGFpbXMnKSxcclxuICBWRUhJQ0xFX0NMQUlNU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC92ZWhpY2xlLWNsYWltcycpLFxyXG4gIFZFSElDTEVfQ0xBSU1TX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC92ZWhpY2xlLWNsYWltc1xcXFwvXFxcXGQrJyksXHJcbiAgVkVISUNMRV9MT0dCT09LU19HRVQ6IG5ldyBFbmRwb2ludCgnR0VUJywgJ1xcXFwvdmVoaWNsZXNcXFxcL2xvZ2Jvb2tzJyksXHJcbiAgVkVISUNMRV9MT0dCT09LU19QT1NUOiBuZXcgRW5kcG9pbnQoJ1BPU1QnLCAnXFxcXC92ZWhpY2xlc1xcXFwvbG9nYm9va3MnKSxcclxuICBWRUhJQ0xFX0xPR0JPT0tTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC92ZWhpY2xlc1xcXFwvbG9nYm9va3NcXFxcL1xcXFxkKycpLFxyXG4gIFZFSElDTEVfTE9HQk9PS1NfREVMRVRFOiBuZXcgRW5kcG9pbnQoJ0RFTEVURScsICdcXFxcL3ZlaGljbGVzXFxcXC9sb2dib29rc1xcXFwvXFxcXGQrJyksXHJcbiAgVkVISUNMRV9DTEFJTV9ERVRBSUxTX0dFVDogbmV3IEVuZHBvaW50KCdHRVQnLCAnXFxcXC92ZWhpY2xlLWNsYWltLWRldGFpbHMnKSxcclxuICBWRUhJQ0xFX0NMQUlNX0RFVEFJTFNfUE9TVDogbmV3IEVuZHBvaW50KCdQT1NUJywgJ1xcXFwvdmVoaWNsZS1jbGFpbS1kZXRhaWxzJyksXHJcbiAgVkVISUNMRV9DTEFJTV9ERVRBSUxTX1BVVDogbmV3IEVuZHBvaW50KCdQVVQnLCAnXFxcXC92ZWhpY2xlLWNsYWltLWRldGFpbHNcXFxcL1xcXFxkKycpLFxyXG59O1xyXG4iXX0=
@@ -1,6 +1,8 @@
1
1
  export * from './service-payment';
2
+ export * from './service-payment-method';
2
3
  export * from './service-price';
3
4
  export * from './service-product';
4
5
  export * from './service-subscription';
5
6
  export * from './service-subscription-item';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1wYXltZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1wcmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UtcHJvZHVjdCc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2Utc3Vic2NyaXB0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1zdWJzY3JpcHRpb24taXRlbSc7XG4iXX0=
7
+ export * from './stripe-promo-code';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NlcnZpY2UtcGF5bWVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UtcGF5bWVudC1tZXRob2QnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLXByaWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1wcm9kdWN0JztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1zdWJzY3JpcHRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyaXBlLXByb21vLWNvZGUnO1xuIl19
@@ -0,0 +1,12 @@
1
+ export var PaymentMethodBrandEnum;
2
+ (function (PaymentMethodBrandEnum) {
3
+ PaymentMethodBrandEnum["UNKNOWN"] = "Unknown";
4
+ PaymentMethodBrandEnum["AMEX"] = "American Express";
5
+ PaymentMethodBrandEnum["DINERS"] = "Diners Club";
6
+ PaymentMethodBrandEnum["DISCOVER"] = "Discover";
7
+ PaymentMethodBrandEnum["JCB"] = "JCB";
8
+ PaymentMethodBrandEnum["MASTERCARD"] = "Mastercard";
9
+ PaymentMethodBrandEnum["UNIONPAY"] = "UnionPay";
10
+ PaymentMethodBrandEnum["VISA"] = "Visa";
11
+ })(PaymentMethodBrandEnum || (PaymentMethodBrandEnum = {}));
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1tZXRob2QtYnJhbmQuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvc2VydmljZS1zdWJzY3JpcHRpb24vcGF5bWVudC1tZXRob2QtYnJhbmQuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxzQkFTWDtBQVRELFdBQVksc0JBQXNCO0lBQ2hDLDZDQUFtQixDQUFBO0lBQ25CLG1EQUF5QixDQUFBO0lBQ3pCLGdEQUFzQixDQUFBO0lBQ3RCLCtDQUFxQixDQUFBO0lBQ3JCLHFDQUFXLENBQUE7SUFDWCxtREFBeUIsQ0FBQTtJQUN6QiwrQ0FBcUIsQ0FBQTtJQUNyQix1Q0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQVRXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFTakMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBQYXltZW50TWV0aG9kQnJhbmRFbnVtIHtcbiAgVU5LTk9XTiA9ICdVbmtub3duJyxcbiAgQU1FWCA9ICdBbWVyaWNhbiBFeHByZXNzJyxcbiAgRElORVJTID0gJ0RpbmVycyBDbHViJyxcbiAgRElTQ09WRVIgPSAnRGlzY292ZXInLFxuICBKQ0IgPSAnSkNCJyxcbiAgTUFTVEVSQ0FSRCA9ICdNYXN0ZXJjYXJkJyxcbiAgVU5JT05QQVkgPSAnVW5pb25QYXknLFxuICBWSVNBID0gJ1Zpc2EnLFxufVxuIl19
@@ -0,0 +1,21 @@
1
+ import { ServicePaymentMethod as ServicePaymentMethodBase } from '../../db/Models/subscription/service-payment-method';
2
+ import { PaymentMethodBrandEnum } from './payment-method-brand.enum';
3
+ import { ServicePaymentMethodCardBrandEnum } from '../../db/Enums/subscription/service-payment-method-card-brand.enum';
4
+ export class ServicePaymentMethod extends ServicePaymentMethodBase {
5
+ get logo() {
6
+ return `/assets/img/payment-methods/${this.cardBrand}.svg`;
7
+ }
8
+ get brandName() {
9
+ return PaymentMethodBrandEnum[ServicePaymentMethodCardBrandEnum[this.cardBrand]];
10
+ }
11
+ /**
12
+ * Get expiration date formatted string (MM/YY)
13
+ */
14
+ get expirationDate() {
15
+ return `${('0' + this.cardExpirationMonth).slice(-2)}/${this.cardExpirationYear.toString().slice(-2)}`;
16
+ }
17
+ get description() {
18
+ return `${this.brandName} ***${this.lastFourDigits}`;
19
+ }
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wYXltZW50LW1ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvc2VydmljZS1zdWJzY3JpcHRpb24vc2VydmljZS1wYXltZW50LW1ldGhvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLElBQUksd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN2SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUV2SCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsd0JBQXdCO0lBQ2hFLElBQUksSUFBSTtRQUNOLE9BQU8sK0JBQStCLElBQUksQ0FBQyxTQUFTLE1BQU0sQ0FBQTtJQUM1RCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxzQkFBc0IsQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3pHLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VydmljZVBheW1lbnRNZXRob2QgYXMgU2VydmljZVBheW1lbnRNZXRob2RCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXBheW1lbnQtbWV0aG9kJztcbmltcG9ydCB7IFBheW1lbnRNZXRob2RCcmFuZEVudW0gfSBmcm9tICcuL3BheW1lbnQtbWV0aG9kLWJyYW5kLmVudW0nO1xuaW1wb3J0IHsgU2VydmljZVBheW1lbnRNZXRob2RDYXJkQnJhbmRFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcGF5bWVudC1tZXRob2QtY2FyZC1icmFuZC5lbnVtJztcblxuZXhwb3J0IGNsYXNzIFNlcnZpY2VQYXltZW50TWV0aG9kIGV4dGVuZHMgU2VydmljZVBheW1lbnRNZXRob2RCYXNlIHtcbiAgZ2V0IGxvZ28oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYC9hc3NldHMvaW1nL3BheW1lbnQtbWV0aG9kcy8ke3RoaXMuY2FyZEJyYW5kfS5zdmdgXG4gIH1cblxuICBnZXQgYnJhbmROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFBheW1lbnRNZXRob2RCcmFuZEVudW1bU2VydmljZVBheW1lbnRNZXRob2RDYXJkQnJhbmRFbnVtW3RoaXMuY2FyZEJyYW5kXV07XG4gIH1cblxuICAvKipcbiAgICogR2V0IGV4cGlyYXRpb24gZGF0ZSBmb3JtYXR0ZWQgc3RyaW5nIChNTS9ZWSlcbiAgICovXG4gIGdldCBleHBpcmF0aW9uRGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHsoJzAnICsgdGhpcy5jYXJkRXhwaXJhdGlvbk1vbnRoKS5zbGljZSgtMil9LyR7dGhpcy5jYXJkRXhwaXJhdGlvblllYXIudG9TdHJpbmcoKS5zbGljZSgtMil9YDtcbiAgfVxuXG4gIGdldCBkZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmJyYW5kTmFtZX0gKioqJHt0aGlzLmxhc3RGb3VyRGlnaXRzfWA7XG4gIH1cbn1cbiJdfQ==
@@ -2,11 +2,14 @@ import { __decorate } from "tslib";
2
2
  import { ServiceSubscription as ServiceSubscriptionBase } from '../../db/Models/subscription/service-subscription';
3
3
  import { ServiceSubscriptionItem } from './service-subscription-item';
4
4
  import { UserRolesEnum } from '../../db/Enums/user-roles.enum';
5
- import { Type } from 'class-transformer';
5
+ import { Expose, Type } from 'class-transformer';
6
6
  import { ServiceSubscriptionStatusEnum } from '../../db/Enums/subscription/service-subscription-status.enum';
7
7
  import { ServiceProduct } from './service-product';
8
8
  import { SubscriptionItemCollection } from '../../collections';
9
9
  export class ServiceSubscription extends ServiceSubscriptionBase {
10
+ get promoCodeId() {
11
+ return this.stripePromoCode?.id || null;
12
+ }
10
13
  get frequency() {
11
14
  return this.isAnnual() ? 'year' : 'month';
12
15
  }
@@ -17,7 +20,14 @@ export class ServiceSubscription extends ServiceSubscriptionBase {
17
20
  return !!this.stripeId;
18
21
  }
19
22
  get price() {
20
- return this.items.reduce((sum, item) => sum + item.total, 0);
23
+ const price = this.items.reduce((sum, item) => sum + item.total, 0);
24
+ if (!!this.stripePromoCode) {
25
+ if (this.stripePromoCode.isAmount()) {
26
+ return price - this.stripePromoCode.amountOff;
27
+ }
28
+ return price - price * (this.stripePromoCode.percentOff / 100);
29
+ }
30
+ return price;
21
31
  }
22
32
  /**
23
33
  * get title of subscription
@@ -108,4 +118,7 @@ __decorate([
108
118
  __decorate([
109
119
  Type(() => ServiceSubscriptionItem)
110
120
  ], ServiceSubscription.prototype, "items", void 0);
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLElBQUksdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsdUJBQXVCO0lBVTlELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsSUFBNkIsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUs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cnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uIGFzIFNlcnZpY2VTdWJzY3JpcHRpb25CYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB9IGZyb20gJy4vc2VydmljZS1zdWJzY3JpcHRpb24taXRlbSc7XG5pbXBvcnQgeyBVc2VyUm9sZXNFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdXNlci1yb2xlcy5lbnVtJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uU3RhdHVzRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBTZXJ2aWNlUHJvZHVjdCB9IGZyb20gJy4vc2VydmljZS1wcm9kdWN0JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMnO1xuXG5leHBvcnQgY2xhc3MgU2VydmljZVN1YnNjcmlwdGlvbiBleHRlbmRzIFNlcnZpY2VTdWJzY3JpcHRpb25CYXNlIHtcbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgc3RhcnREYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGVuZERhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pXG4gIGl0ZW1zOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbVtdO1xuXG4gIGdldCBmcmVxdWVuY3koKTogJ21vbnRoJyB8ICd5ZWFyJyB7XG4gICAgcmV0dXJuIHRoaXMuaXNBbm51YWwoKSA/ICd5ZWFyJyA6ICdtb250aCc7XG4gIH1cblxuICBnZXQgaXNUcmlhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc3RyaXBlSWQ7XG4gIH1cblxuICBnZXQgaXNQYWlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuc3RyaXBlSWQ7XG4gIH1cblxuICBnZXQgcHJpY2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSkgPT4gc3VtICsgaXRlbS50b3RhbCwgMCk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHRpdGxlIG9mIHN1YnNjcmlwdGlvblxuICAgKi9cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnByaWNlLnByb2R1Y3QudGl0bGUpLmpvaW4oJyArICcpO1xuICAgIC8vIHJldHVybiB0aGlzLmlzVHJpYWwgPyAnVHJpYWwgcGVyaW9kJyA6IHRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnByaWNlLnByb2R1Y3QudGl0bGUpLmpvaW4oJyArICcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc3Vic2NyaXB0aW9uIGlzIGNvbnNpZGVyZWQgYWN0aXZlIGlmIHRoZSBlbmQgZGF0ZSBoYXMgbm90IHlldCBhcnJpdmVkIGFuZCBpdHMgc3RhdHVzIGlzIFwiQWN0aXZlXCIgb3IgXCJQYXN0IGR1ZVwiXG4gICAqL1xuICBnZXQgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXNFeHBpcmVkOiBib29sZWFuID0gbmV3IERhdGUodGhpcy5lbmREYXRlKS5nZXRUaW1lKCkgPCBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcblxuICAgIHJldHVybiAhaXNFeHBpcmVkICYmIChbU2VydmljZVN1YnNjcmlwdGlvblN0YXR1c0VudW0uQUNUSVZFLCBTZXJ2aWNlU3Vic2NyaXB0aW9uU3RhdHVzRW51bS5QQVNUX0RVRV0uaW5jbHVkZXModGhpcy5zdGF0dXMpKTtcbiAgfVxuXG4gIGlzUmVuZXdhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5pc1RyaWFsICYmIHRoaXMuaXNBY3RpdmU7XG4gIH1cblxuICBnZXRJdGVtcygpOiBTdWJzY3JpcHRpb25JdGVtQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb25JdGVtQ29sbGVjdGlvbih0aGlzLml0ZW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBtb3ZlIHRvIGNvbGxlY3Rpb25cbiAgICovXG4gIGdldCB3b3JrVGFua0l0ZW0oKTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNXb3JrVGFuaygpKTtcbiAgfVxuXG4gIGdldCBzb2xlVGFua0l0ZW0oKTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNTb2xlVGFuaygpKTtcbiAgfVxuXG4gIGdldCBwcm9wZXJ0eVRhbmtJdGVtKCk6IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kKChpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSk6IGJvb2xlYW4gPT4gaXRlbS5wcmljZS5wcm9kdWN0LmlzUHJvcGVydGllcygpKTtcbiAgfVxuXG4gIGhhc1Byb3BlcnR5VGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zLmZpbmQoKHN1YnNjcmlwdGlvbkl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKSA9PiB7XG4gICAgICByZXR1cm4gc3Vic2NyaXB0aW9uSXRlbS5wcmljZS5wcm9kdWN0LnJvbGUuaW5jbHVkZXMoVXNlclJvbGVzRW51bS5QUk9QRVJUWV9UQU5LKTtcbiAgICB9KTtcbiAgfVxuXG4gIGhhc1dvcmtUYW5rKCkge1xuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmluZCgoc3Vic2NyaXB0aW9uSXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBzdWJzY3JpcHRpb25JdGVtLnByaWNlLnByb2R1Y3Qucm9sZS5pbmNsdWRlcyhVc2VyUm9sZXNFbnVtLldPUktfVEFOSyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogYm91Z2h0IGJlZm9yZSBwcmljZSB1cGRhdGVzLCBhY3RpdmUgZm9yIHNvbWUgdGltZSB0byBsZXQgY3VzdG9tZXIgc2VsZWN0IGEgbmV3IHBsYW5cbiAgICogaW1wb3NzaWJsZSB0byB1cGRhdGUsIG9ubHkgcHJvbG9uZyBvciBidXkgbmV3XG4gICAqL1xuICBpc0FyY2hpdmVkKCk6IGJvb2xlYW4ge1xuICAgIC8vIHN1YnNjcmlwdGlvbiB3aXRoIGF0IGxlYXN0IG9uZSBhcmNoaXZlZCBwcm9kdWN0IGNvbnNpZGVyZWQgYXMgYXJjaGl2ZWRcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5wcmljZS5wcm9kdWN0LmlzQXJjaGl2ZWQoKSkubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIENhc2Ugd2hlbiBwYXltZW50IHdhcyBmYWlsZWQsIGJ1dCB1c2VyIGhhcyBhIHRpbWUgdG8gdXBkYXRlIHBheW1lbnQgbWV0aG9kXG4gICAqL1xuICBpc1Bhc3REdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBTZXJ2aWNlU3Vic2NyaXB0aW9uU3RhdHVzRW51bS5QQVNUX0RVRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBjdXJyZW50IHN1YnNjcmlwdGlvbiBoYXMgcHJvdmlkZWQgc3Vic2NyaXB0aW9uIGl0ZW1cbiAgICovXG4gIGhhc0l0ZW0oaXRlbVRvQ2hlY2s6IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtcy5maW5kKChpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSk6IGJvb2xlYW4gPT4gaXRlbS5wcmljZS5pZCA9PT0gaXRlbVRvQ2hlY2sucHJpY2UuaWQpO1xuICB9XG5cbiAgaGFzUHJvZHVjdChwcm9kdWN0OiBTZXJ2aWNlUHJvZHVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pZCA9PT0gcHJvZHVjdC5pZCk7XG4gIH1cblxuICBpc1BhY2thZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubGVuZ3RoID09PSBTZXJ2aWNlUHJvZHVjdC5xdWFudGl0eTtcbiAgfVxuXG4gIGlzQW5udWFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLmdldEl0ZW1zKCkucHJpY2VzLmFubnVhbC5sZW5ndGggfHwgdGhpcy5nZXRJdGVtcygpLnByaWNlcy5hbm51YWxQYWNrYWdlLmxlbmd0aCk7XG4gIH1cblxuICAvKipcbiAgICogUmVjb21tZW5kZWQgbnVtYmVyIG9mIHByb3BlcnRpZXMgdG8gYnV5LFxuICAgKiBiYXNlZCBvbiB0aGUgcHJvcGVydHkgc2VydmljZSBwcm9kdWN0IGFuZCB0aGUgbnVtYmVyIG9mIHByb3BlcnRpZXMgdGhlIHVzZXIgaGFzXG4gICAqL1xuICBnZXRSZWNvbW1lbmRlZFByb3BlcnRpZXNRdHkocHJvcGVydHlJdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSwgcHJvcGVydGllc1F0eTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBtaW46IG51bWJlciA9IHByb3BlcnR5SXRlbS5wcmljZS5wcm9kdWN0Lm1pblF0eTtcblxuICAgIHJldHVybiBNYXRoLm1heChtaW4sIHByb3BlcnRpZXNRdHkpO1xuICB9XG59XG4iXX0=
121
+ __decorate([
122
+ Expose()
123
+ ], ServiceSubscription.prototype, "promoCodeId", null);
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLElBQUksdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHL0QsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHVCQUF1QjtJQWdCOUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE1BQU0sS0FBSyxHQUFX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QUNILDJCQUEyQixDQUFDLFlBQXFDLEVBQUUsYUFBcUI7UUFDdEYsTUFBTSxHQUFHLEdBQVcsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBRXRELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBNUlDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztzREFDRDtBQUdoQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7b0RBQ0g7QUFHZDtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztrREFDSDtBQVFqQztJQURDLE1BQU0sRUFBRTtzREFHUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb24gYXMgU2VydmljZVN1YnNjcmlwdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIH0gZnJvbSAnLi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1pdGVtJztcbmltcG9ydCB7IFVzZXJSb2xlc0VudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy91c2VyLXJvbGVzLmVudW0nO1xuaW1wb3J0IHsgRXhwb3NlLCBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgU2VydmljZVN1YnNjcmlwdGlvblN0YXR1c0VudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24tc3RhdHVzLmVudW0nO1xuaW1wb3J0IHsgU2VydmljZVByb2R1Y3QgfSBmcm9tICcuL3NlcnZpY2UtcHJvZHVjdCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25JdGVtQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IFN0cmlwZVByb21vQ29kZSB9IGZyb20gJy4vc3RyaXBlLXByb21vLWNvZGUnO1xuXG5leHBvcnQgY2xhc3MgU2VydmljZVN1YnNjcmlwdGlvbiBleHRlbmRzIFNlcnZpY2VTdWJzY3JpcHRpb25CYXNlIHtcbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgc3RhcnREYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGVuZERhdGU6IERhdGU7XG5cbiAgQFR5cGUoKCkgPT4gU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pXG4gIGl0ZW1zOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbVtdO1xuXG4gIC8qKlxuICAgKiBAVE9ETyBBbGV4OiB3YWl0aW5nIGZvciBiYWNrZW5kIHdpbGwga2VlcCBjb3Vwb25zXG4gICAqL1xuICBzdHJpcGVQcm9tb0NvZGU6IFN0cmlwZVByb21vQ29kZTtcblxuICBARXhwb3NlKClcbiAgZ2V0IHByb21vQ29kZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaXBlUHJvbW9Db2RlPy5pZCB8fCBudWxsO1xuICB9XG5cbiAgZ2V0IGZyZXF1ZW5jeSgpOiAnbW9udGgnIHwgJ3llYXInIHtcbiAgICByZXR1cm4gdGhpcy5pc0FubnVhbCgpID8gJ3llYXInIDogJ21vbnRoJztcbiAgfVxuXG4gIGdldCBpc1RyaWFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5zdHJpcGVJZDtcbiAgfVxuXG4gIGdldCBpc1BhaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5zdHJpcGVJZDtcbiAgfVxuXG4gIGdldCBwcmljZSgpOiBudW1iZXIge1xuICAgIGNvbnN0IHByaWNlOiBudW1iZXIgPSB0aGlzLml0ZW1zLnJlZHVjZSgoc3VtOiBudW1iZXIsIGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKSA9PiBzdW0gKyBpdGVtLnRvdGFsLCAwKTtcblxuICAgIGlmICghIXRoaXMuc3RyaXBlUHJvbW9Db2RlKSB7XG4gICAgICBpZiAodGhpcy5zdHJpcGVQcm9tb0NvZGUuaXNBbW91bnQoKSkge1xuICAgICAgICByZXR1cm4gcHJpY2UgLSB0aGlzLnN0cmlwZVByb21vQ29kZS5hbW91bnRPZmY7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwcmljZSAtIHByaWNlICogKHRoaXMuc3RyaXBlUHJvbW9Db2RlLnBlcmNlbnRPZmYgLyAxMDApO1xuICAgIH1cblxuICAgIHJldHVybiBwcmljZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgdGl0bGUgb2Ygc3Vic2NyaXB0aW9uXG4gICAqL1xuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ucHJpY2UucHJvZHVjdC50aXRsZSkuam9pbignICsgJyk7XG4gICAgLy8gcmV0dXJuIHRoaXMuaXNUcmlhbCA/ICdUcmlhbCBwZXJpb2QnIDogdGhpcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ucHJpY2UucHJvZHVjdC50aXRsZSkuam9pbignICsgJyk7XG4gIH1cblxuICAvKipcbiAgICogQSBzdWJzY3JpcHRpb24gaXMgY29uc2lkZXJlZCBhY3RpdmUgaWYgdGhlIGVuZCBkYXRlIGhhcyBub3QgeWV0IGFycml2ZWQgYW5kIGl0cyBzdGF0dXMgaXMgXCJBY3RpdmVcIiBvciBcIlBhc3QgZHVlXCJcbiAgICovXG4gIGdldCBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0V4cGlyZWQ6IGJvb2xlYW4gPSBuZXcgRGF0ZSh0aGlzLmVuZERhdGUpLmdldFRpbWUoKSA8IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG4gICAgcmV0dXJuICFpc0V4cGlyZWQgJiYgKFtTZXJ2aWNlU3Vic2NyaXB0aW9uU3RhdHVzRW51bS5BQ1RJVkUsIFNlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtLlBBU1RfRFVFXS5pbmNsdWRlcyh0aGlzLnN0YXR1cykpO1xuICB9XG5cbiAgaXNSZW5ld2FibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmlzVHJpYWwgJiYgdGhpcy5pc0FjdGl2ZTtcbiAgfVxuXG4gIGdldEl0ZW1zKCk6IFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbkl0ZW1Db2xsZWN0aW9uKHRoaXMuaXRlbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0IHdvcmtUYW5rSXRlbSgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1dvcmtUYW5rKCkpO1xuICB9XG5cbiAgZ2V0IHNvbGVUYW5rSXRlbSgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1NvbGVUYW5rKCkpO1xuICB9XG5cbiAgZ2V0IHByb3BlcnR5VGFua0l0ZW0oKTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0ge1xuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNQcm9wZXJ0aWVzKCkpO1xuICB9XG5cbiAgaGFzUHJvcGVydHlUYW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmluZCgoc3Vic2NyaXB0aW9uSXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBzdWJzY3JpcHRpb25JdGVtLnByaWNlLnByb2R1Y3Qucm9sZS5pbmNsdWRlcyhVc2VyUm9sZXNFbnVtLlBST1BFUlRZX1RBTkspO1xuICAgIH0pO1xuICB9XG5cbiAgaGFzV29ya1RhbmsoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtcy5maW5kKChzdWJzY3JpcHRpb25JdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbkl0ZW0ucHJpY2UucHJvZHVjdC5yb2xlLmluY2x1ZGVzKFVzZXJSb2xlc0VudW0uV09SS19UQU5LKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBib3VnaHQgYmVmb3JlIHByaWNlIHVwZGF0ZXMsIGFjdGl2ZSBmb3Igc29tZSB0aW1lIHRvIGxldCBjdXN0b21lciBzZWxlY3QgYSBuZXcgcGxhblxuICAgKiBpbXBvc3NpYmxlIHRvIHVwZGF0ZSwgb25seSBwcm9sb25nIG9yIGJ1eSBuZXdcbiAgICovXG4gIGlzQXJjaGl2ZWQoKTogYm9vbGVhbiB7XG4gICAgLy8gc3Vic2NyaXB0aW9uIHdpdGggYXQgbGVhc3Qgb25lIGFyY2hpdmVkIHByb2R1Y3QgY29uc2lkZXJlZCBhcyBhcmNoaXZlZFxuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnByaWNlLnByb2R1Y3QuaXNBcmNoaXZlZCgpKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQ2FzZSB3aGVuIHBheW1lbnQgd2FzIGZhaWxlZCwgYnV0IHVzZXIgaGFzIGEgdGltZSB0byB1cGRhdGUgcGF5bWVudCBtZXRob2RcbiAgICovXG4gIGlzUGFzdER1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtLlBBU1RfRFVFO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGN1cnJlbnQgc3Vic2NyaXB0aW9uIGhhcyBwcm92aWRlZCBzdWJzY3JpcHRpb24gaXRlbVxuICAgKi9cbiAgaGFzSXRlbShpdGVtVG9DaGVjazogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiBpdGVtLnByaWNlLmlkID09PSBpdGVtVG9DaGVjay5wcmljZS5pZCk7XG4gIH1cblxuICBoYXNQcm9kdWN0KHByb2R1Y3Q6IFNlcnZpY2VQcm9kdWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pdGVtcy5maW5kKChpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSk6IGJvb2xlYW4gPT4gaXRlbS5wcmljZS5wcm9kdWN0LmlkID09PSBwcm9kdWN0LmlkKTtcbiAgfVxuXG4gIGlzUGFja2FnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGggPT09IFNlcnZpY2VQcm9kdWN0LnF1YW50aXR5O1xuICB9XG5cbiAgaXNBbm51YWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMuZ2V0SXRlbXMoKS5wcmljZXMuYW5udWFsLmxlbmd0aCB8fCB0aGlzLmdldEl0ZW1zKCkucHJpY2VzLmFubnVhbFBhY2thZ2UubGVuZ3RoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvbW1lbmRlZCBudW1iZXIgb2YgcHJvcGVydGllcyB0byBidXksXG4gICAqIGJhc2VkIG9uIHRoZSBwcm9wZXJ0eSBzZXJ2aWNlIHByb2R1Y3QgYW5kIHRoZSBudW1iZXIgb2YgcHJvcGVydGllcyB0aGUgdXNlciBoYXNcbiAgICovXG4gIGdldFJlY29tbWVuZGVkUHJvcGVydGllc1F0eShwcm9wZXJ0eUl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtLCBwcm9wZXJ0aWVzUXR5OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IG1pbjogbnVtYmVyID0gcHJvcGVydHlJdGVtLnByaWNlLnByb2R1Y3QubWluUXR5O1xuXG4gICAgcmV0dXJuIE1hdGgubWF4KG1pbiwgcHJvcGVydGllc1F0eSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,12 @@
1
+ export class StripePromoCode {
2
+ get description() {
3
+ if (this.isAmount()) {
4
+ return `$${this.amountOff} off`;
5
+ }
6
+ return `${this.percentOff}% off`;
7
+ }
8
+ isAmount() {
9
+ return !!this.amountOff;
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaXBlLXByb21vLWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3N0cmlwZS1wcm9tby1jb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxlQUFlO0lBTTFCLElBQUksV0FBVztRQUNiLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ25CLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxNQUFNLENBQUM7U0FDakM7UUFFRCxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsT0FBTyxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU3RyaXBlUHJvbW9Db2RlIHtcbiAgaWQ6IHN0cmluZztcbiAgYW1vdW50T2ZmOiBudW1iZXI7XG4gIHBlcmNlbnRPZmY6IG51bWJlcjtcbiAgY29kZTogc3RyaW5nO1xuXG4gIGdldCBkZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzQW1vdW50KCkpIHtcbiAgICAgIHJldHVybiBgJCR7dGhpcy5hbW91bnRPZmZ9IG9mZmA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3RoaXMucGVyY2VudE9mZn0lIG9mZmA7XG4gIH1cblxuICBpc0Ftb3VudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmFtb3VudE9mZjtcbiAgfVxufVxuIl19
@@ -1,5 +1,6 @@
1
- export * from './service-price/service-price.service';
2
1
  export * from './service-payment/service-payment.service';
2
+ export * from './service-payment-method/service-payment-method.service';
3
+ export * from './service-price/service-price.service';
3
4
  export * from './service-subscription/subscription.service';
4
5
  export * from './service-product/service-product.service';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9zdWJzY3JpcHRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1wcmljZS9zZXJ2aWNlLXByaWNlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLXBheW1lbnQvc2VydmljZS1wYXltZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UtcHJvZHVjdC9zZXJ2aWNlLXByb2R1Y3Quc2VydmljZSc7XG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9zdWJzY3JpcHRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDJDQUEyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLXBheW1lbnQvc2VydmljZS1wYXltZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLXBheW1lbnQtbWV0aG9kL3NlcnZpY2UtcGF5bWVudC1tZXRob2Quc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UtcHJpY2Uvc2VydmljZS1wcmljZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLXByb2R1Y3Qvc2VydmljZS1wcm9kdWN0LnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,62 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { RestService } from '../../rest';
3
+ import { ServicePaymentMethod } from '../../../../models';
4
+ import { Collection } from '../../../../collections';
5
+ import { map } from 'rxjs/operators';
6
+ import { plainToClass } from 'class-transformer';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common/http";
9
+ import * as i2 from "../../../event";
10
+ export class ServicePaymentMethodService extends RestService {
11
+ constructor(http, eventDispatcherService, environment, sseService) {
12
+ super(http, eventDispatcherService, environment);
13
+ this.http = http;
14
+ this.eventDispatcherService = eventDispatcherService;
15
+ this.environment = environment;
16
+ this.sseService = sseService;
17
+ this.endpointUri = 'service-payment-methods';
18
+ this.collectionClass = Collection;
19
+ this.modelClass = ServicePaymentMethod;
20
+ this.isApiPlatform = true;
21
+ this.listenPaymentMethods();
22
+ }
23
+ /**
24
+ * Get Stripe client secret required for Payment form initialization
25
+ */
26
+ getSecret() {
27
+ return this.http.get(`${this.apiUrl}/setup-intent-secret`)
28
+ .pipe(map((response) => response));
29
+ }
30
+ setAsDefault(paymentMethod) {
31
+ return this.http.put(`${this.apiUrl}/${paymentMethod.id}/default`, {})
32
+ .pipe(map((updatedPaymentMethod) => plainToClass(ServicePaymentMethod, updatedPaymentMethod)));
33
+ }
34
+ listenPaymentMethods() {
35
+ this.sseService.on('servicePaymentMethods').subscribe((newPaymentMethod) => {
36
+ const paymentMethodFromCache = this.cache.findBy('id', newPaymentMethod.id);
37
+ // backend send empty object when payment method deleted
38
+ if (!newPaymentMethod.id) {
39
+ return;
40
+ }
41
+ // replace cache item in cache when exist
42
+ if (paymentMethodFromCache) {
43
+ this.handleResponse([plainToClass(ServicePaymentMethod, newPaymentMethod)], 'put');
44
+ return;
45
+ }
46
+ // add a new payment method to cache
47
+ this.handleResponse([plainToClass(ServicePaymentMethod, newPaymentMethod)], 'post');
48
+ });
49
+ }
50
+ }
51
+ ServicePaymentMethodService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ServicePaymentMethodService, deps: [{ token: i1.HttpClient }, { token: i2.EventDispatcherService }, { token: 'environment' }, { token: i2.SseService }], target: i0.ɵɵFactoryTarget.Injectable });
52
+ ServicePaymentMethodService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ServicePaymentMethodService, providedIn: 'root' });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ServicePaymentMethodService, decorators: [{
54
+ type: Injectable,
55
+ args: [{
56
+ providedIn: 'root'
57
+ }]
58
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.EventDispatcherService }, { type: undefined, decorators: [{
59
+ type: Inject,
60
+ args: ['environment']
61
+ }] }, { type: i2.SseService }]; } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1wYXltZW50LW1ldGhvZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcGF5bWVudC1tZXRob2Qvc2VydmljZS1wYXltZW50LW1ldGhvZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXJELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFNakQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLFdBQTZGO0lBTTVJLFlBQ1ksSUFBZ0IsRUFDaEIsc0JBQThDLEVBQ3ZCLFdBQWdCLEVBQ3pDLFVBQXNCO1FBRTlCLEtBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFMdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQ3pDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFUdEIsZ0JBQVcsR0FBVyx5QkFBeUIsQ0FBQztRQUMxRCxvQkFBZSxHQUFzQixVQUFVLENBQUM7UUFDaEQsZUFBVSxHQUFnQyxvQkFBb0IsQ0FBQztRQUMvRCxrQkFBYSxHQUFZLElBQUksQ0FBQztRQVM1QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLHNCQUFzQixDQUFDO2FBQ3ZELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQWtCLENBQUMsQ0FDdEMsQ0FBQztJQUNOLENBQUM7SUFFRCxZQUFZLENBQUMsYUFBbUM7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQzthQUNuRSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsb0JBQThDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQ2xILENBQUM7SUFDTixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsZ0JBQTBDLEVBQUUsRUFBRTtZQUNuRyxNQUFNLHNCQUFzQixHQUF5QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFbEcsd0RBQXdEO1lBQ3hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hCLE9BQU87YUFDUjtZQUVELHlDQUF5QztZQUN6QyxJQUFJLHNCQUFzQixFQUFFO2dCQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsWUFBWSxDQUFDLG9CQUFvQixFQUFFLGdCQUFnQixDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFFbkYsT0FBTzthQUNSO1lBRUQsb0NBQW9DO1lBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxZQUFZLENBQUMsb0JBQW9CLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7d0hBcERVLDJCQUEyQixrRkFTNUIsYUFBYTs0SEFUWiwyQkFBMkIsY0FGMUIsTUFBTTsyRkFFUCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFVSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVzdCc7XG5pbXBvcnQgeyBTZXJ2aWNlUGF5bWVudE1ldGhvZCBhcyBTZXJ2aWNlUGF5bWVudE1ldGhvZEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9kYi9Nb2RlbHMvc3Vic2NyaXB0aW9uL3NlcnZpY2UtcGF5bWVudC1tZXRob2QnO1xuaW1wb3J0IHsgU2VydmljZVBheW1lbnRNZXRob2QgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIFNzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9ldmVudCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNlcnZpY2VQYXltZW50TWV0aG9kU2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFNlcnZpY2VQYXltZW50TWV0aG9kQmFzZSwgU2VydmljZVBheW1lbnRNZXRob2QsIENvbGxlY3Rpb248U2VydmljZVBheW1lbnRNZXRob2Q+PiB7XG4gIHByb3RlY3RlZCBlbmRwb2ludFVyaTogc3RyaW5nID0gJ3NlcnZpY2UtcGF5bWVudC1tZXRob2RzJztcbiAgY29sbGVjdGlvbkNsYXNzOiB0eXBlb2YgQ29sbGVjdGlvbiA9IENvbGxlY3Rpb247XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBTZXJ2aWNlUGF5bWVudE1ldGhvZCA9IFNlcnZpY2VQYXltZW50TWV0aG9kO1xuICBpc0FwaVBsYXRmb3JtOiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgZXZlbnREaXNwYXRjaGVyU2VydmljZTogRXZlbnREaXNwYXRjaGVyU2VydmljZSxcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55LFxuICAgIHByaXZhdGUgc3NlU2VydmljZTogU3NlU2VydmljZVxuICApIHtcbiAgICBzdXBlcihodHRwLCBldmVudERpc3BhdGNoZXJTZXJ2aWNlLCBlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5saXN0ZW5QYXltZW50TWV0aG9kcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBTdHJpcGUgY2xpZW50IHNlY3JldCByZXF1aXJlZCBmb3IgUGF5bWVudCBmb3JtIGluaXRpYWxpemF0aW9uXG4gICAqL1xuICBnZXRTZWNyZXQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmFwaVVybH0vc2V0dXAtaW50ZW50LXNlY3JldGApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UgYXMgc3RyaW5nKVxuICAgICAgKTtcbiAgfVxuXG4gIHNldEFzRGVmYXVsdChwYXltZW50TWV0aG9kOiBTZXJ2aWNlUGF5bWVudE1ldGhvZCk6IE9ic2VydmFibGU8U2VydmljZVBheW1lbnRNZXRob2Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmFwaVVybH0vJHtwYXltZW50TWV0aG9kLmlkfS9kZWZhdWx0YCwge30pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1cGRhdGVkUGF5bWVudE1ldGhvZDogU2VydmljZVBheW1lbnRNZXRob2RCYXNlKSA9PiBwbGFpblRvQ2xhc3MoU2VydmljZVBheW1lbnRNZXRob2QsIHVwZGF0ZWRQYXltZW50TWV0aG9kKSlcbiAgICAgICk7XG4gIH1cblxuICBsaXN0ZW5QYXltZW50TWV0aG9kcygpOiB2b2lkIHtcbiAgICB0aGlzLnNzZVNlcnZpY2Uub24oJ3NlcnZpY2VQYXltZW50TWV0aG9kcycpLnN1YnNjcmliZSgobmV3UGF5bWVudE1ldGhvZDogU2VydmljZVBheW1lbnRNZXRob2RCYXNlKSA9PiB7XG4gICAgICBjb25zdCBwYXltZW50TWV0aG9kRnJvbUNhY2hlOiBTZXJ2aWNlUGF5bWVudE1ldGhvZCA9IHRoaXMuY2FjaGUuZmluZEJ5KCdpZCcsIG5ld1BheW1lbnRNZXRob2QuaWQpO1xuXG4gICAgICAvLyBiYWNrZW5kIHNlbmQgZW1wdHkgb2JqZWN0IHdoZW4gcGF5bWVudCBtZXRob2QgZGVsZXRlZFxuICAgICAgaWYgKCFuZXdQYXltZW50TWV0aG9kLmlkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gcmVwbGFjZSBjYWNoZSBpdGVtIGluIGNhY2hlIHdoZW4gZXhpc3RcbiAgICAgIGlmIChwYXltZW50TWV0aG9kRnJvbUNhY2hlKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW3BsYWluVG9DbGFzcyhTZXJ2aWNlUGF5bWVudE1ldGhvZCwgbmV3UGF5bWVudE1ldGhvZCldLCAncHV0Jyk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBhZGQgYSBuZXcgcGF5bWVudCBtZXRob2QgdG8gY2FjaGVcbiAgICAgIHRoaXMuaGFuZGxlUmVzcG9uc2UoW3BsYWluVG9DbGFzcyhTZXJ2aWNlUGF5bWVudE1ldGhvZCwgbmV3UGF5bWVudE1ldGhvZCldLCAncG9zdCcpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -2,8 +2,7 @@ import { Inject, Injectable } from '@angular/core';
2
2
  import { map } from 'rxjs/operators';
3
3
  import { loadStripe } from '@stripe/stripe-js';
4
4
  import { plainToClass } from 'class-transformer';
5
- import { ServiceSubscription } from '../../../../models/service-subscription/service-subscription';
6
- import { AppEvent, AppEventTypeEnum } from '../../../../models';
5
+ import { AppEvent, AppEventTypeEnum, StripePromoCode, ServiceSubscription } from '../../../../models';
7
6
  import { RestService } from '../../rest';
8
7
  import { ServiceSubscriptionCollection } from '../../../../collections';
9
8
  import * as i0 from "@angular/core";
@@ -95,6 +94,9 @@ export class SubscriptionService extends RestService {
95
94
  renew(subscription) {
96
95
  return this.http.put(`${this.environment.apiV2}/service-subscriptions/${subscription.id}/renewal`, {});
97
96
  }
97
+ getCoupon(code) {
98
+ return this.http.get(`${this.apiUrl}/promo-code/${code}`).pipe(map((response) => plainToClass(StripePromoCode, response)));
99
+ }
98
100
  listenSubscriptions() {
99
101
  this.sseService.on(`serviceSubscriptions`)
100
102
  .subscribe((serviceSubscription) => {
@@ -125,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
125
127
  type: Inject,
126
128
  args: ['environment']
127
129
  }] }]; } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sOERBQThELENBQUM7QUFHakcsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRixPQUFPLEVBQWEsV0FBVyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRW5ELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHlCQUF5QixDQUFDOzs7OztBQUV0RTs7R0FFRztBQUlILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUF3RjtJQU8vSCxZQUNZLElBQWdCLEVBQ2hCLHNCQUE4QyxFQUNoRCxVQUFzQixFQUN0QixZQUEwQixFQUNELFdBQWdCO1FBRWpELEtBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFOdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ2hELGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDRCxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQVhuRCxrQkFB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QUMsbUJBQW1CLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztZQUNqRyxrRUFBa0U7WUFDbEUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUM1QyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDNUM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQzdDO1lBRUQsNEJBQTRCO1lBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN4RyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1lBQ2pFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7Z0hBekhVLG1CQUFtQix3SUFZcEIsYUFBYTtvSEFaWixtQkFBbUIsY0FGbEIsTUFBTTsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFhSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2xvYWRTdHJpcGV9IGZyb20gJ0BzdHJpcGUvc3RyaXBlLWpzJztcbmltcG9ydCB7cGxhaW5Ub0NsYXNzfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQge1NlcnZpY2VTdWJzY3JpcHRpb259IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbic7XG5pbXBvcnQge0V2ZW50RGlzcGF0Y2hlclNlcnZpY2UsIFNzZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2V2ZW50JztcbmltcG9ydCB7U2VydmljZVN1YnNjcmlwdGlvbkl0ZW19IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1pdGVtJztcbmltcG9ydCB7IEFwcEV2ZW50LCBBcHBFdmVudFR5cGVFbnVtLCBTZXJ2aWNlUHJvZHVjdCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1RvYXN0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vdG9hc3QnO1xuaW1wb3J0IHtSZXN0TWV0aG9kLCBSZXN0U2VydmljZX0gZnJvbSAnLi4vLi4vcmVzdCc7XG5pbXBvcnQge1NlcnZpY2VTdWJzY3JpcHRpb24gYXMgU2VydmljZVN1YnNjcmlwdGlvbkJhc2V9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQge1NlcnZpY2VTdWJzY3JpcHRpb25Db2xsZWN0aW9ufSBmcm9tICcuLi8uLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5cbi8qKlxuICogQFRPRE8gQWxleCByZWZhY3RvclxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTdWJzY3JpcHRpb25TZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8U2VydmljZVN1YnNjcmlwdGlvbkJhc2UsIFNlcnZpY2VTdWJzY3JpcHRpb24sIFNlcnZpY2VTdWJzY3JpcHRpb25Db2xsZWN0aW9uPiB7XG4gIGlzQXBpUGxhdGZvcm06IGJvb2xlYW4gPSB0cnVlO1xuICBlbmRwb2ludFVyaTogc3RyaW5nID0gJ3NlcnZpY2Utc3Vic2NyaXB0aW9ucyc7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBTZXJ2aWNlU3Vic2NyaXB0aW9uID0gU2VydmljZVN1YnNjcmlwdGlvbjtcbiAgY29sbGVjdGlvbkNsYXNzOiB0eXBlb2YgU2VydmljZVN1YnNjcmlwdGlvbkNvbGxlY3Rpb24gPSBTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbjtcbiAgZGlzYWJsZWRNZXRob2RzOiBSZXN0TWV0aG9kW10gPSBbJ3B1dEJhdGNoJywgJ2RlbGV0ZScsICdkZWxldGVCYXRjaCddO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3NlU2VydmljZTogU3NlU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnlcbiAgKSB7XG4gICAgc3VwZXIoaHR0cCwgZXZlbnREaXNwYXRjaGVyU2VydmljZSwgZW52aXJvbm1lbnQpO1xuXG4gICAgdGhpcy5saXN0ZW5TdWJzY3JpcHRpb25zKCk7XG4gIH1cblxuICBzdGFydFRyaWFsKHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbik6IE9ic2VydmFibGU8U2VydmljZVN1YnNjcmlwdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmFwaVVybH0vdHJpYWxgLCBzdWJzY3JpcHRpb24pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogU2VydmljZVN1YnNjcmlwdGlvbkJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdTdWJzY3JpcHRpb246IFNlcnZpY2VTdWJzY3JpcHRpb24gPSBwbGFpblRvQ2xhc3MoU2VydmljZVN1YnNjcmlwdGlvbiwgcmVzcG9uc2UpO1xuXG4gICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbbmV3U3Vic2NyaXB0aW9uXSwgJ3Bvc3QnKTtcblxuICAgICAgICAgIHJldHVybiBuZXdTdWJzY3JpcHRpb247XG4gICAgICAgIH0pXG4gICAgICApXG4gIH1cblxuICBnZXRTdHJpcGVDbGllbnRTZWNyZXQoc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5hcGlVcmwsIHN1YnNjcmlwdGlvbikucGlwZShtYXAoKHJlc3BvbnNlOiBzdHJpbmcpID0+IHJlc3BvbnNlKSk7XG4gIH1cblxuICBnZXRBY3RpdmUoKTogT2JzZXJ2YWJsZTxTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUobWFwKChzdWJzY3JpcHRpb25zKSA9PiBzdWJzY3JpcHRpb25zLmdldEFjdGl2ZSgpKSk7XG4gIH1cblxuICBnZXRUcmlhbHMoKTogT2JzZXJ2YWJsZTxTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUobWFwKChzdWJzY3JpcHRpb25zKSA9PiBzdWJzY3JpcHRpb25zLmdldFRyaWFscygpKSk7XG4gIH1cblxuICBnZXRBY3RpdmVUcmlhbHMoKTogT2JzZXJ2YWJsZTxTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldEFjdGl2ZSgpLnBpcGUobWFwKChzdWJzY3JpcHRpb25zKSA9PiBzdWJzY3JpcHRpb25zLmdldFRyaWFscygpKSk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gcmVtb3ZlXG4gICAqIHJlZGlyZWN0IHRvIHN0cmlwZSBwYXltZW50IHBhZ2VcbiAgICovXG4gIGFzeW5jIGNoZWNrb3V0UmVkaXJlY3Qoc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBzdHJpcGU6IGFueSA9IGF3YWl0IGxvYWRTdHJpcGUodGhpcy5lbnZpcm9ubWVudC5zdHJpcGVQayk7XG5cbiAgICB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9zdHJpcGUvY2hlY2tvdXQtc2Vzc2lvbmAsIHtcbiAgICAgIGl0ZW1zOiBzdWJzY3JpcHRpb24uaXRlbXMsXG4gICAgICBzdWNjZXNzVXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICAgIGNhbmNlbFVybDogd2luZG93LmxvY2F0aW9uLmhyZWZcbiAgICB9KVxuICAgICAgLnN1YnNjcmliZSgoc2Vzc2lvbjogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vIEBUb2RvIHJlbW92ZSB1c2VyIFRSSUFMIHN0YXR1c1xuICAgICAgICBzdHJpcGUucmVkaXJlY3RUb0NoZWNrb3V0KHtzZXNzaW9uSWQ6IHNlc3Npb259KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHJlbW92ZVxuICAgKiByZWRpcmVjdCB0byBzdHJpcGUgYmlsbGluZyBwYWdlXG4gICAqL1xuICBiaWxsaW5nUmVkaXJlY3QocmV0dXJuVXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3N0cmlwZS9iaWxsaW5nLXBvcnRhbC1zZXNzaW9uYCwge1xuICAgICAgcGFyYW1zOiB7cmV0dXJuVXJsfVxuICAgIH0pLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgd2luZG93LmxvY2F0aW9uLnJlcGxhY2UocmVzcG9uc2UudXJsKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZGlmZmVyZW5jZSBiZXR3ZWVuIGN1cnJlbnQgc3Vic2NyaXB0aW9uIGFuZCBzZWxlY3RlZCBuZXcgc3Vic2NyaXB0aW9uXG4gICAqL1xuICBnZXRQcm9yYXRpb25Db3N0KHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbik6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vc2VydmljZS1zdWJzY3JpcHRpb25zLyR7c3Vic2NyaXB0aW9uLmlkfS9wcm9yYXRpb24tY29zdGAsIHN1YnNjcmlwdGlvbikucGlwZShcbiAgICAgIG1hcCgocHJvcmF0aW9uQ29zdDogbnVtYmVyKSA9PiB7XG4gICAgICAgIHJldHVybiBwcm9yYXRpb25Db3N0O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBzdWJzY3JpcHRpb24gcGxhblxuICAgKi9cbiAgY2hhbmdlU3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbik6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vc2VydmljZS1zdWJzY3JpcHRpb25zLyR7c3Vic2NyaXB0aW9uLmlkfWAsIHN1YnNjcmlwdGlvbik7XG4gIH1cblxuICBjYW5jZWwoc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9zZXJ2aWNlLXN1YnNjcmlwdGlvbnMvJHtzdWJzY3JpcHRpb24uaWR9L2NhbmNlbGAsIHt9KTtcbiAgfVxuXG4gIHJlbmV3KHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbik6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vc2VydmljZS1zdWJzY3JpcHRpb25zLyR7c3Vic2NyaXB0aW9uLmlkfS9yZW5ld2FsYCwge30pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5TdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuc3NlU2VydmljZS5vbihgc2VydmljZVN1YnNjcmlwdGlvbnNgKVxuICAgICAgLnN1YnNjcmliZSgoc2VydmljZVN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbkJhc2UpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uID0gcGxhaW5Ub0NsYXNzKFNlcnZpY2VTdWJzY3JpcHRpb24sIHNlcnZpY2VTdWJzY3JpcHRpb24pO1xuICAgICAgICAvLyB1cGRhdGUgZXhpc3RpbmcgbWVzc2FnZSBpZiByZWFkIGFuZCBhZGQgbmV3IG1lc3NhZ2UgaWYgbm90IHJlYWRcbiAgICAgICAgaWYgKHRoaXMuY2FjaGUuZmluZEJ5KCdpZCcsIHN1YnNjcmlwdGlvbi5pZCkpIHtcbiAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtzdWJzY3JpcHRpb25dLCAncHV0Jyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbc3Vic2NyaXB0aW9uXSwgJ3Bvc3QnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEBUT0RPIHZpayB0ZXN0IGFuZCByZW1vdmVcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlNFUlZJQ0VfU1VCU0NSSVBUSU9OX1VQREFURUQsIG51bGwpKTtcbiAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKCdTdWJzY3JpcHRpb24gc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQnKTtcbiAgICAgICAgfSwgMjAwMCk7XG4gICAgICB9KTtcbiAgfVxufVxuIl19
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC9zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RyxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXJELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQUV4RTs7R0FFRztBQUlILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUF3RjtJQU8vSCxZQUNZLElBQWdCLEVBQ2hCLHNCQUE4QyxFQUNoRCxVQUFzQixFQUN0QixZQUEwQixFQUNELFdBQWdCO1FBRWpELEtBQUssQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFOdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQ2hELGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDRCxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQVhuRCxrQkFBYSxHQUFZLElBQUksQ0FBQztRQUM5QixnQkFBVyxHQUFXLHVCQUF1QixDQUFDO1FBQzlDLGVBQVUsR0FBK0IsbUJBQW1CLENBQUM7UUFDN0Qsb0JBQWUsR0FBeUMsNkJBQTZCLENBQUM7UUFDdEYsb0JBQWUsR0FBaUIsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBV3BFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxVQUFVLENBQUMsWUFBaUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLFFBQVEsRUFBRSxZQUFZLENBQUM7YUFDeEQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWlDLEVBQUUsRUFBRTtZQUN4QyxNQUFNLGVBQWUsR0FBd0IsWUFBWSxDQUFDLG1CQUFtQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRXpGLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUUvQyxPQUFPLGVBQWUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELHFCQUFxQixDQUFDLFlBQWlDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFlBQWlDO1FBQ3RELE1BQU0sTUFBTSxHQUFRLE1BQU0sVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssMEJBQTBCLEVBQUU7WUFDbEUsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO1lBQ3pCLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUk7WUFDaEMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTtTQUNoQyxDQUFDO2FBQ0MsU0FBUyxDQUFDLENBQUMsT0FBZSxFQUFFLEVBQUU7WUFDN0IsaUNBQWlDO1lBQ2pDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxTQUFpQjtRQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxnQ0FBZ0MsRUFBRTtZQUN2RSxNQUFNLEVBQUUsRUFBQyxTQUFTLEVBQUM7U0FDcEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFDLFlBQWlDO1FBQ2hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssMEJBQTBCLFlBQVksQ0FBQyxFQUFFLGlCQUFpQixFQUFFLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDMUgsR0FBRyxDQUFDLENBQUMsYUFBcUIsRUFBRSxFQUFFO1lBQzVCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0IsQ0FBQyxZQUFpQztRQUNsRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLDBCQUEwQixZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFpQztRQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLDBCQUEwQixZQUFZLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFpQztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLDBCQUEwQixZQUFZLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxlQUFlLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUM1RCxHQUFHLENBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQ25FLENBQUM7SUFDSixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2FBQ3ZDLFNBQVMsQ0FBQyxDQUFDLG1CQUE0QyxFQUFRLEVBQUU7WUFDaEUsTUFBTSxZQUFZLEdBQXdCLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1lBQ2pHLGtFQUFrRTtZQUNsRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUM1QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDN0M7WUFFRCw0QkFBNEI7WUFDNUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3hHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7WUFDakUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztnSEEvSFUsbUJBQW1CLHdJQVlwQixhQUFhO29IQVpaLG1CQUFtQixjQUZsQixNQUFNOzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWFJLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGxvYWRTdHJpcGUgfSBmcm9tICdAc3RyaXBlL3N0cmlwZS1qcyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLCBTc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZXZlbnQnO1xuaW1wb3J0IHsgQXBwRXZlbnQsIEFwcEV2ZW50VHlwZUVudW0sIFN0cmlwZVByb21vQ29kZSwgU2VydmljZVN1YnNjcmlwdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi90b2FzdCc7XG5pbXBvcnQgeyBSZXN0TWV0aG9kLCBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3Jlc3QnO1xuaW1wb3J0IHsgU2VydmljZVN1YnNjcmlwdGlvbiBhcyBTZXJ2aWNlU3Vic2NyaXB0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcblxuLyoqXG4gKiBAVE9ETyBBbGV4IHJlZmFjdG9yXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvblNlcnZpY2UgZXh0ZW5kcyBSZXN0U2VydmljZTxTZXJ2aWNlU3Vic2NyaXB0aW9uQmFzZSwgU2VydmljZVN1YnNjcmlwdGlvbiwgU2VydmljZVN1YnNjcmlwdGlvbkNvbGxlY3Rpb24+IHtcbiAgaXNBcGlQbGF0Zm9ybTogYm9vbGVhbiA9IHRydWU7XG4gIGVuZHBvaW50VXJpOiBzdHJpbmcgPSAnc2VydmljZS1zdWJzY3JpcHRpb25zJztcbiAgbW9kZWxDbGFzczogdHlwZW9mIFNlcnZpY2VTdWJzY3JpcHRpb24gPSBTZXJ2aWNlU3Vic2NyaXB0aW9uO1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbiA9IFNlcnZpY2VTdWJzY3JpcHRpb25Db2xsZWN0aW9uO1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFsncHV0QmF0Y2gnLCAnZGVsZXRlJywgJ2RlbGV0ZUJhdGNoJ107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGV2ZW50RGlzcGF0Y2hlclNlcnZpY2U6IEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzc2VTZXJ2aWNlOiBTc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQ6IGFueVxuICApIHtcbiAgICBzdXBlcihodHRwLCBldmVudERpc3BhdGNoZXJTZXJ2aWNlLCBlbnZpcm9ubWVudCk7XG5cbiAgICB0aGlzLmxpc3RlblN1YnNjcmlwdGlvbnMoKTtcbiAgfVxuXG4gIHN0YXJ0VHJpYWwoc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uKTogT2JzZXJ2YWJsZTxTZXJ2aWNlU3Vic2NyaXB0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXBpVXJsfS90cmlhbGAsIHN1YnNjcmlwdGlvbilcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBTZXJ2aWNlU3Vic2NyaXB0aW9uQmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld1N1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbiA9IHBsYWluVG9DbGFzcyhTZXJ2aWNlU3Vic2NyaXB0aW9uLCByZXNwb25zZSk7XG5cbiAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtuZXdTdWJzY3JpcHRpb25dLCAncG9zdCcpO1xuXG4gICAgICAgICAgcmV0dXJuIG5ld1N1YnNjcmlwdGlvbjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBnZXRTdHJpcGVDbGllbnRTZWNyZXQoc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5hcGlVcmwsIHN1YnNjcmlwdGlvbikucGlwZShtYXAoKHJlc3BvbnNlOiBzdHJpbmcpID0+IHJlc3BvbnNlKSk7XG4gIH1cblxuICBnZXRBY3RpdmUoKTogT2JzZXJ2YWJsZTxTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUobWFwKChzdWJzY3JpcHRpb25zKSA9PiBzdWJzY3JpcHRpb25zLmdldEFjdGl2ZSgpKSk7XG4gIH1cblxuICBnZXRUcmlhbHMoKTogT2JzZXJ2YWJsZTxTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUobWFwKChzdWJzY3JpcHRpb25zKSA9PiBzdWJzY3JpcHRpb25zLmdldFRyaWFscygpKSk7XG4gIH1cblxuICBnZXRBY3RpdmVUcmlhbHMoKTogT2JzZXJ2YWJsZTxTZXJ2aWNlU3Vic2NyaXB0aW9uQ29sbGVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldEFjdGl2ZSgpLnBpcGUobWFwKChzdWJzY3JpcHRpb25zKSA9PiBzdWJzY3JpcHRpb25zLmdldFRyaWFscygpKSk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gcmVtb3ZlXG4gICAqIHJlZGlyZWN0IHRvIHN0cmlwZSBwYXltZW50IHBhZ2VcbiAgICovXG4gIGFzeW5jIGNoZWNrb3V0UmVkaXJlY3Qoc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBzdHJpcGU6IGFueSA9IGF3YWl0IGxvYWRTdHJpcGUodGhpcy5lbnZpcm9ubWVudC5zdHJpcGVQayk7XG5cbiAgICB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9zdHJpcGUvY2hlY2tvdXQtc2Vzc2lvbmAsIHtcbiAgICAgIGl0ZW1zOiBzdWJzY3JpcHRpb24uaXRlbXMsXG4gICAgICBzdWNjZXNzVXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICAgIGNhbmNlbFVybDogd2luZG93LmxvY2F0aW9uLmhyZWZcbiAgICB9KVxuICAgICAgLnN1YnNjcmliZSgoc2Vzc2lvbjogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vIEBUb2RvIHJlbW92ZSB1c2VyIFRSSUFMIHN0YXR1c1xuICAgICAgICBzdHJpcGUucmVkaXJlY3RUb0NoZWNrb3V0KHtzZXNzaW9uSWQ6IHNlc3Npb259KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHJlbW92ZVxuICAgKiByZWRpcmVjdCB0byBzdHJpcGUgYmlsbGluZyBwYWdlXG4gICAqL1xuICBiaWxsaW5nUmVkaXJlY3QocmV0dXJuVXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3N0cmlwZS9iaWxsaW5nLXBvcnRhbC1zZXNzaW9uYCwge1xuICAgICAgcGFyYW1zOiB7cmV0dXJuVXJsfVxuICAgIH0pLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgd2luZG93LmxvY2F0aW9uLnJlcGxhY2UocmVzcG9uc2UudXJsKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZGlmZmVyZW5jZSBiZXR3ZWVuIGN1cnJlbnQgc3Vic2NyaXB0aW9uIGFuZCBzZWxlY3RlZCBuZXcgc3Vic2NyaXB0aW9uXG4gICAqL1xuICBnZXRQcm9yYXRpb25Db3N0KHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbik6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vc2VydmljZS1zdWJzY3JpcHRpb25zLyR7c3Vic2NyaXB0aW9uLmlkfS9wcm9yYXRpb24tY29zdGAsIHN1YnNjcmlwdGlvbikucGlwZShcbiAgICAgIG1hcCgocHJvcmF0aW9uQ29zdDogbnVtYmVyKSA9PiB7XG4gICAgICAgIHJldHVybiBwcm9yYXRpb25Db3N0O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSBzdWJzY3JpcHRpb24gcGxhblxuICAgKi9cbiAgY2hhbmdlU3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbik6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vc2VydmljZS1zdWJzY3JpcHRpb25zLyR7c3Vic2NyaXB0aW9uLmlkfWAsIHN1YnNjcmlwdGlvbik7XG4gIH1cblxuICBjYW5jZWwoc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9zZXJ2aWNlLXN1YnNjcmlwdGlvbnMvJHtzdWJzY3JpcHRpb24uaWR9L2NhbmNlbGAsIHt9KTtcbiAgfVxuXG4gIHJlbmV3KHN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbik6IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vc2VydmljZS1zdWJzY3JpcHRpb25zLyR7c3Vic2NyaXB0aW9uLmlkfS9yZW5ld2FsYCwge30pO1xuICB9XG5cbiAgZ2V0Q291cG9uKGNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hcGlVcmx9L3Byb21vLWNvZGUvJHtjb2RlfWApLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3QpID0+IHBsYWluVG9DbGFzcyhTdHJpcGVQcm9tb0NvZGUsIHJlc3BvbnNlKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5TdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuc3NlU2VydmljZS5vbihgc2VydmljZVN1YnNjcmlwdGlvbnNgKVxuICAgICAgLnN1YnNjcmliZSgoc2VydmljZVN1YnNjcmlwdGlvbjogU2VydmljZVN1YnNjcmlwdGlvbkJhc2UpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uOiBTZXJ2aWNlU3Vic2NyaXB0aW9uID0gcGxhaW5Ub0NsYXNzKFNlcnZpY2VTdWJzY3JpcHRpb24sIHNlcnZpY2VTdWJzY3JpcHRpb24pO1xuICAgICAgICAvLyB1cGRhdGUgZXhpc3RpbmcgbWVzc2FnZSBpZiByZWFkIGFuZCBhZGQgbmV3IG1lc3NhZ2UgaWYgbm90IHJlYWRcbiAgICAgICAgaWYgKHRoaXMuY2FjaGUuZmluZEJ5KCdpZCcsIHN1YnNjcmlwdGlvbi5pZCkpIHtcbiAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtzdWJzY3JpcHRpb25dLCAncHV0Jyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbc3Vic2NyaXB0aW9uXSwgJ3Bvc3QnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEBUT0RPIHZpayB0ZXN0IGFuZCByZW1vdmVcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlNFUlZJQ0VfU1VCU0NSSVBUSU9OX1VQREFURUQsIG51bGwpKTtcbiAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zdWNjZXNzKCdTdWJzY3JpcHRpb24gc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQnKTtcbiAgICAgICAgfSwgMjAwMCk7XG4gICAgICB9KTtcbiAgfVxufVxuIl19