tx · 4t5yUiYXkjzdQQXcKVS5cnsycgAqzGJXa1uuYkSWBirR

3NCY5CCv3erRaMPustUpZGiB5WmqnWX4PAi:  -0.04200000 Waves

2023.05.10 13:10 [2571650] smart account 3NCY5CCv3erRaMPustUpZGiB5WmqnWX4PAi > SELF 0.00000000 Waves

{ "type": 13, "id": "4t5yUiYXkjzdQQXcKVS5cnsycgAqzGJXa1uuYkSWBirR", "fee": 4200000, "feeAssetId": null, "timestamp": 1683713484034, "version": 2, "chainId": 84, "sender": "3NCY5CCv3erRaMPustUpZGiB5WmqnWX4PAi", "senderPublicKey": "7Bou15CaZ5nzy2x1B9CZ6yjAeEXK712S5MYFxGVbDKYH", "proofs": [ "MPQfspenSyfAEgHL2Bafc88MYDtmpAj4jGqDD9VY9J4M8S1FvjmNJhiRePE2nxXskBisiHuHBS9RB9Nx1x5RCey" ], "script": "base64:BgKSOAgCEgASBQoDAQQBEgcKBQEEAQgBEgQKAgEEEgMKAQESBAoCAQQSBAoCCAESBAoCCAESBAoCCAESBQoDAQgBEgASBAoCAQESAwoBARIFCgMBAQESBAoCCAgSABIAEgMKAQgSBQoDAQEBEgQKAgEBEgQKAggBEgQKAggIEgsKCQgBAQIBAggEBBIGCgQICAEIEgASAwoBARIDCgEBEgQKAggBIgpsUGRlY2ltYWxzIgZzY2FsZTgiDHNjYWxlOEJpZ0ludCIHc2NhbGUxOCIKemVyb0JpZ0ludCIEYmlnMCIEYmlnMSIEYmlnMiILd2F2ZXNTdHJpbmciA1NFUCIKUG9vbEFjdGl2ZSIPUG9vbFB1dERpc2FibGVkIhNQb29sTWF0Y2hlckRpc2FibGVkIgxQb29sU2h1dGRvd24iDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSISaWR4UG9vbEFtdEFzc2V0QW10IhRpZHhQb29sUHJpY2VBc3NldEFtdCIRaWR4UG9vbExQQXNzZXRBbXQiGWlkeEZhY3RvcnlTdGFraW5nQ29udHJhY3QiGmlkeEZhY3RvcnlTbGlwcGFnZUNvbnRyYWN0IgV0b1gxOCIHb3JpZ1ZhbCINb3JpZ1NjYWxlTXVsdCILdG9YMThCaWdJbnQiB2Zyb21YMTgiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0Igxmcm9tWDE4Um91bmQiBXJvdW5kIgd0b1NjYWxlIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIglhYnNCaWdJbnQiDHN3YXBDb250cmFjdCICZmMiE2tleU1hbmFnZXJQdWJsaWNLZXkiFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MiAnBsIgJwaCIBaCIJdGltZXN0YW1wIgNwYXUiC3VzZXJBZGRyZXNzIgR0eElkIgNnYXUiAmFhIgJwYSIGa2V5RmVlIgpmZWVEZWZhdWx0IgNmZWUiBmtleUtMcCIVa2V5S0xwUmVmcmVzaGVkSGVpZ2h0IhJrZXlLTHBSZWZyZXNoRGVsYXkiFmtMcFJlZnJlc2hEZWxheURlZmF1bHQiD2tMcFJlZnJlc2hEZWxheSIUa2V5QWRkaXRpb25hbEJhbGFuY2UiB2Fzc2V0SWQiFmtleVN0YWtpbmdBc3NldEJhbGFuY2UiGmdldEFkZGl0aW9uYWxCYWxhbmNlT3JaZXJvIhxnZXRTdGFraW5nQXNzZXRCYWxhbmNlT3JaZXJvIhBrZXlGYWN0b3J5Q29uZmlnIg1rZXlNYXRjaGVyUHViIilrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cyITcG9vbENvbnRyYWN0QWRkcmVzcyINa2V5UG9vbENvbmZpZyIJaUFtdEFzc2V0IgtpUHJpY2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIhNrZXlBbGxQb29sc1NodXRkb3duIg1rZXlQb29sV2VpZ2h0Ig9jb250cmFjdEFkZHJlc3MiFmtleUFsbG93ZWRMcFNjcmlwdEhhc2giFmtleUZlZUNvbGxlY3RvckFkZHJlc3MiFmtleVNraXBPcmRlclZhbGlkYXRpb24iC3Bvb2xBZGRyZXNzIg90aHJvd09yZGVyRXJyb3IiCm9yZGVyVmFsaWQiDm9yZGVyVmFsaWRJbmZvIgtzZW5kZXJWYWxpZCIMbWF0Y2hlclZhbGlkIhdhZGRyZXNzRnJvbVN0cmluZ09yVGhpcyINYWRkcmVzc1N0cmluZyIHJG1hdGNoMCIBYSIcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcyIOZmFjdG9yeUFkZHJlc3MiA2ZjYSIBcyIPZ2V0U3RyaW5nT3JGYWlsIgdhZGRyZXNzIgNrZXkiDGdldEludE9yRmFpbCIIdGhyb3dFcnIiA21zZyIGZm10RXJyIg9mYWN0b3J5Q29udHJhY3QiE2ZlZUNvbGxlY3RvckFkZHJlc3MiBWluRmVlIgFAIgZvdXRGZWUiEGlzR2xvYmFsU2h1dGRvd24iE2dldE1hdGNoZXJQdWJPckZhaWwiDWdldFBvb2xDb25maWciCGFtdEFzc2V0IgpwcmljZUFzc2V0IgxwYXJzZUFzc2V0SWQiBWlucHV0Ig9hc3NldElkVG9TdHJpbmciD3BhcnNlUG9vbENvbmZpZyIKcG9vbENvbmZpZyIQcG9vbENvbmZpZ1BhcnNlZCILJHQwOTUxOTk2ODUiDmNmZ1Bvb2xBZGRyZXNzIg1jZmdQb29sU3RhdHVzIgxjZmdMcEFzc2V0SWQiEGNmZ0Ftb3VudEFzc2V0SWQiD2NmZ1ByaWNlQXNzZXRJZCIWY2ZnQW1vdW50QXNzZXREZWNpbWFscyIVY2ZnUHJpY2VBc3NldERlY2ltYWxzIhBnZXRGYWN0b3J5Q29uZmlnIg9zdGFraW5nQ29udHJhY3QiEHNsaXBwYWdlQ29udHJhY3QiEWRhdGFQdXRBY3Rpb25JbmZvIg1pbkFtdEFzc2V0QW10Ig9pblByaWNlQXNzZXRBbXQiCG91dExwQW10IgVwcmljZSIdc2xpcHBhZ2VUb2xlcmFuY2VQYXNzZWRCeVVzZXIiFXNsaXBwYWdlVG9sZXJhbmNlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIhJzbGlwYWdlQW10QXNzZXRBbXQiFHNsaXBhZ2VQcmljZUFzc2V0QW10IhFkYXRhR2V0QWN0aW9uSW5mbyIOb3V0QW10QXNzZXRBbXQiEG91dFByaWNlQXNzZXRBbXQiB2luTHBBbXQiDWdldEFjY0JhbGFuY2UiDWJhbGFuY2VPblBvb2wiDHRvdGFsQmFsYW5jZSIPY2FsY1ByaWNlQmlnSW50IghwckFtdFgxOCIIYW1BbXRYMTgiFGNhbGNQcmljZUJpZ0ludFJvdW5kIgdnZXRSYXRlIgVwcm94eSIDaW52IgFyIgdkZXBvc2l0IgZhbW91bnQiDnN0YWtpbmdBc3NldElkIhhjdXJyZW50QWRkaXRpb25hbEJhbGFuY2UiGmN1cnJlbnRTdGFraW5nQXNzZXRCYWxhbmNlIgVhc3NldCINZGVwb3NpdEludm9rZSIUcmVjZWl2ZWRTdGFraW5nQXNzZXQiFG5ld0FkZGl0aW9uYWxCYWxhbmNlIhZuZXdTdGFraW5nQXNzZXRCYWxhbmNlIgh3aXRoZHJhdyIMcHJveHlSYXRlTXVsIg1wcm9maXRBZGRyZXNzIhBjdXJyZW50UHJveHlSYXRlIgdvbGRSYXRlIgxzdGFraW5nQXNzZXQiFG9sZFNlbmRTdGFraW5nQW1vdW50IhZzZW5kU3Rha2luZ0Fzc2V0QW1vdW50Igxwcm9maXRBbW91bnQiDndpdGhkcmF3SW52b2tlIg5yZWNlaXZlZEFzc2V0cyITZ2V0TGVhc2VQcm94eUNvbmZpZyIRcmViYWxhbmNlSW50ZXJuYWwiC3RhcmdldFJhdGlvIgptaW5CYWxhbmNlIhRsZWFzYWJsZVRvdGFsQmFsYW5jZSIXdGFyZ2V0QWRkaXRpb25hbEJhbGFuY2UiBGRpZmYiD3NlbmRBc3NldEFtb3VudCIOZ2V0QXNzZXRBbW91bnQiDnJlYmFsYW5jZUFzc2V0Ig0kdDAxNTkyMTE2MDU3Igppc0xlYXNhYmxlIgtsZWFzZWRSYXRpbyIMcHJveHlBZGRyZXNzIgxwcm94eUFzc2V0SWQiFHN0YWtpbmdQcm9maXRBZGRyZXNzIhl3aXRoZHJhd0FuZFJlYmFsYW5jZUFzc2V0IglnZXRBbW91bnQiDSR0MDE2NDU2MTY1OTIiF25ld1RvdGFsTGVhc2FibGVCYWxhbmNlIg53aXRoZHJhd0Ftb3VudCIXd2l0aGRyYXdBbmRSZWJhbGFuY2VBbGwiFGFtb3VudEFzc2V0T3V0QW1vdW50IhNwcmljZUFzc2V0T3V0QW1vdW50IhJBbUFtdFdpdGhkcmF3U3RhdGUiElByQW10V2l0aGRyYXdTdGF0ZSIQcHJpdmF0ZUNhbGNQcmljZSIKYW1Bc3NldERjbSIKcHJBc3NldERjbSIFYW1BbXQiBXByQW10Ig5hbXRBc3NldEFtdFgxOCIQcHJpY2VBc3NldEFtdFgxOCIKY2FsY1ByaWNlcyIFbHBBbXQiA2NmZyILYW10QXNzZXREY20iDXByaWNlQXNzZXREY20iCHByaWNlWDE4IghscEFtdFgxOCITbHBQcmljZUluQW1Bc3NldFgxOCITbHBQcmljZUluUHJBc3NldFgxOCIPY2FsY3VsYXRlUHJpY2VzIgZwcmljZXMiFGVzdGltYXRlR2V0T3BlcmF0aW9uIgZ0eElkNTgiCnBtdEFzc2V0SWQiCHBtdExwQW10IglscEFzc2V0SWQiCWFtQXNzZXRJZCIJcHJBc3NldElkIgpwb29sU3RhdHVzIgpscEVtaXNzaW9uIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiDWxwRW1pc3Npb25YMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIUZXN0aW1hdGVQdXRPcGVyYXRpb24iEXNsaXBwYWdlVG9sZXJhbmNlIgxpbkFtQXNzZXRBbXQiC2luQW1Bc3NldElkIgxpblByQXNzZXRBbXQiC2luUHJBc3NldElkIgppc0V2YWx1YXRlIgZlbWl0THAiDGFtQXNzZXRJZFN0ciIMcHJBc3NldElkU3RyIgtpQW10QXNzZXRJZCINaVByaWNlQXNzZXRJZCIOaW5BbUFzc2V0SWRTdHIiDmluUHJBc3NldElkU3RyIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgNyZXMiC3NsaXBwYWdlWDE4IhRzbGlwcGFnZVRvbGVyYW5jZVgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiILY29tbW9uU3RhdGUiB2NhbGNLTHAiDWFtb3VudEJhbGFuY2UiDHByaWNlQmFsYW5jZSIQYW1vdW50QmFsYW5jZVgxOCIPcHJpY2VCYWxhbmNlWDE4Igp1cGRhdGVkS0xwIg5jYWxjQ3VycmVudEtMcCIQYW1vdW50QXNzZXREZWx0YSIPcHJpY2VBc3NldERlbHRhIhRscEFzc2V0RW1pc3Npb25EZWx0YSISYW1vdW50QXNzZXRCYWxhbmNlIhFwcmljZUFzc2V0QmFsYW5jZSIPbHBBc3NldEVtaXNzaW9uIgpjdXJyZW50S0xwIhJyZWZyZXNoS0xwSW50ZXJuYWwiF2Ftb3VudEFzc2V0QmFsYW5jZURlbHRhIhZwcmljZUFzc2V0QmFsYW5jZURlbHRhIgdhY3Rpb25zIhNza2lwT3JkZXJWYWxpZGF0aW9uIhJ2YWxpZGF0ZVVwZGF0ZWRLTHAiBm9sZEtMcCIbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkIgVvcmRlciIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDI4OTgxMjkxOTMiA2tMcCINJHQwMjk2MzMyOTczMyINdW51c2VkQWN0aW9ucyIGa0xwTmV3Igxpc09yZGVyVmFsaWQiBGluZm8iCWNvbW1vbkdldCIBaSIDcG10IgZwbXRBbXQiCWNvbW1vblB1dCIKYW1Bc3NldFBtdCIKcHJBc3NldFBtdCIGZXN0UHV0IgRlbWl0IgdlbWl0SW52Ig1lbWl0SW52TGVnYWN5IhVsZWdhY3lGYWN0b3J5Q29udHJhY3QiB3Rha2VGZWUiCWZlZUFtb3VudCIPY2FsY1B1dE9uZVRva2VuIhBwYXltZW50QW1vdW50UmF3Ig5wYXltZW50QXNzZXRJZCIGaXNFdmFsIhBhbW91bnRCYWxhbmNlUmF3Ig9wcmljZUJhbGFuY2VSYXciFHBheW1lbnRJbkFtb3VudEFzc2V0Ig0kdDAzMjg0NjMzMTM5IhBhbW91bnRCYWxhbmNlT2xkIg9wcmljZUJhbGFuY2VPbGQiDSR0MDMzMTQzMzMyOTIiFGFtb3VudEFzc2V0QW1vdW50UmF3IhNwcmljZUFzc2V0QW1vdW50UmF3Ig0kdDAzMzQyNDMzNDg4Ig1wYXltZW50QW1vdW50IhBhbW91bnRCYWxhbmNlTmV3Ig9wcmljZUJhbGFuY2VOZXciC3ByaWNlTmV3WDE4IghwcmljZU5ldyIOcGF5bWVudEJhbGFuY2UiFHBheW1lbnRCYWxhbmNlQmlnSW50IgxzdXBwbHlCaWdJbnQiC2NoZWNoU3VwcGx5Ig1kZXBvc2l0QmlnSW50Igtpc3N1ZUFtb3VudCILcHJpY2VPbGRYMTgiCHByaWNlT2xkIgRsb3NzIg0kdDAzNTE2OTM1MzM2IgdiYWxhbmNlIg9pc3N1ZUFtb3VudEJvdGgiD2NhbGNHZXRPbmVUb2tlbiIKb3V0QXNzZXRJZCIGY2hlY2tzIhBvdXRJbkFtb3VudEFzc2V0Ig1iYWxhbmNlQmlnSW50IhhvdXRJbkFtb3VudEFzc2V0RGVjaW1hbHMiDGFtQmFsYW5jZU9sZCIMcHJCYWxhbmNlT2xkIgpvdXRCYWxhbmNlIhBvdXRCYWxhbmNlQmlnSW50Ig5yZWRlZW1lZEJpZ0ludCIJYW1vdW50UmF3Ig0kdDAzNzQxNDM3NDcwIgt0b3RhbEFtb3VudCINJHQwMzc0NzQzNzcwMCILb3V0QW1BbW91bnQiC291dFByQW1vdW50IgxhbUJhbGFuY2VOZXciDHByQmFsYW5jZU5ldyIYYW1vdW50Qm90aEluUGF5bWVudEFzc2V0IhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IhNtYW5hZ2VyVmF1bHRBZGRyZXNzIglpc01hbmFnZXIiAnBrIgttdXN0TWFuYWdlciICcGQiDWNsZWFuQW1vdW50SW4iCWlzUmV2ZXJzZSINZmVlUG9vbEFtb3VudCINJHQwMzk1NTkzOTg2NCIIYXNzZXRPdXQiB2Fzc2V0SW4iEnBvb2xBc3NldEluQmFsYW5jZSITcG9vbEFzc2V0T3V0QmFsYW5jZSIJYW1vdW50T3V0IgRvbGRLIgRuZXdLIgZjaGVja0siDGFtb3VudE91dE1pbiIJYWRkcmVzc1RvIgtzd2FwQ29udGFjdCIIY2hlY2tNaW4iDnJlYmFsYW5jZVN0YXRlIg13aXRoZHJhd1N0YXRlIg9zaG91bGRBdXRvU3Rha2UiBGFtSWQiBHBySWQiDHNsaXBwYWdlQUludiIMc2xpcHBhZ2VQSW52IgpscFRyYW5zZmVyIgtzbHBTdGFrZUludiINJHQwNDQzNTE0NDgxMyIRcmVmcmVzaEtMcEFjdGlvbnMiEWlzVXBkYXRlZEtMcFZhbGlkIgNyZWIiC21heFNsaXBwYWdlIg0kdDA0NTQyNTQ1NDkwIgxtaW5PdXRBbW91bnQiCWF1dG9TdGFrZSIgaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiDWlzUHV0RGlzYWJsZWQiB3BheW1lbnQiDSR0MDQ2Njc4NDY4MzAiBWJvbnVzIhNlbWl0QW1vdW50RXN0aW1hdGVkIgplbWl0QW1vdW50IghzdGFrZUludiIHc2VuZEZlZSINJHQwNDc0MTY0NzYxMyINJHQwNDc2MTY0NzcyNCINJHQwNDgwNzk0ODIzNiINb3V0QXNzZXRJZFN0ciINaXNHZXREaXNhYmxlZCINJHQwNDkxMjE0OTI3NCIPYW1vdW50RXN0aW1hdGVkIgdidXJuSW52Ig1hc3NldFRyYW5zZmVyIg0kdDA0OTkzODUwMTg1IhBmZWVBbW91bnRGb3JDYWxjIg0kdDA1MDE4ODUwMjk2Ig0kdDA1MDU3NDUwNzMwIg11bnN0YWtlQW1vdW50Igp1bnN0YWtlSW52Ig0kdDA1MTYzNTUxNzg2Ig0kdDA1MjQ0NTUyNjkyIg0kdDA1MjY5NTUyODAzIhRidXJuTFBBc3NldE9uRmFjdG9yeSINJHQwNTM4OTg1Mzk3OSISbm9MZXNzVGhlbkFtdEFzc2V0IhRub0xlc3NUaGVuUHJpY2VBc3NldCINJHQwNTUwNzQ1NTE1NSINY2hlY2tQYXltZW50cyIPY2hlY2tQb29sU3RhdHVzIg0kdDA1NjQyNzU2NTA4IhVub0xlc3NUaGVuQW1vdW50QXNzZXQiDGNoZWNrQW1vdW50cyINJHQwNTc5NDk1ODAzMCILYW10QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiGGxhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCIdY2hlY2tMYXN0UmVmcmVzaGVkQmxvY2tIZWlnaHQiDSR0MDU5MjM0NTkyOTgiEGtMcFVwZGF0ZUFjdGlvbnMiCmFtdEFzc2V0SWQiDHByaWNlQXNzZXRJZCINcG9vbExQQmFsYW5jZSISYWNjQW10QXNzZXRCYWxhbmNlIhRhY2NQcmljZUFzc2V0QmFsYW5jZSIKcHJpY2VzTGlzdCIPbHBBbXRBc3NldFNoYXJlIhFscFByaWNlQXNzZXRTaGFyZSIKcG9vbFdlaWdodCIMY3VyUHJpY2VDYWxjIgxhbUJhbGFuY2VSYXciDHByQmFsYW5jZVJhdyIPYW1CYWxhbmNlUmF3WDE4Ig9wckJhbGFuY2VSYXdYMTgiEHBheW1lbnRMcEFzc2V0SWQiDHBheW1lbnRMcEFtdCICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5IgptYXRjaGVyUHViIg0kdDA2Nzk2MDY4MDc3IgduZXdIYXNoIgthbGxvd2VkSGFzaCILY3VycmVudEhhc2iCAQABYQAIAAFiAIDC1y8AAWMJALYCAQCAwtcvAAFkCQC2AgEAgICQu7rWrfANAAFlCQC2AgEAAAABZgkAtgIBAAAAAWcJALYCAQABAAFoCQC2AgEAAgABaQIFV0FWRVMAAWoCAl9fAAFrAAEAAWwAAgABbQADAAFuAAQAAW8AAQABcAACAAFxAAMAAXIABAABcwAFAAF0AAYAAXUABwABdgAIAAF3AAkAAXgACgABeQABAAF6AAIAAUEAAwABQgABAAFDAAcBAUQCAUUBRgkAvAIDCQC2AgEFAUUFAWQJALYCAQUBRgEBRwIBRQFGCQC8AgMFAUUFAWQFAUYBAUgCAUkBSgkAoAMBCQC8AgMFAUkJALYCAQUBSgUBZAEBSwMBSQFKAUwJAKADAQkAvQIEBQFJCQC2AgEFAUoFAWQFAUwBAU0DAU4BTwFQCQBrAwUBTgUBTwUBUAEBUQEBSQMJAGYCAAAFAUkJAQEtAQUBSQUBSQEBUgEBSQMJAL8CAgUBZQUBSQkAvgIBBQFJBQFJAQFTAAIQJXNfX3N3YXBDb250cmFjdAEBVAACEyVzX19mYWN0b3J5Q29udHJhY3QBAVUAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBVgACFyVzX19tYW5hZ2VyVmF1bHRBZGRyZXNzAQFXAAIRJXMlc19fcHJpY2VfX2xhc3QBAVgCAVkBWgkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAVkJAMwIAgkApAMBBQFaBQNuaWwFAWoBAmFhAgJhYgJhYwkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAmFiAgJfXwUCYWMBAmFkAgJhYgJhYwkArAICCQCsAgIJAKwCAgILJXMlcyVzX19HX18FAmFiAgJfXwUCYWMBAmFlAAIPJXNfX2Ftb3VudEFzc2V0AQJhZgACDiVzX19wcmljZUFzc2V0AAJhZwIHJXNfX2ZlZQACYWgJAGsDAAoFAWIAkE4AAmFpCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFnBQJhaAACYWoJALkJAgkAzAgCAgIlcwkAzAgCAgNrTHAFA25pbAUBagACYWsJALkJAgkAzAgCAgIlcwkAzAgCAhJrTHBSZWZyZXNoZWRIZWlnaHQFA25pbAUBagACYWwJALkJAgkAzAgCAgIlcwkAzAgCAg9yZWZyZXNoS0xwRGVsYXkFA25pbAUBagACYW0AHgACYW4JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWwFAmFtAQJhbwECYXAJALkJAgkAzAgCAgQlcyVzCQDMCAICDXN0YWtlZEJhbGFuY2UJAMwIAgUCYXAFA25pbAUBagECYXEBAmFwCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhFzaGFyZUFzc2V0QmFsYW5jZQkAzAgCBQJhcAUDbmlsBQFqAQJhcgECYXAJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFvAQUCYXAAAAECYXMBAmFwCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhcQEFAmFwAAABAmF0AAIRJXNfX2ZhY3RvcnlDb25maWcBAmF1AAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhdgECYXcJAKwCAgkArAICAgglcyVzJXNfXwUCYXcCIF9fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJMcEFzc2V0AQJheAICYXkCYXoJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmF5AgJfXwUCYXoCCF9fY29uZmlnAQJhQQECYUIJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYUIBAmFDAAIMJXNfX3NodXRkb3duAQJhRAECYUUJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQJhRQECYUYAAhclc19fYWxsb3dlZExwU2NyaXB0SGFzaAACYUcCFyVzX19mZWVDb2xsZWN0b3JBZGRyZXNzAQJhSAECYUkJAKwCAgIbJXMlc19fc2tpcE9yZGVyVmFsaWRhdGlvbl9fBQJhSQECYUoEAmFLAmFMAmFNAmFOCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICJG9yZGVyIHZhbGlkYXRpb24gZmFpbGVkOiBvcmRlclZhbGlkPQkApQMBBQJhSwICICgFAmFMAgEpAg0gc2VuZGVyVmFsaWQ9CQClAwEFAmFNAg4gbWF0Y2hlclZhbGlkPQkApQMBBQJhTgECYU8BAmFQBAJhUQkApggBBQJhUAMJAAECBQJhUQIHQWRkcmVzcwQCYVIFAmFRBQJhUgUEdGhpcwECYVMABAJhVAQCYVEJAQJhTwEJAQFUAAMJAAECBQJhUQIHQWRkcmVzcwQCYVUFAmFRBQJhVQUEdGhpcwQCYVEJAJ0IAgUCYVQJAQFWAAMJAAECBQJhUQIGU3RyaW5nBAJhVgUCYVEJAQJhTwEFAmFWBQR0aGlzAQJhVwICYVgCYVkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhWAUCYVkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUCYVgJAMwIAgIBLgkAzAgCBQJhWQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQJhWgICYVgCYVkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQJhWAUCYVkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUCYVgJAMwIAgIBLgkAzAgCBQJhWQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQJiYQECYmIJAAIBCQC5CQIJAMwIAgIIbHAucmlkZToJAMwIAgUCYmIFA25pbAIBIAECYmMBAmJiCQC5CQIJAMwIAgIIbHAucmlkZToJAMwIAgUCYmIFA25pbAIBIAACYmQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhVwIFBHRoaXMJAQFUAAACYmUJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhVwIFAmJkBQJhRwACYmYKAAJiZwkA/AcEBQJiZAIQZ2V0SW5GZWVSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmJnAgNJbnQFAmJnCQACAQkArAICCQADAQUCYmcCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAACYmgKAAJiZwkA/AcEBQJiZAIRZ2V0T3V0RmVlUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJiZwIDSW50BQJiZwkAAgEJAKwCAgkAAwEFAmJnAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBAmJpAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJiZAkBAmFDAAcBAmJqAAkA2QQBCQECYVcCBQJiZAkBAmF1AAECYmsABAJibAkBAmFXAgUEdGhpcwkBAmFlAAQCYm0JAQJhVwIFBHRoaXMJAQJhZgAEAmF6CQECYVoCBQJiZAkBAmFBAQUCYm0EAmF5CQECYVoCBQJiZAkBAmFBAQUCYmwJALUJAgkBAmFXAgUCYmQJAQJheAIJAKQDAQUCYXkJAKQDAQUCYXoFAWoBAmJuAQJibwMJAAACBQJibwUBaQUEdW5pdAkA2QQBBQJibwECYnABAmJvAwkAAAIFAmJvBQR1bml0BQFpCQDYBAEJAQV2YWx1ZQEFAmJvAQJicQECYnIJAJkKBwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJicgUBbwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJyBQFwCQDZBAEJAJEDAgUCYnIFAXEJAQJibgEJAJEDAgUCYnIFAXIJAQJibgEJAJEDAgUCYnIFAXMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJicgUBdAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJyBQF1AAJicwkBAmJxAQkBAmJrAAACYnQFAmJzAAJidQgFAmJ0Al8xAAJidggFAmJ0Al8yAAJidwgFAmJ0Al8zAAJieAgFAmJ0Al80AAJieQgFAmJ0Al81AAJieggFAmJ0Al82AAJiQQgFAmJ0Al83AQJiQgAJALUJAgkBAmFXAgUCYmQJAQJhdAAFAWoAAmJDCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCCQECYkIABQFCAhlpbmNvcnJlY3Qgc3Rha2luZyBhZGRyZXNzAAJiRAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmJCAAUBQwIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwECYkUKAmJGAmJHAmJIAmJJAmJKAmJLAmJMAmJNAmJOAmJPCQC5CQIJAMwIAgIUJWQlZCVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJiRgkAzAgCCQCkAwEFAmJHCQDMCAIJAKQDAQUCYkgJAMwIAgkApAMBBQJiSQkAzAgCCQCkAwEFAmJKCQDMCAIJAKQDAQUCYksJAMwIAgkApAMBBQJiTAkAzAgCCQCkAwEFAmJNCQDMCAIJAKQDAQUCYk4JAMwIAgkApAMBBQJiTwUDbmlsBQFqAQJiUAYCYlECYlICYlMCYkkCYkwCYk0JALkJAgkAzAgCAgwlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJiUQkAzAgCCQCkAwEFAmJSCQDMCAIJAKQDAQUCYlMJAMwIAgkApAMBBQJiSQkAzAgCCQCkAwEFAmJMCQDMCAIJAKQDAQUCYk0FA25pbAUBagECYlQBAmFwBAJiVQMJAAACBQJhcAIFV0FWRVMICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDwBwIFBHRoaXMJANkEAQUCYXAEAmJWCQBlAgkAZAIFAmJVCQECYXIBBQJhcAkBAmFzAQUCYXAJAJYDAQkAzAgCAAAJAMwIAgUCYlYFA25pbAECYlcCAmJYAmJZCQC8AgMFAmJYBQFkBQJiWQECYloDAmJYAmJZAUwJAL0CBAUCYlgFAWQFAmJZBQFMAQJjYQECY2IEAmNjCQD8BwQFAmNiAgdnZXRSYXRlBQNuaWwFA25pbAMJAAACBQJjYwUCY2MEAmFRBQJjYwMJAAECBQJhUQIDSW50BAJjZAUCYVEFAmNkCQECYmEBAiBwcm94eS5nZXRSYXRlKCkgdW5leHBlY3RlZCB2YWx1ZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY2UEAmFwAmNmAmNnAmNiBAJjaAkBAmFyAQUCYXADCQAAAgUCY2gFAmNoBAJjaQkBAmFzAQUCY2cDCQAAAgUCY2kFAmNpBAJjagkBAmJuAQUCYXADCQBmAgUCY2YAAAQCY2sJAPwHBAUCY2ICB2RlcG9zaXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCY2oFAmNmBQNuaWwDCQAAAgUCY2sFAmNrBAJhUQUCY2sDCQABAgUCYVECA0ludAQCY2wFAmFRBAJjbQkAZAIFAmNoBQJjZgQCY24JAGQCBQJjaQUCY2wJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhbwEFAmFwBQJjbQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFxAQUCY2cFAmNuBQNuaWwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJjbwYCYXACY2YCY2cCY2ICY3ACY3EEAmNoCQECYXIBBQJhcAMJAAACBQJjaAUCY2gEAmNpCQECYXMBBQJjZwMJAAACBQJjaQUCY2kEAmNyCQECY2EBBQJjYgMJAAACBQJjcgUCY3IEAmNzCQBrAwUCY3AFAmNoBQJjaQQCY3QJAQJibgEFAmNnBAJjdQkAawMFAmNwBQJjZgUCY3MEAmN2CQBrAwUCY3AFAmNmBQJjcgQCY3cJAJYDAQkAzAgCAAAJAMwIAgkAZQIFAmN1BQJjdgUDbmlsAwkAZgIFAmN2AAAEAmN4CQD8BwQFAmNiAgh3aXRoZHJhdwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjdAUCY3YFA25pbAMJAAACBQJjeAUCY3gEAmFRBQJjeAMJAAECBQJhUQIDSW50BAJjeQUCYVEEAmNtCQBlAgUCY2gFAmN5BAJjbgkAZQIJAGUCBQJjaQUCY3YFAmN3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYW8BBQJhcAUCY20JAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhcQEFAmNnBQJjbgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJjcQUCY3cJAQJibgEFAmNnBQNuaWwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJjegECYXAEAmFRCQD8BwQFAmJkAhpnZXRQb29sTGVhc2VDb25maWdSRUFET05MWQkAzAgCCQClCAEFBHRoaXMJAMwIAgUCYXAFA25pbAUDbmlsAwkAAQIFAmFRAjAoQm9vbGVhbiwgSW50LCBJbnQsIFN0cmluZywgU3RyaW5nLCBJbnQsIFN0cmluZykEAmFSBQJhUQUCYVIJAQJiYQEJAKwCAgkArAICAgFbBQJhcAIdXSBnZXRMZWFzZVByb3h5Q29uZmlnKCkgZXJyb3IBAmNBBwJjQgJhcAJjZwJjQwJjYgJjcAJjcQQCY2gJAQJhcgEFAmFwAwkAAAIFAmNoBQJjaAQCY2kJAQJhcwEFAmNnAwkAAAIFAmNpBQJjaQQCY0QJAJYDAQkAzAgCAAAJAMwIAgkAZQIJAQJiVAEFAmFwBQJjQwUDbmlsBAJjRQkAawMFAmNCBQJjRABkBAJjRgkAZQIFAmNoBQJjRQMJAAACBQJjRgAABQNuaWwDCQBmAgAABQJjRgQCY0cJAQEtAQUCY0YJAQJjZQQFAmFwBQJjRwUCY2cFAmNiBAJjSAUCY0YJAQJjbwYFAmFwBQJjSAUCY2cFAmNiBQJjcAUCY3EJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmNJAQJhcAQCY0oJAQJjegEFAmFwBAJjSwgFAmNKAl8xBAJjTAgFAmNKAl8yBAJjQwgFAmNKAl8zBAJjTQgFAmNKAl80BAJjTggFAmNKAl81BAJjcAgFAmNKAl82BAJjTwgFAmNKAl83AwUCY0sJAQJjQQcFAmNMBQJhcAUCY04FAmNDCQERQGV4dHJOYXRpdmUoMTA2MikBBQJjTQUCY3AJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmNPBQNuaWwBAmNQAgJhcAJjUQQCY1IJAQJjegEFAmFwBAJjSwgFAmNSAl8xBAJjTAgFAmNSAl8yBAJjQwgFAmNSAl8zBAJjTQgFAmNSAl80BAJjTggFAmNSAl81BAJjcAgFAmNSAl82BAJjTwgFAmNSAl83AwUCY0sEAmNTCQCWAwEJAMwIAgAACQDMCAIJAGUCCQBlAgkBAmJUAQUCYXAFAmNRBQJjQwUDbmlsAwkAAAIFAmNTBQJjUwQCY20JAGsDBQJjTAUCY1MAZAMJAAACBQJjbQUCY20EAmNUCQBlAgkBAmFyAQUCYXAFAmNtAwkAAAIFAmNUBQJjVAMJAGYCAAAFAmNUCQECY2UEBQJhcAkBAS0BBQJjVAUCY04JARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmNNCQECY28GBQJhcAUCY1QFAmNOCQERQGV4dHJOYXRpdmUoMTA2MikBBQJjTQUCY3AJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmNPCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQNuaWwBAmNVAgJjVgJjVwQCY1gJAQJjUAIJAQJhVwIFBHRoaXMJAQJhZQAFAmNWBAJjWQkBAmNQAgkBAmFXAgUEdGhpcwkBAmFmAAUCY1cJAM4IAgUCY1gFAmNZAQJjWgQCZGECZGICZGMCZGQEAmRlCQEBRAIFAmRjBQJkYQQCZGYJAQFEAgUCZGQFAmRiCQECYlcCBQJkZgUCZGUBAmRnAwJkYwJkZAJkaAQCZGkJAQJiawAEAmRqCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGkFAXQEAmRrCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGkFAXUEAmRsCQECY1oEBQJkagUCZGsFAmRjBQJkZAQCYlkJAQFEAgUCZGMFAmRqBAJiWAkBAUQCBQJkZAUCZGsEAmRtCQEBRAIFAmRoBQFiBAJkbgkBAmJXAgUCYlkFAmRtBAJkbwkBAmJXAgUCYlgFAmRtCQDMCAIFAmRsCQDMCAIFAmRuCQDMCAIFAmRvBQNuaWwBAmRwAwJkYwJkZAJkaAQCZHEJAQJkZwMFAmRjBQJkZAUCZGgJAMwIAgkBAUgCCQCRAwIFAmRxAAAFAWIJAMwIAgkBAUgCCQCRAwIFAmRxAAEFAWIJAMwIAgkBAUgCCQCRAwIFAmRxAAIFAWIFA25pbAECZHIEAmRzAmR0AmR1AmFiBAJkaQkBAmJrAAQCZHYJAJEDAgUCZGkFAXEEAmR3CQCRAwIFAmRpBQFyBAJkeAkAkQMCBQJkaQUBcwQCZGEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkaQUBdAQCZGIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkaQUBdQQCZHkJAJEDAgUCZGkFAXAEAmR6CAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEJANkEAQUCZHYJAKwCAgkArAICAgZBc3NldCAFAmR2Ag4gZG9lc24ndCBleGlzdAhxdWFudGl0eQMJAQIhPQIFAmR2BQJkdAkAAgECFUludmFsaWQgYXNzZXQgcGFzc2VkLgQCZEEJAQJiVAEFAmR3BAJkQgkBAUQCBQJkQQUCZGEEAmRDCQECYlQBBQJkeAQCZEQJAQFEAgUCZEMFAmRiBAJkRQkBAmJXAgUCZEQFAmRCBAJkRgkBAUgCBQJkRQUBYgQCZEcJAQFEAgUCZHUFAWIEAmRICQEBRAIFAmR6BQFiBAJkSQkAvAIDBQJkQgUCZEcFAmRIBAJkSgkAvAIDBQJkRAUCZEcFAmRIBAJkSwkBAUsDBQJkSQUCZGEFBUZMT09SBAJkTAkBAUsDBQJkSgUCZGIFBUZMT09SBAJkTQMJAAACBQJkcwIABQNuaWwJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYWIFAmRLAwkAAAIFAmR3AgVXQVZFUwUEdW5pdAkA2QQBBQJkdwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhYgUCZEwDCQAAAgUCZHgCBVdBVkVTBQR1bml0CQDZBAEFAmR4CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZAIJAKUIAQUCYWIFAmRzCQECYlAGBQJkSwUCZEwFAmR1BQJkRgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcABQJkRgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVgCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJkRgUDbmlsCQCcCgoFAmRLBQJkTAUCZHcFAmR4BQJkQQUCZEMFAmR6BQJkRQUCZHkFAmRNAQJkTgkCZHMCZE8CZFACZFECZFICZFMCYWICZFQCZFUEAmRpCQECYmsABAJkdgkA2QQBCQCRAwIFAmRpBQFxBAJkVgkAkQMCBQJkaQUBcgQCZFcJAJEDAgUCZGkFAXMEAmRYCQCRAwIFAmRpBQF2BAJkWQkAkQMCBQJkaQUBdwQCZGoJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkaQUBdAQCZGsJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkaQUBdQQCZHkJAJEDAgUCZGkFAXAEAmR6CAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmR2CQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmR2Ag4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCZFoJANgEAQkBC3ZhbHVlT3JFbHNlAgUCZFEJANkEAQIFV0FWRVMEAmVhCQDYBAEJAQt2YWx1ZU9yRWxzZQIFAmRTCQDZBAECBVdBVkVTAwMJAQIhPQIFAmRWBQJkWgYJAQIhPQIFAmRXBQJlYQkAAgECIkludmFsaWQgYW10IG9yIHByaWNlIGFzc2V0IHBhc3NlZC4EAmRBAwUCZFQJAQJiVAEFAmRWCQBlAgkBAmJUAQUCZFYFAmRQBAJkQwMFAmRUCQECYlQBBQJkVwkAZQIJAQJiVAEFAmRXBQJkUgQCZWIJAQFEAgUCZFAFAmRqBAJlYwkBAUQCBQJkUgUCZGsEAmVkCQECYlcCBQJlYwUCZWIEAmRCCQEBRAIFAmRBBQJkagQCZEQJAQFEAgUCZEMFAmRrBAJlZQMJAAACBQJkegAABAJkRQUBZQQCZWYFAWUEAmRtCQB2BgkAuQICBQJlYgUCZWMAAAkAtgIBAAUAAQAABQRET1dOCQCXCgUJAQFIAgUCZG0FAWIJAQFIAgUCZWIFAmRqCQEBSAIFAmVjBQJkawkBAmJXAgkAtwICBQJkRAUCZWMJALcCAgUCZEIFAmViBQJlZgQCZEUJAQJiVwIFAmREBQJkQgQCZWYJALwCAwkBAVIBCQC4AgIFAmRFBQJlZAUBZAUCZEUEAmVnCQEBRAIFAmRPBQFiAwMJAQIhPQIFAmRFBQFlCQC/AgIFAmVmBQJlZwcJAAIBCQCsAgIJAKwCAgkArAICAg9QcmljZSBzbGlwcGFnZSAJAKYDAQUCZWYCHiBleGNlZWRlZCB0aGUgcGFzc2VkIGxpbWl0IG9mIAkApgMBBQJlZwQCZEgJAQFEAgUCZHoFAWIEAmVoCQC9AgQFAmViCQECYloDBQJkRAUCZEIFB0NFSUxJTkcFAWQFB0NFSUxJTkcEAmVpCQC9AgQFAmVjBQFkCQECYloDBQJkRAUCZEIFBUZMT09SBQdDRUlMSU5HBAJlagMJAL8CAgUCZWgFAmVjCQCUCgIFAmVpBQJlYwkAlAoCBQJlYgUCZWgEAmVrCAUCZWoCXzEEAmVsCAUCZWoCXzIEAmRtCQC9AgQFAmRIBQJlbAUCZEQFBUZMT09SCQCXCgUJAQFLAwUCZG0FAWIFBUZMT09SCQEBSwMFAmVrBQJkagUHQ0VJTElORwkBAUsDBQJlbAUCZGsFB0NFSUxJTkcFAmRFBQJlZgQCZW0IBQJlZQJfMQQCZW4IBQJlZQJfMgQCZW8IBQJlZQJfMwQCZEYJAQFIAggFAmVlAl80BQFiBAJlcAkBAUgCCAUCZWUCXzUFAWIDCQBnAgAABQJlbQkAAgECNkludmFsaWQgY2FsY3VsYXRpb25zLiBMUCBjYWxjdWxhdGVkIGlzIGxlc3MgdGhhbiB6ZXJvLgQCZXEDCQEBIQEFAmRVAAAFAmVtBAJlcgkAZQIFAmRQBQJlbgQCZXMJAGUCBQJkUgUCZW8EAmV0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVwAFAmRGCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWAIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmRGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYQIFAmFiBQJkcwkBAmJFCgUCZW4FAmVvBQJlcQUCZEYFAmRPBQJlcAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZXIFAmVzBQNuaWwJAJ8KDQUCZW0FAmVxBQJkRgUCZEEFAmRDBQJkegUCZHYFAmR5BQJldAUCZXIFAmVzBQJkUQUCZFMBAmV1AwJldgJldwJkegQCZXgJAQFHAgUCZXYJALYCAQUCYnoEAmV5CQEBRwIFAmV3CQC2AgEFAmJBBAJlegkAvAIDCQB2BgkAuQICBQJleAUCZXkAAAkAtgIBAAUAAQASBQRET1dOBQFnBQJkegMJAAACBQJkegUBZgUBZgUCZXoBAmVBAwJlQgJlQwJlRAQCZUUJALgCAgkAtgIBCQECYlQBCQECYnABBQJieAUCZUIEAmVGCQC4AgIJALYCAQkBAmJUAQkBAmJwAQUCYnkFAmVDBAJlRwkAuAICCQC2AgEICQEFdmFsdWUBCQDsBwEFAmJ3CHF1YW50aXR5BQJlRAQCZUgJAQJldQMFAmVFBQJlRgUCZUcFAmVIAQJlSQMCZUoCZUsCZUQEAmVFCQBkAgkBAmJUAQkBAmJwAQUCYngFAmVKBAJlRgkAZAIJAQJiVAEJAQJicAEFAmJ5BQJlSwQCZUcJAGQCCAkBBXZhbHVlAQkA7AcBBQJidwhxdWFudGl0eQUCZUQEAmV6CQECZXUDCQC2AgEFAmVFCQC2AgEFAmVGCQC2AgEFAmVHBAJlTAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYWsFBmhlaWdodAkAzAgCCQELU3RyaW5nRW50cnkCBQJhagkApgMBBQJlegUDbmlsCQCUCgIFAmVMBQJlegECZU0ACQELdmFsdWVPckVsc2UCCQCbCAIFAmJkCQECYUgBCQClCAEFBHRoaXMHAQJlTgICZU8CZXoDCQDAAgIFAmV6BQJlTwYJAQJiYQEJALkJAgkAzAgCAiJ1cGRhdGVkIEtMcCBsb3dlciB0aGFuIGN1cnJlbnQgS0xwCQDMCAIJAKYDAQUCZU8JAMwIAgkApgMBBQJlegUDbmlsAgEgAQJlUAECZVEEAmVFCQECYlQBCQECYnABBQJieAQCZUYJAQJiVAEJAQJicAEFAmJ5BAJlUggFAmVRBmFtb3VudAQCZVMJAG4ECAUCZVEGYW1vdW50CAUCZVEFcHJpY2UFAWIFBUZMT09SBAJlVAMJAAACCAUCZVEJb3JkZXJUeXBlBQNCdXkJAJQKAgUCZVIJAQEtAQUCZVMJAJQKAgkBAS0BBQJlUgUCZVMEAmVKCAUCZVQCXzEEAmVLCAUCZVQCXzIDAwMJAQJiaQAGCQAAAgUCYnYFAW0GCQAAAgUCYnYFAW4JAAIBAhxFeGNoYW5nZSBvcGVyYXRpb25zIGRpc2FibGVkAwMJAQIhPQIICAUCZVEJYXNzZXRQYWlyC2Ftb3VudEFzc2V0BQJieAYJAQIhPQIICAUCZVEJYXNzZXRQYWlyCnByaWNlQXNzZXQFAmJ5CQACAQITV3Jvbmcgb3JkZXIgYXNzZXRzLgQCZVUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAmFqAgEwCQECYmMBAgtpbnZhbGlkIGtMcAQCZVYJAQJlSQMFAmVKBQJlSwAABAJlVwgFAmVWAl8xBAJlWAgFAmVWAl8yBAJlWQkAwAICBQJlWAUCZVUEAmVaCQC5CQIJAMwIAgIEa0xwPQkAzAgCCQCmAwEFAmVVCQDMCAICCCBrTHBOZXc9CQDMCAIJAKYDAQUCZVgJAMwIAgIUIGFtb3VudEFzc2V0QmFsYW5jZT0JAMwIAgkApAMBBQJlRQkAzAgCAhMgcHJpY2VBc3NldEJhbGFuY2U9CQDMCAIJAKQDAQUCZUYJAMwIAgIZIGFtb3VudEFzc2V0QmFsYW5jZURlbHRhPQkAzAgCCQCkAwEFAmVKCQDMCAICGCBwcmljZUFzc2V0QmFsYW5jZURlbHRhPQkAzAgCCQCkAwEFAmVLCQDMCAICCCBoZWlnaHQ9CQDMCAIJAKQDAQUGaGVpZ2h0BQNuaWwCAAkAlAoCBQJlWQUCZVoBAmZhAQJmYgMJAQIhPQIJAJADAQgFAmZiCHBheW1lbnRzAAEJAAIBAh1leGFjdGx5IDEgcGF5bWVudCBpcyBleHBlY3RlZAQCZmMJAQV2YWx1ZQEJAJEDAggFAmZiCHBheW1lbnRzAAAEAmR0CQEFdmFsdWUBCAUCZmMHYXNzZXRJZAQCZmQIBQJmYwZhbW91bnQEAmVlCQECZHIECQDYBAEIBQJmYg10cmFuc2FjdGlvbklkCQDYBAEFAmR0BQJmZAgFAmZiBmNhbGxlcgQCZEsIBQJlZQJfMQQCZEwIBQJlZQJfMgQCZHkJAQ1wYXJzZUludFZhbHVlAQgFAmVlAl85BAJkTQgFAmVlA18xMAMDCQECYmkABgkAAAIFAmR5BQFuCQACAQkArAICAixHZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJkeQkAlwoFBQJkSwUCZEwFAmZkBQJkdAUCZE0BAmZlAwJmYgJkTwJkVQMJAQIhPQIJAJADAQgFAmZiCHBheW1lbnRzAAIJAAIBAh9leGFjdGx5IDIgcGF5bWVudHMgYXJlIGV4cGVjdGVkBAJmZgkBBXZhbHVlAQkAkQMCCAUCZmIIcGF5bWVudHMAAAQCZmcJAQV2YWx1ZQEJAJEDAggFAmZiCHBheW1lbnRzAAEEAmZoCQECZE4JCQDYBAEIBQJmYg10cmFuc2FjdGlvbklkBQJkTwgFAmZmBmFtb3VudAgFAmZmB2Fzc2V0SWQIBQJmZwZhbW91bnQIBQJmZwdhc3NldElkCQClCAEIBQJmYgZjYWxsZXIHBQJkVQQCZHkJAQ1wYXJzZUludFZhbHVlAQgFAmZoAl84AwMDCQECYmkABgkAAAIFAmR5BQFsBgkAAAIFAmR5BQFuCQACAQkArAICAixQdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJkeQUCZmgBAmZpAQJjZgQCZmoJAPwHBAUCYmQCBGVtaXQJAMwIAgUCY2YFA25pbAUDbmlsAwkAAAIFAmZqBQJmagQCZmsEAmFRBQJmagMJAAECBQJhUQIHQWRkcmVzcwQCZmwFAmFRCQD8BwQFAmZsAgRlbWl0CQDMCAIFAmNmBQNuaWwFA25pbAUEdW5pdAMJAAACBQJmawUCZmsFAmNmCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJmbQICY2YCYWkEAmZuAwkAAAIFAmFpAAAAAAkAawMFAmNmBQJhaQUBYgkAlAoCCQBlAgUCY2YFAmZuBQJmbgECZm8EAmZwAmZxAmFiAmFjBAJmcgkAAAIFAmFjBQR1bml0BAJmcwkBAmJUAQkBAmJwAQUCYngEAmZ0CQECYlQBCQECYnABBQJieQQCZnUDCQAAAgUCZnEFAmJ4BgMJAAACBQJmcQUCYnkHCQECYmEBAg1pbnZhbGlkIGFzc2V0BAJmdgMFAmZyCQCUCgIFAmZzBQJmdAMFAmZ1CQCUCgIJAGUCBQJmcwUCZnAFAmZ0CQCUCgIFAmZzCQBlAgUCZnQFAmZwBAJmdwgFAmZ2Al8xBAJmeAgFAmZ2Al8yBAJmeQMFAmZ1CQCUCgIFAmZwAAAJAJQKAgAABQJmcAQCZnoIBQJmeQJfMQQCZkEIBQJmeQJfMgQCZVIICQECZm0CBQJmegUCYmYCXzEEAmVTCAkBAmZtAgUCZkEFAmJmAl8xBAJmQgkBAmZtAgUCZnAFAmJmBAJmQwgFAmZCAl8xBAJmbggFAmZCAl8yBAJmRAkAZAIFAmZ3BQJlUgQCZkUJAGQCBQJmeAUCZVMEAmZGCQECYlcCCQEBRAIFAmZFBQJiQQkBAUQCBQJmRAUCYnoEAmZHCQEBSAIFAmZGBQFiBAJmSAMFAmZ1BQJmdwUCZngEAmZJCQC2AgEFAmZIBAJmSgkAtgIBCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJ3CQCsAgIJAKwCAgIGYXNzZXQgCQDYBAEFAmJ3Ag4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCZksDCQC/AgIFAmZKBQFmBgkBAmJhAQIiaW5pdGlhbCBkZXBvc2l0IHJlcXVpcmVzIGFsbCBjb2lucwMJAAACBQJmSwUCZksEAmZMCQC2AgEFAmZDBAJmTQkAlgMBCQDMCAIAAAkAzAgCCQCgAwEJALoCAgkAuQICBQJmSgkAuAICCQEKc3FydEJpZ0ludAQJALcCAgUBZAkAugICCQC5AgIFAmZMBQFkBQJmSQASABIFBERPV04FAWQFAWQFA25pbAQCZXQDBQJmcgUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVwAFAmZHCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWAIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmZHCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYQIJAKUIAQkBBXZhbHVlAQUCYWIJANgEAQkBBXZhbHVlAQUCYWMJAQJiRQoFAmZ6BQJmQQUCZk0FAmZHAAAAAAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAAAAAAFA25pbAQCZk4JAQJiVwIJAQFEAgUCZngFAmJBCQEBRAIFAmZ3BQJiegQCZk8JAQFIAgUCZk4FAWIEAmZQBAJmUQMFAmZ1CQCUCgIFAmZ6BQJmdwkAlAoCBQJmQQUCZngEAmNmCAUCZlECXzEEAmZSCAUCZlECXzIEAmZTCQCgAwEJALwCAwUCZkoJALYCAQkAaQIFAmNmAAIJALYCAQUCZlIJAGsDCQBlAgUCZk0FAmZTBQFiBQJmUwkAlwoFBQJmTQUCZXQFAmZuBQJmUAUCZnUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmZUBQJmVQJmQwJmcQJhYgJhYwQCZnIJAAACBQJhYwUEdW5pdAQCZGkJAQJiawAEAmRqCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGkFAXQEAmRrCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGkFAXUEAmZWCQDMCAIDCQAAAgUCZnEFAmJ3BgkBAmJhAQIQaW52YWxpZCBscCBhc3NldAUDbmlsAwkAAAIFAmZWBQJmVgQCZlcDCQAAAgUCZlUFAmJ4BgMJAAACBQJmVQUCYnkHCQECYmEBAg1pbnZhbGlkIGFzc2V0BAJmWAMFAmZXCQC2AgEJAQJiVAEJAQJicAEFAmJ4CQC2AgEJAQJiVAEJAQJicAEFAmJ5BAJmWQMFAmZXBQJkagUCZGsEAmZaCQECYlQBCQECYnABBQJieAQCZ2EJAQJiVAEJAQJicAEFAmJ5BAJnYgMFAmZXBQJmWgUCZ2EEAmdjCQC2AgEFAmdiBAJmSgkAtgIBCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJ3CQCsAgIJAKwCAgIGYXNzZXQgCQDYBAEFAmJ3Ag4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCZ2QJALYCAQUCZkMEAmdlCQCWAwEJAMwIAgAACQDMCAIJAKADAQkAugICCQC5AgIFAmZYCQC4AgIFAWQJAHYGCQC4AgIFAWQJALoCAgkAuQICBQJnZAUBZAUCZkoAEgUBaAAAABIFBERPV04FAWQFA25pbAQCZ2YJAQJmbQIFAmdlBQJiaAQCZ2cIBQJnZgJfMQQCZm4IBQJnZgJfMgQCZ2gDBQJmVwkAlgoEBQJnZwAACQBlAgUCZloFAmdlBQJnYQkAlgoEAAAFAmdnBQJmWgkAZQIFAmdhBQJnZQQCZ2kIBQJnaAJfMQQCZ2oIBQJnaAJfMgQCZ2sIBQJnaAJfMwQCZ2wIBQJnaAJfNAQCZkYJAQJiVwIJAQFEAgUCZ2wFAmJBCQEBRAIFAmdrBQJiegQCZkcJAQFIAgUCZkYFAWIEAmV0AwUCZnIFA25pbAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWQCCQClCAEJAQV2YWx1ZQEFAmFiCQDYBAEJAQV2YWx1ZQEFAmFjCQECYlAGBQJnaQUCZ2oFAmZDBQJmRwUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcABQJmRwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVgCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJmRwUDbmlsBAJmTgkBAmJXAgkBAUQCBQJnYQUCYkEJAQFEAgUCZloFAmJ6BAJmTwkBAUgCBQJmTgUBYgQCZlAEAmdtCQBoAgkAoAMBCQC8AgMFAmZYBQJnZAUCZkoAAgkAawMJAGUCBQJnZwUCZ20FAWIFAmdtCQCXCgUFAmdnBQJldAUCZm4FAmZQBQJmVwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZ24ABAJnbwkBAmFTAAQCYVEJAJ0IAgUCZ28JAQFVAAMJAAECBQJhUQIGU3RyaW5nBAJhVgUCYVEJANkEAQUCYVYDCQABAgUCYVECBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZ3ABAmZiBAJhUQkBAmduAAMJAAECBQJhUQIKQnl0ZVZlY3RvcgQCZ3EFAmFRCQAAAggFAmZiD2NhbGxlclB1YmxpY0tleQUCZ3EDCQABAgUCYVECBFVuaXQJAAACCAUCZmIGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBAmdyAQJmYgQCZ3MJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQCYVEJAQJnbgADCQABAgUCYVECCkJ5dGVWZWN0b3IEAmdxBQJhUQMJAAACCAUCZmIPY2FsbGVyUHVibGljS2V5BQJncQYFAmdzAwkAAQIFAmFRAgRVbml0AwkAAAIIBQJmYgZjYWxsZXIFBHRoaXMGBQJncwkAAgECC01hdGNoIGVycm9yHAJmYgEJcmViYWxhbmNlAAkAzggCCQECY0kBCQECYVcCBQR0aGlzCQECYWUACQECY0kBCQECYVcCBQR0aGlzCQECYWYAAmZiASFjYWxjdWxhdGVBbW91bnRPdXRGb3JTd2FwUkVBRE9OTFkDAmd0Amd1Amd2BAJndwMJAAACBQJndQcEAmd4CQECYVcCBQR0aGlzCQECYWYABAJneQkBAmFXAgUEdGhpcwkBAmFlAAkAlAoCBQJneAUCZ3kEAmd4CQECYVcCBQR0aGlzCQECYWUABAJneQkBAmFXAgUEdGhpcwkBAmFmAAkAlAoCBQJneAUCZ3kEAmd4CAUCZ3cCXzEEAmd5CAUCZ3cCXzIEAmd6CQECYlQBBQJneQQCZ0EJAQJiVAEFAmd4BAJnQgkAawMFAmdBBQJndAkAZAIFAmd6BQJndAQCZ0MJALkCAgkAtgIBBQJnegkAtgIBBQJnQQQCZ0QJALkCAgkAtwICCQC3AgIJALYCAQkBAmJUAQUCZ3kJALYCAQUCZ3QJALYCAQUCZ3YJALgCAgkAtgIBCQECYlQBBQJneAkAtgIBBQJnQgQCZ0UDCQDAAgIFAmdEBQJnQwYJAAIBAhRuZXcgSyBpcyBmZXdlciBlcnJvcgMJAAACBQJnRQUCZ0UJAJQKAgUDbmlsBQJnQgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJmYgEmY2FsY3VsYXRlQW1vdW50T3V0Rm9yU3dhcEFuZFNlbmRUb2tlbnMFAmd0Amd1AmdGAmdHAmd2BAJnSAoAAmJnCQD8BwQFAmJkAhdnZXRTd2FwQ29udHJhY3RSRUFET05MWQUDbmlsBQNuaWwDCQABAgUCYmcCBlN0cmluZwUCYmcJAAIBCQCsAgIJAAMBBQJiZwIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nBAJmVgkAzAgCAwkAZwIICQEFdmFsdWUBCQCRAwIIBQJmYghwYXltZW50cwAABmFtb3VudAUCZ3QGCQECYmEBAgxXcm9uZyBhbW91bnQJAMwIAgMJAAACCAUCZmIGY2FsbGVyCQERQGV4dHJOYXRpdmUoMTA2MikBBQJnSAYJAQJiYQECEVBlcm1pc3Npb24gZGVuaWVkBQNuaWwDCQAAAgUCZlYFAmZWBAJmYwkBBXZhbHVlAQkAkQMCCAUCZmIIcGF5bWVudHMAAAQCZ3kJAQJicAEIBQJmYwdhc3NldElkBAJneAMJAAACBQJndQcJAQJhVwIFBHRoaXMJAQJhZgAJAQJhVwIFBHRoaXMJAQJhZQAEAmd6CQBlAgkBAmJUAQUCZ3kICQEFdmFsdWUBCQCRAwIIBQJmYghwYXltZW50cwAABmFtb3VudAQCZ0EJAQJiVAEFAmd4BAJnQgkAawMFAmdBBQJndAkAZAIFAmd6BQJndAQCZ0MJALkCAgkAtgIBBQJnegkAtgIBBQJnQQQCZ0QJALkCAgkAtwICCQC2AgEJAQJiVAEFAmd5CQC2AgEFAmd2CQC4AgIJALYCAQkBAmJUAQUCZ3gJALYCAQUCZ0IEAmdFAwkAwAICBQJnRAUCZ0MGCQACAQIUbmV3IEsgaXMgZmV3ZXIgZXJyb3IDCQAAAgUCZ0UFAmdFBAJnSQMJAGcCBQJnQgUCZ0YGCQACAQIsRXhjaGFuZ2UgcmVzdWx0IGlzIGZld2VyIGNvaW5zIHRoYW4gZXhwZWN0ZWQDCQAAAgUCZ0kFAmdJBAJnSgkBAmNJAQUCZ3kDCQAAAgUCZ0oFAmdKBAJnSwkBAmNQAgUCZ3gFAmdCAwkAAAIFAmdLBQJnSwkAlAoCCQDOCAIJAM4IAgUCZ0sFAmdKCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmdHBQJnQgkBAmJuAQUCZ3gFA25pbAUCZ0IJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmIBA3B1dAICZE8CZ0wDCQBmAgAABQJkTwkAAgECIEludmFsaWQgc2xpcHBhZ2VUb2xlcmFuY2UgcGFzc2VkBAJmaAkBAmZlAwUCZmIFAmRPBgQCZXEIBQJmaAJfMgQCZHYIBQJmaAJfNwQCZE0IBQJmaAJfOQQCZXIIBQJmaANfMTAEAmVzCAUCZmgDXzExBAJnTQgFAmZoA18xMgQCZ04IBQJmaANfMTMEAmZmCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJmYghwYXltZW50cwAABmFtb3VudAQCZmcJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmZiCHBheW1lbnRzAAEGYW1vdW50BAJlSAkBAmVBAwUCZmYFAmZnCQC2AgEAAAMJAAACBQJlSAUCZUgEAmZqCQD8BwQFAmJkAgRlbWl0CQDMCAIFAmVxBQNuaWwFA25pbAMJAAACBQJmagUCZmoEAmZrBAJhUQUCZmoDCQABAgUCYVECB0FkZHJlc3MEAmZsBQJhUQkA/AcEBQJmbAIEZW1pdAkAzAgCBQJlcQUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZmsFAmZrBAJnTwMJAGYCBQJlcgAACQD8BwQFAmJEAgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZ00FAmVyBQNuaWwFA25pbAMJAAACBQJnTwUCZ08EAmdQAwkAZgIFAmVzAAAJAPwHBAUCYkQCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJnTgUCZXMFA25pbAUDbmlsAwkAAAIFAmdQBQJnUAQCZ1EDBQJnTAQCZ1IJAPwHBAUCYkMCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmR2BQJlcQUDbmlsAwkAAAIFAmdSBQJnUgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJmYgZjYWxsZXIFAmVxBQJkdgUDbmlsBAJnUwkBAmVJAwAAAAAAAAMJAAACBQJnUwUCZ1MEAmV6CAUCZ1MCXzIEAmdUCAUCZ1MCXzEEAmdVCQECZU4CBQJlSAUCZXoDCQAAAgUCZ1UFAmdVBAJnVgkA/AcEBQR0aGlzAglyZWJhbGFuY2UFA25pbAUDbmlsAwkAAAIFAmdWBQJnVgkAzggCCQDOCAIFAmRNBQJnUQUCZ1QJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmIBCnB1dEZvckZyZWUBAmdXAwkAZgIAAAUCZ1cJAAIBAhRJbnZhbGlkIHZhbHVlIHBhc3NlZAQCZmgJAQJmZQMFAmZiBQJnVwcEAmRNCAUCZmgCXzkEAmZmCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJmYghwYXltZW50cwAABmFtb3VudAQCZmcJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmZiCHBheW1lbnRzAAEGYW1vdW50BAJlSAkBAmVBAwUCZmYFAmZnCQC2AgEAAAMJAAACBQJlSAUCZUgEAmdYCQECZUkDAAAAAAAABAJnVAgFAmdYAl8xBAJleggFAmdYAl8yBAJnVQkBAmVOAgUCZUgFAmV6AwkAAAIFAmdVBQJnVQkAzggCBQJkTQUCZ1QJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmIBCXB1dE9uZVRrbgICZ1kCZ1oEAmhhCgACYmcJAPwHBAUCYmQCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJiZwIHQm9vbGVhbgUCYmcJAAIBCQCsAgIJAAMBBQJiZwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCaGIDAwMJAQJiaQAGCQAAAgUCYnYFAWwGCQAAAgUCYnYFAW4GBQJoYQQCZlYJAMwIAgMDCQEBIQEFAmhiBgkBAmdwAQUCZmIGCQECYmEBAiFwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJmYghwYXltZW50cwABBgkBAmJhAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlYFAmZWBAJoYwkAkQMCCAUCZmIIcGF5bWVudHMAAAQCZnEIBQJoYwdhc3NldElkBAJmcAgFAmhjBmFtb3VudAQCZUgDCQAAAgUCZnEFAmJ4CQECZUEDCQC2AgEFAmZwCQC2AgEAAAkAtgIBAAADCQAAAgUCZnEFAmJ5CQECZUEDCQC2AgEAAAkAtgIBBQJmcAkAtgIBAAAJAQJiYQECHnBheW1lbnQgYXNzZXQgaXMgbm90IHN1cHBvcnRlZAMJAAACBQJlSAUCZUgEAmFiCAUCZmIGY2FsbGVyBAJhYwgFAmZiDXRyYW5zYWN0aW9uSWQEAmhkCQECZm8EBQJmcAUCZnEFAmFiBQJhYwMJAAACBQJoZAUCaGQEAmZ1CAUCaGQCXzUEAmhlCAUCaGQCXzQEAmZuCAUCaGQCXzMEAmV0CAUCaGQCXzIEAmhmCAUCaGQCXzEEAmhnAwMJAGYCBQJnWQAACQBmAgUCZ1kFAmhmBwkBAmJhAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJnWQUDbmlsAgAFAmhmBAJmagkBAmZpAQUCaGcDCQAAAgUCZmoFAmZqBAJnUQMFAmdaBAJoaAkA/AcEBQJiQwIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYncFAmhnBQNuaWwDCQAAAgUCaGgFAmhoBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmZiBmNhbGxlcgUCaGcFAmJ3BQNuaWwEAmhpAwkAZgIFAmZuAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYmUFAmZuBQJmcQUDbmlsBQNuaWwEAmhqAwkAAAIFBHRoaXMFAmJlCQCUCgIAAAAAAwUCZnUJAJQKAgkBAS0BBQJmbgAACQCUCgIAAAkBAS0BBQJmbgQCZUoIBQJoagJfMQQCZUsIBQJoagJfMgQCaGsJAQJlSQMFAmVKBQJlSwAABAJnVAgFAmhrAl8xBAJleggFAmhrAl8yBAJlVQkBBXZhbHVlAQkAoggBBQJhagQCZ1UJAQJlTgIFAmVIBQJlegMJAAACBQJnVQUCZ1UEAmdWCQD8BwQFBHRoaXMCCXJlYmFsYW5jZQUDbmlsBQNuaWwDCQAAAgUCZ1YFAmdWCQCUCgIJAM4IAgkAzggCCQDOCAIFAmV0BQJnUQUCaGkFAmdUBQJoZwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJmYgERcHV0T25lVGtuUkVBRE9OTFkCAmZxAmZwBAJobAkBAmZvBAUCZnAJAQJibgEFAmZxBQR1bml0BQR1bml0BAJoZggFAmhsAl8xBAJldAgFAmhsAl8yBAJmbggFAmhsAl8zBAJoZQgFAmhsAl80BAJmdQgFAmhsAl81CQCUCgIFA25pbAkAlQoDBQJoZgUCZm4FAmhlAmZiAQlnZXRPbmVUa24CAmhtAmdZBAJoYQoAAmJnCQD8BwQFAmJkAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYmcCB0Jvb2xlYW4FAmJnCQACAQkArAICCQADAQUCYmcCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmhuAwMJAQJiaQAGCQAAAgUCYnYFAW4GBQJoYQQCZlYJAMwIAgMDCQEBIQEFAmhuBgkBAmdwAQUCZmIGCQECYmEBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJmYghwYXltZW50cwABBgkBAmJhAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlYFAmZWBAJmVQkBAmJuAQUCaG0EAmhjCQCRAwIIBQJmYghwYXltZW50cwAABAJmcQgFAmhjB2Fzc2V0SWQEAmZDCAUCaGMGYW1vdW50BAJlSAkBAmVBAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlSAUCZUgEAmFiCAUCZmIGY2FsbGVyBAJhYwgFAmZiDXRyYW5zYWN0aW9uSWQEAmhvCQECZlQFBQJmVQUCZkMFAmZxBQJhYgUCYWMDCQAAAgUCaG8FAmhvBAJmVwgFAmhvAl81BAJoZQgFAmhvAl80BAJmbggFAmhvAl8zBAJldAgFAmhvAl8yBAJocAgFAmhvAl8xBAJjZgMDCQBmAgUCZ1kAAAkAZgIFAmdZBQJocAcJAQJiYQEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZ1kFA25pbAIABQJocAQCaHEJAPwHBAUCYmQCBGJ1cm4JAMwIAgUCZkMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZnEFAmZDBQNuaWwDCQAAAgUCaHEFAmhxBAJnSwkBAmNQAgUCaG0JAGQCBQJjZgkAlgMBCQDMCAIAAAkAzAgCBQJmbgUDbmlsBAJocgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhYgUCY2YFAmZVBQNuaWwEAmhpAwkAZgIFAmZuAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYmUFAmZuBQJmVQUDbmlsBQNuaWwEAmhzBAJodAMJAAACBQR0aGlzBQJiZQAABQJmbgMFAmZXCQCUCgIJAQEtAQkAZAIFAmNmBQJodAAACQCUCgIAAAkBAS0BCQBkAgUCY2YFAmh0BAJlSggFAmhzAl8xBAJlSwgFAmhzAl8yBAJodQkBAmVJAwUCZUoFAmVLAAAEAmdUCAUCaHUCXzEEAmV6CAUCaHUCXzIEAmdVCQECZU4CBQJlSAUCZXoDCQAAAgUCZ1UFAmdVCQCUCgIJAM4IAgkAzggCCQDOCAIJAM4IAgUCZXQFAmdLBQJocgUCaGkFAmdUBQJjZgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJmYgERZ2V0T25lVGtuUkVBRE9OTFkCAmZVAmZDBAJodgkBAmZUBQkBAmJuAQUCZlUFAmZDBQJidwUEdW5pdAUEdW5pdAQCaHAIBQJodgJfMQQCZXQIBQJodgJfMgQCZm4IBQJodgJfMwQCaGUIBQJodgJfNAQCZlcIBQJodgJfNQkAlAoCBQNuaWwJAJUKAwUCaHAFAmZuBQJoZQJmYgETdW5zdGFrZUFuZEdldE9uZVRrbgMCaHcCaG0CZ1kEAmhhCgACYmcJAPwHBAUCYmQCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJiZwIHQm9vbGVhbgUCYmcJAAIBCQCsAgIJAAMBBQJiZwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCaG4DAwkBAmJpAAYJAAACBQJidgUBbgYFAmhhBAJmVgkAzAgCAwMJAQEhAQUCaG4GCQECZ3ABBQJmYgYJAQJiYQECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmZiCHBheW1lbnRzAAAGCQECYmEBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJmVgUCZlYEAmZVCQECYm4BBQJobQQCYWIIBQJmYgZjYWxsZXIEAmFjCAUCZmINdHJhbnNhY3Rpb25JZAQCZUgJAQJlQQMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUgFAmVIBAJoeAkA/AcEBQJiQwIHdW5zdGFrZQkAzAgCCQDYBAEFAmJ3CQDMCAIFAmh3BQNuaWwFA25pbAMJAAACBQJoeAUCaHgEAmh5CQECZlQFBQJmVQUCaHcFAmJ3BQJhYgUCYWMDCQAAAgUCaHkFAmh5BAJmVwgFAmh5Al81BAJoZQgFAmh5Al80BAJmbggFAmh5Al8zBAJldAgFAmh5Al8yBAJocAgFAmh5Al8xBAJjZgMDCQBmAgUCZ1kAAAkAZgIFAmdZBQJocAcJAQJiYQEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZ1kFA25pbAIABQJocAQCaHEJAPwHBAUCYmQCBGJ1cm4JAMwIAgUCaHcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYncFAmh3BQNuaWwDCQAAAgUCaHEFAmhxBAJnSwkBAmNQAgUCaG0JAGQCBQJjZgkAlgMBCQDMCAIAAAkAzAgCBQJmbgUDbmlsBAJocgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZmIGY2FsbGVyBQJjZgUCZlUFA25pbAQCaGkDCQBmAgUCZm4AAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJiZQUCZm4FAmZVBQNuaWwFA25pbAQCaHoEAmh0AwkAAAIFBHRoaXMFAmJlAAAFAmZuAwUCZlcJAJQKAgkBAS0BCQBkAgUCY2YFAmh0AAAJAJQKAgAACQEBLQEJAGQCBQJjZgUCaHQEAmVKCAUCaHoCXzEEAmVLCAUCaHoCXzIEAmhBCQECZUkDBQJlSgUCZUsAAAQCZ1QIBQJoQQJfMQQCZXoIBQJoQQJfMgQCZ1UJAQJlTgIFAmVIBQJlegMJAAACBQJnVQUCZ1UJAJQKAgkAzggCCQDOCAIJAM4IAgkAzggCBQJldAUCZ0sFAmhyBQJoaQUCZ1QFAmNmCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmZiAQNnZXQABAJlZQkBAmZhAQUCZmIEAmRLCAUCZWUCXzEEAmRMCAUCZWUCXzIEAmZkCAUCZWUCXzMEAmR0CAUCZWUCXzQEAmRNCAUCZWUCXzUEAmdLCQECY1UCBQJkSwUCZEwEAmVICQECZUEDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmVIBQJlSAQCaEIJAPwHBAUCYmQCBGJ1cm4JAMwIAgUCZmQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZHQFAmZkBQNuaWwDCQAAAgUCaEIFAmhCBAJoQwkBAmVJAwkBAS0BBQJkSwkBAS0BBQJkTAAABAJnVAgFAmhDAl8xBAJleggFAmhDAl8yBAJnVQkBAmVOAgUCZUgFAmV6AwkAAAIFAmdVBQJnVQkAzggCCQDOCAIFAmdLBQJkTQUCZ1QJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmIBCWdldE5vTGVzcwICaEQCaEUEAmVlCQECZmEBBQJmYgQCZEsIBQJlZQJfMQQCZEwIBQJlZQJfMgQCZmQIBQJlZQJfMwQCZHQIBQJlZQJfNAQCZE0IBQJlZQJfNQMJAGYCBQJoRAUCZEsJAAIBCQCsAgIJAKwCAgkArAICAhxub0xlc3NUaGVuQW10QXNzZXQgZmFpbGVkOiAgCQCkAwEFAmRLAgMgPCAJAKQDAQUCaEQDCQBmAgUCaEUFAmRMCQACAQkArAICCQCsAgIJAKwCAgIdbm9MZXNzVGhlblByaWNlQXNzZXQgZmFpbGVkOiAJAKQDAQUCZEwCAyA8IAkApAMBBQJoRQQCZ0sJAQJjVQIFAmRLBQJkTAQCZUgJAQJlQQMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUgFAmVIBAJoQgkA/AcEBQJiZAIEYnVybgkAzAgCBQJmZAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkdAUCZmQFA25pbAMJAAACBQJoQgUCaEIEAmhGCQECZUkDCQEBLQEFAmRLCQEBLQEFAmRMAAAEAmdUCAUCaEYCXzEEAmV6CAUCaEYCXzIEAmdVCQECZU4CBQJlSAUCZXoDCQAAAgUCZ1UFAmdVCQDOCAIJAM4IAgUCZ0sFAmRNBQJnVAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJmYgENdW5zdGFrZUFuZEdldAECY2YEAmhHAwkBAiE9AgkAkAMBCAUCZmIIcGF5bWVudHMAAAkAAgECGE5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAYDCQAAAgUCaEcFAmhHBAJkaQkBAmJrAAQCZHYJANkEAQkAkQMCBQJkaQUBcQQCZUgJAQJlQQMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUgFAmVIBAJoeAkA/AcEBQJiQwIHdW5zdGFrZQkAzAgCCQDYBAEFAmR2CQDMCAIFAmNmBQNuaWwFA25pbAMJAAACBQJoeAUCaHgEAmVlCQECZHIECQDYBAEIBQJmYg10cmFuc2FjdGlvbklkCQDYBAEFAmR2BQJjZggFAmZiBmNhbGxlcgQCZEsIBQJlZQJfMQQCZEwIBQJlZQJfMgQCZHkJAQ1wYXJzZUludFZhbHVlAQgFAmVlAl85BAJkTQgFAmVlA18xMAQCZ0sJAQJjVQIFAmRLBQJkTAQCaEgDAwkBAmJpAAYJAAACBQJkeQUBbgkAAgEJAKwCAgIsR2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCZHkGAwkAAAIFAmhIBQJoSAQCaEIJAPwHBAUCYmQCBGJ1cm4JAMwIAgUCY2YFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZHYFAmNmBQNuaWwDCQAAAgUCaEIFAmhCBAJoSQkBAmVJAwkBAS0BBQJkSwkBAS0BBQJkTAAABAJnVAgFAmhJAl8xBAJleggFAmhJAl8yBAJnVQkBAmVOAgUCZUgFAmV6AwkAAAIFAmdVBQJnVQkAzggCCQDOCAIFAmdLBQJkTQUCZ1QJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmIBE3Vuc3Rha2VBbmRHZXROb0xlc3MDAmh3AmhKAmhFBAJobgMJAQJiaQAGCQAAAgUCYnYFAW4EAmZWCQDMCAIDCQEBIQEFAmhuBgkAAgECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmZiCHBheW1lbnRzAAAGCQACAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlYFAmZWBAJlSAkBAmVBAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlSAUCZUgEAmh4CQD8BwQFAmJDAgd1bnN0YWtlCQDMCAIJANgEAQUCYncJAMwIAgUCaHcFA25pbAUDbmlsAwkAAAIFAmh4BQJoeAQCZWUJAQJkcgQJANgEAQgFAmZiDXRyYW5zYWN0aW9uSWQJANgEAQUCYncFAmh3CAUCZmIGY2FsbGVyBAJkSwgFAmVlAl8xBAJkTAgFAmVlAl8yBAJkTQgFAmVlA18xMAQCZ0sJAQJjVQIFAmRLBQJkTAQCaEsJAMwIAgMJAGcCBQJkSwUCaEoGCQACAQkAuQkCCQDMCAICLGFtb3VudCBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCaEoFA25pbAIACQDMCAIDCQBnAgUCZEwFAmhFBgkAAgEJALkJAgkAzAgCAitwcmljZSBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCaEUFA25pbAIABQNuaWwDCQAAAgUCaEsFAmhLBAJoQgkA/AcEBQJiZAIEYnVybgkAzAgCBQJodwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJidwUCaHcFA25pbAMJAAACBQJoQgUCaEIEAmhMCQECZUkDCQEBLQEFAmRLCQEBLQEFAmRMAAAEAmdUCAUCaEwCXzEEAmV6CAUCaEwCXzIEAmdVCQECZU4CBQJlSAUCZXoDCQAAAgUCZ1UFAmdVCQDOCAIJAM4IAgUCZ0sFAmRNBQJnVAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJmYgEIYWN0aXZhdGUCAmhNAmhOAwkBAiE9AgkApQgBCAUCZmIGY2FsbGVyCQClCAEFAmJkCQACAQIScGVybWlzc2lvbnMgZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFlAAUCaE0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFmAAUCaE4FA25pbAIHc3VjY2VzcwJmYgEKcmVmcmVzaEtMcAAEAmhPCQELdmFsdWVPckVsc2UCCQCfCAEFAmFrAAAEAmhQAwkAZwIJAGUCBQZoZWlnaHQFAmhPBQJhbgUEdW5pdAkBAmJhAQkAuQkCCQDMCAIJAKQDAQUCYW4JAMwIAgIvIGJsb2NrcyBoYXZlIG5vdCBwYXNzZWQgc2luY2UgdGhlIHByZXZpb3VzIGNhbGwFA25pbAIAAwkAAAIFAmhQBQJoUAQCZVUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAmFqAgEwCQECYmMBAgtpbnZhbGlkIGtMcAQCaFEJAQJlSQMAAAAAAAAEAmhSCAUCaFECXzEEAmV6CAUCaFECXzIEAmVMAwkBAiE9AgUCZVUFAmV6BQJoUgkBAmJhAQISbm90aGluZyB0byByZWZyZXNoCQCUCgIFAmVMCQCmAwEFAmV6CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmZiARxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZAAkAlAoCBQNuaWwJAQJiawACZmIBHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkBAmFwCQCUCgIFA25pbAkBAmJUAQUCYXACZmIBGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkDAmRjAmRkAmRoBAJkcQkBAmRnAwUCZGMFAmRkBQJkaAkAlAoCBQNuaWwJAMwIAgkApgMBCQCRAwIFAmRxAAAJAMwIAgkApgMBCQCRAwIFAmRxAAEJAMwIAgkApgMBCQCRAwIFAmRxAAIFA25pbAJmYgEUdG9YMThXcmFwcGVyUkVBRE9OTFkCAUUBRgkAlAoCBQNuaWwJAKYDAQkBAUQCBQFFBQFGAmZiARZmcm9tWDE4V3JhcHBlclJFQURPTkxZAgFJAUoJAJQKAgUDbmlsCQEBSAIJAKcDAQUBSQUBSgJmYgEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJiWAJiWQkAlAoCBQNuaWwJAKYDAQkBAmJXAgkApwMBBQJiWAkApwMBBQJiWQJmYgEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmRzAmRPAmRQAmRRAmRSAmRTAmFiAmRUAmRVCQCUCgIFA25pbAkBAmROCQUCZHMFAmRPBQJkUAUCZFEFAmRSBQJkUwUCYWIFAmRUBQJkVQJmYgEjZXN0aW1hdGVHZXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkEAmRzAmR0AmR1AmFiBAJlZQkBAmRyBAUCZHMFAmR0BQJkdQkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWIJAJQKAgUDbmlsCQCcCgoIBQJlZQJfMQgFAmVlAl8yCAUCZWUCXzMIBQJlZQJfNAgFAmVlAl81CAUCZWUCXzYIBQJlZQJfNwkApgMBCAUCZWUCXzgIBQJlZQJfOQgFAmVlA18xMAJmYgENc3RhdHNSRUFET05MWQAEAmRpCQECYmsABAJkdgkA2QQBCQCRAwIFAmRpBQFxBAJoUwkAkQMCBQJkaQUBcgQCaFQJAJEDAgUCZGkFAXMEAmRYCQCRAwIFAmRpBQF2BAJkWQkAkQMCBQJkaQUBdwQCZGoJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkaQUBdAQCZGsJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkaQUBdQQCaFUICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHYJAKwCAgkArAICAgZBc3NldCAJANgEAQUCZHYCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJoVgkBAmJUAQUCaFMEAmhXCQECYlQBBQJoVAQCaFgDCQAAAgUCaFUAAAkAzAgCBQFlCQDMCAIFAWUJAMwIAgUBZQUDbmlsCQECZGcDBQJoVgUCaFcFAmhVBAJkRgAABAJoWQkBAUgCCQCRAwIFAmhYAAEFAWIEAmhaCQEBSAIJAJEDAgUCaFgAAgUBYgQCaWEJAQV2YWx1ZQEJAJoIAgUCYmQJAQJhRAEJAKUIAQUEdGhpcwkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmhWCQDMCAIJAKQDAQUCaFcJAMwIAgkApAMBBQJoVQkAzAgCCQCkAwEFAmRGCQDMCAIJAKQDAQUCaFkJAMwIAgkApAMBBQJoWgkAzAgCCQCkAwEFAmlhBQNuaWwFAWoCZmIBIGV2YWx1YXRlUHV0QnlBbW91bnRBc3NldFJFQURPTkxZAQJkUAQCZGkJAQJiawAEAmR2CQDZBAEJAJEDAgUCZGkFAXEEAmRWCQCRAwIFAmRpBQFyBAJkdwkA2QQBBQJkVgQCZFcJAJEDAgUCZGkFAXMEAmR4CQDZBAEFAmRXBAJkagkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRpBQF0BAJkawkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRpBQF1BAJkeQkAkQMCBQJkaQUBcAQCaFUICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHYJAKwCAgkArAICAgZBc3NldCAJANgEAQUCZHYCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJoVgkBAmJUAQUCZFYEAmhXCQECYlQBBQJkVwQCZGUJAQFEAgUCaFYFAmRqBAJkZgkBAUQCBQJoVwUCZGsEAmRFAwkAAAIFAmhVAAAFAWUJAQJiVwIFAmRmBQJkZQQCZWIJAQFEAgUCZFAFAmRqBAJlYwkAvAIDBQJlYgUCZEUFAWQEAmRSCQEBSAIFAmVjBQJkawQCZmgJAQJkTgkCAACgwh4FAmRQBQJkdwUCZFIFAmR4AgAGBwQCZW0IBQJmaAJfMQQCaWIIBQJmaAJfMwQCZEEIBQJmaAJfNAQCZEMIBQJmaAJfNQQCZHoIBQJmaAJfNgkAlAoCBQNuaWwJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZW0JAMwIAgkApAMBCQEBSAIFAmRFBQFiCQDMCAIJAKQDAQUCZEEJAMwIAgkApAMBBQJkQwkAzAgCCQCkAwEFAmR6CQDMCAIFAmR5CQDMCAIJAKQDAQUCZFAJAMwIAgkApAMBBQJkUgUDbmlsBQFqAmZiAR9ldmFsdWF0ZVB1dEJ5UHJpY2VBc3NldFJFQURPTkxZAQJkUgQCZGkJAQJiawAEAmR2CQDZBAEJAJEDAgUCZGkFAXEEAmRWCQCRAwIFAmRpBQFyBAJkdwkA2QQBBQJkVgQCZFcJAJEDAgUCZGkFAXMEAmR4CQDZBAEFAmRXBAJkagkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRpBQF0BAJkawkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRpBQF1BAJkeQkAkQMCBQJkaQUBcAQCaFUICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHYJAKwCAgkArAICAgZBc3NldCAJANgEAQUCZHYCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJpYwkBAmJUAQUCZFYEAmlkCQECYlQBBQJkVwQCaWUJAQFEAgUCaWMFAmRqBAJpZgkBAUQCBQJpZAUCZGsEAmRFAwkAAAIFAmhVAAAFAWUJAQJiVwIFAmlmBQJpZQQCZWMJAQFEAgUCZFIFAmRrBAJlYgkAvAIDBQJlYwUBZAUCZEUEAmRQCQEBSAIFAmViBQJkagQCZmgJAQJkTgkCAACgwh4FAmRQBQJkdwUCZFIFAmR4AgAGBwQCZW0IBQJmaAJfMQQCaWIIBQJmaAJfMwQCZEEIBQJmaAJfNAQCZEMIBQJmaAJfNQQCZHoIBQJmaAJfNgkAlAoCBQNuaWwJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZW0JAMwIAgkApAMBCQEBSAIFAmRFBQFiCQDMCAIJAKQDAQUCZEEJAMwIAgkApAMBBQJkQwkAzAgCCQCkAwEFAmR6CQDMCAIFAmR5CQDMCAIJAKQDAQUCZFAJAMwIAgkApAMBBQJkUgUDbmlsBQFqAmZiARNldmFsdWF0ZUdldFJFQURPTkxZAgJpZwJpaAQCZWUJAQJkcgQCAAUCaWcFAmloBQR0aGlzBAJkSwgFAmVlAl8xBAJkTAgFAmVlAl8yBAJkQQgFAmVlAl81BAJkQwgFAmVlAl82BAJkeggFAmVlAl83BAJkRggFAmVlAl84BAJkeQkBDXBhcnNlSW50VmFsdWUBCAUCZWUCXzkJAJQKAgUDbmlsCQC5CQIJAMwIAgIOJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJkSwkAzAgCCQCkAwEFAmRMCQDMCAIJAKQDAQUCZEEJAMwIAgkApAMBBQJkQwkAzAgCCQCkAwEFAmR6CQDMCAIJAKYDAQUCZEYJAMwIAgkApAMBBQJkeQUDbmlsBQFqAQJpaQECaWoABAJpawQCYVEJAQJnbgADCQABAgUCYVECCkJ5dGVWZWN0b3IEAmdxBQJhUQUCZ3EDCQABAgUCYVECBFVuaXQIBQJpaQ9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgQCYVEFAmlpAwkAAQIFAmFRAgVPcmRlcgQCZVEFAmFRBAJpbAkBAmJqAAQCaW0DCQECZU0ACQCUCgIGAgAJAQJlUAEFAmVRBAJhSwgFAmltAl8xBAJhTAgFAmltAl8yBAJhTQkA9AMDCAUCZVEJYm9keUJ5dGVzCQCRAwIIBQJlUQZwcm9vZnMAAAgFAmVRD3NlbmRlclB1YmxpY0tleQQCYU4JAPQDAwgFAmVRCWJvZHlCeXRlcwkAkQMCCAUCZVEGcHJvb2ZzAAEFAmlsAwMDBQJhSwUCYU0HBQJhTgcGCQECYUoEBQJhSwUCYUwFAmFNBQJhTgMJAAECBQJhUQIUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAmFWBQJhUQMJAPQDAwgFAmlpCWJvZHlCeXRlcwkAkQMCCAUCaWkGcHJvb2ZzAAAFAmlrBgQCaW4JAPYDAQkBBXZhbHVlAQgFAmFWBnNjcmlwdAQCaW8JANsEAQkBBXZhbHVlAQkAnQgCBQJiZAkBAmFGAAQCaXAJAPEHAQUEdGhpcwMJAAACBQJpbwUCaW4JAQIhPQIFAmlwBQJpbgcJAPQDAwgFAmlpCWJvZHlCeXRlcwkAkQMCCAUCaWkGcHJvb2ZzAAAFAmlr1PSynQ==", "height": 2571650, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ANyLyGnaKZ3Zok5Ap1rHJfdUdtF5k7qatEr543JuT1Zu Next: 7AdkstjR4CRokcDM6ihw1KGZuk3hwDu449Sq9x19EEHP Diff:
OldNewDifferences
9393 func U () = "%s__managerPublicKey"
9494
9595
96-func V () = "%s__pendingManagerPublicKey"
96+func V () = "%s__managerVaultAddress"
9797
9898
9999 func W () = "%s%s__price__last"
174174 func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
175175
176176
177-func aO (aP,aQ) = valueOrErrorMessage(getString(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
178-
179-
180-func aR (aP,aQ) = valueOrErrorMessage(getInteger(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
181-
182-
183-func aS (aT) = throw(makeString(["lp.ride:", aT], " "))
184-
185-
186-func aU (aT) = makeString(["lp.ride:", aT], " ")
187-
188-
189-let aV = addressFromStringValue(aO(this, T()))
190-
191-let aW = addressFromStringValue(aO(aV, aG))
192-
193-let aX = {
194- let aY = invoke(aV, "getInFeeREADONLY", [toString(this)], nil)
195- if ($isInstanceOf(aY, "Int"))
196- then aY
197- else throw(($getType(aY) + " couldn't be cast to Int"))
198- }
199-
200-let aZ = {
201- let aY = invoke(aV, "getOutFeeREADONLY", [toString(this)], nil)
202- if ($isInstanceOf(aY, "Int"))
203- then aY
204- else throw(($getType(aY) + " couldn't be cast to Int"))
205- }
206-
207-func ba () = valueOrElse(getBoolean(aV, aC()), false)
208-
209-
210-func bb () = fromBase58String(aO(aV, au()))
211-
212-
213-func bc () = {
214- let bd = aO(this, ae())
215- let be = aO(this, af())
216- let az = aR(aV, aA(be))
217- let ay = aR(aV, aA(bd))
218- split(aO(aV, ax(toString(ay), toString(az))), j)
177+func aO (aP) = {
178+ let aQ = addressFromString(aP)
179+ if ($isInstanceOf(aQ, "Address"))
180+ then {
181+ let aR = aQ
182+ aR
183+ }
184+ else this
219185 }
220186
221187
222-func bf (bg) = if ((bg == i))
223- then unit
224- else fromBase58String(bg)
225-
226-
227-func bh (bg) = if ((bg == unit))
228- then i
229- else toBase58String(value(bg))
230-
231-
232-func bi (bj) = $Tuple7(addressFromStringValue(bj[o]), parseIntValue(bj[p]), fromBase58String(bj[q]), bf(bj[r]), bf(bj[s]), parseIntValue(bj[t]), parseIntValue(bj[u]))
233-
234-
235-let bk = bi(bc())
236-
237-let bl = bk
238-
239-let bm = bl._1
240-
241-let bn = bl._2
242-
243-let bo = bl._3
244-
245-let bp = bl._4
246-
247-let bq = bl._5
248-
249-let br = bl._6
250-
251-let bs = bl._7
252-
253-func bt () = split(aO(aV, at()), j)
254-
255-
256-let bu = valueOrErrorMessage(addressFromString(bt()[B]), "incorrect staking address")
257-
258-let bv = valueOrErrorMessage(addressFromString(bt()[C]), "incorrect staking address")
259-
260-func bw (bx,by,bz,bA,bB,bC,bD,bE,bF,bG) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bx), toString(by), toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE), toString(bF), toString(bG)], j)
261-
262-
263-func bH (bI,bJ,bK,bA,bD,bE) = makeString(["%d%d%d%d%d%d", toString(bI), toString(bJ), toString(bK), toString(bA), toString(bD), toString(bE)], j)
264-
265-
266-func bL (ap) = {
267- let bM = if ((ap == "WAVES"))
268- then wavesBalance(this).available
269- else assetBalance(this, fromBase58String(ap))
270- let bN = ((bM + ar(ap)) - as(ap))
271- max([0, bN])
188+func aS () = {
189+ let aT = {
190+ let aQ = aO(T())
191+ if ($isInstanceOf(aQ, "Address"))
192+ then {
193+ let aU = aQ
194+ aU
195+ }
196+ else this
197+ }
198+ let aQ = getString(aT, V())
199+ if ($isInstanceOf(aQ, "String"))
200+ then {
201+ let aV = aQ
202+ aO(aV)
203+ }
204+ else this
272205 }
273206
274207
275-func bO (bP,bQ) = fraction(bP, d, bQ)
208+func aW (aX,aY) = valueOrErrorMessage(getString(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " is not defined"], ""))
276209
277210
278-func bR (bP,bQ,L) = fraction(bP, d, bQ, L)
211+func aZ (aX,aY) = valueOrErrorMessage(getInteger(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " is not defined"], ""))
279212
280213
281-func bS (bT) = {
282- let bU = invoke(bT, "getRate", nil, nil)
283- if ((bU == bU))
214+func ba (bb) = throw(makeString(["lp.ride:", bb], " "))
215+
216+
217+func bc (bb) = makeString(["lp.ride:", bb], " ")
218+
219+
220+let bd = addressFromStringValue(aW(this, T()))
221+
222+let be = addressFromStringValue(aW(bd, aG))
223+
224+let bf = {
225+ let bg = invoke(bd, "getInFeeREADONLY", [toString(this)], nil)
226+ if ($isInstanceOf(bg, "Int"))
227+ then bg
228+ else throw(($getType(bg) + " couldn't be cast to Int"))
229+ }
230+
231+let bh = {
232+ let bg = invoke(bd, "getOutFeeREADONLY", [toString(this)], nil)
233+ if ($isInstanceOf(bg, "Int"))
234+ then bg
235+ else throw(($getType(bg) + " couldn't be cast to Int"))
236+ }
237+
238+func bi () = valueOrElse(getBoolean(bd, aC()), false)
239+
240+
241+func bj () = fromBase58String(aW(bd, au()))
242+
243+
244+func bk () = {
245+ let bl = aW(this, ae())
246+ let bm = aW(this, af())
247+ let az = aZ(bd, aA(bm))
248+ let ay = aZ(bd, aA(bl))
249+ split(aW(bd, ax(toString(ay), toString(az))), j)
250+ }
251+
252+
253+func bn (bo) = if ((bo == i))
254+ then unit
255+ else fromBase58String(bo)
256+
257+
258+func bp (bo) = if ((bo == unit))
259+ then i
260+ else toBase58String(value(bo))
261+
262+
263+func bq (br) = $Tuple7(addressFromStringValue(br[o]), parseIntValue(br[p]), fromBase58String(br[q]), bn(br[r]), bn(br[s]), parseIntValue(br[t]), parseIntValue(br[u]))
264+
265+
266+let bs = bq(bk())
267+
268+let bt = bs
269+
270+let bu = bt._1
271+
272+let bv = bt._2
273+
274+let bw = bt._3
275+
276+let bx = bt._4
277+
278+let by = bt._5
279+
280+let bz = bt._6
281+
282+let bA = bt._7
283+
284+func bB () = split(aW(bd, at()), j)
285+
286+
287+let bC = valueOrErrorMessage(addressFromString(bB()[B]), "incorrect staking address")
288+
289+let bD = valueOrErrorMessage(addressFromString(bB()[C]), "incorrect staking address")
290+
291+func bE (bF,bG,bH,bI,bJ,bK,bL,bM,bN,bO) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bF), toString(bG), toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO)], j)
292+
293+
294+func bP (bQ,bR,bS,bI,bL,bM) = makeString(["%d%d%d%d%d%d", toString(bQ), toString(bR), toString(bS), toString(bI), toString(bL), toString(bM)], j)
295+
296+
297+func bT (ap) = {
298+ let bU = if ((ap == "WAVES"))
299+ then wavesBalance(this).available
300+ else assetBalance(this, fromBase58String(ap))
301+ let bV = ((bU + ar(ap)) - as(ap))
302+ max([0, bV])
303+ }
304+
305+
306+func bW (bX,bY) = fraction(bX, d, bY)
307+
308+
309+func bZ (bX,bY,L) = fraction(bX, d, bY, L)
310+
311+
312+func ca (cb) = {
313+ let cc = invoke(cb, "getRate", nil, nil)
314+ if ((cc == cc))
284315 then {
285- let bV = bU
286- if ($isInstanceOf(bV, "Int"))
316+ let aQ = cc
317+ if ($isInstanceOf(aQ, "Int"))
287318 then {
288- let bW = bV
289- bW
319+ let cd = aQ
320+ cd
290321 }
291- else aS("proxy.getRate() unexpected value")
322+ else ba("proxy.getRate() unexpected value")
292323 }
293324 else throw("Strict value is not equal to itself.")
294325 }
295326
296327
297-func bX (ap,bY,bZ,bT) = {
298- let ca = ar(ap)
299- if ((ca == ca))
328+func ce (ap,cf,cg,cb) = {
329+ let ch = ar(ap)
330+ if ((ch == ch))
300331 then {
301- let cb = as(bZ)
302- if ((cb == cb))
332+ let ci = as(cg)
333+ if ((ci == ci))
303334 then {
304- let cc = bf(ap)
305- if ((bY > 0))
335+ let cj = bn(ap)
336+ if ((cf > 0))
306337 then {
307- let cd = invoke(bT, "deposit", nil, [AttachedPayment(cc, bY)])
308- if ((cd == cd))
338+ let ck = invoke(cb, "deposit", nil, [AttachedPayment(cj, cf)])
339+ if ((ck == ck))
309340 then {
310- let bV = cd
311- if ($isInstanceOf(bV, "Int"))
341+ let aQ = ck
342+ if ($isInstanceOf(aQ, "Int"))
312343 then {
313- let ce = bV
314- let cf = (ca + bY)
315- let cg = (cb + ce)
316-[IntegerEntry(ao(ap), cf), IntegerEntry(aq(bZ), cg)]
344+ let cl = aQ
345+ let cm = (ch + cf)
346+ let cn = (ci + cl)
347+[IntegerEntry(ao(ap), cm), IntegerEntry(aq(cg), cn)]
317348 }
318349 else nil
319350 }
327358 }
328359
329360
330-func ch (ap,bY,bZ,bT,ci,cj) = {
331- let ca = ar(ap)
332- if ((ca == ca))
361+func co (ap,cf,cg,cb,cp,cq) = {
362+ let ch = ar(ap)
363+ if ((ch == ch))
333364 then {
334- let cb = as(bZ)
335- if ((cb == cb))
365+ let ci = as(cg)
366+ if ((ci == ci))
336367 then {
337- let ck = bS(bT)
338- if ((ck == ck))
368+ let cr = ca(cb)
369+ if ((cr == cr))
339370 then {
340- let cl = fraction(ci, ca, cb)
341- let cm = bf(bZ)
342- let cn = fraction(ci, bY, cl)
343- let co = fraction(ci, bY, ck)
344- let cp = max([0, (cn - co)])
345- if ((co > 0))
371+ let cs = fraction(cp, ch, ci)
372+ let ct = bn(cg)
373+ let cu = fraction(cp, cf, cs)
374+ let cv = fraction(cp, cf, cr)
375+ let cw = max([0, (cu - cv)])
376+ if ((cv > 0))
346377 then {
347- let cq = invoke(bT, "withdraw", nil, [AttachedPayment(cm, co)])
348- if ((cq == cq))
378+ let cx = invoke(cb, "withdraw", nil, [AttachedPayment(ct, cv)])
379+ if ((cx == cx))
349380 then {
350- let bV = cq
351- if ($isInstanceOf(bV, "Int"))
381+ let aQ = cx
382+ if ($isInstanceOf(aQ, "Int"))
352383 then {
353- let cr = bV
354- let cf = (ca - cr)
355- let cg = ((cb - co) - cp)
356-[IntegerEntry(ao(ap), cf), IntegerEntry(aq(bZ), cg), ScriptTransfer(cj, cp, bf(bZ))]
384+ let cy = aQ
385+ let cm = (ch - cy)
386+ let cn = ((ci - cv) - cw)
387+[IntegerEntry(ao(ap), cm), IntegerEntry(aq(cg), cn), ScriptTransfer(cq, cw, bn(cg))]
357388 }
358389 else nil
359390 }
369400 }
370401
371402
372-func cs (ap) = {
373- let bV = invoke(aV, "getPoolLeaseConfigREADONLY", [toString(this), ap], nil)
374- if ($isInstanceOf(bV, "(Boolean, Int, Int, String, String, Int, String)"))
403+func cz (ap) = {
404+ let aQ = invoke(bd, "getPoolLeaseConfigREADONLY", [toString(this), ap], nil)
405+ if ($isInstanceOf(aQ, "(Boolean, Int, Int, String, String, Int, String)"))
375406 then {
376- let ct = bV
377- ct
407+ let aR = aQ
408+ aR
378409 }
379- else aS((("[" + ap) + "] getLeaseProxyConfig() error"))
410+ else ba((("[" + ap) + "] getLeaseProxyConfig() error"))
380411 }
381412
382413
383-func cu (cv,ap,bZ,cw,bT,ci,cj) = {
384- let ca = ar(ap)
385- if ((ca == ca))
414+func cA (cB,ap,cg,cC,cb,cp,cq) = {
415+ let ch = ar(ap)
416+ if ((ch == ch))
386417 then {
387- let cb = as(bZ)
388- if ((cb == cb))
418+ let ci = as(cg)
419+ if ((ci == ci))
389420 then {
390- let cx = max([0, (bL(ap) - cw)])
391- let cy = fraction(cv, cx, 100)
392- let cz = (ca - cy)
393- if ((cz == 0))
421+ let cD = max([0, (bT(ap) - cC)])
422+ let cE = fraction(cB, cD, 100)
423+ let cF = (ch - cE)
424+ if ((cF == 0))
394425 then nil
395- else if ((0 > cz))
426+ else if ((0 > cF))
396427 then {
397- let cA = -(cz)
398- bX(ap, cA, bZ, bT)
428+ let cG = -(cF)
429+ ce(ap, cG, cg, cb)
399430 }
400431 else {
401- let cB = cz
402- ch(ap, cB, bZ, bT, ci, cj)
432+ let cH = cF
433+ co(ap, cH, cg, cb, cp, cq)
403434 }
404435 }
405436 else throw("Strict value is not equal to itself.")
408439 }
409440
410441
411-func cC (ap) = {
412- let cD = cs(ap)
413- let cE = cD._1
414- let cF = cD._2
415- let cw = cD._3
416- let cG = cD._4
417- let cH = cD._5
418- let ci = cD._6
419- let cI = cD._7
420- if (cE)
421- then cu(cF, ap, cH, cw, addressFromStringValue(cG), ci, addressFromStringValue(cI))
442+func cI (ap) = {
443+ let cJ = cz(ap)
444+ let cK = cJ._1
445+ let cL = cJ._2
446+ let cC = cJ._3
447+ let cM = cJ._4
448+ let cN = cJ._5
449+ let cp = cJ._6
450+ let cO = cJ._7
451+ if (cK)
452+ then cA(cL, ap, cN, cC, addressFromStringValue(cM), cp, addressFromStringValue(cO))
422453 else nil
423454 }
424455
425456
426-func cJ (ap,cK) = {
427- let cL = cs(ap)
428- let cE = cL._1
429- let cF = cL._2
430- let cw = cL._3
431- let cG = cL._4
432- let cH = cL._5
433- let ci = cL._6
434- let cI = cL._7
435- if (cE)
457+func cP (ap,cQ) = {
458+ let cR = cz(ap)
459+ let cK = cR._1
460+ let cL = cR._2
461+ let cC = cR._3
462+ let cM = cR._4
463+ let cN = cR._5
464+ let cp = cR._6
465+ let cO = cR._7
466+ if (cK)
436467 then {
437- let cM = max([0, ((bL(ap) - cK) - cw)])
438- if ((cM == cM))
468+ let cS = max([0, ((bT(ap) - cQ) - cC)])
469+ if ((cS == cS))
439470 then {
440- let cf = fraction(cF, cM, 100)
441- if ((cf == cf))
471+ let cm = fraction(cL, cS, 100)
472+ if ((cm == cm))
442473 then {
443- let cN = (ar(ap) - cf)
444- if ((cN == cN))
445- then if ((0 > cN))
446- then bX(ap, -(cN), cH, addressFromStringValue(cG))
447- else ch(ap, cN, cH, addressFromStringValue(cG), ci, addressFromStringValue(cI))
474+ let cT = (ar(ap) - cm)
475+ if ((cT == cT))
476+ then if ((0 > cT))
477+ then ce(ap, -(cT), cN, addressFromStringValue(cM))
478+ else co(ap, cT, cN, addressFromStringValue(cM), cp, addressFromStringValue(cO))
448479 else throw("Strict value is not equal to itself.")
449480 }
450481 else throw("Strict value is not equal to itself.")
455486 }
456487
457488
458-func cO (cP,cQ) = {
459- let cR = cJ(aO(this, ae()), cP)
460- let cS = cJ(aO(this, af()), cQ)
461- (cR ++ cS)
489+func cU (cV,cW) = {
490+ let cX = cP(aW(this, ae()), cV)
491+ let cY = cP(aW(this, af()), cW)
492+ (cX ++ cY)
462493 }
463494
464495
465-func cT (cU,cV,cW,cX) = {
466- let cY = D(cW, cU)
467- let cZ = D(cX, cV)
468- bO(cZ, cY)
496+func cZ (da,db,dc,dd) = {
497+ let de = D(dc, da)
498+ let df = D(dd, db)
499+ bW(df, de)
469500 }
470501
471502
472-func da (cW,cX,db) = {
473- let dc = bc()
474- let dd = parseIntValue(dc[t])
475- let de = parseIntValue(dc[u])
476- let df = cT(dd, de, cW, cX)
477- let bQ = D(cW, dd)
478- let bP = D(cX, de)
479- let dg = D(db, b)
480- let dh = bO(bQ, dg)
481- let di = bO(bP, dg)
482-[df, dh, di]
503+func dg (dc,dd,dh) = {
504+ let di = bk()
505+ let dj = parseIntValue(di[t])
506+ let dk = parseIntValue(di[u])
507+ let dl = cZ(dj, dk, dc, dd)
508+ let bY = D(dc, dj)
509+ let bX = D(dd, dk)
510+ let dm = D(dh, b)
511+ let dn = bW(bY, dm)
512+ let do = bW(bX, dm)
513+[dl, dn, do]
483514 }
484515
485516
486-func dj (cW,cX,db) = {
487- let dk = da(cW, cX, db)
488-[H(dk[0], b), H(dk[1], b), H(dk[2], b)]
517+func dp (dc,dd,dh) = {
518+ let dq = dg(dc, dd, dh)
519+[H(dq[0], b), H(dq[1], b), H(dq[2], b)]
489520 }
490521
491522
492-func dl (dm,dn,do,ab) = {
493- let dc = bc()
494- let dp = dc[q]
495- let dq = dc[r]
496- let dr = dc[s]
497- let cU = parseIntValue(dc[t])
498- let cV = parseIntValue(dc[u])
499- let ds = dc[p]
500- let dt = valueOrErrorMessage(assetInfo(fromBase58String(dp)), (("Asset " + dp) + " doesn't exist")).quantity
501- if ((dp != dn))
523+func dr (ds,dt,du,ab) = {
524+ let di = bk()
525+ let dv = di[q]
526+ let dw = di[r]
527+ let dx = di[s]
528+ let da = parseIntValue(di[t])
529+ let db = parseIntValue(di[u])
530+ let dy = di[p]
531+ let dz = valueOrErrorMessage(assetInfo(fromBase58String(dv)), (("Asset " + dv) + " doesn't exist")).quantity
532+ if ((dv != dt))
502533 then throw("Invalid asset passed.")
503534 else {
504- let du = bL(dq)
505- let dv = D(du, cU)
506- let dw = bL(dr)
507- let dx = D(dw, cV)
508- let dy = bO(dx, dv)
509- let dz = H(dy, b)
510- let dA = D(do, b)
511- let dB = D(dt, b)
512- let dC = fraction(dv, dA, dB)
513- let dD = fraction(dx, dA, dB)
514- let dE = K(dC, cU, FLOOR)
515- let dF = K(dD, cV, FLOOR)
516- let dG = if ((dm == ""))
535+ let dA = bT(dw)
536+ let dB = D(dA, da)
537+ let dC = bT(dx)
538+ let dD = D(dC, db)
539+ let dE = bW(dD, dB)
540+ let dF = H(dE, b)
541+ let dG = D(du, b)
542+ let dH = D(dz, b)
543+ let dI = fraction(dB, dG, dH)
544+ let dJ = fraction(dD, dG, dH)
545+ let dK = K(dI, da, FLOOR)
546+ let dL = K(dJ, db, FLOOR)
547+ let dM = if ((ds == ""))
517548 then nil
518- else [ScriptTransfer(ab, dE, if ((dq == "WAVES"))
549+ else [ScriptTransfer(ab, dK, if ((dw == "WAVES"))
519550 then unit
520- else fromBase58String(dq)), ScriptTransfer(ab, dF, if ((dr == "WAVES"))
551+ else fromBase58String(dw)), ScriptTransfer(ab, dL, if ((dx == "WAVES"))
521552 then unit
522- else fromBase58String(dr)), StringEntry(ad(toString(ab), dm), bH(dE, dF, do, dz, height, lastBlock.timestamp)), IntegerEntry(W(), dz), IntegerEntry(X(height, lastBlock.timestamp), dz)]
523- $Tuple10(dE, dF, dq, dr, du, dw, dt, dy, ds, dG)
553+ else fromBase58String(dx)), StringEntry(ad(toString(ab), ds), bP(dK, dL, du, dF, height, lastBlock.timestamp)), IntegerEntry(W(), dF), IntegerEntry(X(height, lastBlock.timestamp), dF)]
554+ $Tuple10(dK, dL, dw, dx, dA, dC, dz, dE, dy, dM)
524555 }
525556 }
526557
527558
528-func dH (dm,dI,dJ,dK,dL,dM,ab,dN,dO) = {
529- let dc = bc()
530- let dp = fromBase58String(dc[q])
531- let dP = dc[r]
532- let dQ = dc[s]
533- let dR = dc[v]
534- let dS = dc[w]
535- let dd = parseIntValue(dc[t])
536- let de = parseIntValue(dc[u])
537- let ds = dc[p]
538- let dt = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
539- let dT = toBase58String(valueOrElse(dK, fromBase58String("WAVES")))
540- let dU = toBase58String(valueOrElse(dM, fromBase58String("WAVES")))
541- if (if ((dP != dT))
559+func dN (ds,dO,dP,dQ,dR,dS,ab,dT,dU) = {
560+ let di = bk()
561+ let dv = fromBase58String(di[q])
562+ let dV = di[r]
563+ let dW = di[s]
564+ let dX = di[v]
565+ let dY = di[w]
566+ let dj = parseIntValue(di[t])
567+ let dk = parseIntValue(di[u])
568+ let dy = di[p]
569+ let dz = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
570+ let dZ = toBase58String(valueOrElse(dQ, fromBase58String("WAVES")))
571+ let ea = toBase58String(valueOrElse(dS, fromBase58String("WAVES")))
572+ if (if ((dV != dZ))
542573 then true
543- else (dQ != dU))
574+ else (dW != ea))
544575 then throw("Invalid amt or price asset passed.")
545576 else {
546- let du = if (dN)
547- then bL(dP)
548- else (bL(dP) - dJ)
549- let dw = if (dN)
550- then bL(dQ)
551- else (bL(dQ) - dL)
552- let dV = D(dJ, dd)
553- let dW = D(dL, de)
554- let dX = bO(dW, dV)
555- let dv = D(du, dd)
556- let dx = D(dw, de)
557- let dY = if ((dt == 0))
577+ let dA = if (dT)
578+ then bT(dV)
579+ else (bT(dV) - dP)
580+ let dC = if (dT)
581+ then bT(dW)
582+ else (bT(dW) - dR)
583+ let eb = D(dP, dj)
584+ let ec = D(dR, dk)
585+ let ed = bW(ec, eb)
586+ let dB = D(dA, dj)
587+ let dD = D(dC, dk)
588+ let ee = if ((dz == 0))
558589 then {
559- let dy = e
560- let dZ = e
561- let dg = pow((dV * dW), 0, toBigInt(5), 1, 0, DOWN)
562- $Tuple5(H(dg, b), H(dV, dd), H(dW, de), bO((dx + dW), (dv + dV)), dZ)
590+ let dE = e
591+ let ef = e
592+ let dm = pow((eb * ec), 0, toBigInt(5), 1, 0, DOWN)
593+ $Tuple5(H(dm, b), H(eb, dj), H(ec, dk), bW((dD + ec), (dB + eb)), ef)
563594 }
564595 else {
565- let dy = bO(dx, dv)
566- let dZ = fraction(R((dy - dX)), d, dy)
567- let ea = D(dI, b)
568- if (if ((dy != e))
569- then (dZ > ea)
596+ let dE = bW(dD, dB)
597+ let ef = fraction(R((dE - ed)), d, dE)
598+ let eg = D(dO, b)
599+ if (if ((dE != e))
600+ then (ef > eg)
570601 else false)
571- then throw(((("Price slippage " + toString(dZ)) + " exceeded the passed limit of ") + toString(ea)))
602+ then throw(((("Price slippage " + toString(ef)) + " exceeded the passed limit of ") + toString(eg)))
572603 else {
573- let dB = D(dt, b)
574- let eb = fraction(dV, bR(dx, dv, CEILING), d, CEILING)
575- let ec = fraction(dW, d, bR(dx, dv, FLOOR), CEILING)
576- let ed = if ((eb > dW))
577- then $Tuple2(ec, dW)
578- else $Tuple2(dV, eb)
579- let ee = ed._1
580- let ef = ed._2
581- let dg = fraction(dB, ef, dx, FLOOR)
582- $Tuple5(K(dg, b, FLOOR), K(ee, dd, CEILING), K(ef, de, CEILING), dy, dZ)
604+ let dH = D(dz, b)
605+ let eh = fraction(eb, bZ(dD, dB, CEILING), d, CEILING)
606+ let ei = fraction(ec, d, bZ(dD, dB, FLOOR), CEILING)
607+ let ej = if ((eh > ec))
608+ then $Tuple2(ei, ec)
609+ else $Tuple2(eb, eh)
610+ let ek = ej._1
611+ let el = ej._2
612+ let dm = fraction(dH, el, dD, FLOOR)
613+ $Tuple5(K(dm, b, FLOOR), K(ek, dj, CEILING), K(el, dk, CEILING), dE, ef)
583614 }
584615 }
585- let eg = dY._1
586- let eh = dY._2
587- let ei = dY._3
588- let dz = H(dY._4, b)
589- let ej = H(dY._5, b)
590- if ((0 >= eg))
616+ let em = ee._1
617+ let en = ee._2
618+ let eo = ee._3
619+ let dF = H(ee._4, b)
620+ let ep = H(ee._5, b)
621+ if ((0 >= em))
591622 then throw("Invalid calculations. LP calculated is less than zero.")
592623 else {
593- let ek = if (!(dO))
624+ let eq = if (!(dU))
594625 then 0
595- else eg
596- let el = (dJ - eh)
597- let em = (dL - ei)
598- let en = [IntegerEntry(W(), dz), IntegerEntry(X(height, lastBlock.timestamp), dz), StringEntry(aa(ab, dm), bw(eh, ei, ek, dz, dI, ej, height, lastBlock.timestamp, el, em))]
599- $Tuple13(eg, ek, dz, du, dw, dt, dp, ds, en, el, em, dK, dM)
626+ else em
627+ let er = (dP - en)
628+ let es = (dR - eo)
629+ let et = [IntegerEntry(W(), dF), IntegerEntry(X(height, lastBlock.timestamp), dF), StringEntry(aa(ab, ds), bE(en, eo, eq, dF, dO, ep, height, lastBlock.timestamp, er, es))]
630+ $Tuple13(em, eq, dF, dA, dC, dz, dv, dy, et, er, es, dQ, dS)
600631 }
601632 }
602633 }
603634
604635
605-func eo (ep,eq,dt) = {
606- let er = G(ep, toBigInt(br))
607- let es = G(eq, toBigInt(bs))
608- let et = fraction(pow((er * es), 0, toBigInt(5), 1, 18, DOWN), g, dt)
609- if ((dt == f))
636+func eu (ev,ew,dz) = {
637+ let ex = G(ev, toBigInt(bz))
638+ let ey = G(ew, toBigInt(bA))
639+ let ez = fraction(pow((ex * ey), 0, toBigInt(5), 1, 18, DOWN), g, dz)
640+ if ((dz == f))
610641 then f
611- else et
642+ else ez
612643 }
613644
614645
615-func eu (ev,ew,ex) = {
616- let ey = (toBigInt(bL(bh(bp))) - ev)
617- let ez = (toBigInt(bL(bh(bq))) - ew)
618- let eA = (toBigInt(value(assetInfo(bo)).quantity) - ex)
619- let eB = eo(ey, ez, eA)
620- eB
646+func eA (eB,eC,eD) = {
647+ let eE = (toBigInt(bT(bp(bx))) - eB)
648+ let eF = (toBigInt(bT(bp(by))) - eC)
649+ let eG = (toBigInt(value(assetInfo(bw)).quantity) - eD)
650+ let eH = eu(eE, eF, eG)
651+ eH
621652 }
622653
623654
624-func eC (eD,eE,ex) = {
625- let ey = (bL(bh(bp)) + eD)
626- let ez = (bL(bh(bq)) + eE)
627- let eA = (value(assetInfo(bo)).quantity + ex)
628- let et = eo(toBigInt(ey), toBigInt(ez), toBigInt(eA))
629- let eF = [IntegerEntry(ak, height), StringEntry(aj, toString(et))]
630- $Tuple2(eF, et)
655+func eI (eJ,eK,eD) = {
656+ let eE = (bT(bp(bx)) + eJ)
657+ let eF = (bT(bp(by)) + eK)
658+ let eG = (value(assetInfo(bw)).quantity + eD)
659+ let ez = eu(toBigInt(eE), toBigInt(eF), toBigInt(eG))
660+ let eL = [IntegerEntry(ak, height), StringEntry(aj, toString(ez))]
661+ $Tuple2(eL, ez)
631662 }
632663
633664
634-func eG () = valueOrElse(getBoolean(aV, aH(toString(this))), false)
665+func eM () = valueOrElse(getBoolean(bd, aH(toString(this))), false)
635666
636667
637-func eH (eI,et) = if ((et >= eI))
668+func eN (eO,ez) = if ((ez >= eO))
638669 then true
639- else aS(makeString(["updated KLp lower than current KLp", toString(eI), toString(et)], " "))
670+ else ba(makeString(["updated KLp lower than current KLp", toString(eO), toString(ez)], " "))
640671
641672
642-func eJ (eK) = {
643- let ey = bL(bh(bp))
644- let ez = bL(bh(bq))
645- let eL = eK.amount
646- let eM = fraction(eK.amount, eK.price, b, FLOOR)
647- let eN = if ((eK.orderType == Buy))
648- then $Tuple2(eL, -(eM))
649- else $Tuple2(-(eL), eM)
650- let eD = eN._1
651- let eE = eN._2
652- if (if (if (ba())
673+func eP (eQ) = {
674+ let eE = bT(bp(bx))
675+ let eF = bT(bp(by))
676+ let eR = eQ.amount
677+ let eS = fraction(eQ.amount, eQ.price, b, FLOOR)
678+ let eT = if ((eQ.orderType == Buy))
679+ then $Tuple2(eR, -(eS))
680+ else $Tuple2(-(eR), eS)
681+ let eJ = eT._1
682+ let eK = eT._2
683+ if (if (if (bi())
653684 then true
654- else (bn == m))
685+ else (bv == m))
655686 then true
656- else (bn == n))
687+ else (bv == n))
657688 then throw("Exchange operations disabled")
658- else if (if ((eK.assetPair.amountAsset != bp))
689+ else if (if ((eQ.assetPair.amountAsset != bx))
659690 then true
660- else (eK.assetPair.priceAsset != bq))
691+ else (eQ.assetPair.priceAsset != by))
661692 then throw("Wrong order assets.")
662693 else {
663- let eO = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
664- let eP = eC(eD, eE, 0)
665- let eQ = eP._1
666- let eR = eP._2
667- let eS = (eR >= eO)
668- let eT = makeString(["kLp=", toString(eO), " kLpNew=", toString(eR), " amountAssetBalance=", toString(ey), " priceAssetBalance=", toString(ez), " amountAssetBalanceDelta=", toString(eD), " priceAssetBalanceDelta=", toString(eE), " height=", toString(height)], "")
669- $Tuple2(eS, eT)
694+ let eU = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), bc("invalid kLp"))
695+ let eV = eI(eJ, eK, 0)
696+ let eW = eV._1
697+ let eX = eV._2
698+ let eY = (eX >= eU)
699+ let eZ = makeString(["kLp=", toString(eU), " kLpNew=", toString(eX), " amountAssetBalance=", toString(eE), " priceAssetBalance=", toString(eF), " amountAssetBalanceDelta=", toString(eJ), " priceAssetBalanceDelta=", toString(eK), " height=", toString(height)], "")
700+ $Tuple2(eY, eZ)
670701 }
671702 }
672703
673704
674-func eU (eV) = if ((size(eV.payments) != 1))
705+func fa (fb) = if ((size(fb.payments) != 1))
675706 then throw("exactly 1 payment is expected")
676707 else {
677- let eW = value(eV.payments[0])
678- let dn = value(eW.assetId)
679- let eX = eW.amount
680- let dY = dl(toBase58String(eV.transactionId), toBase58String(dn), eX, eV.caller)
681- let dE = dY._1
682- let dF = dY._2
683- let ds = parseIntValue(dY._9)
684- let dG = dY._10
685- if (if (ba())
708+ let fc = value(fb.payments[0])
709+ let dt = value(fc.assetId)
710+ let fd = fc.amount
711+ let ee = dr(toBase58String(fb.transactionId), toBase58String(dt), fd, fb.caller)
712+ let dK = ee._1
713+ let dL = ee._2
714+ let dy = parseIntValue(ee._9)
715+ let dM = ee._10
716+ if (if (bi())
686717 then true
687- else (ds == n))
688- then throw(("Get operation is blocked by admin. Status = " + toString(ds)))
689- else $Tuple5(dE, dF, eX, dn, dG)
718+ else (dy == n))
719+ then throw(("Get operation is blocked by admin. Status = " + toString(dy)))
720+ else $Tuple5(dK, dL, fd, dt, dM)
690721 }
691722
692723
693-func eY (eV,dI,dO) = if ((size(eV.payments) != 2))
724+func fe (fb,dO,dU) = if ((size(fb.payments) != 2))
694725 then throw("exactly 2 payments are expected")
695726 else {
696- let eZ = value(eV.payments[0])
697- let fa = value(eV.payments[1])
698- let fb = dH(toBase58String(eV.transactionId), dI, eZ.amount, eZ.assetId, fa.amount, fa.assetId, toString(eV.caller), false, dO)
699- let ds = parseIntValue(fb._8)
700- if (if (if (ba())
727+ let ff = value(fb.payments[0])
728+ let fg = value(fb.payments[1])
729+ let fh = dN(toBase58String(fb.transactionId), dO, ff.amount, ff.assetId, fg.amount, fg.assetId, toString(fb.caller), false, dU)
730+ let dy = parseIntValue(fh._8)
731+ if (if (if (bi())
701732 then true
702- else (ds == l))
733+ else (dy == l))
703734 then true
704- else (ds == n))
705- then throw(("Put operation is blocked by admin. Status = " + toString(ds)))
706- else fb
735+ else (dy == n))
736+ then throw(("Put operation is blocked by admin. Status = " + toString(dy)))
737+ else fh
707738 }
708739
709740
710-func fc (bY) = {
711- let fd = invoke(aV, "emit", [bY], nil)
712- if ((fd == fd))
741+func fi (cf) = {
742+ let fj = invoke(bd, "emit", [cf], nil)
743+ if ((fj == fj))
713744 then {
714- let fe = {
715- let bV = fd
716- if ($isInstanceOf(bV, "Address"))
745+ let fk = {
746+ let aQ = fj
747+ if ($isInstanceOf(aQ, "Address"))
717748 then {
718- let ff = bV
719- invoke(ff, "emit", [bY], nil)
749+ let fl = aQ
750+ invoke(fl, "emit", [cf], nil)
720751 }
721752 else unit
722753 }
723- if ((fe == fe))
724- then bY
754+ if ((fk == fk))
755+ then cf
725756 else throw("Strict value is not equal to itself.")
726757 }
727758 else throw("Strict value is not equal to itself.")
728759 }
729760
730761
731-func fg (bY,ai) = {
732- let fh = if ((ai == 0))
762+func fm (cf,ai) = {
763+ let fn = if ((ai == 0))
733764 then 0
734- else fraction(bY, ai, b)
735- $Tuple2((bY - fh), fh)
765+ else fraction(cf, ai, b)
766+ $Tuple2((cf - fn), fn)
736767 }
737768
738769
739-func fi (fj,fk,ab,ac) = {
740- let fl = (ac == unit)
741- let fm = bL(bh(bp))
742- let fn = bL(bh(bq))
743- let fo = if ((fk == bp))
770+func fo (fp,fq,ab,ac) = {
771+ let fr = (ac == unit)
772+ let fs = bT(bp(bx))
773+ let ft = bT(bp(by))
774+ let fu = if ((fq == bx))
744775 then true
745- else if ((fk == bq))
776+ else if ((fq == by))
746777 then false
747- else aS("invalid asset")
748- let fp = if (fl)
749- then $Tuple2(fm, fn)
750- else if (fo)
751- then $Tuple2((fm - fj), fn)
752- else $Tuple2(fm, (fn - fj))
753- let fq = fp._1
754- let fr = fp._2
755- let fs = if (fo)
756- then $Tuple2(fj, 0)
757- else $Tuple2(0, fj)
758- let ft = fs._1
759- let fu = fs._2
760- let eL = fg(ft, aX)._1
761- let eM = fg(fu, aX)._1
762- let fv = fg(fj, aX)
778+ else ba("invalid asset")
779+ let fv = if (fr)
780+ then $Tuple2(fs, ft)
781+ else if (fu)
782+ then $Tuple2((fs - fp), ft)
783+ else $Tuple2(fs, (ft - fp))
763784 let fw = fv._1
764- let fh = fv._2
765- let fx = (fq + eL)
766- let fy = (fr + eM)
767- let fz = bO(D(fy, bs), D(fx, br))
768- let fA = H(fz, b)
769- let fB = if (fo)
770- then fq
771- else fr
772- let fC = toBigInt(fB)
773- let fD = toBigInt(valueOrErrorMessage(assetInfo(bo), (("asset " + toBase58String(bo)) + " doesn't exist")).quantity)
774- let fE = if ((fD > f))
785+ let fx = fv._2
786+ let fy = if (fu)
787+ then $Tuple2(fp, 0)
788+ else $Tuple2(0, fp)
789+ let fz = fy._1
790+ let fA = fy._2
791+ let eR = fm(fz, bf)._1
792+ let eS = fm(fA, bf)._1
793+ let fB = fm(fp, bf)
794+ let fC = fB._1
795+ let fn = fB._2
796+ let fD = (fw + eR)
797+ let fE = (fx + eS)
798+ let fF = bW(D(fE, bA), D(fD, bz))
799+ let fG = H(fF, b)
800+ let fH = if (fu)
801+ then fw
802+ else fx
803+ let fI = toBigInt(fH)
804+ let fJ = toBigInt(valueOrErrorMessage(assetInfo(bw), (("asset " + toBase58String(bw)) + " doesn't exist")).quantity)
805+ let fK = if ((fJ > f))
775806 then true
776- else aS("initial deposit requires all coins")
777- if ((fE == fE))
807+ else ba("initial deposit requires all coins")
808+ if ((fK == fK))
778809 then {
779- let fF = toBigInt(fw)
780- let fG = max([0, toInt(((fD * (sqrtBigInt((d + ((fF * d) / fC)), 18, 18, DOWN) - d)) / d))])
781- let en = if (fl)
810+ let fL = toBigInt(fC)
811+ let fM = max([0, toInt(((fJ * (sqrtBigInt((d + ((fL * d) / fI)), 18, 18, DOWN) - d)) / d))])
812+ let et = if (fr)
782813 then nil
783- else [IntegerEntry(W(), fA), IntegerEntry(X(height, lastBlock.timestamp), fA), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), bw(ft, fu, fG, fA, 0, 0, height, lastBlock.timestamp, 0, 0))]
784- let fH = bO(D(fr, bs), D(fq, br))
785- let fI = H(fH, b)
786- let fJ = {
787- let fK = if (fo)
788- then $Tuple2(ft, fq)
789- else $Tuple2(fu, fr)
790- let bY = fK._1
791- let fL = fK._2
792- let fM = toInt(fraction(fD, toBigInt((bY / 2)), toBigInt(fL)))
793- fraction((fG - fM), b, fM)
814+ else [IntegerEntry(W(), fG), IntegerEntry(X(height, lastBlock.timestamp), fG), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), bE(fz, fA, fM, fG, 0, 0, height, lastBlock.timestamp, 0, 0))]
815+ let fN = bW(D(fx, bA), D(fw, bz))
816+ let fO = H(fN, b)
817+ let fP = {
818+ let fQ = if (fu)
819+ then $Tuple2(fz, fw)
820+ else $Tuple2(fA, fx)
821+ let cf = fQ._1
822+ let fR = fQ._2
823+ let fS = toInt(fraction(fJ, toBigInt((cf / 2)), toBigInt(fR)))
824+ fraction((fM - fS), b, fS)
794825 }
795- $Tuple5(fG, en, fh, fJ, fo)
826+ $Tuple5(fM, et, fn, fP, fu)
796827 }
797828 else throw("Strict value is not equal to itself.")
798829 }
799830
800831
801-func fN (fO,fw,fk,ab,ac) = {
802- let fl = (ac == unit)
803- let dc = bc()
804- let dd = parseIntValue(dc[t])
805- let de = parseIntValue(dc[u])
806- let fP = [if ((fk == bo))
832+func fT (fU,fC,fq,ab,ac) = {
833+ let fr = (ac == unit)
834+ let di = bk()
835+ let dj = parseIntValue(di[t])
836+ let dk = parseIntValue(di[u])
837+ let fV = [if ((fq == bw))
807838 then true
808- else aS("invalid lp asset")]
809- if ((fP == fP))
839+ else ba("invalid lp asset")]
840+ if ((fV == fV))
810841 then {
811- let fQ = if ((fO == bp))
842+ let fW = if ((fU == bx))
812843 then true
813- else if ((fO == bq))
844+ else if ((fU == by))
814845 then false
815- else aS("invalid asset")
816- let fR = if (fQ)
817- then toBigInt(bL(bh(bp)))
818- else toBigInt(bL(bh(bq)))
819- let fS = if (fQ)
820- then dd
821- else de
822- let fT = bL(bh(bp))
823- let fU = bL(bh(bq))
824- let fV = if (fQ)
825- then fT
826- else fU
827- let fW = toBigInt(fV)
828- let fD = toBigInt(valueOrErrorMessage(assetInfo(bo), (("asset " + toBase58String(bo)) + " doesn't exist")).quantity)
829- let fX = toBigInt(fw)
830- let fY = max([0, toInt(((fR * (d - pow((d - ((fX * d) / fD)), 18, h, 0, 18, DOWN))) / d))])
831- let fZ = fg(fY, aZ)
832- let ga = fZ._1
833- let fh = fZ._2
834- let gb = if (fQ)
835- then $Tuple4(ga, 0, (fT - fY), fU)
836- else $Tuple4(0, ga, fT, (fU - fY))
837- let gc = gb._1
838- let gd = gb._2
839- let ge = gb._3
840- let gf = gb._4
841- let fz = bO(D(gf, bs), D(ge, br))
842- let fA = H(fz, b)
843- let en = if (fl)
846+ else ba("invalid asset")
847+ let fX = if (fW)
848+ then toBigInt(bT(bp(bx)))
849+ else toBigInt(bT(bp(by)))
850+ let fY = if (fW)
851+ then dj
852+ else dk
853+ let fZ = bT(bp(bx))
854+ let ga = bT(bp(by))
855+ let gb = if (fW)
856+ then fZ
857+ else ga
858+ let gc = toBigInt(gb)
859+ let fJ = toBigInt(valueOrErrorMessage(assetInfo(bw), (("asset " + toBase58String(bw)) + " doesn't exist")).quantity)
860+ let gd = toBigInt(fC)
861+ let ge = max([0, toInt(((fX * (d - pow((d - ((gd * d) / fJ)), 18, h, 0, 18, DOWN))) / d))])
862+ let gf = fm(ge, bh)
863+ let gg = gf._1
864+ let fn = gf._2
865+ let gh = if (fW)
866+ then $Tuple4(gg, 0, (fZ - ge), ga)
867+ else $Tuple4(0, gg, fZ, (ga - ge))
868+ let gi = gh._1
869+ let gj = gh._2
870+ let gk = gh._3
871+ let gl = gh._4
872+ let fF = bW(D(gl, bA), D(gk, bz))
873+ let fG = H(fF, b)
874+ let et = if (fr)
844875 then nil
845- else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bH(gc, gd, fw, fA, height, lastBlock.timestamp)), IntegerEntry(W(), fA), IntegerEntry(X(height, lastBlock.timestamp), fA)]
846- let fH = bO(D(fU, bs), D(fT, br))
847- let fI = H(fH, b)
848- let fJ = {
849- let gg = (toInt(fraction(fR, fX, fD)) * 2)
850- fraction((ga - gg), b, gg)
876+ else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bP(gi, gj, fC, fG, height, lastBlock.timestamp)), IntegerEntry(W(), fG), IntegerEntry(X(height, lastBlock.timestamp), fG)]
877+ let fN = bW(D(ga, bA), D(fZ, bz))
878+ let fO = H(fN, b)
879+ let fP = {
880+ let gm = (toInt(fraction(fX, gd, fJ)) * 2)
881+ fraction((gg - gm), b, gm)
851882 }
852- $Tuple5(ga, en, fh, fJ, fQ)
883+ $Tuple5(gg, et, fn, fP, fW)
853884 }
854885 else throw("Strict value is not equal to itself.")
855886 }
856887
857888
858-func gh () = {
859- let bV = getString(U())
860- if ($isInstanceOf(bV, "String"))
889+func gn () = {
890+ let go = aS()
891+ let aQ = getString(go, U())
892+ if ($isInstanceOf(aQ, "String"))
861893 then {
862- let gi = bV
863- fromBase58String(gi)
894+ let aV = aQ
895+ fromBase58String(aV)
864896 }
865- else if ($isInstanceOf(bV, "Unit"))
897+ else if ($isInstanceOf(aQ, "Unit"))
866898 then unit
867899 else throw("Match error")
868900 }
869901
870902
871-func gj () = {
872- let bV = getString(V())
873- if ($isInstanceOf(bV, "String"))
903+func gp (fb) = {
904+ let aQ = gn()
905+ if ($isInstanceOf(aQ, "ByteVector"))
874906 then {
875- let gi = bV
876- fromBase58String(gi)
907+ let gq = aQ
908+ (fb.callerPublicKey == gq)
877909 }
878- else if ($isInstanceOf(bV, "Unit"))
879- then unit
910+ else if ($isInstanceOf(aQ, "Unit"))
911+ then (fb.caller == this)
880912 else throw("Match error")
881913 }
882914
883915
884-func gk (eV) = {
885- let bV = gh()
886- if ($isInstanceOf(bV, "ByteVector"))
916+func gr (fb) = {
917+ let gs = throw("Permission denied")
918+ let aQ = gn()
919+ if ($isInstanceOf(aQ, "ByteVector"))
887920 then {
888- let gl = bV
889- (eV.callerPublicKey == gl)
921+ let gq = aQ
922+ if ((fb.callerPublicKey == gq))
923+ then true
924+ else gs
890925 }
891- else if ($isInstanceOf(bV, "Unit"))
892- then (eV.caller == this)
926+ else if ($isInstanceOf(aQ, "Unit"))
927+ then if ((fb.caller == this))
928+ then true
929+ else gs
893930 else throw("Match error")
894931 }
895932
896933
897-func gm (eV) = {
898- let gn = throw("Permission denied")
899- let bV = gh()
900- if ($isInstanceOf(bV, "ByteVector"))
901- then {
902- let gl = bV
903- if ((eV.callerPublicKey == gl))
904- then true
905- else gn
906- }
907- else if ($isInstanceOf(bV, "Unit"))
908- then if ((eV.caller == this))
909- then true
910- else gn
911- else throw("Match error")
912- }
913-
914-
915-@Callable(eV)
916-func rebalance () = (cC(aO(this, ae())) ++ cC(aO(this, af())))
934+@Callable(fb)
935+func rebalance () = (cI(aW(this, ae())) ++ cI(aW(this, af())))
917936
918937
919938
920-@Callable(eV)
921-func calculateAmountOutForSwapREADONLY (go,gp,gq) = {
922- let gr = if ((gp == false))
939+@Callable(fb)
940+func calculateAmountOutForSwapREADONLY (gt,gu,gv) = {
941+ let gw = if ((gu == false))
923942 then {
924- let gs = aO(this, af())
925- let gt = aO(this, ae())
926- $Tuple2(gs, gt)
943+ let gx = aW(this, af())
944+ let gy = aW(this, ae())
945+ $Tuple2(gx, gy)
927946 }
928947 else {
929- let gs = aO(this, ae())
930- let gt = aO(this, af())
931- $Tuple2(gs, gt)
948+ let gx = aW(this, ae())
949+ let gy = aW(this, af())
950+ $Tuple2(gx, gy)
932951 }
933- let gs = gr._1
934- let gt = gr._2
935- let gu = bL(gt)
936- let gv = bL(gs)
937- let gw = fraction(gv, go, (gu + go))
938- let gx = (toBigInt(gu) * toBigInt(gv))
939- let gy = (((toBigInt(bL(gt)) + toBigInt(go)) + toBigInt(gq)) * (toBigInt(bL(gs)) - toBigInt(gw)))
940- let gz = if ((gy >= gx))
952+ let gx = gw._1
953+ let gy = gw._2
954+ let gz = bT(gy)
955+ let gA = bT(gx)
956+ let gB = fraction(gA, gt, (gz + gt))
957+ let gC = (toBigInt(gz) * toBigInt(gA))
958+ let gD = (((toBigInt(bT(gy)) + toBigInt(gt)) + toBigInt(gv)) * (toBigInt(bT(gx)) - toBigInt(gB)))
959+ let gE = if ((gD >= gC))
941960 then true
942961 else throw("new K is fewer error")
943- if ((gz == gz))
944- then $Tuple2(nil, gw)
962+ if ((gE == gE))
963+ then $Tuple2(nil, gB)
945964 else throw("Strict value is not equal to itself.")
946965 }
947966
948967
949968
950-@Callable(eV)
951-func calculateAmountOutForSwapAndSendTokens (go,gp,gA,gB,gq) = {
952- let gC = {
953- let aY = invoke(aV, "getSwapContractREADONLY", nil, nil)
954- if ($isInstanceOf(aY, "String"))
955- then aY
956- else throw(($getType(aY) + " couldn't be cast to String"))
969+@Callable(fb)
970+func calculateAmountOutForSwapAndSendTokens (gt,gu,gF,gG,gv) = {
971+ let gH = {
972+ let bg = invoke(bd, "getSwapContractREADONLY", nil, nil)
973+ if ($isInstanceOf(bg, "String"))
974+ then bg
975+ else throw(($getType(bg) + " couldn't be cast to String"))
957976 }
958- let fP = [if ((value(eV.payments[0]).amount >= go))
977+ let fV = [if ((value(fb.payments[0]).amount >= gt))
959978 then true
960- else aS("Wrong amount"), if ((eV.caller == addressFromStringValue(gC)))
979+ else ba("Wrong amount"), if ((fb.caller == addressFromStringValue(gH)))
961980 then true
962- else aS("Permission denied")]
963- if ((fP == fP))
981+ else ba("Permission denied")]
982+ if ((fV == fV))
964983 then {
965- let eW = value(eV.payments[0])
966- let gt = bh(eW.assetId)
967- let gs = if ((gp == false))
968- then aO(this, af())
969- else aO(this, ae())
970- let gu = (bL(gt) - value(eV.payments[0]).amount)
971- let gv = bL(gs)
972- let gw = fraction(gv, go, (gu + go))
973- let gx = (toBigInt(gu) * toBigInt(gv))
974- let gy = ((toBigInt(bL(gt)) + toBigInt(gq)) * (toBigInt(bL(gs)) - toBigInt(gw)))
975- let gz = if ((gy >= gx))
984+ let fc = value(fb.payments[0])
985+ let gy = bp(fc.assetId)
986+ let gx = if ((gu == false))
987+ then aW(this, af())
988+ else aW(this, ae())
989+ let gz = (bT(gy) - value(fb.payments[0]).amount)
990+ let gA = bT(gx)
991+ let gB = fraction(gA, gt, (gz + gt))
992+ let gC = (toBigInt(gz) * toBigInt(gA))
993+ let gD = ((toBigInt(bT(gy)) + toBigInt(gv)) * (toBigInt(bT(gx)) - toBigInt(gB)))
994+ let gE = if ((gD >= gC))
976995 then true
977996 else throw("new K is fewer error")
978- if ((gz == gz))
997+ if ((gE == gE))
979998 then {
980- let gD = if ((gw >= gA))
999+ let gI = if ((gB >= gF))
9811000 then true
9821001 else throw("Exchange result is fewer coins than expected")
983- if ((gD == gD))
1002+ if ((gI == gI))
9841003 then {
985- let gE = cC(gt)
986- if ((gE == gE))
1004+ let gJ = cI(gy)
1005+ if ((gJ == gJ))
9871006 then {
988- let gF = cJ(gs, gw)
989- if ((gF == gF))
990- then $Tuple2(((gF ++ gE) ++ [ScriptTransfer(addressFromStringValue(gB), gw, bf(gs))]), gw)
1007+ let gK = cP(gx, gB)
1008+ if ((gK == gK))
1009+ then $Tuple2(((gK ++ gJ) ++ [ScriptTransfer(addressFromStringValue(gG), gB, bn(gx))]), gB)
9911010 else throw("Strict value is not equal to itself.")
9921011 }
9931012 else throw("Strict value is not equal to itself.")
10011020
10021021
10031022
1004-@Callable(eV)
1005-func setManager (gG) = {
1006- let gH = gm(eV)
1007- if ((gH == gH))
1008- then {
1009- let gI = fromBase58String(gG)
1010- if ((gI == gI))
1011- then [StringEntry(V(), gG)]
1012- else throw("Strict value is not equal to itself.")
1013- }
1014- else throw("Strict value is not equal to itself.")
1015- }
1016-
1017-
1018-
1019-@Callable(eV)
1020-func confirmManager () = {
1021- let gJ = gj()
1022- let gK = if (isDefined(gJ))
1023- then true
1024- else throw("No pending manager")
1025- if ((gK == gK))
1026- then {
1027- let gL = if ((eV.callerPublicKey == value(gJ)))
1028- then true
1029- else throw("You are not pending manager")
1030- if ((gL == gL))
1031- then [StringEntry(U(), toBase58String(value(gJ))), DeleteEntry(V())]
1032- else throw("Strict value is not equal to itself.")
1033- }
1034- else throw("Strict value is not equal to itself.")
1035- }
1036-
1037-
1038-
1039-@Callable(eV)
1040-func put (dI,gM) = if ((0 > dI))
1023+@Callable(fb)
1024+func put (dO,gL) = if ((0 > dO))
10411025 then throw("Invalid slippageTolerance passed")
10421026 else {
1043- let fb = eY(eV, dI, true)
1044- let ek = fb._2
1045- let dp = fb._7
1046- let dG = fb._9
1047- let el = fb._10
1048- let em = fb._11
1049- let gN = fb._12
1050- let gO = fb._13
1051- let eZ = toBigInt(value(eV.payments[0]).amount)
1052- let fa = toBigInt(value(eV.payments[1]).amount)
1053- let eB = eu(eZ, fa, toBigInt(0))
1054- if ((eB == eB))
1027+ let fh = fe(fb, dO, true)
1028+ let eq = fh._2
1029+ let dv = fh._7
1030+ let dM = fh._9
1031+ let er = fh._10
1032+ let es = fh._11
1033+ let gM = fh._12
1034+ let gN = fh._13
1035+ let ff = toBigInt(value(fb.payments[0]).amount)
1036+ let fg = toBigInt(value(fb.payments[1]).amount)
1037+ let eH = eA(ff, fg, toBigInt(0))
1038+ if ((eH == eH))
10551039 then {
1056- let fd = invoke(aV, "emit", [ek], nil)
1057- if ((fd == fd))
1040+ let fj = invoke(bd, "emit", [eq], nil)
1041+ if ((fj == fj))
10581042 then {
1059- let fe = {
1060- let bV = fd
1061- if ($isInstanceOf(bV, "Address"))
1043+ let fk = {
1044+ let aQ = fj
1045+ if ($isInstanceOf(aQ, "Address"))
10621046 then {
1063- let ff = bV
1064- invoke(ff, "emit", [ek], nil)
1047+ let fl = aQ
1048+ invoke(fl, "emit", [eq], nil)
10651049 }
10661050 else unit
10671051 }
1068- if ((fe == fe))
1052+ if ((fk == fk))
10691053 then {
1070- let gP = if ((el > 0))
1071- then invoke(bv, "put", nil, [AttachedPayment(gN, el)])
1054+ let gO = if ((er > 0))
1055+ then invoke(bD, "put", nil, [AttachedPayment(gM, er)])
10721056 else nil
1073- if ((gP == gP))
1057+ if ((gO == gO))
10741058 then {
1075- let gQ = if ((em > 0))
1076- then invoke(bv, "put", nil, [AttachedPayment(gO, em)])
1059+ let gP = if ((es > 0))
1060+ then invoke(bD, "put", nil, [AttachedPayment(gN, es)])
10771061 else nil
1078- if ((gQ == gQ))
1062+ if ((gP == gP))
10791063 then {
1080- let gR = if (gM)
1064+ let gQ = if (gL)
10811065 then {
1082- let gS = invoke(bu, "stake", nil, [AttachedPayment(dp, ek)])
1083- if ((gS == gS))
1066+ let gR = invoke(bC, "stake", nil, [AttachedPayment(dv, eq)])
1067+ if ((gR == gR))
10841068 then nil
10851069 else throw("Strict value is not equal to itself.")
10861070 }
1087- else [ScriptTransfer(eV.caller, ek, dp)]
1088- let gT = eC(0, 0, 0)
1089- if ((gT == gT))
1071+ else [ScriptTransfer(fb.caller, eq, dv)]
1072+ let gS = eI(0, 0, 0)
1073+ if ((gS == gS))
10901074 then {
1091- let et = gT._2
1092- let gU = gT._1
1093- let gV = eH(eB, et)
1094- if ((gV == gV))
1075+ let ez = gS._2
1076+ let gT = gS._1
1077+ let gU = eN(eH, ez)
1078+ if ((gU == gU))
10951079 then {
1096- let gW = invoke(this, "rebalance", nil, nil)
1097- if ((gW == gW))
1098- then ((dG ++ gR) ++ gU)
1080+ let gV = invoke(this, "rebalance", nil, nil)
1081+ if ((gV == gV))
1082+ then ((dM ++ gQ) ++ gT)
10991083 else throw("Strict value is not equal to itself.")
11001084 }
11011085 else throw("Strict value is not equal to itself.")
11151099
11161100
11171101
1118-@Callable(eV)
1119-func putForFree (gX) = if ((0 > gX))
1102+@Callable(fb)
1103+func putForFree (gW) = if ((0 > gW))
11201104 then throw("Invalid value passed")
11211105 else {
1122- let fb = eY(eV, gX, false)
1123- let dG = fb._9
1124- let eZ = toBigInt(value(eV.payments[0]).amount)
1125- let fa = toBigInt(value(eV.payments[1]).amount)
1126- let eB = eu(eZ, fa, toBigInt(0))
1127- if ((eB == eB))
1106+ let fh = fe(fb, gW, false)
1107+ let dM = fh._9
1108+ let ff = toBigInt(value(fb.payments[0]).amount)
1109+ let fg = toBigInt(value(fb.payments[1]).amount)
1110+ let eH = eA(ff, fg, toBigInt(0))
1111+ if ((eH == eH))
11281112 then {
1129- let gY = eC(0, 0, 0)
1130- let gU = gY._1
1131- let et = gY._2
1132- let gV = eH(eB, et)
1133- if ((gV == gV))
1134- then (dG ++ gU)
1113+ let gX = eI(0, 0, 0)
1114+ let gT = gX._1
1115+ let ez = gX._2
1116+ let gU = eN(eH, ez)
1117+ if ((gU == gU))
1118+ then (dM ++ gT)
11351119 else throw("Strict value is not equal to itself.")
11361120 }
11371121 else throw("Strict value is not equal to itself.")
11391123
11401124
11411125
1142-@Callable(eV)
1143-func putOneTkn (gZ,ha) = {
1144- let hb = {
1145- let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1146- if ($isInstanceOf(aY, "Boolean"))
1147- then aY
1148- else throw(($getType(aY) + " couldn't be cast to Boolean"))
1126+@Callable(fb)
1127+func putOneTkn (gY,gZ) = {
1128+ let ha = {
1129+ let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1130+ if ($isInstanceOf(bg, "Boolean"))
1131+ then bg
1132+ else throw(($getType(bg) + " couldn't be cast to Boolean"))
11491133 }
1150- let hc = if (if (if (ba())
1134+ let hb = if (if (if (bi())
11511135 then true
1152- else (bn == l))
1136+ else (bv == l))
11531137 then true
1154- else (bn == n))
1138+ else (bv == n))
11551139 then true
1156- else hb
1157- let fP = [if (if (!(hc))
1140+ else ha
1141+ let fV = [if (if (!(hb))
11581142 then true
1159- else gk(eV))
1143+ else gp(fb))
11601144 then true
1161- else aS("put operation is blocked by admin"), if ((size(eV.payments) == 1))
1145+ else ba("put operation is blocked by admin"), if ((size(fb.payments) == 1))
11621146 then true
1163- else aS("exactly 1 payment are expected")]
1164- if ((fP == fP))
1147+ else ba("exactly 1 payment are expected")]
1148+ if ((fV == fV))
11651149 then {
1166- let hd = eV.payments[0]
1167- let fk = hd.assetId
1168- let fj = hd.amount
1169- let eB = if ((fk == bp))
1170- then eu(toBigInt(fj), toBigInt(0), toBigInt(0))
1171- else if ((fk == bq))
1172- then eu(toBigInt(0), toBigInt(fj), toBigInt(0))
1173- else aS("payment asset is not supported")
1174- if ((eB == eB))
1150+ let hc = fb.payments[0]
1151+ let fq = hc.assetId
1152+ let fp = hc.amount
1153+ let eH = if ((fq == bx))
1154+ then eA(toBigInt(fp), toBigInt(0), toBigInt(0))
1155+ else if ((fq == by))
1156+ then eA(toBigInt(0), toBigInt(fp), toBigInt(0))
1157+ else ba("payment asset is not supported")
1158+ if ((eH == eH))
11751159 then {
1176- let ab = eV.caller
1177- let ac = eV.transactionId
1178- let he = fi(fj, fk, ab, ac)
1179- if ((he == he))
1160+ let ab = fb.caller
1161+ let ac = fb.transactionId
1162+ let hd = fo(fp, fq, ab, ac)
1163+ if ((hd == hd))
11801164 then {
1181- let fo = he._5
1182- let hf = he._4
1183- let fh = he._3
1184- let en = he._2
1185- let hg = he._1
1186- let hh = if (if ((gZ > 0))
1187- then (gZ > hg)
1165+ let fu = hd._5
1166+ let he = hd._4
1167+ let fn = hd._3
1168+ let et = hd._2
1169+ let hf = hd._1
1170+ let hg = if (if ((gY > 0))
1171+ then (gY > hf)
11881172 else false)
1189- then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1190- else hg
1191- let fd = fc(hh)
1192- if ((fd == fd))
1173+ then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1174+ else hf
1175+ let fj = fi(hg)
1176+ if ((fj == fj))
11931177 then {
1194- let gR = if (ha)
1178+ let gQ = if (gZ)
11951179 then {
1196- let hi = invoke(bu, "stake", nil, [AttachedPayment(bo, hh)])
1197- if ((hi == hi))
1180+ let hh = invoke(bC, "stake", nil, [AttachedPayment(bw, hg)])
1181+ if ((hh == hh))
11981182 then nil
11991183 else throw("Strict value is not equal to itself.")
12001184 }
1201- else [ScriptTransfer(eV.caller, hh, bo)]
1202- let hj = if ((fh > 0))
1203- then [ScriptTransfer(aW, fh, fk)]
1185+ else [ScriptTransfer(fb.caller, hg, bw)]
1186+ let hi = if ((fn > 0))
1187+ then [ScriptTransfer(be, fn, fq)]
12041188 else nil
1205- let hk = if ((this == aW))
1189+ let hj = if ((this == be))
12061190 then $Tuple2(0, 0)
1207- else if (fo)
1208- then $Tuple2(-(fh), 0)
1209- else $Tuple2(0, -(fh))
1210- let eD = hk._1
1211- let eE = hk._2
1212- let hl = eC(eD, eE, 0)
1213- let gU = hl._1
1214- let et = hl._2
1215- let eO = value(getString(aj))
1216- let gV = eH(eB, et)
1217- if ((gV == gV))
1191+ else if (fu)
1192+ then $Tuple2(-(fn), 0)
1193+ else $Tuple2(0, -(fn))
1194+ let eJ = hj._1
1195+ let eK = hj._2
1196+ let hk = eI(eJ, eK, 0)
1197+ let gT = hk._1
1198+ let ez = hk._2
1199+ let eU = value(getString(aj))
1200+ let gU = eN(eH, ez)
1201+ if ((gU == gU))
12181202 then {
1219- let gW = invoke(this, "rebalance", nil, nil)
1220- if ((gW == gW))
1221- then $Tuple2((((en ++ gR) ++ hj) ++ gU), hh)
1203+ let gV = invoke(this, "rebalance", nil, nil)
1204+ if ((gV == gV))
1205+ then $Tuple2((((et ++ gQ) ++ hi) ++ gT), hg)
12221206 else throw("Strict value is not equal to itself.")
12231207 }
12241208 else throw("Strict value is not equal to itself.")
12341218
12351219
12361220
1237-@Callable(eV)
1238-func putOneTknREADONLY (fk,fj) = {
1239- let hm = fi(fj, bf(fk), unit, unit)
1240- let hg = hm._1
1241- let en = hm._2
1242- let fh = hm._3
1243- let hf = hm._4
1244- let fo = hm._5
1245- $Tuple2(nil, $Tuple3(hg, fh, hf))
1221+@Callable(fb)
1222+func putOneTknREADONLY (fq,fp) = {
1223+ let hl = fo(fp, bn(fq), unit, unit)
1224+ let hf = hl._1
1225+ let et = hl._2
1226+ let fn = hl._3
1227+ let he = hl._4
1228+ let fu = hl._5
1229+ $Tuple2(nil, $Tuple3(hf, fn, he))
12461230 }
12471231
12481232
12491233
1250-@Callable(eV)
1251-func getOneTkn (hn,gZ) = {
1252- let hb = {
1253- let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1254- if ($isInstanceOf(aY, "Boolean"))
1255- then aY
1256- else throw(($getType(aY) + " couldn't be cast to Boolean"))
1234+@Callable(fb)
1235+func getOneTkn (hm,gY) = {
1236+ let ha = {
1237+ let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1238+ if ($isInstanceOf(bg, "Boolean"))
1239+ then bg
1240+ else throw(($getType(bg) + " couldn't be cast to Boolean"))
12571241 }
1258- let ho = if (if (ba())
1242+ let hn = if (if (bi())
12591243 then true
1260- else (bn == n))
1244+ else (bv == n))
12611245 then true
1262- else hb
1263- let fP = [if (if (!(ho))
1246+ else ha
1247+ let fV = [if (if (!(hn))
12641248 then true
1265- else gk(eV))
1249+ else gp(fb))
12661250 then true
1267- else aS("get operation is blocked by admin"), if ((size(eV.payments) == 1))
1251+ else ba("get operation is blocked by admin"), if ((size(fb.payments) == 1))
12681252 then true
1269- else aS("exactly 1 payment are expected")]
1270- if ((fP == fP))
1253+ else ba("exactly 1 payment are expected")]
1254+ if ((fV == fV))
12711255 then {
1272- let fO = bf(hn)
1273- let hd = eV.payments[0]
1274- let fk = hd.assetId
1275- let fw = hd.amount
1276- let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1277- if ((eB == eB))
1256+ let fU = bn(hm)
1257+ let hc = fb.payments[0]
1258+ let fq = hc.assetId
1259+ let fC = hc.amount
1260+ let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1261+ if ((eH == eH))
12781262 then {
1279- let ab = eV.caller
1280- let ac = eV.transactionId
1281- let hp = fN(fO, fw, fk, ab, ac)
1282- if ((hp == hp))
1263+ let ab = fb.caller
1264+ let ac = fb.transactionId
1265+ let ho = fT(fU, fC, fq, ab, ac)
1266+ if ((ho == ho))
12831267 then {
1284- let fQ = hp._5
1285- let hf = hp._4
1286- let fh = hp._3
1287- let en = hp._2
1288- let hq = hp._1
1289- let bY = if (if ((gZ > 0))
1290- then (gZ > hq)
1268+ let fW = ho._5
1269+ let he = ho._4
1270+ let fn = ho._3
1271+ let et = ho._2
1272+ let hp = ho._1
1273+ let cf = if (if ((gY > 0))
1274+ then (gY > hp)
12911275 else false)
1292- then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1293- else hq
1294- let hr = invoke(aV, "burn", [fw], [AttachedPayment(fk, fw)])
1295- if ((hr == hr))
1276+ then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1277+ else hp
1278+ let hq = invoke(bd, "burn", [fC], [AttachedPayment(fq, fC)])
1279+ if ((hq == hq))
12961280 then {
1297- let gF = cJ(hn, (bY + max([0, fh])))
1298- let hs = [ScriptTransfer(ab, bY, fO)]
1299- let hj = if ((fh > 0))
1300- then [ScriptTransfer(aW, fh, fO)]
1281+ let gK = cP(hm, (cf + max([0, fn])))
1282+ let hr = [ScriptTransfer(ab, cf, fU)]
1283+ let hi = if ((fn > 0))
1284+ then [ScriptTransfer(be, fn, fU)]
13011285 else nil
1302- let ht = {
1303- let hu = if ((this == aW))
1286+ let hs = {
1287+ let ht = if ((this == be))
13041288 then 0
1305- else fh
1306- if (fQ)
1307- then $Tuple2(-((bY + hu)), 0)
1308- else $Tuple2(0, -((bY + hu)))
1289+ else fn
1290+ if (fW)
1291+ then $Tuple2(-((cf + ht)), 0)
1292+ else $Tuple2(0, -((cf + ht)))
13091293 }
1310- let eD = ht._1
1311- let eE = ht._2
1312- let hv = eC(eD, eE, 0)
1313- let gU = hv._1
1314- let et = hv._2
1315- let gV = eH(eB, et)
1316- if ((gV == gV))
1317- then $Tuple2(((((en ++ gF) ++ hs) ++ hj) ++ gU), bY)
1294+ let eJ = hs._1
1295+ let eK = hs._2
1296+ let hu = eI(eJ, eK, 0)
1297+ let gT = hu._1
1298+ let ez = hu._2
1299+ let gU = eN(eH, ez)
1300+ if ((gU == gU))
1301+ then $Tuple2(((((et ++ gK) ++ hr) ++ hi) ++ gT), cf)
13181302 else throw("Strict value is not equal to itself.")
13191303 }
13201304 else throw("Strict value is not equal to itself.")
13281312
13291313
13301314
1331-@Callable(eV)
1332-func getOneTknREADONLY (fO,fw) = {
1333- let hw = fN(bf(fO), fw, bo, unit, unit)
1334- let hq = hw._1
1335- let en = hw._2
1336- let fh = hw._3
1337- let hf = hw._4
1338- let fQ = hw._5
1339- $Tuple2(nil, $Tuple3(hq, fh, hf))
1315+@Callable(fb)
1316+func getOneTknREADONLY (fU,fC) = {
1317+ let hv = fT(bn(fU), fC, bw, unit, unit)
1318+ let hp = hv._1
1319+ let et = hv._2
1320+ let fn = hv._3
1321+ let he = hv._4
1322+ let fW = hv._5
1323+ $Tuple2(nil, $Tuple3(hp, fn, he))
13401324 }
13411325
13421326
13431327
1344-@Callable(eV)
1345-func unstakeAndGetOneTkn (hx,hn,gZ) = {
1346- let hb = {
1347- let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1348- if ($isInstanceOf(aY, "Boolean"))
1349- then aY
1350- else throw(($getType(aY) + " couldn't be cast to Boolean"))
1328+@Callable(fb)
1329+func unstakeAndGetOneTkn (hw,hm,gY) = {
1330+ let ha = {
1331+ let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1332+ if ($isInstanceOf(bg, "Boolean"))
1333+ then bg
1334+ else throw(($getType(bg) + " couldn't be cast to Boolean"))
13511335 }
1352- let ho = if (if (ba())
1336+ let hn = if (if (bi())
13531337 then true
1354- else (bn == n))
1338+ else (bv == n))
13551339 then true
1356- else hb
1357- let fP = [if (if (!(ho))
1340+ else ha
1341+ let fV = [if (if (!(hn))
13581342 then true
1359- else gk(eV))
1343+ else gp(fb))
13601344 then true
1361- else aS("get operation is blocked by admin"), if ((size(eV.payments) == 0))
1345+ else ba("get operation is blocked by admin"), if ((size(fb.payments) == 0))
13621346 then true
1363- else aS("no payments are expected")]
1364- if ((fP == fP))
1347+ else ba("no payments are expected")]
1348+ if ((fV == fV))
13651349 then {
1366- let fO = bf(hn)
1367- let ab = eV.caller
1368- let ac = eV.transactionId
1369- let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1370- if ((eB == eB))
1350+ let fU = bn(hm)
1351+ let ab = fb.caller
1352+ let ac = fb.transactionId
1353+ let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1354+ if ((eH == eH))
13711355 then {
1372- let hy = invoke(bu, "unstake", [toBase58String(bo), hx], nil)
1373- if ((hy == hy))
1356+ let hx = invoke(bC, "unstake", [toBase58String(bw), hw], nil)
1357+ if ((hx == hx))
13741358 then {
1375- let hz = fN(fO, hx, bo, ab, ac)
1376- if ((hz == hz))
1359+ let hy = fT(fU, hw, bw, ab, ac)
1360+ if ((hy == hy))
13771361 then {
1378- let fQ = hz._5
1379- let hf = hz._4
1380- let fh = hz._3
1381- let en = hz._2
1382- let hq = hz._1
1383- let bY = if (if ((gZ > 0))
1384- then (gZ > hq)
1362+ let fW = hy._5
1363+ let he = hy._4
1364+ let fn = hy._3
1365+ let et = hy._2
1366+ let hp = hy._1
1367+ let cf = if (if ((gY > 0))
1368+ then (gY > hp)
13851369 else false)
1386- then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1387- else hq
1388- let hr = invoke(aV, "burn", [hx], [AttachedPayment(bo, hx)])
1389- if ((hr == hr))
1370+ then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1371+ else hp
1372+ let hq = invoke(bd, "burn", [hw], [AttachedPayment(bw, hw)])
1373+ if ((hq == hq))
13901374 then {
1391- let gF = cJ(hn, (bY + max([0, fh])))
1392- let hs = [ScriptTransfer(eV.caller, bY, fO)]
1393- let hj = if ((fh > 0))
1394- then [ScriptTransfer(aW, fh, fO)]
1375+ let gK = cP(hm, (cf + max([0, fn])))
1376+ let hr = [ScriptTransfer(fb.caller, cf, fU)]
1377+ let hi = if ((fn > 0))
1378+ then [ScriptTransfer(be, fn, fU)]
13951379 else nil
1396- let hA = {
1397- let hu = if ((this == aW))
1380+ let hz = {
1381+ let ht = if ((this == be))
13981382 then 0
1399- else fh
1400- if (fQ)
1401- then $Tuple2(-((bY + hu)), 0)
1402- else $Tuple2(0, -((bY + hu)))
1383+ else fn
1384+ if (fW)
1385+ then $Tuple2(-((cf + ht)), 0)
1386+ else $Tuple2(0, -((cf + ht)))
14031387 }
1404- let eD = hA._1
1405- let eE = hA._2
1406- let hB = eC(eD, eE, 0)
1407- let gU = hB._1
1408- let et = hB._2
1409- let gV = eH(eB, et)
1410- if ((gV == gV))
1411- then $Tuple2(((((en ++ gF) ++ hs) ++ hj) ++ gU), bY)
1388+ let eJ = hz._1
1389+ let eK = hz._2
1390+ let hA = eI(eJ, eK, 0)
1391+ let gT = hA._1
1392+ let ez = hA._2
1393+ let gU = eN(eH, ez)
1394+ if ((gU == gU))
1395+ then $Tuple2(((((et ++ gK) ++ hr) ++ hi) ++ gT), cf)
14121396 else throw("Strict value is not equal to itself.")
14131397 }
14141398 else throw("Strict value is not equal to itself.")
14241408
14251409
14261410
1427-@Callable(eV)
1411+@Callable(fb)
14281412 func get () = {
1429- let dY = eU(eV)
1430- let dE = dY._1
1431- let dF = dY._2
1432- let eX = dY._3
1433- let dn = dY._4
1434- let dG = dY._5
1435- let gF = cO(dE, dF)
1436- let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1437- if ((eB == eB))
1413+ let ee = fa(fb)
1414+ let dK = ee._1
1415+ let dL = ee._2
1416+ let fd = ee._3
1417+ let dt = ee._4
1418+ let dM = ee._5
1419+ let gK = cU(dK, dL)
1420+ let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1421+ if ((eH == eH))
14381422 then {
1439- let hC = invoke(aV, "burn", [eX], [AttachedPayment(dn, eX)])
1440- if ((hC == hC))
1423+ let hB = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1424+ if ((hB == hB))
14411425 then {
1442- let hD = eC(-(dE), -(dF), 0)
1443- let gU = hD._1
1444- let et = hD._2
1445- let gV = eH(eB, et)
1446- if ((gV == gV))
1447- then ((gF ++ dG) ++ gU)
1426+ let hC = eI(-(dK), -(dL), 0)
1427+ let gT = hC._1
1428+ let ez = hC._2
1429+ let gU = eN(eH, ez)
1430+ if ((gU == gU))
1431+ then ((gK ++ dM) ++ gT)
14481432 else throw("Strict value is not equal to itself.")
14491433 }
14501434 else throw("Strict value is not equal to itself.")
14541438
14551439
14561440
1457-@Callable(eV)
1458-func getNoLess (hE,hF) = {
1459- let dY = eU(eV)
1460- let dE = dY._1
1461- let dF = dY._2
1462- let eX = dY._3
1463- let dn = dY._4
1464- let dG = dY._5
1465- if ((hE > dE))
1466- then throw(((("noLessThenAmtAsset failed: " + toString(dE)) + " < ") + toString(hE)))
1467- else if ((hF > dF))
1468- then throw(((("noLessThenPriceAsset failed: " + toString(dF)) + " < ") + toString(hF)))
1441+@Callable(fb)
1442+func getNoLess (hD,hE) = {
1443+ let ee = fa(fb)
1444+ let dK = ee._1
1445+ let dL = ee._2
1446+ let fd = ee._3
1447+ let dt = ee._4
1448+ let dM = ee._5
1449+ if ((hD > dK))
1450+ then throw(((("noLessThenAmtAsset failed: " + toString(dK)) + " < ") + toString(hD)))
1451+ else if ((hE > dL))
1452+ then throw(((("noLessThenPriceAsset failed: " + toString(dL)) + " < ") + toString(hE)))
14691453 else {
1470- let gF = cO(dE, dF)
1471- let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1472- if ((eB == eB))
1454+ let gK = cU(dK, dL)
1455+ let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1456+ if ((eH == eH))
14731457 then {
1474- let hC = invoke(aV, "burn", [eX], [AttachedPayment(dn, eX)])
1475- if ((hC == hC))
1458+ let hB = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1459+ if ((hB == hB))
14761460 then {
1477- let hG = eC(-(dE), -(dF), 0)
1478- let gU = hG._1
1479- let et = hG._2
1480- let gV = eH(eB, et)
1481- if ((gV == gV))
1482- then ((gF ++ dG) ++ gU)
1461+ let hF = eI(-(dK), -(dL), 0)
1462+ let gT = hF._1
1463+ let ez = hF._2
1464+ let gU = eN(eH, ez)
1465+ if ((gU == gU))
1466+ then ((gK ++ dM) ++ gT)
14831467 else throw("Strict value is not equal to itself.")
14841468 }
14851469 else throw("Strict value is not equal to itself.")
14901474
14911475
14921476
1493-@Callable(eV)
1494-func unstakeAndGet (bY) = {
1495- let hH = if ((size(eV.payments) != 0))
1477+@Callable(fb)
1478+func unstakeAndGet (cf) = {
1479+ let hG = if ((size(fb.payments) != 0))
14961480 then throw("No payments are expected")
14971481 else true
1498- if ((hH == hH))
1482+ if ((hG == hG))
14991483 then {
1500- let dc = bc()
1501- let dp = fromBase58String(dc[q])
1502- let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1503- if ((eB == eB))
1484+ let di = bk()
1485+ let dv = fromBase58String(di[q])
1486+ let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1487+ if ((eH == eH))
15041488 then {
1505- let hy = invoke(bu, "unstake", [toBase58String(dp), bY], nil)
1506- if ((hy == hy))
1489+ let hx = invoke(bC, "unstake", [toBase58String(dv), cf], nil)
1490+ if ((hx == hx))
15071491 then {
1508- let dY = dl(toBase58String(eV.transactionId), toBase58String(dp), bY, eV.caller)
1509- let dE = dY._1
1510- let dF = dY._2
1511- let ds = parseIntValue(dY._9)
1512- let dG = dY._10
1513- let gF = cO(dE, dF)
1514- let hI = if (if (ba())
1492+ let ee = dr(toBase58String(fb.transactionId), toBase58String(dv), cf, fb.caller)
1493+ let dK = ee._1
1494+ let dL = ee._2
1495+ let dy = parseIntValue(ee._9)
1496+ let dM = ee._10
1497+ let gK = cU(dK, dL)
1498+ let hH = if (if (bi())
15151499 then true
1516- else (ds == n))
1517- then throw(("Get operation is blocked by admin. Status = " + toString(ds)))
1500+ else (dy == n))
1501+ then throw(("Get operation is blocked by admin. Status = " + toString(dy)))
15181502 else true
1519- if ((hI == hI))
1503+ if ((hH == hH))
15201504 then {
1521- let hC = invoke(aV, "burn", [bY], [AttachedPayment(dp, bY)])
1522- if ((hC == hC))
1505+ let hB = invoke(bd, "burn", [cf], [AttachedPayment(dv, cf)])
1506+ if ((hB == hB))
15231507 then {
1524- let hJ = eC(-(dE), -(dF), 0)
1525- let gU = hJ._1
1526- let et = hJ._2
1527- let gV = eH(eB, et)
1528- if ((gV == gV))
1529- then ((gF ++ dG) ++ gU)
1508+ let hI = eI(-(dK), -(dL), 0)
1509+ let gT = hI._1
1510+ let ez = hI._2
1511+ let gU = eN(eH, ez)
1512+ if ((gU == gU))
1513+ then ((gK ++ dM) ++ gT)
15301514 else throw("Strict value is not equal to itself.")
15311515 }
15321516 else throw("Strict value is not equal to itself.")
15421526
15431527
15441528
1545-@Callable(eV)
1546-func unstakeAndGetNoLess (hx,hK,hF) = {
1547- let ho = if (ba())
1529+@Callable(fb)
1530+func unstakeAndGetNoLess (hw,hJ,hE) = {
1531+ let hn = if (bi())
15481532 then true
1549- else (bn == n)
1550- let fP = [if (!(ho))
1533+ else (bv == n)
1534+ let fV = [if (!(hn))
15511535 then true
1552- else throw("get operation is blocked by admin"), if ((size(eV.payments) == 0))
1536+ else throw("get operation is blocked by admin"), if ((size(fb.payments) == 0))
15531537 then true
15541538 else throw("no payments are expected")]
1555- if ((fP == fP))
1539+ if ((fV == fV))
15561540 then {
1557- let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1558- if ((eB == eB))
1541+ let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1542+ if ((eH == eH))
15591543 then {
1560- let hy = invoke(bu, "unstake", [toBase58String(bo), hx], nil)
1561- if ((hy == hy))
1544+ let hx = invoke(bC, "unstake", [toBase58String(bw), hw], nil)
1545+ if ((hx == hx))
15621546 then {
1563- let dY = dl(toBase58String(eV.transactionId), toBase58String(bo), hx, eV.caller)
1564- let dE = dY._1
1565- let dF = dY._2
1566- let dG = dY._10
1567- let gF = cO(dE, dF)
1568- let hL = [if ((dE >= hK))
1547+ let ee = dr(toBase58String(fb.transactionId), toBase58String(bw), hw, fb.caller)
1548+ let dK = ee._1
1549+ let dL = ee._2
1550+ let dM = ee._10
1551+ let gK = cU(dK, dL)
1552+ let hK = [if ((dK >= hJ))
15691553 then true
1570- else throw(makeString(["amount asset amount to receive is less than ", toString(hK)], "")), if ((dF >= hF))
1554+ else throw(makeString(["amount asset amount to receive is less than ", toString(hJ)], "")), if ((dL >= hE))
15711555 then true
1572- else throw(makeString(["price asset amount to receive is less than ", toString(hF)], ""))]
1573- if ((hL == hL))
1556+ else throw(makeString(["price asset amount to receive is less than ", toString(hE)], ""))]
1557+ if ((hK == hK))
15741558 then {
1575- let hC = invoke(aV, "burn", [hx], [AttachedPayment(bo, hx)])
1576- if ((hC == hC))
1559+ let hB = invoke(bd, "burn", [hw], [AttachedPayment(bw, hw)])
1560+ if ((hB == hB))
15771561 then {
1578- let hM = eC(-(dE), -(dF), 0)
1579- let gU = hM._1
1580- let et = hM._2
1581- let gV = eH(eB, et)
1582- if ((gV == gV))
1583- then ((gF ++ dG) ++ gU)
1562+ let hL = eI(-(dK), -(dL), 0)
1563+ let gT = hL._1
1564+ let ez = hL._2
1565+ let gU = eN(eH, ez)
1566+ if ((gU == gU))
1567+ then ((gK ++ dM) ++ gT)
15841568 else throw("Strict value is not equal to itself.")
15851569 }
15861570 else throw("Strict value is not equal to itself.")
15961580
15971581
15981582
1599-@Callable(eV)
1600-func activate (hN,hO) = if ((toString(eV.caller) != toString(aV)))
1583+@Callable(fb)
1584+func activate (hM,hN) = if ((toString(fb.caller) != toString(bd)))
16011585 then throw("permissions denied")
1602- else $Tuple2([StringEntry(ae(), hN), StringEntry(af(), hO)], "success")
1586+ else $Tuple2([StringEntry(ae(), hM), StringEntry(af(), hN)], "success")
16031587
16041588
16051589
1606-@Callable(eV)
1590+@Callable(fb)
16071591 func refreshKLp () = {
1608- let hP = valueOrElse(getInteger(ak), 0)
1609- let hQ = if (((height - hP) >= an))
1592+ let hO = valueOrElse(getInteger(ak), 0)
1593+ let hP = if (((height - hO) >= an))
16101594 then unit
1611- else aS(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1612- if ((hQ == hQ))
1595+ else ba(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1596+ if ((hP == hP))
16131597 then {
1614- let eO = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
1615- let hR = eC(0, 0, 0)
1616- let hS = hR._1
1617- let et = hR._2
1618- let eF = if ((eO != et))
1619- then hS
1620- else aS("nothing to refresh")
1621- $Tuple2(eF, toString(et))
1598+ let eU = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), bc("invalid kLp"))
1599+ let hQ = eI(0, 0, 0)
1600+ let hR = hQ._1
1601+ let ez = hQ._2
1602+ let eL = if ((eU != ez))
1603+ then hR
1604+ else ba("nothing to refresh")
1605+ $Tuple2(eL, toString(ez))
16221606 }
16231607 else throw("Strict value is not equal to itself.")
16241608 }
16251609
16261610
16271611
1628-@Callable(eV)
1629-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bc())
1612+@Callable(fb)
1613+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bk())
16301614
16311615
16321616
1633-@Callable(eV)
1634-func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bL(ap))
1617+@Callable(fb)
1618+func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bT(ap))
16351619
16361620
16371621
1638-@Callable(eV)
1639-func calcPricesWrapperREADONLY (cW,cX,db) = {
1640- let dk = da(cW, cX, db)
1641- $Tuple2(nil, [toString(dk[0]), toString(dk[1]), toString(dk[2])])
1622+@Callable(fb)
1623+func calcPricesWrapperREADONLY (dc,dd,dh) = {
1624+ let dq = dg(dc, dd, dh)
1625+ $Tuple2(nil, [toString(dq[0]), toString(dq[1]), toString(dq[2])])
16421626 }
16431627
16441628
16451629
1646-@Callable(eV)
1630+@Callable(fb)
16471631 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
16481632
16491633
16501634
1651-@Callable(eV)
1635+@Callable(fb)
16521636 func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
16531637
16541638
16551639
1656-@Callable(eV)
1657-func calcPriceBigIntWrapperREADONLY (bP,bQ) = $Tuple2(nil, toString(bO(parseBigIntValue(bP), parseBigIntValue(bQ))))
1640+@Callable(fb)
1641+func calcPriceBigIntWrapperREADONLY (bX,bY) = $Tuple2(nil, toString(bW(parseBigIntValue(bX), parseBigIntValue(bY))))
16581642
16591643
16601644
1661-@Callable(eV)
1662-func estimatePutOperationWrapperREADONLY (dm,dI,dJ,dK,dL,dM,ab,dN,dO) = $Tuple2(nil, dH(dm, dI, dJ, dK, dL, dM, ab, dN, dO))
1645+@Callable(fb)
1646+func estimatePutOperationWrapperREADONLY (ds,dO,dP,dQ,dR,dS,ab,dT,dU) = $Tuple2(nil, dN(ds, dO, dP, dQ, dR, dS, ab, dT, dU))
16631647
16641648
16651649
1666-@Callable(eV)
1667-func estimateGetOperationWrapperREADONLY (dm,dn,do,ab) = {
1668- let dY = dl(dm, dn, do, addressFromStringValue(ab))
1669- $Tuple2(nil, $Tuple10(dY._1, dY._2, dY._3, dY._4, dY._5, dY._6, dY._7, toString(dY._8), dY._9, dY._10))
1650+@Callable(fb)
1651+func estimateGetOperationWrapperREADONLY (ds,dt,du,ab) = {
1652+ let ee = dr(ds, dt, du, addressFromStringValue(ab))
1653+ $Tuple2(nil, $Tuple10(ee._1, ee._2, ee._3, ee._4, ee._5, ee._6, ee._7, toString(ee._8), ee._9, ee._10))
16701654 }
16711655
16721656
16731657
1674-@Callable(eV)
1658+@Callable(fb)
16751659 func statsREADONLY () = {
1676- let dc = bc()
1677- let dp = fromBase58String(dc[q])
1678- let hT = dc[r]
1679- let hU = dc[s]
1680- let dR = dc[v]
1681- let dS = dc[w]
1682- let dd = parseIntValue(dc[t])
1683- let de = parseIntValue(dc[u])
1684- let hV = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1685- let hW = bL(hT)
1686- let hX = bL(hU)
1687- let hY = if ((hV == 0))
1660+ let di = bk()
1661+ let dv = fromBase58String(di[q])
1662+ let hS = di[r]
1663+ let hT = di[s]
1664+ let dX = di[v]
1665+ let dY = di[w]
1666+ let dj = parseIntValue(di[t])
1667+ let dk = parseIntValue(di[u])
1668+ let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1669+ let hV = bT(hS)
1670+ let hW = bT(hT)
1671+ let hX = if ((hU == 0))
16881672 then [e, e, e]
1689- else da(hW, hX, hV)
1690- let dz = 0
1691- let hZ = H(hY[1], b)
1692- let ia = H(hY[2], b)
1693- let ib = value(getInteger(aV, aD(toString(this))))
1694- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hW), toString(hX), toString(hV), toString(dz), toString(hZ), toString(ia), toString(ib)], j))
1673+ else dg(hV, hW, hU)
1674+ let dF = 0
1675+ let hY = H(hX[1], b)
1676+ let hZ = H(hX[2], b)
1677+ let ia = value(getInteger(bd, aD(toString(this))))
1678+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hV), toString(hW), toString(hU), toString(dF), toString(hY), toString(hZ), toString(ia)], j))
16951679 }
16961680
16971681
16981682
1699-@Callable(eV)
1700-func evaluatePutByAmountAssetREADONLY (dJ) = {
1701- let dc = bc()
1702- let dp = fromBase58String(dc[q])
1703- let dP = dc[r]
1704- let dq = fromBase58String(dP)
1705- let dQ = dc[s]
1706- let dr = fromBase58String(dQ)
1707- let dd = parseIntValue(dc[t])
1708- let de = parseIntValue(dc[u])
1709- let ds = dc[p]
1710- let hV = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1711- let hW = bL(dP)
1712- let hX = bL(dQ)
1713- let cY = D(hW, dd)
1714- let cZ = D(hX, de)
1715- let dy = if ((hV == 0))
1683+@Callable(fb)
1684+func evaluatePutByAmountAssetREADONLY (dP) = {
1685+ let di = bk()
1686+ let dv = fromBase58String(di[q])
1687+ let dV = di[r]
1688+ let dw = fromBase58String(dV)
1689+ let dW = di[s]
1690+ let dx = fromBase58String(dW)
1691+ let dj = parseIntValue(di[t])
1692+ let dk = parseIntValue(di[u])
1693+ let dy = di[p]
1694+ let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1695+ let hV = bT(dV)
1696+ let hW = bT(dW)
1697+ let de = D(hV, dj)
1698+ let df = D(hW, dk)
1699+ let dE = if ((hU == 0))
17161700 then e
1717- else bO(cZ, cY)
1718- let dV = D(dJ, dd)
1719- let dW = fraction(dV, dy, d)
1720- let dL = H(dW, de)
1721- let fb = dH("", 500000, dJ, dq, dL, dr, "", true, false)
1722- let eg = fb._1
1723- let ic = fb._3
1724- let du = fb._4
1725- let dw = fb._5
1726- let dt = fb._6
1727- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(eg), toString(H(dy, b)), toString(du), toString(dw), toString(dt), ds, toString(dJ), toString(dL)], j))
1701+ else bW(df, de)
1702+ let eb = D(dP, dj)
1703+ let ec = fraction(eb, dE, d)
1704+ let dR = H(ec, dk)
1705+ let fh = dN("", 500000, dP, dw, dR, dx, "", true, false)
1706+ let em = fh._1
1707+ let ib = fh._3
1708+ let dA = fh._4
1709+ let dC = fh._5
1710+ let dz = fh._6
1711+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(em), toString(H(dE, b)), toString(dA), toString(dC), toString(dz), dy, toString(dP), toString(dR)], j))
17281712 }
17291713
17301714
17311715
1732-@Callable(eV)
1733-func evaluatePutByPriceAssetREADONLY (dL) = {
1734- let dc = bc()
1735- let dp = fromBase58String(dc[q])
1736- let dP = dc[r]
1737- let dq = fromBase58String(dP)
1738- let dQ = dc[s]
1739- let dr = fromBase58String(dQ)
1740- let dd = parseIntValue(dc[t])
1741- let de = parseIntValue(dc[u])
1742- let ds = dc[p]
1743- let hV = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1744- let id = bL(dP)
1745- let ie = bL(dQ)
1746- let if = D(id, dd)
1747- let ig = D(ie, de)
1748- let dy = if ((hV == 0))
1716+@Callable(fb)
1717+func evaluatePutByPriceAssetREADONLY (dR) = {
1718+ let di = bk()
1719+ let dv = fromBase58String(di[q])
1720+ let dV = di[r]
1721+ let dw = fromBase58String(dV)
1722+ let dW = di[s]
1723+ let dx = fromBase58String(dW)
1724+ let dj = parseIntValue(di[t])
1725+ let dk = parseIntValue(di[u])
1726+ let dy = di[p]
1727+ let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1728+ let ic = bT(dV)
1729+ let id = bT(dW)
1730+ let ie = D(ic, dj)
1731+ let if = D(id, dk)
1732+ let dE = if ((hU == 0))
17491733 then e
1750- else bO(ig, if)
1751- let dW = D(dL, de)
1752- let dV = fraction(dW, d, dy)
1753- let dJ = H(dV, dd)
1754- let fb = dH("", 500000, dJ, dq, dL, dr, "", true, false)
1755- let eg = fb._1
1756- let ic = fb._3
1757- let du = fb._4
1758- let dw = fb._5
1759- let dt = fb._6
1760- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(eg), toString(H(dy, b)), toString(du), toString(dw), toString(dt), ds, toString(dJ), toString(dL)], j))
1734+ else bW(if, ie)
1735+ let ec = D(dR, dk)
1736+ let eb = fraction(ec, d, dE)
1737+ let dP = H(eb, dj)
1738+ let fh = dN("", 500000, dP, dw, dR, dx, "", true, false)
1739+ let em = fh._1
1740+ let ib = fh._3
1741+ let dA = fh._4
1742+ let dC = fh._5
1743+ let dz = fh._6
1744+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(em), toString(H(dE, b)), toString(dA), toString(dC), toString(dz), dy, toString(dP), toString(dR)], j))
17611745 }
17621746
17631747
17641748
1765-@Callable(eV)
1766-func evaluateGetREADONLY (ih,ii) = {
1767- let dY = dl("", ih, ii, this)
1768- let dE = dY._1
1769- let dF = dY._2
1770- let du = dY._5
1771- let dw = dY._6
1772- let dt = dY._7
1773- let dz = dY._8
1774- let ds = parseIntValue(dY._9)
1775- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dE), toString(dF), toString(du), toString(dw), toString(dt), toString(dz), toString(ds)], j))
1749+@Callable(fb)
1750+func evaluateGetREADONLY (ig,ih) = {
1751+ let ee = dr("", ig, ih, this)
1752+ let dK = ee._1
1753+ let dL = ee._2
1754+ let dA = ee._5
1755+ let dC = ee._6
1756+ let dz = ee._7
1757+ let dF = ee._8
1758+ let dy = parseIntValue(ee._9)
1759+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dK), toString(dL), toString(dA), toString(dC), toString(dz), toString(dF), toString(dy)], j))
17761760 }
17771761
17781762
1779-@Verifier(ij)
1780-func ik () = {
1781- let il = {
1782- let bV = gh()
1783- if ($isInstanceOf(bV, "ByteVector"))
1763+@Verifier(ii)
1764+func ij () = {
1765+ let ik = {
1766+ let aQ = gn()
1767+ if ($isInstanceOf(aQ, "ByteVector"))
17841768 then {
1785- let gl = bV
1786- gl
1769+ let gq = aQ
1770+ gq
17871771 }
1788- else if ($isInstanceOf(bV, "Unit"))
1789- then ij.senderPublicKey
1772+ else if ($isInstanceOf(aQ, "Unit"))
1773+ then ii.senderPublicKey
17901774 else throw("Match error")
17911775 }
1792- let bV = ij
1793- if ($isInstanceOf(bV, "Order"))
1776+ let aQ = ii
1777+ if ($isInstanceOf(aQ, "Order"))
17941778 then {
1795- let eK = bV
1796- let im = bb()
1797- let in = if (eG())
1779+ let eQ = aQ
1780+ let il = bj()
1781+ let im = if (eM())
17981782 then $Tuple2(true, "")
1799- else eJ(eK)
1800- let aK = in._1
1801- let aL = in._2
1802- let aM = sigVerify(eK.bodyBytes, eK.proofs[0], eK.senderPublicKey)
1803- let aN = sigVerify(eK.bodyBytes, eK.proofs[1], im)
1783+ else eP(eQ)
1784+ let aK = im._1
1785+ let aL = im._2
1786+ let aM = sigVerify(eQ.bodyBytes, eQ.proofs[0], eQ.senderPublicKey)
1787+ let aN = sigVerify(eQ.bodyBytes, eQ.proofs[1], il)
18041788 if (if (if (aK)
18051789 then aM
18061790 else false)
18091793 then true
18101794 else aJ(aK, aL, aM, aN)
18111795 }
1812- else if ($isInstanceOf(bV, "SetScriptTransaction"))
1796+ else if ($isInstanceOf(aQ, "SetScriptTransaction"))
18131797 then {
1814- let gi = bV
1815- if (sigVerify(ij.bodyBytes, ij.proofs[0], il))
1798+ let aV = aQ
1799+ if (sigVerify(ii.bodyBytes, ii.proofs[0], ik))
18161800 then true
18171801 else {
1818- let io = blake2b256(value(gi.script))
1819- let ip = fromBase64String(value(getString(aV, aF())))
1820- let iq = scriptHash(this)
1821- if ((ip == io))
1822- then (iq != io)
1802+ let in = blake2b256(value(aV.script))
1803+ let io = fromBase64String(value(getString(bd, aF())))
1804+ let ip = scriptHash(this)
1805+ if ((io == in))
1806+ then (ip != in)
18231807 else false
18241808 }
18251809 }
1826- else sigVerify(ij.bodyBytes, ij.proofs[0], il)
1810+ else sigVerify(ii.bodyBytes, ii.proofs[0], ik)
18271811 }
18281812
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = toBigInt(100000000)
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = toBigInt(0)
1313
1414 let f = toBigInt(0)
1515
1616 let g = toBigInt(1)
1717
1818 let h = toBigInt(2)
1919
2020 let i = "WAVES"
2121
2222 let j = "__"
2323
2424 let k = 1
2525
2626 let l = 2
2727
2828 let m = 3
2929
3030 let n = 4
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 5
4141
4242 let t = 6
4343
4444 let u = 7
4545
4646 let v = 8
4747
4848 let w = 9
4949
5050 let x = 10
5151
5252 let y = 1
5353
5454 let z = 2
5555
5656 let A = 3
5757
5858 let B = 1
5959
6060 let C = 7
6161
6262 func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
6363
6464
6565 func G (E,F) = fraction(E, d, F)
6666
6767
6868 func H (I,J) = toInt(fraction(I, toBigInt(J), d))
6969
7070
7171 func K (I,J,L) = toInt(fraction(I, toBigInt(J), d, L))
7272
7373
7474 func M (N,O,P) = fraction(N, O, P)
7575
7676
7777 func Q (I) = if ((0 > I))
7878 then -(I)
7979 else I
8080
8181
8282 func R (I) = if ((e > I))
8383 then -(I)
8484 else I
8585
8686
8787 func S () = "%s__swapContract"
8888
8989
9090 func T () = "%s__factoryContract"
9191
9292
9393 func U () = "%s__managerPublicKey"
9494
9595
96-func V () = "%s__pendingManagerPublicKey"
96+func V () = "%s__managerVaultAddress"
9797
9898
9999 func W () = "%s%s__price__last"
100100
101101
102102 func X (Y,Z) = makeString(["%s%s%d%d__price__history", toString(Y), toString(Z)], j)
103103
104104
105105 func aa (ab,ac) = ((("%s%s%s__P__" + ab) + "__") + ac)
106106
107107
108108 func ad (ab,ac) = ((("%s%s%s__G__" + ab) + "__") + ac)
109109
110110
111111 func ae () = "%s__amountAsset"
112112
113113
114114 func af () = "%s__priceAsset"
115115
116116
117117 let ag = "%s__fee"
118118
119119 let ah = fraction(10, b, 10000)
120120
121121 let ai = valueOrElse(getInteger(this, ag), ah)
122122
123123 let aj = makeString(["%s", "kLp"], j)
124124
125125 let ak = makeString(["%s", "kLpRefreshedHeight"], j)
126126
127127 let al = makeString(["%s", "refreshKLpDelay"], j)
128128
129129 let am = 30
130130
131131 let an = valueOrElse(getInteger(this, al), am)
132132
133133 func ao (ap) = makeString(["%s%s", "stakedBalance", ap], j)
134134
135135
136136 func aq (ap) = makeString(["%s%s", "shareAssetBalance", ap], j)
137137
138138
139139 func ar (ap) = valueOrElse(getInteger(this, ao(ap)), 0)
140140
141141
142142 func as (ap) = valueOrElse(getInteger(this, aq(ap)), 0)
143143
144144
145145 func at () = "%s__factoryConfig"
146146
147147
148148 func au () = "%s%s__matcher__publicKey"
149149
150150
151151 func av (aw) = (("%s%s%s__" + aw) + "__mappings__poolContract2LpAsset")
152152
153153
154154 func ax (ay,az) = (((("%d%d%s__" + ay) + "__") + az) + "__config")
155155
156156
157157 func aA (aB) = ("%s%s%s__mappings__baseAsset2internalId__" + aB)
158158
159159
160160 func aC () = "%s__shutdown"
161161
162162
163163 func aD (aE) = ("%s%s__poolWeight__" + aE)
164164
165165
166166 func aF () = "%s__allowedLpScriptHash"
167167
168168
169169 let aG = "%s__feeCollectorAddress"
170170
171171 func aH (aI) = ("%s%s__skipOrderValidation__" + aI)
172172
173173
174174 func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
175175
176176
177-func aO (aP,aQ) = valueOrErrorMessage(getString(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
178-
179-
180-func aR (aP,aQ) = valueOrErrorMessage(getInteger(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
181-
182-
183-func aS (aT) = throw(makeString(["lp.ride:", aT], " "))
184-
185-
186-func aU (aT) = makeString(["lp.ride:", aT], " ")
187-
188-
189-let aV = addressFromStringValue(aO(this, T()))
190-
191-let aW = addressFromStringValue(aO(aV, aG))
192-
193-let aX = {
194- let aY = invoke(aV, "getInFeeREADONLY", [toString(this)], nil)
195- if ($isInstanceOf(aY, "Int"))
196- then aY
197- else throw(($getType(aY) + " couldn't be cast to Int"))
198- }
199-
200-let aZ = {
201- let aY = invoke(aV, "getOutFeeREADONLY", [toString(this)], nil)
202- if ($isInstanceOf(aY, "Int"))
203- then aY
204- else throw(($getType(aY) + " couldn't be cast to Int"))
205- }
206-
207-func ba () = valueOrElse(getBoolean(aV, aC()), false)
208-
209-
210-func bb () = fromBase58String(aO(aV, au()))
211-
212-
213-func bc () = {
214- let bd = aO(this, ae())
215- let be = aO(this, af())
216- let az = aR(aV, aA(be))
217- let ay = aR(aV, aA(bd))
218- split(aO(aV, ax(toString(ay), toString(az))), j)
177+func aO (aP) = {
178+ let aQ = addressFromString(aP)
179+ if ($isInstanceOf(aQ, "Address"))
180+ then {
181+ let aR = aQ
182+ aR
183+ }
184+ else this
219185 }
220186
221187
222-func bf (bg) = if ((bg == i))
223- then unit
224- else fromBase58String(bg)
225-
226-
227-func bh (bg) = if ((bg == unit))
228- then i
229- else toBase58String(value(bg))
230-
231-
232-func bi (bj) = $Tuple7(addressFromStringValue(bj[o]), parseIntValue(bj[p]), fromBase58String(bj[q]), bf(bj[r]), bf(bj[s]), parseIntValue(bj[t]), parseIntValue(bj[u]))
233-
234-
235-let bk = bi(bc())
236-
237-let bl = bk
238-
239-let bm = bl._1
240-
241-let bn = bl._2
242-
243-let bo = bl._3
244-
245-let bp = bl._4
246-
247-let bq = bl._5
248-
249-let br = bl._6
250-
251-let bs = bl._7
252-
253-func bt () = split(aO(aV, at()), j)
254-
255-
256-let bu = valueOrErrorMessage(addressFromString(bt()[B]), "incorrect staking address")
257-
258-let bv = valueOrErrorMessage(addressFromString(bt()[C]), "incorrect staking address")
259-
260-func bw (bx,by,bz,bA,bB,bC,bD,bE,bF,bG) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bx), toString(by), toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE), toString(bF), toString(bG)], j)
261-
262-
263-func bH (bI,bJ,bK,bA,bD,bE) = makeString(["%d%d%d%d%d%d", toString(bI), toString(bJ), toString(bK), toString(bA), toString(bD), toString(bE)], j)
264-
265-
266-func bL (ap) = {
267- let bM = if ((ap == "WAVES"))
268- then wavesBalance(this).available
269- else assetBalance(this, fromBase58String(ap))
270- let bN = ((bM + ar(ap)) - as(ap))
271- max([0, bN])
188+func aS () = {
189+ let aT = {
190+ let aQ = aO(T())
191+ if ($isInstanceOf(aQ, "Address"))
192+ then {
193+ let aU = aQ
194+ aU
195+ }
196+ else this
197+ }
198+ let aQ = getString(aT, V())
199+ if ($isInstanceOf(aQ, "String"))
200+ then {
201+ let aV = aQ
202+ aO(aV)
203+ }
204+ else this
272205 }
273206
274207
275-func bO (bP,bQ) = fraction(bP, d, bQ)
208+func aW (aX,aY) = valueOrErrorMessage(getString(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " is not defined"], ""))
276209
277210
278-func bR (bP,bQ,L) = fraction(bP, d, bQ, L)
211+func aZ (aX,aY) = valueOrErrorMessage(getInteger(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " is not defined"], ""))
279212
280213
281-func bS (bT) = {
282- let bU = invoke(bT, "getRate", nil, nil)
283- if ((bU == bU))
214+func ba (bb) = throw(makeString(["lp.ride:", bb], " "))
215+
216+
217+func bc (bb) = makeString(["lp.ride:", bb], " ")
218+
219+
220+let bd = addressFromStringValue(aW(this, T()))
221+
222+let be = addressFromStringValue(aW(bd, aG))
223+
224+let bf = {
225+ let bg = invoke(bd, "getInFeeREADONLY", [toString(this)], nil)
226+ if ($isInstanceOf(bg, "Int"))
227+ then bg
228+ else throw(($getType(bg) + " couldn't be cast to Int"))
229+ }
230+
231+let bh = {
232+ let bg = invoke(bd, "getOutFeeREADONLY", [toString(this)], nil)
233+ if ($isInstanceOf(bg, "Int"))
234+ then bg
235+ else throw(($getType(bg) + " couldn't be cast to Int"))
236+ }
237+
238+func bi () = valueOrElse(getBoolean(bd, aC()), false)
239+
240+
241+func bj () = fromBase58String(aW(bd, au()))
242+
243+
244+func bk () = {
245+ let bl = aW(this, ae())
246+ let bm = aW(this, af())
247+ let az = aZ(bd, aA(bm))
248+ let ay = aZ(bd, aA(bl))
249+ split(aW(bd, ax(toString(ay), toString(az))), j)
250+ }
251+
252+
253+func bn (bo) = if ((bo == i))
254+ then unit
255+ else fromBase58String(bo)
256+
257+
258+func bp (bo) = if ((bo == unit))
259+ then i
260+ else toBase58String(value(bo))
261+
262+
263+func bq (br) = $Tuple7(addressFromStringValue(br[o]), parseIntValue(br[p]), fromBase58String(br[q]), bn(br[r]), bn(br[s]), parseIntValue(br[t]), parseIntValue(br[u]))
264+
265+
266+let bs = bq(bk())
267+
268+let bt = bs
269+
270+let bu = bt._1
271+
272+let bv = bt._2
273+
274+let bw = bt._3
275+
276+let bx = bt._4
277+
278+let by = bt._5
279+
280+let bz = bt._6
281+
282+let bA = bt._7
283+
284+func bB () = split(aW(bd, at()), j)
285+
286+
287+let bC = valueOrErrorMessage(addressFromString(bB()[B]), "incorrect staking address")
288+
289+let bD = valueOrErrorMessage(addressFromString(bB()[C]), "incorrect staking address")
290+
291+func bE (bF,bG,bH,bI,bJ,bK,bL,bM,bN,bO) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bF), toString(bG), toString(bH), toString(bI), toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO)], j)
292+
293+
294+func bP (bQ,bR,bS,bI,bL,bM) = makeString(["%d%d%d%d%d%d", toString(bQ), toString(bR), toString(bS), toString(bI), toString(bL), toString(bM)], j)
295+
296+
297+func bT (ap) = {
298+ let bU = if ((ap == "WAVES"))
299+ then wavesBalance(this).available
300+ else assetBalance(this, fromBase58String(ap))
301+ let bV = ((bU + ar(ap)) - as(ap))
302+ max([0, bV])
303+ }
304+
305+
306+func bW (bX,bY) = fraction(bX, d, bY)
307+
308+
309+func bZ (bX,bY,L) = fraction(bX, d, bY, L)
310+
311+
312+func ca (cb) = {
313+ let cc = invoke(cb, "getRate", nil, nil)
314+ if ((cc == cc))
284315 then {
285- let bV = bU
286- if ($isInstanceOf(bV, "Int"))
316+ let aQ = cc
317+ if ($isInstanceOf(aQ, "Int"))
287318 then {
288- let bW = bV
289- bW
319+ let cd = aQ
320+ cd
290321 }
291- else aS("proxy.getRate() unexpected value")
322+ else ba("proxy.getRate() unexpected value")
292323 }
293324 else throw("Strict value is not equal to itself.")
294325 }
295326
296327
297-func bX (ap,bY,bZ,bT) = {
298- let ca = ar(ap)
299- if ((ca == ca))
328+func ce (ap,cf,cg,cb) = {
329+ let ch = ar(ap)
330+ if ((ch == ch))
300331 then {
301- let cb = as(bZ)
302- if ((cb == cb))
332+ let ci = as(cg)
333+ if ((ci == ci))
303334 then {
304- let cc = bf(ap)
305- if ((bY > 0))
335+ let cj = bn(ap)
336+ if ((cf > 0))
306337 then {
307- let cd = invoke(bT, "deposit", nil, [AttachedPayment(cc, bY)])
308- if ((cd == cd))
338+ let ck = invoke(cb, "deposit", nil, [AttachedPayment(cj, cf)])
339+ if ((ck == ck))
309340 then {
310- let bV = cd
311- if ($isInstanceOf(bV, "Int"))
341+ let aQ = ck
342+ if ($isInstanceOf(aQ, "Int"))
312343 then {
313- let ce = bV
314- let cf = (ca + bY)
315- let cg = (cb + ce)
316-[IntegerEntry(ao(ap), cf), IntegerEntry(aq(bZ), cg)]
344+ let cl = aQ
345+ let cm = (ch + cf)
346+ let cn = (ci + cl)
347+[IntegerEntry(ao(ap), cm), IntegerEntry(aq(cg), cn)]
317348 }
318349 else nil
319350 }
320351 else throw("Strict value is not equal to itself.")
321352 }
322353 else nil
323354 }
324355 else throw("Strict value is not equal to itself.")
325356 }
326357 else throw("Strict value is not equal to itself.")
327358 }
328359
329360
330-func ch (ap,bY,bZ,bT,ci,cj) = {
331- let ca = ar(ap)
332- if ((ca == ca))
361+func co (ap,cf,cg,cb,cp,cq) = {
362+ let ch = ar(ap)
363+ if ((ch == ch))
333364 then {
334- let cb = as(bZ)
335- if ((cb == cb))
365+ let ci = as(cg)
366+ if ((ci == ci))
336367 then {
337- let ck = bS(bT)
338- if ((ck == ck))
368+ let cr = ca(cb)
369+ if ((cr == cr))
339370 then {
340- let cl = fraction(ci, ca, cb)
341- let cm = bf(bZ)
342- let cn = fraction(ci, bY, cl)
343- let co = fraction(ci, bY, ck)
344- let cp = max([0, (cn - co)])
345- if ((co > 0))
371+ let cs = fraction(cp, ch, ci)
372+ let ct = bn(cg)
373+ let cu = fraction(cp, cf, cs)
374+ let cv = fraction(cp, cf, cr)
375+ let cw = max([0, (cu - cv)])
376+ if ((cv > 0))
346377 then {
347- let cq = invoke(bT, "withdraw", nil, [AttachedPayment(cm, co)])
348- if ((cq == cq))
378+ let cx = invoke(cb, "withdraw", nil, [AttachedPayment(ct, cv)])
379+ if ((cx == cx))
349380 then {
350- let bV = cq
351- if ($isInstanceOf(bV, "Int"))
381+ let aQ = cx
382+ if ($isInstanceOf(aQ, "Int"))
352383 then {
353- let cr = bV
354- let cf = (ca - cr)
355- let cg = ((cb - co) - cp)
356-[IntegerEntry(ao(ap), cf), IntegerEntry(aq(bZ), cg), ScriptTransfer(cj, cp, bf(bZ))]
384+ let cy = aQ
385+ let cm = (ch - cy)
386+ let cn = ((ci - cv) - cw)
387+[IntegerEntry(ao(ap), cm), IntegerEntry(aq(cg), cn), ScriptTransfer(cq, cw, bn(cg))]
357388 }
358389 else nil
359390 }
360391 else throw("Strict value is not equal to itself.")
361392 }
362393 else nil
363394 }
364395 else throw("Strict value is not equal to itself.")
365396 }
366397 else throw("Strict value is not equal to itself.")
367398 }
368399 else throw("Strict value is not equal to itself.")
369400 }
370401
371402
372-func cs (ap) = {
373- let bV = invoke(aV, "getPoolLeaseConfigREADONLY", [toString(this), ap], nil)
374- if ($isInstanceOf(bV, "(Boolean, Int, Int, String, String, Int, String)"))
403+func cz (ap) = {
404+ let aQ = invoke(bd, "getPoolLeaseConfigREADONLY", [toString(this), ap], nil)
405+ if ($isInstanceOf(aQ, "(Boolean, Int, Int, String, String, Int, String)"))
375406 then {
376- let ct = bV
377- ct
407+ let aR = aQ
408+ aR
378409 }
379- else aS((("[" + ap) + "] getLeaseProxyConfig() error"))
410+ else ba((("[" + ap) + "] getLeaseProxyConfig() error"))
380411 }
381412
382413
383-func cu (cv,ap,bZ,cw,bT,ci,cj) = {
384- let ca = ar(ap)
385- if ((ca == ca))
414+func cA (cB,ap,cg,cC,cb,cp,cq) = {
415+ let ch = ar(ap)
416+ if ((ch == ch))
386417 then {
387- let cb = as(bZ)
388- if ((cb == cb))
418+ let ci = as(cg)
419+ if ((ci == ci))
389420 then {
390- let cx = max([0, (bL(ap) - cw)])
391- let cy = fraction(cv, cx, 100)
392- let cz = (ca - cy)
393- if ((cz == 0))
421+ let cD = max([0, (bT(ap) - cC)])
422+ let cE = fraction(cB, cD, 100)
423+ let cF = (ch - cE)
424+ if ((cF == 0))
394425 then nil
395- else if ((0 > cz))
426+ else if ((0 > cF))
396427 then {
397- let cA = -(cz)
398- bX(ap, cA, bZ, bT)
428+ let cG = -(cF)
429+ ce(ap, cG, cg, cb)
399430 }
400431 else {
401- let cB = cz
402- ch(ap, cB, bZ, bT, ci, cj)
432+ let cH = cF
433+ co(ap, cH, cg, cb, cp, cq)
403434 }
404435 }
405436 else throw("Strict value is not equal to itself.")
406437 }
407438 else throw("Strict value is not equal to itself.")
408439 }
409440
410441
411-func cC (ap) = {
412- let cD = cs(ap)
413- let cE = cD._1
414- let cF = cD._2
415- let cw = cD._3
416- let cG = cD._4
417- let cH = cD._5
418- let ci = cD._6
419- let cI = cD._7
420- if (cE)
421- then cu(cF, ap, cH, cw, addressFromStringValue(cG), ci, addressFromStringValue(cI))
442+func cI (ap) = {
443+ let cJ = cz(ap)
444+ let cK = cJ._1
445+ let cL = cJ._2
446+ let cC = cJ._3
447+ let cM = cJ._4
448+ let cN = cJ._5
449+ let cp = cJ._6
450+ let cO = cJ._7
451+ if (cK)
452+ then cA(cL, ap, cN, cC, addressFromStringValue(cM), cp, addressFromStringValue(cO))
422453 else nil
423454 }
424455
425456
426-func cJ (ap,cK) = {
427- let cL = cs(ap)
428- let cE = cL._1
429- let cF = cL._2
430- let cw = cL._3
431- let cG = cL._4
432- let cH = cL._5
433- let ci = cL._6
434- let cI = cL._7
435- if (cE)
457+func cP (ap,cQ) = {
458+ let cR = cz(ap)
459+ let cK = cR._1
460+ let cL = cR._2
461+ let cC = cR._3
462+ let cM = cR._4
463+ let cN = cR._5
464+ let cp = cR._6
465+ let cO = cR._7
466+ if (cK)
436467 then {
437- let cM = max([0, ((bL(ap) - cK) - cw)])
438- if ((cM == cM))
468+ let cS = max([0, ((bT(ap) - cQ) - cC)])
469+ if ((cS == cS))
439470 then {
440- let cf = fraction(cF, cM, 100)
441- if ((cf == cf))
471+ let cm = fraction(cL, cS, 100)
472+ if ((cm == cm))
442473 then {
443- let cN = (ar(ap) - cf)
444- if ((cN == cN))
445- then if ((0 > cN))
446- then bX(ap, -(cN), cH, addressFromStringValue(cG))
447- else ch(ap, cN, cH, addressFromStringValue(cG), ci, addressFromStringValue(cI))
474+ let cT = (ar(ap) - cm)
475+ if ((cT == cT))
476+ then if ((0 > cT))
477+ then ce(ap, -(cT), cN, addressFromStringValue(cM))
478+ else co(ap, cT, cN, addressFromStringValue(cM), cp, addressFromStringValue(cO))
448479 else throw("Strict value is not equal to itself.")
449480 }
450481 else throw("Strict value is not equal to itself.")
451482 }
452483 else throw("Strict value is not equal to itself.")
453484 }
454485 else nil
455486 }
456487
457488
458-func cO (cP,cQ) = {
459- let cR = cJ(aO(this, ae()), cP)
460- let cS = cJ(aO(this, af()), cQ)
461- (cR ++ cS)
489+func cU (cV,cW) = {
490+ let cX = cP(aW(this, ae()), cV)
491+ let cY = cP(aW(this, af()), cW)
492+ (cX ++ cY)
462493 }
463494
464495
465-func cT (cU,cV,cW,cX) = {
466- let cY = D(cW, cU)
467- let cZ = D(cX, cV)
468- bO(cZ, cY)
496+func cZ (da,db,dc,dd) = {
497+ let de = D(dc, da)
498+ let df = D(dd, db)
499+ bW(df, de)
469500 }
470501
471502
472-func da (cW,cX,db) = {
473- let dc = bc()
474- let dd = parseIntValue(dc[t])
475- let de = parseIntValue(dc[u])
476- let df = cT(dd, de, cW, cX)
477- let bQ = D(cW, dd)
478- let bP = D(cX, de)
479- let dg = D(db, b)
480- let dh = bO(bQ, dg)
481- let di = bO(bP, dg)
482-[df, dh, di]
503+func dg (dc,dd,dh) = {
504+ let di = bk()
505+ let dj = parseIntValue(di[t])
506+ let dk = parseIntValue(di[u])
507+ let dl = cZ(dj, dk, dc, dd)
508+ let bY = D(dc, dj)
509+ let bX = D(dd, dk)
510+ let dm = D(dh, b)
511+ let dn = bW(bY, dm)
512+ let do = bW(bX, dm)
513+[dl, dn, do]
483514 }
484515
485516
486-func dj (cW,cX,db) = {
487- let dk = da(cW, cX, db)
488-[H(dk[0], b), H(dk[1], b), H(dk[2], b)]
517+func dp (dc,dd,dh) = {
518+ let dq = dg(dc, dd, dh)
519+[H(dq[0], b), H(dq[1], b), H(dq[2], b)]
489520 }
490521
491522
492-func dl (dm,dn,do,ab) = {
493- let dc = bc()
494- let dp = dc[q]
495- let dq = dc[r]
496- let dr = dc[s]
497- let cU = parseIntValue(dc[t])
498- let cV = parseIntValue(dc[u])
499- let ds = dc[p]
500- let dt = valueOrErrorMessage(assetInfo(fromBase58String(dp)), (("Asset " + dp) + " doesn't exist")).quantity
501- if ((dp != dn))
523+func dr (ds,dt,du,ab) = {
524+ let di = bk()
525+ let dv = di[q]
526+ let dw = di[r]
527+ let dx = di[s]
528+ let da = parseIntValue(di[t])
529+ let db = parseIntValue(di[u])
530+ let dy = di[p]
531+ let dz = valueOrErrorMessage(assetInfo(fromBase58String(dv)), (("Asset " + dv) + " doesn't exist")).quantity
532+ if ((dv != dt))
502533 then throw("Invalid asset passed.")
503534 else {
504- let du = bL(dq)
505- let dv = D(du, cU)
506- let dw = bL(dr)
507- let dx = D(dw, cV)
508- let dy = bO(dx, dv)
509- let dz = H(dy, b)
510- let dA = D(do, b)
511- let dB = D(dt, b)
512- let dC = fraction(dv, dA, dB)
513- let dD = fraction(dx, dA, dB)
514- let dE = K(dC, cU, FLOOR)
515- let dF = K(dD, cV, FLOOR)
516- let dG = if ((dm == ""))
535+ let dA = bT(dw)
536+ let dB = D(dA, da)
537+ let dC = bT(dx)
538+ let dD = D(dC, db)
539+ let dE = bW(dD, dB)
540+ let dF = H(dE, b)
541+ let dG = D(du, b)
542+ let dH = D(dz, b)
543+ let dI = fraction(dB, dG, dH)
544+ let dJ = fraction(dD, dG, dH)
545+ let dK = K(dI, da, FLOOR)
546+ let dL = K(dJ, db, FLOOR)
547+ let dM = if ((ds == ""))
517548 then nil
518- else [ScriptTransfer(ab, dE, if ((dq == "WAVES"))
549+ else [ScriptTransfer(ab, dK, if ((dw == "WAVES"))
519550 then unit
520- else fromBase58String(dq)), ScriptTransfer(ab, dF, if ((dr == "WAVES"))
551+ else fromBase58String(dw)), ScriptTransfer(ab, dL, if ((dx == "WAVES"))
521552 then unit
522- else fromBase58String(dr)), StringEntry(ad(toString(ab), dm), bH(dE, dF, do, dz, height, lastBlock.timestamp)), IntegerEntry(W(), dz), IntegerEntry(X(height, lastBlock.timestamp), dz)]
523- $Tuple10(dE, dF, dq, dr, du, dw, dt, dy, ds, dG)
553+ else fromBase58String(dx)), StringEntry(ad(toString(ab), ds), bP(dK, dL, du, dF, height, lastBlock.timestamp)), IntegerEntry(W(), dF), IntegerEntry(X(height, lastBlock.timestamp), dF)]
554+ $Tuple10(dK, dL, dw, dx, dA, dC, dz, dE, dy, dM)
524555 }
525556 }
526557
527558
528-func dH (dm,dI,dJ,dK,dL,dM,ab,dN,dO) = {
529- let dc = bc()
530- let dp = fromBase58String(dc[q])
531- let dP = dc[r]
532- let dQ = dc[s]
533- let dR = dc[v]
534- let dS = dc[w]
535- let dd = parseIntValue(dc[t])
536- let de = parseIntValue(dc[u])
537- let ds = dc[p]
538- let dt = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
539- let dT = toBase58String(valueOrElse(dK, fromBase58String("WAVES")))
540- let dU = toBase58String(valueOrElse(dM, fromBase58String("WAVES")))
541- if (if ((dP != dT))
559+func dN (ds,dO,dP,dQ,dR,dS,ab,dT,dU) = {
560+ let di = bk()
561+ let dv = fromBase58String(di[q])
562+ let dV = di[r]
563+ let dW = di[s]
564+ let dX = di[v]
565+ let dY = di[w]
566+ let dj = parseIntValue(di[t])
567+ let dk = parseIntValue(di[u])
568+ let dy = di[p]
569+ let dz = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
570+ let dZ = toBase58String(valueOrElse(dQ, fromBase58String("WAVES")))
571+ let ea = toBase58String(valueOrElse(dS, fromBase58String("WAVES")))
572+ if (if ((dV != dZ))
542573 then true
543- else (dQ != dU))
574+ else (dW != ea))
544575 then throw("Invalid amt or price asset passed.")
545576 else {
546- let du = if (dN)
547- then bL(dP)
548- else (bL(dP) - dJ)
549- let dw = if (dN)
550- then bL(dQ)
551- else (bL(dQ) - dL)
552- let dV = D(dJ, dd)
553- let dW = D(dL, de)
554- let dX = bO(dW, dV)
555- let dv = D(du, dd)
556- let dx = D(dw, de)
557- let dY = if ((dt == 0))
577+ let dA = if (dT)
578+ then bT(dV)
579+ else (bT(dV) - dP)
580+ let dC = if (dT)
581+ then bT(dW)
582+ else (bT(dW) - dR)
583+ let eb = D(dP, dj)
584+ let ec = D(dR, dk)
585+ let ed = bW(ec, eb)
586+ let dB = D(dA, dj)
587+ let dD = D(dC, dk)
588+ let ee = if ((dz == 0))
558589 then {
559- let dy = e
560- let dZ = e
561- let dg = pow((dV * dW), 0, toBigInt(5), 1, 0, DOWN)
562- $Tuple5(H(dg, b), H(dV, dd), H(dW, de), bO((dx + dW), (dv + dV)), dZ)
590+ let dE = e
591+ let ef = e
592+ let dm = pow((eb * ec), 0, toBigInt(5), 1, 0, DOWN)
593+ $Tuple5(H(dm, b), H(eb, dj), H(ec, dk), bW((dD + ec), (dB + eb)), ef)
563594 }
564595 else {
565- let dy = bO(dx, dv)
566- let dZ = fraction(R((dy - dX)), d, dy)
567- let ea = D(dI, b)
568- if (if ((dy != e))
569- then (dZ > ea)
596+ let dE = bW(dD, dB)
597+ let ef = fraction(R((dE - ed)), d, dE)
598+ let eg = D(dO, b)
599+ if (if ((dE != e))
600+ then (ef > eg)
570601 else false)
571- then throw(((("Price slippage " + toString(dZ)) + " exceeded the passed limit of ") + toString(ea)))
602+ then throw(((("Price slippage " + toString(ef)) + " exceeded the passed limit of ") + toString(eg)))
572603 else {
573- let dB = D(dt, b)
574- let eb = fraction(dV, bR(dx, dv, CEILING), d, CEILING)
575- let ec = fraction(dW, d, bR(dx, dv, FLOOR), CEILING)
576- let ed = if ((eb > dW))
577- then $Tuple2(ec, dW)
578- else $Tuple2(dV, eb)
579- let ee = ed._1
580- let ef = ed._2
581- let dg = fraction(dB, ef, dx, FLOOR)
582- $Tuple5(K(dg, b, FLOOR), K(ee, dd, CEILING), K(ef, de, CEILING), dy, dZ)
604+ let dH = D(dz, b)
605+ let eh = fraction(eb, bZ(dD, dB, CEILING), d, CEILING)
606+ let ei = fraction(ec, d, bZ(dD, dB, FLOOR), CEILING)
607+ let ej = if ((eh > ec))
608+ then $Tuple2(ei, ec)
609+ else $Tuple2(eb, eh)
610+ let ek = ej._1
611+ let el = ej._2
612+ let dm = fraction(dH, el, dD, FLOOR)
613+ $Tuple5(K(dm, b, FLOOR), K(ek, dj, CEILING), K(el, dk, CEILING), dE, ef)
583614 }
584615 }
585- let eg = dY._1
586- let eh = dY._2
587- let ei = dY._3
588- let dz = H(dY._4, b)
589- let ej = H(dY._5, b)
590- if ((0 >= eg))
616+ let em = ee._1
617+ let en = ee._2
618+ let eo = ee._3
619+ let dF = H(ee._4, b)
620+ let ep = H(ee._5, b)
621+ if ((0 >= em))
591622 then throw("Invalid calculations. LP calculated is less than zero.")
592623 else {
593- let ek = if (!(dO))
624+ let eq = if (!(dU))
594625 then 0
595- else eg
596- let el = (dJ - eh)
597- let em = (dL - ei)
598- let en = [IntegerEntry(W(), dz), IntegerEntry(X(height, lastBlock.timestamp), dz), StringEntry(aa(ab, dm), bw(eh, ei, ek, dz, dI, ej, height, lastBlock.timestamp, el, em))]
599- $Tuple13(eg, ek, dz, du, dw, dt, dp, ds, en, el, em, dK, dM)
626+ else em
627+ let er = (dP - en)
628+ let es = (dR - eo)
629+ let et = [IntegerEntry(W(), dF), IntegerEntry(X(height, lastBlock.timestamp), dF), StringEntry(aa(ab, ds), bE(en, eo, eq, dF, dO, ep, height, lastBlock.timestamp, er, es))]
630+ $Tuple13(em, eq, dF, dA, dC, dz, dv, dy, et, er, es, dQ, dS)
600631 }
601632 }
602633 }
603634
604635
605-func eo (ep,eq,dt) = {
606- let er = G(ep, toBigInt(br))
607- let es = G(eq, toBigInt(bs))
608- let et = fraction(pow((er * es), 0, toBigInt(5), 1, 18, DOWN), g, dt)
609- if ((dt == f))
636+func eu (ev,ew,dz) = {
637+ let ex = G(ev, toBigInt(bz))
638+ let ey = G(ew, toBigInt(bA))
639+ let ez = fraction(pow((ex * ey), 0, toBigInt(5), 1, 18, DOWN), g, dz)
640+ if ((dz == f))
610641 then f
611- else et
642+ else ez
612643 }
613644
614645
615-func eu (ev,ew,ex) = {
616- let ey = (toBigInt(bL(bh(bp))) - ev)
617- let ez = (toBigInt(bL(bh(bq))) - ew)
618- let eA = (toBigInt(value(assetInfo(bo)).quantity) - ex)
619- let eB = eo(ey, ez, eA)
620- eB
646+func eA (eB,eC,eD) = {
647+ let eE = (toBigInt(bT(bp(bx))) - eB)
648+ let eF = (toBigInt(bT(bp(by))) - eC)
649+ let eG = (toBigInt(value(assetInfo(bw)).quantity) - eD)
650+ let eH = eu(eE, eF, eG)
651+ eH
621652 }
622653
623654
624-func eC (eD,eE,ex) = {
625- let ey = (bL(bh(bp)) + eD)
626- let ez = (bL(bh(bq)) + eE)
627- let eA = (value(assetInfo(bo)).quantity + ex)
628- let et = eo(toBigInt(ey), toBigInt(ez), toBigInt(eA))
629- let eF = [IntegerEntry(ak, height), StringEntry(aj, toString(et))]
630- $Tuple2(eF, et)
655+func eI (eJ,eK,eD) = {
656+ let eE = (bT(bp(bx)) + eJ)
657+ let eF = (bT(bp(by)) + eK)
658+ let eG = (value(assetInfo(bw)).quantity + eD)
659+ let ez = eu(toBigInt(eE), toBigInt(eF), toBigInt(eG))
660+ let eL = [IntegerEntry(ak, height), StringEntry(aj, toString(ez))]
661+ $Tuple2(eL, ez)
631662 }
632663
633664
634-func eG () = valueOrElse(getBoolean(aV, aH(toString(this))), false)
665+func eM () = valueOrElse(getBoolean(bd, aH(toString(this))), false)
635666
636667
637-func eH (eI,et) = if ((et >= eI))
668+func eN (eO,ez) = if ((ez >= eO))
638669 then true
639- else aS(makeString(["updated KLp lower than current KLp", toString(eI), toString(et)], " "))
670+ else ba(makeString(["updated KLp lower than current KLp", toString(eO), toString(ez)], " "))
640671
641672
642-func eJ (eK) = {
643- let ey = bL(bh(bp))
644- let ez = bL(bh(bq))
645- let eL = eK.amount
646- let eM = fraction(eK.amount, eK.price, b, FLOOR)
647- let eN = if ((eK.orderType == Buy))
648- then $Tuple2(eL, -(eM))
649- else $Tuple2(-(eL), eM)
650- let eD = eN._1
651- let eE = eN._2
652- if (if (if (ba())
673+func eP (eQ) = {
674+ let eE = bT(bp(bx))
675+ let eF = bT(bp(by))
676+ let eR = eQ.amount
677+ let eS = fraction(eQ.amount, eQ.price, b, FLOOR)
678+ let eT = if ((eQ.orderType == Buy))
679+ then $Tuple2(eR, -(eS))
680+ else $Tuple2(-(eR), eS)
681+ let eJ = eT._1
682+ let eK = eT._2
683+ if (if (if (bi())
653684 then true
654- else (bn == m))
685+ else (bv == m))
655686 then true
656- else (bn == n))
687+ else (bv == n))
657688 then throw("Exchange operations disabled")
658- else if (if ((eK.assetPair.amountAsset != bp))
689+ else if (if ((eQ.assetPair.amountAsset != bx))
659690 then true
660- else (eK.assetPair.priceAsset != bq))
691+ else (eQ.assetPair.priceAsset != by))
661692 then throw("Wrong order assets.")
662693 else {
663- let eO = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
664- let eP = eC(eD, eE, 0)
665- let eQ = eP._1
666- let eR = eP._2
667- let eS = (eR >= eO)
668- let eT = makeString(["kLp=", toString(eO), " kLpNew=", toString(eR), " amountAssetBalance=", toString(ey), " priceAssetBalance=", toString(ez), " amountAssetBalanceDelta=", toString(eD), " priceAssetBalanceDelta=", toString(eE), " height=", toString(height)], "")
669- $Tuple2(eS, eT)
694+ let eU = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), bc("invalid kLp"))
695+ let eV = eI(eJ, eK, 0)
696+ let eW = eV._1
697+ let eX = eV._2
698+ let eY = (eX >= eU)
699+ let eZ = makeString(["kLp=", toString(eU), " kLpNew=", toString(eX), " amountAssetBalance=", toString(eE), " priceAssetBalance=", toString(eF), " amountAssetBalanceDelta=", toString(eJ), " priceAssetBalanceDelta=", toString(eK), " height=", toString(height)], "")
700+ $Tuple2(eY, eZ)
670701 }
671702 }
672703
673704
674-func eU (eV) = if ((size(eV.payments) != 1))
705+func fa (fb) = if ((size(fb.payments) != 1))
675706 then throw("exactly 1 payment is expected")
676707 else {
677- let eW = value(eV.payments[0])
678- let dn = value(eW.assetId)
679- let eX = eW.amount
680- let dY = dl(toBase58String(eV.transactionId), toBase58String(dn), eX, eV.caller)
681- let dE = dY._1
682- let dF = dY._2
683- let ds = parseIntValue(dY._9)
684- let dG = dY._10
685- if (if (ba())
708+ let fc = value(fb.payments[0])
709+ let dt = value(fc.assetId)
710+ let fd = fc.amount
711+ let ee = dr(toBase58String(fb.transactionId), toBase58String(dt), fd, fb.caller)
712+ let dK = ee._1
713+ let dL = ee._2
714+ let dy = parseIntValue(ee._9)
715+ let dM = ee._10
716+ if (if (bi())
686717 then true
687- else (ds == n))
688- then throw(("Get operation is blocked by admin. Status = " + toString(ds)))
689- else $Tuple5(dE, dF, eX, dn, dG)
718+ else (dy == n))
719+ then throw(("Get operation is blocked by admin. Status = " + toString(dy)))
720+ else $Tuple5(dK, dL, fd, dt, dM)
690721 }
691722
692723
693-func eY (eV,dI,dO) = if ((size(eV.payments) != 2))
724+func fe (fb,dO,dU) = if ((size(fb.payments) != 2))
694725 then throw("exactly 2 payments are expected")
695726 else {
696- let eZ = value(eV.payments[0])
697- let fa = value(eV.payments[1])
698- let fb = dH(toBase58String(eV.transactionId), dI, eZ.amount, eZ.assetId, fa.amount, fa.assetId, toString(eV.caller), false, dO)
699- let ds = parseIntValue(fb._8)
700- if (if (if (ba())
727+ let ff = value(fb.payments[0])
728+ let fg = value(fb.payments[1])
729+ let fh = dN(toBase58String(fb.transactionId), dO, ff.amount, ff.assetId, fg.amount, fg.assetId, toString(fb.caller), false, dU)
730+ let dy = parseIntValue(fh._8)
731+ if (if (if (bi())
701732 then true
702- else (ds == l))
733+ else (dy == l))
703734 then true
704- else (ds == n))
705- then throw(("Put operation is blocked by admin. Status = " + toString(ds)))
706- else fb
735+ else (dy == n))
736+ then throw(("Put operation is blocked by admin. Status = " + toString(dy)))
737+ else fh
707738 }
708739
709740
710-func fc (bY) = {
711- let fd = invoke(aV, "emit", [bY], nil)
712- if ((fd == fd))
741+func fi (cf) = {
742+ let fj = invoke(bd, "emit", [cf], nil)
743+ if ((fj == fj))
713744 then {
714- let fe = {
715- let bV = fd
716- if ($isInstanceOf(bV, "Address"))
745+ let fk = {
746+ let aQ = fj
747+ if ($isInstanceOf(aQ, "Address"))
717748 then {
718- let ff = bV
719- invoke(ff, "emit", [bY], nil)
749+ let fl = aQ
750+ invoke(fl, "emit", [cf], nil)
720751 }
721752 else unit
722753 }
723- if ((fe == fe))
724- then bY
754+ if ((fk == fk))
755+ then cf
725756 else throw("Strict value is not equal to itself.")
726757 }
727758 else throw("Strict value is not equal to itself.")
728759 }
729760
730761
731-func fg (bY,ai) = {
732- let fh = if ((ai == 0))
762+func fm (cf,ai) = {
763+ let fn = if ((ai == 0))
733764 then 0
734- else fraction(bY, ai, b)
735- $Tuple2((bY - fh), fh)
765+ else fraction(cf, ai, b)
766+ $Tuple2((cf - fn), fn)
736767 }
737768
738769
739-func fi (fj,fk,ab,ac) = {
740- let fl = (ac == unit)
741- let fm = bL(bh(bp))
742- let fn = bL(bh(bq))
743- let fo = if ((fk == bp))
770+func fo (fp,fq,ab,ac) = {
771+ let fr = (ac == unit)
772+ let fs = bT(bp(bx))
773+ let ft = bT(bp(by))
774+ let fu = if ((fq == bx))
744775 then true
745- else if ((fk == bq))
776+ else if ((fq == by))
746777 then false
747- else aS("invalid asset")
748- let fp = if (fl)
749- then $Tuple2(fm, fn)
750- else if (fo)
751- then $Tuple2((fm - fj), fn)
752- else $Tuple2(fm, (fn - fj))
753- let fq = fp._1
754- let fr = fp._2
755- let fs = if (fo)
756- then $Tuple2(fj, 0)
757- else $Tuple2(0, fj)
758- let ft = fs._1
759- let fu = fs._2
760- let eL = fg(ft, aX)._1
761- let eM = fg(fu, aX)._1
762- let fv = fg(fj, aX)
778+ else ba("invalid asset")
779+ let fv = if (fr)
780+ then $Tuple2(fs, ft)
781+ else if (fu)
782+ then $Tuple2((fs - fp), ft)
783+ else $Tuple2(fs, (ft - fp))
763784 let fw = fv._1
764- let fh = fv._2
765- let fx = (fq + eL)
766- let fy = (fr + eM)
767- let fz = bO(D(fy, bs), D(fx, br))
768- let fA = H(fz, b)
769- let fB = if (fo)
770- then fq
771- else fr
772- let fC = toBigInt(fB)
773- let fD = toBigInt(valueOrErrorMessage(assetInfo(bo), (("asset " + toBase58String(bo)) + " doesn't exist")).quantity)
774- let fE = if ((fD > f))
785+ let fx = fv._2
786+ let fy = if (fu)
787+ then $Tuple2(fp, 0)
788+ else $Tuple2(0, fp)
789+ let fz = fy._1
790+ let fA = fy._2
791+ let eR = fm(fz, bf)._1
792+ let eS = fm(fA, bf)._1
793+ let fB = fm(fp, bf)
794+ let fC = fB._1
795+ let fn = fB._2
796+ let fD = (fw + eR)
797+ let fE = (fx + eS)
798+ let fF = bW(D(fE, bA), D(fD, bz))
799+ let fG = H(fF, b)
800+ let fH = if (fu)
801+ then fw
802+ else fx
803+ let fI = toBigInt(fH)
804+ let fJ = toBigInt(valueOrErrorMessage(assetInfo(bw), (("asset " + toBase58String(bw)) + " doesn't exist")).quantity)
805+ let fK = if ((fJ > f))
775806 then true
776- else aS("initial deposit requires all coins")
777- if ((fE == fE))
807+ else ba("initial deposit requires all coins")
808+ if ((fK == fK))
778809 then {
779- let fF = toBigInt(fw)
780- let fG = max([0, toInt(((fD * (sqrtBigInt((d + ((fF * d) / fC)), 18, 18, DOWN) - d)) / d))])
781- let en = if (fl)
810+ let fL = toBigInt(fC)
811+ let fM = max([0, toInt(((fJ * (sqrtBigInt((d + ((fL * d) / fI)), 18, 18, DOWN) - d)) / d))])
812+ let et = if (fr)
782813 then nil
783- else [IntegerEntry(W(), fA), IntegerEntry(X(height, lastBlock.timestamp), fA), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), bw(ft, fu, fG, fA, 0, 0, height, lastBlock.timestamp, 0, 0))]
784- let fH = bO(D(fr, bs), D(fq, br))
785- let fI = H(fH, b)
786- let fJ = {
787- let fK = if (fo)
788- then $Tuple2(ft, fq)
789- else $Tuple2(fu, fr)
790- let bY = fK._1
791- let fL = fK._2
792- let fM = toInt(fraction(fD, toBigInt((bY / 2)), toBigInt(fL)))
793- fraction((fG - fM), b, fM)
814+ else [IntegerEntry(W(), fG), IntegerEntry(X(height, lastBlock.timestamp), fG), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), bE(fz, fA, fM, fG, 0, 0, height, lastBlock.timestamp, 0, 0))]
815+ let fN = bW(D(fx, bA), D(fw, bz))
816+ let fO = H(fN, b)
817+ let fP = {
818+ let fQ = if (fu)
819+ then $Tuple2(fz, fw)
820+ else $Tuple2(fA, fx)
821+ let cf = fQ._1
822+ let fR = fQ._2
823+ let fS = toInt(fraction(fJ, toBigInt((cf / 2)), toBigInt(fR)))
824+ fraction((fM - fS), b, fS)
794825 }
795- $Tuple5(fG, en, fh, fJ, fo)
826+ $Tuple5(fM, et, fn, fP, fu)
796827 }
797828 else throw("Strict value is not equal to itself.")
798829 }
799830
800831
801-func fN (fO,fw,fk,ab,ac) = {
802- let fl = (ac == unit)
803- let dc = bc()
804- let dd = parseIntValue(dc[t])
805- let de = parseIntValue(dc[u])
806- let fP = [if ((fk == bo))
832+func fT (fU,fC,fq,ab,ac) = {
833+ let fr = (ac == unit)
834+ let di = bk()
835+ let dj = parseIntValue(di[t])
836+ let dk = parseIntValue(di[u])
837+ let fV = [if ((fq == bw))
807838 then true
808- else aS("invalid lp asset")]
809- if ((fP == fP))
839+ else ba("invalid lp asset")]
840+ if ((fV == fV))
810841 then {
811- let fQ = if ((fO == bp))
842+ let fW = if ((fU == bx))
812843 then true
813- else if ((fO == bq))
844+ else if ((fU == by))
814845 then false
815- else aS("invalid asset")
816- let fR = if (fQ)
817- then toBigInt(bL(bh(bp)))
818- else toBigInt(bL(bh(bq)))
819- let fS = if (fQ)
820- then dd
821- else de
822- let fT = bL(bh(bp))
823- let fU = bL(bh(bq))
824- let fV = if (fQ)
825- then fT
826- else fU
827- let fW = toBigInt(fV)
828- let fD = toBigInt(valueOrErrorMessage(assetInfo(bo), (("asset " + toBase58String(bo)) + " doesn't exist")).quantity)
829- let fX = toBigInt(fw)
830- let fY = max([0, toInt(((fR * (d - pow((d - ((fX * d) / fD)), 18, h, 0, 18, DOWN))) / d))])
831- let fZ = fg(fY, aZ)
832- let ga = fZ._1
833- let fh = fZ._2
834- let gb = if (fQ)
835- then $Tuple4(ga, 0, (fT - fY), fU)
836- else $Tuple4(0, ga, fT, (fU - fY))
837- let gc = gb._1
838- let gd = gb._2
839- let ge = gb._3
840- let gf = gb._4
841- let fz = bO(D(gf, bs), D(ge, br))
842- let fA = H(fz, b)
843- let en = if (fl)
846+ else ba("invalid asset")
847+ let fX = if (fW)
848+ then toBigInt(bT(bp(bx)))
849+ else toBigInt(bT(bp(by)))
850+ let fY = if (fW)
851+ then dj
852+ else dk
853+ let fZ = bT(bp(bx))
854+ let ga = bT(bp(by))
855+ let gb = if (fW)
856+ then fZ
857+ else ga
858+ let gc = toBigInt(gb)
859+ let fJ = toBigInt(valueOrErrorMessage(assetInfo(bw), (("asset " + toBase58String(bw)) + " doesn't exist")).quantity)
860+ let gd = toBigInt(fC)
861+ let ge = max([0, toInt(((fX * (d - pow((d - ((gd * d) / fJ)), 18, h, 0, 18, DOWN))) / d))])
862+ let gf = fm(ge, bh)
863+ let gg = gf._1
864+ let fn = gf._2
865+ let gh = if (fW)
866+ then $Tuple4(gg, 0, (fZ - ge), ga)
867+ else $Tuple4(0, gg, fZ, (ga - ge))
868+ let gi = gh._1
869+ let gj = gh._2
870+ let gk = gh._3
871+ let gl = gh._4
872+ let fF = bW(D(gl, bA), D(gk, bz))
873+ let fG = H(fF, b)
874+ let et = if (fr)
844875 then nil
845- else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bH(gc, gd, fw, fA, height, lastBlock.timestamp)), IntegerEntry(W(), fA), IntegerEntry(X(height, lastBlock.timestamp), fA)]
846- let fH = bO(D(fU, bs), D(fT, br))
847- let fI = H(fH, b)
848- let fJ = {
849- let gg = (toInt(fraction(fR, fX, fD)) * 2)
850- fraction((ga - gg), b, gg)
876+ else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bP(gi, gj, fC, fG, height, lastBlock.timestamp)), IntegerEntry(W(), fG), IntegerEntry(X(height, lastBlock.timestamp), fG)]
877+ let fN = bW(D(ga, bA), D(fZ, bz))
878+ let fO = H(fN, b)
879+ let fP = {
880+ let gm = (toInt(fraction(fX, gd, fJ)) * 2)
881+ fraction((gg - gm), b, gm)
851882 }
852- $Tuple5(ga, en, fh, fJ, fQ)
883+ $Tuple5(gg, et, fn, fP, fW)
853884 }
854885 else throw("Strict value is not equal to itself.")
855886 }
856887
857888
858-func gh () = {
859- let bV = getString(U())
860- if ($isInstanceOf(bV, "String"))
889+func gn () = {
890+ let go = aS()
891+ let aQ = getString(go, U())
892+ if ($isInstanceOf(aQ, "String"))
861893 then {
862- let gi = bV
863- fromBase58String(gi)
894+ let aV = aQ
895+ fromBase58String(aV)
864896 }
865- else if ($isInstanceOf(bV, "Unit"))
897+ else if ($isInstanceOf(aQ, "Unit"))
866898 then unit
867899 else throw("Match error")
868900 }
869901
870902
871-func gj () = {
872- let bV = getString(V())
873- if ($isInstanceOf(bV, "String"))
903+func gp (fb) = {
904+ let aQ = gn()
905+ if ($isInstanceOf(aQ, "ByteVector"))
874906 then {
875- let gi = bV
876- fromBase58String(gi)
907+ let gq = aQ
908+ (fb.callerPublicKey == gq)
877909 }
878- else if ($isInstanceOf(bV, "Unit"))
879- then unit
910+ else if ($isInstanceOf(aQ, "Unit"))
911+ then (fb.caller == this)
880912 else throw("Match error")
881913 }
882914
883915
884-func gk (eV) = {
885- let bV = gh()
886- if ($isInstanceOf(bV, "ByteVector"))
916+func gr (fb) = {
917+ let gs = throw("Permission denied")
918+ let aQ = gn()
919+ if ($isInstanceOf(aQ, "ByteVector"))
887920 then {
888- let gl = bV
889- (eV.callerPublicKey == gl)
921+ let gq = aQ
922+ if ((fb.callerPublicKey == gq))
923+ then true
924+ else gs
890925 }
891- else if ($isInstanceOf(bV, "Unit"))
892- then (eV.caller == this)
926+ else if ($isInstanceOf(aQ, "Unit"))
927+ then if ((fb.caller == this))
928+ then true
929+ else gs
893930 else throw("Match error")
894931 }
895932
896933
897-func gm (eV) = {
898- let gn = throw("Permission denied")
899- let bV = gh()
900- if ($isInstanceOf(bV, "ByteVector"))
901- then {
902- let gl = bV
903- if ((eV.callerPublicKey == gl))
904- then true
905- else gn
906- }
907- else if ($isInstanceOf(bV, "Unit"))
908- then if ((eV.caller == this))
909- then true
910- else gn
911- else throw("Match error")
912- }
913-
914-
915-@Callable(eV)
916-func rebalance () = (cC(aO(this, ae())) ++ cC(aO(this, af())))
934+@Callable(fb)
935+func rebalance () = (cI(aW(this, ae())) ++ cI(aW(this, af())))
917936
918937
919938
920-@Callable(eV)
921-func calculateAmountOutForSwapREADONLY (go,gp,gq) = {
922- let gr = if ((gp == false))
939+@Callable(fb)
940+func calculateAmountOutForSwapREADONLY (gt,gu,gv) = {
941+ let gw = if ((gu == false))
923942 then {
924- let gs = aO(this, af())
925- let gt = aO(this, ae())
926- $Tuple2(gs, gt)
943+ let gx = aW(this, af())
944+ let gy = aW(this, ae())
945+ $Tuple2(gx, gy)
927946 }
928947 else {
929- let gs = aO(this, ae())
930- let gt = aO(this, af())
931- $Tuple2(gs, gt)
948+ let gx = aW(this, ae())
949+ let gy = aW(this, af())
950+ $Tuple2(gx, gy)
932951 }
933- let gs = gr._1
934- let gt = gr._2
935- let gu = bL(gt)
936- let gv = bL(gs)
937- let gw = fraction(gv, go, (gu + go))
938- let gx = (toBigInt(gu) * toBigInt(gv))
939- let gy = (((toBigInt(bL(gt)) + toBigInt(go)) + toBigInt(gq)) * (toBigInt(bL(gs)) - toBigInt(gw)))
940- let gz = if ((gy >= gx))
952+ let gx = gw._1
953+ let gy = gw._2
954+ let gz = bT(gy)
955+ let gA = bT(gx)
956+ let gB = fraction(gA, gt, (gz + gt))
957+ let gC = (toBigInt(gz) * toBigInt(gA))
958+ let gD = (((toBigInt(bT(gy)) + toBigInt(gt)) + toBigInt(gv)) * (toBigInt(bT(gx)) - toBigInt(gB)))
959+ let gE = if ((gD >= gC))
941960 then true
942961 else throw("new K is fewer error")
943- if ((gz == gz))
944- then $Tuple2(nil, gw)
962+ if ((gE == gE))
963+ then $Tuple2(nil, gB)
945964 else throw("Strict value is not equal to itself.")
946965 }
947966
948967
949968
950-@Callable(eV)
951-func calculateAmountOutForSwapAndSendTokens (go,gp,gA,gB,gq) = {
952- let gC = {
953- let aY = invoke(aV, "getSwapContractREADONLY", nil, nil)
954- if ($isInstanceOf(aY, "String"))
955- then aY
956- else throw(($getType(aY) + " couldn't be cast to String"))
969+@Callable(fb)
970+func calculateAmountOutForSwapAndSendTokens (gt,gu,gF,gG,gv) = {
971+ let gH = {
972+ let bg = invoke(bd, "getSwapContractREADONLY", nil, nil)
973+ if ($isInstanceOf(bg, "String"))
974+ then bg
975+ else throw(($getType(bg) + " couldn't be cast to String"))
957976 }
958- let fP = [if ((value(eV.payments[0]).amount >= go))
977+ let fV = [if ((value(fb.payments[0]).amount >= gt))
959978 then true
960- else aS("Wrong amount"), if ((eV.caller == addressFromStringValue(gC)))
979+ else ba("Wrong amount"), if ((fb.caller == addressFromStringValue(gH)))
961980 then true
962- else aS("Permission denied")]
963- if ((fP == fP))
981+ else ba("Permission denied")]
982+ if ((fV == fV))
964983 then {
965- let eW = value(eV.payments[0])
966- let gt = bh(eW.assetId)
967- let gs = if ((gp == false))
968- then aO(this, af())
969- else aO(this, ae())
970- let gu = (bL(gt) - value(eV.payments[0]).amount)
971- let gv = bL(gs)
972- let gw = fraction(gv, go, (gu + go))
973- let gx = (toBigInt(gu) * toBigInt(gv))
974- let gy = ((toBigInt(bL(gt)) + toBigInt(gq)) * (toBigInt(bL(gs)) - toBigInt(gw)))
975- let gz = if ((gy >= gx))
984+ let fc = value(fb.payments[0])
985+ let gy = bp(fc.assetId)
986+ let gx = if ((gu == false))
987+ then aW(this, af())
988+ else aW(this, ae())
989+ let gz = (bT(gy) - value(fb.payments[0]).amount)
990+ let gA = bT(gx)
991+ let gB = fraction(gA, gt, (gz + gt))
992+ let gC = (toBigInt(gz) * toBigInt(gA))
993+ let gD = ((toBigInt(bT(gy)) + toBigInt(gv)) * (toBigInt(bT(gx)) - toBigInt(gB)))
994+ let gE = if ((gD >= gC))
976995 then true
977996 else throw("new K is fewer error")
978- if ((gz == gz))
997+ if ((gE == gE))
979998 then {
980- let gD = if ((gw >= gA))
999+ let gI = if ((gB >= gF))
9811000 then true
9821001 else throw("Exchange result is fewer coins than expected")
983- if ((gD == gD))
1002+ if ((gI == gI))
9841003 then {
985- let gE = cC(gt)
986- if ((gE == gE))
1004+ let gJ = cI(gy)
1005+ if ((gJ == gJ))
9871006 then {
988- let gF = cJ(gs, gw)
989- if ((gF == gF))
990- then $Tuple2(((gF ++ gE) ++ [ScriptTransfer(addressFromStringValue(gB), gw, bf(gs))]), gw)
1007+ let gK = cP(gx, gB)
1008+ if ((gK == gK))
1009+ then $Tuple2(((gK ++ gJ) ++ [ScriptTransfer(addressFromStringValue(gG), gB, bn(gx))]), gB)
9911010 else throw("Strict value is not equal to itself.")
9921011 }
9931012 else throw("Strict value is not equal to itself.")
9941013 }
9951014 else throw("Strict value is not equal to itself.")
9961015 }
9971016 else throw("Strict value is not equal to itself.")
9981017 }
9991018 else throw("Strict value is not equal to itself.")
10001019 }
10011020
10021021
10031022
1004-@Callable(eV)
1005-func setManager (gG) = {
1006- let gH = gm(eV)
1007- if ((gH == gH))
1008- then {
1009- let gI = fromBase58String(gG)
1010- if ((gI == gI))
1011- then [StringEntry(V(), gG)]
1012- else throw("Strict value is not equal to itself.")
1013- }
1014- else throw("Strict value is not equal to itself.")
1015- }
1016-
1017-
1018-
1019-@Callable(eV)
1020-func confirmManager () = {
1021- let gJ = gj()
1022- let gK = if (isDefined(gJ))
1023- then true
1024- else throw("No pending manager")
1025- if ((gK == gK))
1026- then {
1027- let gL = if ((eV.callerPublicKey == value(gJ)))
1028- then true
1029- else throw("You are not pending manager")
1030- if ((gL == gL))
1031- then [StringEntry(U(), toBase58String(value(gJ))), DeleteEntry(V())]
1032- else throw("Strict value is not equal to itself.")
1033- }
1034- else throw("Strict value is not equal to itself.")
1035- }
1036-
1037-
1038-
1039-@Callable(eV)
1040-func put (dI,gM) = if ((0 > dI))
1023+@Callable(fb)
1024+func put (dO,gL) = if ((0 > dO))
10411025 then throw("Invalid slippageTolerance passed")
10421026 else {
1043- let fb = eY(eV, dI, true)
1044- let ek = fb._2
1045- let dp = fb._7
1046- let dG = fb._9
1047- let el = fb._10
1048- let em = fb._11
1049- let gN = fb._12
1050- let gO = fb._13
1051- let eZ = toBigInt(value(eV.payments[0]).amount)
1052- let fa = toBigInt(value(eV.payments[1]).amount)
1053- let eB = eu(eZ, fa, toBigInt(0))
1054- if ((eB == eB))
1027+ let fh = fe(fb, dO, true)
1028+ let eq = fh._2
1029+ let dv = fh._7
1030+ let dM = fh._9
1031+ let er = fh._10
1032+ let es = fh._11
1033+ let gM = fh._12
1034+ let gN = fh._13
1035+ let ff = toBigInt(value(fb.payments[0]).amount)
1036+ let fg = toBigInt(value(fb.payments[1]).amount)
1037+ let eH = eA(ff, fg, toBigInt(0))
1038+ if ((eH == eH))
10551039 then {
1056- let fd = invoke(aV, "emit", [ek], nil)
1057- if ((fd == fd))
1040+ let fj = invoke(bd, "emit", [eq], nil)
1041+ if ((fj == fj))
10581042 then {
1059- let fe = {
1060- let bV = fd
1061- if ($isInstanceOf(bV, "Address"))
1043+ let fk = {
1044+ let aQ = fj
1045+ if ($isInstanceOf(aQ, "Address"))
10621046 then {
1063- let ff = bV
1064- invoke(ff, "emit", [ek], nil)
1047+ let fl = aQ
1048+ invoke(fl, "emit", [eq], nil)
10651049 }
10661050 else unit
10671051 }
1068- if ((fe == fe))
1052+ if ((fk == fk))
10691053 then {
1070- let gP = if ((el > 0))
1071- then invoke(bv, "put", nil, [AttachedPayment(gN, el)])
1054+ let gO = if ((er > 0))
1055+ then invoke(bD, "put", nil, [AttachedPayment(gM, er)])
10721056 else nil
1073- if ((gP == gP))
1057+ if ((gO == gO))
10741058 then {
1075- let gQ = if ((em > 0))
1076- then invoke(bv, "put", nil, [AttachedPayment(gO, em)])
1059+ let gP = if ((es > 0))
1060+ then invoke(bD, "put", nil, [AttachedPayment(gN, es)])
10771061 else nil
1078- if ((gQ == gQ))
1062+ if ((gP == gP))
10791063 then {
1080- let gR = if (gM)
1064+ let gQ = if (gL)
10811065 then {
1082- let gS = invoke(bu, "stake", nil, [AttachedPayment(dp, ek)])
1083- if ((gS == gS))
1066+ let gR = invoke(bC, "stake", nil, [AttachedPayment(dv, eq)])
1067+ if ((gR == gR))
10841068 then nil
10851069 else throw("Strict value is not equal to itself.")
10861070 }
1087- else [ScriptTransfer(eV.caller, ek, dp)]
1088- let gT = eC(0, 0, 0)
1089- if ((gT == gT))
1071+ else [ScriptTransfer(fb.caller, eq, dv)]
1072+ let gS = eI(0, 0, 0)
1073+ if ((gS == gS))
10901074 then {
1091- let et = gT._2
1092- let gU = gT._1
1093- let gV = eH(eB, et)
1094- if ((gV == gV))
1075+ let ez = gS._2
1076+ let gT = gS._1
1077+ let gU = eN(eH, ez)
1078+ if ((gU == gU))
10951079 then {
1096- let gW = invoke(this, "rebalance", nil, nil)
1097- if ((gW == gW))
1098- then ((dG ++ gR) ++ gU)
1080+ let gV = invoke(this, "rebalance", nil, nil)
1081+ if ((gV == gV))
1082+ then ((dM ++ gQ) ++ gT)
10991083 else throw("Strict value is not equal to itself.")
11001084 }
11011085 else throw("Strict value is not equal to itself.")
11021086 }
11031087 else throw("Strict value is not equal to itself.")
11041088 }
11051089 else throw("Strict value is not equal to itself.")
11061090 }
11071091 else throw("Strict value is not equal to itself.")
11081092 }
11091093 else throw("Strict value is not equal to itself.")
11101094 }
11111095 else throw("Strict value is not equal to itself.")
11121096 }
11131097 else throw("Strict value is not equal to itself.")
11141098 }
11151099
11161100
11171101
1118-@Callable(eV)
1119-func putForFree (gX) = if ((0 > gX))
1102+@Callable(fb)
1103+func putForFree (gW) = if ((0 > gW))
11201104 then throw("Invalid value passed")
11211105 else {
1122- let fb = eY(eV, gX, false)
1123- let dG = fb._9
1124- let eZ = toBigInt(value(eV.payments[0]).amount)
1125- let fa = toBigInt(value(eV.payments[1]).amount)
1126- let eB = eu(eZ, fa, toBigInt(0))
1127- if ((eB == eB))
1106+ let fh = fe(fb, gW, false)
1107+ let dM = fh._9
1108+ let ff = toBigInt(value(fb.payments[0]).amount)
1109+ let fg = toBigInt(value(fb.payments[1]).amount)
1110+ let eH = eA(ff, fg, toBigInt(0))
1111+ if ((eH == eH))
11281112 then {
1129- let gY = eC(0, 0, 0)
1130- let gU = gY._1
1131- let et = gY._2
1132- let gV = eH(eB, et)
1133- if ((gV == gV))
1134- then (dG ++ gU)
1113+ let gX = eI(0, 0, 0)
1114+ let gT = gX._1
1115+ let ez = gX._2
1116+ let gU = eN(eH, ez)
1117+ if ((gU == gU))
1118+ then (dM ++ gT)
11351119 else throw("Strict value is not equal to itself.")
11361120 }
11371121 else throw("Strict value is not equal to itself.")
11381122 }
11391123
11401124
11411125
1142-@Callable(eV)
1143-func putOneTkn (gZ,ha) = {
1144- let hb = {
1145- let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1146- if ($isInstanceOf(aY, "Boolean"))
1147- then aY
1148- else throw(($getType(aY) + " couldn't be cast to Boolean"))
1126+@Callable(fb)
1127+func putOneTkn (gY,gZ) = {
1128+ let ha = {
1129+ let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1130+ if ($isInstanceOf(bg, "Boolean"))
1131+ then bg
1132+ else throw(($getType(bg) + " couldn't be cast to Boolean"))
11491133 }
1150- let hc = if (if (if (ba())
1134+ let hb = if (if (if (bi())
11511135 then true
1152- else (bn == l))
1136+ else (bv == l))
11531137 then true
1154- else (bn == n))
1138+ else (bv == n))
11551139 then true
1156- else hb
1157- let fP = [if (if (!(hc))
1140+ else ha
1141+ let fV = [if (if (!(hb))
11581142 then true
1159- else gk(eV))
1143+ else gp(fb))
11601144 then true
1161- else aS("put operation is blocked by admin"), if ((size(eV.payments) == 1))
1145+ else ba("put operation is blocked by admin"), if ((size(fb.payments) == 1))
11621146 then true
1163- else aS("exactly 1 payment are expected")]
1164- if ((fP == fP))
1147+ else ba("exactly 1 payment are expected")]
1148+ if ((fV == fV))
11651149 then {
1166- let hd = eV.payments[0]
1167- let fk = hd.assetId
1168- let fj = hd.amount
1169- let eB = if ((fk == bp))
1170- then eu(toBigInt(fj), toBigInt(0), toBigInt(0))
1171- else if ((fk == bq))
1172- then eu(toBigInt(0), toBigInt(fj), toBigInt(0))
1173- else aS("payment asset is not supported")
1174- if ((eB == eB))
1150+ let hc = fb.payments[0]
1151+ let fq = hc.assetId
1152+ let fp = hc.amount
1153+ let eH = if ((fq == bx))
1154+ then eA(toBigInt(fp), toBigInt(0), toBigInt(0))
1155+ else if ((fq == by))
1156+ then eA(toBigInt(0), toBigInt(fp), toBigInt(0))
1157+ else ba("payment asset is not supported")
1158+ if ((eH == eH))
11751159 then {
1176- let ab = eV.caller
1177- let ac = eV.transactionId
1178- let he = fi(fj, fk, ab, ac)
1179- if ((he == he))
1160+ let ab = fb.caller
1161+ let ac = fb.transactionId
1162+ let hd = fo(fp, fq, ab, ac)
1163+ if ((hd == hd))
11801164 then {
1181- let fo = he._5
1182- let hf = he._4
1183- let fh = he._3
1184- let en = he._2
1185- let hg = he._1
1186- let hh = if (if ((gZ > 0))
1187- then (gZ > hg)
1165+ let fu = hd._5
1166+ let he = hd._4
1167+ let fn = hd._3
1168+ let et = hd._2
1169+ let hf = hd._1
1170+ let hg = if (if ((gY > 0))
1171+ then (gY > hf)
11881172 else false)
1189- then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1190- else hg
1191- let fd = fc(hh)
1192- if ((fd == fd))
1173+ then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1174+ else hf
1175+ let fj = fi(hg)
1176+ if ((fj == fj))
11931177 then {
1194- let gR = if (ha)
1178+ let gQ = if (gZ)
11951179 then {
1196- let hi = invoke(bu, "stake", nil, [AttachedPayment(bo, hh)])
1197- if ((hi == hi))
1180+ let hh = invoke(bC, "stake", nil, [AttachedPayment(bw, hg)])
1181+ if ((hh == hh))
11981182 then nil
11991183 else throw("Strict value is not equal to itself.")
12001184 }
1201- else [ScriptTransfer(eV.caller, hh, bo)]
1202- let hj = if ((fh > 0))
1203- then [ScriptTransfer(aW, fh, fk)]
1185+ else [ScriptTransfer(fb.caller, hg, bw)]
1186+ let hi = if ((fn > 0))
1187+ then [ScriptTransfer(be, fn, fq)]
12041188 else nil
1205- let hk = if ((this == aW))
1189+ let hj = if ((this == be))
12061190 then $Tuple2(0, 0)
1207- else if (fo)
1208- then $Tuple2(-(fh), 0)
1209- else $Tuple2(0, -(fh))
1210- let eD = hk._1
1211- let eE = hk._2
1212- let hl = eC(eD, eE, 0)
1213- let gU = hl._1
1214- let et = hl._2
1215- let eO = value(getString(aj))
1216- let gV = eH(eB, et)
1217- if ((gV == gV))
1191+ else if (fu)
1192+ then $Tuple2(-(fn), 0)
1193+ else $Tuple2(0, -(fn))
1194+ let eJ = hj._1
1195+ let eK = hj._2
1196+ let hk = eI(eJ, eK, 0)
1197+ let gT = hk._1
1198+ let ez = hk._2
1199+ let eU = value(getString(aj))
1200+ let gU = eN(eH, ez)
1201+ if ((gU == gU))
12181202 then {
1219- let gW = invoke(this, "rebalance", nil, nil)
1220- if ((gW == gW))
1221- then $Tuple2((((en ++ gR) ++ hj) ++ gU), hh)
1203+ let gV = invoke(this, "rebalance", nil, nil)
1204+ if ((gV == gV))
1205+ then $Tuple2((((et ++ gQ) ++ hi) ++ gT), hg)
12221206 else throw("Strict value is not equal to itself.")
12231207 }
12241208 else throw("Strict value is not equal to itself.")
12251209 }
12261210 else throw("Strict value is not equal to itself.")
12271211 }
12281212 else throw("Strict value is not equal to itself.")
12291213 }
12301214 else throw("Strict value is not equal to itself.")
12311215 }
12321216 else throw("Strict value is not equal to itself.")
12331217 }
12341218
12351219
12361220
1237-@Callable(eV)
1238-func putOneTknREADONLY (fk,fj) = {
1239- let hm = fi(fj, bf(fk), unit, unit)
1240- let hg = hm._1
1241- let en = hm._2
1242- let fh = hm._3
1243- let hf = hm._4
1244- let fo = hm._5
1245- $Tuple2(nil, $Tuple3(hg, fh, hf))
1221+@Callable(fb)
1222+func putOneTknREADONLY (fq,fp) = {
1223+ let hl = fo(fp, bn(fq), unit, unit)
1224+ let hf = hl._1
1225+ let et = hl._2
1226+ let fn = hl._3
1227+ let he = hl._4
1228+ let fu = hl._5
1229+ $Tuple2(nil, $Tuple3(hf, fn, he))
12461230 }
12471231
12481232
12491233
1250-@Callable(eV)
1251-func getOneTkn (hn,gZ) = {
1252- let hb = {
1253- let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1254- if ($isInstanceOf(aY, "Boolean"))
1255- then aY
1256- else throw(($getType(aY) + " couldn't be cast to Boolean"))
1234+@Callable(fb)
1235+func getOneTkn (hm,gY) = {
1236+ let ha = {
1237+ let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1238+ if ($isInstanceOf(bg, "Boolean"))
1239+ then bg
1240+ else throw(($getType(bg) + " couldn't be cast to Boolean"))
12571241 }
1258- let ho = if (if (ba())
1242+ let hn = if (if (bi())
12591243 then true
1260- else (bn == n))
1244+ else (bv == n))
12611245 then true
1262- else hb
1263- let fP = [if (if (!(ho))
1246+ else ha
1247+ let fV = [if (if (!(hn))
12641248 then true
1265- else gk(eV))
1249+ else gp(fb))
12661250 then true
1267- else aS("get operation is blocked by admin"), if ((size(eV.payments) == 1))
1251+ else ba("get operation is blocked by admin"), if ((size(fb.payments) == 1))
12681252 then true
1269- else aS("exactly 1 payment are expected")]
1270- if ((fP == fP))
1253+ else ba("exactly 1 payment are expected")]
1254+ if ((fV == fV))
12711255 then {
1272- let fO = bf(hn)
1273- let hd = eV.payments[0]
1274- let fk = hd.assetId
1275- let fw = hd.amount
1276- let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1277- if ((eB == eB))
1256+ let fU = bn(hm)
1257+ let hc = fb.payments[0]
1258+ let fq = hc.assetId
1259+ let fC = hc.amount
1260+ let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1261+ if ((eH == eH))
12781262 then {
1279- let ab = eV.caller
1280- let ac = eV.transactionId
1281- let hp = fN(fO, fw, fk, ab, ac)
1282- if ((hp == hp))
1263+ let ab = fb.caller
1264+ let ac = fb.transactionId
1265+ let ho = fT(fU, fC, fq, ab, ac)
1266+ if ((ho == ho))
12831267 then {
1284- let fQ = hp._5
1285- let hf = hp._4
1286- let fh = hp._3
1287- let en = hp._2
1288- let hq = hp._1
1289- let bY = if (if ((gZ > 0))
1290- then (gZ > hq)
1268+ let fW = ho._5
1269+ let he = ho._4
1270+ let fn = ho._3
1271+ let et = ho._2
1272+ let hp = ho._1
1273+ let cf = if (if ((gY > 0))
1274+ then (gY > hp)
12911275 else false)
1292- then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1293- else hq
1294- let hr = invoke(aV, "burn", [fw], [AttachedPayment(fk, fw)])
1295- if ((hr == hr))
1276+ then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1277+ else hp
1278+ let hq = invoke(bd, "burn", [fC], [AttachedPayment(fq, fC)])
1279+ if ((hq == hq))
12961280 then {
1297- let gF = cJ(hn, (bY + max([0, fh])))
1298- let hs = [ScriptTransfer(ab, bY, fO)]
1299- let hj = if ((fh > 0))
1300- then [ScriptTransfer(aW, fh, fO)]
1281+ let gK = cP(hm, (cf + max([0, fn])))
1282+ let hr = [ScriptTransfer(ab, cf, fU)]
1283+ let hi = if ((fn > 0))
1284+ then [ScriptTransfer(be, fn, fU)]
13011285 else nil
1302- let ht = {
1303- let hu = if ((this == aW))
1286+ let hs = {
1287+ let ht = if ((this == be))
13041288 then 0
1305- else fh
1306- if (fQ)
1307- then $Tuple2(-((bY + hu)), 0)
1308- else $Tuple2(0, -((bY + hu)))
1289+ else fn
1290+ if (fW)
1291+ then $Tuple2(-((cf + ht)), 0)
1292+ else $Tuple2(0, -((cf + ht)))
13091293 }
1310- let eD = ht._1
1311- let eE = ht._2
1312- let hv = eC(eD, eE, 0)
1313- let gU = hv._1
1314- let et = hv._2
1315- let gV = eH(eB, et)
1316- if ((gV == gV))
1317- then $Tuple2(((((en ++ gF) ++ hs) ++ hj) ++ gU), bY)
1294+ let eJ = hs._1
1295+ let eK = hs._2
1296+ let hu = eI(eJ, eK, 0)
1297+ let gT = hu._1
1298+ let ez = hu._2
1299+ let gU = eN(eH, ez)
1300+ if ((gU == gU))
1301+ then $Tuple2(((((et ++ gK) ++ hr) ++ hi) ++ gT), cf)
13181302 else throw("Strict value is not equal to itself.")
13191303 }
13201304 else throw("Strict value is not equal to itself.")
13211305 }
13221306 else throw("Strict value is not equal to itself.")
13231307 }
13241308 else throw("Strict value is not equal to itself.")
13251309 }
13261310 else throw("Strict value is not equal to itself.")
13271311 }
13281312
13291313
13301314
1331-@Callable(eV)
1332-func getOneTknREADONLY (fO,fw) = {
1333- let hw = fN(bf(fO), fw, bo, unit, unit)
1334- let hq = hw._1
1335- let en = hw._2
1336- let fh = hw._3
1337- let hf = hw._4
1338- let fQ = hw._5
1339- $Tuple2(nil, $Tuple3(hq, fh, hf))
1315+@Callable(fb)
1316+func getOneTknREADONLY (fU,fC) = {
1317+ let hv = fT(bn(fU), fC, bw, unit, unit)
1318+ let hp = hv._1
1319+ let et = hv._2
1320+ let fn = hv._3
1321+ let he = hv._4
1322+ let fW = hv._5
1323+ $Tuple2(nil, $Tuple3(hp, fn, he))
13401324 }
13411325
13421326
13431327
1344-@Callable(eV)
1345-func unstakeAndGetOneTkn (hx,hn,gZ) = {
1346- let hb = {
1347- let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1348- if ($isInstanceOf(aY, "Boolean"))
1349- then aY
1350- else throw(($getType(aY) + " couldn't be cast to Boolean"))
1328+@Callable(fb)
1329+func unstakeAndGetOneTkn (hw,hm,gY) = {
1330+ let ha = {
1331+ let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1332+ if ($isInstanceOf(bg, "Boolean"))
1333+ then bg
1334+ else throw(($getType(bg) + " couldn't be cast to Boolean"))
13511335 }
1352- let ho = if (if (ba())
1336+ let hn = if (if (bi())
13531337 then true
1354- else (bn == n))
1338+ else (bv == n))
13551339 then true
1356- else hb
1357- let fP = [if (if (!(ho))
1340+ else ha
1341+ let fV = [if (if (!(hn))
13581342 then true
1359- else gk(eV))
1343+ else gp(fb))
13601344 then true
1361- else aS("get operation is blocked by admin"), if ((size(eV.payments) == 0))
1345+ else ba("get operation is blocked by admin"), if ((size(fb.payments) == 0))
13621346 then true
1363- else aS("no payments are expected")]
1364- if ((fP == fP))
1347+ else ba("no payments are expected")]
1348+ if ((fV == fV))
13651349 then {
1366- let fO = bf(hn)
1367- let ab = eV.caller
1368- let ac = eV.transactionId
1369- let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1370- if ((eB == eB))
1350+ let fU = bn(hm)
1351+ let ab = fb.caller
1352+ let ac = fb.transactionId
1353+ let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1354+ if ((eH == eH))
13711355 then {
1372- let hy = invoke(bu, "unstake", [toBase58String(bo), hx], nil)
1373- if ((hy == hy))
1356+ let hx = invoke(bC, "unstake", [toBase58String(bw), hw], nil)
1357+ if ((hx == hx))
13741358 then {
1375- let hz = fN(fO, hx, bo, ab, ac)
1376- if ((hz == hz))
1359+ let hy = fT(fU, hw, bw, ab, ac)
1360+ if ((hy == hy))
13771361 then {
1378- let fQ = hz._5
1379- let hf = hz._4
1380- let fh = hz._3
1381- let en = hz._2
1382- let hq = hz._1
1383- let bY = if (if ((gZ > 0))
1384- then (gZ > hq)
1362+ let fW = hy._5
1363+ let he = hy._4
1364+ let fn = hy._3
1365+ let et = hy._2
1366+ let hp = hy._1
1367+ let cf = if (if ((gY > 0))
1368+ then (gY > hp)
13851369 else false)
1386- then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1387- else hq
1388- let hr = invoke(aV, "burn", [hx], [AttachedPayment(bo, hx)])
1389- if ((hr == hr))
1370+ then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1371+ else hp
1372+ let hq = invoke(bd, "burn", [hw], [AttachedPayment(bw, hw)])
1373+ if ((hq == hq))
13901374 then {
1391- let gF = cJ(hn, (bY + max([0, fh])))
1392- let hs = [ScriptTransfer(eV.caller, bY, fO)]
1393- let hj = if ((fh > 0))
1394- then [ScriptTransfer(aW, fh, fO)]
1375+ let gK = cP(hm, (cf + max([0, fn])))
1376+ let hr = [ScriptTransfer(fb.caller, cf, fU)]
1377+ let hi = if ((fn > 0))
1378+ then [ScriptTransfer(be, fn, fU)]
13951379 else nil
1396- let hA = {
1397- let hu = if ((this == aW))
1380+ let hz = {
1381+ let ht = if ((this == be))
13981382 then 0
1399- else fh
1400- if (fQ)
1401- then $Tuple2(-((bY + hu)), 0)
1402- else $Tuple2(0, -((bY + hu)))
1383+ else fn
1384+ if (fW)
1385+ then $Tuple2(-((cf + ht)), 0)
1386+ else $Tuple2(0, -((cf + ht)))
14031387 }
1404- let eD = hA._1
1405- let eE = hA._2
1406- let hB = eC(eD, eE, 0)
1407- let gU = hB._1
1408- let et = hB._2
1409- let gV = eH(eB, et)
1410- if ((gV == gV))
1411- then $Tuple2(((((en ++ gF) ++ hs) ++ hj) ++ gU), bY)
1388+ let eJ = hz._1
1389+ let eK = hz._2
1390+ let hA = eI(eJ, eK, 0)
1391+ let gT = hA._1
1392+ let ez = hA._2
1393+ let gU = eN(eH, ez)
1394+ if ((gU == gU))
1395+ then $Tuple2(((((et ++ gK) ++ hr) ++ hi) ++ gT), cf)
14121396 else throw("Strict value is not equal to itself.")
14131397 }
14141398 else throw("Strict value is not equal to itself.")
14151399 }
14161400 else throw("Strict value is not equal to itself.")
14171401 }
14181402 else throw("Strict value is not equal to itself.")
14191403 }
14201404 else throw("Strict value is not equal to itself.")
14211405 }
14221406 else throw("Strict value is not equal to itself.")
14231407 }
14241408
14251409
14261410
1427-@Callable(eV)
1411+@Callable(fb)
14281412 func get () = {
1429- let dY = eU(eV)
1430- let dE = dY._1
1431- let dF = dY._2
1432- let eX = dY._3
1433- let dn = dY._4
1434- let dG = dY._5
1435- let gF = cO(dE, dF)
1436- let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1437- if ((eB == eB))
1413+ let ee = fa(fb)
1414+ let dK = ee._1
1415+ let dL = ee._2
1416+ let fd = ee._3
1417+ let dt = ee._4
1418+ let dM = ee._5
1419+ let gK = cU(dK, dL)
1420+ let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1421+ if ((eH == eH))
14381422 then {
1439- let hC = invoke(aV, "burn", [eX], [AttachedPayment(dn, eX)])
1440- if ((hC == hC))
1423+ let hB = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1424+ if ((hB == hB))
14411425 then {
1442- let hD = eC(-(dE), -(dF), 0)
1443- let gU = hD._1
1444- let et = hD._2
1445- let gV = eH(eB, et)
1446- if ((gV == gV))
1447- then ((gF ++ dG) ++ gU)
1426+ let hC = eI(-(dK), -(dL), 0)
1427+ let gT = hC._1
1428+ let ez = hC._2
1429+ let gU = eN(eH, ez)
1430+ if ((gU == gU))
1431+ then ((gK ++ dM) ++ gT)
14481432 else throw("Strict value is not equal to itself.")
14491433 }
14501434 else throw("Strict value is not equal to itself.")
14511435 }
14521436 else throw("Strict value is not equal to itself.")
14531437 }
14541438
14551439
14561440
1457-@Callable(eV)
1458-func getNoLess (hE,hF) = {
1459- let dY = eU(eV)
1460- let dE = dY._1
1461- let dF = dY._2
1462- let eX = dY._3
1463- let dn = dY._4
1464- let dG = dY._5
1465- if ((hE > dE))
1466- then throw(((("noLessThenAmtAsset failed: " + toString(dE)) + " < ") + toString(hE)))
1467- else if ((hF > dF))
1468- then throw(((("noLessThenPriceAsset failed: " + toString(dF)) + " < ") + toString(hF)))
1441+@Callable(fb)
1442+func getNoLess (hD,hE) = {
1443+ let ee = fa(fb)
1444+ let dK = ee._1
1445+ let dL = ee._2
1446+ let fd = ee._3
1447+ let dt = ee._4
1448+ let dM = ee._5
1449+ if ((hD > dK))
1450+ then throw(((("noLessThenAmtAsset failed: " + toString(dK)) + " < ") + toString(hD)))
1451+ else if ((hE > dL))
1452+ then throw(((("noLessThenPriceAsset failed: " + toString(dL)) + " < ") + toString(hE)))
14691453 else {
1470- let gF = cO(dE, dF)
1471- let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1472- if ((eB == eB))
1454+ let gK = cU(dK, dL)
1455+ let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1456+ if ((eH == eH))
14731457 then {
1474- let hC = invoke(aV, "burn", [eX], [AttachedPayment(dn, eX)])
1475- if ((hC == hC))
1458+ let hB = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1459+ if ((hB == hB))
14761460 then {
1477- let hG = eC(-(dE), -(dF), 0)
1478- let gU = hG._1
1479- let et = hG._2
1480- let gV = eH(eB, et)
1481- if ((gV == gV))
1482- then ((gF ++ dG) ++ gU)
1461+ let hF = eI(-(dK), -(dL), 0)
1462+ let gT = hF._1
1463+ let ez = hF._2
1464+ let gU = eN(eH, ez)
1465+ if ((gU == gU))
1466+ then ((gK ++ dM) ++ gT)
14831467 else throw("Strict value is not equal to itself.")
14841468 }
14851469 else throw("Strict value is not equal to itself.")
14861470 }
14871471 else throw("Strict value is not equal to itself.")
14881472 }
14891473 }
14901474
14911475
14921476
1493-@Callable(eV)
1494-func unstakeAndGet (bY) = {
1495- let hH = if ((size(eV.payments) != 0))
1477+@Callable(fb)
1478+func unstakeAndGet (cf) = {
1479+ let hG = if ((size(fb.payments) != 0))
14961480 then throw("No payments are expected")
14971481 else true
1498- if ((hH == hH))
1482+ if ((hG == hG))
14991483 then {
1500- let dc = bc()
1501- let dp = fromBase58String(dc[q])
1502- let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1503- if ((eB == eB))
1484+ let di = bk()
1485+ let dv = fromBase58String(di[q])
1486+ let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1487+ if ((eH == eH))
15041488 then {
1505- let hy = invoke(bu, "unstake", [toBase58String(dp), bY], nil)
1506- if ((hy == hy))
1489+ let hx = invoke(bC, "unstake", [toBase58String(dv), cf], nil)
1490+ if ((hx == hx))
15071491 then {
1508- let dY = dl(toBase58String(eV.transactionId), toBase58String(dp), bY, eV.caller)
1509- let dE = dY._1
1510- let dF = dY._2
1511- let ds = parseIntValue(dY._9)
1512- let dG = dY._10
1513- let gF = cO(dE, dF)
1514- let hI = if (if (ba())
1492+ let ee = dr(toBase58String(fb.transactionId), toBase58String(dv), cf, fb.caller)
1493+ let dK = ee._1
1494+ let dL = ee._2
1495+ let dy = parseIntValue(ee._9)
1496+ let dM = ee._10
1497+ let gK = cU(dK, dL)
1498+ let hH = if (if (bi())
15151499 then true
1516- else (ds == n))
1517- then throw(("Get operation is blocked by admin. Status = " + toString(ds)))
1500+ else (dy == n))
1501+ then throw(("Get operation is blocked by admin. Status = " + toString(dy)))
15181502 else true
1519- if ((hI == hI))
1503+ if ((hH == hH))
15201504 then {
1521- let hC = invoke(aV, "burn", [bY], [AttachedPayment(dp, bY)])
1522- if ((hC == hC))
1505+ let hB = invoke(bd, "burn", [cf], [AttachedPayment(dv, cf)])
1506+ if ((hB == hB))
15231507 then {
1524- let hJ = eC(-(dE), -(dF), 0)
1525- let gU = hJ._1
1526- let et = hJ._2
1527- let gV = eH(eB, et)
1528- if ((gV == gV))
1529- then ((gF ++ dG) ++ gU)
1508+ let hI = eI(-(dK), -(dL), 0)
1509+ let gT = hI._1
1510+ let ez = hI._2
1511+ let gU = eN(eH, ez)
1512+ if ((gU == gU))
1513+ then ((gK ++ dM) ++ gT)
15301514 else throw("Strict value is not equal to itself.")
15311515 }
15321516 else throw("Strict value is not equal to itself.")
15331517 }
15341518 else throw("Strict value is not equal to itself.")
15351519 }
15361520 else throw("Strict value is not equal to itself.")
15371521 }
15381522 else throw("Strict value is not equal to itself.")
15391523 }
15401524 else throw("Strict value is not equal to itself.")
15411525 }
15421526
15431527
15441528
1545-@Callable(eV)
1546-func unstakeAndGetNoLess (hx,hK,hF) = {
1547- let ho = if (ba())
1529+@Callable(fb)
1530+func unstakeAndGetNoLess (hw,hJ,hE) = {
1531+ let hn = if (bi())
15481532 then true
1549- else (bn == n)
1550- let fP = [if (!(ho))
1533+ else (bv == n)
1534+ let fV = [if (!(hn))
15511535 then true
1552- else throw("get operation is blocked by admin"), if ((size(eV.payments) == 0))
1536+ else throw("get operation is blocked by admin"), if ((size(fb.payments) == 0))
15531537 then true
15541538 else throw("no payments are expected")]
1555- if ((fP == fP))
1539+ if ((fV == fV))
15561540 then {
1557- let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1558- if ((eB == eB))
1541+ let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
1542+ if ((eH == eH))
15591543 then {
1560- let hy = invoke(bu, "unstake", [toBase58String(bo), hx], nil)
1561- if ((hy == hy))
1544+ let hx = invoke(bC, "unstake", [toBase58String(bw), hw], nil)
1545+ if ((hx == hx))
15621546 then {
1563- let dY = dl(toBase58String(eV.transactionId), toBase58String(bo), hx, eV.caller)
1564- let dE = dY._1
1565- let dF = dY._2
1566- let dG = dY._10
1567- let gF = cO(dE, dF)
1568- let hL = [if ((dE >= hK))
1547+ let ee = dr(toBase58String(fb.transactionId), toBase58String(bw), hw, fb.caller)
1548+ let dK = ee._1
1549+ let dL = ee._2
1550+ let dM = ee._10
1551+ let gK = cU(dK, dL)
1552+ let hK = [if ((dK >= hJ))
15691553 then true
1570- else throw(makeString(["amount asset amount to receive is less than ", toString(hK)], "")), if ((dF >= hF))
1554+ else throw(makeString(["amount asset amount to receive is less than ", toString(hJ)], "")), if ((dL >= hE))
15711555 then true
1572- else throw(makeString(["price asset amount to receive is less than ", toString(hF)], ""))]
1573- if ((hL == hL))
1556+ else throw(makeString(["price asset amount to receive is less than ", toString(hE)], ""))]
1557+ if ((hK == hK))
15741558 then {
1575- let hC = invoke(aV, "burn", [hx], [AttachedPayment(bo, hx)])
1576- if ((hC == hC))
1559+ let hB = invoke(bd, "burn", [hw], [AttachedPayment(bw, hw)])
1560+ if ((hB == hB))
15771561 then {
1578- let hM = eC(-(dE), -(dF), 0)
1579- let gU = hM._1
1580- let et = hM._2
1581- let gV = eH(eB, et)
1582- if ((gV == gV))
1583- then ((gF ++ dG) ++ gU)
1562+ let hL = eI(-(dK), -(dL), 0)
1563+ let gT = hL._1
1564+ let ez = hL._2
1565+ let gU = eN(eH, ez)
1566+ if ((gU == gU))
1567+ then ((gK ++ dM) ++ gT)
15841568 else throw("Strict value is not equal to itself.")
15851569 }
15861570 else throw("Strict value is not equal to itself.")
15871571 }
15881572 else throw("Strict value is not equal to itself.")
15891573 }
15901574 else throw("Strict value is not equal to itself.")
15911575 }
15921576 else throw("Strict value is not equal to itself.")
15931577 }
15941578 else throw("Strict value is not equal to itself.")
15951579 }
15961580
15971581
15981582
1599-@Callable(eV)
1600-func activate (hN,hO) = if ((toString(eV.caller) != toString(aV)))
1583+@Callable(fb)
1584+func activate (hM,hN) = if ((toString(fb.caller) != toString(bd)))
16011585 then throw("permissions denied")
1602- else $Tuple2([StringEntry(ae(), hN), StringEntry(af(), hO)], "success")
1586+ else $Tuple2([StringEntry(ae(), hM), StringEntry(af(), hN)], "success")
16031587
16041588
16051589
1606-@Callable(eV)
1590+@Callable(fb)
16071591 func refreshKLp () = {
1608- let hP = valueOrElse(getInteger(ak), 0)
1609- let hQ = if (((height - hP) >= an))
1592+ let hO = valueOrElse(getInteger(ak), 0)
1593+ let hP = if (((height - hO) >= an))
16101594 then unit
1611- else aS(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1612- if ((hQ == hQ))
1595+ else ba(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1596+ if ((hP == hP))
16131597 then {
1614- let eO = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
1615- let hR = eC(0, 0, 0)
1616- let hS = hR._1
1617- let et = hR._2
1618- let eF = if ((eO != et))
1619- then hS
1620- else aS("nothing to refresh")
1621- $Tuple2(eF, toString(et))
1598+ let eU = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), bc("invalid kLp"))
1599+ let hQ = eI(0, 0, 0)
1600+ let hR = hQ._1
1601+ let ez = hQ._2
1602+ let eL = if ((eU != ez))
1603+ then hR
1604+ else ba("nothing to refresh")
1605+ $Tuple2(eL, toString(ez))
16221606 }
16231607 else throw("Strict value is not equal to itself.")
16241608 }
16251609
16261610
16271611
1628-@Callable(eV)
1629-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bc())
1612+@Callable(fb)
1613+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bk())
16301614
16311615
16321616
1633-@Callable(eV)
1634-func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bL(ap))
1617+@Callable(fb)
1618+func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bT(ap))
16351619
16361620
16371621
1638-@Callable(eV)
1639-func calcPricesWrapperREADONLY (cW,cX,db) = {
1640- let dk = da(cW, cX, db)
1641- $Tuple2(nil, [toString(dk[0]), toString(dk[1]), toString(dk[2])])
1622+@Callable(fb)
1623+func calcPricesWrapperREADONLY (dc,dd,dh) = {
1624+ let dq = dg(dc, dd, dh)
1625+ $Tuple2(nil, [toString(dq[0]), toString(dq[1]), toString(dq[2])])
16421626 }
16431627
16441628
16451629
1646-@Callable(eV)
1630+@Callable(fb)
16471631 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
16481632
16491633
16501634
1651-@Callable(eV)
1635+@Callable(fb)
16521636 func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
16531637
16541638
16551639
1656-@Callable(eV)
1657-func calcPriceBigIntWrapperREADONLY (bP,bQ) = $Tuple2(nil, toString(bO(parseBigIntValue(bP), parseBigIntValue(bQ))))
1640+@Callable(fb)
1641+func calcPriceBigIntWrapperREADONLY (bX,bY) = $Tuple2(nil, toString(bW(parseBigIntValue(bX), parseBigIntValue(bY))))
16581642
16591643
16601644
1661-@Callable(eV)
1662-func estimatePutOperationWrapperREADONLY (dm,dI,dJ,dK,dL,dM,ab,dN,dO) = $Tuple2(nil, dH(dm, dI, dJ, dK, dL, dM, ab, dN, dO))
1645+@Callable(fb)
1646+func estimatePutOperationWrapperREADONLY (ds,dO,dP,dQ,dR,dS,ab,dT,dU) = $Tuple2(nil, dN(ds, dO, dP, dQ, dR, dS, ab, dT, dU))
16631647
16641648
16651649
1666-@Callable(eV)
1667-func estimateGetOperationWrapperREADONLY (dm,dn,do,ab) = {
1668- let dY = dl(dm, dn, do, addressFromStringValue(ab))
1669- $Tuple2(nil, $Tuple10(dY._1, dY._2, dY._3, dY._4, dY._5, dY._6, dY._7, toString(dY._8), dY._9, dY._10))
1650+@Callable(fb)
1651+func estimateGetOperationWrapperREADONLY (ds,dt,du,ab) = {
1652+ let ee = dr(ds, dt, du, addressFromStringValue(ab))
1653+ $Tuple2(nil, $Tuple10(ee._1, ee._2, ee._3, ee._4, ee._5, ee._6, ee._7, toString(ee._8), ee._9, ee._10))
16701654 }
16711655
16721656
16731657
1674-@Callable(eV)
1658+@Callable(fb)
16751659 func statsREADONLY () = {
1676- let dc = bc()
1677- let dp = fromBase58String(dc[q])
1678- let hT = dc[r]
1679- let hU = dc[s]
1680- let dR = dc[v]
1681- let dS = dc[w]
1682- let dd = parseIntValue(dc[t])
1683- let de = parseIntValue(dc[u])
1684- let hV = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1685- let hW = bL(hT)
1686- let hX = bL(hU)
1687- let hY = if ((hV == 0))
1660+ let di = bk()
1661+ let dv = fromBase58String(di[q])
1662+ let hS = di[r]
1663+ let hT = di[s]
1664+ let dX = di[v]
1665+ let dY = di[w]
1666+ let dj = parseIntValue(di[t])
1667+ let dk = parseIntValue(di[u])
1668+ let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1669+ let hV = bT(hS)
1670+ let hW = bT(hT)
1671+ let hX = if ((hU == 0))
16881672 then [e, e, e]
1689- else da(hW, hX, hV)
1690- let dz = 0
1691- let hZ = H(hY[1], b)
1692- let ia = H(hY[2], b)
1693- let ib = value(getInteger(aV, aD(toString(this))))
1694- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hW), toString(hX), toString(hV), toString(dz), toString(hZ), toString(ia), toString(ib)], j))
1673+ else dg(hV, hW, hU)
1674+ let dF = 0
1675+ let hY = H(hX[1], b)
1676+ let hZ = H(hX[2], b)
1677+ let ia = value(getInteger(bd, aD(toString(this))))
1678+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hV), toString(hW), toString(hU), toString(dF), toString(hY), toString(hZ), toString(ia)], j))
16951679 }
16961680
16971681
16981682
1699-@Callable(eV)
1700-func evaluatePutByAmountAssetREADONLY (dJ) = {
1701- let dc = bc()
1702- let dp = fromBase58String(dc[q])
1703- let dP = dc[r]
1704- let dq = fromBase58String(dP)
1705- let dQ = dc[s]
1706- let dr = fromBase58String(dQ)
1707- let dd = parseIntValue(dc[t])
1708- let de = parseIntValue(dc[u])
1709- let ds = dc[p]
1710- let hV = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1711- let hW = bL(dP)
1712- let hX = bL(dQ)
1713- let cY = D(hW, dd)
1714- let cZ = D(hX, de)
1715- let dy = if ((hV == 0))
1683+@Callable(fb)
1684+func evaluatePutByAmountAssetREADONLY (dP) = {
1685+ let di = bk()
1686+ let dv = fromBase58String(di[q])
1687+ let dV = di[r]
1688+ let dw = fromBase58String(dV)
1689+ let dW = di[s]
1690+ let dx = fromBase58String(dW)
1691+ let dj = parseIntValue(di[t])
1692+ let dk = parseIntValue(di[u])
1693+ let dy = di[p]
1694+ let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1695+ let hV = bT(dV)
1696+ let hW = bT(dW)
1697+ let de = D(hV, dj)
1698+ let df = D(hW, dk)
1699+ let dE = if ((hU == 0))
17161700 then e
1717- else bO(cZ, cY)
1718- let dV = D(dJ, dd)
1719- let dW = fraction(dV, dy, d)
1720- let dL = H(dW, de)
1721- let fb = dH("", 500000, dJ, dq, dL, dr, "", true, false)
1722- let eg = fb._1
1723- let ic = fb._3
1724- let du = fb._4
1725- let dw = fb._5
1726- let dt = fb._6
1727- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(eg), toString(H(dy, b)), toString(du), toString(dw), toString(dt), ds, toString(dJ), toString(dL)], j))
1701+ else bW(df, de)
1702+ let eb = D(dP, dj)
1703+ let ec = fraction(eb, dE, d)
1704+ let dR = H(ec, dk)
1705+ let fh = dN("", 500000, dP, dw, dR, dx, "", true, false)
1706+ let em = fh._1
1707+ let ib = fh._3
1708+ let dA = fh._4
1709+ let dC = fh._5
1710+ let dz = fh._6
1711+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(em), toString(H(dE, b)), toString(dA), toString(dC), toString(dz), dy, toString(dP), toString(dR)], j))
17281712 }
17291713
17301714
17311715
1732-@Callable(eV)
1733-func evaluatePutByPriceAssetREADONLY (dL) = {
1734- let dc = bc()
1735- let dp = fromBase58String(dc[q])
1736- let dP = dc[r]
1737- let dq = fromBase58String(dP)
1738- let dQ = dc[s]
1739- let dr = fromBase58String(dQ)
1740- let dd = parseIntValue(dc[t])
1741- let de = parseIntValue(dc[u])
1742- let ds = dc[p]
1743- let hV = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1744- let id = bL(dP)
1745- let ie = bL(dQ)
1746- let if = D(id, dd)
1747- let ig = D(ie, de)
1748- let dy = if ((hV == 0))
1716+@Callable(fb)
1717+func evaluatePutByPriceAssetREADONLY (dR) = {
1718+ let di = bk()
1719+ let dv = fromBase58String(di[q])
1720+ let dV = di[r]
1721+ let dw = fromBase58String(dV)
1722+ let dW = di[s]
1723+ let dx = fromBase58String(dW)
1724+ let dj = parseIntValue(di[t])
1725+ let dk = parseIntValue(di[u])
1726+ let dy = di[p]
1727+ let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1728+ let ic = bT(dV)
1729+ let id = bT(dW)
1730+ let ie = D(ic, dj)
1731+ let if = D(id, dk)
1732+ let dE = if ((hU == 0))
17491733 then e
1750- else bO(ig, if)
1751- let dW = D(dL, de)
1752- let dV = fraction(dW, d, dy)
1753- let dJ = H(dV, dd)
1754- let fb = dH("", 500000, dJ, dq, dL, dr, "", true, false)
1755- let eg = fb._1
1756- let ic = fb._3
1757- let du = fb._4
1758- let dw = fb._5
1759- let dt = fb._6
1760- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(eg), toString(H(dy, b)), toString(du), toString(dw), toString(dt), ds, toString(dJ), toString(dL)], j))
1734+ else bW(if, ie)
1735+ let ec = D(dR, dk)
1736+ let eb = fraction(ec, d, dE)
1737+ let dP = H(eb, dj)
1738+ let fh = dN("", 500000, dP, dw, dR, dx, "", true, false)
1739+ let em = fh._1
1740+ let ib = fh._3
1741+ let dA = fh._4
1742+ let dC = fh._5
1743+ let dz = fh._6
1744+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(em), toString(H(dE, b)), toString(dA), toString(dC), toString(dz), dy, toString(dP), toString(dR)], j))
17611745 }
17621746
17631747
17641748
1765-@Callable(eV)
1766-func evaluateGetREADONLY (ih,ii) = {
1767- let dY = dl("", ih, ii, this)
1768- let dE = dY._1
1769- let dF = dY._2
1770- let du = dY._5
1771- let dw = dY._6
1772- let dt = dY._7
1773- let dz = dY._8
1774- let ds = parseIntValue(dY._9)
1775- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dE), toString(dF), toString(du), toString(dw), toString(dt), toString(dz), toString(ds)], j))
1749+@Callable(fb)
1750+func evaluateGetREADONLY (ig,ih) = {
1751+ let ee = dr("", ig, ih, this)
1752+ let dK = ee._1
1753+ let dL = ee._2
1754+ let dA = ee._5
1755+ let dC = ee._6
1756+ let dz = ee._7
1757+ let dF = ee._8
1758+ let dy = parseIntValue(ee._9)
1759+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dK), toString(dL), toString(dA), toString(dC), toString(dz), toString(dF), toString(dy)], j))
17761760 }
17771761
17781762
1779-@Verifier(ij)
1780-func ik () = {
1781- let il = {
1782- let bV = gh()
1783- if ($isInstanceOf(bV, "ByteVector"))
1763+@Verifier(ii)
1764+func ij () = {
1765+ let ik = {
1766+ let aQ = gn()
1767+ if ($isInstanceOf(aQ, "ByteVector"))
17841768 then {
1785- let gl = bV
1786- gl
1769+ let gq = aQ
1770+ gq
17871771 }
1788- else if ($isInstanceOf(bV, "Unit"))
1789- then ij.senderPublicKey
1772+ else if ($isInstanceOf(aQ, "Unit"))
1773+ then ii.senderPublicKey
17901774 else throw("Match error")
17911775 }
1792- let bV = ij
1793- if ($isInstanceOf(bV, "Order"))
1776+ let aQ = ii
1777+ if ($isInstanceOf(aQ, "Order"))
17941778 then {
1795- let eK = bV
1796- let im = bb()
1797- let in = if (eG())
1779+ let eQ = aQ
1780+ let il = bj()
1781+ let im = if (eM())
17981782 then $Tuple2(true, "")
1799- else eJ(eK)
1800- let aK = in._1
1801- let aL = in._2
1802- let aM = sigVerify(eK.bodyBytes, eK.proofs[0], eK.senderPublicKey)
1803- let aN = sigVerify(eK.bodyBytes, eK.proofs[1], im)
1783+ else eP(eQ)
1784+ let aK = im._1
1785+ let aL = im._2
1786+ let aM = sigVerify(eQ.bodyBytes, eQ.proofs[0], eQ.senderPublicKey)
1787+ let aN = sigVerify(eQ.bodyBytes, eQ.proofs[1], il)
18041788 if (if (if (aK)
18051789 then aM
18061790 else false)
18071791 then aN
18081792 else false)
18091793 then true
18101794 else aJ(aK, aL, aM, aN)
18111795 }
1812- else if ($isInstanceOf(bV, "SetScriptTransaction"))
1796+ else if ($isInstanceOf(aQ, "SetScriptTransaction"))
18131797 then {
1814- let gi = bV
1815- if (sigVerify(ij.bodyBytes, ij.proofs[0], il))
1798+ let aV = aQ
1799+ if (sigVerify(ii.bodyBytes, ii.proofs[0], ik))
18161800 then true
18171801 else {
1818- let io = blake2b256(value(gi.script))
1819- let ip = fromBase64String(value(getString(aV, aF())))
1820- let iq = scriptHash(this)
1821- if ((ip == io))
1822- then (iq != io)
1802+ let in = blake2b256(value(aV.script))
1803+ let io = fromBase64String(value(getString(bd, aF())))
1804+ let ip = scriptHash(this)
1805+ if ((io == in))
1806+ then (ip != in)
18231807 else false
18241808 }
18251809 }
1826- else sigVerify(ij.bodyBytes, ij.proofs[0], il)
1810+ else sigVerify(ii.bodyBytes, ii.proofs[0], ik)
18271811 }
18281812

github/deemru/w8io/026f985 
730.52 ms