@bitgo-beta/sdk-coin-canton 1.0.1-beta.72 → 1.0.1-beta.721

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 (172) hide show
  1. package/dist/src/canton.d.ts +22 -1
  2. package/dist/src/canton.d.ts.map +1 -1
  3. package/dist/src/canton.js +269 -10
  4. package/dist/src/cantonToken.d.ts +19 -0
  5. package/dist/src/cantonToken.d.ts.map +1 -0
  6. package/dist/src/cantonToken.js +52 -0
  7. package/dist/src/index.d.ts +1 -0
  8. package/dist/src/index.d.ts.map +1 -1
  9. package/dist/src/index.js +2 -1
  10. package/dist/src/lib/allocationAllocateBuilder.d.ts +126 -0
  11. package/dist/src/lib/allocationAllocateBuilder.d.ts.map +1 -0
  12. package/dist/src/lib/allocationAllocateBuilder.js +250 -0
  13. package/dist/src/lib/allocationAllocateWithdrawnBuilder.d.ts +67 -0
  14. package/dist/src/lib/allocationAllocateWithdrawnBuilder.d.ts.map +1 -0
  15. package/dist/src/lib/allocationAllocateWithdrawnBuilder.js +130 -0
  16. package/dist/src/lib/allocationRejectBuilder.d.ts +51 -0
  17. package/dist/src/lib/allocationRejectBuilder.d.ts.map +1 -0
  18. package/dist/src/lib/allocationRejectBuilder.js +107 -0
  19. package/dist/src/lib/allocationRequestBuilder.d.ts +116 -0
  20. package/dist/src/lib/allocationRequestBuilder.d.ts.map +1 -0
  21. package/dist/src/lib/allocationRequestBuilder.js +248 -0
  22. package/dist/src/lib/cantonCommandBuilder.d.ts +72 -0
  23. package/dist/src/lib/cantonCommandBuilder.d.ts.map +1 -0
  24. package/dist/src/lib/cantonCommandBuilder.js +173 -0
  25. package/dist/src/lib/clearSigning.d.ts +58 -0
  26. package/dist/src/lib/clearSigning.d.ts.map +1 -0
  27. package/dist/src/lib/clearSigning.js +66 -0
  28. package/dist/src/lib/cosignDelegationAcceptBuilder.d.ts +56 -0
  29. package/dist/src/lib/cosignDelegationAcceptBuilder.d.ts.map +1 -0
  30. package/dist/src/lib/cosignDelegationAcceptBuilder.js +112 -0
  31. package/dist/src/lib/cosignDelegationProposalBuilder.d.ts +60 -0
  32. package/dist/src/lib/cosignDelegationProposalBuilder.d.ts.map +1 -0
  33. package/dist/src/lib/cosignDelegationProposalBuilder.js +111 -0
  34. package/dist/src/lib/endInvestorOnboardingOfferBuilder.d.ts +58 -0
  35. package/dist/src/lib/endInvestorOnboardingOfferBuilder.d.ts.map +1 -0
  36. package/dist/src/lib/endInvestorOnboardingOfferBuilder.js +112 -0
  37. package/dist/src/lib/iface.d.ts +130 -2
  38. package/dist/src/lib/iface.d.ts.map +1 -1
  39. package/dist/src/lib/iface.js +3 -1
  40. package/dist/src/lib/index.d.ts +13 -0
  41. package/dist/src/lib/index.d.ts.map +1 -1
  42. package/dist/src/lib/index.js +29 -2
  43. package/dist/src/lib/messages/cantonBaseMessage.d.ts +16 -0
  44. package/dist/src/lib/messages/cantonBaseMessage.d.ts.map +1 -0
  45. package/dist/src/lib/messages/cantonBaseMessage.js +28 -0
  46. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessage.d.ts +14 -0
  47. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessage.d.ts.map +1 -0
  48. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessage.js +23 -0
  49. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessageBuilder.d.ts +17 -0
  50. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessageBuilder.d.ts.map +1 -0
  51. package/dist/src/lib/messages/cantonSignTopology/cantonSignTopologyMessageBuilder.js +25 -0
  52. package/dist/src/lib/messages/cantonSignTopology/index.d.ts +3 -0
  53. package/dist/src/lib/messages/cantonSignTopology/index.d.ts.map +1 -0
  54. package/dist/src/lib/messages/cantonSignTopology/index.js +19 -0
  55. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessage.d.ts +13 -0
  56. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessage.d.ts.map +1 -0
  57. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessage.js +22 -0
  58. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessageBuilder.d.ts +14 -0
  59. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessageBuilder.d.ts.map +1 -0
  60. package/dist/src/lib/messages/cantonSignTransaction/cantonSignTransactionMessageBuilder.js +22 -0
  61. package/dist/src/lib/messages/cantonSignTransaction/index.d.ts +3 -0
  62. package/dist/src/lib/messages/cantonSignTransaction/index.d.ts.map +1 -0
  63. package/dist/src/lib/messages/cantonSignTransaction/index.js +19 -0
  64. package/dist/src/lib/messages/index.d.ts +5 -0
  65. package/dist/src/lib/messages/index.d.ts.map +1 -0
  66. package/dist/src/lib/messages/index.js +21 -0
  67. package/dist/src/lib/messages/messageBuilderFactory.d.ts +7 -0
  68. package/dist/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
  69. package/dist/src/lib/messages/messageBuilderFactory.js +23 -0
  70. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts +8 -0
  71. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts.map +1 -1
  72. package/dist/src/lib/oneStepPreApprovalBuilder.js +15 -1
  73. package/dist/src/lib/resourcesInterface.d.ts +1 -1
  74. package/dist/src/lib/resourcesInterface.d.ts.map +1 -1
  75. package/dist/src/lib/resourcesInterface.js +1 -1
  76. package/dist/src/lib/transaction/transaction.d.ts +17 -1
  77. package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
  78. package/dist/src/lib/transaction/transaction.js +291 -16
  79. package/dist/src/lib/transactionBuilderFactory.d.ts +22 -0
  80. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  81. package/dist/src/lib/transactionBuilderFactory.js +78 -1
  82. package/dist/src/lib/transferAcceptanceBuilder.d.ts +4 -4
  83. package/dist/src/lib/transferAcceptanceBuilder.d.ts.map +1 -1
  84. package/dist/src/lib/transferAcceptanceBuilder.js +6 -6
  85. package/dist/src/lib/transferBuilder.d.ts +84 -2
  86. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  87. package/dist/src/lib/transferBuilder.js +166 -2
  88. package/dist/src/lib/transferOfferWithdrawnBuilder.d.ts +67 -0
  89. package/dist/src/lib/transferOfferWithdrawnBuilder.d.ts.map +1 -0
  90. package/dist/src/lib/transferOfferWithdrawnBuilder.js +130 -0
  91. package/dist/src/lib/transferRejectionBuilder.d.ts +59 -0
  92. package/dist/src/lib/transferRejectionBuilder.d.ts.map +1 -0
  93. package/dist/src/lib/transferRejectionBuilder.js +116 -0
  94. package/dist/src/lib/utils.d.ts +45 -3
  95. package/dist/src/lib/utils.d.ts.map +1 -1
  96. package/dist/src/lib/utils.js +742 -66
  97. package/dist/src/lib/walletInitBuilder.d.ts +2 -1
  98. package/dist/src/lib/walletInitBuilder.d.ts.map +1 -1
  99. package/dist/src/lib/walletInitBuilder.js +4 -1
  100. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts +2 -1
  101. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts.map +1 -1
  102. package/dist/src/lib/walletInitialization/walletInitTransaction.js +14 -1
  103. package/dist/src/register.d.ts.map +1 -1
  104. package/dist/src/register.js +5 -1
  105. package/dist/test/helper.d.ts +3 -0
  106. package/dist/test/helper.d.ts.map +1 -0
  107. package/dist/test/helper.js +9 -0
  108. package/dist/test/integration/canton.integration.d.ts +2 -0
  109. package/dist/test/integration/canton.integration.d.ts.map +1 -0
  110. package/dist/test/integration/canton.integration.js +157 -0
  111. package/dist/test/integration/canton.token.integration.d.ts +2 -0
  112. package/dist/test/integration/canton.token.integration.d.ts.map +1 -0
  113. package/dist/test/integration/canton.token.integration.js +51 -0
  114. package/dist/test/resources.d.ts +226 -2
  115. package/dist/test/resources.d.ts.map +1 -1
  116. package/dist/test/resources.js +231 -7
  117. package/dist/test/unit/builder/allocationAllocate/allocationAllocateBuilder.d.ts +2 -0
  118. package/dist/test/unit/builder/allocationAllocate/allocationAllocateBuilder.d.ts.map +1 -0
  119. package/dist/test/unit/builder/allocationAllocate/allocationAllocateBuilder.js +360 -0
  120. package/dist/test/unit/builder/allocationAllocateWithdrawn/allocationAllocateWithdrawnBuilder.d.ts +2 -0
  121. package/dist/test/unit/builder/allocationAllocateWithdrawn/allocationAllocateWithdrawnBuilder.d.ts.map +1 -0
  122. package/dist/test/unit/builder/allocationAllocateWithdrawn/allocationAllocateWithdrawnBuilder.js +133 -0
  123. package/dist/test/unit/builder/allocationReject/allocationRejectBuilder.d.ts +2 -0
  124. package/dist/test/unit/builder/allocationReject/allocationRejectBuilder.d.ts.map +1 -0
  125. package/dist/test/unit/builder/allocationReject/allocationRejectBuilder.js +121 -0
  126. package/dist/test/unit/builder/allocationRequest/allocationRequestBuilder.d.ts +2 -0
  127. package/dist/test/unit/builder/allocationRequest/allocationRequestBuilder.d.ts.map +1 -0
  128. package/dist/test/unit/builder/allocationRequest/allocationRequestBuilder.js +407 -0
  129. package/dist/test/unit/builder/cantonCommand/cantonCommandBuilder.d.ts +2 -0
  130. package/dist/test/unit/builder/cantonCommand/cantonCommandBuilder.d.ts.map +1 -0
  131. package/dist/test/unit/builder/cantonCommand/cantonCommandBuilder.js +340 -0
  132. package/dist/test/unit/builder/cosignDelegationAccept/cosignDelegationAcceptBuilder.d.ts +2 -0
  133. package/dist/test/unit/builder/cosignDelegationAccept/cosignDelegationAcceptBuilder.d.ts.map +1 -0
  134. package/dist/test/unit/builder/cosignDelegationAccept/cosignDelegationAcceptBuilder.js +104 -0
  135. package/dist/test/unit/builder/cosignDelegationProposal/cosignDelegationProposalBuilder.d.ts +2 -0
  136. package/dist/test/unit/builder/cosignDelegationProposal/cosignDelegationProposalBuilder.d.ts.map +1 -0
  137. package/dist/test/unit/builder/cosignDelegationProposal/cosignDelegationProposalBuilder.js +74 -0
  138. package/dist/test/unit/builder/endInvestorOnboardingOffer/endInvestorOnboardingOfferBuilder.d.ts +2 -0
  139. package/dist/test/unit/builder/endInvestorOnboardingOffer/endInvestorOnboardingOfferBuilder.d.ts.map +1 -0
  140. package/dist/test/unit/builder/endInvestorOnboardingOffer/endInvestorOnboardingOfferBuilder.js +116 -0
  141. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.js +20 -1
  142. package/dist/test/unit/builder/transfer/transferBuilder.d.ts +2 -0
  143. package/dist/test/unit/builder/transfer/transferBuilder.d.ts.map +1 -0
  144. package/dist/test/unit/builder/transfer/transferBuilder.js +84 -0
  145. package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.js +65 -15
  146. package/dist/test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.d.ts +2 -0
  147. package/dist/test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.d.ts.map +1 -0
  148. package/dist/test/unit/builder/transferOfferWithdrawn/transferOfferWithdrawnBuilder.js +64 -0
  149. package/dist/test/unit/builder/transferReject/transferRejectBuilder.d.ts +2 -0
  150. package/dist/test/unit/builder/transferReject/transferRejectBuilder.d.ts.map +1 -0
  151. package/dist/test/unit/builder/transferReject/transferRejectBuilder.js +96 -0
  152. package/dist/test/unit/canton.d.ts +2 -0
  153. package/dist/test/unit/canton.d.ts.map +1 -0
  154. package/dist/test/unit/canton.js +705 -0
  155. package/dist/test/unit/index.d.ts +5 -0
  156. package/dist/test/unit/index.d.ts.map +1 -1
  157. package/dist/test/unit/index.js +6 -1
  158. package/dist/test/unit/messages/cantonSignTopologyMessage.d.ts +2 -0
  159. package/dist/test/unit/messages/cantonSignTopologyMessage.d.ts.map +1 -0
  160. package/dist/test/unit/messages/cantonSignTopologyMessage.js +46 -0
  161. package/dist/test/unit/messages/cantonSignTransactionMessage.d.ts +2 -0
  162. package/dist/test/unit/messages/cantonSignTransactionMessage.d.ts.map +1 -0
  163. package/dist/test/unit/messages/cantonSignTransactionMessage.js +48 -0
  164. package/dist/test/unit/messages/clearSigning.d.ts +2 -0
  165. package/dist/test/unit/messages/clearSigning.d.ts.map +1 -0
  166. package/dist/test/unit/messages/clearSigning.js +72 -0
  167. package/dist/test/unit/messages/messageBuilderFactory.d.ts +2 -0
  168. package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
  169. package/dist/test/unit/messages/messageBuilderFactory.js +52 -0
  170. package/dist/test/unit/utils.js +366 -9
  171. package/dist/tsconfig.tsbuildinfo +1 -1
  172. package/package.json +8 -8
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzSW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9yZXNvdXJjZXNJbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGEge1xuICBzdWJtaXR0ZXJJbmZvPzogTWV0YWRhdGFfU3VibWl0dGVySW5mbztcbiAgc3luY2hyb25pemVySWQ6IHN0cmluZztcbiAgbWVkaWF0b3JHcm91cDogbnVtYmVyO1xuICB0cmFuc2FjdGlvblV1aWQ6IHN0cmluZztcbiAgcHJlcGFyYXRpb25UaW1lOiBiaWdpbnQ7XG4gIGlucHV0Q29udHJhY3RzOiBNZXRhZGF0YV9JbnB1dENvbnRyYWN0W107XG4gIG1pbkxlZGdlckVmZmVjdGl2ZVRpbWU/OiBiaWdpbnQ7XG4gIG1heExlZGdlckVmZmVjdGl2ZVRpbWU/OiBiaWdpbnQ7XG4gIGdsb2JhbEtleU1hcHBpbmc6IE1ldGFkYXRhX0dsb2JhbEtleU1hcHBpbmdFbnRyeVtdO1xuICBtYXhSZWNvcmRUaW1lPzogYmlnaW50O1xufVxuXG5pbnRlcmZhY2UgTWV0YWRhdGFfU3VibWl0dGVySW5mbyB7XG4gIGFjdEFzOiBzdHJpbmdbXTtcbiAgY29tbWFuZElkOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBNZXRhZGF0YV9JbnB1dENvbnRyYWN0IHtcbiAgY29udHJhY3Q6XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3YxJztcbiAgICAgICAgdjE6IENyZWF0ZTtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiB1bmRlZmluZWQ7XG4gICAgICB9O1xuICBjcmVhdGVkQXQ6IGJpZ2ludDtcbiAgZXZlbnRCbG9iOiBVaW50OEFycmF5O1xufVxuXG5pbnRlcmZhY2UgQ3JlYXRlIHtcbiAgbGZWZXJzaW9uOiBzdHJpbmc7XG4gIGNvbnRyYWN0SWQ6IHN0cmluZztcbiAgcGFja2FnZU5hbWU6IHN0cmluZztcbiAgdGVtcGxhdGVJZD86IElkZW50aWZpZXI7XG4gIGFyZ3VtZW50PzogVmFsdWU7XG4gIHNpZ25hdG9yaWVzOiBzdHJpbmdbXTtcbiAgc3Rha2Vob2xkZXJzOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIE1ldGFkYXRhX0dsb2JhbEtleU1hcHBpbmdFbnRyeSB7XG4gIGtleT86IEdsb2JhbEtleTtcbiAgdmFsdWU/OiBWYWx1ZTtcbn1cblxuaW50ZXJmYWNlIEdsb2JhbEtleSB7XG4gIHRlbXBsYXRlSWQ/OiBJZGVudGlmaWVyO1xuICBwYWNrYWdlTmFtZTogc3RyaW5nO1xuICBrZXk/OiBWYWx1ZTtcbiAgaGFzaDogVWludDhBcnJheTtcbn1cblxuaW50ZXJmYWNlIElkZW50aWZpZXIge1xuICBwYWNrYWdlSWQ6IHN0cmluZztcbiAgbW9kdWxlTmFtZTogc3RyaW5nO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBWYWx1ZSB7XG4gIHN1bTpcbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAndW5pdCc7XG4gICAgICAgIHVuaXQ6IEVtcHR5O1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdib29sJztcbiAgICAgICAgYm9vbDogYm9vbGVhbjtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnaW50NjQnO1xuICAgICAgICBpbnQ2NDogc3RyaW5nO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdkYXRlJztcbiAgICAgICAgZGF0ZTogbnVtYmVyO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICd0aW1lc3RhbXAnO1xuICAgICAgICB0aW1lc3RhbXA6IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnbnVtZXJpYyc7XG4gICAgICAgIG51bWVyaWM6IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAncGFydHknO1xuICAgICAgICBwYXJ0eTogc3RyaW5nO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICd0ZXh0JztcbiAgICAgICAgdGV4dDogc3RyaW5nO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdjb250cmFjdElkJztcbiAgICAgICAgY29udHJhY3RJZDogc3RyaW5nO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdvcHRpb25hbCc7XG4gICAgICAgIG9wdGlvbmFsOiBPcHRpb25hbDtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnbGlzdCc7XG4gICAgICAgIGxpc3Q6IExpc3Q7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3RleHRNYXAnO1xuICAgICAgICB0ZXh0TWFwOiBUZXh0TWFwO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdnZW5NYXAnO1xuICAgICAgICBnZW5NYXA6IEdlbk1hcDtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAncmVjb3JkJztcbiAgICAgICAgcmVjb3JkOiBSZWNvcmQ7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3ZhcmlhbnQnO1xuICAgICAgICB2YXJpYW50OiBWYXJpYW50O1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdlbnVtJztcbiAgICAgICAgZW51bTogRW51bTtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiB1bmRlZmluZWQ7XG4gICAgICB9O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZVxuaW50ZXJmYWNlIEVtcHR5IHt9XG5cbmludGVyZmFjZSBPcHRpb25hbCB7XG4gIHZhbHVlPzogVmFsdWU7XG59XG5cbmludGVyZmFjZSBMaXN0IHtcbiAgZWxlbWVudHM6IFZhbHVlW107XG59XG5cbmludGVyZmFjZSBUZXh0TWFwIHtcbiAgZW50cmllczogVGV4dE1hcF9FbnRyeVtdO1xufVxuXG5pbnRlcmZhY2UgVGV4dE1hcF9FbnRyeSB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZT86IFZhbHVlO1xufVxuXG5pbnRlcmZhY2UgR2VuTWFwIHtcbiAgZW50cmllczogR2VuTWFwX0VudHJ5W107XG59XG5cbmludGVyZmFjZSBHZW5NYXBfRW50cnkge1xuICBrZXk/OiBWYWx1ZTtcbiAgdmFsdWU/OiBWYWx1ZTtcbn1cblxuaW50ZXJmYWNlIFJlY29yZCB7XG4gIHJlY29yZElkPzogSWRlbnRpZmllcjtcbiAgZmllbGRzOiBSZWNvcmRGaWVsZFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZEZpZWxkIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU/OiBWYWx1ZTtcbn1cblxuaW50ZXJmYWNlIFZhcmlhbnQge1xuICB2YXJpYW50SWQ/OiBJZGVudGlmaWVyO1xuICBjb25zdHJ1Y3Rvcjogc3RyaW5nO1xuICB2YWx1ZT86IFZhbHVlO1xufVxuXG5pbnRlcmZhY2UgRW51bSB7XG4gIGVudW1JZD86IElkZW50aWZpZXI7XG4gIGNvbnN0cnVjdG9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGFtbFRyYW5zYWN0aW9uIHtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICByb290czogc3RyaW5nW107XG4gIG5vZGVzOiBEYW1sVHJhbnNhY3Rpb25fTm9kZVtdO1xuICBub2RlU2VlZHM6IERhbWxUcmFuc2FjdGlvbl9Ob2RlU2VlZFtdO1xufVxuXG5pbnRlcmZhY2UgRGFtbFRyYW5zYWN0aW9uX05vZGUge1xuICBub2RlSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFZlcnNpb25lZCBub2RlXG4gICAqXG4gICAqIEBnZW5lcmF0ZWQgZnJvbSBwcm90b2J1ZiBvbmVvZjogdmVyc2lvbmVkX25vZGVcbiAgICovXG4gIHZlcnNpb25lZE5vZGU6XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3YxJztcbiAgICAgICAgdjE6IE5vZGU7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogdW5kZWZpbmVkO1xuICAgICAgfTtcbn1cblxuaW50ZXJmYWNlIE5vZGUge1xuICBub2RlVHlwZTpcbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnY3JlYXRlJztcbiAgICAgICAgY3JlYXRlOiBDcmVhdGU7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ2ZldGNoJztcbiAgICAgICAgZmV0Y2g6IEZldGNoO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdleGVyY2lzZSc7XG4gICAgICAgIGV4ZXJjaXNlOiBFeGVyY2lzZTtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAncm9sbGJhY2snO1xuICAgICAgICByb2xsYmFjazogUm9sbGJhY2s7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogdW5kZWZpbmVkO1xuICAgICAgfTtcbn1cblxuaW50ZXJmYWNlIEZldGNoIHtcbiAgbGZWZXJzaW9uOiBzdHJpbmc7XG4gIGNvbnRyYWN0SWQ6IHN0cmluZztcbiAgcGFja2FnZU5hbWU6IHN0cmluZztcbiAgdGVtcGxhdGVJZD86IElkZW50aWZpZXI7XG4gIHNpZ25hdG9yaWVzOiBzdHJpbmdbXTtcbiAgc3Rha2Vob2xkZXJzOiBzdHJpbmdbXTtcbiAgYWN0aW5nUGFydGllczogc3RyaW5nW107XG4gIGludGVyZmFjZUlkPzogSWRlbnRpZmllcjtcbn1cblxuaW50ZXJmYWNlIEV4ZXJjaXNlIHtcbiAgbGZWZXJzaW9uOiBzdHJpbmc7XG4gIGNvbnRyYWN0SWQ6IHN0cmluZztcbiAgcGFja2FnZU5hbWU6IHN0cmluZztcbiAgdGVtcGxhdGVJZD86IElkZW50aWZpZXI7XG4gIHNpZ25hdG9yaWVzOiBzdHJpbmdbXTtcbiAgc3Rha2Vob2xkZXJzOiBzdHJpbmdbXTtcbiAgYWN0aW5nUGFydGllczogc3RyaW5nW107XG4gIGludGVyZmFjZUlkPzogSWRlbnRpZmllcjtcbiAgY2hvaWNlSWQ6IHN0cmluZztcbiAgY2hvc2VuVmFsdWU/OiBWYWx1ZTtcbiAgY29uc3VtaW5nOiBib29sZWFuO1xuICBjaGlsZHJlbjogc3RyaW5nW107XG4gIGV4ZXJjaXNlUmVzdWx0PzogVmFsdWU7XG4gIGNob2ljZU9ic2VydmVyczogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBSb2xsYmFjayB7XG4gIGNoaWxkcmVuOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIERhbWxUcmFuc2FjdGlvbl9Ob2RlU2VlZCB7XG4gIG5vZGVJZDogbnVtYmVyO1xuICBzZWVkOiBVaW50OEFycmF5O1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzSW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9yZXNvdXJjZXNJbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGEge1xuICBzdWJtaXR0ZXJJbmZvPzogTWV0YWRhdGFfU3VibWl0dGVySW5mbztcbiAgc3luY2hyb25pemVySWQ6IHN0cmluZztcbiAgbWVkaWF0b3JHcm91cDogbnVtYmVyO1xuICB0cmFuc2FjdGlvblV1aWQ6IHN0cmluZztcbiAgcHJlcGFyYXRpb25UaW1lOiBiaWdpbnQ7XG4gIGlucHV0Q29udHJhY3RzOiBNZXRhZGF0YV9JbnB1dENvbnRyYWN0W107XG4gIG1pbkxlZGdlckVmZmVjdGl2ZVRpbWU/OiBiaWdpbnQ7XG4gIG1heExlZGdlckVmZmVjdGl2ZVRpbWU/OiBiaWdpbnQ7XG4gIGdsb2JhbEtleU1hcHBpbmc6IE1ldGFkYXRhX0dsb2JhbEtleU1hcHBpbmdFbnRyeVtdO1xuICBtYXhSZWNvcmRUaW1lPzogYmlnaW50O1xufVxuXG5pbnRlcmZhY2UgTWV0YWRhdGFfU3VibWl0dGVySW5mbyB7XG4gIGFjdEFzOiBzdHJpbmdbXTtcbiAgY29tbWFuZElkOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBNZXRhZGF0YV9JbnB1dENvbnRyYWN0IHtcbiAgY29udHJhY3Q6XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3YxJztcbiAgICAgICAgdjE6IENyZWF0ZTtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiB1bmRlZmluZWQ7XG4gICAgICB9O1xuICBjcmVhdGVkQXQ6IGJpZ2ludDtcbiAgZXZlbnRCbG9iOiBVaW50OEFycmF5O1xufVxuXG5pbnRlcmZhY2UgQ3JlYXRlIHtcbiAgbGZWZXJzaW9uOiBzdHJpbmc7XG4gIGNvbnRyYWN0SWQ6IHN0cmluZztcbiAgcGFja2FnZU5hbWU6IHN0cmluZztcbiAgdGVtcGxhdGVJZD86IElkZW50aWZpZXI7XG4gIGFyZ3VtZW50PzogVmFsdWU7XG4gIHNpZ25hdG9yaWVzOiBzdHJpbmdbXTtcbiAgc3Rha2Vob2xkZXJzOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIE1ldGFkYXRhX0dsb2JhbEtleU1hcHBpbmdFbnRyeSB7XG4gIGtleT86IEdsb2JhbEtleTtcbiAgdmFsdWU/OiBWYWx1ZTtcbn1cblxuaW50ZXJmYWNlIEdsb2JhbEtleSB7XG4gIHRlbXBsYXRlSWQ/OiBJZGVudGlmaWVyO1xuICBwYWNrYWdlTmFtZTogc3RyaW5nO1xuICBrZXk/OiBWYWx1ZTtcbiAgaGFzaDogVWludDhBcnJheTtcbn1cblxuaW50ZXJmYWNlIElkZW50aWZpZXIge1xuICBwYWNrYWdlSWQ6IHN0cmluZztcbiAgbW9kdWxlTmFtZTogc3RyaW5nO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWUge1xuICBzdW06XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3VuaXQnO1xuICAgICAgICB1bml0OiBFbXB0eTtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnYm9vbCc7XG4gICAgICAgIGJvb2w6IGJvb2xlYW47XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ2ludDY0JztcbiAgICAgICAgaW50NjQ6IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnZGF0ZSc7XG4gICAgICAgIGRhdGU6IG51bWJlcjtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAndGltZXN0YW1wJztcbiAgICAgICAgdGltZXN0YW1wOiBzdHJpbmc7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ251bWVyaWMnO1xuICAgICAgICBudW1lcmljOiBzdHJpbmc7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3BhcnR5JztcbiAgICAgICAgcGFydHk6IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAndGV4dCc7XG4gICAgICAgIHRleHQ6IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnY29udHJhY3RJZCc7XG4gICAgICAgIGNvbnRyYWN0SWQ6IHN0cmluZztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnb3B0aW9uYWwnO1xuICAgICAgICBvcHRpb25hbDogT3B0aW9uYWw7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ2xpc3QnO1xuICAgICAgICBsaXN0OiBMaXN0O1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICd0ZXh0TWFwJztcbiAgICAgICAgdGV4dE1hcDogVGV4dE1hcDtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnZ2VuTWFwJztcbiAgICAgICAgZ2VuTWFwOiBHZW5NYXA7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3JlY29yZCc7XG4gICAgICAgIHJlY29yZDogUmVjb3JkO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICd2YXJpYW50JztcbiAgICAgICAgdmFyaWFudDogVmFyaWFudDtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnZW51bSc7XG4gICAgICAgIGVudW06IEVudW07XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogdW5kZWZpbmVkO1xuICAgICAgfTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2VcbmludGVyZmFjZSBFbXB0eSB7fVxuXG5pbnRlcmZhY2UgT3B0aW9uYWwge1xuICB2YWx1ZT86IFZhbHVlO1xufVxuXG5pbnRlcmZhY2UgTGlzdCB7XG4gIGVsZW1lbnRzOiBWYWx1ZVtdO1xufVxuXG5pbnRlcmZhY2UgVGV4dE1hcCB7XG4gIGVudHJpZXM6IFRleHRNYXBfRW50cnlbXTtcbn1cblxuaW50ZXJmYWNlIFRleHRNYXBfRW50cnkge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU/OiBWYWx1ZTtcbn1cblxuaW50ZXJmYWNlIEdlbk1hcCB7XG4gIGVudHJpZXM6IEdlbk1hcF9FbnRyeVtdO1xufVxuXG5pbnRlcmZhY2UgR2VuTWFwX0VudHJ5IHtcbiAga2V5PzogVmFsdWU7XG4gIHZhbHVlPzogVmFsdWU7XG59XG5cbmludGVyZmFjZSBSZWNvcmQge1xuICByZWNvcmRJZD86IElkZW50aWZpZXI7XG4gIGZpZWxkczogUmVjb3JkRmllbGRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNvcmRGaWVsZCB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlPzogVmFsdWU7XG59XG5cbmludGVyZmFjZSBWYXJpYW50IHtcbiAgdmFyaWFudElkPzogSWRlbnRpZmllcjtcbiAgY29uc3RydWN0b3I6IHN0cmluZztcbiAgdmFsdWU/OiBWYWx1ZTtcbn1cblxuaW50ZXJmYWNlIEVudW0ge1xuICBlbnVtSWQ/OiBJZGVudGlmaWVyO1xuICBjb25zdHJ1Y3Rvcjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhbWxUcmFuc2FjdGlvbiB7XG4gIHZlcnNpb246IHN0cmluZztcbiAgcm9vdHM6IHN0cmluZ1tdO1xuICBub2RlczogRGFtbFRyYW5zYWN0aW9uX05vZGVbXTtcbiAgbm9kZVNlZWRzOiBEYW1sVHJhbnNhY3Rpb25fTm9kZVNlZWRbXTtcbn1cblxuaW50ZXJmYWNlIERhbWxUcmFuc2FjdGlvbl9Ob2RlIHtcbiAgbm9kZUlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBWZXJzaW9uZWQgbm9kZVxuICAgKlxuICAgKiBAZ2VuZXJhdGVkIGZyb20gcHJvdG9idWYgb25lb2Y6IHZlcnNpb25lZF9ub2RlXG4gICAqL1xuICB2ZXJzaW9uZWROb2RlOlxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICd2MSc7XG4gICAgICAgIHYxOiBOb2RlO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6IHVuZGVmaW5lZDtcbiAgICAgIH07XG59XG5cbmludGVyZmFjZSBOb2RlIHtcbiAgbm9kZVR5cGU6XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ2NyZWF0ZSc7XG4gICAgICAgIGNyZWF0ZTogQ3JlYXRlO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6ICdmZXRjaCc7XG4gICAgICAgIGZldGNoOiBGZXRjaDtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgb25lb2ZLaW5kOiAnZXhlcmNpc2UnO1xuICAgICAgICBleGVyY2lzZTogRXhlcmNpc2U7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG9uZW9mS2luZDogJ3JvbGxiYWNrJztcbiAgICAgICAgcm9sbGJhY2s6IFJvbGxiYWNrO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBvbmVvZktpbmQ6IHVuZGVmaW5lZDtcbiAgICAgIH07XG59XG5cbmludGVyZmFjZSBGZXRjaCB7XG4gIGxmVmVyc2lvbjogc3RyaW5nO1xuICBjb250cmFjdElkOiBzdHJpbmc7XG4gIHBhY2thZ2VOYW1lOiBzdHJpbmc7XG4gIHRlbXBsYXRlSWQ/OiBJZGVudGlmaWVyO1xuICBzaWduYXRvcmllczogc3RyaW5nW107XG4gIHN0YWtlaG9sZGVyczogc3RyaW5nW107XG4gIGFjdGluZ1BhcnRpZXM6IHN0cmluZ1tdO1xuICBpbnRlcmZhY2VJZD86IElkZW50aWZpZXI7XG59XG5cbmludGVyZmFjZSBFeGVyY2lzZSB7XG4gIGxmVmVyc2lvbjogc3RyaW5nO1xuICBjb250cmFjdElkOiBzdHJpbmc7XG4gIHBhY2thZ2VOYW1lOiBzdHJpbmc7XG4gIHRlbXBsYXRlSWQ/OiBJZGVudGlmaWVyO1xuICBzaWduYXRvcmllczogc3RyaW5nW107XG4gIHN0YWtlaG9sZGVyczogc3RyaW5nW107XG4gIGFjdGluZ1BhcnRpZXM6IHN0cmluZ1tdO1xuICBpbnRlcmZhY2VJZD86IElkZW50aWZpZXI7XG4gIGNob2ljZUlkOiBzdHJpbmc7XG4gIGNob3NlblZhbHVlPzogVmFsdWU7XG4gIGNvbnN1bWluZzogYm9vbGVhbjtcbiAgY2hpbGRyZW46IHN0cmluZ1tdO1xuICBleGVyY2lzZVJlc3VsdD86IFZhbHVlO1xuICBjaG9pY2VPYnNlcnZlcnM6IHN0cmluZ1tdO1xufVxuXG5pbnRlcmZhY2UgUm9sbGJhY2sge1xuICBjaGlsZHJlbjogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBEYW1sVHJhbnNhY3Rpb25fTm9kZVNlZWQge1xuICBub2RlSWQ6IG51bWJlcjtcbiAgc2VlZDogVWludDhBcnJheTtcbn1cbiJdfQ==
@@ -1,15 +1,23 @@
1
1
  import { BaseKey, BaseTransaction, TransactionType } from '@bitgo-beta/sdk-core';
2
2
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
- import { CantonPrepareCommandResponse, TransferAcknowledge, TxData } from '../iface';
3
+ import { AllocationRequest, CantonPrepareCommandResponse, CosignDelegationProposal, EndInvestorOnboardingOfferData, TransactionExplanation, TransferAcknowledge, TxData } from '../iface';
4
4
  export declare class Transaction extends BaseTransaction {
5
5
  private _prepareCommand;
6
6
  private _signerFingerprint;
7
7
  private _acknowledgeData;
8
+ private _cosignDelegationProposalData;
9
+ private _allocationRequestData;
10
+ private _endInvestorOnboardingOfferData;
11
+ private _cantonCommandActAs;
8
12
  constructor(coinConfig: Readonly<CoinConfig>);
9
13
  get prepareCommand(): CantonPrepareCommandResponse;
10
14
  set prepareCommand(transaction: CantonPrepareCommandResponse);
11
15
  set transactionType(transactionType: TransactionType);
12
16
  set acknowledgeData(data: TransferAcknowledge);
17
+ set cosignDelegationProposalData(data: CosignDelegationProposal);
18
+ set allocationRequestData(data: AllocationRequest);
19
+ set endInvestorOnboardingOfferData(data: EndInvestorOnboardingOfferData);
20
+ set cantonCommandActAs(parties: string[]);
13
21
  get id(): string;
14
22
  set id(id: string);
15
23
  canSign(key: BaseKey): boolean;
@@ -18,6 +26,14 @@ export declare class Transaction extends BaseTransaction {
18
26
  toBroadcastFormat(): string;
19
27
  toJson(): TxData;
20
28
  get signablePayload(): Buffer;
29
+ get cantonCommandActAsParties(): string[];
21
30
  fromRawTransaction(rawTx: string): void;
31
+ /**
32
+ * Loads the input & output fields for the transaction
33
+ *
34
+ */
35
+ loadInputsAndOutputs(): void;
36
+ explainTransaction(): TransactionExplanation;
37
+ private buildCantonCommandSummary;
22
38
  }
23
39
  //# sourceMappingURL=transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAA2B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACL,4BAA4B,EAK5B,mBAAmB,EACnB,MAAM,EACP,MAAM,UAAU,CAAC;AAIlB,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAsB;gBAElC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,IAAI,cAAc,IAAI,4BAA4B,CAEjD;IAED,IAAI,cAAc,CAAC,WAAW,EAAE,4BAA4B,EAE3D;IAED,IAAI,eAAe,CAAC,eAAe,EAAE,eAAe,EAEnD;IAED,IAAI,eAAe,CAAC,IAAI,EAAE,mBAAmB,EAE5C;IAED,IAAI,EAAE,IAAI,MAAM,CAKf;IAED,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAEhB;IAED,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAE/B;IAED,IAAI,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAExC;IAED,iBAAiB,IAAI,MAAM;IA6D3B,MAAM,IAAI,MAAM;IA6BhB,IAAI,eAAe,IAAI,MAAM,CAQ5B;IAED,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAsBxC"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAIf,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACL,iBAAiB,EAEjB,4BAA4B,EAC5B,wBAAwB,EACxB,8BAA8B,EAK9B,sBAAsB,EACtB,mBAAmB,EACnB,MAAM,EACP,MAAM,UAAU,CAAC;AAIlB,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,6BAA6B,CAA2B;IAChE,OAAO,CAAC,sBAAsB,CAAoB;IAClD,OAAO,CAAC,+BAA+B,CAAiC;IACxE,OAAO,CAAC,mBAAmB,CAAW;gBAE1B,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,IAAI,cAAc,IAAI,4BAA4B,CAEjD;IAED,IAAI,cAAc,CAAC,WAAW,EAAE,4BAA4B,EAE3D;IAED,IAAI,eAAe,CAAC,eAAe,EAAE,eAAe,EAEnD;IAED,IAAI,eAAe,CAAC,IAAI,EAAE,mBAAmB,EAE5C;IAED,IAAI,4BAA4B,CAAC,IAAI,EAAE,wBAAwB,EAE9D;IAED,IAAI,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,EAEhD;IAED,IAAI,8BAA8B,CAAC,IAAI,EAAE,8BAA8B,EAEtE;IAED,IAAI,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,EAEvC;IAED,IAAI,EAAE,IAAI,MAAM,CAKf;IAED,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAEhB;IAED,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAE/B;IAED,IAAI,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAExC;IAED,iBAAiB,IAAI,MAAM;IAsG3B,MAAM,IAAI,MAAM;IAoEhB,IAAI,eAAe,IAAI,MAAM,CAa5B;IAED,IAAI,yBAAyB,IAAI,MAAM,EAAE,CAExC;IAED,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAyCvC;;;OAGG;IACH,oBAAoB,IAAI,IAAI;IAoB5B,kBAAkB,IAAI,sBAAsB;IAgH5C,OAAO,CAAC,yBAAyB;CAoBlC"}
@@ -23,6 +23,18 @@ class Transaction extends sdk_core_1.BaseTransaction {
23
23
  set acknowledgeData(data) {
24
24
  this._acknowledgeData = data;
25
25
  }
26
+ set cosignDelegationProposalData(data) {
27
+ this._cosignDelegationProposalData = data;
28
+ }
29
+ set allocationRequestData(data) {
30
+ this._allocationRequestData = data;
31
+ }
32
+ set endInvestorOnboardingOfferData(data) {
33
+ this._endInvestorOnboardingOfferData = data;
34
+ }
35
+ set cantonCommandActAs(parties) {
36
+ this._cantonCommandActAs = parties;
37
+ }
26
38
  get id() {
27
39
  if (!this._id) {
28
40
  throw new sdk_core_1.InvalidTransactionError('transaction is is not set');
@@ -42,7 +54,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
42
54
  this._signerFingerprint = fingerprint;
43
55
  }
44
56
  toBroadcastFormat() {
45
- if (!this._type) {
57
+ if (this._type === undefined) {
46
58
  throw new sdk_core_1.InvalidTransactionError('Transaction type is not set');
47
59
  }
48
60
  if (this._type === sdk_core_1.TransactionType.TransferAcknowledge) {
@@ -56,13 +68,46 @@ class Transaction extends sdk_core_1.BaseTransaction {
56
68
  };
57
69
  return Buffer.from(JSON.stringify(minData)).toString('base64');
58
70
  }
71
+ if (this._type === sdk_core_1.TransactionType.CosignDelegationProposal) {
72
+ if (!this._cosignDelegationProposalData) {
73
+ throw new sdk_core_1.InvalidTransactionError('CosignDelegationProposalData is not set');
74
+ }
75
+ const minData = {
76
+ txType: sdk_core_1.TransactionType[this._type],
77
+ submissionId: this.id,
78
+ cosignDelegationProposalData: this._cosignDelegationProposalData,
79
+ };
80
+ return Buffer.from(JSON.stringify(minData)).toString('base64');
81
+ }
82
+ if (this._type === sdk_core_1.TransactionType.AllocationRequest) {
83
+ if (!this._allocationRequestData) {
84
+ throw new sdk_core_1.InvalidTransactionError('AllocationRequestData is not set');
85
+ }
86
+ const minData = {
87
+ txType: sdk_core_1.TransactionType[this._type],
88
+ submissionId: this.id,
89
+ allocationRequestData: this._allocationRequestData,
90
+ };
91
+ return Buffer.from(JSON.stringify(minData)).toString('base64');
92
+ }
93
+ if (this._type === sdk_core_1.TransactionType.EndInvestorOnboardingOffer) {
94
+ if (!this._endInvestorOnboardingOfferData) {
95
+ throw new sdk_core_1.InvalidTransactionError('EndInvestorOnboardingOfferData is not set');
96
+ }
97
+ const minData = {
98
+ txType: sdk_core_1.TransactionType[this._type],
99
+ submissionId: this.id,
100
+ endInvestorOnboardingOfferData: this._endInvestorOnboardingOfferData,
101
+ };
102
+ return Buffer.from(JSON.stringify(minData)).toString('base64');
103
+ }
59
104
  if (!this._prepareCommand) {
60
105
  throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
61
106
  }
62
107
  const partySignatures = [];
63
108
  const data = {
64
109
  prepareCommandResponse: this._prepareCommand,
65
- txType: this._type ? sdk_core_1.TransactionType[this._type] : '',
110
+ txType: this._type !== undefined ? sdk_core_1.TransactionType[this._type] : '',
66
111
  preparedTransaction: '',
67
112
  partySignatures: {
68
113
  signatures: partySignatures,
@@ -80,7 +125,6 @@ class Transaction extends sdk_core_1.BaseTransaction {
80
125
  };
81
126
  const signatures = [];
82
127
  if (this._signatures.length > 0 && this._signerFingerprint) {
83
- const signerPartyId = `${this._signerFingerprint.slice(0, 5)}::${this._signerFingerprint}`;
84
128
  this.signature.map((signature) => {
85
129
  const signatureObj = {
86
130
  format: constant_1.SIGNATURE_FORMAT,
@@ -90,11 +134,19 @@ class Transaction extends sdk_core_1.BaseTransaction {
90
134
  };
91
135
  signatures.push(signatureObj);
92
136
  });
93
- const partySignature = {
94
- party: signerPartyId,
95
- signatures: signatures,
96
- };
97
- data.partySignatures?.signatures.push(partySignature);
137
+ // CantonCommand: the Canton protocol requires one partySignatures entry per actAs party; all parties share the same TSS key and signature.
138
+ if (this._type === sdk_core_1.TransactionType.CantonCommand) {
139
+ if (!this._cantonCommandActAs?.length) {
140
+ throw new sdk_core_1.InvalidTransactionError('CantonCommand transaction is missing actAs parties required for partySignatures');
141
+ }
142
+ for (const party of this._cantonCommandActAs) {
143
+ data.partySignatures?.signatures.push({ party, signatures });
144
+ }
145
+ }
146
+ else {
147
+ const signerPartyId = `${this._signerFingerprint.slice(0, 5)}::${this._signerFingerprint}`;
148
+ data.partySignatures?.signatures.push({ party: signerPartyId, signatures });
149
+ }
98
150
  data.preparedTransaction = this._prepareCommand.preparedTransaction
99
151
  ? this._prepareCommand.preparedTransaction
100
152
  : '';
@@ -107,6 +159,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
107
159
  type: this._type,
108
160
  sender: '',
109
161
  receiver: '',
162
+ amount: '',
110
163
  };
111
164
  if (this._type === sdk_core_1.TransactionType.TransferAcknowledge) {
112
165
  if (!this._acknowledgeData) {
@@ -115,23 +168,64 @@ class Transaction extends sdk_core_1.BaseTransaction {
115
168
  result.acknowledgeData = this._acknowledgeData;
116
169
  return result;
117
170
  }
171
+ if (this._type === sdk_core_1.TransactionType.CosignDelegationProposal) {
172
+ if (!this._cosignDelegationProposalData) {
173
+ throw new sdk_core_1.InvalidTransactionError('CosignDelegationProposalData is not set');
174
+ }
175
+ result.cosignDelegationProposalData = this._cosignDelegationProposalData;
176
+ return result;
177
+ }
178
+ if (this._type === sdk_core_1.TransactionType.AllocationRequest) {
179
+ if (!this._allocationRequestData) {
180
+ throw new sdk_core_1.InvalidTransactionError('AllocationRequestData is not set');
181
+ }
182
+ result.allocationRequestData = this._allocationRequestData;
183
+ return result;
184
+ }
185
+ if (this._type === sdk_core_1.TransactionType.EndInvestorOnboardingOffer) {
186
+ if (!this._endInvestorOnboardingOfferData) {
187
+ throw new sdk_core_1.InvalidTransactionError('EndInvestorOnboardingOfferData is not set');
188
+ }
189
+ result.endInvestorOnboardingOfferData = this._endInvestorOnboardingOfferData;
190
+ return result;
191
+ }
192
+ if (this._type === sdk_core_1.TransactionType.CantonCommand) {
193
+ if (!this._prepareCommand?.preparedTransaction) {
194
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
195
+ }
196
+ const commandSummary = this.buildCantonCommandSummary();
197
+ if (commandSummary) {
198
+ result.cantonCommand = commandSummary;
199
+ }
200
+ return result;
201
+ }
118
202
  if (!this._prepareCommand || !this._prepareCommand.preparedTransaction) {
119
203
  throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
120
204
  }
121
205
  // TODO: extract other required data (utxo used, request time, execute before etc)
122
206
  let parsedInfo;
123
207
  try {
124
- parsedInfo = utils_1.default.parseRawCantonTransactionData(this._prepareCommand.preparedTransaction);
208
+ parsedInfo = utils_1.default.parseRawCantonTransactionData(this._prepareCommand.preparedTransaction, this.type);
125
209
  }
126
210
  catch (e) {
127
211
  throw new sdk_core_1.InvalidTransactionError(`Failed to parse transaction hash: ${e instanceof Error ? e.message : e}`);
128
212
  }
129
213
  result.sender = parsedInfo.sender;
130
214
  result.receiver = parsedInfo.receiver;
215
+ result.amount = parsedInfo.amount;
216
+ if (parsedInfo.memoId) {
217
+ result.memoId = parsedInfo.memoId;
218
+ }
219
+ if (parsedInfo.token) {
220
+ result.token = parsedInfo.token;
221
+ }
131
222
  return result;
132
223
  }
133
224
  get signablePayload() {
134
- if (this._type === sdk_core_1.TransactionType.TransferAcknowledge) {
225
+ if (this._type === sdk_core_1.TransactionType.TransferAcknowledge ||
226
+ this._type === sdk_core_1.TransactionType.CosignDelegationProposal ||
227
+ this._type === sdk_core_1.TransactionType.AllocationRequest ||
228
+ this._type === sdk_core_1.TransactionType.EndInvestorOnboardingOffer) {
135
229
  return Buffer.from(constant_1.DUMMY_HASH, 'base64');
136
230
  }
137
231
  if (!this._prepareCommand) {
@@ -139,23 +233,47 @@ class Transaction extends sdk_core_1.BaseTransaction {
139
233
  }
140
234
  return Buffer.from(this._prepareCommand.preparedTransactionHash, 'base64');
141
235
  }
236
+ get cantonCommandActAsParties() {
237
+ return this._cantonCommandActAs ?? [];
238
+ }
142
239
  fromRawTransaction(rawTx) {
143
240
  try {
144
241
  const decoded = JSON.parse(Buffer.from(rawTx, 'base64').toString('utf8'));
145
242
  this.id = decoded.submissionId;
146
243
  this.transactionType = sdk_core_1.TransactionType[decoded.txType];
147
- if (this.type !== sdk_core_1.TransactionType.TransferAcknowledge) {
244
+ if (this.type === sdk_core_1.TransactionType.TransferAcknowledge) {
245
+ if (decoded.acknowledgeData) {
246
+ this.acknowledgeData = decoded.acknowledgeData;
247
+ }
248
+ }
249
+ else if (this.type === sdk_core_1.TransactionType.CosignDelegationProposal) {
250
+ if (decoded.cosignDelegationProposalData) {
251
+ this.cosignDelegationProposalData = decoded.cosignDelegationProposalData;
252
+ }
253
+ }
254
+ else if (this.type === sdk_core_1.TransactionType.AllocationRequest) {
255
+ if (decoded.allocationRequestData) {
256
+ this.allocationRequestData = decoded.allocationRequestData;
257
+ }
258
+ }
259
+ else if (this.type === sdk_core_1.TransactionType.EndInvestorOnboardingOffer) {
260
+ if (decoded.endInvestorOnboardingOfferData) {
261
+ this.endInvestorOnboardingOfferData = decoded.endInvestorOnboardingOfferData;
262
+ }
263
+ }
264
+ else {
148
265
  if (decoded.prepareCommandResponse) {
149
266
  this.prepareCommand = decoded.prepareCommandResponse;
267
+ if (this.type !== sdk_core_1.TransactionType.CantonCommand) {
268
+ this.loadInputsAndOutputs();
269
+ }
150
270
  }
151
271
  if (decoded.partySignatures && decoded.partySignatures.signatures.length > 0) {
152
272
  this.signerFingerprint = decoded.partySignatures.signatures[0].party.split('::')[1];
153
273
  this.signatures = decoded.partySignatures.signatures[0].signatures[0].signature;
154
274
  }
155
- }
156
- else {
157
- if (decoded.acknowledgeData) {
158
- this.acknowledgeData = decoded.acknowledgeData;
275
+ if (this.type === sdk_core_1.TransactionType.CantonCommand && decoded.prepareCommandResponse?.preparedTransaction) {
276
+ this.cantonCommandActAs = utils_1.default.extractSubmitterActAs(decoded.prepareCommandResponse.preparedTransaction);
159
277
  }
160
278
  }
161
279
  }
@@ -163,6 +281,163 @@ class Transaction extends sdk_core_1.BaseTransaction {
163
281
  throw new sdk_core_1.InvalidTransactionError('Unable to parse raw transaction data');
164
282
  }
165
283
  }
284
+ /**
285
+ * Loads the input & output fields for the transaction
286
+ *
287
+ */
288
+ loadInputsAndOutputs() {
289
+ const outputs = [];
290
+ const inputs = [];
291
+ const txData = this.toJson();
292
+ const input = {
293
+ address: txData.sender,
294
+ value: txData.amount,
295
+ coin: txData.token ? txData.token : this._coinConfig.name,
296
+ };
297
+ const output = {
298
+ address: txData.receiver,
299
+ value: txData.amount,
300
+ coin: txData.token ? txData.token : this._coinConfig.name,
301
+ };
302
+ inputs.push(input);
303
+ outputs.push(output);
304
+ this._inputs = inputs;
305
+ this._outputs = outputs;
306
+ }
307
+ explainTransaction() {
308
+ const displayOrder = [
309
+ 'id',
310
+ 'outputs',
311
+ 'outputAmount',
312
+ 'inputs',
313
+ 'inputAmount',
314
+ 'changeOutputs',
315
+ 'changeAmount',
316
+ 'fee',
317
+ 'type',
318
+ ];
319
+ const inputs = [];
320
+ const outputs = [];
321
+ let inputAmount = '0';
322
+ let outputAmount = '0';
323
+ switch (this.type) {
324
+ case sdk_core_1.TransactionType.CosignDelegationAccept:
325
+ case sdk_core_1.TransactionType.TransferAccept:
326
+ case sdk_core_1.TransactionType.TransferReject: {
327
+ const txData = this.toJson();
328
+ const input = {
329
+ address: txData.sender,
330
+ amount: txData.amount,
331
+ };
332
+ if (txData.token) {
333
+ input.tokenName = txData.token;
334
+ }
335
+ inputs.push(input);
336
+ inputAmount = txData.amount;
337
+ break;
338
+ }
339
+ case sdk_core_1.TransactionType.AllocationAllocate:
340
+ case sdk_core_1.TransactionType.Send: {
341
+ const txData = this.toJson();
342
+ const output = {
343
+ address: txData.receiver,
344
+ amount: txData.amount,
345
+ };
346
+ if (txData.memoId) {
347
+ output.memo = txData.memoId;
348
+ }
349
+ if (txData.token) {
350
+ output.tokenName = txData.token;
351
+ }
352
+ outputs.push(output);
353
+ outputAmount = txData.amount;
354
+ break;
355
+ }
356
+ case sdk_core_1.TransactionType.TransferOfferWithdrawn:
357
+ case sdk_core_1.TransactionType.AllocationAllocateWithdrawn: {
358
+ const txData = this.toJson();
359
+ const input = {
360
+ address: txData.receiver,
361
+ amount: txData.amount,
362
+ };
363
+ if (txData.token) {
364
+ input.tokenName = txData.token;
365
+ }
366
+ inputs.push(input);
367
+ inputAmount = txData.amount;
368
+ break;
369
+ }
370
+ case sdk_core_1.TransactionType.CantonCommand: {
371
+ const commandSummary = this.buildCantonCommandSummary();
372
+ const explanation = {
373
+ id: this.id,
374
+ displayOrder,
375
+ outputs: outputs,
376
+ outputAmount: outputAmount,
377
+ inputs: inputs,
378
+ inputAmount: inputAmount,
379
+ changeOutputs: [],
380
+ changeAmount: '0',
381
+ fee: { fee: '0' },
382
+ type: this.type,
383
+ };
384
+ if (commandSummary) {
385
+ explanation.cantonCommand = commandSummary;
386
+ }
387
+ return explanation;
388
+ }
389
+ case sdk_core_1.TransactionType.EndInvestorOnboardingOffer: {
390
+ // Non-signable notification record — no inputs, outputs, or amounts to explain.
391
+ return {
392
+ id: this.id,
393
+ displayOrder,
394
+ outputs: [],
395
+ outputAmount: '0',
396
+ inputs: [],
397
+ inputAmount: '0',
398
+ changeOutputs: [],
399
+ changeAmount: '0',
400
+ fee: { fee: '0' },
401
+ type: this.type,
402
+ };
403
+ }
404
+ }
405
+ return {
406
+ id: this.id,
407
+ displayOrder,
408
+ outputs: outputs,
409
+ outputAmount: outputAmount,
410
+ inputs: inputs,
411
+ inputAmount: inputAmount,
412
+ changeOutputs: [],
413
+ changeAmount: '0',
414
+ fee: { fee: '0' },
415
+ type: this.type,
416
+ };
417
+ }
418
+ buildCantonCommandSummary() {
419
+ const rawPrepared = this._prepareCommand?.preparedTransaction;
420
+ if (!rawPrepared) {
421
+ return undefined;
422
+ }
423
+ try {
424
+ const info = utils_1.default.extractCantonCommandInfo(rawPrepared);
425
+ const templateIdStr = `${info.templateId.packageId}:${info.templateId.moduleName}:${info.templateId.entityName}`;
426
+ const summary = {
427
+ kind: info.kind,
428
+ templateId: templateIdStr,
429
+ actAs: this._cantonCommandActAs ?? [],
430
+ };
431
+ if (info.choice !== undefined)
432
+ summary.choice = info.choice;
433
+ if (info.contractId !== undefined && info.contractId !== '')
434
+ summary.contractId = info.contractId;
435
+ return summary;
436
+ }
437
+ catch {
438
+ return undefined;
439
+ }
440
+ }
166
441
  }
167
442
  exports.Transaction = Transaction;
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUEwRztBQVcxRyxxREFBNkI7QUFDN0IsMENBQTZHO0FBRTdHLE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBSzlDLFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxXQUF5QztRQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxlQUFlLENBQUMsZUFBZ0M7UUFDbEQsSUFBSSxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLElBQXlCO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksRUFBRTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksa0NBQXVCLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLEVBQUUsQ0FBQyxFQUFVO1FBQ2YsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLFNBQWlCO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLGlCQUFpQixDQUFDLFdBQW1CO1FBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUM7SUFDeEMsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEtBQUssS0FBSywwQkFBZSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMzQixNQUFNLElBQUksa0NBQXVCLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUNsRSxDQUFDO1lBQ0QsTUFBTSxPQUFPLEdBQTZCO2dCQUN4QyxNQUFNLEVBQUUsMEJBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNuQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ3JCLGVBQWUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO2FBQ3ZDLENBQUM7WUFDRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksa0NBQXVCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsTUFBTSxlQUFlLEdBQXFCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLElBQUksR0FBNkI7WUFDckMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDNUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDBCQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JELG1CQUFtQixFQUFFLEVBQUU7WUFDdkIsZUFBZSxFQUFFO2dCQUNmLFVBQVUsRUFBRSxlQUFlO2FBQzVCO1lBQ0QsbUJBQW1CLEVBQUU7Z0JBQ25CLEtBQUssRUFBRSxFQUFFO2FBQ1Y7WUFDRCxZQUFZLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDckIsb0JBQW9CLEVBQUUsaUNBQXNCO1lBQzVDLGFBQWEsRUFBRTtnQkFDYixJQUFJLEVBQUU7b0JBQ0osS0FBSyxFQUFFLEVBQUU7aUJBQ1Y7YUFDRjtTQUNGLENBQUM7UUFDRixNQUFNLFVBQVUsR0FBeUIsRUFBRSxDQUFDO1FBQzVDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzNELE1BQU0sYUFBYSxHQUFHLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDM0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDL0IsTUFBTSxZQUFZLEdBQXVCO29CQUN2QyxNQUFNLEVBQUUsMkJBQWdCO29CQUN4QixTQUFTLEVBQUUsU0FBUztvQkFDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxrQkFBa0I7b0JBQ2pDLG9CQUFvQixFQUFFLG1DQUF3QjtpQkFDL0MsQ0FBQztnQkFDRixVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxjQUFjLEdBQUc7Z0JBQ3JCLEtBQUssRUFBRSxhQUFhO2dCQUNwQixVQUFVLEVBQUUsVUFBVTthQUN2QixDQUFDO1lBQ0YsSUFBSSxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFtQjtnQkFDakUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CO2dCQUMxQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1QsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxNQUFNLEdBQVc7WUFDckIsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUF3QjtZQUNuQyxNQUFNLEVBQUUsRUFBRTtZQUNWLFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSywwQkFBZSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMzQixNQUFNLElBQUksa0NBQXVCLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUNsRSxDQUFDO1lBQ0QsTUFBTSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDL0MsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3ZFLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxrRkFBa0Y7UUFDbEYsSUFBSSxVQUFpQyxDQUFDO1FBQ3RDLElBQUksQ0FBQztZQUNILFVBQVUsR0FBRyxlQUFLLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdGLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHFDQUFxQyxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9HLENBQUM7UUFDRCxNQUFNLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDbEMsTUFBTSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ3RDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLDBCQUFlLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUN2RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksa0NBQXVCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQTZCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDcEcsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsMEJBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLDBCQUFlLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUM7Z0JBQ3ZELENBQUM7Z0JBQ0QsSUFBSSxPQUFPLENBQUMsZUFBZSxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDN0UsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3BGLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDbEYsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO2dCQUNqRCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDNUUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTFLRCxrQ0EwS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlS2V5LCBCYXNlVHJhbnNhY3Rpb24sIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBDYW50b25QcmVwYXJlQ29tbWFuZFJlc3BvbnNlLFxuICBNdWx0aUhhc2hTaWduYXR1cmUsXG4gIFBhcnR5U2lnbmF0dXJlLFxuICBQcmVwYXJlZFR4blBhcnNlZEluZm8sXG4gIFRyYW5zYWN0aW9uQnJvYWRjYXN0RGF0YSxcbiAgVHJhbnNmZXJBY2tub3dsZWRnZSxcbiAgVHhEYXRhLFxufSBmcm9tICcuLi9pZmFjZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgRFVNTVlfSEFTSCwgSEFTSElOR19TQ0hFTUVfVkVSU0lPTiwgU0lHTkFUVVJFX0FMR09SSVRITV9TUEVDLCBTSUdOQVRVUkVfRk9STUFUIH0gZnJvbSAnLi4vY29uc3RhbnQnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIF9wcmVwYXJlQ29tbWFuZDogQ2FudG9uUHJlcGFyZUNvbW1hbmRSZXNwb25zZTtcbiAgcHJpdmF0ZSBfc2lnbmVyRmluZ2VycHJpbnQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfYWNrbm93bGVkZ2VEYXRhOiBUcmFuc2ZlckFja25vd2xlZGdlO1xuXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gIH1cblxuICBnZXQgcHJlcGFyZUNvbW1hbmQoKTogQ2FudG9uUHJlcGFyZUNvbW1hbmRSZXNwb25zZSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXBhcmVDb21tYW5kO1xuICB9XG5cbiAgc2V0IHByZXBhcmVDb21tYW5kKHRyYW5zYWN0aW9uOiBDYW50b25QcmVwYXJlQ29tbWFuZFJlc3BvbnNlKSB7XG4gICAgdGhpcy5fcHJlcGFyZUNvbW1hbmQgPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldCB0cmFuc2FjdGlvblR5cGUodHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvblR5cGUpIHtcbiAgICB0aGlzLl90eXBlID0gdHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgc2V0IGFja25vd2xlZGdlRGF0YShkYXRhOiBUcmFuc2ZlckFja25vd2xlZGdlKSB7XG4gICAgdGhpcy5fYWNrbm93bGVkZ2VEYXRhID0gZGF0YTtcbiAgfVxuXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5faWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcigndHJhbnNhY3Rpb24gaXMgaXMgbm90IHNldCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faWQ7XG4gIH1cblxuICBzZXQgaWQoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gaWQ7XG4gIH1cblxuICBjYW5TaWduKGtleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHNldCBzaWduYXR1cmVzKHNpZ25hdHVyZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZSk7XG4gIH1cblxuICBzZXQgc2lnbmVyRmluZ2VycHJpbnQoZmluZ2VycHJpbnQ6IHN0cmluZykge1xuICAgIHRoaXMuX3NpZ25lckZpbmdlcnByaW50ID0gZmluZ2VycHJpbnQ7XG4gIH1cblxuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fdHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiB0eXBlIGlzIG5vdCBzZXQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5UcmFuc2ZlckFja25vd2xlZGdlKSB7XG4gICAgICBpZiAoIXRoaXMuX2Fja25vd2xlZGdlRGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0Fja25vd2xlZGdlRGF0YSBpcyBub3Qgc2V0Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCBtaW5EYXRhOiBUcmFuc2FjdGlvbkJyb2FkY2FzdERhdGEgPSB7XG4gICAgICAgIHR4VHlwZTogVHJhbnNhY3Rpb25UeXBlW3RoaXMuX3R5cGVdLFxuICAgICAgICBzdWJtaXNzaW9uSWQ6IHRoaXMuaWQsXG4gICAgICAgIGFja25vd2xlZGdlRGF0YTogdGhpcy5fYWNrbm93bGVkZ2VEYXRhLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShtaW5EYXRhKSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3ByZXBhcmVDb21tYW5kKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgY29uc3QgcGFydHlTaWduYXR1cmVzOiBQYXJ0eVNpZ25hdHVyZVtdID0gW107XG4gICAgY29uc3QgZGF0YTogVHJhbnNhY3Rpb25Ccm9hZGNhc3REYXRhID0ge1xuICAgICAgcHJlcGFyZUNvbW1hbmRSZXNwb25zZTogdGhpcy5fcHJlcGFyZUNvbW1hbmQsXG4gICAgICB0eFR5cGU6IHRoaXMuX3R5cGUgPyBUcmFuc2FjdGlvblR5cGVbdGhpcy5fdHlwZV0gOiAnJyxcbiAgICAgIHByZXBhcmVkVHJhbnNhY3Rpb246ICcnLFxuICAgICAgcGFydHlTaWduYXR1cmVzOiB7XG4gICAgICAgIHNpZ25hdHVyZXM6IHBhcnR5U2lnbmF0dXJlcyxcbiAgICAgIH0sXG4gICAgICBkZWR1cGxpY2F0aW9uUGVyaW9kOiB7XG4gICAgICAgIEVtcHR5OiB7fSxcbiAgICAgIH0sXG4gICAgICBzdWJtaXNzaW9uSWQ6IHRoaXMuaWQsXG4gICAgICBoYXNoaW5nU2NoZW1lVmVyc2lvbjogSEFTSElOR19TQ0hFTUVfVkVSU0lPTixcbiAgICAgIG1pbkxlZGdlclRpbWU6IHtcbiAgICAgICAgdGltZToge1xuICAgICAgICAgIEVtcHR5OiB7fSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCBzaWduYXR1cmVzOiBNdWx0aUhhc2hTaWduYXR1cmVbXSA9IFtdO1xuICAgIGlmICh0aGlzLl9zaWduYXR1cmVzLmxlbmd0aCA+IDAgJiYgdGhpcy5fc2lnbmVyRmluZ2VycHJpbnQpIHtcbiAgICAgIGNvbnN0IHNpZ25lclBhcnR5SWQgPSBgJHt0aGlzLl9zaWduZXJGaW5nZXJwcmludC5zbGljZSgwLCA1KX06OiR7dGhpcy5fc2lnbmVyRmluZ2VycHJpbnR9YDtcbiAgICAgIHRoaXMuc2lnbmF0dXJlLm1hcCgoc2lnbmF0dXJlKSA9PiB7XG4gICAgICAgIGNvbnN0IHNpZ25hdHVyZU9iajogTXVsdGlIYXNoU2lnbmF0dXJlID0ge1xuICAgICAgICAgIGZvcm1hdDogU0lHTkFUVVJFX0ZPUk1BVCxcbiAgICAgICAgICBzaWduYXR1cmU6IHNpZ25hdHVyZSxcbiAgICAgICAgICBzaWduZWRCeTogdGhpcy5fc2lnbmVyRmluZ2VycHJpbnQsXG4gICAgICAgICAgc2lnbmluZ0FsZ29yaXRobVNwZWM6IFNJR05BVFVSRV9BTEdPUklUSE1fU1BFQyxcbiAgICAgICAgfTtcbiAgICAgICAgc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZU9iaik7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHBhcnR5U2lnbmF0dXJlID0ge1xuICAgICAgICBwYXJ0eTogc2lnbmVyUGFydHlJZCxcbiAgICAgICAgc2lnbmF0dXJlczogc2lnbmF0dXJlcyxcbiAgICAgIH07XG4gICAgICBkYXRhLnBhcnR5U2lnbmF0dXJlcz8uc2lnbmF0dXJlcy5wdXNoKHBhcnR5U2lnbmF0dXJlKTtcbiAgICAgIGRhdGEucHJlcGFyZWRUcmFuc2FjdGlvbiA9IHRoaXMuX3ByZXBhcmVDb21tYW5kLnByZXBhcmVkVHJhbnNhY3Rpb25cbiAgICAgICAgPyB0aGlzLl9wcmVwYXJlQ29tbWFuZC5wcmVwYXJlZFRyYW5zYWN0aW9uXG4gICAgICAgIDogJyc7XG4gICAgfVxuICAgIHJldHVybiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShkYXRhKSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICB9XG5cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgY29uc3QgcmVzdWx0OiBUeERhdGEgPSB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIHR5cGU6IHRoaXMuX3R5cGUgYXMgVHJhbnNhY3Rpb25UeXBlLFxuICAgICAgc2VuZGVyOiAnJyxcbiAgICAgIHJlY2VpdmVyOiAnJyxcbiAgICB9O1xuICAgIGlmICh0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuVHJhbnNmZXJBY2tub3dsZWRnZSkge1xuICAgICAgaWYgKCF0aGlzLl9hY2tub3dsZWRnZURhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdBY2tub3dsZWRnZURhdGEgaXMgbm90IHNldCcpO1xuICAgICAgfVxuICAgICAgcmVzdWx0LmFja25vd2xlZGdlRGF0YSA9IHRoaXMuX2Fja25vd2xlZGdlRGF0YTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGlmICghdGhpcy5fcHJlcGFyZUNvbW1hbmQgfHwgIXRoaXMuX3ByZXBhcmVDb21tYW5kLnByZXBhcmVkVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgICAvLyBUT0RPOiBleHRyYWN0IG90aGVyIHJlcXVpcmVkIGRhdGEgKHV0eG8gdXNlZCwgcmVxdWVzdCB0aW1lLCBleGVjdXRlIGJlZm9yZSBldGMpXG4gICAgbGV0IHBhcnNlZEluZm86IFByZXBhcmVkVHhuUGFyc2VkSW5mbztcbiAgICB0cnkge1xuICAgICAgcGFyc2VkSW5mbyA9IHV0aWxzLnBhcnNlUmF3Q2FudG9uVHJhbnNhY3Rpb25EYXRhKHRoaXMuX3ByZXBhcmVDb21tYW5kLnByZXBhcmVkVHJhbnNhY3Rpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgRmFpbGVkIHRvIHBhcnNlIHRyYW5zYWN0aW9uIGhhc2g6ICR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogZX1gKTtcbiAgICB9XG4gICAgcmVzdWx0LnNlbmRlciA9IHBhcnNlZEluZm8uc2VuZGVyO1xuICAgIHJlc3VsdC5yZWNlaXZlciA9IHBhcnNlZEluZm8ucmVjZWl2ZXI7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldCBzaWduYWJsZVBheWxvYWQoKTogQnVmZmVyIHtcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyQWNrbm93bGVkZ2UpIHtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShEVU1NWV9IQVNILCAnYmFzZTY0Jyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fcHJlcGFyZUNvbW1hbmQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgICByZXR1cm4gQnVmZmVyLmZyb20odGhpcy5fcHJlcGFyZUNvbW1hbmQucHJlcGFyZWRUcmFuc2FjdGlvbkhhc2gsICdiYXNlNjQnKTtcbiAgfVxuXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUeDogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlY29kZWQ6IFRyYW5zYWN0aW9uQnJvYWRjYXN0RGF0YSA9IEpTT04ucGFyc2UoQnVmZmVyLmZyb20ocmF3VHgsICdiYXNlNjQnKS50b1N0cmluZygndXRmOCcpKTtcbiAgICAgIHRoaXMuaWQgPSBkZWNvZGVkLnN1Ym1pc3Npb25JZDtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25UeXBlID0gVHJhbnNhY3Rpb25UeXBlW2RlY29kZWQudHhUeXBlXTtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IFRyYW5zYWN0aW9uVHlwZS5UcmFuc2ZlckFja25vd2xlZGdlKSB7XG4gICAgICAgIGlmIChkZWNvZGVkLnByZXBhcmVDb21tYW5kUmVzcG9uc2UpIHtcbiAgICAgICAgICB0aGlzLnByZXBhcmVDb21tYW5kID0gZGVjb2RlZC5wcmVwYXJlQ29tbWFuZFJlc3BvbnNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZWNvZGVkLnBhcnR5U2lnbmF0dXJlcyAmJiBkZWNvZGVkLnBhcnR5U2lnbmF0dXJlcy5zaWduYXR1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnNpZ25lckZpbmdlcnByaW50ID0gZGVjb2RlZC5wYXJ0eVNpZ25hdHVyZXMuc2lnbmF0dXJlc1swXS5wYXJ0eS5zcGxpdCgnOjonKVsxXTtcbiAgICAgICAgICB0aGlzLnNpZ25hdHVyZXMgPSBkZWNvZGVkLnBhcnR5U2lnbmF0dXJlcy5zaWduYXR1cmVzWzBdLnNpZ25hdHVyZXNbMF0uc2lnbmF0dXJlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZGVjb2RlZC5hY2tub3dsZWRnZURhdGEpIHtcbiAgICAgICAgICB0aGlzLmFja25vd2xlZGdlRGF0YSA9IGRlY29kZWQuYWNrbm93bGVkZ2VEYXRhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdVbmFibGUgdG8gcGFyc2UgcmF3IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
443
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQU84QjtBQWdCOUIscURBQTZCO0FBQzdCLDBDQUE2RztBQUU3RyxNQUFhLFdBQVksU0FBUSwwQkFBZTtJQVM5QyxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxjQUFjLENBQUMsV0FBeUM7UUFDMUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLGVBQWdDO1FBQ2xELElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLGVBQWUsQ0FBQyxJQUF5QjtRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLDRCQUE0QixDQUFDLElBQThCO1FBQzdELElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMsSUFBdUI7UUFDL0MsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSw4QkFBOEIsQ0FBQyxJQUFvQztRQUNyRSxJQUFJLENBQUMsK0JBQStCLEdBQUcsSUFBSSxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLGtCQUFrQixDQUFDLE9BQWlCO1FBQ3RDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksRUFBRTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxF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Q29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb24sXG4gIEVudHJ5LFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgSVRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7XG4gIEFsbG9jYXRpb25SZXF1ZXN0LFxuICBDYW50b25Db21tYW5kRXhwbGFpbixcbiAgQ2FudG9uUHJlcGFyZUNvbW1hbmRSZXNwb25zZSxcbiAgQ29zaWduRGVsZWdhdGlvblByb3Bvc2FsLFxuICBFbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlckRhdGEsXG4gIE11bHRpSGFzaFNpZ25hdHVyZSxcbiAgUGFydHlTaWduYXR1cmUsXG4gIFByZXBhcmVkVHhuUGFyc2VkSW5mbyxcbiAgVHJhbnNhY3Rpb25Ccm9hZGNhc3REYXRhLFxuICBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxuICBUcmFuc2ZlckFja25vd2xlZGdlLFxuICBUeERhdGEsXG59IGZyb20gJy4uL2lmYWNlJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBEVU1NWV9IQVNILCBIQVNISU5HX1NDSEVNRV9WRVJTSU9OLCBTSUdOQVRVUkVfQUxHT1JJVEhNX1NQRUMsIFNJR05BVFVSRV9GT1JNQVQgfSBmcm9tICcuLi9jb25zdGFudCc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByaXZhdGUgX3ByZXBhcmVDb21tYW5kOiBDYW50b25QcmVwYXJlQ29tbWFuZFJlc3BvbnNlO1xuICBwcml2YXRlIF9zaWduZXJGaW5nZXJwcmludDogc3RyaW5nO1xuICBwcml2YXRlIF9hY2tub3dsZWRnZURhdGE6IFRyYW5zZmVyQWNrbm93bGVkZ2U7XG4gIHByaXZhdGUgX2Nvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGE6IENvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbDtcbiAgcHJpdmF0ZSBfYWxsb2NhdGlvblJlcXVlc3REYXRhOiBBbGxvY2F0aW9uUmVxdWVzdDtcbiAgcHJpdmF0ZSBfZW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXJEYXRhOiBFbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlckRhdGE7XG4gIHByaXZhdGUgX2NhbnRvbkNvbW1hbmRBY3RBczogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgfVxuXG4gIGdldCBwcmVwYXJlQ29tbWFuZCgpOiBDYW50b25QcmVwYXJlQ29tbWFuZFJlc3BvbnNlIHtcbiAgICByZXR1cm4gdGhpcy5fcHJlcGFyZUNvbW1hbmQ7XG4gIH1cblxuICBzZXQgcHJlcGFyZUNvbW1hbmQodHJhbnNhY3Rpb246IENhbnRvblByZXBhcmVDb21tYW5kUmVzcG9uc2UpIHtcbiAgICB0aGlzLl9wcmVwYXJlQ29tbWFuZCA9IHRyYW5zYWN0aW9uO1xuICB9XG5cbiAgc2V0IHRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uVHlwZSkge1xuICAgIHRoaXMuX3R5cGUgPSB0cmFuc2FjdGlvblR5cGU7XG4gIH1cblxuICBzZXQgYWNrbm93bGVkZ2VEYXRhKGRhdGE6IFRyYW5zZmVyQWNrbm93bGVkZ2UpIHtcbiAgICB0aGlzLl9hY2tub3dsZWRnZURhdGEgPSBkYXRhO1xuICB9XG5cbiAgc2V0IGNvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGEoZGF0YTogQ29zaWduRGVsZWdhdGlvblByb3Bvc2FsKSB7XG4gICAgdGhpcy5fY29zaWduRGVsZWdhdGlvblByb3Bvc2FsRGF0YSA9IGRhdGE7XG4gIH1cblxuICBzZXQgYWxsb2NhdGlvblJlcXVlc3REYXRhKGRhdGE6IEFsbG9jYXRpb25SZXF1ZXN0KSB7XG4gICAgdGhpcy5fYWxsb2NhdGlvblJlcXVlc3REYXRhID0gZGF0YTtcbiAgfVxuXG4gIHNldCBlbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlckRhdGEoZGF0YTogRW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXJEYXRhKSB7XG4gICAgdGhpcy5fZW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXJEYXRhID0gZGF0YTtcbiAgfVxuXG4gIHNldCBjYW50b25Db21tYW5kQWN0QXMocGFydGllczogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9jYW50b25Db21tYW5kQWN0QXMgPSBwYXJ0aWVzO1xuICB9XG5cbiAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9pZCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCd0cmFuc2FjdGlvbiBpcyBpcyBub3Qgc2V0Jyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9pZDtcbiAgfVxuXG4gIHNldCBpZChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5faWQgPSBpZDtcbiAgfVxuXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc2V0IHNpZ25hdHVyZXMoc2lnbmF0dXJlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmF0dXJlKTtcbiAgfVxuXG4gIHNldCBzaWduZXJGaW5nZXJwcmludChmaW5nZXJwcmludDogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2lnbmVyRmluZ2VycHJpbnQgPSBmaW5nZXJwcmludDtcbiAgfVxuXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiB0eXBlIGlzIG5vdCBzZXQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5UcmFuc2ZlckFja25vd2xlZGdlKSB7XG4gICAgICBpZiAoIXRoaXMuX2Fja25vd2xlZGdlRGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0Fja25vd2xlZGdlRGF0YSBpcyBub3Qgc2V0Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCBtaW5EYXRhOiBUcmFuc2FjdGlvbkJyb2FkY2FzdERhdGEgPSB7XG4gICAgICAgIHR4VHlwZTogVHJhbnNhY3Rpb25UeXBlW3RoaXMuX3R5cGVdLFxuICAgICAgICBzdWJtaXNzaW9uSWQ6IHRoaXMuaWQsXG4gICAgICAgIGFja25vd2xlZGdlRGF0YTogdGhpcy5fYWNrbm93bGVkZ2VEYXRhLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShtaW5EYXRhKSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkNvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbCkge1xuICAgICAgaWYgKCF0aGlzLl9jb3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWxEYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignQ29zaWduRGVsZWdhdGlvblByb3Bvc2FsRGF0YSBpcyBub3Qgc2V0Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCBtaW5EYXRhOiBUcmFuc2FjdGlvbkJyb2FkY2FzdERhdGEgPSB7XG4gICAgICAgIHR4VHlwZTogVHJhbnNhY3Rpb25UeXBlW3RoaXMuX3R5cGVdLFxuICAgICAgICBzdWJtaXNzaW9uSWQ6IHRoaXMuaWQsXG4gICAgICAgIGNvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGE6IHRoaXMuX2Nvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGEsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KG1pbkRhdGEpKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQWxsb2NhdGlvblJlcXVlc3QpIHtcbiAgICAgIGlmICghdGhpcy5fYWxsb2NhdGlvblJlcXVlc3REYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignQWxsb2NhdGlvblJlcXVlc3REYXRhIGlzIG5vdCBzZXQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbkRhdGE6IFRyYW5zYWN0aW9uQnJvYWRjYXN0RGF0YSA9IHtcbiAgICAgICAgdHhUeXBlOiBUcmFuc2FjdGlvblR5cGVbdGhpcy5fdHlwZV0sXG4gICAgICAgIHN1Ym1pc3Npb25JZDogdGhpcy5pZCxcbiAgICAgICAgYWxsb2NhdGlvblJlcXVlc3REYXRhOiB0aGlzLl9hbGxvY2F0aW9uUmVxdWVzdERhdGEsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KG1pbkRhdGEpKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuRW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXIpIHtcbiAgICAgIGlmICghdGhpcy5fZW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXJEYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXJEYXRhIGlzIG5vdCBzZXQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbkRhdGE6IFRyYW5zYWN0aW9uQnJvYWRjYXN0RGF0YSA9IHtcbiAgICAgICAgdHhUeXBlOiBUcmFuc2FjdGlvblR5cGVbdGhpcy5fdHlwZV0sXG4gICAgICAgIHN1Ym1pc3Npb25JZDogdGhpcy5pZCxcbiAgICAgICAgZW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXJEYXRhOiB0aGlzLl9lbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlckRhdGEsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KG1pbkRhdGEpKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fcHJlcGFyZUNvbW1hbmQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgICBjb25zdCBwYXJ0eVNpZ25hdHVyZXM6IFBhcnR5U2lnbmF0dXJlW10gPSBbXTtcbiAgICBjb25zdCBkYXRhOiBUcmFuc2FjdGlvbkJyb2FkY2FzdERhdGEgPSB7XG4gICAgICBwcmVwYXJlQ29tbWFuZFJlc3BvbnNlOiB0aGlzLl9wcmVwYXJlQ29tbWFuZCxcbiAgICAgIHR4VHlwZTogdGhpcy5fdHlwZSAhPT0gdW5kZWZpbmVkID8gVHJhbnNhY3Rpb25UeXBlW3RoaXMuX3R5cGVdIDogJycsXG4gICAgICBwcmVwYXJlZFRyYW5zYWN0aW9uOiAnJyxcbiAgICAgIHBhcnR5U2lnbmF0dXJlczoge1xuICAgICAgICBzaWduYXR1cmVzOiBwYXJ0eVNpZ25hdHVyZXMsXG4gICAgICB9LFxuICAgICAgZGVkdXBsaWNhdGlvblBlcmlvZDoge1xuICAgICAgICBFbXB0eToge30sXG4gICAgICB9LFxuICAgICAgc3VibWlzc2lvbklkOiB0aGlzLmlkLFxuICAgICAgaGFzaGluZ1NjaGVtZVZlcnNpb246IEhBU0hJTkdfU0NIRU1FX1ZFUlNJT04sXG4gICAgICBtaW5MZWRnZXJUaW1lOiB7XG4gICAgICAgIHRpbWU6IHtcbiAgICAgICAgICBFbXB0eToge30sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3Qgc2lnbmF0dXJlczogTXVsdGlIYXNoU2lnbmF0dXJlW10gPSBbXTtcbiAgICBpZiAodGhpcy5fc2lnbmF0dXJlcy5sZW5ndGggPiAwICYmIHRoaXMuX3NpZ25lckZpbmdlcnByaW50KSB7XG4gICAgICB0aGlzLnNpZ25hdHVyZS5tYXAoKHNpZ25hdHVyZSkgPT4ge1xuICAgICAgICBjb25zdCBzaWduYXR1cmVPYmo6IE11bHRpSGFzaFNpZ25hdHVyZSA9IHtcbiAgICAgICAgICBmb3JtYXQ6IFNJR05BVFVSRV9GT1JNQVQsXG4gICAgICAgICAgc2lnbmF0dXJlOiBzaWduYXR1cmUsXG4gICAgICAgICAgc2lnbmVkQnk6IHRoaXMuX3NpZ25lckZpbmdlcnByaW50LFxuICAgICAgICAgIHNpZ25pbmdBbGdvcml0aG1TcGVjOiBTSUdOQVRVUkVfQUxHT1JJVEhNX1NQRUMsXG4gICAgICAgIH07XG4gICAgICAgIHNpZ25hdHVyZXMucHVzaChzaWduYXR1cmVPYmopO1xuICAgICAgfSk7XG4gICAgICAvLyBDYW50b25Db21tYW5kOiB0aGUgQ2FudG9uIHByb3RvY29sIHJlcXVpcmVzIG9uZSBwYXJ0eVNpZ25hdHVyZXMgZW50cnkgcGVyIGFjdEFzIHBhcnR5OyBhbGwgcGFydGllcyBzaGFyZSB0aGUgc2FtZSBUU1Mga2V5IGFuZCBzaWduYXR1cmUuXG4gICAgICBpZiAodGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkNhbnRvbkNvbW1hbmQpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jYW50b25Db21tYW5kQWN0QXM/Lmxlbmd0aCkge1xuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihcbiAgICAgICAgICAgICdDYW50b25Db21tYW5kIHRyYW5zYWN0aW9uIGlzIG1pc3NpbmcgYWN0QXMgcGFydGllcyByZXF1aXJlZCBmb3IgcGFydHlTaWduYXR1cmVzJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBwYXJ0eSBvZiB0aGlzLl9jYW50b25Db21tYW5kQWN0QXMpIHtcbiAgICAgICAgICBkYXRhLnBhcnR5U2lnbmF0dXJlcz8uc2lnbmF0dXJlcy5wdXNoKHsgcGFydHksIHNpZ25hdHVyZXMgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNpZ25lclBhcnR5SWQgPSBgJHt0aGlzLl9zaWduZXJGaW5nZXJwcmludC5zbGljZSgwLCA1KX06OiR7dGhpcy5fc2lnbmVyRmluZ2VycHJpbnR9YDtcbiAgICAgICAgZGF0YS5wYXJ0eVNpZ25hdHVyZXM/LnNpZ25hdHVyZXMucHVzaCh7IHBhcnR5OiBzaWduZXJQYXJ0eUlkLCBzaWduYXR1cmVzIH0pO1xuICAgICAgfVxuICAgICAgZGF0YS5wcmVwYXJlZFRyYW5zYWN0aW9uID0gdGhpcy5fcHJlcGFyZUNvbW1hbmQucHJlcGFyZWRUcmFuc2FjdGlvblxuICAgICAgICA/IHRoaXMuX3ByZXBhcmVDb21tYW5kLnByZXBhcmVkVHJhbnNhY3Rpb25cbiAgICAgICAgOiAnJztcbiAgICB9XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KGRhdGEpKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gIH1cblxuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBjb25zdCByZXN1bHQ6IFR4RGF0YSA9IHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgdHlwZTogdGhpcy5fdHlwZSBhcyBUcmFuc2FjdGlvblR5cGUsXG4gICAgICBzZW5kZXI6ICcnLFxuICAgICAgcmVjZWl2ZXI6ICcnLFxuICAgICAgYW1vdW50OiAnJyxcbiAgICB9O1xuICAgIGlmICh0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuVHJhbnNmZXJBY2tub3dsZWRnZSkge1xuICAgICAgaWYgKCF0aGlzLl9hY2tub3dsZWRnZURhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdBY2tub3dsZWRnZURhdGEgaXMgbm90IHNldCcpO1xuICAgICAgfVxuICAgICAgcmVzdWx0LmFja25vd2xlZGdlRGF0YSA9IHRoaXMuX2Fja25vd2xlZGdlRGF0YTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGlmICh0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQ29zaWduRGVsZWdhdGlvblByb3Bvc2FsKSB7XG4gICAgICBpZiAoIXRoaXMuX2Nvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdDb3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWxEYXRhIGlzIG5vdCBzZXQnKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5jb3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWxEYXRhID0gdGhpcy5fY29zaWduRGVsZWdhdGlvblByb3Bvc2FsRGF0YTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGlmICh0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQWxsb2NhdGlvblJlcXVlc3QpIHtcbiAgICAgIGlmICghdGhpcy5fYWxsb2NhdGlvblJlcXVlc3REYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignQWxsb2NhdGlvblJlcXVlc3REYXRhIGlzIG5vdCBzZXQnKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5hbGxvY2F0aW9uUmVxdWVzdERhdGEgPSB0aGlzLl9hbGxvY2F0aW9uUmVxdWVzdERhdGE7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkVuZEludmVzdG9yT25ib2FyZGluZ09mZmVyKSB7XG4gICAgICBpZiAoIXRoaXMuX2VuZEludmVzdG9yT25ib2FyZGluZ09mZmVyRGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VuZEludmVzdG9yT25ib2FyZGluZ09mZmVyRGF0YSBpcyBub3Qgc2V0Jyk7XG4gICAgICB9XG4gICAgICByZXN1bHQuZW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXJEYXRhID0gdGhpcy5fZW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXJEYXRhO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5DYW50b25Db21tYW5kKSB7XG4gICAgICBpZiAoIXRoaXMuX3ByZXBhcmVDb21tYW5kPy5wcmVwYXJlZFRyYW5zYWN0aW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgICAgfVxuICAgICAgY29uc3QgY29tbWFuZFN1bW1hcnkgPSB0aGlzLmJ1aWxkQ2FudG9uQ29tbWFuZFN1bW1hcnkoKTtcbiAgICAgIGlmIChjb21tYW5kU3VtbWFyeSkge1xuICAgICAgICByZXN1bHQuY2FudG9uQ29tbWFuZCA9IGNvbW1hbmRTdW1tYXJ5O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9wcmVwYXJlQ29tbWFuZCB8fCAhdGhpcy5fcHJlcGFyZUNvbW1hbmQucHJlcGFyZWRUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbiBkYXRhJyk7XG4gICAgfVxuICAgIC8vIFRPRE86IGV4dHJhY3Qgb3RoZXIgcmVxdWlyZWQgZGF0YSAodXR4byB1c2VkLCByZXF1ZXN0IHRpbWUsIGV4ZWN1dGUgYmVmb3JlIGV0YylcbiAgICBsZXQgcGFyc2VkSW5mbzogUHJlcGFyZWRUeG5QYXJzZWRJbmZvO1xuICAgIHRyeSB7XG4gICAgICBwYXJzZWRJbmZvID0gdXRpbHMucGFyc2VSYXdDYW50b25UcmFuc2FjdGlvbkRhdGEodGhpcy5fcHJlcGFyZUNvbW1hbmQucHJlcGFyZWRUcmFuc2FjdGlvbiwgdGhpcy50eXBlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEZhaWxlZCB0byBwYXJzZSB0cmFuc2FjdGlvbiBoYXNoOiAke2UgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IGV9YCk7XG4gICAgfVxuICAgIHJlc3VsdC5zZW5kZXIgPSBwYXJzZWRJbmZvLnNlbmRlcjtcbiAgICByZXN1bHQucmVjZWl2ZXIgPSBwYXJzZWRJbmZvLnJlY2VpdmVyO1xuICAgIHJlc3VsdC5hbW91bnQgPSBwYXJzZWRJbmZvLmFtb3VudDtcbiAgICBpZiAocGFyc2VkSW5mby5tZW1vSWQpIHtcbiAgICAgIHJlc3VsdC5tZW1vSWQgPSBwYXJzZWRJbmZvLm1lbW9JZDtcbiAgICB9XG4gICAgaWYgKHBhcnNlZEluZm8udG9rZW4pIHtcbiAgICAgIHJlc3VsdC50b2tlbiA9IHBhcnNlZEluZm8udG9rZW47XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXQgc2lnbmFibGVQYXlsb2FkKCk6IEJ1ZmZlciB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlRyYW5zZmVyQWNrbm93bGVkZ2UgfHxcbiAgICAgIHRoaXMuX3R5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5Db3NpZ25EZWxlZ2F0aW9uUHJvcG9zYWwgfHxcbiAgICAgIHRoaXMuX3R5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5BbGxvY2F0aW9uUmVxdWVzdCB8fFxuICAgICAgdGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkVuZEludmVzdG9yT25ib2FyZGluZ09mZmVyXG4gICAgKSB7XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20oRFVNTVlfSEFTSCwgJ2Jhc2U2NCcpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3ByZXBhcmVDb21tYW5kKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHRoaXMuX3ByZXBhcmVDb21tYW5kLnByZXBhcmVkVHJhbnNhY3Rpb25IYXNoLCAnYmFzZTY0Jyk7XG4gIH1cblxuICBnZXQgY2FudG9uQ29tbWFuZEFjdEFzUGFydGllcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2NhbnRvbkNvbW1hbmRBY3RBcyA/PyBbXTtcbiAgfVxuXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUeDogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlY29kZWQ6IFRyYW5zYWN0aW9uQnJvYWRjYXN0RGF0YSA9IEpTT04ucGFyc2UoQnVmZmVyLmZyb20ocmF3VHgsICdiYXNlNjQnKS50b1N0cmluZygndXRmOCcpKTtcbiAgICAgIHRoaXMuaWQgPSBkZWNvZGVkLnN1Ym1pc3Npb25JZDtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25UeXBlID0gVHJhbnNhY3Rpb25UeXBlW2RlY29kZWQudHhUeXBlXTtcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5UcmFuc2ZlckFja25vd2xlZGdlKSB7XG4gICAgICAgIGlmIChkZWNvZGVkLmFja25vd2xlZGdlRGF0YSkge1xuICAgICAgICAgIHRoaXMuYWNrbm93bGVkZ2VEYXRhID0gZGVjb2RlZC5hY2tub3dsZWRnZURhdGE7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQ29zaWduRGVsZWdhdGlvblByb3Bvc2FsKSB7XG4gICAgICAgIGlmIChkZWNvZGVkLmNvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGEpIHtcbiAgICAgICAgICB0aGlzLmNvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGEgPSBkZWNvZGVkLmNvc2lnbkRlbGVnYXRpb25Qcm9wb3NhbERhdGE7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQWxsb2NhdGlvblJlcXVlc3QpIHtcbiAgICAgICAgaWYgKGRlY29kZWQuYWxsb2NhdGlvblJlcXVlc3REYXRhKSB7XG4gICAgICAgICAgdGhpcy5hbGxvY2F0aW9uUmVxdWVzdERhdGEgPSBkZWNvZGVkLmFsbG9jYXRpb25SZXF1ZXN0RGF0YTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5FbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlcikge1xuICAgICAgICBpZiAoZGVjb2RlZC5lbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlckRhdGEpIHtcbiAgICAgICAgICB0aGlzLmVuZEludmVzdG9yT25ib2FyZGluZ09mZmVyRGF0YSA9IGRlY29kZWQuZW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXJEYXRhO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZGVjb2RlZC5wcmVwYXJlQ29tbWFuZFJlc3BvbnNlKSB7XG4gICAgICAgICAgdGhpcy5wcmVwYXJlQ29tbWFuZCA9IGRlY29kZWQucHJlcGFyZUNvbW1hbmRSZXNwb25zZTtcbiAgICAgICAgICBpZiAodGhpcy50eXBlICE9PSBUcmFuc2FjdGlvblR5cGUuQ2FudG9uQ29tbWFuZCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGVjb2RlZC5wYXJ0eVNpZ25hdHVyZXMgJiYgZGVjb2RlZC5wYXJ0eVNpZ25hdHVyZXMuc2lnbmF0dXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5zaWduZXJGaW5nZXJwcmludCA9IGRlY29kZWQucGFydHlTaWduYXR1cmVzLnNpZ25hdHVyZXNbMF0ucGFydHkuc3BsaXQoJzo6JylbMV07XG4gICAgICAgICAgdGhpcy5zaWduYXR1cmVzID0gZGVjb2RlZC5wYXJ0eVNpZ25hdHVyZXMuc2lnbmF0dXJlc1swXS5zaWduYXR1cmVzWzBdLnNpZ25hdHVyZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQ2FudG9uQ29tbWFuZCAmJiBkZWNvZGVkLnByZXBhcmVDb21tYW5kUmVzcG9uc2U/LnByZXBhcmVkVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICB0aGlzLmNhbnRvbkNvbW1hbmRBY3RBcyA9IHV0aWxzLmV4dHJhY3RTdWJtaXR0ZXJBY3RBcyhkZWNvZGVkLnByZXBhcmVDb21tYW5kUmVzcG9uc2UucHJlcGFyZWRUcmFuc2FjdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1VuYWJsZSB0byBwYXJzZSByYXcgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgaW5wdXQgJiBvdXRwdXQgZmllbGRzIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICpcbiAgICovXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGNvbnN0IG91dHB1dHM6IEVudHJ5W10gPSBbXTtcbiAgICBjb25zdCBpbnB1dHM6IEVudHJ5W10gPSBbXTtcbiAgICBjb25zdCB0eERhdGEgPSB0aGlzLnRvSnNvbigpO1xuICAgIGNvbnN0IGlucHV0OiBFbnRyeSA9IHtcbiAgICAgIGFkZHJlc3M6IHR4RGF0YS5zZW5kZXIsXG4gICAgICB2YWx1ZTogdHhEYXRhLmFtb3VudCxcbiAgICAgIGNvaW46IHR4RGF0YS50b2tlbiA/IHR4RGF0YS50b2tlbiA6IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICB9O1xuICAgIGNvbnN0IG91dHB1dDogRW50cnkgPSB7XG4gICAgICBhZGRyZXNzOiB0eERhdGEucmVjZWl2ZXIsXG4gICAgICB2YWx1ZTogdHhEYXRhLmFtb3VudCxcbiAgICAgIGNvaW46IHR4RGF0YS50b2tlbiA/IHR4RGF0YS50b2tlbiA6IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICB9O1xuICAgIGlucHV0cy5wdXNoKGlucHV0KTtcbiAgICBvdXRwdXRzLnB1c2gob3V0cHV0KTtcbiAgICB0aGlzLl9pbnB1dHMgPSBpbnB1dHM7XG4gICAgdGhpcy5fb3V0cHV0cyA9IG91dHB1dHM7XG4gIH1cblxuICBleHBsYWluVHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gW1xuICAgICAgJ2lkJyxcbiAgICAgICdvdXRwdXRzJyxcbiAgICAgICdvdXRwdXRBbW91bnQnLFxuICAgICAgJ2lucHV0cycsXG4gICAgICAnaW5wdXRBbW91bnQnLFxuICAgICAgJ2NoYW5nZU91dHB1dHMnLFxuICAgICAgJ2NoYW5nZUFtb3VudCcsXG4gICAgICAnZmVlJyxcbiAgICAgICd0eXBlJyxcbiAgICBdO1xuICAgIGNvbnN0IGlucHV0czogSVRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSBbXTtcbiAgICBjb25zdCBvdXRwdXRzOiBJVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IFtdO1xuICAgIGxldCBpbnB1dEFtb3VudCA9ICcwJztcbiAgICBsZXQgb3V0cHV0QW1vdW50ID0gJzAnO1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5Db3NpZ25EZWxlZ2F0aW9uQWNjZXB0OlxuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuVHJhbnNmZXJBY2NlcHQ6XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5UcmFuc2ZlclJlamVjdDoge1xuICAgICAgICBjb25zdCB0eERhdGEgPSB0aGlzLnRvSnNvbigpO1xuICAgICAgICBjb25zdCBpbnB1dDogSVRyYW5zYWN0aW9uUmVjaXBpZW50ID0ge1xuICAgICAgICAgIGFkZHJlc3M6IHR4RGF0YS5zZW5kZXIsXG4gICAgICAgICAgYW1vdW50OiB0eERhdGEuYW1vdW50LFxuICAgICAgICB9O1xuICAgICAgICBpZiAodHhEYXRhLnRva2VuKSB7XG4gICAgICAgICAgaW5wdXQudG9rZW5OYW1lID0gdHhEYXRhLnRva2VuO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0cy5wdXNoKGlucHV0KTtcbiAgICAgICAgaW5wdXRBbW91bnQgPSB0eERhdGEuYW1vdW50O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkFsbG9jYXRpb25BbGxvY2F0ZTpcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNlbmQ6IHtcbiAgICAgICAgY29uc3QgdHhEYXRhID0gdGhpcy50b0pzb24oKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0OiBJVHJhbnNhY3Rpb25SZWNpcGllbnQgPSB7XG4gICAgICAgICAgYWRkcmVzczogdHhEYXRhLnJlY2VpdmVyLFxuICAgICAgICAgIGFtb3VudDogdHhEYXRhLmFtb3VudCxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHR4RGF0YS5tZW1vSWQpIHtcbiAgICAgICAgICBvdXRwdXQubWVtbyA9IHR4RGF0YS5tZW1vSWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR4RGF0YS50b2tlbikge1xuICAgICAgICAgIG91dHB1dC50b2tlbk5hbWUgPSB0eERhdGEudG9rZW47XG4gICAgICAgIH1cbiAgICAgICAgb3V0cHV0cy5wdXNoKG91dHB1dCk7XG4gICAgICAgIG91dHB1dEFtb3VudCA9IHR4RGF0YS5hbW91bnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuVHJhbnNmZXJPZmZlcldpdGhkcmF3bjpcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLkFsbG9jYXRpb25BbGxvY2F0ZVdpdGhkcmF3bjoge1xuICAgICAgICBjb25zdCB0eERhdGEgPSB0aGlzLnRvSnNvbigpO1xuICAgICAgICBjb25zdCBpbnB1dDogSVRyYW5zYWN0aW9uUmVjaXBpZW50ID0ge1xuICAgICAgICAgIGFkZHJlc3M6IHR4RGF0YS5yZWNlaXZlcixcbiAgICAgICAgICBhbW91bnQ6IHR4RGF0YS5hbW91bnQsXG4gICAgICAgIH07XG4gICAgICAgIGlmICh0eERhdGEudG9rZW4pIHtcbiAgICAgICAgICBpbnB1dC50b2tlbk5hbWUgPSB0eERhdGEudG9rZW47XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXRzLnB1c2goaW5wdXQpO1xuICAgICAgICBpbnB1dEFtb3VudCA9IHR4RGF0YS5hbW91bnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuQ2FudG9uQ29tbWFuZDoge1xuICAgICAgICBjb25zdCBjb21tYW5kU3VtbWFyeSA9IHRoaXMuYnVpbGRDYW50b25Db21tYW5kU3VtbWFyeSgpO1xuICAgICAgICBjb25zdCBleHBsYW5hdGlvbjogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiA9IHtcbiAgICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgICBkaXNwbGF5T3JkZXIsXG4gICAgICAgICAgb3V0cHV0czogb3V0cHV0cyxcbiAgICAgICAgICBvdXRwdXRBbW91bnQ6IG91dHB1dEFtb3VudCxcbiAgICAgICAgICBpbnB1dHM6IGlucHV0cyxcbiAgICAgICAgICBpbnB1dEFtb3VudDogaW5wdXRBbW91bnQsXG4gICAgICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICAgICAgY2hhbmdlQW1vdW50OiAnMCcsXG4gICAgICAgICAgZmVlOiB7IGZlZTogJzAnIH0sXG4gICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoY29tbWFuZFN1bW1hcnkpIHtcbiAgICAgICAgICBleHBsYW5hdGlvbi5jYW50b25Db21tYW5kID0gY29tbWFuZFN1bW1hcnk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV4cGxhbmF0aW9uO1xuICAgICAgfVxuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuRW5kSW52ZXN0b3JPbmJvYXJkaW5nT2ZmZXI6IHtcbiAgICAgICAgLy8gTm9uLXNpZ25hYmxlIG5vdGlmaWNhdGlvbiByZWNvcmQg4oCUIG5vIGlucHV0cywgb3V0cHV0cywgb3IgYW1vdW50cyB0byBleHBsYWluLlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICAgIGRpc3BsYXlPcmRlcixcbiAgICAgICAgICBvdXRwdXRzOiBbXSxcbiAgICAgICAgICBvdXRwdXRBbW91bnQ6ICcwJyxcbiAgICAgICAgICBpbnB1dHM6IFtdLFxuICAgICAgICAgIGlucHV0QW1vdW50OiAnMCcsXG4gICAgICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICAgICAgY2hhbmdlQW1vdW50OiAnMCcsXG4gICAgICAgICAgZmVlOiB7IGZlZTogJzAnIH0sXG4gICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBkaXNwbGF5T3JkZXIsXG4gICAgICBvdXRwdXRzOiBvdXRwdXRzLFxuICAgICAgb3V0cHV0QW1vdW50OiBvdXRwdXRBbW91bnQsXG4gICAgICBpbnB1dHM6IGlucHV0cyxcbiAgICAgIGlucHV0QW1vdW50OiBpbnB1dEFtb3VudCxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgY2hhbmdlQW1vdW50OiAnMCcsXG4gICAgICBmZWU6IHsgZmVlOiAnMCcgfSxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENhbnRvbkNvbW1hbmRTdW1tYXJ5KCk6IENhbnRvbkNvbW1hbmRFeHBsYWluIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCByYXdQcmVwYXJlZCA9IHRoaXMuX3ByZXBhcmVDb21tYW5kPy5wcmVwYXJlZFRyYW5zYWN0aW9uO1xuICAgIGlmICghcmF3UHJlcGFyZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBpbmZvID0gdXRpbHMuZXh0cmFjdENhbnRvbkNvbW1hbmRJbmZvKHJhd1ByZXBhcmVkKTtcbiAgICAgIGNvbnN0IHRlbXBsYXRlSWRTdHIgPSBgJHtpbmZvLnRlbXBsYXRlSWQucGFja2FnZUlkfToke2luZm8udGVtcGxhdGVJZC5tb2R1bGVOYW1lfToke2luZm8udGVtcGxhdGVJZC5lbnRpdHlOYW1lfWA7XG4gICAgICBjb25zdCBzdW1tYXJ5OiBDYW50b25Db21tYW5kRXhwbGFpbiA9IHtcbiAgICAgICAga2luZDogaW5mby5raW5kLFxuICAgICAgICB0ZW1wbGF0ZUlkOiB0ZW1wbGF0ZUlkU3RyLFxuICAgICAgICBhY3RBczogdGhpcy5fY2FudG9uQ29tbWFuZEFjdEFzID8/IFtdLFxuICAgICAgfTtcbiAgICAgIGlmIChpbmZvLmNob2ljZSAhPT0gdW5kZWZpbmVkKSBzdW1tYXJ5LmNob2ljZSA9IGluZm8uY2hvaWNlO1xuICAgICAgaWYgKGluZm8uY29udHJhY3RJZCAhPT0gdW5kZWZpbmVkICYmIGluZm8uY29udHJhY3RJZCAhPT0gJycpIHN1bW1hcnkuY29udHJhY3RJZCA9IGluZm8uY29udHJhY3RJZDtcbiAgICAgIHJldHVybiBzdW1tYXJ5O1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,9 +1,20 @@
1
1
  import { BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
2
2
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { AllocationAllocateBuilder } from './allocationAllocateBuilder';
4
+ import { AllocationAllocateWithdrawnBuilder } from './allocationAllocateWithdrawnBuilder';
5
+ import { AllocationRejectBuilder } from './allocationRejectBuilder';
6
+ import { AllocationRequestBuilder } from './allocationRequestBuilder';
7
+ import { CantonCommandBuilder } from './cantonCommandBuilder';
8
+ import { EndInvestorOnboardingOfferBuilder } from './endInvestorOnboardingOfferBuilder';
9
+ import { CosignDelegationAcceptBuilder } from './cosignDelegationAcceptBuilder';
10
+ import { CosignDelegationProposalBuilder } from './cosignDelegationProposalBuilder';
11
+ import { OneStepPreApprovalBuilder } from './oneStepPreApprovalBuilder';
3
12
  import { TransferAcceptanceBuilder } from './transferAcceptanceBuilder';
4
13
  import { TransferAcknowledgeBuilder } from './transferAcknowledgeBuilder';
5
14
  import { TransactionBuilder } from './transactionBuilder';
6
15
  import { TransferBuilder } from './transferBuilder';
16
+ import { TransferOfferWithdrawnBuilder } from './transferOfferWithdrawnBuilder';
17
+ import { TransferRejectionBuilder } from './transferRejectionBuilder';
7
18
  import { Transaction } from './transaction/transaction';
8
19
  import { WalletInitBuilder } from './walletInitBuilder';
9
20
  import { WalletInitTransaction } from './walletInitialization/walletInitTransaction';
@@ -11,8 +22,19 @@ export declare class TransactionBuilderFactory extends BaseTransactionBuilderFac
11
22
  constructor(_coinConfig: Readonly<CoinConfig>);
12
23
  /** @inheritdoc */
13
24
  from(raw: string): TransactionBuilder | WalletInitBuilder;
25
+ getAllocationAllocateBuilder(tx?: Transaction): AllocationAllocateBuilder;
26
+ getAllocationAllocateWithdrawnBuilder(tx?: Transaction): AllocationAllocateWithdrawnBuilder;
27
+ getAllocationRejectBuilder(tx?: Transaction): AllocationRejectBuilder;
28
+ getAllocationRequestBuilder(tx?: Transaction): AllocationRequestBuilder;
29
+ getCantonCommandBuilder(tx?: Transaction): CantonCommandBuilder;
30
+ getEndInvestorOnboardingOfferBuilder(tx?: Transaction): EndInvestorOnboardingOfferBuilder;
31
+ getOneStepPreapprovalBuilder(tx?: Transaction): OneStepPreApprovalBuilder;
14
32
  getTransferAcceptanceBuilder(tx?: Transaction): TransferAcceptanceBuilder;
15
33
  getTransferAcknowledgeBuilder(tx?: Transaction): TransferAcknowledgeBuilder;
34
+ getCosignDelegationProposalBuilder(tx?: Transaction): CosignDelegationProposalBuilder;
35
+ getCosignDelegationAcceptBuilder(tx?: Transaction): CosignDelegationAcceptBuilder;
36
+ getTransferOfferWithdrawnBuilder(tx?: Transaction): TransferOfferWithdrawnBuilder;
37
+ getTransferRejectBuilder(tx?: Transaction): TransferRejectionBuilder;
16
38
  /** @inheritdoc */
17
39
  getTransferBuilder(tx?: Transaction): TransferBuilder;
18
40
  /** @inheritdoc */