@bitgo/sdk-coin-ton 3.11.5 → 3.12.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../../test/resources/ton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,MAAM,YAAY,CAAC;AAGhC,eAAO,MAAM,WAAW;;;;;;;;CAQvB,CAAC;AAEF,eAAO,MAAM,SAAS;;;CAUrB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;CAK3B,CAAC;AAEF,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;CAQvB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,SAAS,EAKtC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,SAAS,EAKjC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;CAgBjC,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;CAa7C,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;CAiBtC,CAAC;AAEF,eAAO,MAAM,mCAAmC;;;;;;CAM/C,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;CAM1C,CAAC;AAEF,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;CAgBpD,CAAC"}
1
+ {"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../../test/resources/ton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,MAAM,YAAY,CAAC;AAGhC,eAAO,MAAM,WAAW;;;;;;;;CAQvB,CAAC;AAEF,eAAO,MAAM,SAAS;;;CAUrB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;CAK3B,CAAC;AAEF,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;CAQvB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,SAAS,EAKtC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,SAAS,EAKjC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;CAgBjC,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;CAa7C,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;CAiBtC,CAAC;AAEF,eAAO,MAAM,mCAAmC;;;;;;CAM/C,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;CAM1C,CAAC;AAEF,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;CAgBpD,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;CAgB7C,CAAC;AAEF,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;CAiBhD,CAAC;AAEF,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;CAepD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.signedSingleNominatorWithdrawTransaction = exports.signedSendTransactionForMemoId = exports.signedTokenSendTransactionForMemoId = exports.signedTokenSendTransaction = exports.v3CompatibleSignedSendTransaction = exports.signedSendTransaction = exports.recipients = exports.tokenRecipients = exports.tokenSender = exports.sender = exports.vestingContract = exports.addresses = exports.privateKeys = exports.AMOUNT = void 0;
3
+ exports.signedTonWhalesFullWithdrawalTransaction = exports.signedTonWhalesWithdrawalTransaction = exports.signedTonWhalesDepositTransaction = exports.signedSingleNominatorWithdrawTransaction = exports.signedSendTransactionForMemoId = exports.signedTokenSendTransactionForMemoId = exports.signedTokenSendTransaction = exports.v3CompatibleSignedSendTransaction = exports.signedSendTransaction = exports.recipients = exports.tokenRecipients = exports.tokenSender = exports.sender = exports.vestingContract = exports.addresses = exports.privateKeys = exports.AMOUNT = void 0;
4
4
  exports.AMOUNT = 123400000;
5
5
  // Can get the private keys from sandboxing if you know the seed
6
6
  exports.privateKeys = {
@@ -130,4 +130,52 @@ exports.signedSingleNominatorWithdrawTransaction = {
130
130
  amount: '123400000',
131
131
  },
132
132
  };
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9yZXNvdXJjZXMvdG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVhLFFBQUEsTUFBTSxHQUFHLFNBQVMsQ0FBQztBQUVoQyxnRUFBZ0U7QUFDbkQsUUFBQSxXQUFXLEdBQUc7SUFDekIsT0FBTyxFQUFFLGtFQUFrRTtJQUMzRSxPQUFPLEVBQUUsa0VBQWtFO0lBQzNFLE9BQU8sRUFBRSxrRUFBa0U7SUFDM0UsT0FBTyxFQUFFLGtFQUFrRTtJQUMzRSxPQUFPLEVBQUUsa0VBQWtFO0lBQzNFLE9BQU8sRUFBRSxrRUFBa0U7SUFDM0UsT0FBTyxFQUFFLGtFQUFrRTtDQUM1RSxDQUFDO0FBRVcsUUFBQSxTQUFTLEdBQUc7SUFDdkIsY0FBYyxFQUFFO1FBQ2Qsa0RBQWtEO1FBQ2xELGtEQUFrRDtLQUNuRDtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLGNBQWM7UUFDZCxzQ0FBc0M7UUFDdEMsOENBQThDO0tBQy9DO0NBQ0YsQ0FBQztBQUVXLFFBQUEsZUFBZSxHQUFHO0lBQzdCLE9BQU8sRUFBRSxrREFBa0Q7SUFDM0QsaUJBQWlCLEVBQUUsa0RBQWtEO0lBQ3JFLFNBQVMsRUFBRSxrRUFBa0U7SUFDN0UsU0FBUyxFQUFFLDBGQUEwRjtDQUN0RyxDQUFDO0FBRVcsUUFBQSxNQUFNLEdBQUc7SUFDcEIsT0FBTyxFQUFFLGtEQUFrRDtJQUMzRCxTQUFTLEVBQUUsa0VBQWtFO0NBQzlFLENBQUM7QUFFVyxRQUFBLFdBQVcsR0FBRztJQUN6QixPQUFPLEVBQUUsa0RBQWtEO0lBQzNELFNBQVMsRUFBRSxrRUFBa0U7SUFDN0UsYUFBYSxFQUFFLGtEQUFrRDtJQUNqRSxTQUFTLEVBQUUsU0FBUztJQUNwQixnQkFBZ0IsRUFBRSxTQUFTO0lBQzNCLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsVUFBVSxFQUFFLFVBQVU7Q0FDdkIsQ0FBQztBQUVXLFFBQUEsZUFBZSxHQUFnQjtJQUMxQztRQUNFLE9BQU8sRUFBRSxrREFBa0Q7UUFDM0QsTUFBTSxFQUFFLFlBQVk7S0FDckI7Q0FDRixDQUFDO0FBRVcsUUFBQSxVQUFVLEdBQWdCO0lBQ3JDO1FBQ0UsT0FBTyxFQUFFLGlCQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNwQyxNQUFNLEVBQUUsY0FBTSxDQUFDLFFBQVEsRUFBRTtLQUMxQjtDQUNGLENBQUM7QUFFVyxRQUFBLHFCQUFxQixHQUFHO0lBQ25DLEVBQUUsRUFBRSwwUEFBMFA7SUFDOVAsWUFBWSxFQUNWLDBQQUEwUDtJQUM1UCxJQUFJLEVBQUUsOENBQThDO0lBQ3BELGNBQWMsRUFBRSw4Q0FBOEM7SUFDOUQsUUFBUSxFQUFFLDhDQUE4QztJQUN4RCxrQkFBa0IsRUFBRSw4Q0FBOEM7SUFDbEUsU0FBUyxFQUFFO1FBQ1QsT0FBTyxFQUFFLGtEQUFrRDtRQUMzRCxNQUFNLEVBQUUsVUFBVTtLQUNuQjtJQUNELG1CQUFtQixFQUFFO1FBQ25CLE9BQU8sRUFBRSxrREFBa0Q7UUFDM0QsTUFBTSxFQUFFLFVBQVU7S0FDbkI7Q0FDRixDQUFDO0FBRVcsUUFBQSxpQ0FBaUMsR0FBRztJQUMvQyxZQUFZLEVBQ1Ysc1BBQXNQO0lBQ3hQLGNBQWMsRUFBRSw4Q0FBOEM7SUFDOUQsa0JBQWtCLEVBQUUsOENBQThDO0lBQ2xFLFNBQVMsRUFBRTtRQUNULE9BQU8sRUFBRSxrREFBa0Q7UUFDM0QsTUFBTSxFQUFFLFVBQVU7S0FDbkI7SUFDRCxzQkFBc0IsRUFBRTtRQUN0QixPQUFPLEVBQUUsa0RBQWtEO1FBQzNELE1BQU0sRUFBRSxVQUFVO0tBQ25CO0NBQ0YsQ0FBQztBQUVXLFFBQUEsMEJBQTBCLEdBQUc7SUFDeEMsRUFBRSxFQUFFLHM1Q0FBczVDO0lBQzE1QyxHQUFHLEVBQUUsMDRDQUEwNEM7SUFDLzRDLFlBQVksRUFDVixzNUNBQXM1QztJQUN4NUMsSUFBSSxFQUFFLDhDQUE4QztJQUNwRCxjQUFjLEVBQUUsOENBQThDO0lBQzlELFFBQVEsRUFBRSw4Q0FBOEM7SUFDeEQsa0JBQWtCLEVBQUUsOENBQThDO0lBQ2xFLFNBQVMsRUFBRTtRQUNULE9BQU8sRUFBRSxrREFBa0Q7UUFDM0QsTUFBTSxFQUFFLFlBQVk7S0FDckI7SUFDRCxtQkFBbUIsRUFBRTtRQUNuQixPQUFPLEVBQUUsa0RBQWtEO1FBQzNELE1BQU0sRUFBRSxZQUFZO0tBQ3JCO0NBQ0YsQ0FBQztBQUVXLFFBQUEsbUNBQW1DLEdBQUc7SUFDakQsRUFBRSxFQUFFLHM1Q0FBczVDO0lBQzE1QyxTQUFTLEVBQUU7UUFDVCxPQUFPLEVBQUUsOERBQThEO1FBQ3ZFLE1BQU0sRUFBRSxZQUFZO0tBQ3JCO0NBQ0YsQ0FBQztBQUVXLFFBQUEsOEJBQThCLEdBQUc7SUFDNUMsRUFBRSxFQUFFLDBQQUEwUDtJQUM5UCxTQUFTLEVBQUU7UUFDVCxPQUFPLEVBQUUsOERBQThEO1FBQ3ZFLE1BQU0sRUFBRSxVQUFVO0tBQ25CO0NBQ0YsQ0FBQztBQUVXLFFBQUEsd0NBQXdDLEdBQUc7SUFDdEQsRUFBRSxFQUFFLDh4Q0FBOHhDO0lBQ2x5QyxZQUFZLEVBQ1YsOHhDQUE4eEM7SUFDaHlDLElBQUksRUFBRSw4Q0FBOEM7SUFDcEQsY0FBYyxFQUFFLDhDQUE4QztJQUM5RCxRQUFRLEVBQUUsOENBQThDO0lBQ3hELGtCQUFrQixFQUFFLDhDQUE4QztJQUNsRSxTQUFTLEVBQUU7UUFDVCxPQUFPLEVBQUUsa0RBQWtEO1FBQzNELE1BQU0sRUFBRSxXQUFXO0tBQ3BCO0lBQ0QsbUJBQW1CLEVBQUU7UUFDbkIsT0FBTyxFQUFFLGtEQUFrRDtRQUMzRCxNQUFNLEVBQUUsV0FBVztLQUNwQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWNpcGllbnQgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuXG5leHBvcnQgY29uc3QgQU1PVU5UID0gMTIzNDAwMDAwO1xuXG4vLyBDYW4gZ2V0IHRoZSBwcml2YXRlIGtleXMgZnJvbSBzYW5kYm94aW5nIGlmIHlvdSBrbm93IHRoZSBzZWVkXG5leHBvcnQgY29uc3QgcHJpdmF0ZUtleXMgPSB7XG4gIHBydktleTE6ICc0M2U4NTk0ODU0Y2I1Mzk0N2M0YTFhMmZhYjkyNmFmMTFlMTIzZjYyNTFkY2Q1YmQwZGZiMTAwNjA0MTg2NDMwJyxcbiAgcHJ2S2V5MjogJ2MwYzNiOWRjMDk5MzIxMjFlZTM1MWIyNDQ4YzUwYTNhZTI1NzFiMTI5NTEyNDVjODVmM2JkOTVkNWU3YTA2ZjgnLFxuICBwcnZLZXkzOiAnM2Q2ODIyYmYxNDExNWY0N2E1NzI0YjY4Yzg1MTYwMjIxZWFjYmU2NjRlODkyYTRhOWRkM2I0ZGQ2NDAxNmVjZScsXG4gIHBydktleTQ6ICdiYTRjMzEzYmNmODMwYjgyNWFkYWEzYWUwOGNmZGU4NmU3OWUxNWE4NGU2ZmRjM2IxZmUzNWE2YmI4MmQ5ZjIyJyxcbiAgcHJ2S2V5NTogJ2ZkYjllYTFiYjdmMDEyMGNlNmViN2IwNDdhYzY3NDRjNDI5OGYyNzc3NTYzMzBlMThkYmQ1NDE5NTkwYTFlZjInLFxuICBwcnZLZXk2OiAnZjY2ZDMwMzU3ZTZhNDE4MGU5YWI0MTg2NWYwZjM0N2NiYWZmZTYwZjlkNDk5ZmU2YzJmMjcwNDYzMjc2NTJmNicsXG4gIHBydktleTc6ICczMzlmOWI3YzhiMDM5ZTFmNzFjYzI4YzVmYTMwZGIyOTkxMzYyNGUyZDUzZDQzMjNhMjY2NGQzY2ZiNWIwN2E0Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRyZXNzZXMgPSB7XG4gIHZhbGlkQWRkcmVzc2VzOiBbXG4gICAgJ1VRQTBpOC1DZEduRl9EaFVISGY5MlIxT05INnNJQTl2TFpfV0xjQ0loZkJCWDFhRCcsXG4gICAgJ0VRQnVFdWg0N3N2ME5TQ2pSc1F1a011MWpLaTlRVXNwc1FHZVlMNExXdHJVODFDYicsXG4gIF0sXG4gIGludmFsaWRBZGRyZXNzZXM6IFtcbiAgICAncmFuZG9tU3RyaW5nJyxcbiAgICAnMHhjNDE3M2E4MDQ0MDZhMzY1ZTY5ZGZiMjk3ZGRmZ3NkY3ZmJyxcbiAgICAnNW5lN3BoQTQ4SnJ2cG4zOUF0dXBCOFprQ0NBeThnTFRmcEdpaFpQdURxZW4nLFxuICBdLFxufTtcblxuZXhwb3J0IGNvbnN0IHZlc3RpbmdDb250cmFjdCA9IHtcbiAgYWRkcmVzczogJ1VRRDBlaWkyQ042cF9oem5YY3FCRmxISGJjQlFTaFcyVmoxRWFJSzJNbnhWcldDNicsXG4gIGFkZHJlc3NCb3VuY2VhYmxlOiAnRVFEMGVpaTJDTjZwX2h6blhjcUJGbEhIYmNCUVNoVzJWajFFYUlLMk1ueFZyVDFfJyxcbiAgcHVibGljS2V5OiAnMzM5ZjliN2M4YjAzOWUxZjcxY2MyOGM1ZmEzMGRiMjk5MTM2MjRlMmQ1M2Q0MzIzYTI2NjRkM2NmYjViMDdhNCcsXG4gIHNpZ25hdHVyZTogJzRLMmlYUTVHNWxVLzFUS2hmUW40eGFBZ0w3c0s5MW1GUWI2T2l4a1J3cFpGSkNZU2JobURKcUxKZldSVlJqZmJMK2NYNEhqQzdzaXFzR01EVWdoNERRPT0nLFxufTtcblxuZXhwb3J0IGNvbnN0IHNlbmRlciA9IHtcbiAgYWRkcmVzczogJ1VRQWJKdWctay10dWZXTWpFQzFSS1NNMGlpSlREVWNZa0M3eldBTkhya1Q1NUFmZycsXG4gIHB1YmxpY0tleTogJ2MwYzNiOWRjMDk5MzIxMjFlZTM1MWIyNDQ4YzUwYTNhZTI1NzFiMTI5NTEyNDVjODVmM2JkOTVkNWU3YTA2ZjgnLFxufTtcblxuZXhwb3J0IGNvbnN0IHRva2VuU2VuZGVyID0ge1xuICBhZGRyZXNzOiAnVVFDcVF6ZnlnMGNaLTh0OXYyWW9IbUZGeEc1amdqdlFSVFoyeWVEak81ejVaVUY0JyxcbiAgcHVibGljS2V5OiAnZDM1MzAxMDFkNDFlMTZkN2QzNDU0NjY3Nzc3NmFmYzg1YjI3MWJiM2VjZjZiMTlhZTA4ZTI3YTkyMDcyNGE2OScsXG4gIGpldHRvbkFkZHJlc3M6ICdVUUFDbjZXanVSVS1fWkpUb1Q3QXN3ZDRCbkxPM3Z1Q0VaSDRMVVFvUU5pTWMzU0UnLFxuICB0b25BbW91bnQ6ICc1MDAwMDAwJyxcbiAgZm9yd2FyZFRvbkFtb3VudDogJzEwMDAwMDAnLFxuICBtZXNzYWdlOiAnamV0dG9uIHRlc3RpbmcnLFxuICBleHBpcmVUaW1lOiAxMjM0NTY3ODkwLFxufTtcblxuZXhwb3J0IGNvbnN0IHRva2VuUmVjaXBpZW50czogUmVjaXBpZW50W10gPSBbXG4gIHtcbiAgICBhZGRyZXNzOiAnVVFCLUNNNkRGLWpwcTlYVmRpU2RlZkFNVTVLQzFncFp1WUJGcC1RNjVhVWhuME9QJyxcbiAgICBhbW91bnQ6ICcxMDAwMDAwMDAwJyxcbiAgfSxcbl07XG5cbmV4cG9ydCBjb25zdCByZWNpcGllbnRzOiBSZWNpcGllbnRbXSA9IFtcbiAge1xuICAgIGFkZHJlc3M6IGFkZHJlc3Nlcy52YWxpZEFkZHJlc3Nlc1swXSxcbiAgICBhbW91bnQ6IEFNT1VOVC50b1N0cmluZygpLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IHNpZ25lZFNlbmRUcmFuc2FjdGlvbiA9IHtcbiAgdHg6ICd0ZTZjY2tFQkFnRUFxUUFCNFlnQkpBeG83dnFIRisrTEo0YkMva0o4QTF1VlJza3JLbHJLSlo4cklCMHRGK2dDYWRsU1graFBvMm1taFp5aTBwM3pUVlVZVlJrY21yQ205N2NTVUZTYTJ2enZDQXJNM0FQZyt3dzkycjNJY2tsTmpuemZLT2d5c0pWUVhpQ3ZqOVNBYVUxTkdMc290dlJ3QUFBQU1BQWNBUUJtUWdBYVJlZkJPalRpL2h3cURqdis3STZuR2o5V0VBZTNscy9yRnVCRVF2Z2dyNXpFdEFBQUFBQUFBQUFBQUFBQUFBQUFkZlpPN3c9PScsXG4gIHR4Qm91bmNlYWJsZTpcbiAgICAndGU2Y2NrRUJBZ0VBcVFBQjRZZ0JKQXhvN3ZxSEYrK0xKNGJDL2tKOEExdVZSc2tyS2xyS0paOHJJQjB0RitnQ2FkbFNYK2hQbzJtbWhaeWkwcDN6VFZVWVZSa2NtckNtOTdjU1VGU2Eydnp2Q0FyTTNBUGcrd3c5MnIzSWNrbE5qbnpmS09neXNKVlFYaUN2ajlTQWFVMU5HTHNvdHZSd0FBQUFNQUFjQVFCbVlnQWFSZWZCT2pUaS9od3FEanYrN0k2bkdqOVdFQWUzbHMvckZ1QkVRdmdncjV6RXRBQUFBQUFBQUFBQUFBQUFBQUFBWXViTTB3PT0nLFxuICB0eElkOiAndHV5T2t5RlVNdl9uZVZfRmVOQkgyNE5kNGNNTDJqVWdEUDR6akdrdU9GST0nLFxuICB0eElkQm91bmNlYWJsZTogJ3R1eU9reUZVTXZfbmVWX0ZlTkJIMjROZDRjTUwyalVnRFA0empHa3VPRkk9JyxcbiAgc2lnbmFibGU6ICdrNFhVbWpCNjVqM2tsTVhDWGRoNVZzM2JKWnpvM05TZm5YSzhOSVlGYXlJPScsXG4gIGJvdW5jZWFibGVTaWduYWJsZTogJ2s0WFVtakI2NWoza2xNWENYZGg1VnMzYkpaem8zTlNmblhLOE5JWUZheUk9JyxcbiAgcmVjaXBpZW50OiB7XG4gICAgYWRkcmVzczogJ0VRQTBpOC1DZEduRl9EaFVISGY5MlIxT05INnNJQTl2TFpfV0xjQ0loZkJCWHd0RycsXG4gICAgYW1vdW50OiAnMTAwMDAwMDAnLFxuICB9LFxuICByZWNpcGllbnRCb3VuY2VhYmxlOiB7XG4gICAgYWRkcmVzczogJ1VRQTBpOC1DZEduRl9EaFVISGY5MlIxT05INnNJQTl2TFpfV0xjQ0loZkJCWDFhRCcsXG4gICAgYW1vdW50OiAnMTAwMDAwMDAnLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IHYzQ29tcGF0aWJsZVNpZ25lZFNlbmRUcmFuc2FjdGlvbiA9IHtcbiAgdHhCb3VuY2VhYmxlOlxuICAgICd0ZTZjY2tFQkFnRUFxQUFCMzRnQjZQUlJiQkc5VS93NXpydVZBaXlqanR1QW9KUXJiS3g2aU5FRmJHVDRxMW9IQlcwUzZISTNNcW4rcVpVTDZFL0dMUUVCZmRoWHVzd3FEZlIwV01pT0ZMSXBJVENUY013Wk5SWkw2eUtxTWI3WmZ6aS9BOFlYZGtWVmd4Z2FrRVBBYVUxTkdMdEgwQ0RBQUFBQUdCd0JBR1ppQUdjSmxtRjBVdkVyRHNpNVJzMjFTUDcwclAxSzM2d3RqQkltcXRiVjk2RXVITVMwQUFBQUFBQUFBQUFBQUFBQUFBQWlXNzJFJyxcbiAgdHhJZEJvdW5jZWFibGU6ICc0aTFHQ3lONUlrUVEtdkVTdk5sNFdwMWVqcDdMZmF6UmxOV3pVYnRHd1NBPScsXG4gIGJvdW5jZWFibGVTaWduYWJsZTogJ2xPRU9UelBYblBvdFRUSGk3eGdpdkZOVUhIK3hVZ3EvbktwYVAvYksrWG89JyxcbiAgcmVjaXBpZW50OiB7XG4gICAgYWRkcmVzczogJ0VRRE9FeXpDNktYaVZoMlJjbzJiYXBIOTZWbjZsYjlZV3hna1RWV3RxLTlDWEwwbScsXG4gICAgYW1vdW50OiAnMTAwMDAwMDAnLFxuICB9LFxuICByZWNpcGllbnROb25Cb3VuY2VhYmxlOiB7XG4gICAgYWRkcmVzczogJ1VRRE9FeXpDNktYaVZoMlJjbzJiYXBIOTZWbjZsYjlZV3hna1RWV3RxLTlDWE9EaicsXG4gICAgYW1vdW50OiAnMTAwMDAwMDAnLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IHNpZ25lZFRva2VuU2VuZFRyYW5zYWN0aW9uID0ge1xuICB0eDogJ3RlNmNja0VDR2dFQUJCMEFBdUdJQVZTR2IrVUdqalAzbHZ0K3pGQTh3b3VJM01jRWQ2Q0tiTzJUd2NaM09mTEtHQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNtcG94ZEpsZ0xTQUFBQUFBQURnRVhBZ0UwQWhZQkZQOEE5S1FUOUx6eXlBc0RBZ0VnQkJFQ0FVZ0ZDQUxtMEFIUTB3TWhjYkNTWHdUZ0l0ZEp3U0NTWHdUZ0F0TWZJWUlRY0d4MVo3MGlnaEJrYzNSeXZiQ1NYd1hnQS9wQU1DRDZSQUhJeWdmTC84blE3VVRRZ1FGQTF5SDBCREJjZ1FFSTlBcHZvVEd6a2w4SDRBWFRQOGdsZ2hCd2JIVm51cEk0TU9NTkE0SVFaSE4wY3JxU1h3YmpEUVlIQUhnQitnRDBCREQ0SjI4aU1GQUtvU0crOHVCUWdoQndiSFZuZ3g2eGNJQVlVQVRMQlNiUEZsajZBaG4wQU10cEY4c2ZVbURMUHlESmdFRDdBQVlBaWxBRWdRRUk5Rmt3N1VUUWdRRkExeURJQWM4VzlBREo3VlFCY3JDT0k0SVFaSE4wY29NZXNYQ0FHRkFGeXdWUUE4OFdJL29DRTh0cXl4L0xQOG1BUVBzQWtsOEQ0Z0lCSUFrUUFnRWdDZzhDQVZnTERBQTlzcDM3VVRRZ1FGQTF5SDBCREFDeU1vSHkvL0owQUdCQVFqMENtK2hNWUFJQklBME9BQm10em5haWFFQWdhNURyaGYvQUFCbXZIZmFpYUVBUWE1RHJoWS9BQUJHNHlYN1VUUTF3c2ZnQVdiMGtLMjlxSm9RSUNnYTVENkFoaEhEVUNBaEhwSk45S1pFTTVwQStuL21EZUJLQUczZ1FGSW1IRlo4eGhBVDQ4b01JMXhnZzB4L1RIOU1mQXZnanUvSms3VVRRMHgvVEg5UC85QVRSVVVPNjhxRlJVYnJ5b2dYNUFWUVFaUGtROHFQNEFDU2t5TXNmVWtETEgxSXd5LzlTRVBRQXllMVUrQThCMHdjaHdBQ2ZiRkdUSU5kS2x0TUgxQUw3QU9ndzRDSEFBZU1BSWNBQzR3QUJ3QU9STU9NTkE2VEl5eDhTeXgvTC94SVRGQlVBYnRJSCtnRFUxQ0w1QUFYSXlnY1Z5Ly9KMEhkMGdCakl5d1hMQWlMUEZsQUYrZ0lVeTJzU3pNekpjL3NBeUVBVWdRRUk5Rkh5cHdJQWNJRUJDTmNZK2dEVFA4aFVJRWVCQVFqMFVmS25naEJ1YjNSbGNIU0FHTWpMQmNzQ1VBYlBGbEFFK2dJVXkyb1N5eC9MUDhseit3QUNBR3lCQVFqWEdQb0Ewejh3VWlTQkFRajBXZktuZ2hCa2MzUnljSFNBR01qTEJjc0NVQVhQRmxBRCtnSVR5MnJMSHhMTFA4bHord0FBQ3ZRQXllMVVBRkVBQUFBQUthbWpGOU5UQVFIVUhoYlgwMFZHWjNkMnI4aGJKeHV6N1BheG11Q09KNmtnY2twcFFBRm1RZ0FCVDlMUjNJcWZmc2twMEo5Z1dZTzhBemxuYjMzQkNNajhGcUlVSUd4R09acGlXZ0FBQUFBQUFBQUFBQUFBQUFBQkdBR3VENHArcFFBQUFBQUFBQUFBUTdtc29BZ0EvQkdkQmkvUjAxZXJxdXhKT3ZQZ0dLY2xCYXdVczNNQWkwL0lkY3RLUXo4QUtwRE4vS0RSeG43eTMyL1ppZ2VZVVhFYm1PQ085QkZObmJKNE9NN25QbGxHSG9TQkdRQWtBQUFBQUdwbGRIUnZiaUIwWlhOMGFXNW53SHR3N0E9PScsXG4gIHR4MjogJ3RlNmNja0VDR2dFQUJCUUFBdUdJQVZTR2IrVUdqalAzbHZ0K3pGQTh3b3VJM01jRWQ2Q0tiTzJUd2NaM09mTEtHQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNtcG94ZEpsZ0xTQUFBQUFBQURnRVhBZ0UwQWhZQkZQOEE5S1FUOUx6eXlBc0RBZ0VnQkJFQ0FVZ0ZDQUxtMEFIUTB3TWhjYkNTWHdUZ0l0ZEp3U0NTWHdUZ0F0TWZJWUlRY0d4MVo3MGlnaEJrYzNSeXZiQ1NYd1hnQS9wQU1DRDZSQUhJeWdmTC84blE3VVRRZ1FGQTF5SDBCREJjZ1FFSTlBcHZvVEd6a2w4SDRBWFRQOGdsZ2hCd2JIVm51cEk0TU9NTkE0SVFaSE4wY3JxU1h3YmpEUVlIQUhnQitnRDBCREQ0SjI4aU1GQUtvU0crOHVCUWdoQndiSFZuZ3g2eGNJQVlVQVRMQlNiUEZsajZBaG4wQU10cEY4c2ZVbURMUHlESmdFRDdBQVlBaWxBRWdRRUk5Rmt3N1VUUWdRRkExeURJQWM4VzlBREo3VlFCY3JDT0k0SVFaSE4wY29NZXNYQ0FHRkFGeXdWUUE4OFdJL29DRTh0cXl4L0xQOG1BUVBzQWtsOEQ0Z0lCSUFrUUFnRWdDZzhDQVZnTERBQTlzcDM3VVRRZ1FGQTF5SDBCREFDeU1vSHkvL0owQUdCQVFqMENtK2hNWUFJQklBME9BQm10em5haWFFQWdhNURyaGYvQUFCbXZIZmFpYUVBUWE1RHJoWS9BQUJHNHlYN1VUUTF3c2ZnQVdiMGtLMjlxSm9RSUNnYTVENkFoaEhEVUNBaEhwSk45S1pFTTVwQStuL21EZUJLQUczZ1FGSW1IRlo4eGhBVDQ4b01JMXhnZzB4L1RIOU1mQXZnanUvSms3VVRRMHgvVEg5UC85QVRSVVVPNjhxRlJVYnJ5b2dYNUFWUVFaUGtROHFQNEFDU2t5TXNmVWtETEgxSXd5LzlTRVBRQXllMVUrQThCMHdjaHdBQ2ZiRkdUSU5kS2x0TUgxQUw3QU9ndzRDSEFBZU1BSWNBQzR3QUJ3QU9STU9NTkE2VEl5eDhTeXgvTC94SVRGQlVBYnRJSCtnRFUxQ0w1QUFYSXlnY1Z5Ly9KMEhkMGdCakl5d1hMQWlMUEZsQUYrZ0lVeTJzU3pNekpjL3NBeUVBVWdRRUk5Rkh5cHdJQWNJRUJDTmNZK2dEVFA4aFVJRWVCQVFqMFVmS25naEJ1YjNSbGNIU0FHTWpMQmNzQ1VBYlBGbEFFK2dJVXkyb1N5eC9MUDhseit3QUNBR3lCQVFqWEdQb0Ewejh3VWlTQkFRajBXZktuZ2hCa2MzUnljSFNBR01qTEJjc0NVQVhQRmxBRCtnSVR5MnJMSHhMTFA4bHord0FBQ3ZRQXllMVVBRkVBQUFBQUthbWpGOU5UQVFIVUhoYlgwMFZHWjNkMnI4aGJKeHV6N1BheG11Q09KNmtnY2twcFFBRm9ZZ0FCVDlMUjNJcWZmc2twMEo5Z1dZTzhBemxuYjMzQkNNajhGcUlVSUd4R09hQVgxNFFBQUFBQUFBQUFBQUFBQUFBQUFSZ0JyZytLZnFVQUFBQUFBQUFBQUVPNXJLQUlBUHdSblFZdjBkTlhxNnJzU1RyejRCaW5KUVdzRkxOekFJdFB5SFhMU2tNL0FDcVF6ZnlnMGNaKzh0OXYyWW9IbUZGeEc1amdqdlFSVFoyeWVEak81ejVaUnpFdEFSa0FFQUFBQUFCMFpYTjBNZmVvSGc9PScsXG4gIHR4Qm91bmNlYWJsZTpcbiAgICAndGU2Y2NrRUNHZ0VBQkIwQUF1R0lBVlNHYitVR2pqUDNsdnQrekZBOHdvdUkzTWNFZDZDS2JPMlR3Y1ozT2ZMS0dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ21wb3hkSmxnTFNBQUFBQUFBRGdFWEFnRTBBaFlCRlA4QTlLUVQ5THp5eUFzREFnRWdCQkVDQVVnRkNBTG0wQUhRMHdNaGNiQ1NYd1RnSXRkSndTQ1NYd1RnQXRNZklZSVFjR3gxWjcwaWdoQmtjM1J5dmJDU1h3WGdBL3BBTUNENlJBSEl5Z2ZMLzhuUTdVVFFnUUZBMXlIMEJEQmNnUUVJOUFwdm9UR3prbDhINEFYVFA4Z2xnaEJ3YkhWbnVwSTRNT01OQTRJUVpITjBjcnFTWHdiakRRWUhBSGdCK2dEMEJERDRKMjhpTUZBS29TRys4dUJRZ2hCd2JIVm5neDZ4Y0lBWVVBVExCU2JQRmxqNkFobjBBTXRwRjhzZlVtRExQeURKZ0VEN0FBWUFpbEFFZ1FFSTlGa3c3VVRRZ1FGQTF5RElBYzhXOUFESjdWUUJjckNPSTRJUVpITjBjb01lc1hDQUdGQUZ5d1ZRQTg4V0kvb0NFOHRxeXgvTFA4bUFRUHNBa2w4RDRnSUJJQWtRQWdFZ0NnOENBVmdMREFBOXNwMzdVVFFnUUZBMXlIMEJEQUN5TW9IeS8vSjBBR0JBUWowQ20raE1ZQUlCSUEwT0FCbXR6bmFpYUVBZ2E1RHJoZi9BQUJtdkhmYWlhRUFRYTVEcmhZL0FBQkc0eVg3VVRRMXdzZmdBV2Iwa0syOXFKb1FJQ2dhNUQ2QWhoSERVQ0FoSHBKTjlLWkVNNXBBK24vbURlQktBRzNnUUZJbUhGWjh4aEFUNDhvTUkxeGdnMHgvVEg5TWZBdmdqdS9KazdVVFEweC9USDlQLzlBVFJVVU82OHFGUlVicnlvZ1g1QVZRUVpQa1E4cVA0QUNTa3lNc2ZVa0RMSDFJd3kvOVNFUFFBeWUxVStBOEIwd2Nod0FDZmJGR1RJTmRLbHRNSDFBTDdBT2d3NENIQUFlTUFJY0FDNHdBQndBT1JNT01OQTZUSXl4OFN5eC9ML3hJVEZCVUFidElIK2dEVTFDTDVBQVhJeWdjVnkvL0owSGQwZ0JqSXl3WExBaUxQRmxBRitnSVV5MnNTek16SmMvc0F5RUFVZ1FFSTlGSHlwd0lBY0lFQkNOY1krZ0RUUDhoVUlFZUJBUWowVWZLbmdoQnViM1JsY0hTQUdNakxCY3NDVUFiUEZsQUUrZ0lVeTJvU3l4L0xQOGx6K3dBQ0FHeUJBUWpYR1BvQTB6OHdVaVNCQVFqMFdmS25naEJrYzNSeWNIU0FHTWpMQmNzQ1VBWFBGbEFEK2dJVHkyckxIeExMUDhseit3QUFDdlFBeWUxVUFGRUFBQUFBS2FtakY5TlRBUUhVSGhiWDAwVkdaM2QycjhoYkp4dXo3UGF4bXVDT0o2a2dja3BwUUFGbVlnQUJUOUxSM0lxZmZza3AwSjlnV1lPOEF6bG5iMzNCQ01qOEZxSVVJR3hHT1pwaVdnQUFBQUFBQUFBQUFBQUFBQUFCR0FHdUQ0cCtwUUFBQUFBQUFBQUFRN21zb0FnQS9CR2RCaS9SMDFlcnF1eEpPdlBnR0tjbEJhd1VzM01BaTAvSWRjdEtRejhBS3BETi9LRFJ4bjd5MzIvWmlnZVlVWEVibU9DTzlCRk5uYko0T003blBsbEdIb1NCR1FBa0FBQUFBR3BsZEhSdmJpQjBaWE4wYVc1bmRVTTVSUT09JyxcbiAgdHhJZDogJ0o5bmNwUEVvN1A1THgzVExMaFRGS1EyT3JvR1E1M3J2Mm5TQjNqWWdKTFE9JyxcbiAgdHhJZEJvdW5jZWFibGU6ICc1QWtQaXlUTWw1b1VBTmQyVUF6TG1YbXFJeVU2NXhTaGhDb29McTRpZ1Y4PScsXG4gIHNpZ25hYmxlOiAncnE0dHEvc0Z1WFZMY1FTZnl4RGQ3UXV4T2lmLzVCUXdwbTBnd09hK3NPRT0nLFxuICBib3VuY2VhYmxlU2lnbmFibGU6ICdlQllsL0hqREV3Qllzazl6Um9wcGNLWjFocDJPckFNUnV2Y2hIVjhNWXVVPScsXG4gIHJlY2lwaWVudDoge1xuICAgIGFkZHJlc3M6ICdFUUItQ002REYtanBxOVhWZGlTZGVmQU1VNUtDMWdwWnVZQkZwLVE2NWFVaG54NUsnLFxuICAgIGFtb3VudDogJzEwMDAwMDAwMDAnLFxuICB9LFxuICByZWNpcGllbnRCb3VuY2VhYmxlOiB7XG4gICAgYWRkcmVzczogJ1VRQi1DTTZERi1qcHE5WFZkaVNkZWZBTVU1S0MxZ3BadVlCRnAtUTY1YVVobjBPUCcsXG4gICAgYW1vdW50OiAnMTAwMDAwMDAwMCcsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3Qgc2lnbmVkVG9rZW5TZW5kVHJhbnNhY3Rpb25Gb3JNZW1vSWQgPSB7XG4gIHR4OiAndGU2Y2NrRUNHZ0VBQkIwQUF1R0lBVlNHYitVR2pqUDNsdnQrekZBOHdvdUkzTWNFZDZDS2JPMlR3Y1ozT2ZMS0dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ21wb3hkSmxnTFNBQUFBQUFBRGdFWEFnRTBBaFlCRlA4QTlLUVQ5THp5eUFzREFnRWdCQkVDQVVnRkNBTG0wQUhRMHdNaGNiQ1NYd1RnSXRkSndTQ1NYd1RnQXRNZklZSVFjR3gxWjcwaWdoQmtjM1J5dmJDU1h3WGdBL3BBTUNENlJBSEl5Z2ZMLzhuUTdVVFFnUUZBMXlIMEJEQmNnUUVJOUFwdm9UR3prbDhINEFYVFA4Z2xnaEJ3YkhWbnVwSTRNT01OQTRJUVpITjBjcnFTWHdiakRRWUhBSGdCK2dEMEJERDRKMjhpTUZBS29TRys4dUJRZ2hCd2JIVm5neDZ4Y0lBWVVBVExCU2JQRmxqNkFobjBBTXRwRjhzZlVtRExQeURKZ0VEN0FBWUFpbEFFZ1FFSTlGa3c3VVRRZ1FGQTF5RElBYzhXOUFESjdWUUJjckNPSTRJUVpITjBjb01lc1hDQUdGQUZ5d1ZRQTg4V0kvb0NFOHRxeXgvTFA4bUFRUHNBa2w4RDRnSUJJQWtRQWdFZ0NnOENBVmdMREFBOXNwMzdVVFFnUUZBMXlIMEJEQUN5TW9IeS8vSjBBR0JBUWowQ20raE1ZQUlCSUEwT0FCbXR6bmFpYUVBZ2E1RHJoZi9BQUJtdkhmYWlhRUFRYTVEcmhZL0FBQkc0eVg3VVRRMXdzZmdBV2Iwa0syOXFKb1FJQ2dhNUQ2QWhoSERVQ0FoSHBKTjlLWkVNNXBBK24vbURlQktBRzNnUUZJbUhGWjh4aEFUNDhvTUkxeGdnMHgvVEg5TWZBdmdqdS9KazdVVFEweC9USDlQLzlBVFJVVU82OHFGUlVicnlvZ1g1QVZRUVpQa1E4cVA0QUNTa3lNc2ZVa0RMSDFJd3kvOVNFUFFBeWUxVStBOEIwd2Nod0FDZmJGR1RJTmRLbHRNSDFBTDdBT2d3NENIQUFlTUFJY0FDNHdBQndBT1JNT01OQTZUSXl4OFN5eC9ML3hJVEZCVUFidElIK2dEVTFDTDVBQVhJeWdjVnkvL0owSGQwZ0JqSXl3WExBaUxQRmxBRitnSVV5MnNTek16SmMvc0F5RUFVZ1FFSTlGSHlwd0lBY0lFQkNOY1krZ0RUUDhoVUlFZUJBUWowVWZLbmdoQnViM1JsY0hTQUdNakxCY3NDVUFiUEZsQUUrZ0lVeTJvU3l4L0xQOGx6K3dBQ0FHeUJBUWpYR1BvQTB6OHdVaVNCQVFqMFdmS25naEJrYzNSeWNIU0FHTWpMQmNzQ1VBWFBGbEFEK2dJVHkyckxIeExMUDhseit3QUFDdlFBeWUxVUFGRUFBQUFBS2FtakY5TlRBUUhVSGhiWDAwVkdaM2QycjhoYkp4dXo3UGF4bXVDT0o2a2dja3BwUUFGbVFnQUJUOUxSM0lxZmZza3AwSjlnV1lPOEF6bG5iMzNCQ01qOEZxSVVJR3hHT1pwaVdnQUFBQUFBQUFBQUFBQUFBQUFCR0FHdUQ0cCtwUUFBQUFBQUFBQUFRN21zb0FnQS9CR2RCaS9SMDFlcnF1eEpPdlBnR0tjbEJhd1VzM01BaTAvSWRjdEtRejhBS3BETi9LRFJ4bjd5MzIvWmlnZVlVWEVibU9DTzlCRk5uYko0T003blBsbEdIb1NCR1FBa0FBQUFBR3BsZEhSdmJpQjBaWE4wYVc1bndIdHc3QT09JyxcbiAgcmVjaXBpZW50OiB7XG4gICAgYWRkcmVzczogJ1VRQi1DTTZERi1qcHE5WFZkaVNkZWZBTVU1S0MxZ3BadVlCRnAtUTY1YVVobjBPUD9tZW1vSWQ9MTIzNCcsXG4gICAgYW1vdW50OiAnMTAwMDAwMDAwMCcsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3Qgc2lnbmVkU2VuZFRyYW5zYWN0aW9uRm9yTWVtb0lkID0ge1xuICB0eDogJ3RlNmNja0VCQWdFQXFRQUI0WWdCSkF4bzd2cUhGKytMSjRiQy9rSjhBMXVWUnNrcktscktKWjhySUIwdEYrZ0NhZGxTWCtoUG8ybW1oWnlpMHAzelRWVVlWUmtjbXJDbTk3Y1NVRlNhMnZ6dkNBck0zQVBnK3d3OTJyM0lja2xOam56ZktPZ3lzSlZRWGlDdmo5U0FhVTFOR0xzb3R2UndBQUFBTUFBY0FRQm1RZ0FhUmVmQk9qVGkvaHdxRGp2KzdJNm5HajlXRUFlM2xzL3JGdUJFUXZnZ3I1ekV0QUFBQUFBQUFBQUFBQUFBQUFBQWRmWk83dz09JyxcbiAgcmVjaXBpZW50OiB7XG4gICAgYWRkcmVzczogJ0VRQTBpOC1DZEduRl9EaFVISGY5MlIxT05INnNJQTl2TFpfV0xjQ0loZkJCWHd0Rz9tZW1vSWQ9MTIzNCcsXG4gICAgYW1vdW50OiAnMTAwMDAwMDAnLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IHNpZ25lZFNpbmdsZU5vbWluYXRvcldpdGhkcmF3VHJhbnNhY3Rpb24gPSB7XG4gIHR4OiAndGU2Y2NrRUNHQUVBQThNQUF1R0lBRFpOMEgwbjF0ejZ4a1lnV3FKU1Jta1VSS1lhampFZ1hlYXdCbzljaWZQSUdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ21wb3hkSmxnTFNBQUFBQUFBRGdFWEFnRTBBaFlCRlA4QTlLUVQ5THp5eUFzREFnRWdCQkVDQVVnRkNBTG0wQUhRMHdNaGNiQ1NYd1RnSXRkSndTQ1NYd1RnQXRNZklZSVFjR3gxWjcwaWdoQmtjM1J5dmJDU1h3WGdBL3BBTUNENlJBSEl5Z2ZMLzhuUTdVVFFnUUZBMXlIMEJEQmNnUUVJOUFwdm9UR3prbDhINEFYVFA4Z2xnaEJ3YkhWbnVwSTRNT01OQTRJUVpITjBjcnFTWHdiakRRWUhBSGdCK2dEMEJERDRKMjhpTUZBS29TRys4dUJRZ2hCd2JIVm5neDZ4Y0lBWVVBVExCU2JQRmxqNkFobjBBTXRwRjhzZlVtRExQeURKZ0VEN0FBWUFpbEFFZ1FFSTlGa3c3VVRRZ1FGQTF5RElBYzhXOUFESjdWUUJjckNPSTRJUVpITjBjb01lc1hDQUdGQUZ5d1ZRQTg4V0kvb0NFOHRxeXgvTFA4bUFRUHNBa2w4RDRnSUJJQWtRQWdFZ0NnOENBVmdMREFBOXNwMzdVVFFnUUZBMXlIMEJEQUN5TW9IeS8vSjBBR0JBUWowQ20raE1ZQUlCSUEwT0FCbXR6bmFpYUVBZ2E1RHJoZi9BQUJtdkhmYWlhRUFRYTVEcmhZL0FBQkc0eVg3VVRRMXdzZmdBV2Iwa0syOXFKb1FJQ2dhNUQ2QWhoSERVQ0FoSHBKTjlLWkVNNXBBK24vbURlQktBRzNnUUZJbUhGWjh4aEFUNDhvTUkxeGdnMHgvVEg5TWZBdmdqdS9KazdVVFEweC9USDlQLzlBVFJVVU82OHFGUlVicnlvZ1g1QVZRUVpQa1E4cVA0QUNTa3lNc2ZVa0RMSDFJd3kvOVNFUFFBeWUxVStBOEIwd2Nod0FDZmJGR1RJTmRLbHRNSDFBTDdBT2d3NENIQUFlTUFJY0FDNHdBQndBT1JNT01OQTZUSXl4OFN5eC9ML3hJVEZCVUFidElIK2dEVTFDTDVBQVhJeWdjVnkvL0owSGQwZ0JqSXl3WExBaUxQRmxBRitnSVV5MnNTek16SmMvc0F5RUFVZ1FFSTlGSHlwd0lBY0lFQkNOY1krZ0RUUDhoVUlFZUJBUWowVWZLbmdoQnViM1JsY0hTQUdNakxCY3NDVUFiUEZsQUUrZ0lVeTJvU3l4L0xQOGx6K3dBQ0FHeUJBUWpYR1BvQTB6OHdVaVNCQVFqMFdmS25naEJrYzNSeWNIU0FHTWpMQmNzQ1VBWFBGbEFEK2dJVHkyckxIeExMUDhseit3QUFDdlFBeWUxVUFGRUFBQUFBS2FtakY4RER1ZHdKa3lFaDdqVWJKRWpGQ2pyaVZ4c1NsUkpGeUY4NzJWMWVlZ2I0UUFDUFFnQWFSZWZCT2pUaS9od3FEanYrN0k2bkdqOVdFQWUzbHMvckZ1QkVRdmdncjZBNjEzb0FBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBQUFIQTAvUG9VQzVFSUV5V3VQZz09JyxcbiAgdHhCb3VuY2VhYmxlOlxuICAgICd0ZTZjY2tFQ0dBRUFBOE1BQXVHSUFEWk4wSDBuMXR6NnhrWWdXcUpTUm1rVVJLWWFqakVnWGVhd0JvOWNpZlBJR0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDbXBveGRKbGdMU0FBQUFBQUFEZ0VYQWdFMEFoWUJGUDhBOUtRVDlMenl5QXNEQWdFZ0JCRUNBVWdGQ0FMbTBBSFEwd01oY2JDU1h3VGdJdGRKd1NDU1h3VGdBdE1mSVlJUWNHeDFaNzBpZ2hCa2MzUnl2YkNTWHdYZ0EvcEFNQ0Q2UkFISXlnZkwvOG5RN1VUUWdRRkExeUgwQkRCY2dRRUk5QXB2b1RHemtsOEg0QVhUUDhnbGdoQndiSFZudXBJNE1PTU5BNElRWkhOMGNycVNYd2JqRFFZSEFIZ0IrZ0QwQkRENEoyOGlNRkFLb1NHKzh1QlFnaEJ3YkhWbmd4NnhjSUFZVUFUTEJTYlBGbGo2QWhuMEFNdHBGOHNmVW1ETFB5REpnRUQ3QUFZQWlsQUVnUUVJOUZrdzdVVFFnUUZBMXlESUFjOFc5QURKN1ZRQmNyQ09JNElRWkhOMGNvTWVzWENBR0ZBRnl3VlFBODhXSS9vQ0U4dHF5eC9MUDhtQVFQc0FrbDhENGdJQklBa1FBZ0VnQ2c4Q0FWZ0xEQUE5c3AzN1VUUWdRRkExeUgwQkRBQ3lNb0h5Ly9KMEFHQkFRajBDbStoTVlBSUJJQTBPQUJtdHpuYWlhRUFnYTVEcmhmL0FBQm12SGZhaWFFQVFhNURyaFkvQUFCRzR5WDdVVFExd3NmZ0FXYjBrSzI5cUpvUUlDZ2E1RDZBaGhIRFVDQWhIcEpOOUtaRU01cEErbi9tRGVCS0FHM2dRRkltSEZaOHhoQVQ0OG9NSTF4Z2cweC9USDlNZkF2Z2p1L0prN1VUUTB4L1RIOVAvOUFUUlVVTzY4cUZSVWJyeW9nWDVBVlFRWlBrUThxUDRBQ1NreU1zZlVrRExIMUl3eS85U0VQUUF5ZTFVK0E4QjB3Y2h3QUNmYkZHVElOZEtsdE1IMUFMN0FPZ3c0Q0hBQWVNQUljQUM0d0FCd0FPUk1PTU5BNlRJeXg4U3l4L0wveElURkJVQWJ0SUgrZ0RVMUNMNUFBWEl5Z2NWeS8vSjBIZDBnQmpJeXdYTEFpTFBGbEFGK2dJVXkyc1N6TXpKYy9zQXlFQVVnUUVJOUZIeXB3SUFjSUVCQ05jWStnRFRQOGhVSUVlQkFRajBVZktuZ2hCdWIzUmxjSFNBR01qTEJjc0NVQWJQRmxBRStnSVV5Mm9TeXgvTFA4bHord0FDQUd5QkFRalhHUG9BMHo4d1VpU0JBUWowV2ZLbmdoQmtjM1J5Y0hTQUdNakxCY3NDVUFYUEZsQUQrZ0lUeTJyTEh4TExQOGx6K3dBQUN2UUF5ZTFVQUZFQUFBQUFLYW1qRjhERHVkd0preUVoN2pVYkpFakZDanJpVnhzU2xSSkZ5Rjg3MlYxZWVnYjRRQUNQWWdBYVJlZkJPalRpL2h3cURqdis3STZuR2o5V0VBZTNscy9yRnVCRVF2Z2dyNkE2MTNvQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUhBMC9Qb1VDNUVJQkRkZEhRPT0nLFxuICB0eElkOiAnbjFyci1RTDYxV1o3VUpON0VTSDJpUFFPN3RvVHk5V0xxWG9TSUcxSnRYZz0nLFxuICB0eElkQm91bmNlYWJsZTogJ24xcnItUUw2MVdaN1VKTjdFU0gyaVBRTzd0b1R5OVdMcVhvU0lHMUp0WGc9JyxcbiAgc2lnbmFibGU6ICdTQTRMb1JoS0RUaWJhOE1LbTBFQ0JBYWlXcWgyWXRlanR0bWZNenZOdzE0PScsXG4gIGJvdW5jZWFibGVTaWduYWJsZTogJ1NBNExvUmhLRFRpYmE4TUttMEVDQkFhaVdxaDJZdGVqdHRtZk16dk53MTQ9JyxcbiAgcmVjaXBpZW50OiB7XG4gICAgYWRkcmVzczogJ0VRQTBpOC1DZEduRl9EaFVISGY5MlIxT05INnNJQTl2TFpfV0xjQ0loZkJCWHd0RycsXG4gICAgYW1vdW50OiAnMTIzNDAwMDAwJyxcbiAgfSxcbiAgcmVjaXBpZW50Qm91bmNlYWJsZToge1xuICAgIGFkZHJlc3M6ICdVUUEwaTgtQ2RHbkZfRGhVSEhmOTJSMU9OSDZzSUE5dkxaX1dMY0NJaGZCQlgxYUQnLFxuICAgIGFtb3VudDogJzEyMzQwMDAwMCcsXG4gIH0sXG59O1xuIl19
133
+ exports.signedTonWhalesDepositTransaction = {
134
+ recipient: {
135
+ //https://testnet.tonscan.org/address/kQDr9Sq482A6ikIUh5mUUjJaBUUJBrye13CJiDB-R31_l7mg
136
+ address: 'EQDr9Sq482A6ikIUh5mUUjJaBUUJBrye13CJiDB-R31_lwIq',
137
+ amount: '10000000000', // 10 TON
138
+ },
139
+ // This is the raw TX from sandboxing a deposit to Ton Whales
140
+ tx: 'te6cckEBAgEAvAAB4YgAyB87FgBG4jQNUAYzcmw2aJG9QQeQmtOPGsRPvX+eMdwFf6OLyGMsPoPXNPLUqMoUZTIrdu2maNNUK52q+Wa0BJhNq9e/qHXYsF9xU5TYbOsZt1EBGJf1GpkumdgXj0/4CU1NGLtKFdHwAAAC4AAcAQCLYgB1+pVcebAdRSEKQ8zKKRktAqKEg15Pa7hExBg/I76/y6gSoF8gAAAAAAAAAAAAAAAAAAB7zR/vAAAAAGlCugJDuaygCErRw2Y=',
141
+ seqno: 92,
142
+ queryId: '000000006942ba02',
143
+ expireTime: 1765980734,
144
+ sender: 'EQBkD52LACNxGgaoAxm5Nhs0SN6gg8hNaceNYifev88Y7qoZ',
145
+ publicKey: '9d6d3714aeb1f007f6e6aa728f79fdd005ea2c7ad459b2f54d73f9e672426230',
146
+ signature: 'aff471790c6587d07ae69e5a9519428ca6456eddb4cd1a6a8573b55f2cd6809309b57af7f50ebb160bee2a729b0d9d6336ea202312fea35325d33b02f1e9ff01',
147
+ bounceable: true,
148
+ };
149
+ exports.signedTonWhalesWithdrawalTransaction = {
150
+ recipient: {
151
+ //https://testnet.tonscan.org/address/kQDr9Sq482A6ikIUh5mUUjJaBUUJBrye13CJiDB-R31_l7mg
152
+ address: 'EQDr9Sq482A6ikIUh5mUUjJaBUUJBrye13CJiDB-R31_lwIq',
153
+ amount: '200000000', // 10 TON
154
+ },
155
+ withdrawAmount: '10000000000',
156
+ // This is the raw TX from sandboxing a withdrawal request to Ton Whales
157
+ tx: 'te6cckEBAgEAwAAB4YgAyB87FgBG4jQNUAYzcmw2aJG9QQeQmtOPGsRPvX+eMdwGzbdqzqRjzzou/GIUqqqdZn7Tevr+oSawF529ibEgSoxfcezGF5GW4oF6/Ws+4OanMgBwMVCe0GIEK3GSTzCIaU1NGLtKVSvAAAAC6AAcAQCUYgB1+pVcebAdRSEKQ8zKKRktAqKEg15Pa7hExBg/I76/y6BfXhAAAAAAAAAAAAAAAAAAANqAPv0AAAAAaUqlPEO5rKAFAlQL5ACKp3CI',
158
+ seqno: 93,
159
+ queryId: '00000000694aa53c',
160
+ expireTime: 1766499704,
161
+ sender: 'EQBkD52LACNxGgaoAxm5Nhs0SN6gg8hNaceNYifev88Y7qoZ',
162
+ publicKey: '9d6d3714aeb1f007f6e6aa728f79fdd005ea2c7ad459b2f54d73f9e672426230',
163
+ signature: 'd9b6ed59d48c79e745df8c42955553accfda6f5f5fd424d602f3b7b1362409518bee3d98c2f232dc502f5fad67dc1cd4e6400e062a13da0c40856e3249e6110d',
164
+ bounceable: true,
165
+ };
166
+ exports.signedTonWhalesFullWithdrawalTransaction = {
167
+ recipient: {
168
+ address: 'EQDr9Sq482A6ikIUh5mUUjJaBUUJBrye13CJiDB-R31_lwIq',
169
+ amount: '200000000', // 0.2 TON (Fee)
170
+ },
171
+ withdrawAmount: '0', // 0 means Full Withdraw
172
+ tx: 'te6cckEBAgEAuwAB4YgAyB87FgBG4jQNUAYzcmw2aJG9QQeQmtOPGsRPvX+eMdwHSrLxEIwA9nyfxKqom8MsGbPCL5SfwqGDzHyYnKzJwU8ecNqb6xkB7u9gBwBrZdO3NvecF44nXe2Lm/+OL8Z4aU1NGLtKVgg4AAAC8AAcAQCKYgB1+pVcebAdRSEKQ8zKKRktAqKEg15Pa7hExBg/I76/y6BfXhAAAAAAAAAAAAAAAAAAANqAPv0AAAAAaUrAy0O5rKAAudrTIw==',
173
+ seqno: 94,
174
+ queryId: '00000000694ac0cb',
175
+ expireTime: 1766506759,
176
+ sender: 'EQBkD52LACNxGgaoAxm5Nhs0SN6gg8hNaceNYifev88Y7qoZ',
177
+ publicKey: '9d6d3714aeb1f007f6e6aa728f79fdd005ea2c7ad459b2f54d73f9e672426230',
178
+ signature: 'e9565e2211801ecf93f8955513786583367845f293f85430798f931395993829e3ce1b537d63203dddec00e00d6cba76e6def382f1c4ebbdb1737ff1c5f8cf0d',
179
+ bounceable: true,
180
+ };
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9yZXNvdXJjZXMvdG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVhLFFBQUEsTUFBTSxHQUFHLFNBQVMsQ0FBQztBQUVoQyxnRUFBZ0U7QUFDbkQsUUFBQSxXQUFXLEdBQUc7SUFDekIsT0FBTyxFQUFFLGtFQUFrRTtJQUMzRSxPQUFPLEVBQUUsa0VBQWtFO0lBQzNFLE9BQU8sRUFBRSxrRUFBa0U7SUFDM0UsT0FBTyxFQUFFLGtFQUFrRTtJQUMzRSxPQUFPLEVBQUUsa0VBQWtFO0lBQzNFLE9BQU8sRUFBRSxrRUFBa0U7SUFDM0UsT0FBTyxFQUFFLGtFQUFrRTtDQUM1RSxDQUFDO0FBRVcsUUFBQSxTQUFTLEdBQUc7SUFDdkIsY0FBYyxFQUFFO1FBQ2Qsa0RBQWtEO1FBQ2xELGtEQUFrRDtLQUNuRDtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLGNBQWM7UUFDZCxzQ0FBc0M7UUFDdEMsOENBQThDO0tBQy9DO0NBQ0YsQ0FBQztBQUVXLFFBQUEsZUFBZSxHQUFHO0lBQzdCLE9BQU8sRUFBRSxrREFBa0Q7SUFDM0QsaUJBQWlCLEVBQUUsa0RBQWtEO0lBQ3JFLFNBQVMsRUFBRSxrRUFBa0U7SUFDN0UsU0FBUyxFQUFFLDBGQUEwRjtDQUN0RyxDQUFDO0FBRVcsUUFBQSxNQUFNLEdBQUc7SUFDcEIsT0FBTyxFQUFFLGtEQUFrRDtJQUMzRCxTQUFTLEVBQUUsa0VBQWtFO0NBQzlFLENBQUM7QUFFVyxRQUFBLFdBQVcsR0FBRztJQUN6QixPQUFPLEVBQUUsa0RBQWtEO0lBQzNELFNBQVMsRUFBRSxrRUFBa0U7SUFDN0UsYUFBYSxFQUFFLGtEQUFrRDtJQUNqRSxTQUFTLEVBQUUsU0FBUztJQUNwQixnQkFBZ0IsRUFBRSxTQUFTO0lBQzNCLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsVUFBVSxFQUFFLFVBQVU7Q0FDdkIsQ0FBQztBQUVXLFFBQUEsZUFBZSxHQUFnQjtJ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QUFrQjtJQUMzQixVQUFVLEVBQUUsVUFBVTtJQUN0QixNQUFNLEVBQUUsa0RBQWtEO0lBQzFELFNBQVMsRUFBRSxrRUFBa0U7SUFDN0UsU0FBUyxFQUNQLGtJQUFrSTtJQUNwSSxVQUFVLEVBQUUsSUFBSTtDQUNqQixDQUFDO0FBRVcsUUFBQSxvQ0FBb0MsR0FBRztJQUNsRCxTQUFTLEVBQUU7UUFDVCxzRkFBc0Y7UUFDdEYsT0FBTyxFQUFFLGtEQUFrRDtRQUMzRCxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVM7S0FDL0I7SUFDRCxjQUFjLEVBQUUsYUFBYTtJQUM3Qix3RUFBd0U7SUFDeEUsRUFBRSxFQUFFLHNSQUFzUjtJQUMxUixLQUFLLEVBQUUsRUFBRTtJQUNULE9BQU8sRUFBRSxrQkFBa0I7SUFDM0IsVUFBVSxFQUFFLFVBQVU7SUFDdEIsTUFBTSxFQUFFLGtEQUFrRDtJQUMxRCxTQUFTLEVBQUUsa0VBQWtFO0lBQzdFLFNBQVMsRUFDUCxrSUFBa0k7SUFDcEksVUFBVSxFQUFFLElBQUk7Q0FDakIsQ0FBQztBQUVXLFFBQUEsd0NBQXdDLEdBQUc7SUFDdEQsU0FBUyxFQUFFO1FBQ1QsT0FBTyxFQUFFLGtEQUFrRDtRQUMzRCxNQUFNLEVBQUUsV0FBVyxFQUFFLGdCQUFnQjtLQUN0QztJQUNELGNBQWMsRUFBRSxHQUFHLEVBQUUsd0JBQXdCO0lBQzdDLEVBQUUsRUFBRSxrUkFBa1I7SUFDdFIsS0FBSyxFQUFFLEVBQUU7SUFDVCxPQUFPLEVBQUUsa0JBQWtCO0lBQzNCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLE1BQU0sRUFBRSxrREFBa0Q7SUFDMUQsU0FBUyxFQUFFLGtFQUFrRTtJQUM3RSxTQUFTLEVBQ1Asa0lBQWtJO0lBQ3BJLFVBQVUsRUFBRSxJQUFJO0NBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWNpcGllbnQgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuXG5leHBvcnQgY29uc3QgQU1PVU5UID0gMTIzNDAwMDAwO1xuXG4vLyBDYW4gZ2V0IHRoZSBwcml2YXRlIGtleXMgZnJvbSBzYW5kYm94aW5nIGlmIHlvdSBrbm93IHRoZSBzZWVkXG5leHBvcnQgY29uc3QgcHJpdmF0ZUtleXMgPSB7XG4gIHBydktleTE6ICc0M2U4NTk0ODU0Y2I1Mzk0N2M0YTFhMmZhYjkyNmFmMTFlMTIzZjYyNTFkY2Q1YmQwZGZiMTAwNjA0MTg2NDMwJyxcbiAgcHJ2S2V5MjogJ2MwYzNiOWRjMDk5MzIxMjFlZTM1MWIyNDQ4YzUwYTNhZTI1NzFiMTI5NTEyNDVjODVmM2JkOTVkNWU3YTA2ZjgnLFxuICBwcnZLZXkzOiAnM2Q2ODIyYmYxNDExNWY0N2E1NzI0YjY4Yzg1MTYwMjIxZWFjYmU2NjRlODkyYTRhOWRkM2I0ZGQ2NDAxNmVjZScsXG4gIHBydktleTQ6ICdiYTRjMzEzYmNmODMwYjgyNWFkYWEzYWUwOGNmZGU4NmU3OWUxNWE4NGU2ZmRjM2IxZmUzNWE2YmI4MmQ5ZjIyJyxcbiAgcHJ2S2V5NTogJ2ZkYjllYTFiYjdmMDEyMGNlNmViN2IwNDdhYzY3NDRjNDI5OGYyNzc3NTYzMzBlMThkYmQ1NDE5NTkwYTFlZjInLFxuICBwcnZLZXk2OiAnZjY2ZDMwMzU3ZTZhNDE4MGU5YWI0MTg2NWYwZjM0N2NiYWZmZTYwZjlkNDk5ZmU2YzJmMjcwNDYzMjc2NTJmNicsXG4gIHBydktleTc6ICczMzlmOWI3YzhiMDM5ZTFmNzFjYzI4YzVmYTMwZGIyOTkxMzYyNGUyZDUzZDQzMjNhMjY2NGQzY2ZiNWIwN2E0Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRyZXNzZXMgPSB7XG4gIHZhbGlkQWRkcmVzc2VzOiBbXG4gICAgJ1VRQTBpOC1DZEduRl9EaFVISGY5MlIxT05INnNJQTl2TFpfV0xjQ0loZkJCWDFhRCcsXG4gICAgJ0VRQnVFdWg0N3N2ME5TQ2pSc1F1a011MWpLaTlRVXNwc1FHZVlMNExXdHJVODFDYicsXG4gIF0sXG4gIGludmFsaWRBZGRyZXNzZXM6IFtcbiAgICAncmFuZG9tU3RyaW5nJyxcbiAgICAnMHhjNDE3M2E4MDQ0MDZhMzY1ZTY5ZGZiMjk3ZGRmZ3NkY3ZmJyxcbiAgICAnNW5lN3BoQTQ4SnJ2cG4zOUF0dXBCOFprQ0NBeThnTFRmcEdpaFpQdURxZW4nLFxuICBdLFxufTtcblxuZXhwb3J0IGNvbnN0IHZlc3RpbmdDb250cmFjdCA9IHtcbiAgYWRkcmVzczogJ1VRRDBlaWkyQ042cF9oem5YY3FCRmxISGJjQlFTaFcyVmoxRWFJSzJNbnhWcldDNicsXG4gIGFkZHJlc3NCb3VuY2VhYmxlOiAnRVFEMGVpaTJDTjZwX2h6blhjcUJGbEhIYmNCUVNoVzJWajFFYUlLMk1ueFZyVDFfJyxcbiAgcHVibGljS2V5OiAnMzM5ZjliN2M4YjAzOWUxZjcxY2MyOGM1ZmEzMGRiMjk5MTM2MjRlMmQ1M2Q0MzIzYTI2NjRkM2NmYjViMDdhNCcsXG4gIHNpZ25hdHVyZTogJzRLMmlYUTVHNWxVLzFUS2hmUW40eGFBZ0w3c0s5MW1GUWI2T2l4a1J3cFpGSkNZU2JobURKcUxKZldSVlJqZmJMK2NYNEhqQzdzaXFzR01EVWdoNERRPT0nLFxufTtcblxuZXhwb3J0IGNvbnN0IHNlbmRlciA9IHtcbiAgYWRkcmVzczogJ1VRQWJKdWctay10dWZXTWpFQzFSS1NNMGlpSlREVWNZa0M3eldBTkhya1Q1NUFmZycsXG4gIHB1YmxpY0tleTogJ2MwYzNiOWRjMDk5MzIxMjFlZTM1MWIyNDQ4YzUwYTNhZTI1NzFiMTI5NTEyNDVjODVmM2JkOTVkNWU3YTA2ZjgnLFxufTtcblxuZXhwb3J0IGNvbnN0IHRva2VuU2VuZGVyID0ge1xuICBhZGRyZXNzOiAnVVFDcVF6ZnlnMGNaLTh0OXYyWW9IbUZGeEc1amdqdlFSVFoyeWVEak81ejVaVUY0JyxcbiAgcHVibGljS2V5OiAnZDM1MzAxMDFkNDFlMTZkN2QzNDU0NjY3Nzc3NmFmYzg1YjI3MWJiM2VjZjZiMTlhZTA4ZTI3YTkyMDcyNGE2OScsXG4gIGpldHRvbkFkZHJlc3M6ICdVUUFDbjZXanVSVS1fWkpUb1Q3QXN3ZDRCbkxPM3Z1Q0VaSDRMVVFvUU5pTWMzU0UnLFxuICB0b25BbW91bnQ6ICc1MDAwMDAwJyxcbiAgZm9yd2FyZFRvbkFtb3VudDogJzEwMDAwMDAnLFxuICBtZXNzYWdlOiAnamV0dG9uIHRlc3RpbmcnLFxuICBleHBpcmVUaW1lOiAxMjM0NTY3ODkwLFxufTtcblxuZXhwb3J0IGNvbnN0IHRva2VuUmVjaXBpZW50czogUmVjaXBpZW50W10gPSBbXG4gIHtcbiAgICBhZGRyZXNzOiAnVVFCLUNNNkRGLWpwcTlYVmRpU2RlZkFNVTVLQzFncFp1WUJGcC1RNjVhVWhuME9QJyxcbiAgICBhbW91bnQ6ICcxMDAwMDAwMDAwJyxcbiAgfSxcbl07XG5cbmV4cG9ydCBjb25zdCByZWNpcGllbnRzOiBSZWNpcGllbnRbXSA9IFtcbiAge1xuICAgIGFkZHJlc3M6IGFkZHJlc3Nlcy52YWxpZEFkZHJlc3Nlc1swXSxcbiAgICBhbW91bnQ6IEFNT1VOVC50b1N0cmluZygpLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IHNpZ25lZFNlbmRUcmFuc2FjdGlvbiA9IHtcbiAgdHg6ICd0ZTZjY2tFQkFnRUFxUUFCNFlnQkpBeG83dnFIRisrTEo0YkMva0o4QTF1VlJza3JLbHJLSlo4cklCMHRGK2dDYWRsU1graFBvMm1taFp5aTBwM3pUVlVZVlJrY21yQ205N2NTVUZTYTJ2enZDQXJNM0FQZyt3dzkycjNJY2tsTmpuemZLT2d5c0pWUVhpQ3ZqOVNBYVUxTkdMc290dlJ3QUFBQU1BQWNBUUJtUWdBYVJlZkJPalRpL2h3cURqdis3STZuR2o5V0VBZTNscy9yRnVCRVF2Z2dyNXpFdEFBQUFBQUFBQUFBQUFBQUFBQUFkZlpPN3c9PScsXG4gIHR4Qm91bmNlYWJsZTpcbiAgICAndGU2Y2NrRUJBZ0VBcVFBQjRZZ0JKQXhvN3ZxSEYrK0xKNGJDL2tKOEExdVZSc2tyS2xyS0paOHJJQjB0RitnQ2FkbFNYK2hQbzJtbWhaeWkwcDN6VFZVWVZSa2NtckNtOTdjU1VGU2Eydnp2Q0FyTTNBUGcrd3c5MnIzSWNrbE5qbnpmS09neXNKVlFYaUN2ajlTQWFVMU5HTHNvdHZSd0FBQUFNQUFjQVFCbVlnQWFSZWZCT2pUaS9od3FEanYrN0k2bkdqOVdFQWUzbHMvckZ1QkVRdmdncjV6RXRBQUFBQUFBQUFBQUFBQUFBQUFBWXViTTB3PT0nLFxuICB0eElkOiAndHV5T2t5RlVNdl9uZVZfRmVOQkgyNE5kNGNNTDJqVWdEUDR6akdrdU9GST0nLFxuICB0eElkQm91bmNlYWJsZTogJ3R1eU9reUZVTXZfbmVWX0ZlTkJIMjROZDRjTUwyalVnRFA0empHa3VPRkk9JyxcbiAgc2lnbmFibGU6ICdrNFhVbWpCNjVqM2tsTVhDWGRoNVZzM2JKWnpvM05TZm5YSzhOSVlGYXlJPScsXG4gIGJvdW5jZWFibGVTaWduYWJsZTogJ2s0WFVtakI2NWoza2xNWENYZGg1VnMzYkpaem8zTlNmblhLOE5JWUZheUk9JyxcbiAgcmVjaXBpZW50OiB7XG4gICAgYWRkcmVzczogJ0VRQTBpOC1DZEduRl9EaFVISGY5MlIxT05INnNJQTl2TFpfV0xjQ0loZkJCWHd0RycsXG4gICAgYW1vdW50OiAnMTAwMDAwMDAnLFxuICB9LFxuICByZWNpcGllbnRCb3VuY2VhYmxlOiB7XG4gICAgYWRkcmVzczogJ1VRQTBpOC1DZEduRl9EaFVISGY5MlIxT05INnNJQTl2TFpfV0xjQ0loZkJCWDFhRCcsXG4gICAgYW1vdW50OiAnMTAwMDAwMDAnLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IHYzQ29tcGF0aWJsZVNpZ25lZFNlbmRUcmFuc2FjdGlvbiA9IHtcbiAgdHhCb3VuY2VhYmxlOlxuICAgICd0ZTZjY2tFQkFnRUFxQUFCMzRnQjZQUlJiQkc5VS93NXpydVZBaXlqanR1QW9KUXJiS3g2aU5FRmJHVDRxMW9IQlcwUzZISTNNcW4rcVpVTDZFL0dMUUVCZmRoWHVzd3FEZlIwV01pT0ZMSXBJVENUY013Wk5SWkw2eUtxTWI3WmZ6aS9BOFlYZGtWVmd4Z2FrRVBBYVUxTkdMdEgwQ0RBQUFBQUdCd0JBR1ppQUdjSmxtRjBVdkVyRHNpNVJzMjFTUDcwclAxSzM2d3RqQkltcXRiVjk2RXVITVMwQUFBQUFBQUFBQUFBQUFBQUFBQWlXNzJFJyxcbiAgdHhJZEJvdW5jZWFibGU6ICc0aTFHQ3lONUlrUVEtdkVTdk5sNFdwMWVqcDdMZmF6UmxOV3pVYnRHd1NBPScsXG4gIGJvdW5jZWFibGVTaWduYWJsZTogJ2xPRU9UelBYblBvdFRUSGk3eGdpdkZOVUhIK3hVZ3EvbktwYVAvYksrWG89JyxcbiAgcmVjaXBpZW50OiB7XG4gICAgYWRkcmVzczogJ0VRRE9FeXpDNktYaVZoMlJjbzJiYXBIOTZWbjZsYjlZV3hna1RWV3RxLTlDWEwwbScsXG4gICAgYW1vdW50OiAnMTAwMDAwMDAnLFxuICB9LFxuICByZWNpcGllbnROb25Cb3VuY2VhYmxlOiB7XG4gICAgYWRkcmVzczogJ1VRRE9FeXpDNktYaVZoMlJjbzJiYXBIOTZWbjZsYjlZV3hna1RWV3RxLTlDWE9EaicsXG4gICAgYW1vdW50OiAnMTAwMDAwMDAnLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IHNpZ25lZFRva2VuU2VuZFRyYW5zYWN0aW9uID0ge1xuICB0eDogJ3RlNmNja0VDR2dFQUJCMEFBdUdJQVZTR2IrVUdqalAzbHZ0K3pGQTh3b3VJM01jRWQ2Q0tiTzJUd2NaM09mTEtHQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNtcG94ZEpsZ0xTQUFBQUFBQURnRVhBZ0UwQWhZQkZQOEE5S1FUOUx6eXlBc0RBZ0VnQkJFQ0FVZ0ZDQUxtMEFIUTB3TWhjYkNTWHdUZ0l0ZEp3U0NTWHdUZ0F0TWZJWUlRY0d4MVo3MGlnaEJrYzNSeXZiQ1NYd1hnQS9wQU1DRDZSQUhJeWdmTC84blE3VVRRZ1FGQTF5SDBCREJjZ1FFSTlBcHZvVEd6a2w4SDRBWFRQOGdsZ2hCd2JIVm51cEk0TU9NTkE0SVFaSE4wY3JxU1h3YmpEUVlIQUhnQitnRDBCREQ0SjI4aU1GQUtvU0crOHVCUWdoQndiSFZuZ3g2eGNJQVlVQVRMQlNiUEZsajZBaG4wQU10cEY4c2ZVbURMUHlESmdFRDdBQVlBaWxBRWdRRUk5Rmt3N1VUUWdRRkExeURJQWM4VzlBREo3VlFCY3JDT0k0SVFaSE4wY29NZXNYQ0FHRkFGeXdWUUE4OFdJL29DRTh0cXl4L0xQOG1BUVBzQWtsOEQ0Z0lCSUFrUUFnRWdDZzhDQVZnTERBQTlzcDM3VVRRZ1FGQTF5SDBCREFDeU1vSHkvL0owQUdCQVFqMENtK2hNWUFJQklBME9BQm10em5haWFFQWdhNURyaGYvQUFCbXZIZmFpYUVBUWE1RHJoWS9BQUJHNHlYN1VUUTF3c2ZnQVdiMGtLMjlxSm9RSUNnYTVENkFoaEhEVUNBaEhwSk45S1pFTTVwQStuL21EZUJLQUczZ1FGSW1IRlo4eGhBVDQ4b01JMXhnZzB4L1RIOU1mQXZnanUvSms3VVRRMHgvVEg5UC85QVRSVVVPNjhxRlJVYnJ5b2dYNUFWUVFaUGtROHFQNEFDU2t5TXNmVWtETEgxSXd5LzlTRVBRQXllMVUrQThCMHdjaHdBQ2ZiRkdUSU5kS2x0TUgxQUw3QU9ndzRDSEFBZU1BSWNBQzR3QUJ3QU9STU9NTkE2VEl5eDhTeXgvTC94SVRGQlVBYnRJSCtnRFUxQ0w1QUFYSXlnY1Z5Ly9KMEhkMGdCakl5d1hMQWlMUEZsQUYrZ0lVeTJzU3pNekpjL3NBeUVBVWdRRUk5Rkh5cHdJQWNJRUJDTmNZK2dEVFA4aFVJRWVCQVFqMFVmS25naEJ1YjNSbGNIU0FHTWpMQmNzQ1VBYlBGbEFFK2dJVXkyb1N5eC9MUDhseit3QUNBR3lCQVFqWEdQb0Ewejh3VWlTQkFRajBXZktuZ2hCa2MzUnljSFNBR01qTEJjc0NVQVhQRmxBRCtnSVR5MnJMSHhMTFA4bHord0FBQ3ZRQXllMVVBRkVBQUFBQUthbWpGOU5UQVFIVUhoYlgwMFZHWjNkMnI4aGJKeHV6N1BheG11Q09KNmtnY2twcFFBRm1RZ0FCVDlMUjNJcWZmc2twMEo5Z1dZTzhBemxuYjMzQkNNajhGcUlVSUd4R09acGlXZ0FBQUFBQUFBQUFBQUFBQUFBQkdBR3VENHArcFFBQUFBQUFBQUFBUTdtc29BZ0EvQkdkQmkvUjAxZXJxdXhKT3ZQZ0dLY2xCYXdVczNNQWkwL0lkY3RLUXo4QUtwRE4vS0RSeG43eTMyL1ppZ2VZVVhFYm1PQ085QkZObmJKNE9NN25QbGxHSG9TQkdRQWtBQUFBQUdwbGRIUnZiaUIwWlhOMGFXNW53SHR3N0E9PScsXG4gIHR4MjogJ3RlNmNja0VDR2dFQUJCUUFBdUdJQVZTR2IrVUdqalAzbHZ0K3pGQTh3b3VJM01jRWQ2Q0tiTzJUd2NaM09mTEtHQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNtcG94ZEpsZ0xTQUFBQUFBQURnRVhBZ0UwQWhZQkZQOEE5S1FUOUx6eXlBc0RBZ0VnQkJFQ0FVZ0ZDQUxtMEFIUTB3TWhjYkNTWHdUZ0l0ZEp3U0NTWHdUZ0F0TWZJWUlRY0d4MVo3MGlnaEJrYzNSeXZiQ1NYd1hnQS9wQU1DRDZSQUhJeWdmTC84blE3VVRRZ1FGQTF5SDBCREJjZ1FFSTlBcHZvVEd6a2w4SDRBWFRQOGdsZ2hCd2JIVm51cEk0TU9NTkE0SVFaSE4wY3JxU1h3YmpEUVlIQUhnQitnRDBCREQ0SjI4aU1GQUtvU0crOHVCUWdoQndiSFZuZ3g2eGNJQVlVQVRMQlNiUEZsajZBaG4wQU10cEY4c2ZVbURMUHlESmdFRDdBQVlBaWxBRWdRRUk5Rmt3N1VUUWdRRkExeURJQWM4VzlBREo3VlFCY3JDT0k0SVFaSE4wY29NZXNYQ0FHRkFGeXdWUUE4OFdJL29DRTh0cXl4L0xQOG1BUVBzQWtsOEQ0Z0lCSUFrUUFnRWdDZzhDQVZnTERBQTlzcDM3VVRRZ1FGQTF5SDBCREFDeU1vSHkvL0owQUdCQVFqMENtK2hNWUFJQklBME9BQm10em5haWFFQWdhNURyaGYvQUFCbXZIZmFpYUVBUWE1RHJoWS9BQUJHNHlYN1VUUTF3c2ZnQVdiMGtLMjlxSm9RSUNnYTVENkFoaEhEVUNBaEhwSk45S1pFTTVwQStuL21EZUJLQUczZ1FGSW1IRlo4eGhBVDQ4b01JMXhnZzB4L1RIOU1mQXZnanUvSms3VVRRMHgvVEg5UC85QVRSVVVPNjhxRlJVYnJ5b2dYNUFWUVFaUGtROHFQNEFDU2t5TXNmVWtETEgxSXd5LzlTRVBRQXllMVUrQThCMHdjaHdBQ2ZiRkdUSU5kS2x0TUgxQUw3QU9ndzRDSEFBZU1BSWNBQzR3QUJ3QU9STU9NTkE2VEl5eDhTeXgvTC94SVRGQlVBYnRJSCtnRFUxQ0w1QUFYSXlnY1Z5Ly9KMEhkMGdCakl5d1hMQWlMUEZsQUYrZ0lVeTJzU3pNekpjL3NBeUVBVWdRRUk5Rkh5cHdJQWNJRUJDTmNZK2dEVFA4aFVJRWVCQVFqMFVmS25naEJ1YjNSbGNIU0FHTWpMQmNzQ1VBYlBGbEFFK2dJVXkyb1N5eC9MUDhseit3QUNBR3lCQVFqWEdQb0Ewejh3VWlTQkFRajBXZktuZ2hCa2MzUnljSFNBR01qTEJjc0NVQVhQRmxBRCtnSVR5MnJMSHhMTFA4bHord0FBQ3ZRQXllMVVBRkVBQUFBQUthbWpGOU5UQVFIVUhoYlgwMFZHWjNkMnI4aGJKeHV6N1BheG11Q09KNmtnY2twcFFBRm9ZZ0FCVDlMUjNJcWZmc2twMEo5Z1dZTzhBemxuYjMzQkNNajhGcUlVSUd4R09hQVgxNFFBQUFBQUFBQUFBQUFBQUFBQUFSZ0JyZytLZnFVQUFBQUFBQUFBQUVPNXJLQUlBUHdSblFZdjBkTlhxNnJzU1RyejRCaW5KUVdzRkxOekFJdFB5SFhMU2tNL0FDcVF6ZnlnMGNaKzh0OXYyWW9IbUZGeEc1amdqdlFSVFoyeWVEak81ejVaUnpFdEFSa0FFQUFBQUFCMFpYTjBNZmVvSGc9PScsXG4gIHR4Qm91bmNlYWJsZTpcbiAgICAndGU2Y2NrRUNHZ0VBQkIwQUF1R0lBVlNHYitVR2pqUDNsdnQrekZBOHdvdUkzTWNFZDZDS2JPMlR3Y1ozT2ZMS0dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ21wb3hkSmxnTFNBQUFBQUFBRGdFWEFnRTBBaFlCRlA4QTlLUVQ5THp5eUFzREFnRWdCQkVDQVVnRkNBTG0wQUhRMHdNaGNiQ1NYd1RnSXRkSndTQ1NYd1RnQXRNZklZSVFjR3gxWjcwaWdoQmtjM1J5dmJDU1h3WGdBL3BBTUNENlJBSEl5Z2ZMLzhuUTdVVFFnUUZBMXlIMEJEQmNnUUVJOUFwdm9UR3prbDhINEFYVFA4Z2xnaEJ3YkhWbnVwSTRNT01OQTRJUVpITjBjcnFTWHdiakRRWUhBSGdCK2dEMEJERDRKMjhpTUZBS29TRys4dUJRZ2hCd2JIVm5neDZ4Y0lBWVVBVExCU2JQRmxqNkFobjBBTXRwRjhzZlVtRExQeURKZ0VEN0FBWUFpbEFFZ1FFSTlGa3c3VVRRZ1FGQTF5RElBYzhXOUFESjdWUUJjckNPSTRJUVpITjBjb01lc1hDQUdGQUZ5d1ZRQTg4V0kvb0NFOHRxeXgvTFA4bUFRUHNBa2w4RDRnSUJJQWtRQWdFZ0NnOENBVmdMREFBOXNwMzdVVFFnUUZBMXlIMEJEQUN5TW9IeS8vSjBBR0JBUWowQ20raE1ZQUlCSUEwT0FCbXR6bmFpYUVBZ2E1RHJoZi9BQUJtdkhmYWlhRUFRYTVEcmhZL0FBQkc0eVg3VVRRMXdzZmdBV2Iwa0syOXFKb1FJQ2dhNUQ2QWhoSERVQ0FoSHBKTjlLWkVNNXBBK24vbURlQktBRzNnUUZJbUhGWjh4aEFUNDhvTUkxeGdnMHgvVEg5TWZBdmdqdS9KazdVVFEweC9USDlQLzlBVFJVVU82OHFGUlVicnlvZ1g1QVZRUVpQa1E4cVA0QUNTa3lNc2ZVa0RMSDFJd3kvOVNFUFFBeWUxVStBOEIwd2Nod0FDZmJGR1RJTmRLbHRNSDFBTDdBT2d3NENIQUFlTUFJY0FDNHdBQndBT1JNT01OQTZUSXl4OFN5eC9ML3hJVEZCVUFidElIK2dEVTFDTDVBQVhJeWdjVnkvL0owSGQwZ0JqSXl3WExBaUxQRmxBRitnSVV5MnNTek16SmMvc0F5RUFVZ1FFSTlGSHlwd0lBY0lFQkNOY1krZ0RUUDhoVUlFZUJBUWowVWZLbmdoQnViM1JsY0hTQUdNakxCY3NDVUFiUEZsQUUrZ0lVeTJvU3l4L0xQOGx6K3dBQ0FHeUJBUWpYR1BvQTB6OHdVaVNCQVFqMFdmS25naEJrYzNSeWNIU0FHTWpMQmNzQ1VBWFBGbEFEK2dJVHkyckxIeExMUDhseit3QUFDdlFBeWUxVUFGRUFBQUFBS2FtakY5TlRBUUhVSGhiWDAwVkdaM2QycjhoYkp4dXo3UGF4bXVDT0o2a2dja3BwUUFGbVlnQUJUOUxSM0lxZmZza3AwSjlnV1lPOEF6bG5iMzNCQ01qOEZxSVVJR3hHT1pwaVdnQUFBQUFBQUFBQUFBQUFBQUFCR0FHdUQ0cCtwUUFBQUFBQUFBQUFRN21zb0FnQS9CR2RCaS9SMDFlcnF1eEpPdlBnR0tjbEJhd1VzM01BaTAvSWRjdEtRejhBS3BETi9LRFJ4bjd5MzIvWmlnZVlVWEVibU9DTzlCRk5uYko0T003blBsbEdIb1NCR1FBa0FBQUFBR3BsZEhSdmJpQjBaWE4wYVc1bmRVTTVSUT09JyxcbiAgdHhJZDogJ0o5bmNwUEVvN1A1THgzVExMaFRGS1EyT3JvR1E1M3J2Mm5TQjNqWWdKTFE9JyxcbiAgdHhJZEJvdW5jZWFibGU6ICc1QWtQaXlUTWw1b1VBTmQyVUF6TG1YbXFJeVU2NXhTaGhDb29McTRpZ1Y4PScsXG4gIHNpZ25hYmxlOiAncnE0dHEvc0Z1WFZMY1FTZnl4RGQ3UXV4T2lmLzVCUXdwbTBnd09hK3NPRT0nLFxuICBib3VuY2VhYmxlU2lnbmFibGU6ICdlQllsL0hqREV3Qllzazl6Um9wcGNLWjFocDJPckFNUnV2Y2hIVjhNWXVVPScsXG4gIHJlY2lwaWVudDoge1xuICAgIGFkZHJlc3M6ICdFUUItQ002REYtanBxOVhWZGlTZGVmQU1VNUtDMWdwWnVZQkZwLVE2NWFVaG54NUsnLFxuICAgIGFtb3VudDogJzEwMDAwMDAwMDAnLFxuICB9LFxuICByZWNpcGllbnRCb3VuY2VhYmxlOiB7XG4gICAgYWRkcmVzczogJ1VRQi1DTTZERi1qcHE5WFZkaVNkZWZBTVU1S0MxZ3BadVlCRnAtUTY1YVVobjBPUCcsXG4gICAgYW1vdW50OiAnMTAwMDAwMDAwMCcsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3Qgc2lnbmVkVG9rZW5TZW5kVHJhbnNhY3Rpb25Gb3JNZW1vSWQgPSB7XG4gIHR4OiAndGU2Y2NrRUNHZ0VBQkIwQUF1R0lBVlNHYitVR2pqUDNsdnQrekZBOHdvdUkzTWNFZDZDS2JPMlR3Y1ozT2ZMS0dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ21wb3hkSmxnTFNBQUFBQUFBRGdFWEFnRTBBaFlCRlA4QTlLUVQ5THp5eUFzREFnRWdCQkVDQVVnRkNBTG0wQUhRMHdNaGNiQ1NYd1RnSXRkSndTQ1NYd1RnQXRNZklZSVFjR3gxWjcwaWdoQmtjM1J5dmJDU1h3WGdBL3BBTUNENlJBSEl5Z2ZMLzhuUTdVVFFnUUZBMXlIMEJEQmNnUUVJOUFwdm9UR3prbDhINEFYVFA4Z2xnaEJ3YkhWbnVwSTRNT01OQTRJUVpITjBjcnFTWHdiakRRWUhBSGdCK2dEMEJERDRKMjhpTUZBS29TRys4dUJRZ2hCd2JIVm5neDZ4Y0lBWVVBVExCU2JQRmxqNkFobjBBTXRwRjhzZlVtRExQeURKZ0VEN0FBWUFpbEFFZ1FFSTlGa3c3VVRRZ1FGQTF5RElBYzhXOUFESjdWUUJjckNPSTRJUVpITjBjb01lc1hDQUdGQUZ5d1ZRQTg4V0kvb0NFOHRxeXgvTFA4bUFRUHNBa2w4RDRnSUJJQWtRQWdFZ0NnOENBVmdMREFBOXNwMzdVVFFnUUZBMXlIMEJEQUN5TW9IeS8vSjBBR0JBUWowQ20raE1ZQUlCSUEwT0FCbXR6bmFpYUVBZ2E1RHJoZi9BQUJtdkhmYWlhRUFRYTVEcmhZL0FBQkc0eVg3VVRRMXdzZmdBV2Iwa0syOXFKb1FJQ2dhNUQ2QWhoSERVQ0FoSHBKTjlLWkVNNXBBK24vbURlQktBRzNnUUZJbUhGWjh4aEFUNDhvTUkxeGdnMHgvVEg5TWZBdmdqdS9KazdVVFEweC9USDlQLzlBVFJVVU82OHFGUlVicnlvZ1g1QVZRUVpQa1E4cVA0QUNTa3lNc2ZVa0RMSDFJd3kvOVNFUFFBeWUxVStBOEIwd2Nod0FDZmJGR1RJTmRLbHRNSDFBTDdBT2d3NENIQUFlTUFJY0FDNHdBQndBT1JNT01OQTZUSXl4OFN5eC9ML3hJVEZCVUFidElIK2dEVTFDTDVBQVhJeWdjVnkvL0owSGQwZ0JqSXl3WExBaUxQRmxBRitnSVV5MnNTek16SmMvc0F5RUFVZ1FFSTlGSHlwd0lBY0lFQkNOY1krZ0RUUDhoVUlFZUJBUWowVWZLbmdoQnViM1JsY0hTQUdNakxCY3NDVUFiUEZsQUUrZ0lVeTJvU3l4L0xQOGx6K3dBQ0FHeUJBUWpYR1BvQTB6OHdVaVNCQVFqMFdmS25naEJrYzNSeWNIU0FHTWpMQmNzQ1VBWFBGbEFEK2dJVHkyckxIeExMUDhseit3QUFDdlFBeWUxVUFGRUFBQUFBS2FtakY5TlRBUUhVSGhiWDAwVkdaM2QycjhoYkp4dXo3UGF4bXVDT0o2a2dja3BwUUFGbVFnQUJUOUxSM0lxZmZza3AwSjlnV1lPOEF6bG5iMzNCQ01qOEZxSVVJR3hHT1pwaVdnQUFBQUFBQUFBQUFBQUFBQUFCR0FHdUQ0cCtwUUFBQUFBQUFBQUFRN21zb0FnQS9CR2RCaS9SMDFlcnF1eEpPdlBnR0tjbEJhd1VzM01BaTAvSWRjdEtRejhBS3BETi9LRFJ4bjd5MzIvWmlnZVlVWEVibU9DTzlCRk5uYko0T003blBsbEdIb1NCR1FBa0FBQUFBR3BsZEhSdmJpQjBaWE4wYVc1bndIdHc3QT09JyxcbiAgcmVjaXBpZW50OiB7XG4gICAgYWRkcmVzczogJ1VRQi1DTTZERi1qcHE5WFZkaVNkZWZBTVU1S0MxZ3BadVlCRnAtUTY1YVVobjBPUD9tZW1vSWQ9MTIzNCcsXG4gICAgYW1vdW50OiAnMTAwMDAwMDAwMCcsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3Qgc2lnbmVkU2VuZFRyYW5zYWN0aW9uRm9yTWVtb0lkID0ge1xuICB0eDogJ3RlNmNja0VCQWdFQXFRQUI0WWdCSkF4bzd2cUhGKytMSjRiQy9rSjhBMXVWUnNrcktscktKWjhySUIwdEYrZ0NhZGxTWCtoUG8ybW1oWnlpMHAzelRWVVlWUmtjbXJDbTk3Y1NVRlNhMnZ6dkNBck0zQVBnK3d3OTJyM0lja2xOam56ZktPZ3lzSlZRWGlDdmo5U0FhVTFOR0xzb3R2UndBQUFBTUFBY0FRQm1RZ0FhUmVmQk9qVGkvaHdxRGp2KzdJNm5HajlXRUFlM2xzL3JGdUJFUXZnZ3I1ekV0QUFBQUFBQUFBQUFBQUFBQUFBQWRmWk83dz09JyxcbiAgcmVjaXBpZW50OiB7XG4gICAgYWRkcmVzczogJ0VRQTBpOC1DZEduRl9EaFVISGY5MlIxT05INnNJQTl2TFpfV0xjQ0loZkJCWHd0Rz9tZW1vSWQ9MTIzNCcsXG4gICAgYW1vdW50OiAnMTAwMDAwMDAnLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IHNpZ25lZFNpbmdsZU5vbWluYXRvcldpdGhkcmF3VHJhbnNhY3Rpb24gPSB7XG4gIHR4OiAndGU2Y2NrRUNHQUVBQThNQUF1R0lBRFpOMEgwbjF0ejZ4a1lnV3FKU1Jta1VSS1lhampFZ1hlYXdCbzljaWZQSUdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ21wb3hkSmxnTFNBQUFBQUFBRGdFWEFnRTBBaFlCRlA4QTlLUVQ5THp5eUFzREFnRWdCQkVDQVVnRkNBTG0wQUhRMHdNaGNiQ1NYd1RnSXRkSndTQ1NYd1RnQXRNZklZSVFjR3gxWjcwaWdoQmtjM1J5dmJDU1h3WGdBL3BBTUNENlJBSEl5Z2ZMLzhuUTdVVFFnUUZBMXlIMEJEQmNnUUVJOUFwdm9UR3prbDhINEFYVFA4Z2xnaEJ3YkhWbnVwSTRNT01OQTRJUVpITjBjcnFTWHdiakRRWUhBSGdCK2dEMEJERDRKMjhpTUZBS29TRys4dUJRZ2hCd2JIVm5neDZ4Y0lBWVVBVExCU2JQRmxqNkFobjBBTXRwRjhzZlVtRExQeURKZ0VEN0FBWUFpbEFFZ1FFSTlGa3c3VVRRZ1FGQTF5RElBYzhXOUFESjdWUUJjckNPSTRJUVpITjBjb01lc1hDQUdGQUZ5d1ZRQTg4V0kvb0NFOHRxeXgvTFA4bUFRUHNBa2w4RDRnSUJJQWtRQWdFZ0NnOENBVmdMREFBOXNwMzdVVFFnUUZBMXlIMEJEQUN5TW9IeS8vSjBBR0JBUWowQ20raE1ZQUlCSUEwT0FCbXR6bmFpYUVBZ2E1RHJoZi9BQUJtdkhmYWlhRUFRYTVEcmhZL0FBQkc0eVg3VVRRMXdzZmdBV2Iwa0syOXFKb1FJQ2dhNUQ2QWhoSERVQ0FoSHBKTjlLWkVNNXBBK24vbURlQktBRzNnUUZJbUhGWjh4aEFUNDhvTUkxeGdnMHgvVEg5TWZBdmdqdS9KazdVVFEweC9USDlQLzlBVFJVVU82OHFGUlVicnlvZ1g1QVZRUVpQa1E4cVA0QUNTa3lNc2ZVa0RMSDFJd3kvOVNFUFFBeWUxVStBOEIwd2Nod0FDZmJGR1RJTmRLbHRNSDFBTDdBT2d3NENIQUFlTUFJY0FDNHdBQndBT1JNT01OQTZUSXl4OFN5eC9ML3hJVEZCVUFidElIK2dEVTFDTDVBQVhJeWdjVnkvL0owSGQwZ0JqSXl3WExBaUxQRmxBRitnSVV5MnNTek16SmMvc0F5RUFVZ1FFSTlGSHlwd0lBY0lFQkNOY1krZ0RUUDhoVUlFZUJBUWowVWZLbmdoQnViM1JsY0hTQUdNakxCY3NDVUFiUEZsQUUrZ0lVeTJvU3l4L0xQOGx6K3dBQ0FHeUJBUWpYR1BvQTB6OHdVaVNCQVFqMFdmS25naEJrYzNSeWNIU0FHTWpMQmNzQ1VBWFBGbEFEK2dJVHkyckxIeExMUDhseit3QUFDdlFBeWUxVUFGRUFBQUFBS2FtakY4RER1ZHdKa3lFaDdqVWJKRWpGQ2pyaVZ4c1NsUkpGeUY4NzJWMWVlZ2I0UUFDUFFnQWFSZWZCT2pUaS9od3FEanYrN0k2bkdqOVdFQWUzbHMvckZ1QkVRdmdncjZBNjEzb0FBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBQUFIQTAvUG9VQzVFSUV5V3VQZz09JyxcbiAgdHhCb3VuY2VhYmxlOlxuICAgICd0ZTZjY2tFQ0dBRUFBOE1BQXVHSUFEWk4wSDBuMXR6NnhrWWdXcUpTUm1rVVJLWWFqakVnWGVhd0JvOWNpZlBJR0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDbXBveGRKbGdMU0FBQUFBQUFEZ0VYQWdFMEFoWUJGUDhBOUtRVDlMenl5QXNEQWdFZ0JCRUNBVWdGQ0FMbTBBSFEwd01oY2JDU1h3VGdJdGRKd1NDU1h3VGdBdE1mSVlJUWNHeDFaNzBpZ2hCa2MzUnl2YkNTWHdYZ0EvcEFNQ0Q2UkFISXlnZkwvOG5RN1VUUWdRRkExeUgwQkRCY2dRRUk5QXB2b1RHemtsOEg0QVhUUDhnbGdoQndiSFZudXBJNE1PTU5BNElRWkhOMGNycVNYd2JqRFFZSEFIZ0IrZ0QwQkRENEoyOGlNRkFLb1NHKzh1QlFnaEJ3YkhWbmd4NnhjSUFZVUFUTEJTYlBGbGo2QWhuMEFNdHBGOHNmVW1ETFB5REpnRUQ3QUFZQWlsQUVnUUVJOUZrdzdVVFFnUUZBMXlESUFjOFc5QURKN1ZRQmNyQ09JNElRWkhOMGNvTWVzWENBR0ZBRnl3VlFBODhXSS9vQ0U4dHF5eC9MUDhtQVFQc0FrbDhENGdJQklBa1FBZ0VnQ2c4Q0FWZ0xEQUE5c3AzN1VUUWdRRkExeUgwQkRBQ3lNb0h5Ly9KMEFHQkFRajBDbStoTVlBSUJJQTBPQUJtdHpuYWlhRUFnYTVEcmhmL0FBQm12SGZhaWFFQVFhNURyaFkvQUFCRzR5WDdVVFExd3NmZ0FXYjBrSzI5cUpvUUlDZ2E1RDZBaGhIRFVDQWhIcEpOOUtaRU01cEErbi9tRGVCS0FHM2dRRkltSEZaOHhoQVQ0OG9NSTF4Z2cweC9USDlNZkF2Z2p1L0prN1VUUTB4L1RIOVAvOUFUUlVVTzY4cUZSVWJyeW9nWDVBVlFRWlBrUThxUDRBQ1NreU1zZlVrRExIMUl3eS85U0VQUUF5ZTFVK0E4QjB3Y2h3QUNmYkZHVElOZEtsdE1IMUFMN0FPZ3c0Q0hBQWVNQUljQUM0d0FCd0FPUk1PTU5BNlRJeXg4U3l4L0wveElURkJVQWJ0SUgrZ0RVMUNMNUFBWEl5Z2NWeS8vSjBIZDBnQmpJeXdYTEFpTFBGbEFGK2dJVXkyc1N6TXpKYy9zQXlFQVVnUUVJOUZIeXB3SUFjSUVCQ05jWStnRFRQOGhVSUVlQkFRajBVZktuZ2hCdWIzUmxjSFNBR01qTEJjc0NVQWJQRmxBRStnSVV5Mm9TeXgvTFA4bHord0FDQUd5QkFRalhHUG9BMHo4d1VpU0JBUWowV2ZLbmdoQmtjM1J5Y0hTQUdNakxCY3NDVUFYUEZsQUQrZ0lUeTJyTEh4TExQOGx6K3dBQUN2UUF5ZTFVQUZFQUFBQUFLYW1qRjhERHVkd0preUVoN2pVYkpFakZDanJpVnhzU2xSSkZ5Rjg3MlYxZWVnYjRRQUNQWWdBYVJlZkJPalRpL2h3cURqdis3STZuR2o5V0VBZTNscy9yRnVCRVF2Z2dyNkE2MTNvQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUhBMC9Qb1VDNUVJQkRkZEhRPT0nLFxuICB0eElkOiAnbjFyci1RTDYxV1o3VUpON0VTSDJpUFFPN3RvVHk5V0xxWG9TSUcxSnRYZz0nLFxuICB0eElkQm91bmNlYWJsZTogJ24xcnItUUw2MVdaN1VKTjdFU0gyaVBRTzd0b1R5OVdMcVhvU0lHMUp0WGc9JyxcbiAgc2lnbmFibGU6ICdTQTRMb1JoS0RUaWJhOE1LbTBFQ0JBYWlXcWgyWXRlanR0bWZNenZOdzE0PScsXG4gIGJvdW5jZWFibGVTaWduYWJsZTogJ1NBNExvUmhLRFRpYmE4TUttMEVDQkFhaVdxaDJZdGVqdHRtZk16dk53MTQ9JyxcbiAgcmVjaXBpZW50OiB7XG4gICAgYWRkcmVzczogJ0VRQTBpOC1DZEduRl9EaFVISGY5MlIxT05INnNJQTl2TFpfV0xjQ0loZkJCWHd0RycsXG4gICAgYW1vdW50OiAnMTIzNDAwMDAwJyxcbiAgfSxcbiAgcmVjaXBpZW50Qm91bmNlYWJsZToge1xuICAgIGFkZHJlc3M6ICdVUUEwaTgtQ2RHbkZfRGhVSEhmOTJSMU9OSDZzSUE5dkxaX1dMY0NJaGZCQlgxYUQnLFxuICAgIGFtb3VudDogJzEyMzQwMDAwMCcsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3Qgc2lnbmVkVG9uV2hhbGVzRGVwb3NpdFRyYW5zYWN0aW9uID0ge1xuICByZWNpcGllbnQ6IHtcbiAgICAvL2h0dHBzOi8vdGVzdG5ldC50b25zY2FuLm9yZy9hZGRyZXNzL2tRRHI5U3E0ODJBNmlrSVVoNW1VVWpKYUJVVUpCcnllMTNDSmlEQi1SMzFfbDdtZ1xuICAgIGFkZHJlc3M6ICdFUURyOVNxNDgyQTZpa0lVaDVtVVVqSmFCVVVKQnJ5ZTEzQ0ppREItUjMxX2x3SXEnLFxuICAgIGFtb3VudDogJzEwMDAwMDAwMDAwJywgLy8gMTAgVE9OXG4gIH0sXG4gIC8vIFRoaXMgaXMgdGhlIHJhdyBUWCBmcm9tIHNhbmRib3hpbmcgYSBkZXBvc2l0IHRvIFRvbiBXaGFsZXNcbiAgdHg6ICd0ZTZjY2tFQkFnRUF2QUFCNFlnQXlCODdGZ0JHNGpRTlVBWXpjbXcyYUpHOVFRZVFtdE9QR3NSUHZYK2VNZHdGZjZPTHlHTXNQb1BYTlBMVXFNb1VaVElyZHUybWFOTlVLNTJxK1dhMEJKaE5xOWUvcUhYWXNGOXhVNVRZYk9zWnQxRUJHSmYxR3BrdW1kZ1hqMC80Q1UxTkdMdEtGZEh3QUFBQzRBQWNBUUNMWWdCMStwVmNlYkFkUlNFS1E4ektLUmt0QXFLRWcxNVBhN2hFeEJnL0k3Ni95NmdTb0Y4Z0FBQUFBQUFBQUFBQUFBQUFBQUI3elIvdkFBQUFBR2xDdWdKRHVheWdDRXJSdzJZPScsXG4gIHNlcW5vOiA5MixcbiAgcXVlcnlJZDogJzAwMDAwMDAwNjk0MmJhMDInLFxuICBleHBpcmVUaW1lOiAxNzY1OTgwNzM0LFxuICBzZW5kZXI6ICdFUUJrRDUyTEFDTnhHZ2FvQXhtNU5oczBTTjZnZzhoTmFjZU5ZaWZldjg4WTdxb1onLFxuICBwdWJsaWNLZXk6ICc5ZDZkMzcxNGFlYjFmMDA3ZjZlNmFhNzI4Zjc5ZmRkMDA1ZWEyYzdhZDQ1OWIyZjU0ZDczZjllNjcyNDI2MjMwJyxcbiAgc2lnbmF0dXJlOlxuICAgICdhZmY0NzE3OTBjNjU4N2QwN2FlNjllNWE5NTE5NDI4Y2E2NDU2ZWRkYjRjZDFhNmE4NTczYjU1ZjJjZDY4MDkzMDliNTdhZjdmNTBlYmIxNjBiZWUyYTcyOWIwZDlkNjMzNmVhMjAyMzEyZmVhMzUzMjVkMzNiMDJmMWU5ZmYwMScsXG4gIGJvdW5jZWFibGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3Qgc2lnbmVkVG9uV2hhbGVzV2l0aGRyYXdhbFRyYW5zYWN0aW9uID0ge1xuICByZWNpcGllbnQ6IHtcbiAgICAvL2h0dHBzOi8vdGVzdG5ldC50b25zY2FuLm9yZy9hZGRyZXNzL2tRRHI5U3E0ODJBNmlrSVVoNW1VVWpKYUJVVUpCcnllMTNDSmlEQi1SMzFfbDdtZ1xuICAgIGFkZHJlc3M6ICdFUURyOVNxNDgyQTZpa0lVaDVtVVVqSmFCVVVKQnJ5ZTEzQ0ppREItUjMxX2x3SXEnLFxuICAgIGFtb3VudDogJzIwMDAwMDAwMCcsIC8vIDEwIFRPTlxuICB9LFxuICB3aXRoZHJhd0Ftb3VudDogJzEwMDAwMDAwMDAwJyxcbiAgLy8gVGhpcyBpcyB0aGUgcmF3IFRYIGZyb20gc2FuZGJveGluZyBhIHdpdGhkcmF3YWwgcmVxdWVzdCB0byBUb24gV2hhbGVzXG4gIHR4OiAndGU2Y2NrRUJBZ0VBd0FBQjRZZ0F5Qjg3RmdCRzRqUU5VQVl6Y213MmFKRzlRUWVRbXRPUEdzUlB2WCtlTWR3R3piZHF6cVJqenpvdS9HSVVxcXFkWm43VGV2citvU2F3RjUyOWliRWdTb3hmY2V6R0Y1R1c0b0Y2L1dzKzRPYW5NZ0J3TVZDZTBHSUVLM0dTVHpDSWFVMU5HTHRLVlN2QUFBQUM2QUFjQVFDVVlnQjErcFZjZWJBZFJTRUtROHpLS1JrdEFxS0VnMTVQYTdoRXhCZy9JNzYveTZCZlhoQUFBQUFBQUFBQUFBQUFBQUFBQU5xQVB2MEFBQUFBYVVxbFBFTzVyS0FGQWxRTDVBQ0twM0NJJyxcbiAgc2Vxbm86IDkzLFxuICBxdWVyeUlkOiAnMDAwMDAwMDA2OTRhYTUzYycsXG4gIGV4cGlyZVRpbWU6IDE3NjY0OTk3MDQsXG4gIHNlbmRlcjogJ0VRQmtENTJMQUNOeEdnYW9BeG01TmhzMFNONmdnOGhOYWNlTllpZmV2ODhZN3FvWicsXG4gIHB1YmxpY0tleTogJzlkNmQzNzE0YWViMWYwMDdmNmU2YWE3MjhmNzlmZGQwMDVlYTJjN2FkNDU5YjJmNTRkNzNmOWU2NzI0MjYyMzAnLFxuICBzaWduYXR1cmU6XG4gICAgJ2Q5YjZlZDU5ZDQ4Yzc5ZTc0NWRmOGM0Mjk1NTU1M2FjY2ZkYTZmNWY1ZmQ0MjRkNjAyZjNiN2IxMzYyNDA5NTE4YmVlM2Q5OGMyZjIzMmRjNTAyZjVmYWQ2N2RjMWNkNGU2NDAwZTA2MmExM2RhMGM0MDg1NmUzMjQ5ZTYxMTBkJyxcbiAgYm91bmNlYWJsZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBzaWduZWRUb25XaGFsZXNGdWxsV2l0aGRyYXdhbFRyYW5zYWN0aW9uID0ge1xuICByZWNpcGllbnQ6IHtcbiAgICBhZGRyZXNzOiAnRVFEcjlTcTQ4MkE2aWtJVWg1bVVVakphQlVVSkJyeWUxM0NKaURCLVIzMV9sd0lxJyxcbiAgICBhbW91bnQ6ICcyMDAwMDAwMDAnLCAvLyAwLjIgVE9OIChGZWUpXG4gIH0sXG4gIHdpdGhkcmF3QW1vdW50OiAnMCcsIC8vIDAgbWVhbnMgRnVsbCBXaXRoZHJhd1xuICB0eDogJ3RlNmNja0VCQWdFQXV3QUI0WWdBeUI4N0ZnQkc0alFOVUFZemNtdzJhSkc5UVFlUW10T1BHc1JQdlgrZU1kd0hTckx4RUl3QTlueWZ4S3FvbThNc0diUENMNVNmd3FHRHpIeVluS3pKd1U4ZWNOcWI2eGtCN3U5Z0J3QnJaZE8zTnZlY0Y0NG5YZTJMbS8rT0w4WjRhVTFOR0x0S1ZnZzRBQUFDOEFBY0FRQ0tZZ0IxK3BWY2ViQWRSU0VLUTh6S0tSa3RBcUtFZzE1UGE3aEV4QmcvSTc2L3k2QmZYaEFBQUFBQUFBQUFBQUFBQUFBQUFOcUFQdjBBQUFBQWFVckF5ME81cktBQXVkclRJdz09JyxcbiAgc2Vxbm86IDk0LFxuICBxdWVyeUlkOiAnMDAwMDAwMDA2OTRhYzBjYicsXG4gIGV4cGlyZVRpbWU6IDE3NjY1MDY3NTksXG4gIHNlbmRlcjogJ0VRQmtENTJMQUNOeEdnYW9BeG01TmhzMFNONmdnOGhOYWNlTllpZmV2ODhZN3FvWicsXG4gIHB1YmxpY0tleTogJzlkNmQzNzE0YWViMWYwMDdmNmU2YWE3MjhmNzlmZGQwMDVlYTJjN2FkNDU5YjJmNTRkNzNmOWU2NzI0MjYyMzAnLFxuICBzaWduYXR1cmU6XG4gICAgJ2U5NTY1ZTIyMTE4MDFlY2Y5M2Y4OTU1NTEzNzg2NTgzMzY3ODQ1ZjI5M2Y4NTQzMDc5OGY5MzEzOTU5OTM4MjllM2NlMWI1MzdkNjMyMDNkZGRlYzAwZTAwZDZjYmE3NmU2ZGVmMzgyZjFjNGViYmRiMTczN2ZmMWM1ZjhjZjBkJyxcbiAgYm91bmNlYWJsZTogdHJ1ZSxcbn07XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tonWhalesDepositBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tonWhalesDepositBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/tonWhalesDepositBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const should_1 = __importDefault(require("should"));
40
+ const sdk_core_1 = require("@bitgo/sdk-core");
41
+ const src_1 = require("../../src"); // Adjust path as needed
42
+ const statics_1 = require("@bitgo/statics");
43
+ const testData = __importStar(require("../resources/ton"));
44
+ const constants_1 = require("../../src/lib/constants");
45
+ describe('Ton Whales Deposit Builder', () => {
46
+ const factory = new src_1.TransactionBuilderFactory(statics_1.coins.get('tton'));
47
+ const fixture = testData.signedTonWhalesDepositTransaction;
48
+ it('should parse a raw transaction and extract correct parameters', async function () {
49
+ const txBuilder = factory.from(fixture.tx);
50
+ const builtTx = await txBuilder.build();
51
+ const jsonTx = builtTx.toJson();
52
+ // Verify Business Logic Fields
53
+ should_1.default.equal(builtTx.type, sdk_core_1.TransactionType.TonWhalesDeposit);
54
+ should_1.default.equal(jsonTx.amount, fixture.recipient.amount);
55
+ should_1.default.equal(jsonTx.destination, fixture.recipient.address);
56
+ should_1.default.equal(jsonTx.sender, fixture.sender);
57
+ // Verify Network Constraints
58
+ should_1.default.equal(jsonTx.seqno, fixture.seqno);
59
+ should_1.default.equal(jsonTx.expirationTime, fixture.expireTime);
60
+ should_1.default.equal(jsonTx.bounceable, fixture.bounceable);
61
+ // Verify Payload Structure (OpCode Check)
62
+ const msg = builtTx['message'] || '';
63
+ should_1.default.equal(msg.startsWith(constants_1.TON_WHALES_DEPOSIT_OPCODE), true);
64
+ });
65
+ it('should parse and rebuild the transaction resulting in the same hex', async function () {
66
+ const txBuilder = factory.from(fixture.tx);
67
+ const builtTx = await txBuilder.build();
68
+ // Verify the parser extracted the signature
69
+ const signature = builtTx.signature[0];
70
+ should_1.default.exist(signature);
71
+ signature.should.not.be.empty();
72
+ // Rebuild from the parsed object
73
+ const builder2 = factory.from(builtTx.toBroadcastFormat());
74
+ const builtTx2 = await builder2.build();
75
+ // The output of the second build should match the original raw transaction
76
+ should_1.default.equal(builtTx2.toBroadcastFormat(), fixture.tx);
77
+ should_1.default.equal(builtTx2.type, sdk_core_1.TransactionType.TonWhalesDeposit);
78
+ });
79
+ it('should build a transaction from scratch that byte-for-byte matches the raw fixture', async function () {
80
+ const builder = factory.getTonWhalesDepositBuilder();
81
+ // Set Header Info from Fixture
82
+ builder.sender(fixture.sender);
83
+ builder.publicKey(fixture.publicKey);
84
+ builder.sequenceNumber(fixture.seqno);
85
+ builder.expireTime(fixture.expireTime);
86
+ builder.bounceable(fixture.bounceable);
87
+ // Set Staking Info from Fixture
88
+ builder.send({
89
+ address: fixture.recipient.address,
90
+ amount: fixture.recipient.amount,
91
+ });
92
+ builder.setDepositAmount(fixture.recipient.amount);
93
+ // Set the specific QueryID from Fixture so binary hash matches
94
+ builder.setDepositMessage(fixture.queryId);
95
+ // Attach Signature from Fixture (Mocking the HSM signing process)
96
+ if (fixture.signature) {
97
+ builder.addSignature({ pub: fixture.publicKey }, Buffer.from(fixture.signature, 'hex'));
98
+ }
99
+ // Build Signed Transaction
100
+ const signedBuiltTx = await builder.build();
101
+ // Final Assertion: Byte-for-byte equality with the Sandbox output
102
+ should_1.default.equal(signedBuiltTx.toBroadcastFormat(), fixture.tx);
103
+ should_1.default.equal(signedBuiltTx.type, sdk_core_1.TransactionType.TonWhalesDeposit);
104
+ });
105
+ it('should parse the bounceable flag correctly', async function () {
106
+ const txBuilder = factory.from(fixture.tx);
107
+ const tx = await txBuilder.build();
108
+ // The fixture is set to true, so the parser must reflect that
109
+ const isBounceable = tx.toJson().bounceable;
110
+ should_1.default.equal(isBounceable, fixture.bounceable);
111
+ should_1.default.equal(typeof isBounceable, 'boolean');
112
+ });
113
+ });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsOENBQWtEO0FBQ2xELG1DQUFzRCxDQUFDLHdCQUF3QjtBQUMvRSw0Q0FBdUM7QUFDdkMsMkRBQTZDO0FBQzdDLHVEQUFvRTtBQUVwRSxRQUFRLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO0lBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksK0JBQXlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxpQ0FBaUMsQ0FBQztJQUUzRCxFQUFFLENBQUMsK0RBQStELEVBQUUsS0FBSztRQUN2RSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFaEMsK0JBQStCO1FBQy9CLGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsMEJBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdELGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0RCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUQsZ0JBQU0sQ0FBQyxL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T0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzFGLENBQUM7UUFFRCwyQkFBMkI7UUFDM0IsTUFBTSxhQUFhLEdBQUcsTUFBTSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFNUMsa0VBQWtFO1FBQ2xFLGdCQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLDBCQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNyRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxLQUFLO1FBQ3BELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRW5DLDhEQUE4RDtRQUM5RCxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDO1FBQzVDLGdCQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vc3JjJzsgLy8gQWRqdXN0IHBhdGggYXMgbmVlZGVkXG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uL3Jlc291cmNlcy90b24nO1xuaW1wb3J0IHsgVE9OX1dIQUxFU19ERVBPU0lUX09QQ09ERSB9IGZyb20gJy4uLy4uL3NyYy9saWIvY29uc3RhbnRzJztcblxuZGVzY3JpYmUoJ1RvbiBXaGFsZXMgRGVwb3NpdCBCdWlsZGVyJywgKCkgPT4ge1xuICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KCd0dG9uJykpO1xuICBjb25zdCBmaXh0dXJlID0gdGVzdERhdGEuc2lnbmVkVG9uV2hhbGVzRGVwb3NpdFRyYW5zYWN0aW9uO1xuXG4gIGl0KCdzaG91bGQgcGFyc2UgYSByYXcgdHJhbnNhY3Rpb24gYW5kIGV4dHJhY3QgY29ycmVjdCBwYXJhbWV0ZXJzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZnJvbShmaXh0dXJlLnR4KTtcbiAgICBjb25zdCBidWlsdFR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgY29uc3QganNvblR4ID0gYnVpbHRUeC50b0pzb24oKTtcblxuICAgIC8vIFZlcmlmeSBCdXNpbmVzcyBMb2dpYyBGaWVsZHNcbiAgICBzaG91bGQuZXF1YWwoYnVpbHRUeC50eXBlLCBUcmFuc2FjdGlvblR5cGUuVG9uV2hhbGVzRGVwb3NpdCk7XG4gICAgc2hvdWxkLmVxdWFsKGpzb25UeC5hbW91bnQsIGZpeHR1cmUucmVjaXBpZW50LmFtb3VudCk7XG4gICAgc2hvdWxkLmVxdWFsKGpzb25UeC5kZXN0aW5hdGlvbiwgZml4dHVyZS5yZWNpcGllbnQuYWRkcmVzcyk7XG4gICAgc2hvdWxkLmVxdWFsKGpzb25UeC5zZW5kZXIsIGZpeHR1cmUuc2VuZGVyKTtcblxuICAgIC8vIFZlcmlmeSBOZXR3b3JrIENvbnN0cmFpbnRzXG4gICAgc2hvdWxkLmVxdWFsKGpzb25UeC5zZXFubywgZml4dHVyZS5zZXFubyk7XG4gICAgc2hvdWxkLmVxdWFsKGpzb25UeC5leHBpcmF0aW9uVGltZSwgZml4dHVyZS5leHBpcmVUaW1lKTtcbiAgICBzaG91bGQuZXF1YWwoanNvblR4LmJvdW5jZWFibGUsIGZpeHR1cmUuYm91bmNlYWJsZSk7XG5cbiAgICAvLyBWZXJpZnkgUGF5bG9hZCBTdHJ1Y3R1cmUgKE9wQ29kZSBDaGVjaylcbiAgICBjb25zdCBtc2cgPSBidWlsdFR4WydtZXNzYWdlJ10gfHwgJyc7XG4gICAgc2hvdWxkLmVxdWFsKG1zZy5zdGFydHNXaXRoKFRPTl9XSEFMRVNfREVQT1NJVF9PUENPREUpLCB0cnVlKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwYXJzZSBhbmQgcmVidWlsZCB0aGUgdHJhbnNhY3Rpb24gcmVzdWx0aW5nIGluIHRoZSBzYW1lIGhleCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmZyb20oZml4dHVyZS50eCk7XG4gICAgY29uc3QgYnVpbHRUeCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuXG4gICAgLy8gVmVyaWZ5IHRoZSBwYXJzZXIgZXh0cmFjdGVkIHRoZSBzaWduYXR1cmVcbiAgICBjb25zdCBzaWduYXR1cmUgPSBidWlsdFR4LnNpZ25hdHVyZVswXTtcbiAgICBzaG91bGQuZXhpc3Qoc2lnbmF0dXJlKTtcbiAgICBzaWduYXR1cmUuc2hvdWxkLm5vdC5iZS5lbXB0eSgpO1xuXG4gICAgLy8gUmVidWlsZCBmcm9tIHRoZSBwYXJzZWQgb2JqZWN0XG4gICAgY29uc3QgYnVpbGRlcjIgPSBmYWN0b3J5LmZyb20oYnVpbHRUeC50b0Jyb2FkY2FzdEZvcm1hdCgpKTtcbiAgICBjb25zdCBidWlsdFR4MiA9IGF3YWl0IGJ1aWxkZXIyLmJ1aWxkKCk7XG5cbiAgICAvLyBUaGUgb3V0cHV0IG9mIHRoZSBzZWNvbmQgYnVpbGQgc2hvdWxkIG1hdGNoIHRoZSBvcmlnaW5hbCByYXcgdHJhbnNhY3Rpb25cbiAgICBzaG91bGQuZXF1YWwoYnVpbHRUeDIudG9Ccm9hZGNhc3RGb3JtYXQoKSwgZml4dHVyZS50eCk7XG4gICAgc2hvdWxkLmVxdWFsKGJ1aWx0VHgyLnR5cGUsIFRyYW5zYWN0aW9uVHlwZS5Ub25XaGFsZXNEZXBvc2l0KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBidWlsZCBhIHRyYW5zYWN0aW9uIGZyb20gc2NyYXRjaCB0aGF0IGJ5dGUtZm9yLWJ5dGUgbWF0Y2hlcyB0aGUgcmF3IGZpeHR1cmUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0VG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIoKTtcblxuICAgIC8vIFNldCBIZWFkZXIgSW5mbyBmcm9tIEZpeHR1cmVcbiAgICBidWlsZGVyLnNlbmRlcihmaXh0dXJlLnNlbmRlcik7XG4gICAgYnVpbGRlci5wdWJsaWNLZXkoZml4dHVyZS5wdWJsaWNLZXkpO1xuICAgIGJ1aWxkZXIuc2VxdWVuY2VOdW1iZXIoZml4dHVyZS5zZXFubyk7XG4gICAgYnVpbGRlci5leHBpcmVUaW1lKGZpeHR1cmUuZXhwaXJlVGltZSk7XG4gICAgYnVpbGRlci5ib3VuY2VhYmxlKGZpeHR1cmUuYm91bmNlYWJsZSk7XG5cbiAgICAvLyBTZXQgU3Rha2luZyBJbmZvIGZyb20gRml4dHVyZVxuICAgIGJ1aWxkZXIuc2VuZCh7XG4gICAgICBhZGRyZXNzOiBmaXh0dXJlLnJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgYW1vdW50OiBmaXh0dXJlLnJlY2lwaWVudC5hbW91bnQsXG4gICAgfSk7XG4gICAgYnVpbGRlci5zZXREZXBvc2l0QW1vdW50KGZpeHR1cmUucmVjaXBpZW50LmFtb3VudCk7XG5cbiAgICAvLyBTZXQgdGhlIHNwZWNpZmljIFF1ZXJ5SUQgZnJvbSBGaXh0dXJlIHNvIGJpbmFyeSBoYXNoIG1hdGNoZXNcbiAgICBidWlsZGVyLnNldERlcG9zaXRNZXNzYWdlKGZpeHR1cmUucXVlcnlJZCk7XG5cbiAgICAvLyBBdHRhY2ggU2lnbmF0dXJlIGZyb20gRml4dHVyZSAoTW9ja2luZyB0aGUgSFNNIHNpZ25pbmcgcHJvY2VzcylcbiAgICBpZiAoZml4dHVyZS5zaWduYXR1cmUpIHtcbiAgICAgIGJ1aWxkZXIuYWRkU2lnbmF0dXJlKHsgcHViOiBmaXh0dXJlLnB1YmxpY0tleSB9LCBCdWZmZXIuZnJvbShmaXh0dXJlLnNpZ25hdHVyZSwgJ2hleCcpKTtcbiAgICB9XG5cbiAgICAvLyBCdWlsZCBTaWduZWQgVHJhbnNhY3Rpb25cbiAgICBjb25zdCBzaWduZWRCdWlsdFR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgLy8gRmluYWwgQXNzZXJ0aW9uOiBCeXRlLWZvci1ieXRlIGVxdWFsaXR5IHdpdGggdGhlIFNhbmRib3ggb3V0cHV0XG4gICAgc2hvdWxkLmVxdWFsKHNpZ25lZEJ1aWx0VHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgZml4dHVyZS50eCk7XG4gICAgc2hvdWxkLmVxdWFsKHNpZ25lZEJ1aWx0VHgudHlwZSwgVHJhbnNhY3Rpb25UeXBlLlRvbldoYWxlc0RlcG9zaXQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHBhcnNlIHRoZSBib3VuY2VhYmxlIGZsYWcgY29ycmVjdGx5JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZnJvbShmaXh0dXJlLnR4KTtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuXG4gICAgLy8gVGhlIGZpeHR1cmUgaXMgc2V0IHRvIHRydWUsIHNvIHRoZSBwYXJzZXIgbXVzdCByZWZsZWN0IHRoYXRcbiAgICBjb25zdCBpc0JvdW5jZWFibGUgPSB0eC50b0pzb24oKS5ib3VuY2VhYmxlO1xuICAgIHNob3VsZC5lcXVhbChpc0JvdW5jZWFibGUsIGZpeHR1cmUuYm91bmNlYWJsZSk7XG4gICAgc2hvdWxkLmVxdWFsKHR5cGVvZiBpc0JvdW5jZWFibGUsICdib29sZWFuJyk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tonWhalesWithdrawalBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tonWhalesWithdrawalBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/tonWhalesWithdrawalBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const should_1 = __importDefault(require("should"));
40
+ const sdk_core_1 = require("@bitgo/sdk-core");
41
+ const src_1 = require("../../src"); // Adjust path as needed
42
+ const statics_1 = require("@bitgo/statics");
43
+ const testData = __importStar(require("../resources/ton"));
44
+ const constants_1 = require("../../src/lib/constants");
45
+ describe('Ton Whales Withdrawal Builder', () => {
46
+ const factory = new src_1.TransactionBuilderFactory(statics_1.coins.get('tton'));
47
+ // Define the scenarios we want to test
48
+ const scenarios = [
49
+ {
50
+ name: 'Partial Withdrawal (10 TON)',
51
+ fixture: testData.signedTonWhalesWithdrawalTransaction,
52
+ },
53
+ {
54
+ name: 'Full Withdrawal (Amount 0)',
55
+ fixture: testData.signedTonWhalesFullWithdrawalTransaction,
56
+ },
57
+ ];
58
+ scenarios.forEach((scenario) => {
59
+ describe(scenario.name, () => {
60
+ const fixture = scenario.fixture;
61
+ it('should parse a raw transaction and extract correct parameters', async function () {
62
+ const txBuilder = factory.from(fixture.tx);
63
+ const builtTx = await txBuilder.build();
64
+ const jsonTx = builtTx.toJson();
65
+ // Verify Business Logic Fields
66
+ should_1.default.equal(builtTx.type, sdk_core_1.TransactionType.TonWhalesWithdrawal);
67
+ // NOTE: In withdrawals, recipient.amount is the FEE, withdrawAmount is the STAKE
68
+ should_1.default.equal(jsonTx.amount, fixture.recipient.amount);
69
+ should_1.default.equal(jsonTx.withdrawAmount, fixture.withdrawAmount);
70
+ should_1.default.equal(jsonTx.destination, fixture.recipient.address);
71
+ should_1.default.equal(jsonTx.sender, fixture.sender);
72
+ // Verify Network Constraints
73
+ should_1.default.equal(jsonTx.seqno, fixture.seqno);
74
+ should_1.default.equal(jsonTx.expirationTime, fixture.expireTime);
75
+ should_1.default.equal(jsonTx.bounceable, fixture.bounceable);
76
+ // Verify Payload Structure
77
+ // Logic: DecimalOpCode + HexQueryId + DecimalAmount
78
+ const msg = builtTx['message'] || '';
79
+ should_1.default.equal(msg.startsWith(constants_1.TON_WHALES_WITHDRAW_OPCODE), true);
80
+ // Ensure the payload ENDS with the decimal amount (either "1000..." or "0")
81
+ should_1.default.equal(msg.endsWith(fixture.withdrawAmount), true);
82
+ });
83
+ it('should parse and rebuild the transaction resulting in the same hex', async function () {
84
+ const txBuilder = factory.from(fixture.tx);
85
+ const builtTx = await txBuilder.build();
86
+ // Verify the parser extracted the signature
87
+ const signature = builtTx.signature[0];
88
+ should_1.default.exist(signature);
89
+ signature.should.not.be.empty();
90
+ // Rebuild from the parsed object
91
+ const builder2 = factory.from(builtTx.toBroadcastFormat());
92
+ const builtTx2 = await builder2.build();
93
+ // The output of the second build should match the original raw transaction
94
+ should_1.default.equal(builtTx2.toBroadcastFormat(), fixture.tx);
95
+ should_1.default.equal(builtTx2.type, sdk_core_1.TransactionType.TonWhalesWithdrawal);
96
+ });
97
+ it('should build a transaction from scratch that byte-for-byte matches the raw fixture', async function () {
98
+ // Get the specific Withdrawal Builder
99
+ const builder = factory.getTonWhalesWithdrawalBuilder();
100
+ // Set Header Info from Fixture
101
+ builder.sender(fixture.sender);
102
+ builder.publicKey(fixture.publicKey);
103
+ builder.sequenceNumber(fixture.seqno);
104
+ builder.expireTime(fixture.expireTime);
105
+ builder.bounceable(fixture.bounceable);
106
+ // Set Destination and ATTACHED VALUE (The Fee)
107
+ builder.send({
108
+ address: fixture.recipient.address,
109
+ amount: fixture.recipient.amount,
110
+ });
111
+ // Set Payload Data (The Unstake Amount)
112
+ // Note: This works for both partial (amount > 0) and full (amount = "0")
113
+ builder.setWithdrawalMessage(fixture.withdrawAmount, fixture.queryId);
114
+ // Attach Signature from Fixture (Mocking the HSM signing process)
115
+ if (fixture.signature) {
116
+ builder.addSignature({ pub: fixture.publicKey }, Buffer.from(fixture.signature, 'hex'));
117
+ }
118
+ // Build Signed Transaction
119
+ const signedBuiltTx = await builder.build();
120
+ // Byte-for-byte equality with the Sandbox output
121
+ should_1.default.equal(signedBuiltTx.toBroadcastFormat(), fixture.tx);
122
+ should_1.default.equal(signedBuiltTx.type, sdk_core_1.TransactionType.TonWhalesWithdrawal);
123
+ });
124
+ });
125
+ });
126
+ });
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsOENBQWtEO0FBQ2xELG1DQUFzRCxDQUFDLHdCQUF3QjtBQUMvRSw0Q0FBdUM7QUFDdkMsMkRBQTZDO0FBQzdDLHVEQUFxRTtBQUVyRSxRQUFRLENBQUMsK0JBQStCLEVBQUUsR0FBRyxFQUFFO0lBQzdDLE1BQU0sT0FBTyxHQUFHLElBQUksK0JBQXlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRWpFLHVDQUF1QztJQUN2QyxNQUFNLFNBQVMsR0FBRztRQUNoQjtZQUNFLElBQUksRUFBRSw2QkFBNkI7WUFDbkMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxvQ0FBb0M7U0FDdkQ7UUFDRDtZQUNFLElBQUksRUFBRSw0QkFBNEI7WUFDbEMsT0FBTyxFQUFFLFFBQVEsQ0FBQyx3Q0FBd0M7U0FDM0Q7S0FDRixDQUFDO0lBRUYsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQzdCLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTtZQUMzQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBRWpDLEVBQUUsQ0FBQywrREFBK0QsRUFBRSxLQUFLO2dCQUN2RSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUs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TCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vLi4vc3JjJzsgLy8gQWRqdXN0IHBhdGggYXMgbmVlZGVkXG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uL3Jlc291cmNlcy90b24nO1xuaW1wb3J0IHsgVE9OX1dIQUxFU19XSVRIRFJBV19PUENPREUgfSBmcm9tICcuLi8uLi9zcmMvbGliL2NvbnN0YW50cyc7XG5cbmRlc2NyaWJlKCdUb24gV2hhbGVzIFdpdGhkcmF3YWwgQnVpbGRlcicsICgpID0+IHtcbiAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndHRvbicpKTtcblxuICAvLyBEZWZpbmUgdGhlIHNjZW5hcmlvcyB3ZSB3YW50IHRvIHRlc3RcbiAgY29uc3Qgc2NlbmFyaW9zID0gW1xuICAgIHtcbiAgICAgIG5hbWU6ICdQYXJ0aWFsIFdpdGhkcmF3YWwgKDEwIFRPTiknLFxuICAgICAgZml4dHVyZTogdGVzdERhdGEuc2lnbmVkVG9uV2hhbGVzV2l0aGRyYXdhbFRyYW5zYWN0aW9uLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ0Z1bGwgV2l0aGRyYXdhbCAoQW1vdW50IDApJyxcbiAgICAgIGZpeHR1cmU6IHRlc3REYXRhLnNpZ25lZFRvbldoYWxlc0Z1bGxXaXRoZHJhd2FsVHJhbnNhY3Rpb24sXG4gICAgfSxcbiAgXTtcblxuICBzY2VuYXJpb3MuZm9yRWFjaCgoc2NlbmFyaW8pID0+IHtcbiAgICBkZXNjcmliZShzY2VuYXJpby5uYW1lLCAoKSA9PiB7XG4gICAgICBjb25zdCBmaXh0dXJlID0gc2NlbmFyaW8uZml4dHVyZTtcblxuICAgICAgaXQoJ3Nob3VsZCBwYXJzZSBhIHJhdyB0cmFuc2FjdGlvbiBhbmQgZXh0cmFjdCBjb3JyZWN0IHBhcmFtZXRlcnMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZnJvbShmaXh0dXJlLnR4KTtcbiAgICAgICAgY29uc3QgYnVpbHRUeCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgICBjb25zdCBqc29uVHggPSBidWlsdFR4LnRvSnNvbigpO1xuXG4gICAgICAgIC8vIFZlcmlmeSBCdXNpbmVzcyBMb2dpYyBGaWVsZHNcbiAgICAgICAgc2hvdWxkLmVxdWFsKGJ1aWx0VHgudHlwZSwgVHJhbnNhY3Rpb25UeXBlLlRvbldoYWxlc1dpdGhkcmF3YWwpO1xuXG4gICAgICAgIC8vIE5PVEU6IEluIHdpdGhkcmF3YWxzLCByZWNpcGllbnQuYW1vdW50IGlzIHRoZSBGRUUsIHdpdGhkcmF3QW1vdW50IGlzIHRoZSBTVEFLRVxuICAgICAgICBzaG91bGQuZXF1YWwoanNvblR4LmFtb3VudCwgZml4dHVyZS5yZWNpcGllbnQuYW1vdW50KTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKGpzb25UeC53aXRoZHJhd0Ftb3VudCwgZml4dHVyZS53aXRoZHJhd0Ftb3VudCk7XG5cbiAgICAgICAgc2hvdWxkLmVxdWFsKGpzb25UeC5kZXN0aW5hdGlvbiwgZml4dHVyZS5yZWNpcGllbnQuYWRkcmVzcyk7XG4gICAgICAgIHNob3VsZC5lcXVhbChqc29uVHguc2VuZGVyLCBmaXh0dXJlLnNlbmRlcik7XG5cbiAgICAgICAgLy8gVmVyaWZ5IE5ldHdvcmsgQ29uc3RyYWludHNcbiAgICAgICAgc2hvdWxkLmVxdWFsKGpzb25UeC5zZXFubywgZml4dHVyZS5zZXFubyk7XG4gICAgICAgIHNob3VsZC5lcXVhbChqc29uVHguZXhwaXJhdGlvblRpbWUsIGZpeHR1cmUuZXhwaXJlVGltZSk7XG4gICAgICAgIHNob3VsZC5lcXVhbChqc29uVHguYm91bmNlYWJsZSwgZml4dHVyZS5ib3VuY2VhYmxlKTtcblxuICAgICAgICAvLyBWZXJpZnkgUGF5bG9hZCBTdHJ1Y3R1cmVcbiAgICAgICAgLy8gTG9naWM6IERlY2ltYWxPcENvZGUgKyBIZXhRdWVyeUlkICsgRGVjaW1hbEFtb3VudFxuICAgICAgICBjb25zdCBtc2cgPSBidWlsdFR4WydtZXNzYWdlJ10gfHwgJyc7XG4gICAgICAgIHNob3VsZC5lcXVhbChtc2cuc3RhcnRzV2l0aChUT05fV0hBTEVTX1dJVEhEUkFXX09QQ09ERSksIHRydWUpO1xuXG4gICAgICAgIC8vIEVuc3VyZSB0aGUgcGF5bG9hZCBFTkRTIHdpdGggdGhlIGRlY2ltYWwgYW1vdW50IChlaXRoZXIgXCIxMDAwLi4uXCIgb3IgXCIwXCIpXG4gICAgICAgIHNob3VsZC5lcXVhbChtc2cuZW5kc1dpdGgoZml4dHVyZS53aXRoZHJhd0Ftb3VudCksIHRydWUpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgcGFyc2UgYW5kIHJlYnVpbGQgdGhlIHRyYW5zYWN0aW9uIHJlc3VsdGluZyBpbiB0aGUgc2FtZSBoZXgnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZnJvbShmaXh0dXJlLnR4KTtcbiAgICAgICAgY29uc3QgYnVpbHRUeCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuXG4gICAgICAgIC8vIFZlcmlmeSB0aGUgcGFyc2VyIGV4dHJhY3RlZCB0aGUgc2lnbmF0dXJlXG4gICAgICAgIGNvbnN0IHNpZ25hdHVyZSA9IGJ1aWx0VHguc2lnbmF0dXJlWzBdO1xuICAgICAgICBzaG91bGQuZXhpc3Qoc2lnbmF0dXJlKTtcbiAgICAgICAgc2lnbmF0dXJlLnNob3VsZC5ub3QuYmUuZW1wdHkoKTtcblxuICAgICAgICAvLyBSZWJ1aWxkIGZyb20gdGhlIHBhcnNlZCBvYmplY3RcbiAgICAgICAgY29uc3QgYnVpbGRlcjIgPSBmYWN0b3J5LmZyb20oYnVpbHRUeC50b0Jyb2FkY2FzdEZvcm1hdCgpKTtcbiAgICAgICAgY29uc3QgYnVpbHRUeDIgPSBhd2FpdCBidWlsZGVyMi5idWlsZCgpO1xuXG4gICAgICAgIC8vIFRoZSBvdXRwdXQgb2YgdGhlIHNlY29uZCBidWlsZCBzaG91bGQgbWF0Y2ggdGhlIG9yaWdpbmFsIHJhdyB0cmFuc2FjdGlvblxuICAgICAgICBzaG91bGQuZXF1YWwoYnVpbHRUeDIudG9Ccm9hZGNhc3RGb3JtYXQoKSwgZml4dHVyZS50eCk7XG4gICAgICAgIHNob3VsZC5lcXVhbChidWlsdFR4Mi50eXBlLCBUcmFuc2FjdGlvblR5cGUuVG9uV2hhbGVzV2l0aGRyYXdhbCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBidWlsZCBhIHRyYW5zYWN0aW9uIGZyb20gc2NyYXRjaCB0aGF0IGJ5dGUtZm9yLWJ5dGUgbWF0Y2hlcyB0aGUgcmF3IGZpeHR1cmUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIEdldCB0aGUgc3BlY2lmaWMgV2l0aGRyYXdhbCBCdWlsZGVyXG4gICAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldFRvbldoYWxlc1dpdGhkcmF3YWxCdWlsZGVyKCk7XG5cbiAgICAgICAgLy8gU2V0IEhlYWRlciBJbmZvIGZyb20gRml4dHVyZVxuICAgICAgICBidWlsZGVyLnNlbmRlcihmaXh0dXJlLnNlbmRlcik7XG4gICAgICAgIGJ1aWxkZXIucHVibGljS2V5KGZpeHR1cmUucHVibGljS2V5KTtcbiAgICAgICAgYnVpbGRlci5zZXF1ZW5jZU51bWJlcihmaXh0dXJlLnNlcW5vKTtcbiAgICAgICAgYnVpbGRlci5leHBpcmVUaW1lKGZpeHR1cmUuZXhwaXJlVGltZSk7XG4gICAgICAgIGJ1aWxkZXIuYm91bmNlYWJsZShmaXh0dXJlLmJvdW5jZWFibGUpO1xuXG4gICAgICAgIC8vIFNldCBEZXN0aW5hdGlvbiBhbmQgQVRUQUNIRUQgVkFMVUUgKFRoZSBGZWUpXG4gICAgICAgIGJ1aWxkZXIuc2VuZCh7XG4gICAgICAgICAgYWRkcmVzczogZml4dHVyZS5yZWNpcGllbnQuYWRkcmVzcyxcbiAgICAgICAgICBhbW91bnQ6IGZpeHR1cmUucmVjaXBpZW50LmFtb3VudCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU2V0IFBheWxvYWQgRGF0YSAoVGhlIFVuc3Rha2UgQW1vdW50KVxuICAgICAgICAvLyBOb3RlOiBUaGlzIHdvcmtzIGZvciBib3RoIHBhcnRpYWwgKGFtb3VudCA+IDApIGFuZCBmdWxsIChhbW91bnQgPSBcIjBcIilcbiAgICAgICAgYnVpbGRlci5zZXRXaXRoZHJhd2FsTWVzc2FnZShmaXh0dXJlLndpdGhkcmF3QW1vdW50LCBmaXh0dXJlLnF1ZXJ5SWQpO1xuXG4gICAgICAgIC8vIEF0dGFjaCBTaWduYXR1cmUgZnJvbSBGaXh0dXJlIChNb2NraW5nIHRoZSBIU00gc2lnbmluZyBwcm9jZXNzKVxuICAgICAgICBpZiAoZml4dHVyZS5zaWduYXR1cmUpIHtcbiAgICAgICAgICBidWlsZGVyLmFkZFNpZ25hdHVyZSh7IHB1YjogZml4dHVyZS5wdWJsaWNLZXkgfSwgQnVmZmVyLmZyb20oZml4dHVyZS5zaWduYXR1cmUsICdoZXgnKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCdWlsZCBTaWduZWQgVHJhbnNhY3Rpb25cbiAgICAgICAgY29uc3Qgc2lnbmVkQnVpbHRUeCA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgICAvLyBCeXRlLWZvci1ieXRlIGVxdWFsaXR5IHdpdGggdGhlIFNhbmRib3ggb3V0cHV0XG4gICAgICAgIHNob3VsZC5lcXVhbChzaWduZWRCdWlsdFR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIGZpeHR1cmUudHgpO1xuICAgICAgICBzaG91bGQuZXF1YWwoc2lnbmVkQnVpbHRUeC50eXBlLCBUcmFuc2FjdGlvblR5cGUuVG9uV2hhbGVzV2l0aGRyYXdhbCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==