tx · H1K66Fc1QS8oPEvrk7oTLfWZaFms67zVbtyToWgqxhMz

3N6wAa7PMFZJu4Zrmp3avXmMnRTrRpMM9Lh:  -0.04200000 Waves

2023.08.17 16:31 [2714657] smart account 3N6wAa7PMFZJu4Zrmp3avXmMnRTrRpMM9Lh > SELF 0.00000000 Waves

{ "type": 13, "id": "H1K66Fc1QS8oPEvrk7oTLfWZaFms67zVbtyToWgqxhMz", "fee": 4200000, "feeAssetId": null, "timestamp": 1692279097604, "version": 2, "chainId": 84, "sender": "3N6wAa7PMFZJu4Zrmp3avXmMnRTrRpMM9Lh", "senderPublicKey": "Cr8D7eozSzJh7XHsYTjBinPpo3SS83BrCGiBAJsjGxBo", "proofs": [ "4xCyAh3XzYvFRsnAazTqovnz8CH47ZmJuL2brXJz2nKoQ1vkNracHnuajcgMx55DCxaArxEJqGk3xy1pfv5q59aA" ], "script": "base64:BgKSOAgCEgASBQoDAQQBEgcKBQEEAQgBEgQKAgEEEgMKAQESBAoCAQQSBAoCCAESBAoCCAESBAoCCAESBQoDAQgBEgASBAoCAQESAwoBARIFCgMBAQESBAoCCAgSABIAEgMKAQgSBQoDAQEBEgQKAgEBEgQKAggBEgQKAggIEgsKCQgBAQIBAggEBBIGCgQICAEIEgASAwoBARIDCgEBEgQKAggBIgpsUGRlY2ltYWxzIgZzY2FsZTgiDHNjYWxlOEJpZ0ludCIHc2NhbGUxOCIKemVyb0JpZ0ludCIEYmlnMCIEYmlnMSIEYmlnMiILd2F2ZXNTdHJpbmciA1NFUCIKUG9vbEFjdGl2ZSIPUG9vbFB1dERpc2FibGVkIhNQb29sTWF0Y2hlckRpc2FibGVkIgxQb29sU2h1dGRvd24iDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSISaWR4UG9vbEFtdEFzc2V0QW10IhRpZHhQb29sUHJpY2VBc3NldEFtdCIRaWR4UG9vbExQQXNzZXRBbXQiGWlkeEZhY3RvcnlTdGFraW5nQ29udHJhY3QiGmlkeEZhY3RvcnlTbGlwcGFnZUNvbnRyYWN0IgV0b1gxOCIHb3JpZ1ZhbCINb3JpZ1NjYWxlTXVsdCILdG9YMThCaWdJbnQiB2Zyb21YMTgiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0Igxmcm9tWDE4Um91bmQiBXJvdW5kIgd0b1NjYWxlIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIglhYnNCaWdJbnQiDHN3YXBDb250cmFjdCICZmMiE2tleU1hbmFnZXJQdWJsaWNLZXkiFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MiAnBsIgJwaCIBaCIJdGltZXN0YW1wIgNwYXUiC3VzZXJBZGRyZXNzIgR0eElkIgNnYXUiAmFhIgJwYSIGa2V5RmVlIgpmZWVEZWZhdWx0IgNmZWUiBmtleUtMcCIVa2V5S0xwUmVmcmVzaGVkSGVpZ2h0IhJrZXlLTHBSZWZyZXNoRGVsYXkiFmtMcFJlZnJlc2hEZWxheURlZmF1bHQiD2tMcFJlZnJlc2hEZWxheSIUa2V5QWRkaXRpb25hbEJhbGFuY2UiB2Fzc2V0SWQiFmtleVN0YWtpbmdBc3NldEJhbGFuY2UiGmdldEFkZGl0aW9uYWxCYWxhbmNlT3JaZXJvIhxnZXRTdGFraW5nQXNzZXRCYWxhbmNlT3JaZXJvIhBrZXlGYWN0b3J5Q29uZmlnIg1rZXlNYXRjaGVyUHViIilrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cyITcG9vbENvbnRyYWN0QWRkcmVzcyINa2V5UG9vbENvbmZpZyIJaUFtdEFzc2V0IgtpUHJpY2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIhNrZXlBbGxQb29sc1NodXRkb3duIg1rZXlQb29sV2VpZ2h0Ig9jb250cmFjdEFkZHJlc3MiFmtleUFsbG93ZWRMcFNjcmlwdEhhc2giFmtleUZlZUNvbGxlY3RvckFkZHJlc3MiFmtleVNraXBPcmRlclZhbGlkYXRpb24iC3Bvb2xBZGRyZXNzIg90aHJvd09yZGVyRXJyb3IiCm9yZGVyVmFsaWQiDm9yZGVyVmFsaWRJbmZvIgtzZW5kZXJWYWxpZCIMbWF0Y2hlclZhbGlkIhdhZGRyZXNzRnJvbVN0cmluZ09yVGhpcyINYWRkcmVzc1N0cmluZyIHJG1hdGNoMCIBYSIcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcyIOZmFjdG9yeUFkZHJlc3MiA2ZjYSIBcyIPZ2V0U3RyaW5nT3JGYWlsIgdhZGRyZXNzIgNrZXkiDGdldEludE9yRmFpbCIIdGhyb3dFcnIiA21zZyIGZm10RXJyIg9mYWN0b3J5Q29udHJhY3QiE2ZlZUNvbGxlY3RvckFkZHJlc3MiBWluRmVlIgFAIgZvdXRGZWUiEGlzR2xvYmFsU2h1dGRvd24iE2dldE1hdGNoZXJQdWJPckZhaWwiDWdldFBvb2xDb25maWciCGFtdEFzc2V0IgpwcmljZUFzc2V0IgxwYXJzZUFzc2V0SWQiBWlucHV0Ig9hc3NldElkVG9TdHJpbmciD3BhcnNlUG9vbENvbmZpZyIKcG9vbENvbmZpZyIQcG9vbENvbmZpZ1BhcnNlZCILJHQwOTUyOTk2OTUiDmNmZ1Bvb2xBZGRyZXNzIg1jZmdQb29sU3RhdHVzIgxjZmdMcEFzc2V0SWQiEGNmZ0Ftb3VudEFzc2V0SWQiD2NmZ1ByaWNlQXNzZXRJZCIWY2ZnQW1vdW50QXNzZXREZWNpbWFscyIVY2ZnUHJpY2VBc3NldERlY2ltYWxzIhBnZXRGYWN0b3J5Q29uZmlnIg9zdGFraW5nQ29udHJhY3QiEHNsaXBwYWdlQ29udHJhY3QiEWRhdGFQdXRBY3Rpb25JbmZvIg1pbkFtdEFzc2V0QW10Ig9pblByaWNlQXNzZXRBbXQiCG91dExwQW10IgVwcmljZSIdc2xpcHBhZ2VUb2xlcmFuY2VQYXNzZWRCeVVzZXIiFXNsaXBwYWdlVG9sZXJhbmNlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIhJzbGlwYWdlQW10QXNzZXRBbXQiFHNsaXBhZ2VQcmljZUFzc2V0QW10IhFkYXRhR2V0QWN0aW9uSW5mbyIOb3V0QW10QXNzZXRBbXQiEG91dFByaWNlQXNzZXRBbXQiB2luTHBBbXQiDWdldEFjY0JhbGFuY2UiDWJhbGFuY2VPblBvb2wiDHRvdGFsQmFsYW5jZSIPY2FsY1ByaWNlQmlnSW50IghwckFtdFgxOCIIYW1BbXRYMTgiFGNhbGNQcmljZUJpZ0ludFJvdW5kIgdnZXRSYXRlIgVwcm94eSIDaW52IgFyIgdkZXBvc2l0IgZhbW91bnQiDnN0YWtpbmdBc3NldElkIhhjdXJyZW50QWRkaXRpb25hbEJhbGFuY2UiGmN1cnJlbnRTdGFraW5nQXNzZXRCYWxhbmNlIgVhc3NldCINZGVwb3NpdEludm9rZSIUcmVjZWl2ZWRTdGFraW5nQXNzZXQiFG5ld0FkZGl0aW9uYWxCYWxhbmNlIhZuZXdTdGFraW5nQXNzZXRCYWxhbmNlIgh3aXRoZHJhdyIMcHJveHlSYXRlTXVsIg1wcm9maXRBZGRyZXNzIhBjdXJyZW50UHJveHlSYXRlIgdvbGRSYXRlIgxzdGFraW5nQXNzZXQiFG9sZFNlbmRTdGFraW5nQW1vdW50IhZzZW5kU3Rha2luZ0Fzc2V0QW1vdW50Igxwcm9maXRBbW91bnQiDndpdGhkcmF3SW52b2tlIg5yZWNlaXZlZEFzc2V0cyITZ2V0TGVhc2VQcm94eUNvbmZpZyIRcmViYWxhbmNlSW50ZXJuYWwiC3RhcmdldFJhdGlvIgptaW5CYWxhbmNlIhRsZWFzYWJsZVRvdGFsQmFsYW5jZSIXdGFyZ2V0QWRkaXRpb25hbEJhbGFuY2UiBGRpZmYiD3NlbmRBc3NldEFtb3VudCIOZ2V0QXNzZXRBbW91bnQiDnJlYmFsYW5jZUFzc2V0Ig0kdDAxNTkzMTE2MDY3Igppc0xlYXNhYmxlIgtsZWFzZWRSYXRpbyIMcHJveHlBZGRyZXNzIgxwcm94eUFzc2V0SWQiFHN0YWtpbmdQcm9maXRBZGRyZXNzIhl3aXRoZHJhd0FuZFJlYmFsYW5jZUFzc2V0IglnZXRBbW91bnQiDSR0MDE2NDY2MTY2MDIiF25ld1RvdGFsTGVhc2FibGVCYWxhbmNlIg53aXRoZHJhd0Ftb3VudCIXd2l0aGRyYXdBbmRSZWJhbGFuY2VBbGwiFGFtb3VudEFzc2V0T3V0QW1vdW50IhNwcmljZUFzc2V0T3V0QW1vdW50IhJBbUFtdFdpdGhkcmF3U3RhdGUiElByQW10V2l0aGRyYXdTdGF0ZSIQcHJpdmF0ZUNhbGNQcmljZSIKYW1Bc3NldERjbSIKcHJBc3NldERjbSIFYW1BbXQiBXByQW10Ig5hbXRBc3NldEFtdFgxOCIQcHJpY2VBc3NldEFtdFgxOCIKY2FsY1ByaWNlcyIFbHBBbXQiA2NmZyILYW10QXNzZXREY20iDXByaWNlQXNzZXREY20iCHByaWNlWDE4IghscEFtdFgxOCITbHBQcmljZUluQW1Bc3NldFgxOCITbHBQcmljZUluUHJBc3NldFgxOCIPY2FsY3VsYXRlUHJpY2VzIgZwcmljZXMiFGVzdGltYXRlR2V0T3BlcmF0aW9uIgZ0eElkNTgiCnBtdEFzc2V0SWQiCHBtdExwQW10IglscEFzc2V0SWQiCWFtQXNzZXRJZCIJcHJBc3NldElkIgpwb29sU3RhdHVzIgpscEVtaXNzaW9uIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiDWxwRW1pc3Npb25YMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIUZXN0aW1hdGVQdXRPcGVyYXRpb24iEXNsaXBwYWdlVG9sZXJhbmNlIgxpbkFtQXNzZXRBbXQiC2luQW1Bc3NldElkIgxpblByQXNzZXRBbXQiC2luUHJBc3NldElkIgppc0V2YWx1YXRlIgZlbWl0THAiDGFtQXNzZXRJZFN0ciIMcHJBc3NldElkU3RyIgtpQW10QXNzZXRJZCINaVByaWNlQXNzZXRJZCIOaW5BbUFzc2V0SWRTdHIiDmluUHJBc3NldElkU3RyIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgNyZXMiC3NsaXBwYWdlWDE4IhRzbGlwcGFnZVRvbGVyYW5jZVgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiILY29tbW9uU3RhdGUiB2NhbGNLTHAiDWFtb3VudEJhbGFuY2UiDHByaWNlQmFsYW5jZSIQYW1vdW50QmFsYW5jZVgxOCIPcHJpY2VCYWxhbmNlWDE4Igp1cGRhdGVkS0xwIg5jYWxjQ3VycmVudEtMcCIQYW1vdW50QXNzZXREZWx0YSIPcHJpY2VBc3NldERlbHRhIhRscEFzc2V0RW1pc3Npb25EZWx0YSISYW1vdW50QXNzZXRCYWxhbmNlIhFwcmljZUFzc2V0QmFsYW5jZSIPbHBBc3NldEVtaXNzaW9uIgpjdXJyZW50S0xwIhJyZWZyZXNoS0xwSW50ZXJuYWwiF2Ftb3VudEFzc2V0QmFsYW5jZURlbHRhIhZwcmljZUFzc2V0QmFsYW5jZURlbHRhIgdhY3Rpb25zIhNza2lwT3JkZXJWYWxpZGF0aW9uIhJ2YWxpZGF0ZVVwZGF0ZWRLTHAiBm9sZEtMcCIbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkIgVvcmRlciIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDI4OTkxMjkyMDMiA2tMcCINJHQwMjk2NDMyOTc0MyINdW51c2VkQWN0aW9ucyIGa0xwTmV3Igxpc09yZGVyVmFsaWQiBGluZm8iCWNvbW1vbkdldCIBaSIDcG10IgZwbXRBbXQiCWNvbW1vblB1dCIKYW1Bc3NldFBtdCIKcHJBc3NldFBtdCIGZXN0UHV0IgRlbWl0IgdlbWl0SW52Ig1lbWl0SW52TGVnYWN5IhVsZWdhY3lGYWN0b3J5Q29udHJhY3QiB3Rha2VGZWUiCWZlZUFtb3VudCIPY2FsY1B1dE9uZVRva2VuIhBwYXltZW50QW1vdW50UmF3Ig5wYXltZW50QXNzZXRJZCIGaXNFdmFsIhBhbW91bnRCYWxhbmNlUmF3Ig9wcmljZUJhbGFuY2VSYXciFHBheW1lbnRJbkFtb3VudEFzc2V0Ig0kdDAzMjg1NjMzMTQ5IhBhbW91bnRCYWxhbmNlT2xkIg9wcmljZUJhbGFuY2VPbGQiDSR0MDMzMTUzMzMzMDIiFGFtb3VudEFzc2V0QW1vdW50UmF3IhNwcmljZUFzc2V0QW1vdW50UmF3Ig0kdDAzMzQzNDMzNDk4Ig1wYXltZW50QW1vdW50IhBhbW91bnRCYWxhbmNlTmV3Ig9wcmljZUJhbGFuY2VOZXciC3ByaWNlTmV3WDE4IghwcmljZU5ldyIOcGF5bWVudEJhbGFuY2UiFHBheW1lbnRCYWxhbmNlQmlnSW50IgxzdXBwbHlCaWdJbnQiC2NoZWNoU3VwcGx5Ig1kZXBvc2l0QmlnSW50Igtpc3N1ZUFtb3VudCILcHJpY2VPbGRYMTgiCHByaWNlT2xkIgRsb3NzIg0kdDAzNTE3OTM1MzQ2IgdiYWxhbmNlIg9pc3N1ZUFtb3VudEJvdGgiD2NhbGNHZXRPbmVUb2tlbiIKb3V0QXNzZXRJZCIGY2hlY2tzIhBvdXRJbkFtb3VudEFzc2V0Ig1iYWxhbmNlQmlnSW50IhhvdXRJbkFtb3VudEFzc2V0RGVjaW1hbHMiDGFtQmFsYW5jZU9sZCIMcHJCYWxhbmNlT2xkIgpvdXRCYWxhbmNlIhBvdXRCYWxhbmNlQmlnSW50Ig5yZWRlZW1lZEJpZ0ludCIJYW1vdW50UmF3Ig0kdDAzNzQyNDM3NDgwIgt0b3RhbEFtb3VudCINJHQwMzc0ODQzNzcxMCILb3V0QW1BbW91bnQiC291dFByQW1vdW50IgxhbUJhbGFuY2VOZXciDHByQmFsYW5jZU5ldyIYYW1vdW50Qm90aEluUGF5bWVudEFzc2V0IhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IhNtYW5hZ2VyVmF1bHRBZGRyZXNzIglpc01hbmFnZXIiAnBrIgttdXN0TWFuYWdlciICcGQiDWNsZWFuQW1vdW50SW4iCWlzUmV2ZXJzZSINZmVlUG9vbEFtb3VudCINJHQwMzk1NjgzOTg3MyIIYXNzZXRPdXQiB2Fzc2V0SW4iEnBvb2xBc3NldEluQmFsYW5jZSITcG9vbEFzc2V0T3V0QmFsYW5jZSIJYW1vdW50T3V0IgRvbGRLIgRuZXdLIgZjaGVja0siDGFtb3VudE91dE1pbiIJYWRkcmVzc1RvIgtzd2FwQ29udGFjdCIIY2hlY2tNaW4iEXJlZnJlc2hLTHBBY3Rpb25zIg5yZWJhbGFuY2VTdGF0ZSINd2l0aGRyYXdTdGF0ZSIPc2hvdWxkQXV0b1N0YWtlIgRhbUlkIgRwcklkIgxzbGlwcGFnZUFJbnYiDHNsaXBwYWdlUEludiIKbHBUcmFuc2ZlciILc2xwU3Rha2VJbnYiDSR0MDQ0NjgzNDUxNDUiEWlzVXBkYXRlZEtMcFZhbGlkIgNyZWIiC21heFNsaXBwYWdlIg0kdDA0NTc1NzQ1ODIyIgxtaW5PdXRBbW91bnQiCWF1dG9TdGFrZSIgaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiDWlzUHV0RGlzYWJsZWQiB3BheW1lbnQiDSR0MDQ3MDEwNDcxNjIiBWJvbnVzIhNlbWl0QW1vdW50RXN0aW1hdGVkIgplbWl0QW1vdW50IghzdGFrZUludiIHc2VuZEZlZSINJHQwNDc3NDg0Nzk0NSINJHQwNDc5NDg0ODA1NiINJHQwNDg0MTE0ODU2OCINb3V0QXNzZXRJZFN0ciINaXNHZXREaXNhYmxlZCINJHQwNDk0NTM0OTYwNiIPYW1vdW50RXN0aW1hdGVkIgdidXJuSW52Ig1hc3NldFRyYW5zZmVyIg0kdDA1MDI3MDUwNTE3IhBmZWVBbW91bnRGb3JDYWxjIg0kdDA1MDUyMDUwNjI4Ig0kdDA1MDkwNjUxMDYyIg11bnN0YWtlQW1vdW50Igp1bnN0YWtlSW52Ig0kdDA1MTk2NzUyMTE4Ig0kdDA1Mjc3NzUzMDI0Ig0kdDA1MzAyNzUzMTM1IhRidXJuTFBBc3NldE9uRmFjdG9yeSINJHQwNTQyMzA1NDMxMSISbm9MZXNzVGhlbkFtdEFzc2V0IhRub0xlc3NUaGVuUHJpY2VBc3NldCINJHQwNTU0MDY1NTQ4NyINY2hlY2tQYXltZW50cyIPY2hlY2tQb29sU3RhdHVzIg0kdDA1Njc1OTU2ODQwIhVub0xlc3NUaGVuQW1vdW50QXNzZXQiDGNoZWNrQW1vdW50cyINJHQwNTgyODE1ODM2MiILYW10QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiGGxhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCIdY2hlY2tMYXN0UmVmcmVzaGVkQmxvY2tIZWlnaHQiDSR0MDU5NTY2NTk2MzAiEGtMcFVwZGF0ZUFjdGlvbnMiCmFtdEFzc2V0SWQiDHByaWNlQXNzZXRJZCINcG9vbExQQmFsYW5jZSISYWNjQW10QXNzZXRCYWxhbmNlIhRhY2NQcmljZUFzc2V0QmFsYW5jZSIKcHJpY2VzTGlzdCIPbHBBbXRBc3NldFNoYXJlIhFscFByaWNlQXNzZXRTaGFyZSIKcG9vbFdlaWdodCIMY3VyUHJpY2VDYWxjIgxhbUJhbGFuY2VSYXciDHByQmFsYW5jZVJhdyIPYW1CYWxhbmNlUmF3WDE4Ig9wckJhbGFuY2VSYXdYMTgiEHBheW1lbnRMcEFzc2V0SWQiDHBheW1lbnRMcEFtdCICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5IgptYXRjaGVyUHViIg0kdDA2ODI5MjY4NDA5IgduZXdIYXNoIgthbGxvd2VkSGFzaCILY3VycmVudEhhc2iCAQABYQAIAAFiAIDC1y8AAWMJALYCAQCAwtcvAAFkCQC2AgEAgICQu7rWrfANAAFlCQC2AgEAAAABZgkAtgIBAAAAAWcJALYCAQABAAFoCQC2AgEAAgABaQIFV0FWRVMAAWoCAl9fAAFrAAEAAWwAAgABbQADAAFuAAQAAW8AAQABcAACAAFxAAMAAXIABAABcwAFAAF0AAYAAXUABwABdgAIAAF3AAkAAXgACgABeQABAAF6AAIAAUEAAwABQgABAAFDAAcBAUQCAUUBRgkAvAIDCQC2AgEFAUUFAWQJALYCAQUBRgEBRwIBRQFGCQC8AgMFAUUFAWQFAUYBAUgCAUkBSgkAoAMBCQC8AgMFAUkJALYCAQUBSgUBZAEBSwMBSQFKAUwJAKADAQkAvQIEBQFJCQC2AgEFAUoFAWQFAUwBAU0DAU4BTwFQCQBrAwUBTgUBTwUBUAEBUQEBSQMJAGYCAAAFAUkJAQEtAQUBSQUBSQEBUgEBSQMJAL8CAgUBZQUBSQkAvgIBBQFJBQFJAQFTAAIQJXNfX3N3YXBDb250cmFjdAEBVAACEyVzX19mYWN0b3J5Q29udHJhY3QBAVUAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBVgACFyVzX19tYW5hZ2VyVmF1bHRBZGRyZXNzAQFXAAIRJXMlc19fcHJpY2VfX2xhc3QBAVgCAVkBWgkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAVkJAMwIAgkApAMBBQFaBQNuaWwFAWoBAmFhAgJhYgJhYwkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAmFiAgJfXwUCYWMBAmFkAgJhYgJhYwkArAICCQCsAgIJAKwCAgILJXMlcyVzX19HX18FAmFiAgJfXwUCYWMBAmFlAAIPJXNfX2Ftb3VudEFzc2V0AQJhZgACDiVzX19wcmljZUFzc2V0AAJhZwIHJXNfX2ZlZQACYWgJAGsDAAoFAWIAkE4AAmFpCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFnBQJhaAACYWoJALkJAgkAzAgCAgIlcwkAzAgCAgNrTHAFA25pbAUBagACYWsJALkJAgkAzAgCAgIlcwkAzAgCAhJrTHBSZWZyZXNoZWRIZWlnaHQFA25pbAUBagACYWwJALkJAgkAzAgCAgIlcwkAzAgCAg9yZWZyZXNoS0xwRGVsYXkFA25pbAUBagACYW0AHgACYW4JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWwFAmFtAQJhbwECYXAJALkJAgkAzAgCAgQlcyVzCQDMCAICDXN0YWtlZEJhbGFuY2UJAMwIAgUCYXAFA25pbAUBagECYXEBAmFwCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhFzaGFyZUFzc2V0QmFsYW5jZQkAzAgCBQJhcAUDbmlsBQFqAQJhcgECYXAJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFvAQUCYXAAAAECYXMBAmFwCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhcQEFAmFwAAABAmF0AAIRJXNfX2ZhY3RvcnlDb25maWcBAmF1AAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhdgECYXcJAKwCAgkArAICAgglcyVzJXNfXwUCYXcCIF9fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJMcEFzc2V0AQJheAICYXkCYXoJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmF5AgJfXwUCYXoCCF9fY29uZmlnAQJhQQECYUIJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYUIBAmFDAAIMJXNfX3NodXRkb3duAQJhRAECYUUJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQJhRQECYUYAAhclc19fYWxsb3dlZExwU2NyaXB0SGFzaAACYUcCFyVzX19mZWVDb2xsZWN0b3JBZGRyZXNzAQJhSAECYUkJAKwCAgIbJXMlc19fc2tpcE9yZGVyVmFsaWRhdGlvbl9fBQJhSQECYUoEAmFLAmFMAmFNAmFOCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICJG9yZGVyIHZhbGlkYXRpb24gZmFpbGVkOiBvcmRlclZhbGlkPQkApQMBBQJhSwICICgFAmFMAgEpAg0gc2VuZGVyVmFsaWQ9CQClAwEFAmFNAg4gbWF0Y2hlclZhbGlkPQkApQMBBQJhTgECYU8BAmFQBAJhUQkApggBBQJhUAMJAAECBQJhUQIHQWRkcmVzcwQCYVIFAmFRBQJhUgUEdGhpcwECYVMABAJhVAQCYVEJAKIIAQkBAVQAAwkAAQIFAmFRAgZTdHJpbmcEAmFVBQJhUQkBAmFPAQUCYVUFBHRoaXMEAmFRCQCdCAIFAmFUCQEBVgADCQABAgUCYVECBlN0cmluZwQCYVYFAmFRCQECYU8BBQJhVgUEdGhpcwECYVcCAmFYAmFZCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYVgFAmFZCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFYCQDMCAICAS4JAMwIAgUCYVkJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYVoCAmFYAmFZCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUCYVgFAmFZCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFYCQDMCAICAS4JAMwIAgUCYVkJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYmEBAmJiCQACAQkAuQkCCQDMCAICCGxwLnJpZGU6CQDMCAIFAmJiBQNuaWwCASABAmJjAQJiYgkAuQkCCQDMCAICCGxwLnJpZGU6CQDMCAIFAmJiBQNuaWwCASAAAmJkCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYVcCBQR0aGlzCQEBVAAAAmJlCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYVcCBQJiZAUCYUcAAmJmCgACYmcJAPwHBAUCYmQCEGdldEluRmVlUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJiZwIDSW50BQJiZwkAAgEJAKwCAgkAAwEFAmJnAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQAAmJoCgACYmcJAPwHBAUCYmQCEWdldE91dEZlZVJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYmcCA0ludAUCYmcJAAIBCQCsAgIJAAMBBQJiZwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AQJiaQAJAQt2YWx1ZU9yRWxzZQIJAJsIAgUCYmQJAQJhQwAHAQJiagAJANkEAQkBAmFXAgUCYmQJAQJhdQABAmJrAAQCYmwJAQJhVwIFBHRoaXMJAQJhZQAEAmJtCQECYVcCBQR0aGlzCQECYWYABAJhegkBAmFaAgUCYmQJAQJhQQEFAmJtBAJheQkBAmFaAgUCYmQJAQJhQQEFAmJsCQC1CQIJAQJhVwIFAmJkCQECYXgCCQCkAwEFAmF5CQCkAwEFAmF6BQFqAQJibgECYm8DCQAAAgUCYm8FAWkFBHVuaXQJANkEAQUCYm8BAmJwAQJibwMJAAACBQJibwUEdW5pdAUBaQkA2AQBCQEFdmFsdWUBBQJibwECYnEBAmJyCQCZCgcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYnIFAW8JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJicgUBcAkA2QQBCQCRAwIFAmJyBQFxCQECYm4BCQCRAwIFAmJyBQFyCQECYm4BCQCRAwIFAmJyBQFzCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnIFAXQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJicgUBdQACYnMJAQJicQEJAQJiawAAAmJ0BQJicwACYnUIBQJidAJfMQACYnYIBQJidAJfMgACYncIBQJidAJfMwACYngIBQJidAJfNAACYnkIBQJidAJfNQACYnoIBQJidAJfNgACYkEIBQJidAJfNwECYkIACQC1CQIJAQJhVwIFAmJkCQECYXQABQFqAAJiQwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmJCAAUBQgIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwACYkQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIJAQJiQgAFAUMCGWluY29ycmVjdCBzdGFraW5nIGFkZHJlc3MBAmJFCgJiRgJiRwJiSAJiSQJiSgJiSwJiTAJiTQJiTgJiTwkAuQkCCQDMCAICFCVkJWQlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYkYJAMwIAgkApAMBBQJiRwkAzAgCCQCkAwEFAmJICQDMCAIJAKQDAQUCYkkJAMwIAgkApAMBBQJiSgkAzAgCCQCkAwEFAmJLCQDMCAIJAKQDAQUCYkwJAMwIAgkApAMBBQJiTQkAzAgCCQCkAwEFAmJOCQDMCAIJAKQDAQUCYk8FA25pbAUBagECYlAGAmJRAmJSAmJTAmJJAmJMAmJNCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYlEJAMwIAgkApAMBBQJiUgkAzAgCCQCkAwEFAmJTCQDMCAIJAKQDAQUCYkkJAMwIAgkApAMBBQJiTAkAzAgCCQCkAwEFAmJNBQNuaWwFAWoBAmJUAQJhcAQCYlUDCQAAAgUCYXACBVdBVkVTCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQDZBAEFAmFwBAJiVgkAZQIJAGQCBQJiVQkBAmFyAQUCYXAJAQJhcwEFAmFwCQCWAwEJAMwIAgAACQDMCAIFAmJWBQNuaWwBAmJXAgJiWAJiWQkAvAIDBQJiWAUBZAUCYlkBAmJaAwJiWAJiWQFMCQC9AgQFAmJYBQFkBQJiWQUBTAECY2EBAmNiBAJjYwkA/AcEBQJjYgIHZ2V0UmF0ZQUDbmlsBQNuaWwDCQAAAgUCY2MFAmNjBAJhUQUCY2MDCQABAgUCYVECA0ludAQCY2QFAmFRBQJjZAkBAmJhAQIgcHJveHkuZ2V0UmF0ZSgpIHVuZXhwZWN0ZWQgdmFsdWUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmNlBAJhcAJjZgJjZwJjYgQCY2gJAQJhcgEFAmFwAwkAAAIFAmNoBQJjaAQCY2kJAQJhcwEFAmNnAwkAAAIFAmNpBQJjaQQCY2oJAQJibgEFAmFwAwkAZgIFAmNmAAAEAmNrCQD8BwQFAmNiAgdkZXBvc2l0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmNqBQJjZgUDbmlsAwkAAAIFAmNrBQJjawQCYVEFAmNrAwkAAQIFAmFRAgNJbnQEAmNsBQJhUQQCY20JAGQCBQJjaAUCY2YEAmNuCQBkAgUCY2kFAmNsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYW8BBQJhcAUCY20JAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhcQEFAmNnBQJjbgUDbmlsBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY28GAmFwAmNmAmNnAmNiAmNwAmNxBAJjaAkBAmFyAQUCYXADCQAAAgUCY2gFAmNoBAJjaQkBAmFzAQUCY2cDCQAAAgUCY2kFAmNpBAJjcgkBAmNhAQUCY2IDCQAAAgUCY3IFAmNyBAJjcwkAawMFAmNwBQJjaAUCY2kEAmN0CQECYm4BBQJjZwQCY3UJAGsDBQJjcAUCY2YFAmNzBAJjdgkAawMFAmNwBQJjZgUCY3IEAmN3CQCWAwEJAMwIAgAACQDMCAIJAGUCBQJjdQUCY3YFA25pbAMJAGYCBQJjdgAABAJjeAkA/AcEBQJjYgIId2l0aGRyYXcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCY3QFAmN2BQNuaWwDCQAAAgUCY3gFAmN4BAJhUQUCY3gDCQABAgUCYVECA0ludAQCY3kFAmFRBAJjbQkAZQIFAmNoBQJjeQQCY24JAGUCCQBlAgUCY2kFAmN2BQJjdwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFvAQUCYXAFAmNtCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYXEBBQJjZwUCY24JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCY3EFAmN3CQECYm4BBQJjZwUDbmlsBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY3oBAmFwBAJhUQkA/AcEBQJiZAIaZ2V0UG9vbExlYXNlQ29uZmlnUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzCQDMCAIFAmFwBQNuaWwFA25pbAMJAAECBQJhUQIwKEJvb2xlYW4sIEludCwgSW50LCBTdHJpbmcsIFN0cmluZywgSW50LCBTdHJpbmcpBAJhUgUCYVEFAmFSCQECYmEBCQCsAgIJAKwCAgIBWwUCYXACHV0gZ2V0TGVhc2VQcm94eUNvbmZpZygpIGVycm9yAQJjQQcCY0ICYXACY2cCY0MCY2ICY3ACY3EEAmNoCQECYXIBBQJhcAMJAAACBQJjaAUCY2gEAmNpCQECYXMBBQJjZwMJAAACBQJjaQUCY2kEAmNECQCWAwEJAMwIAgAACQDMCAIJAGUCCQECYlQBBQJhcAUCY0MFA25pbAQCY0UJAGsDBQJjQgUCY0QAZAQCY0YJAGUCBQJjaAUCY0UDCQAAAgUCY0YAAAUDbmlsAwkAZgIAAAUCY0YEAmNHCQEBLQEFAmNGCQECY2UEBQJhcAUCY0cFAmNnBQJjYgQCY0gFAmNGCQECY28GBQJhcAUCY0gFAmNnBQJjYgUCY3AFAmNxCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJjSQECYXAEAmNKCQECY3oBBQJhcAQCY0sIBQJjSgJfMQQCY0wIBQJjSgJfMgQCY0MIBQJjSgJfMwQCY00IBQJjSgJfNAQCY04IBQJjSgJfNQQCY3AIBQJjSgJfNgQCY08IBQJjSgJfNwMFAmNLCQECY0EHBQJjTAUCYXAFAmNOBQJjQwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY00FAmNwCQERQGV4dHJOYXRpdmUoMTA2MikBBQJjTwUDbmlsAQJjUAICYXACY1EEAmNSCQECY3oBBQJhcAQCY0sIBQJjUgJfMQQCY0wIBQJjUgJfMgQCY0MIBQJjUgJfMwQCY00IBQJjUgJfNAQCY04IBQJjUgJfNQQCY3AIBQJjUgJfNgQCY08IBQJjUgJfNwMFAmNLBAJjUwkAlgMBCQDMCAIAAAkAzAgCCQBlAgkAZQIJAQJiVAEFAmFwBQJjUQUCY0MFA25pbAMJAAACBQJjUwUCY1MEAmNtCQBrAwUCY0wFAmNTAGQDCQAAAgUCY20FAmNtBAJjVAkAZQIJAQJhcgEFAmFwBQJjbQMJAAACBQJjVAUCY1QDCQBmAgAABQJjVAkBAmNlBAUCYXAJAQEtAQUCY1QFAmNOCQERQGV4dHJOYXRpdmUoMTA2MikBBQJjTQkBAmNvBgUCYXAFAmNUBQJjTgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY00FAmNwCQERQGV4dHJOYXRpdmUoMTA2MikBBQJjTwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsAQJjVQICY1YCY1cEAmNYCQECY1ACCQECYVcCBQR0aGlzCQECYWUABQJjVgQCY1kJAQJjUAIJAQJhVwIFBHRoaXMJAQJhZgAFAmNXCQDOCAIFAmNYBQJjWQECY1oEAmRhAmRiAmRjAmRkBAJkZQkBAUQCBQJkYwUCZGEEAmRmCQEBRAIFAmRkBQJkYgkBAmJXAgUCZGYFAmRlAQJkZwMCZGMCZGQCZGgEAmRpCQECYmsABAJkagkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRpBQF0BAJkawkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRpBQF1BAJkbAkBAmNaBAUCZGoFAmRrBQJkYwUCZGQEAmJZCQEBRAIFAmRjBQJkagQCYlgJAQFEAgUCZGQFAmRrBAJkbQkBAUQCBQJkaAUBYgQCZG4JAQJiVwIFAmJZBQJkbQQCZG8JAQJiVwIFAmJYBQJkbQkAzAgCBQJkbAkAzAgCBQJkbgkAzAgCBQJkbwUDbmlsAQJkcAMCZGMCZGQCZGgEAmRxCQECZGcDBQJkYwUCZGQFAmRoCQDMCAIJAQFIAgkAkQMCBQJkcQAABQFiCQDMCAIJAQFIAgkAkQMCBQJkcQABBQFiCQDMCAIJAQFIAgkAkQMCBQJkcQACBQFiBQNuaWwBAmRyBAJkcwJkdAJkdQJhYgQCZGkJAQJiawAEAmR2CQCRAwIFAmRpBQFxBAJkdwkAkQMCBQJkaQUBcgQCZHgJAJEDAgUCZGkFAXMEAmRhCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGkFAXQEAmRiCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGkFAXUEAmR5CQCRAwIFAmRpBQFwBAJkeggJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmR2CQCsAgIJAKwCAgIGQXNzZXQgBQJkdgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkDCQECIT0CBQJkdgUCZHQJAAIBAhVJbnZhbGlkIGFzc2V0IHBhc3NlZC4EAmRBCQECYlQBBQJkdwQCZEIJAQFEAgUCZEEFAmRhBAJkQwkBAmJUAQUCZHgEAmRECQEBRAIFAmRDBQJkYgQCZEUJAQJiVwIFAmREBQJkQgQCZEYJAQFIAgUCZEUFAWIEAmRHCQEBRAIFAmR1BQFiBAJkSAkBAUQCBQJkegUBYgQCZEkJALwCAwUCZEIFAmRHBQJkSAQCZEoJALwCAwUCZEQFAmRHBQJkSAQCZEsJAQFLAwUCZEkFAmRhBQVGTE9PUgQCZEwJAQFLAwUCZEoFAmRiBQVGTE9PUgQCZE0DCQAAAgUCZHMCAAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFiBQJkSwMJAAACBQJkdwIFV0FWRVMFBHVuaXQJANkEAQUCZHcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYWIFAmRMAwkAAAIFAmR4AgVXQVZFUwUEdW5pdAkA2QQBBQJkeAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWQCCQClCAEFAmFiBQJkcwkBAmJQBgUCZEsFAmRMBQJkdQUCZEYFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAAUCZEYJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFYAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZEYFA25pbAkAnAoKBQJkSwUCZEwFAmR3BQJkeAUCZEEFAmRDBQJkegUCZEUFAmR5BQJkTQECZE4JAmRzAmRPAmRQAmRRAmRSAmRTAmFiAmRUAmRVBAJkaQkBAmJrAAQCZHYJANkEAQkAkQMCBQJkaQUBcQQCZFYJAJEDAgUCZGkFAXIEAmRXCQCRAwIFAmRpBQFzBAJkWAkAkQMCBQJkaQUBdgQCZFkJAJEDAgUCZGkFAXcEAmRqCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGkFAXQEAmRrCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGkFAXUEAmR5CQCRAwIFAmRpBQFwBAJkeggJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJkdgkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJkdgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmRaCQDYBAEJAQt2YWx1ZU9yRWxzZQIFAmRRCQDZBAECBVdBVkVTBAJlYQkA2AQBCQELdmFsdWVPckVsc2UCBQJkUwkA2QQBAgVXQVZFUwMDCQECIT0CBQJkVgUCZFoGCQECIT0CBQJkVwUCZWEJAAIBAiJJbnZhbGlkIGFtdCBvciBwcmljZSBhc3NldCBwYXNzZWQuBAJkQQMFAmRUCQECYlQBBQJkVgkAZQIJAQJiVAEFAmRWBQJkUAQCZEMDBQJkVAkBAmJUAQUCZFcJAGUCCQECYlQBBQJkVwUCZFIEAmViCQEBRAIFAmRQBQJkagQCZWMJAQFEAgUCZFIFAmRrBAJlZAkBAmJXAgUCZWMFAmViBAJkQgkBAUQCBQJkQQUCZGoEAmRECQEBRAIFAmRDBQJkawQCZWUDCQAAAgUCZHoAAAQCZEUFAWUEAmVmBQFlBAJkbQkAdgYJALkCAgUCZWIFAmVjAAAJALYCAQAFAAEAAAUERE9XTgkAlwoFCQEBSAIFAmRtBQFiCQEBSAIFAmViBQJkagkBAUgCBQJlYwUCZGsJAQJiVwIJALcCAgUCZEQFAmVjCQC3AgIFAmRCBQJlYgUCZWYEAmRFCQECYlcCBQJkRAUCZEIEAmVmCQC8AgMJAQFSAQkAuAICBQJkRQUCZWQFAWQFAmRFBAJlZwkBAUQCBQJkTwUBYgMDCQECIT0CBQJkRQUBZQkAvwICBQJlZgUCZWcHCQACAQkArAICCQCsAgIJAKwCAgIPUHJpY2Ugc2xpcHBhZ2UgCQCmAwEFAmVmAh4gZXhjZWVkZWQgdGhlIHBhc3NlZCBsaW1pdCBvZiAJAKYDAQUCZWcEAmRICQEBRAIFAmR6BQFiBAJlaAkAvQIEBQJlYgkBAmJaAwUCZEQFAmRCBQdDRUlMSU5HBQFkBQdDRUlMSU5HBAJlaQkAvQIEBQJlYwUBZAkBAmJaAwUCZEQFAmRCBQVGTE9PUgUHQ0VJTElORwQCZWoDCQC/AgIFAmVoBQJlYwkAlAoCBQJlaQUCZWMJAJQKAgUCZWIFAmVoBAJlawgFAmVqAl8xBAJlbAgFAmVqAl8yBAJkbQkAvQIEBQJkSAUCZWwFAmREBQVGTE9PUgkAlwoFCQEBSwMFAmRtBQFiBQVGTE9PUgkBAUsDBQJlawUCZGoFB0NFSUxJTkcJAQFLAwUCZWwFAmRrBQdDRUlMSU5HBQJkRQUCZWYEAmVtCAUCZWUCXzEEAmVuCAUCZWUCXzIEAmVvCAUCZWUCXzMEAmRGCQEBSAIIBQJlZQJfNAUBYgQCZXAJAQFIAggFAmVlAl81BQFiAwkAZwIAAAUCZW0JAAIBAjZJbnZhbGlkIGNhbGN1bGF0aW9ucy4gTFAgY2FsY3VsYXRlZCBpcyBsZXNzIHRoYW4gemVyby4EAmVxAwkBASEBBQJkVQAABQJlbQQCZXIJAGUCBQJkUAUCZW4EAmVzCQBlAgUCZFIFAmVvBAJldAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcABQJkRgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVgCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJkRgkAzAgCCQELU3RyaW5nRW50cnkCCQECYWECBQJhYgUCZHMJAQJiRQoFAmVuBQJlbwUCZXEFAmRGBQJkTwUCZXAFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmVyBQJlcwUDbmlsCQCfCg0FAmVtBQJlcQUCZEYFAmRBBQJkQwUCZHoFAmR2BQJkeQUCZXQFAmVyBQJlcwUCZFEFAmRTAQJldQMCZXYCZXcCZHoEAmV4CQEBRwIFAmV2CQC2AgEFAmJ6BAJleQkBAUcCBQJldwkAtgIBBQJiQQQCZXoJALwCAwkAdgYJALkCAgUCZXgFAmV5AAAJALYCAQAFAAEAEgUERE9XTgUBZwUCZHoDCQAAAgUCZHoFAWYFAWYFAmV6AQJlQQMCZUICZUMCZUQEAmVFCQC4AgIJALYCAQkBAmJUAQkBAmJwAQUCYngFAmVCBAJlRgkAuAICCQC2AgEJAQJiVAEJAQJicAEFAmJ5BQJlQwQCZUcJALgCAgkAtgIBCAkBBXZhbHVlAQkA7AcBBQJidwhxdWFudGl0eQUCZUQEAmVICQECZXUDBQJlRQUCZUYFAmVHBQJlSAECZUkDAmVKAmVLAmVEBAJlRQkAZAIJAQJiVAEJAQJicAEFAmJ4BQJlSgQCZUYJAGQCCQECYlQBCQECYnABBQJieQUCZUsEAmVHCQBkAggJAQV2YWx1ZQEJAOwHAQUCYncIcXVhbnRpdHkFAmVEBAJlegkBAmV1AwkAtgIBBQJlRQkAtgIBBQJlRgkAtgIBBQJlRwQCZUwJAMwIAgkBDEludGVnZXJFbnRyeQIFAmFrBQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYWoJAKYDAQUCZXoFA25pbAkAlAoCBQJlTAUCZXoBAmVNAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJiZAkBAmFIAQkApQgBBQR0aGlzBwECZU4CAmVPAmV6AwkAwAICBQJlegUCZU8GCQECYmEBCQC5CQIJAMwIAgIidXBkYXRlZCBLTHAgbG93ZXIgdGhhbiBjdXJyZW50IEtMcAkAzAgCCQCmAwEFAmVPCQDMCAIJAKYDAQUCZXoFA25pbAIBIAECZVABAmVRBAJlRQkBAmJUAQkBAmJwAQUCYngEAmVGCQECYlQBCQECYnABBQJieQQCZVIIBQJlUQZhbW91bnQEAmVTCQBuBAgFAmVRBmFtb3VudAgFAmVRBXByaWNlBQFiBQVGTE9PUgQCZVQDCQAAAggFAmVRCW9yZGVyVHlwZQUDQnV5CQCUCgIFAmVSCQEBLQEFAmVTCQCUCgIJAQEtAQUCZVIFAmVTBAJlSggFAmVUAl8xBAJlSwgFAmVUAl8yAwMDCQECYmkABgkAAAIFAmJ2BQFtBgkAAAIFAmJ2BQFuCQACAQIcRXhjaGFuZ2Ugb3BlcmF0aW9ucyBkaXNhYmxlZAMDCQECIT0CCAgFAmVRCWFzc2V0UGFpcgthbW91bnRBc3NldAUCYngGCQECIT0CCAgFAmVRCWFzc2V0UGFpcgpwcmljZUFzc2V0BQJieQkAAgECE1dyb25nIG9yZGVyIGFzc2V0cy4EAmVVCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQJhagIBMAkBAmJjAQILaW52YWxpZCBrTHAEAmVWCQECZUkDBQJlSgUCZUsAAAQCZVcIBQJlVgJfMQQCZVgIBQJlVgJfMgQCZVkJAMACAgUCZVgFAmVVBAJlWgkAuQkCCQDMCAICBGtMcD0JAMwIAgkApgMBBQJlVQkAzAgCAggga0xwTmV3PQkAzAgCCQCmAwEFAmVYCQDMCAICFCBhbW91bnRBc3NldEJhbGFuY2U9CQDMCAIJAKQDAQUCZUUJAMwIAgITIHByaWNlQXNzZXRCYWxhbmNlPQkAzAgCCQCkAwEFAmVGCQDMCAICGSBhbW91bnRBc3NldEJhbGFuY2VEZWx0YT0JAMwIAgkApAMBBQJlSgkAzAgCAhggcHJpY2VBc3NldEJhbGFuY2VEZWx0YT0JAMwIAgkApAMBBQJlSwkAzAgCAgggaGVpZ2h0PQkAzAgCCQCkAwEFBmhlaWdodAUDbmlsAgAJAJQKAgUCZVkFAmVaAQJmYQECZmIDCQECIT0CCQCQAwEIBQJmYghwYXltZW50cwABCQACAQIdZXhhY3RseSAxIHBheW1lbnQgaXMgZXhwZWN0ZWQEAmZjCQEFdmFsdWUBCQCRAwIIBQJmYghwYXltZW50cwAABAJkdAkBBXZhbHVlAQgFAmZjB2Fzc2V0SWQEAmZkCAUCZmMGYW1vdW50BAJlZQkBAmRyBAkA2AQBCAUCZmINdHJhbnNhY3Rpb25JZAkA2AQBBQJkdAUCZmQIBQJmYgZjYWxsZXIEAmRLCAUCZWUCXzEEAmRMCAUCZWUCXzIEAmR5CQENcGFyc2VJbnRWYWx1ZQEIBQJlZQJfOQQCZE0IBQJlZQNfMTADAwkBAmJpAAYJAAACBQJkeQUBbgkAAgEJAKwCAgIsR2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCZHkJAJcKBQUCZEsFAmRMBQJmZAUCZHQFAmRNAQJmZQMCZmICZE8CZFUDCQECIT0CCQCQAwEIBQJmYghwYXltZW50cwACCQACAQIfZXhhY3RseSAyIHBheW1lbnRzIGFyZSBleHBlY3RlZAQCZmYJAQV2YWx1ZQEJAJEDAggFAmZiCHBheW1lbnRzAAAEAmZnCQEFdmFsdWUBCQCRAwIIBQJmYghwYXltZW50cwABBAJmaAkBAmROCQkA2AQBCAUCZmINdHJhbnNhY3Rpb25JZAUCZE8IBQJmZgZhbW91bnQIBQJmZgdhc3NldElkCAUCZmcGYW1vdW50CAUCZmcHYXNzZXRJZAkApQgBCAUCZmIGY2FsbGVyBwUCZFUEAmR5CQENcGFyc2VJbnRWYWx1ZQEIBQJmaAJfOAMDAwkBAmJpAAYJAAACBQJkeQUBbAYJAAACBQJkeQUBbgkAAgEJAKwCAgIsUHV0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCZHkFAmZoAQJmaQECY2YEAmZqCQD8BwQFAmJkAgRlbWl0CQDMCAIFAmNmBQNuaWwFA25pbAMJAAACBQJmagUCZmoEAmZrBAJhUQUCZmoDCQABAgUCYVECB0FkZHJlc3MEAmZsBQJhUQkA/AcEBQJmbAIEZW1pdAkAzAgCBQJjZgUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZmsFAmZrBQJjZgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZm0CAmNmAmFpBAJmbgMJAAACBQJhaQAAAAAJAGsDBQJjZgUCYWkFAWIJAJQKAgkAZQIFAmNmBQJmbgUCZm4BAmZvBAJmcAJmcQJhYgJhYwQCZnIJAAACBQJhYwUEdW5pdAQCZnMJAQJiVAEJAQJicAEFAmJ4BAJmdAkBAmJUAQkBAmJwAQUCYnkEAmZ1AwkAAAIFAmZxBQJieAYDCQAAAgUCZnEFAmJ5BwkBAmJhAQINaW52YWxpZCBhc3NldAQCZnYDBQJmcgkAlAoCBQJmcwUCZnQDBQJmdQkAlAoCCQBlAgUCZnMFAmZwBQJmdAkAlAoCBQJmcwkAZQIFAmZ0BQJmcAQCZncIBQJmdgJfMQQCZngIBQJmdgJfMgQCZnkDBQJmdQkAlAoCBQJmcAAACQCUCgIAAAUCZnAEAmZ6CAUCZnkCXzEEAmZBCAUCZnkCXzIEAmVSCAkBAmZtAgUCZnoFAmJmAl8xBAJlUwgJAQJmbQIFAmZBBQJiZgJfMQQCZkIJAQJmbQIFAmZwBQJiZgQCZkMIBQJmQgJfMQQCZm4IBQJmQgJfMgQCZkQJAGQCBQJmdwUCZVIEAmZFCQBkAgUCZngFAmVTBAJmRgkBAmJXAgkBAUQCBQJmRQUCYkEJAQFEAgUCZkQFAmJ6BAJmRwkBAUgCBQJmRgUBYgQCZkgDBQJmdQUCZncFAmZ4BAJmSQkAtgIBBQJmSAQCZkoJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJidwkArAICCQCsAgICBmFzc2V0IAkA2AQBBQJidwIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmZLAwkAvwICBQJmSgUBZgYJAQJiYQECImluaXRpYWwgZGVwb3NpdCByZXF1aXJlcyBhbGwgY29pbnMDCQAAAgUCZksFAmZLBAJmTAkAtgIBBQJmQwQCZk0JAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC6AgIJALkCAgUCZkoJALgCAgkBCnNxcnRCaWdJbnQECQC3AgIFAWQJALoCAgkAuQICBQJmTAUBZAUCZkkAEgASBQRET1dOBQFkBQFkBQNuaWwEAmV0AwUCZnIFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcABQJmRwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVgCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJmRwkAzAgCCQELU3RyaW5nRW50cnkCCQECYWECCQClCAEJAQV2YWx1ZQEFAmFiCQDYBAEJAQV2YWx1ZQEFAmFjCQECYkUKBQJmegUCZkEFAmZNBQJmRwAAAAAFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAAAAAABQNuaWwEAmZOCQECYlcCCQEBRAIFAmZ4BQJiQQkBAUQCBQJmdwUCYnoEAmZPCQEBSAIFAmZOBQFiBAJmUAQCZlEDBQJmdQkAlAoCBQJmegUCZncJAJQKAgUCZkEFAmZ4BAJjZggFAmZRAl8xBAJmUggFAmZRAl8yBAJmUwkAoAMBCQC8AgMFAmZKCQC2AgEJAGkCBQJjZgACCQC2AgEFAmZSCQBrAwkAZQIFAmZNBQJmUwUBYgUCZlMJAJcKBQUCZk0FAmV0BQJmbgUCZlAFAmZ1CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJmVAUCZlUCZkMCZnECYWICYWMEAmZyCQAAAgUCYWMFBHVuaXQEAmRpCQECYmsABAJkagkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRpBQF0BAJkawkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRpBQF1BAJmVgkAzAgCAwkAAAIFAmZxBQJidwYJAQJiYQECEGludmFsaWQgbHAgYXNzZXQFA25pbAMJAAACBQJmVgUCZlYEAmZXAwkAAAIFAmZVBQJieAYDCQAAAgUCZlUFAmJ5BwkBAmJhAQINaW52YWxpZCBhc3NldAQCZlgDBQJmVwkAtgIBCQECYlQBCQECYnABBQJieAkAtgIBCQECYlQBCQECYnABBQJieQQCZlkDBQJmVwUCZGoFAmRrBAJmWgkBAmJUAQkBAmJwAQUCYngEAmdhCQECYlQBCQECYnABBQJieQQCZ2IDBQJmVwUCZloFAmdhBAJnYwkAtgIBBQJnYgQCZkoJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJidwkArAICCQCsAgICBmFzc2V0IAkA2AQBBQJidwIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmdkCQC2AgEFAmZDBAJnZQkAlgMBCQDMCAIAAAkAzAgCCQCgAwEJALoCAgkAuQICBQJmWAkAuAICBQFkCQB2BgkAuAICBQFkCQC6AgIJALkCAgUCZ2QFAWQFAmZKABIFAWgAAAASBQRET1dOBQFkBQNuaWwEAmdmCQECZm0CBQJnZQUCYmgEAmdnCAUCZ2YCXzEEAmZuCAUCZ2YCXzIEAmdoAwUCZlcJAJYKBAUCZ2cAAAkAZQIFAmZaBQJnZQUCZ2EJAJYKBAAABQJnZwUCZloJAGUCBQJnYQUCZ2UEAmdpCAUCZ2gCXzEEAmdqCAUCZ2gCXzIEAmdrCAUCZ2gCXzMEAmdsCAUCZ2gCXzQEAmZGCQECYlcCCQEBRAIFAmdsBQJiQQkBAUQCBQJnawUCYnoEAmZHCQEBSAIFAmZGBQFiBAJldAMFAmZyBQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFkAgkApQgBCQEFdmFsdWUBBQJhYgkA2AQBCQEFdmFsdWUBBQJhYwkBAmJQBgUCZ2kFAmdqBQJmQwUCZkcFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAAUCZkcJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFYAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZkcFA25pbAQCZk4JAQJiVwIJAQFEAgUCZ2EFAmJBCQEBRAIFAmZaBQJiegQCZk8JAQFIAgUCZk4FAWIEAmZQBAJnbQkAaAIJAKADAQkAvAIDBQJmWAUCZ2QFAmZKAAIJAGsDCQBlAgUCZ2cFAmdtBQFiBQJnbQkAlwoFBQJnZwUCZXQFAmZuBQJmUAUCZlcJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmduAAQCZ28JAQJhUwAEAmFRCQCdCAIFAmdvCQEBVQADCQABAgUCYVECBlN0cmluZwQCYVYFAmFRCQDZBAEFAmFWAwkAAQIFAmFRAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmdwAQJmYgQCYVEJAQJnbgADCQABAgUCYVECCkJ5dGVWZWN0b3IEAmdxBQJhUQkAAAIIBQJmYg9jYWxsZXJQdWJsaWNLZXkFAmdxAwkAAQIFAmFRAgRVbml0CQAAAggFAmZiBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQJncgECZmIEAmdzCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEAmFRCQECZ24AAwkAAQIFAmFRAgpCeXRlVmVjdG9yBAJncQUCYVEDCQAAAggFAmZiD2NhbGxlclB1YmxpY0tleQUCZ3EGBQJncwMJAAECBQJhUQIEVW5pdAMJAAACCAUCZmIGY2FsbGVyBQR0aGlzBgUCZ3MJAAIBAgtNYXRjaCBlcnJvchwCZmIBCXJlYmFsYW5jZQAJAM4IAgkBAmNJAQkBAmFXAgUEdGhpcwkBAmFlAAkBAmNJAQkBAmFXAgUEdGhpcwkBAmFmAAJmYgEhY2FsY3VsYXRlQW1vdW50T3V0Rm9yU3dhcFJFQURPTkxZAwJndAJndQJndgQCZ3cDCQAAAgUCZ3UHBAJneAkBAmFXAgUEdGhpcwkBAmFmAAQCZ3kJAQJhVwIFBHRoaXMJAQJhZQAJAJQKAgUCZ3gFAmd5BAJneAkBAmFXAgUEdGhpcwkBAmFlAAQCZ3kJAQJhVwIFBHRoaXMJAQJhZgAJAJQKAgUCZ3gFAmd5BAJneAgFAmd3Al8xBAJneQgFAmd3Al8yBAJnegkBAmJUAQUCZ3kEAmdBCQECYlQBBQJneAQCZ0IJAGsDBQJnQQUCZ3QJAGQCBQJnegUCZ3QEAmdDCQC5AgIJALYCAQUCZ3oJALYCAQUCZ0EEAmdECQC5AgIJALcCAgkAtwICCQC2AgEJAQJiVAEFAmd5CQC2AgEFAmd0CQC2AgEFAmd2CQC4AgIJALYCAQkBAmJUAQUCZ3gJALYCAQUCZ0IEAmdFAwkAwAICBQJnRAUCZ0MGCQACAQIUbmV3IEsgaXMgZmV3ZXIgZXJyb3IDCQAAAgUCZ0UFAmdFCQCUCgIFA25pbAUCZ0IJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmIBJmNhbGN1bGF0ZUFtb3VudE91dEZvclN3YXBBbmRTZW5kVG9rZW5zBQJndAJndQJnRgJnRwJndgQCZ0gKAAJiZwkA/AcEBQJiZAIXZ2V0U3dhcENvbnRyYWN0UkVBRE9OTFkFA25pbAUDbmlsAwkAAQIFAmJnAgZTdHJpbmcFAmJnCQACAQkArAICCQADAQUCYmcCGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwQCZlYJAMwIAgMJAGcCCAkBBXZhbHVlAQkAkQMCCAUCZmIIcGF5bWVudHMAAAZhbW91bnQFAmd0BgkBAmJhAQIMV3JvbmcgYW1vdW50CQDMCAIDCQAAAggFAmZiBmNhbGxlcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCZ0gGCQECYmEBAhFQZXJtaXNzaW9uIGRlbmllZAUDbmlsAwkAAAIFAmZWBQJmVgQCZmMJAQV2YWx1ZQEJAJEDAggFAmZiCHBheW1lbnRzAAAEAmd5CQECYnABCAUCZmMHYXNzZXRJZAQCZ3gDCQAAAgUCZ3UHCQECYVcCBQR0aGlzCQECYWYACQECYVcCBQR0aGlzCQECYWUABAJnegkAZQIJAGUCCQECYlQBBQJneQgJAQV2YWx1ZQEJAJEDAggFAmZiCHBheW1lbnRzAAAGYW1vdW50BQJndgQCZ0EJAQJiVAEFAmd4BAJnQgkAawMFAmdBBQJndAkAZAIFAmd6BQJndAQCZ0MJALkCAgkAtgIBBQJnegkAtgIBBQJnQQQCZ0QJALkCAgkAtwICCQC2AgEJAQJiVAEFAmd5CQC2AgEFAmd2CQC4AgIJALYCAQkBAmJUAQUCZ3gJALYCAQUCZ0IEAmdFAwkAwAICBQJnRAUCZ0MGCQACAQIUbmV3IEsgaXMgZmV3ZXIgZXJyb3IDCQAAAgUCZ0UFAmdFBAJnSQMJAGcCBQJnQgUCZ0YGCQACAQIsRXhjaGFuZ2UgcmVzdWx0IGlzIGZld2VyIGNvaW5zIHRoYW4gZXhwZWN0ZWQDCQAAAgUCZ0kFAmdJBAJlSgMFAmd1CQEBLQEFAmdCBQJndgQCZUsDBQJndQUCZ3YJAQEtAQUCZ0IEAmdKCAkBAmVJAwUCZUoFAmVLAAACXzEDCQAAAgUCZ0oFAmdKBAJnSwkBAmNJAQUCZ3kDCQAAAgUCZ0sFAmdLBAJnTAkBAmNQAgUCZ3gFAmdCAwkAAAIFAmdMBQJnTAkAlAoCCQDOCAIJAM4IAgUCZ0wFAmdLCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmdHBQJnQgkBAmJuAQUCZ3gFA25pbAUCZ0IJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmIBA3B1dAICZE8CZ00DCQBmAgAABQJkTwkAAgECIEludmFsaWQgc2xpcHBhZ2VUb2xlcmFuY2UgcGFzc2VkBAJmaAkBAmZlAwUCZmIFAmRPBgQCZXEIBQJmaAJfMgQCZHYIBQJmaAJfNwQCZE0IBQJmaAJfOQQCZXIIBQJmaANfMTAEAmVzCAUCZmgDXzExBAJnTggFAmZoA18xMgQCZ08IBQJmaANfMTMEAmZmCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJmYghwYXltZW50cwAABmFtb3VudAQCZmcJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmZiCHBheW1lbnRzAAEGYW1vdW50BAJlSAkBAmVBAwUCZmYFAmZnCQC2AgEAAAMJAAACBQJlSAUCZUgEAmZqCQD8BwQFAmJkAgRlbWl0CQDMCAIFAmVxBQNuaWwFA25pbAMJAAACBQJmagUCZmoEAmZrBAJhUQUCZmoDCQABAgUCYVECB0FkZHJlc3MEAmZsBQJhUQkA/AcEBQJmbAIEZW1pdAkAzAgCBQJlcQUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZmsFAmZrBAJnUAMJAGYCBQJlcgAACQD8BwQFAmJEAgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZ04FAmVyBQNuaWwFA25pbAMJAAACBQJnUAUCZ1AEAmdRAwkAZgIFAmVzAAAJAPwHBAUCYkQCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJnTwUCZXMFA25pbAUDbmlsAwkAAAIFAmdRBQJnUQQCZ1IDBQJnTQQCZ1MJAPwHBAUCYkMCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmR2BQJlcQUDbmlsAwkAAAIFAmdTBQJnUwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJmYgZjYWxsZXIFAmVxBQJkdgUDbmlsBAJnVAkBAmVJAwAAAAAAAAMJAAACBQJnVAUCZ1QEAmV6CAUCZ1QCXzIEAmdKCAUCZ1QCXzEEAmdVCQECZU4CBQJlSAUCZXoDCQAAAgUCZ1UFAmdVBAJnVgkA/AcEBQR0aGlzAglyZWJhbGFuY2UFA25pbAUDbmlsAwkAAAIFAmdWBQJnVgkAzggCCQDOCAIFAmRNBQJnUgUCZ0oJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmIBCnB1dEZvckZyZWUBAmdXAwkAZgIAAAUCZ1cJAAIBAhRJbnZhbGlkIHZhbHVlIHBhc3NlZAQCZmgJAQJmZQMFAmZiBQJnVwcEAmRNCAUCZmgCXzkEAmZmCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJmYghwYXltZW50cwAABmFtb3VudAQCZmcJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmZiCHBheW1lbnRzAAEGYW1vdW50BAJlSAkBAmVBAwUCZmYFAmZnCQC2AgEAAAMJAAACBQJlSAUCZUgEAmdYCQECZUkDAAAAAAAABAJnSggFAmdYAl8xBAJleggFAmdYAl8yBAJnVQkBAmVOAgUCZUgFAmV6AwkAAAIFAmdVBQJnVQkAzggCBQJkTQUCZ0oJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmIBCXB1dE9uZVRrbgICZ1kCZ1oEAmhhCgACYmcJAPwHBAUCYmQCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJiZwIHQm9vbGVhbgUCYmcJAAIBCQCsAgIJAAMBBQJiZwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCaGIDAwMJAQJiaQAGCQAAAgUCYnYFAWwGCQAAAgUCYnYFAW4GBQJoYQQCZlYJAMwIAgMDCQEBIQEFAmhiBgkBAmdwAQUCZmIGCQECYmEBAiFwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJmYghwYXltZW50cwABBgkBAmJhAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlYFAmZWBAJoYwkAkQMCCAUCZmIIcGF5bWVudHMAAAQCZnEIBQJoYwdhc3NldElkBAJmcAgFAmhjBmFtb3VudAQCZUgDCQAAAgUCZnEFAmJ4CQECZUEDCQC2AgEFAmZwCQC2AgEAAAkAtgIBAAADCQAAAgUCZnEFAmJ5CQECZUEDCQC2AgEAAAkAtgIBBQJmcAkAtgIBAAAJAQJiYQECHnBheW1lbnQgYXNzZXQgaXMgbm90IHN1cHBvcnRlZAMJAAACBQJlSAUCZUgEAmFiCAUCZmIGY2FsbGVyBAJhYwgFAmZiDXRyYW5zYWN0aW9uSWQEAmhkCQECZm8EBQJmcAUCZnEFAmFiBQJhYwMJAAACBQJoZAUCaGQEAmZ1CAUCaGQCXzUEAmhlCAUCaGQCXzQEAmZuCAUCaGQCXzMEAmV0CAUCaGQCXzIEAmhmCAUCaGQCXzEEAmhnAwMJAGYCBQJnWQAACQBmAgUCZ1kFAmhmBwkBAmJhAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJnWQUDbmlsAgAFAmhmBAJmagkBAmZpAQUCaGcDCQAAAgUCZmoFAmZqBAJnUgMFAmdaBAJoaAkA/AcEBQJiQwIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYncFAmhnBQNuaWwDCQAAAgUCaGgFAmhoBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmZiBmNhbGxlcgUCaGcFAmJ3BQNuaWwEAmhpAwkAZgIFAmZuAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYmUFAmZuBQJmcQUDbmlsBQNuaWwEAmhqAwkAAAIFBHRoaXMFAmJlCQCUCgIAAAAAAwUCZnUJAJQKAgkBAS0BBQJmbgAACQCUCgIAAAkBAS0BBQJmbgQCZUoIBQJoagJfMQQCZUsIBQJoagJfMgQCaGsJAQJlSQMFAmVKBQJlSwAABAJnSggFAmhrAl8xBAJleggFAmhrAl8yBAJlVQkBBXZhbHVlAQkAoggBBQJhagQCZ1UJAQJlTgIFAmVIBQJlegMJAAACBQJnVQUCZ1UEAmdWCQD8BwQFBHRoaXMCCXJlYmFsYW5jZQUDbmlsBQNuaWwDCQAAAgUCZ1YFAmdWCQCUCgIJAM4IAgkAzggCCQDOCAIFAmV0BQJnUgUCaGkFAmdKBQJoZwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJmYgERcHV0T25lVGtuUkVBRE9OTFkCAmZxAmZwBAJobAkBAmZvBAUCZnAJAQJibgEFAmZxBQR1bml0BQR1bml0BAJoZggFAmhsAl8xBAJldAgFAmhsAl8yBAJmbggFAmhsAl8zBAJoZQgFAmhsAl80BAJmdQgFAmhsAl81CQCUCgIFA25pbAkAlQoDBQJoZgUCZm4FAmhlAmZiAQlnZXRPbmVUa24CAmhtAmdZBAJoYQoAAmJnCQD8BwQFAmJkAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYmcCB0Jvb2xlYW4FAmJnCQACAQkArAICCQADAQUCYmcCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmhuAwMJAQJiaQAGCQAAAgUCYnYFAW4GBQJoYQQCZlYJAMwIAgMDCQEBIQEFAmhuBgkBAmdwAQUCZmIGCQECYmEBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJmYghwYXltZW50cwABBgkBAmJhAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlYFAmZWBAJmVQkBAmJuAQUCaG0EAmhjCQCRAwIIBQJmYghwYXltZW50cwAABAJmcQgFAmhjB2Fzc2V0SWQEAmZDCAUCaGMGYW1vdW50BAJlSAkBAmVBAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlSAUCZUgEAmFiCAUCZmIGY2FsbGVyBAJhYwgFAmZiDXRyYW5zYWN0aW9uSWQEAmhvCQECZlQFBQJmVQUCZkMFAmZxBQJhYgUCYWMDCQAAAgUCaG8FAmhvBAJmVwgFAmhvAl81BAJoZQgFAmhvAl80BAJmbggFAmhvAl8zBAJldAgFAmhvAl8yBAJocAgFAmhvAl8xBAJjZgMDCQBmAgUCZ1kAAAkAZgIFAmdZBQJocAcJAQJiYQEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZ1kFA25pbAIABQJocAQCaHEJAPwHBAUCYmQCBGJ1cm4JAMwIAgUCZkMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZnEFAmZDBQNuaWwDCQAAAgUCaHEFAmhxBAJnTAkBAmNQAgUCaG0JAGQCBQJjZgkAlgMBCQDMCAIAAAkAzAgCBQJmbgUDbmlsBAJocgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhYgUCY2YFAmZVBQNuaWwEAmhpAwkAZgIFAmZuAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYmUFAmZuBQJmVQUDbmlsBQNuaWwEAmhzBAJodAMJAAACBQR0aGlzBQJiZQAABQJmbgMFAmZXCQCUCgIJAQEtAQkAZAIFAmNmBQJodAAACQCUCgIAAAkBAS0BCQBkAgUCY2YFAmh0BAJlSggFAmhzAl8xBAJlSwgFAmhzAl8yBAJodQkBAmVJAwUCZUoFAmVLAAAEAmdKCAUCaHUCXzEEAmV6CAUCaHUCXzIEAmdVCQECZU4CBQJlSAUCZXoDCQAAAgUCZ1UFAmdVCQCUCgIJAM4IAgkAzggCCQDOCAIJAM4IAgUCZXQFAmdMBQJocgUCaGkFAmdKBQJjZgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJmYgERZ2V0T25lVGtuUkVBRE9OTFkCAmZVAmZDBAJodgkBAmZUBQkBAmJuAQUCZlUFAmZDBQJidwUEdW5pdAUEdW5pdAQCaHAIBQJodgJfMQQCZXQIBQJodgJfMgQCZm4IBQJodgJfMwQCaGUIBQJodgJfNAQCZlcIBQJodgJfNQkAlAoCBQNuaWwJAJUKAwUCaHAFAmZuBQJoZQJmYgETdW5zdGFrZUFuZEdldE9uZVRrbgMCaHcCaG0CZ1kEAmhhCgACYmcJAPwHBAUCYmQCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJiZwIHQm9vbGVhbgUCYmcJAAIBCQCsAgIJAAMBBQJiZwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCaG4DAwkBAmJpAAYJAAACBQJidgUBbgYFAmhhBAJmVgkAzAgCAwMJAQEhAQUCaG4GCQECZ3ABBQJmYgYJAQJiYQECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmZiCHBheW1lbnRzAAAGCQECYmEBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJmVgUCZlYEAmZVCQECYm4BBQJobQQCYWIIBQJmYgZjYWxsZXIEAmFjCAUCZmINdHJhbnNhY3Rpb25JZAQCZUgJAQJlQQMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUgFAmVIBAJoeAkA/AcEBQJiQwIHdW5zdGFrZQkAzAgCCQDYBAEFAmJ3CQDMCAIFAmh3BQNuaWwFA25pbAMJAAACBQJoeAUCaHgEAmh5CQECZlQFBQJmVQUCaHcFAmJ3BQJhYgUCYWMDCQAAAgUCaHkFAmh5BAJmVwgFAmh5Al81BAJoZQgFAmh5Al80BAJmbggFAmh5Al8zBAJldAgFAmh5Al8yBAJocAgFAmh5Al8xBAJjZgMDCQBmAgUCZ1kAAAkAZgIFAmdZBQJocAcJAQJiYQEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZ1kFA25pbAIABQJocAQCaHEJAPwHBAUCYmQCBGJ1cm4JAMwIAgUCaHcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYncFAmh3BQNuaWwDCQAAAgUCaHEFAmhxBAJnTAkBAmNQAgUCaG0JAGQCBQJjZgkAlgMBCQDMCAIAAAkAzAgCBQJmbgUDbmlsBAJocgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZmIGY2FsbGVyBQJjZgUCZlUFA25pbAQCaGkDCQBmAgUCZm4AAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJiZQUCZm4FAmZVBQNuaWwFA25pbAQCaHoEAmh0AwkAAAIFBHRoaXMFAmJlAAAFAmZuAwUCZlcJAJQKAgkBAS0BCQBkAgUCY2YFAmh0AAAJAJQKAgAACQEBLQEJAGQCBQJjZgUCaHQEAmVKCAUCaHoCXzEEAmVLCAUCaHoCXzIEAmhBCQECZUkDBQJlSgUCZUsAAAQCZ0oIBQJoQQJfMQQCZXoIBQJoQQJfMgQCZ1UJAQJlTgIFAmVIBQJlegMJAAACBQJnVQUCZ1UJAJQKAgkAzggCCQDOCAIJAM4IAgkAzggCBQJldAUCZ0wFAmhyBQJoaQUCZ0oFAmNmCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmZiAQNnZXQABAJlZQkBAmZhAQUCZmIEAmRLCAUCZWUCXzEEAmRMCAUCZWUCXzIEAmZkCAUCZWUCXzMEAmR0CAUCZWUCXzQEAmRNCAUCZWUCXzUEAmdMCQECY1UCBQJkSwUCZEwEAmVICQECZUEDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmVIBQJlSAQCaEIJAPwHBAUCYmQCBGJ1cm4JAMwIAgUCZmQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZHQFAmZkBQNuaWwDCQAAAgUCaEIFAmhCBAJoQwkBAmVJAwkBAS0BBQJkSwkBAS0BBQJkTAAABAJnSggFAmhDAl8xBAJleggFAmhDAl8yBAJnVQkBAmVOAgUCZUgFAmV6AwkAAAIFAmdVBQJnVQkAzggCCQDOCAIFAmdMBQJkTQUCZ0oJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmIBCWdldE5vTGVzcwICaEQCaEUEAmVlCQECZmEBBQJmYgQCZEsIBQJlZQJfMQQCZEwIBQJlZQJfMgQCZmQIBQJlZQJfMwQCZHQIBQJlZQJfNAQCZE0IBQJlZQJfNQMJAGYCBQJoRAUCZEsJAAIBCQCsAgIJAKwCAgkArAICAhxub0xlc3NUaGVuQW10QXNzZXQgZmFpbGVkOiAgCQCkAwEFAmRLAgMgPCAJAKQDAQUCaEQDCQBmAgUCaEUFAmRMCQACAQkArAICCQCsAgIJAKwCAgIdbm9MZXNzVGhlblByaWNlQXNzZXQgZmFpbGVkOiAJAKQDAQUCZEwCAyA8IAkApAMBBQJoRQQCZ0wJAQJjVQIFAmRLBQJkTAQCZUgJAQJlQQMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUgFAmVIBAJoQgkA/AcEBQJiZAIEYnVybgkAzAgCBQJmZAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkdAUCZmQFA25pbAMJAAACBQJoQgUCaEIEAmhGCQECZUkDCQEBLQEFAmRLCQEBLQEFAmRMAAAEAmdKCAUCaEYCXzEEAmV6CAUCaEYCXzIEAmdVCQECZU4CBQJlSAUCZXoDCQAAAgUCZ1UFAmdVCQDOCAIJAM4IAgUCZ0wFAmRNBQJnSgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJmYgENdW5zdGFrZUFuZEdldAECY2YEAmhHAwkBAiE9AgkAkAMBCAUCZmIIcGF5bWVudHMAAAkAAgECGE5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAYDCQAAAgUCaEcFAmhHBAJkaQkBAmJrAAQCZHYJANkEAQkAkQMCBQJkaQUBcQQCZUgJAQJlQQMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUgFAmVIBAJoeAkA/AcEBQJiQwIHdW5zdGFrZQkAzAgCCQDYBAEFAmR2CQDMCAIFAmNmBQNuaWwFA25pbAMJAAACBQJoeAUCaHgEAmVlCQECZHIECQDYBAEIBQJmYg10cmFuc2FjdGlvbklkCQDYBAEFAmR2BQJjZggFAmZiBmNhbGxlcgQCZEsIBQJlZQJfMQQCZEwIBQJlZQJfMgQCZHkJAQ1wYXJzZUludFZhbHVlAQgFAmVlAl85BAJkTQgFAmVlA18xMAQCZ0wJAQJjVQIFAmRLBQJkTAQCaEgDAwkBAmJpAAYJAAACBQJkeQUBbgkAAgEJAKwCAgIsR2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCZHkGAwkAAAIFAmhIBQJoSAQCaEIJAPwHBAUCYmQCBGJ1cm4JAMwIAgUCY2YFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZHYFAmNmBQNuaWwDCQAAAgUCaEIFAmhCBAJoSQkBAmVJAwkBAS0BBQJkSwkBAS0BBQJkTAAABAJnSggFAmhJAl8xBAJleggFAmhJAl8yBAJnVQkBAmVOAgUCZUgFAmV6AwkAAAIFAmdVBQJnVQkAzggCCQDOCAIFAmdMBQJkTQUCZ0oJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZmIBE3Vuc3Rha2VBbmRHZXROb0xlc3MDAmh3AmhKAmhFBAJobgMJAQJiaQAGCQAAAgUCYnYFAW4EAmZWCQDMCAIDCQEBIQEFAmhuBgkAAgECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmZiCHBheW1lbnRzAAAGCQACAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlYFAmZWBAJlSAkBAmVBAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlSAUCZUgEAmh4CQD8BwQFAmJDAgd1bnN0YWtlCQDMCAIJANgEAQUCYncJAMwIAgUCaHcFA25pbAUDbmlsAwkAAAIFAmh4BQJoeAQCZWUJAQJkcgQJANgEAQgFAmZiDXRyYW5zYWN0aW9uSWQJANgEAQUCYncFAmh3CAUCZmIGY2FsbGVyBAJkSwgFAmVlAl8xBAJkTAgFAmVlAl8yBAJkTQgFAmVlA18xMAQCZ0wJAQJjVQIFAmRLBQJkTAQCaEsJAMwIAgMJAGcCBQJkSwUCaEoGCQACAQkAuQkCCQDMCAICLGFtb3VudCBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCaEoFA25pbAIACQDMCAIDCQBnAgUCZEwFAmhFBgkAAgEJALkJAgkAzAgCAitwcmljZSBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCaEUFA25pbAIABQNuaWwDCQAAAgUCaEsFAmhLBAJoQgkA/AcEBQJiZAIEYnVybgkAzAgCBQJodwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJidwUCaHcFA25pbAMJAAACBQJoQgUCaEIEAmhMCQECZUkDCQEBLQEFAmRLCQEBLQEFAmRMAAAEAmdKCAUCaEwCXzEEAmV6CAUCaEwCXzIEAmdVCQECZU4CBQJlSAUCZXoDCQAAAgUCZ1UFAmdVCQDOCAIJAM4IAgUCZ0wFAmRNBQJnSgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJmYgEIYWN0aXZhdGUCAmhNAmhOAwkBAiE9AgkApQgBCAUCZmIGY2FsbGVyCQClCAEFAmJkCQACAQIScGVybWlzc2lvbnMgZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFlAAUCaE0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFmAAUCaE4FA25pbAIHc3VjY2VzcwJmYgEKcmVmcmVzaEtMcAAEAmhPCQELdmFsdWVPckVsc2UCCQCfCAEFAmFrAAAEAmhQAwkAZwIJAGUCBQZoZWlnaHQFAmhPBQJhbgUEdW5pdAkBAmJhAQkAuQkCCQDMCAIJAKQDAQUCYW4JAMwIAgIvIGJsb2NrcyBoYXZlIG5vdCBwYXNzZWQgc2luY2UgdGhlIHByZXZpb3VzIGNhbGwFA25pbAIAAwkAAAIFAmhQBQJoUAQCZVUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAmFqAgEwCQECYmMBAgtpbnZhbGlkIGtMcAQCaFEJAQJlSQMAAAAAAAAEAmhSCAUCaFECXzEEAmV6CAUCaFECXzIEAmVMAwkBAiE9AgUCZVUFAmV6BQJoUgkBAmJhAQISbm90aGluZyB0byByZWZyZXNoCQCUCgIFAmVMCQCmAwEFAmV6CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmZiARxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZAAkAlAoCBQNuaWwJAQJiawACZmIBHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkBAmFwCQCUCgIFA25pbAkBAmJUAQUCYXACZmIBGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkDAmRjAmRkAmRoBAJkcQkBAmRnAwUCZGMFAmRkBQJkaAkAlAoCBQNuaWwJAMwIAgkApgMBCQCRAwIFAmRxAAAJAMwIAgkApgMBCQCRAwIFAmRxAAEJAMwIAgkApgMBCQCRAwIFAmRxAAIFA25pbAJmYgEUdG9YMThXcmFwcGVyUkVBRE9OTFkCAUUBRgkAlAoCBQNuaWwJAKYDAQkBAUQCBQFFBQFGAmZiARZmcm9tWDE4V3JhcHBlclJFQURPTkxZAgFJAUoJAJQKAgUDbmlsCQEBSAIJAKcDAQUBSQUBSgJmYgEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJiWAJiWQkAlAoCBQNuaWwJAKYDAQkBAmJXAgkApwMBBQJiWAkApwMBBQJiWQJmYgEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmRzAmRPAmRQAmRRAmRSAmRTAmFiAmRUAmRVCQCUCgIFA25pbAkBAmROCQUCZHMFAmRPBQJkUAUCZFEFAmRSBQJkUwUCYWIFAmRUBQJkVQJmYgEjZXN0aW1hdGVHZXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkEAmRzAmR0AmR1AmFiBAJlZQkBAmRyBAUCZHMFAmR0BQJkdQkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWIJAJQKAgUDbmlsCQCcCgoIBQJlZQJfMQgFAmVlAl8yCAUCZWUCXzMIBQJlZQJfNAgFAmVlAl81CAUCZWUCXzYIBQJlZQJfNwkApgMBCAUCZWUCXzgIBQJlZQJfOQgFAmVlA18xMAJmYgENc3RhdHNSRUFET05MWQAEAmRpCQECYmsABAJkdgkA2QQBCQCRAwIFAmRpBQFxBAJoUwkAkQMCBQJkaQUBcgQCaFQJAJEDAgUCZGkFAXMEAmRYCQCRAwIFAmRpBQF2BAJkWQkAkQMCBQJkaQUBdwQCZGoJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkaQUBdAQCZGsJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkaQUBdQQCaFUICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHYJAKwCAgkArAICAgZBc3NldCAJANgEAQUCZHYCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJoVgkBAmJUAQUCaFMEAmhXCQECYlQBBQJoVAQCaFgDCQAAAgUCaFUAAAkAzAgCBQFlCQDMCAIFAWUJAMwIAgUBZQUDbmlsCQECZGcDBQJoVgUCaFcFAmhVBAJkRgAABAJoWQkBAUgCCQCRAwIFAmhYAAEFAWIEAmhaCQEBSAIJAJEDAgUCaFgAAgUBYgQCaWEJAQV2YWx1ZQEJAJoIAgUCYmQJAQJhRAEJAKUIAQUEdGhpcwkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmhWCQDMCAIJAKQDAQUCaFcJAMwIAgkApAMBBQJoVQkAzAgCCQCkAwEFAmRGCQDMCAIJAKQDAQUCaFkJAMwIAgkApAMBBQJoWgkAzAgCCQCkAwEFAmlhBQNuaWwFAWoCZmIBIGV2YWx1YXRlUHV0QnlBbW91bnRBc3NldFJFQURPTkxZAQJkUAQCZGkJAQJiawAEAmR2CQDZBAEJAJEDAgUCZGkFAXEEAmRWCQCRAwIFAmRpBQFyBAJkdwkA2QQBBQJkVgQCZFcJAJEDAgUCZGkFAXMEAmR4CQDZBAEFAmRXBAJkagkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRpBQF0BAJkawkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRpBQF1BAJkeQkAkQMCBQJkaQUBcAQCaFUICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHYJAKwCAgkArAICAgZBc3NldCAJANgEAQUCZHYCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJoVgkBAmJUAQUCZFYEAmhXCQECYlQBBQJkVwQCZGUJAQFEAgUCaFYFAmRqBAJkZgkBAUQCBQJoVwUCZGsEAmRFAwkAAAIFAmhVAAAFAWUJAQJiVwIFAmRmBQJkZQQCZWIJAQFEAgUCZFAFAmRqBAJlYwkAvAIDBQJlYgUCZEUFAWQEAmRSCQEBSAIFAmVjBQJkawQCZmgJAQJkTgkCAACgwh4FAmRQBQJkdwUCZFIFAmR4AgAGBwQCZW0IBQJmaAJfMQQCaWIIBQJmaAJfMwQCZEEIBQJmaAJfNAQCZEMIBQJmaAJfNQQCZHoIBQJmaAJfNgkAlAoCBQNuaWwJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZW0JAMwIAgkApAMBCQEBSAIFAmRFBQFiCQDMCAIJAKQDAQUCZEEJAMwIAgkApAMBBQJkQwkAzAgCCQCkAwEFAmR6CQDMCAIFAmR5CQDMCAIJAKQDAQUCZFAJAMwIAgkApAMBBQJkUgUDbmlsBQFqAmZiAR9ldmFsdWF0ZVB1dEJ5UHJpY2VBc3NldFJFQURPTkxZAQJkUgQCZGkJAQJiawAEAmR2CQDZBAEJAJEDAgUCZGkFAXEEAmRWCQCRAwIFAmRpBQFyBAJkdwkA2QQBBQJkVgQCZFcJAJEDAgUCZGkFAXMEAmR4CQDZBAEFAmRXBAJkagkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRpBQF0BAJkawkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRpBQF1BAJkeQkAkQMCBQJkaQUBcAQCaFUICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHYJAKwCAgkArAICAgZBc3NldCAJANgEAQUCZHYCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJpYwkBAmJUAQUCZFYEAmlkCQECYlQBBQJkVwQCaWUJAQFEAgUCaWMFAmRqBAJpZgkBAUQCBQJpZAUCZGsEAmRFAwkAAAIFAmhVAAAFAWUJAQJiVwIFAmlmBQJpZQQCZWMJAQFEAgUCZFIFAmRrBAJlYgkAvAIDBQJlYwUBZAUCZEUEAmRQCQEBSAIFAmViBQJkagQCZmgJAQJkTgkCAACgwh4FAmRQBQJkdwUCZFIFAmR4AgAGBwQCZW0IBQJmaAJfMQQCaWIIBQJmaAJfMwQCZEEIBQJmaAJfNAQCZEMIBQJmaAJfNQQCZHoIBQJmaAJfNgkAlAoCBQNuaWwJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZW0JAMwIAgkApAMBCQEBSAIFAmRFBQFiCQDMCAIJAKQDAQUCZEEJAMwIAgkApAMBBQJkQwkAzAgCCQCkAwEFAmR6CQDMCAIFAmR5CQDMCAIJAKQDAQUCZFAJAMwIAgkApAMBBQJkUgUDbmlsBQFqAmZiARNldmFsdWF0ZUdldFJFQURPTkxZAgJpZwJpaAQCZWUJAQJkcgQCAAUCaWcFAmloBQR0aGlzBAJkSwgFAmVlAl8xBAJkTAgFAmVlAl8yBAJkQQgFAmVlAl81BAJkQwgFAmVlAl82BAJkeggFAmVlAl83BAJkRggFAmVlAl84BAJkeQkBDXBhcnNlSW50VmFsdWUBCAUCZWUCXzkJAJQKAgUDbmlsCQC5CQIJAMwIAgIOJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJkSwkAzAgCCQCkAwEFAmRMCQDMCAIJAKQDAQUCZEEJAMwIAgkApAMBBQJkQwkAzAgCCQCkAwEFAmR6CQDMCAIJAKYDAQUCZEYJAMwIAgkApAMBBQJkeQUDbmlsBQFqAQJpaQECaWoABAJpawQCYVEJAQJnbgADCQABAgUCYVECCkJ5dGVWZWN0b3IEAmdxBQJhUQUCZ3EDCQABAgUCYVECBFVuaXQIBQJpaQ9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgQCYVEFAmlpAwkAAQIFAmFRAgVPcmRlcgQCZVEFAmFRBAJpbAkBAmJqAAQCaW0DCQECZU0ACQCUCgIGAgAJAQJlUAEFAmVRBAJhSwgFAmltAl8xBAJhTAgFAmltAl8yBAJhTQkA9AMDCAUCZVEJYm9keUJ5dGVzCQCRAwIIBQJlUQZwcm9vZnMAAAgFAmVRD3NlbmRlclB1YmxpY0tleQQCYU4JAPQDAwgFAmVRCWJvZHlCeXRlcwkAkQMCCAUCZVEGcHJvb2ZzAAEFAmlsAwMDBQJhSwUCYU0HBQJhTgcGCQECYUoEBQJhSwUCYUwFAmFNBQJhTgMJAAECBQJhUQIUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAmFWBQJhUQMJAPQDAwgFAmlpCWJvZHlCeXRlcwkAkQMCCAUCaWkGcHJvb2ZzAAAFAmlrBgQCaW4JAPYDAQkBBXZhbHVlAQgFAmFWBnNjcmlwdAQCaW8JANsEAQkBBXZhbHVlAQkAnQgCBQJiZAkBAmFGAAQCaXAJAPEHAQUEdGhpcwMJAAACBQJpbwUCaW4JAQIhPQIFAmlwBQJpbgcJAPQDAwgFAmlpCWJvZHlCeXRlcwkAkQMCCAUCaWkGcHJvb2ZzAAAFAmlr4IcoJw==", "height": 2714657, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 92Z3ueEmLFfxmzTd25rzwHNwmnDXrf1QMAJqr1RFgtcZ Next: 4pDvjMA6CDycpfjpeGnTnNdoWTKW6w6D9k8PG86HKLJ3 Diff:
OldNewDifferences
974974 then bg
975975 else throw(($getType(bg) + " couldn't be cast to String"))
976976 }
977- let gI = {
978- let bg = invoke(bd, "isPoolSwapDisabledREADONLY", [toString(this)], nil)
979- if ($isInstanceOf(bg, "Boolean"))
980- then bg
981- else throw(($getType(bg) + " couldn't be cast to Boolean"))
982- }
983- let gJ = if (if (bi())
984- then true
985- else (bv == n))
986- then true
987- else gI
988- let fV = [if (if (!(gJ))
989- then true
990- else gp(fb))
991- then true
992- else ba("swap operation is blocked by admin"), if ((value(fb.payments[0]).amount >= gt))
977+ let fV = [if ((value(fb.payments[0]).amount >= gt))
993978 then true
994979 else ba("Wrong amount"), if ((fb.caller == addressFromStringValue(gH)))
995980 then true
1011996 else throw("new K is fewer error")
1012997 if ((gE == gE))
1013998 then {
1014- let gK = if ((gB >= gF))
999+ let gI = if ((gB >= gF))
10151000 then true
10161001 else throw("Exchange result is fewer coins than expected")
1017- if ((gK == gK))
1002+ if ((gI == gI))
10181003 then {
10191004 let eJ = if (gu)
10201005 then -(gB)
10221007 let eK = if (gu)
10231008 then gv
10241009 else -(gB)
1025- let gL = eI(eJ, eK, 0)._1
1026- if ((gL == gL))
1010+ let gJ = eI(eJ, eK, 0)._1
1011+ if ((gJ == gJ))
10271012 then {
1028- let gM = cI(gy)
1029- if ((gM == gM))
1013+ let gK = cI(gy)
1014+ if ((gK == gK))
10301015 then {
1031- let gN = cP(gx, gB)
1032- if ((gN == gN))
1033- then $Tuple2(((gN ++ gM) ++ [ScriptTransfer(addressFromStringValue(gG), gB, bn(gx))]), gB)
1016+ let gL = cP(gx, gB)
1017+ if ((gL == gL))
1018+ then $Tuple2(((gL ++ gK) ++ [ScriptTransfer(addressFromStringValue(gG), gB, bn(gx))]), gB)
10341019 else throw("Strict value is not equal to itself.")
10351020 }
10361021 else throw("Strict value is not equal to itself.")
10471032
10481033
10491034 @Callable(fb)
1050-func put (dO,gO) = if ((0 > dO))
1035+func put (dO,gM) = if ((0 > dO))
10511036 then throw("Invalid slippageTolerance passed")
10521037 else {
10531038 let fh = fe(fb, dO, true)
10561041 let dM = fh._9
10571042 let er = fh._10
10581043 let es = fh._11
1059- let gP = fh._12
1060- let gQ = fh._13
1044+ let gN = fh._12
1045+ let gO = fh._13
10611046 let ff = toBigInt(value(fb.payments[0]).amount)
10621047 let fg = toBigInt(value(fb.payments[1]).amount)
10631048 let eH = eA(ff, fg, toBigInt(0))
10771062 }
10781063 if ((fk == fk))
10791064 then {
1080- let gR = if ((er > 0))
1081- then invoke(bD, "put", nil, [AttachedPayment(gP, er)])
1065+ let gP = if ((er > 0))
1066+ then invoke(bD, "put", nil, [AttachedPayment(gN, er)])
10821067 else nil
1083- if ((gR == gR))
1068+ if ((gP == gP))
10841069 then {
1085- let gS = if ((es > 0))
1086- then invoke(bD, "put", nil, [AttachedPayment(gQ, es)])
1070+ let gQ = if ((es > 0))
1071+ then invoke(bD, "put", nil, [AttachedPayment(gO, es)])
10871072 else nil
1088- if ((gS == gS))
1073+ if ((gQ == gQ))
10891074 then {
1090- let gT = if (gO)
1075+ let gR = if (gM)
10911076 then {
1092- let gU = invoke(bC, "stake", nil, [AttachedPayment(dv, eq)])
1093- if ((gU == gU))
1077+ let gS = invoke(bC, "stake", nil, [AttachedPayment(dv, eq)])
1078+ if ((gS == gS))
10941079 then nil
10951080 else throw("Strict value is not equal to itself.")
10961081 }
10971082 else [ScriptTransfer(fb.caller, eq, dv)]
1098- let gV = eI(0, 0, 0)
1099- if ((gV == gV))
1083+ let gT = eI(0, 0, 0)
1084+ if ((gT == gT))
11001085 then {
1101- let ez = gV._2
1102- let gL = gV._1
1103- let gW = eN(eH, ez)
1104- if ((gW == gW))
1086+ let ez = gT._2
1087+ let gJ = gT._1
1088+ let gU = eN(eH, ez)
1089+ if ((gU == gU))
11051090 then {
1106- let gX = invoke(this, "rebalance", nil, nil)
1107- if ((gX == gX))
1108- then ((dM ++ gT) ++ gL)
1091+ let gV = invoke(this, "rebalance", nil, nil)
1092+ if ((gV == gV))
1093+ then ((dM ++ gR) ++ gJ)
11091094 else throw("Strict value is not equal to itself.")
11101095 }
11111096 else throw("Strict value is not equal to itself.")
11261111
11271112
11281113 @Callable(fb)
1129-func putForFree (gY) = if ((0 > gY))
1114+func putForFree (gW) = if ((0 > gW))
11301115 then throw("Invalid value passed")
11311116 else {
1132- let fh = fe(fb, gY, false)
1117+ let fh = fe(fb, gW, false)
11331118 let dM = fh._9
11341119 let ff = toBigInt(value(fb.payments[0]).amount)
11351120 let fg = toBigInt(value(fb.payments[1]).amount)
11361121 let eH = eA(ff, fg, toBigInt(0))
11371122 if ((eH == eH))
11381123 then {
1139- let gZ = eI(0, 0, 0)
1140- let gL = gZ._1
1141- let ez = gZ._2
1142- let gW = eN(eH, ez)
1143- if ((gW == gW))
1144- then (dM ++ gL)
1124+ let gX = eI(0, 0, 0)
1125+ let gJ = gX._1
1126+ let ez = gX._2
1127+ let gU = eN(eH, ez)
1128+ if ((gU == gU))
1129+ then (dM ++ gJ)
11451130 else throw("Strict value is not equal to itself.")
11461131 }
11471132 else throw("Strict value is not equal to itself.")
11501135
11511136
11521137 @Callable(fb)
1153-func putOneTkn (ha,hb) = {
1154- let hc = {
1138+func putOneTkn (gY,gZ) = {
1139+ let ha = {
11551140 let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
11561141 if ($isInstanceOf(bg, "Boolean"))
11571142 then bg
11581143 else throw(($getType(bg) + " couldn't be cast to Boolean"))
11591144 }
1160- let hd = if (if (if (bi())
1145+ let hb = if (if (if (bi())
11611146 then true
11621147 else (bv == l))
11631148 then true
11641149 else (bv == n))
11651150 then true
1166- else hc
1167- let fV = [if (if (!(hd))
1151+ else ha
1152+ let fV = [if (if (!(hb))
11681153 then true
11691154 else gp(fb))
11701155 then true
11731158 else ba("exactly 1 payment are expected")]
11741159 if ((fV == fV))
11751160 then {
1176- let he = fb.payments[0]
1177- let fq = he.assetId
1178- let fp = he.amount
1161+ let hc = fb.payments[0]
1162+ let fq = hc.assetId
1163+ let fp = hc.amount
11791164 let eH = if ((fq == bx))
11801165 then eA(toBigInt(fp), toBigInt(0), toBigInt(0))
11811166 else if ((fq == by))
11851170 then {
11861171 let ab = fb.caller
11871172 let ac = fb.transactionId
1188- let hf = fo(fp, fq, ab, ac)
1189- if ((hf == hf))
1173+ let hd = fo(fp, fq, ab, ac)
1174+ if ((hd == hd))
11901175 then {
1191- let fu = hf._5
1192- let hg = hf._4
1193- let fn = hf._3
1194- let et = hf._2
1195- let hh = hf._1
1196- let hi = if (if ((ha > 0))
1197- then (ha > hh)
1176+ let fu = hd._5
1177+ let he = hd._4
1178+ let fn = hd._3
1179+ let et = hd._2
1180+ let hf = hd._1
1181+ let hg = if (if ((gY > 0))
1182+ then (gY > hf)
11981183 else false)
1199- then ba(makeString(["amount to receive is less than ", toString(ha)], ""))
1200- else hh
1201- let fj = fi(hi)
1184+ then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1185+ else hf
1186+ let fj = fi(hg)
12021187 if ((fj == fj))
12031188 then {
1204- let gT = if (hb)
1189+ let gR = if (gZ)
12051190 then {
1206- let hj = invoke(bC, "stake", nil, [AttachedPayment(bw, hi)])
1207- if ((hj == hj))
1191+ let hh = invoke(bC, "stake", nil, [AttachedPayment(bw, hg)])
1192+ if ((hh == hh))
12081193 then nil
12091194 else throw("Strict value is not equal to itself.")
12101195 }
1211- else [ScriptTransfer(fb.caller, hi, bw)]
1212- let hk = if ((fn > 0))
1196+ else [ScriptTransfer(fb.caller, hg, bw)]
1197+ let hi = if ((fn > 0))
12131198 then [ScriptTransfer(be, fn, fq)]
12141199 else nil
1215- let hl = if ((this == be))
1200+ let hj = if ((this == be))
12161201 then $Tuple2(0, 0)
12171202 else if (fu)
12181203 then $Tuple2(-(fn), 0)
12191204 else $Tuple2(0, -(fn))
1220- let eJ = hl._1
1221- let eK = hl._2
1222- let hm = eI(eJ, eK, 0)
1223- let gL = hm._1
1224- let ez = hm._2
1205+ let eJ = hj._1
1206+ let eK = hj._2
1207+ let hk = eI(eJ, eK, 0)
1208+ let gJ = hk._1
1209+ let ez = hk._2
12251210 let eU = value(getString(aj))
1226- let gW = eN(eH, ez)
1227- if ((gW == gW))
1211+ let gU = eN(eH, ez)
1212+ if ((gU == gU))
12281213 then {
1229- let gX = invoke(this, "rebalance", nil, nil)
1230- if ((gX == gX))
1231- then $Tuple2((((et ++ gT) ++ hk) ++ gL), hi)
1214+ let gV = invoke(this, "rebalance", nil, nil)
1215+ if ((gV == gV))
1216+ then $Tuple2((((et ++ gR) ++ hi) ++ gJ), hg)
12321217 else throw("Strict value is not equal to itself.")
12331218 }
12341219 else throw("Strict value is not equal to itself.")
12461231
12471232 @Callable(fb)
12481233 func putOneTknREADONLY (fq,fp) = {
1249- let hn = fo(fp, bn(fq), unit, unit)
1250- let hh = hn._1
1251- let et = hn._2
1252- let fn = hn._3
1253- let hg = hn._4
1254- let fu = hn._5
1255- $Tuple2(nil, $Tuple3(hh, fn, hg))
1234+ let hl = fo(fp, bn(fq), unit, unit)
1235+ let hf = hl._1
1236+ let et = hl._2
1237+ let fn = hl._3
1238+ let he = hl._4
1239+ let fu = hl._5
1240+ $Tuple2(nil, $Tuple3(hf, fn, he))
12561241 }
12571242
12581243
12591244
12601245 @Callable(fb)
1261-func getOneTkn (ho,ha) = {
1262- let hc = {
1246+func getOneTkn (hm,gY) = {
1247+ let ha = {
12631248 let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
12641249 if ($isInstanceOf(bg, "Boolean"))
12651250 then bg
12661251 else throw(($getType(bg) + " couldn't be cast to Boolean"))
12671252 }
1268- let hp = if (if (bi())
1253+ let hn = if (if (bi())
12691254 then true
12701255 else (bv == n))
12711256 then true
1272- else hc
1273- let fV = [if (if (!(hp))
1257+ else ha
1258+ let fV = [if (if (!(hn))
12741259 then true
12751260 else gp(fb))
12761261 then true
12791264 else ba("exactly 1 payment are expected")]
12801265 if ((fV == fV))
12811266 then {
1282- let fU = bn(ho)
1283- let he = fb.payments[0]
1284- let fq = he.assetId
1285- let fC = he.amount
1267+ let fU = bn(hm)
1268+ let hc = fb.payments[0]
1269+ let fq = hc.assetId
1270+ let fC = hc.amount
12861271 let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
12871272 if ((eH == eH))
12881273 then {
12891274 let ab = fb.caller
12901275 let ac = fb.transactionId
1291- let hq = fT(fU, fC, fq, ab, ac)
1292- if ((hq == hq))
1276+ let ho = fT(fU, fC, fq, ab, ac)
1277+ if ((ho == ho))
12931278 then {
1294- let fW = hq._5
1295- let hg = hq._4
1296- let fn = hq._3
1297- let et = hq._2
1298- let hr = hq._1
1299- let cf = if (if ((ha > 0))
1300- then (ha > hr)
1279+ let fW = ho._5
1280+ let he = ho._4
1281+ let fn = ho._3
1282+ let et = ho._2
1283+ let hp = ho._1
1284+ let cf = if (if ((gY > 0))
1285+ then (gY > hp)
13011286 else false)
1302- then ba(makeString(["amount to receive is less than ", toString(ha)], ""))
1303- else hr
1304- let hs = invoke(bd, "burn", [fC], [AttachedPayment(fq, fC)])
1305- if ((hs == hs))
1287+ then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1288+ else hp
1289+ let hq = invoke(bd, "burn", [fC], [AttachedPayment(fq, fC)])
1290+ if ((hq == hq))
13061291 then {
1307- let gN = cP(ho, (cf + max([0, fn])))
1308- let ht = [ScriptTransfer(ab, cf, fU)]
1309- let hk = if ((fn > 0))
1292+ let gL = cP(hm, (cf + max([0, fn])))
1293+ let hr = [ScriptTransfer(ab, cf, fU)]
1294+ let hi = if ((fn > 0))
13101295 then [ScriptTransfer(be, fn, fU)]
13111296 else nil
1312- let hu = {
1313- let hv = if ((this == be))
1297+ let hs = {
1298+ let ht = if ((this == be))
13141299 then 0
13151300 else fn
13161301 if (fW)
1317- then $Tuple2(-((cf + hv)), 0)
1318- else $Tuple2(0, -((cf + hv)))
1302+ then $Tuple2(-((cf + ht)), 0)
1303+ else $Tuple2(0, -((cf + ht)))
13191304 }
1320- let eJ = hu._1
1321- let eK = hu._2
1322- let hw = eI(eJ, eK, 0)
1323- let gL = hw._1
1324- let ez = hw._2
1325- let gW = eN(eH, ez)
1326- if ((gW == gW))
1327- then $Tuple2(((((et ++ gN) ++ ht) ++ hk) ++ gL), cf)
1305+ let eJ = hs._1
1306+ let eK = hs._2
1307+ let hu = eI(eJ, eK, 0)
1308+ let gJ = hu._1
1309+ let ez = hu._2
1310+ let gU = eN(eH, ez)
1311+ if ((gU == gU))
1312+ then $Tuple2(((((et ++ gL) ++ hr) ++ hi) ++ gJ), cf)
13281313 else throw("Strict value is not equal to itself.")
13291314 }
13301315 else throw("Strict value is not equal to itself.")
13401325
13411326 @Callable(fb)
13421327 func getOneTknREADONLY (fU,fC) = {
1343- let hx = fT(bn(fU), fC, bw, unit, unit)
1344- let hr = hx._1
1345- let et = hx._2
1346- let fn = hx._3
1347- let hg = hx._4
1348- let fW = hx._5
1349- $Tuple2(nil, $Tuple3(hr, fn, hg))
1328+ let hv = fT(bn(fU), fC, bw, unit, unit)
1329+ let hp = hv._1
1330+ let et = hv._2
1331+ let fn = hv._3
1332+ let he = hv._4
1333+ let fW = hv._5
1334+ $Tuple2(nil, $Tuple3(hp, fn, he))
13501335 }
13511336
13521337
13531338
13541339 @Callable(fb)
1355-func unstakeAndGetOneTkn (hy,ho,ha) = {
1356- let hc = {
1340+func unstakeAndGetOneTkn (hw,hm,gY) = {
1341+ let ha = {
13571342 let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
13581343 if ($isInstanceOf(bg, "Boolean"))
13591344 then bg
13601345 else throw(($getType(bg) + " couldn't be cast to Boolean"))
13611346 }
1362- let hp = if (if (bi())
1347+ let hn = if (if (bi())
13631348 then true
13641349 else (bv == n))
13651350 then true
1366- else hc
1367- let fV = [if (if (!(hp))
1351+ else ha
1352+ let fV = [if (if (!(hn))
13681353 then true
13691354 else gp(fb))
13701355 then true
13731358 else ba("no payments are expected")]
13741359 if ((fV == fV))
13751360 then {
1376- let fU = bn(ho)
1361+ let fU = bn(hm)
13771362 let ab = fb.caller
13781363 let ac = fb.transactionId
13791364 let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
13801365 if ((eH == eH))
13811366 then {
1382- let hz = invoke(bC, "unstake", [toBase58String(bw), hy], nil)
1383- if ((hz == hz))
1367+ let hx = invoke(bC, "unstake", [toBase58String(bw), hw], nil)
1368+ if ((hx == hx))
13841369 then {
1385- let hA = fT(fU, hy, bw, ab, ac)
1386- if ((hA == hA))
1370+ let hy = fT(fU, hw, bw, ab, ac)
1371+ if ((hy == hy))
13871372 then {
1388- let fW = hA._5
1389- let hg = hA._4
1390- let fn = hA._3
1391- let et = hA._2
1392- let hr = hA._1
1393- let cf = if (if ((ha > 0))
1394- then (ha > hr)
1373+ let fW = hy._5
1374+ let he = hy._4
1375+ let fn = hy._3
1376+ let et = hy._2
1377+ let hp = hy._1
1378+ let cf = if (if ((gY > 0))
1379+ then (gY > hp)
13951380 else false)
1396- then ba(makeString(["amount to receive is less than ", toString(ha)], ""))
1397- else hr
1398- let hs = invoke(bd, "burn", [hy], [AttachedPayment(bw, hy)])
1399- if ((hs == hs))
1381+ then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1382+ else hp
1383+ let hq = invoke(bd, "burn", [hw], [AttachedPayment(bw, hw)])
1384+ if ((hq == hq))
14001385 then {
1401- let gN = cP(ho, (cf + max([0, fn])))
1402- let ht = [ScriptTransfer(fb.caller, cf, fU)]
1403- let hk = if ((fn > 0))
1386+ let gL = cP(hm, (cf + max([0, fn])))
1387+ let hr = [ScriptTransfer(fb.caller, cf, fU)]
1388+ let hi = if ((fn > 0))
14041389 then [ScriptTransfer(be, fn, fU)]
14051390 else nil
1406- let hB = {
1407- let hv = if ((this == be))
1391+ let hz = {
1392+ let ht = if ((this == be))
14081393 then 0
14091394 else fn
14101395 if (fW)
1411- then $Tuple2(-((cf + hv)), 0)
1412- else $Tuple2(0, -((cf + hv)))
1396+ then $Tuple2(-((cf + ht)), 0)
1397+ else $Tuple2(0, -((cf + ht)))
14131398 }
1414- let eJ = hB._1
1415- let eK = hB._2
1416- let hC = eI(eJ, eK, 0)
1417- let gL = hC._1
1418- let ez = hC._2
1419- let gW = eN(eH, ez)
1420- if ((gW == gW))
1421- then $Tuple2(((((et ++ gN) ++ ht) ++ hk) ++ gL), cf)
1399+ let eJ = hz._1
1400+ let eK = hz._2
1401+ let hA = eI(eJ, eK, 0)
1402+ let gJ = hA._1
1403+ let ez = hA._2
1404+ let gU = eN(eH, ez)
1405+ if ((gU == gU))
1406+ then $Tuple2(((((et ++ gL) ++ hr) ++ hi) ++ gJ), cf)
14221407 else throw("Strict value is not equal to itself.")
14231408 }
14241409 else throw("Strict value is not equal to itself.")
14421427 let fd = ee._3
14431428 let dt = ee._4
14441429 let dM = ee._5
1445- let gN = cU(dK, dL)
1430+ let gL = cU(dK, dL)
14461431 let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
14471432 if ((eH == eH))
14481433 then {
1449- let hD = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1450- if ((hD == hD))
1434+ let hB = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1435+ if ((hB == hB))
14511436 then {
1452- let hE = eI(-(dK), -(dL), 0)
1453- let gL = hE._1
1454- let ez = hE._2
1455- let gW = eN(eH, ez)
1456- if ((gW == gW))
1457- then ((gN ++ dM) ++ gL)
1437+ let hC = eI(-(dK), -(dL), 0)
1438+ let gJ = hC._1
1439+ let ez = hC._2
1440+ let gU = eN(eH, ez)
1441+ if ((gU == gU))
1442+ then ((gL ++ dM) ++ gJ)
14581443 else throw("Strict value is not equal to itself.")
14591444 }
14601445 else throw("Strict value is not equal to itself.")
14651450
14661451
14671452 @Callable(fb)
1468-func getNoLess (hF,hG) = {
1453+func getNoLess (hD,hE) = {
14691454 let ee = fa(fb)
14701455 let dK = ee._1
14711456 let dL = ee._2
14721457 let fd = ee._3
14731458 let dt = ee._4
14741459 let dM = ee._5
1475- if ((hF > dK))
1476- then throw(((("noLessThenAmtAsset failed: " + toString(dK)) + " < ") + toString(hF)))
1477- else if ((hG > dL))
1478- then throw(((("noLessThenPriceAsset failed: " + toString(dL)) + " < ") + toString(hG)))
1460+ if ((hD > dK))
1461+ then throw(((("noLessThenAmtAsset failed: " + toString(dK)) + " < ") + toString(hD)))
1462+ else if ((hE > dL))
1463+ then throw(((("noLessThenPriceAsset failed: " + toString(dL)) + " < ") + toString(hE)))
14791464 else {
1480- let gN = cU(dK, dL)
1465+ let gL = cU(dK, dL)
14811466 let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
14821467 if ((eH == eH))
14831468 then {
1484- let hD = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1485- if ((hD == hD))
1469+ let hB = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1470+ if ((hB == hB))
14861471 then {
1487- let hH = eI(-(dK), -(dL), 0)
1488- let gL = hH._1
1489- let ez = hH._2
1490- let gW = eN(eH, ez)
1491- if ((gW == gW))
1492- then ((gN ++ dM) ++ gL)
1472+ let hF = eI(-(dK), -(dL), 0)
1473+ let gJ = hF._1
1474+ let ez = hF._2
1475+ let gU = eN(eH, ez)
1476+ if ((gU == gU))
1477+ then ((gL ++ dM) ++ gJ)
14931478 else throw("Strict value is not equal to itself.")
14941479 }
14951480 else throw("Strict value is not equal to itself.")
15021487
15031488 @Callable(fb)
15041489 func unstakeAndGet (cf) = {
1505- let hI = if ((size(fb.payments) != 0))
1490+ let hG = if ((size(fb.payments) != 0))
15061491 then throw("No payments are expected")
15071492 else true
1508- if ((hI == hI))
1493+ if ((hG == hG))
15091494 then {
15101495 let di = bk()
15111496 let dv = fromBase58String(di[q])
15121497 let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
15131498 if ((eH == eH))
15141499 then {
1515- let hz = invoke(bC, "unstake", [toBase58String(dv), cf], nil)
1516- if ((hz == hz))
1500+ let hx = invoke(bC, "unstake", [toBase58String(dv), cf], nil)
1501+ if ((hx == hx))
15171502 then {
15181503 let ee = dr(toBase58String(fb.transactionId), toBase58String(dv), cf, fb.caller)
15191504 let dK = ee._1
15201505 let dL = ee._2
15211506 let dy = parseIntValue(ee._9)
15221507 let dM = ee._10
1523- let gN = cU(dK, dL)
1524- let hJ = if (if (bi())
1508+ let gL = cU(dK, dL)
1509+ let hH = if (if (bi())
15251510 then true
15261511 else (dy == n))
15271512 then throw(("Get operation is blocked by admin. Status = " + toString(dy)))
15281513 else true
1529- if ((hJ == hJ))
1514+ if ((hH == hH))
15301515 then {
1531- let hD = invoke(bd, "burn", [cf], [AttachedPayment(dv, cf)])
1532- if ((hD == hD))
1516+ let hB = invoke(bd, "burn", [cf], [AttachedPayment(dv, cf)])
1517+ if ((hB == hB))
15331518 then {
1534- let hK = eI(-(dK), -(dL), 0)
1535- let gL = hK._1
1536- let ez = hK._2
1537- let gW = eN(eH, ez)
1538- if ((gW == gW))
1539- then ((gN ++ dM) ++ gL)
1519+ let hI = eI(-(dK), -(dL), 0)
1520+ let gJ = hI._1
1521+ let ez = hI._2
1522+ let gU = eN(eH, ez)
1523+ if ((gU == gU))
1524+ then ((gL ++ dM) ++ gJ)
15401525 else throw("Strict value is not equal to itself.")
15411526 }
15421527 else throw("Strict value is not equal to itself.")
15531538
15541539
15551540 @Callable(fb)
1556-func unstakeAndGetNoLess (hy,hL,hG) = {
1557- let hp = if (bi())
1541+func unstakeAndGetNoLess (hw,hJ,hE) = {
1542+ let hn = if (bi())
15581543 then true
15591544 else (bv == n)
1560- let fV = [if (!(hp))
1545+ let fV = [if (!(hn))
15611546 then true
15621547 else throw("get operation is blocked by admin"), if ((size(fb.payments) == 0))
15631548 then true
15671552 let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
15681553 if ((eH == eH))
15691554 then {
1570- let hz = invoke(bC, "unstake", [toBase58String(bw), hy], nil)
1571- if ((hz == hz))
1555+ let hx = invoke(bC, "unstake", [toBase58String(bw), hw], nil)
1556+ if ((hx == hx))
15721557 then {
1573- let ee = dr(toBase58String(fb.transactionId), toBase58String(bw), hy, fb.caller)
1558+ let ee = dr(toBase58String(fb.transactionId), toBase58String(bw), hw, fb.caller)
15741559 let dK = ee._1
15751560 let dL = ee._2
15761561 let dM = ee._10
1577- let gN = cU(dK, dL)
1578- let hM = [if ((dK >= hL))
1562+ let gL = cU(dK, dL)
1563+ let hK = [if ((dK >= hJ))
15791564 then true
1580- else throw(makeString(["amount asset amount to receive is less than ", toString(hL)], "")), if ((dL >= hG))
1565+ else throw(makeString(["amount asset amount to receive is less than ", toString(hJ)], "")), if ((dL >= hE))
15811566 then true
1582- else throw(makeString(["price asset amount to receive is less than ", toString(hG)], ""))]
1583- if ((hM == hM))
1567+ else throw(makeString(["price asset amount to receive is less than ", toString(hE)], ""))]
1568+ if ((hK == hK))
15841569 then {
1585- let hD = invoke(bd, "burn", [hy], [AttachedPayment(bw, hy)])
1586- if ((hD == hD))
1570+ let hB = invoke(bd, "burn", [hw], [AttachedPayment(bw, hw)])
1571+ if ((hB == hB))
15871572 then {
1588- let hN = eI(-(dK), -(dL), 0)
1589- let gL = hN._1
1590- let ez = hN._2
1591- let gW = eN(eH, ez)
1592- if ((gW == gW))
1593- then ((gN ++ dM) ++ gL)
1573+ let hL = eI(-(dK), -(dL), 0)
1574+ let gJ = hL._1
1575+ let ez = hL._2
1576+ let gU = eN(eH, ez)
1577+ if ((gU == gU))
1578+ then ((gL ++ dM) ++ gJ)
15941579 else throw("Strict value is not equal to itself.")
15951580 }
15961581 else throw("Strict value is not equal to itself.")
16071592
16081593
16091594 @Callable(fb)
1610-func activate (hO,hP) = if ((toString(fb.caller) != toString(bd)))
1595+func activate (hM,hN) = if ((toString(fb.caller) != toString(bd)))
16111596 then throw("permissions denied")
1612- else $Tuple2([StringEntry(ae(), hO), StringEntry(af(), hP)], "success")
1597+ else $Tuple2([StringEntry(ae(), hM), StringEntry(af(), hN)], "success")
16131598
16141599
16151600
16161601 @Callable(fb)
16171602 func refreshKLp () = {
1618- let hQ = valueOrElse(getInteger(ak), 0)
1619- let hR = if (((height - hQ) >= an))
1603+ let hO = valueOrElse(getInteger(ak), 0)
1604+ let hP = if (((height - hO) >= an))
16201605 then unit
16211606 else ba(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1622- if ((hR == hR))
1607+ if ((hP == hP))
16231608 then {
16241609 let eU = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), bc("invalid kLp"))
1625- let hS = eI(0, 0, 0)
1626- let hT = hS._1
1627- let ez = hS._2
1610+ let hQ = eI(0, 0, 0)
1611+ let hR = hQ._1
1612+ let ez = hQ._2
16281613 let eL = if ((eU != ez))
1629- then hT
1614+ then hR
16301615 else ba("nothing to refresh")
16311616 $Tuple2(eL, toString(ez))
16321617 }
16851670 func statsREADONLY () = {
16861671 let di = bk()
16871672 let dv = fromBase58String(di[q])
1688- let hU = di[r]
1689- let hV = di[s]
1673+ let hS = di[r]
1674+ let hT = di[s]
16901675 let dX = di[v]
16911676 let dY = di[w]
16921677 let dj = parseIntValue(di[t])
16931678 let dk = parseIntValue(di[u])
1694- let hW = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1695- let hX = bT(hU)
1696- let hY = bT(hV)
1697- let hZ = if ((hW == 0))
1679+ let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1680+ let hV = bT(hS)
1681+ let hW = bT(hT)
1682+ let hX = if ((hU == 0))
16981683 then [e, e, e]
1699- else dg(hX, hY, hW)
1684+ else dg(hV, hW, hU)
17001685 let dF = 0
1701- let ia = H(hZ[1], b)
1702- let ib = H(hZ[2], b)
1703- let ic = value(getInteger(bd, aD(toString(this))))
1704- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hX), toString(hY), toString(hW), toString(dF), toString(ia), toString(ib), toString(ic)], j))
1686+ let hY = H(hX[1], b)
1687+ let hZ = H(hX[2], b)
1688+ let ia = value(getInteger(bd, aD(toString(this))))
1689+ $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))
17051690 }
17061691
17071692
17171702 let dj = parseIntValue(di[t])
17181703 let dk = parseIntValue(di[u])
17191704 let dy = di[p]
1720- let hW = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1721- let hX = bT(dV)
1722- let hY = bT(dW)
1723- let de = D(hX, dj)
1724- let df = D(hY, dk)
1725- let dE = if ((hW == 0))
1705+ let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1706+ let hV = bT(dV)
1707+ let hW = bT(dW)
1708+ let de = D(hV, dj)
1709+ let df = D(hW, dk)
1710+ let dE = if ((hU == 0))
17261711 then e
17271712 else bW(df, de)
17281713 let eb = D(dP, dj)
17301715 let dR = H(ec, dk)
17311716 let fh = dN("", 500000, dP, dw, dR, dx, "", true, false)
17321717 let em = fh._1
1733- let id = fh._3
1718+ let ib = fh._3
17341719 let dA = fh._4
17351720 let dC = fh._5
17361721 let dz = fh._6
17501735 let dj = parseIntValue(di[t])
17511736 let dk = parseIntValue(di[u])
17521737 let dy = di[p]
1753- let hW = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1754- let ie = bT(dV)
1755- let if = bT(dW)
1756- let ig = D(ie, dj)
1757- let ih = D(if, dk)
1758- let dE = if ((hW == 0))
1738+ let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1739+ let ic = bT(dV)
1740+ let id = bT(dW)
1741+ let ie = D(ic, dj)
1742+ let if = D(id, dk)
1743+ let dE = if ((hU == 0))
17591744 then e
1760- else bW(ih, ig)
1745+ else bW(if, ie)
17611746 let ec = D(dR, dk)
17621747 let eb = fraction(ec, d, dE)
17631748 let dP = H(eb, dj)
17641749 let fh = dN("", 500000, dP, dw, dR, dx, "", true, false)
17651750 let em = fh._1
1766- let id = fh._3
1751+ let ib = fh._3
17671752 let dA = fh._4
17681753 let dC = fh._5
17691754 let dz = fh._6
17731758
17741759
17751760 @Callable(fb)
1776-func evaluateGetREADONLY (ii,ij) = {
1777- let ee = dr("", ii, ij, this)
1761+func evaluateGetREADONLY (ig,ih) = {
1762+ let ee = dr("", ig, ih, this)
17781763 let dK = ee._1
17791764 let dL = ee._2
17801765 let dA = ee._5
17861771 }
17871772
17881773
1789-@Verifier(ik)
1790-func il () = {
1791- let im = {
1774+@Verifier(ii)
1775+func ij () = {
1776+ let ik = {
17921777 let aQ = gn()
17931778 if ($isInstanceOf(aQ, "ByteVector"))
17941779 then {
17961781 gq
17971782 }
17981783 else if ($isInstanceOf(aQ, "Unit"))
1799- then ik.senderPublicKey
1784+ then ii.senderPublicKey
18001785 else throw("Match error")
18011786 }
1802- let aQ = ik
1787+ let aQ = ii
18031788 if ($isInstanceOf(aQ, "Order"))
18041789 then {
18051790 let eQ = aQ
1806- let in = bj()
1807- let io = if (eM())
1791+ let il = bj()
1792+ let im = if (eM())
18081793 then $Tuple2(true, "")
18091794 else eP(eQ)
1810- let aK = io._1
1811- let aL = io._2
1795+ let aK = im._1
1796+ let aL = im._2
18121797 let aM = sigVerify(eQ.bodyBytes, eQ.proofs[0], eQ.senderPublicKey)
1813- let aN = sigVerify(eQ.bodyBytes, eQ.proofs[1], in)
1798+ let aN = sigVerify(eQ.bodyBytes, eQ.proofs[1], il)
18141799 if (if (if (aK)
18151800 then aM
18161801 else false)
18221807 else if ($isInstanceOf(aQ, "SetScriptTransaction"))
18231808 then {
18241809 let aV = aQ
1825- if (sigVerify(ik.bodyBytes, ik.proofs[0], im))
1810+ if (sigVerify(ii.bodyBytes, ii.proofs[0], ik))
18261811 then true
18271812 else {
1828- let ip = blake2b256(value(aV.script))
1829- let iq = fromBase64String(value(getString(bd, aF())))
1830- let ir = scriptHash(this)
1831- if ((iq == ip))
1832- then (ir != ip)
1813+ let in = blake2b256(value(aV.script))
1814+ let io = fromBase64String(value(getString(bd, aF())))
1815+ let ip = scriptHash(this)
1816+ if ((io == in))
1817+ then (ip != in)
18331818 else false
18341819 }
18351820 }
1836- else sigVerify(ik.bodyBytes, ik.proofs[0], im)
1821+ else sigVerify(ii.bodyBytes, ii.proofs[0], ik)
18371822 }
18381823
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
9696 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
177177 func aO (aP) = {
178178 let aQ = addressFromString(aP)
179179 if ($isInstanceOf(aQ, "Address"))
180180 then {
181181 let aR = aQ
182182 aR
183183 }
184184 else this
185185 }
186186
187187
188188 func aS () = {
189189 let aT = {
190190 let aQ = getString(T())
191191 if ($isInstanceOf(aQ, "String"))
192192 then {
193193 let aU = aQ
194194 aO(aU)
195195 }
196196 else this
197197 }
198198 let aQ = getString(aT, V())
199199 if ($isInstanceOf(aQ, "String"))
200200 then {
201201 let aV = aQ
202202 aO(aV)
203203 }
204204 else this
205205 }
206206
207207
208208 func aW (aX,aY) = valueOrErrorMessage(getString(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " is not defined"], ""))
209209
210210
211211 func aZ (aX,aY) = valueOrErrorMessage(getInteger(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " is not defined"], ""))
212212
213213
214214 func ba (bb) = throw(makeString(["lp.ride:", bb], " "))
215215
216216
217217 func bc (bb) = makeString(["lp.ride:", bb], " ")
218218
219219
220220 let bd = addressFromStringValue(aW(this, T()))
221221
222222 let be = addressFromStringValue(aW(bd, aG))
223223
224224 let bf = {
225225 let bg = invoke(bd, "getInFeeREADONLY", [toString(this)], nil)
226226 if ($isInstanceOf(bg, "Int"))
227227 then bg
228228 else throw(($getType(bg) + " couldn't be cast to Int"))
229229 }
230230
231231 let bh = {
232232 let bg = invoke(bd, "getOutFeeREADONLY", [toString(this)], nil)
233233 if ($isInstanceOf(bg, "Int"))
234234 then bg
235235 else throw(($getType(bg) + " couldn't be cast to Int"))
236236 }
237237
238238 func bi () = valueOrElse(getBoolean(bd, aC()), false)
239239
240240
241241 func bj () = fromBase58String(aW(bd, au()))
242242
243243
244244 func bk () = {
245245 let bl = aW(this, ae())
246246 let bm = aW(this, af())
247247 let az = aZ(bd, aA(bm))
248248 let ay = aZ(bd, aA(bl))
249249 split(aW(bd, ax(toString(ay), toString(az))), j)
250250 }
251251
252252
253253 func bn (bo) = if ((bo == i))
254254 then unit
255255 else fromBase58String(bo)
256256
257257
258258 func bp (bo) = if ((bo == unit))
259259 then i
260260 else toBase58String(value(bo))
261261
262262
263263 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]))
264264
265265
266266 let bs = bq(bk())
267267
268268 let bt = bs
269269
270270 let bu = bt._1
271271
272272 let bv = bt._2
273273
274274 let bw = bt._3
275275
276276 let bx = bt._4
277277
278278 let by = bt._5
279279
280280 let bz = bt._6
281281
282282 let bA = bt._7
283283
284284 func bB () = split(aW(bd, at()), j)
285285
286286
287287 let bC = valueOrErrorMessage(addressFromString(bB()[B]), "incorrect staking address")
288288
289289 let bD = valueOrErrorMessage(addressFromString(bB()[C]), "incorrect staking address")
290290
291291 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)
292292
293293
294294 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)
295295
296296
297297 func bT (ap) = {
298298 let bU = if ((ap == "WAVES"))
299299 then wavesBalance(this).available
300300 else assetBalance(this, fromBase58String(ap))
301301 let bV = ((bU + ar(ap)) - as(ap))
302302 max([0, bV])
303303 }
304304
305305
306306 func bW (bX,bY) = fraction(bX, d, bY)
307307
308308
309309 func bZ (bX,bY,L) = fraction(bX, d, bY, L)
310310
311311
312312 func ca (cb) = {
313313 let cc = invoke(cb, "getRate", nil, nil)
314314 if ((cc == cc))
315315 then {
316316 let aQ = cc
317317 if ($isInstanceOf(aQ, "Int"))
318318 then {
319319 let cd = aQ
320320 cd
321321 }
322322 else ba("proxy.getRate() unexpected value")
323323 }
324324 else throw("Strict value is not equal to itself.")
325325 }
326326
327327
328328 func ce (ap,cf,cg,cb) = {
329329 let ch = ar(ap)
330330 if ((ch == ch))
331331 then {
332332 let ci = as(cg)
333333 if ((ci == ci))
334334 then {
335335 let cj = bn(ap)
336336 if ((cf > 0))
337337 then {
338338 let ck = invoke(cb, "deposit", nil, [AttachedPayment(cj, cf)])
339339 if ((ck == ck))
340340 then {
341341 let aQ = ck
342342 if ($isInstanceOf(aQ, "Int"))
343343 then {
344344 let cl = aQ
345345 let cm = (ch + cf)
346346 let cn = (ci + cl)
347347 [IntegerEntry(ao(ap), cm), IntegerEntry(aq(cg), cn)]
348348 }
349349 else nil
350350 }
351351 else throw("Strict value is not equal to itself.")
352352 }
353353 else nil
354354 }
355355 else throw("Strict value is not equal to itself.")
356356 }
357357 else throw("Strict value is not equal to itself.")
358358 }
359359
360360
361361 func co (ap,cf,cg,cb,cp,cq) = {
362362 let ch = ar(ap)
363363 if ((ch == ch))
364364 then {
365365 let ci = as(cg)
366366 if ((ci == ci))
367367 then {
368368 let cr = ca(cb)
369369 if ((cr == cr))
370370 then {
371371 let cs = fraction(cp, ch, ci)
372372 let ct = bn(cg)
373373 let cu = fraction(cp, cf, cs)
374374 let cv = fraction(cp, cf, cr)
375375 let cw = max([0, (cu - cv)])
376376 if ((cv > 0))
377377 then {
378378 let cx = invoke(cb, "withdraw", nil, [AttachedPayment(ct, cv)])
379379 if ((cx == cx))
380380 then {
381381 let aQ = cx
382382 if ($isInstanceOf(aQ, "Int"))
383383 then {
384384 let cy = aQ
385385 let cm = (ch - cy)
386386 let cn = ((ci - cv) - cw)
387387 [IntegerEntry(ao(ap), cm), IntegerEntry(aq(cg), cn), ScriptTransfer(cq, cw, bn(cg))]
388388 }
389389 else nil
390390 }
391391 else throw("Strict value is not equal to itself.")
392392 }
393393 else nil
394394 }
395395 else throw("Strict value is not equal to itself.")
396396 }
397397 else throw("Strict value is not equal to itself.")
398398 }
399399 else throw("Strict value is not equal to itself.")
400400 }
401401
402402
403403 func cz (ap) = {
404404 let aQ = invoke(bd, "getPoolLeaseConfigREADONLY", [toString(this), ap], nil)
405405 if ($isInstanceOf(aQ, "(Boolean, Int, Int, String, String, Int, String)"))
406406 then {
407407 let aR = aQ
408408 aR
409409 }
410410 else ba((("[" + ap) + "] getLeaseProxyConfig() error"))
411411 }
412412
413413
414414 func cA (cB,ap,cg,cC,cb,cp,cq) = {
415415 let ch = ar(ap)
416416 if ((ch == ch))
417417 then {
418418 let ci = as(cg)
419419 if ((ci == ci))
420420 then {
421421 let cD = max([0, (bT(ap) - cC)])
422422 let cE = fraction(cB, cD, 100)
423423 let cF = (ch - cE)
424424 if ((cF == 0))
425425 then nil
426426 else if ((0 > cF))
427427 then {
428428 let cG = -(cF)
429429 ce(ap, cG, cg, cb)
430430 }
431431 else {
432432 let cH = cF
433433 co(ap, cH, cg, cb, cp, cq)
434434 }
435435 }
436436 else throw("Strict value is not equal to itself.")
437437 }
438438 else throw("Strict value is not equal to itself.")
439439 }
440440
441441
442442 func cI (ap) = {
443443 let cJ = cz(ap)
444444 let cK = cJ._1
445445 let cL = cJ._2
446446 let cC = cJ._3
447447 let cM = cJ._4
448448 let cN = cJ._5
449449 let cp = cJ._6
450450 let cO = cJ._7
451451 if (cK)
452452 then cA(cL, ap, cN, cC, addressFromStringValue(cM), cp, addressFromStringValue(cO))
453453 else nil
454454 }
455455
456456
457457 func cP (ap,cQ) = {
458458 let cR = cz(ap)
459459 let cK = cR._1
460460 let cL = cR._2
461461 let cC = cR._3
462462 let cM = cR._4
463463 let cN = cR._5
464464 let cp = cR._6
465465 let cO = cR._7
466466 if (cK)
467467 then {
468468 let cS = max([0, ((bT(ap) - cQ) - cC)])
469469 if ((cS == cS))
470470 then {
471471 let cm = fraction(cL, cS, 100)
472472 if ((cm == cm))
473473 then {
474474 let cT = (ar(ap) - cm)
475475 if ((cT == cT))
476476 then if ((0 > cT))
477477 then ce(ap, -(cT), cN, addressFromStringValue(cM))
478478 else co(ap, cT, cN, addressFromStringValue(cM), cp, addressFromStringValue(cO))
479479 else throw("Strict value is not equal to itself.")
480480 }
481481 else throw("Strict value is not equal to itself.")
482482 }
483483 else throw("Strict value is not equal to itself.")
484484 }
485485 else nil
486486 }
487487
488488
489489 func cU (cV,cW) = {
490490 let cX = cP(aW(this, ae()), cV)
491491 let cY = cP(aW(this, af()), cW)
492492 (cX ++ cY)
493493 }
494494
495495
496496 func cZ (da,db,dc,dd) = {
497497 let de = D(dc, da)
498498 let df = D(dd, db)
499499 bW(df, de)
500500 }
501501
502502
503503 func dg (dc,dd,dh) = {
504504 let di = bk()
505505 let dj = parseIntValue(di[t])
506506 let dk = parseIntValue(di[u])
507507 let dl = cZ(dj, dk, dc, dd)
508508 let bY = D(dc, dj)
509509 let bX = D(dd, dk)
510510 let dm = D(dh, b)
511511 let dn = bW(bY, dm)
512512 let do = bW(bX, dm)
513513 [dl, dn, do]
514514 }
515515
516516
517517 func dp (dc,dd,dh) = {
518518 let dq = dg(dc, dd, dh)
519519 [H(dq[0], b), H(dq[1], b), H(dq[2], b)]
520520 }
521521
522522
523523 func dr (ds,dt,du,ab) = {
524524 let di = bk()
525525 let dv = di[q]
526526 let dw = di[r]
527527 let dx = di[s]
528528 let da = parseIntValue(di[t])
529529 let db = parseIntValue(di[u])
530530 let dy = di[p]
531531 let dz = valueOrErrorMessage(assetInfo(fromBase58String(dv)), (("Asset " + dv) + " doesn't exist")).quantity
532532 if ((dv != dt))
533533 then throw("Invalid asset passed.")
534534 else {
535535 let dA = bT(dw)
536536 let dB = D(dA, da)
537537 let dC = bT(dx)
538538 let dD = D(dC, db)
539539 let dE = bW(dD, dB)
540540 let dF = H(dE, b)
541541 let dG = D(du, b)
542542 let dH = D(dz, b)
543543 let dI = fraction(dB, dG, dH)
544544 let dJ = fraction(dD, dG, dH)
545545 let dK = K(dI, da, FLOOR)
546546 let dL = K(dJ, db, FLOOR)
547547 let dM = if ((ds == ""))
548548 then nil
549549 else [ScriptTransfer(ab, dK, if ((dw == "WAVES"))
550550 then unit
551551 else fromBase58String(dw)), ScriptTransfer(ab, dL, if ((dx == "WAVES"))
552552 then unit
553553 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)]
554554 $Tuple10(dK, dL, dw, dx, dA, dC, dz, dE, dy, dM)
555555 }
556556 }
557557
558558
559559 func dN (ds,dO,dP,dQ,dR,dS,ab,dT,dU) = {
560560 let di = bk()
561561 let dv = fromBase58String(di[q])
562562 let dV = di[r]
563563 let dW = di[s]
564564 let dX = di[v]
565565 let dY = di[w]
566566 let dj = parseIntValue(di[t])
567567 let dk = parseIntValue(di[u])
568568 let dy = di[p]
569569 let dz = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
570570 let dZ = toBase58String(valueOrElse(dQ, fromBase58String("WAVES")))
571571 let ea = toBase58String(valueOrElse(dS, fromBase58String("WAVES")))
572572 if (if ((dV != dZ))
573573 then true
574574 else (dW != ea))
575575 then throw("Invalid amt or price asset passed.")
576576 else {
577577 let dA = if (dT)
578578 then bT(dV)
579579 else (bT(dV) - dP)
580580 let dC = if (dT)
581581 then bT(dW)
582582 else (bT(dW) - dR)
583583 let eb = D(dP, dj)
584584 let ec = D(dR, dk)
585585 let ed = bW(ec, eb)
586586 let dB = D(dA, dj)
587587 let dD = D(dC, dk)
588588 let ee = if ((dz == 0))
589589 then {
590590 let dE = e
591591 let ef = e
592592 let dm = pow((eb * ec), 0, toBigInt(5), 1, 0, DOWN)
593593 $Tuple5(H(dm, b), H(eb, dj), H(ec, dk), bW((dD + ec), (dB + eb)), ef)
594594 }
595595 else {
596596 let dE = bW(dD, dB)
597597 let ef = fraction(R((dE - ed)), d, dE)
598598 let eg = D(dO, b)
599599 if (if ((dE != e))
600600 then (ef > eg)
601601 else false)
602602 then throw(((("Price slippage " + toString(ef)) + " exceeded the passed limit of ") + toString(eg)))
603603 else {
604604 let dH = D(dz, b)
605605 let eh = fraction(eb, bZ(dD, dB, CEILING), d, CEILING)
606606 let ei = fraction(ec, d, bZ(dD, dB, FLOOR), CEILING)
607607 let ej = if ((eh > ec))
608608 then $Tuple2(ei, ec)
609609 else $Tuple2(eb, eh)
610610 let ek = ej._1
611611 let el = ej._2
612612 let dm = fraction(dH, el, dD, FLOOR)
613613 $Tuple5(K(dm, b, FLOOR), K(ek, dj, CEILING), K(el, dk, CEILING), dE, ef)
614614 }
615615 }
616616 let em = ee._1
617617 let en = ee._2
618618 let eo = ee._3
619619 let dF = H(ee._4, b)
620620 let ep = H(ee._5, b)
621621 if ((0 >= em))
622622 then throw("Invalid calculations. LP calculated is less than zero.")
623623 else {
624624 let eq = if (!(dU))
625625 then 0
626626 else em
627627 let er = (dP - en)
628628 let es = (dR - eo)
629629 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))]
630630 $Tuple13(em, eq, dF, dA, dC, dz, dv, dy, et, er, es, dQ, dS)
631631 }
632632 }
633633 }
634634
635635
636636 func eu (ev,ew,dz) = {
637637 let ex = G(ev, toBigInt(bz))
638638 let ey = G(ew, toBigInt(bA))
639639 let ez = fraction(pow((ex * ey), 0, toBigInt(5), 1, 18, DOWN), g, dz)
640640 if ((dz == f))
641641 then f
642642 else ez
643643 }
644644
645645
646646 func eA (eB,eC,eD) = {
647647 let eE = (toBigInt(bT(bp(bx))) - eB)
648648 let eF = (toBigInt(bT(bp(by))) - eC)
649649 let eG = (toBigInt(value(assetInfo(bw)).quantity) - eD)
650650 let eH = eu(eE, eF, eG)
651651 eH
652652 }
653653
654654
655655 func eI (eJ,eK,eD) = {
656656 let eE = (bT(bp(bx)) + eJ)
657657 let eF = (bT(bp(by)) + eK)
658658 let eG = (value(assetInfo(bw)).quantity + eD)
659659 let ez = eu(toBigInt(eE), toBigInt(eF), toBigInt(eG))
660660 let eL = [IntegerEntry(ak, height), StringEntry(aj, toString(ez))]
661661 $Tuple2(eL, ez)
662662 }
663663
664664
665665 func eM () = valueOrElse(getBoolean(bd, aH(toString(this))), false)
666666
667667
668668 func eN (eO,ez) = if ((ez >= eO))
669669 then true
670670 else ba(makeString(["updated KLp lower than current KLp", toString(eO), toString(ez)], " "))
671671
672672
673673 func eP (eQ) = {
674674 let eE = bT(bp(bx))
675675 let eF = bT(bp(by))
676676 let eR = eQ.amount
677677 let eS = fraction(eQ.amount, eQ.price, b, FLOOR)
678678 let eT = if ((eQ.orderType == Buy))
679679 then $Tuple2(eR, -(eS))
680680 else $Tuple2(-(eR), eS)
681681 let eJ = eT._1
682682 let eK = eT._2
683683 if (if (if (bi())
684684 then true
685685 else (bv == m))
686686 then true
687687 else (bv == n))
688688 then throw("Exchange operations disabled")
689689 else if (if ((eQ.assetPair.amountAsset != bx))
690690 then true
691691 else (eQ.assetPair.priceAsset != by))
692692 then throw("Wrong order assets.")
693693 else {
694694 let eU = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), bc("invalid kLp"))
695695 let eV = eI(eJ, eK, 0)
696696 let eW = eV._1
697697 let eX = eV._2
698698 let eY = (eX >= eU)
699699 let eZ = makeString(["kLp=", toString(eU), " kLpNew=", toString(eX), " amountAssetBalance=", toString(eE), " priceAssetBalance=", toString(eF), " amountAssetBalanceDelta=", toString(eJ), " priceAssetBalanceDelta=", toString(eK), " height=", toString(height)], "")
700700 $Tuple2(eY, eZ)
701701 }
702702 }
703703
704704
705705 func fa (fb) = if ((size(fb.payments) != 1))
706706 then throw("exactly 1 payment is expected")
707707 else {
708708 let fc = value(fb.payments[0])
709709 let dt = value(fc.assetId)
710710 let fd = fc.amount
711711 let ee = dr(toBase58String(fb.transactionId), toBase58String(dt), fd, fb.caller)
712712 let dK = ee._1
713713 let dL = ee._2
714714 let dy = parseIntValue(ee._9)
715715 let dM = ee._10
716716 if (if (bi())
717717 then true
718718 else (dy == n))
719719 then throw(("Get operation is blocked by admin. Status = " + toString(dy)))
720720 else $Tuple5(dK, dL, fd, dt, dM)
721721 }
722722
723723
724724 func fe (fb,dO,dU) = if ((size(fb.payments) != 2))
725725 then throw("exactly 2 payments are expected")
726726 else {
727727 let ff = value(fb.payments[0])
728728 let fg = value(fb.payments[1])
729729 let fh = dN(toBase58String(fb.transactionId), dO, ff.amount, ff.assetId, fg.amount, fg.assetId, toString(fb.caller), false, dU)
730730 let dy = parseIntValue(fh._8)
731731 if (if (if (bi())
732732 then true
733733 else (dy == l))
734734 then true
735735 else (dy == n))
736736 then throw(("Put operation is blocked by admin. Status = " + toString(dy)))
737737 else fh
738738 }
739739
740740
741741 func fi (cf) = {
742742 let fj = invoke(bd, "emit", [cf], nil)
743743 if ((fj == fj))
744744 then {
745745 let fk = {
746746 let aQ = fj
747747 if ($isInstanceOf(aQ, "Address"))
748748 then {
749749 let fl = aQ
750750 invoke(fl, "emit", [cf], nil)
751751 }
752752 else unit
753753 }
754754 if ((fk == fk))
755755 then cf
756756 else throw("Strict value is not equal to itself.")
757757 }
758758 else throw("Strict value is not equal to itself.")
759759 }
760760
761761
762762 func fm (cf,ai) = {
763763 let fn = if ((ai == 0))
764764 then 0
765765 else fraction(cf, ai, b)
766766 $Tuple2((cf - fn), fn)
767767 }
768768
769769
770770 func fo (fp,fq,ab,ac) = {
771771 let fr = (ac == unit)
772772 let fs = bT(bp(bx))
773773 let ft = bT(bp(by))
774774 let fu = if ((fq == bx))
775775 then true
776776 else if ((fq == by))
777777 then false
778778 else ba("invalid asset")
779779 let fv = if (fr)
780780 then $Tuple2(fs, ft)
781781 else if (fu)
782782 then $Tuple2((fs - fp), ft)
783783 else $Tuple2(fs, (ft - fp))
784784 let fw = fv._1
785785 let fx = fv._2
786786 let fy = if (fu)
787787 then $Tuple2(fp, 0)
788788 else $Tuple2(0, fp)
789789 let fz = fy._1
790790 let fA = fy._2
791791 let eR = fm(fz, bf)._1
792792 let eS = fm(fA, bf)._1
793793 let fB = fm(fp, bf)
794794 let fC = fB._1
795795 let fn = fB._2
796796 let fD = (fw + eR)
797797 let fE = (fx + eS)
798798 let fF = bW(D(fE, bA), D(fD, bz))
799799 let fG = H(fF, b)
800800 let fH = if (fu)
801801 then fw
802802 else fx
803803 let fI = toBigInt(fH)
804804 let fJ = toBigInt(valueOrErrorMessage(assetInfo(bw), (("asset " + toBase58String(bw)) + " doesn't exist")).quantity)
805805 let fK = if ((fJ > f))
806806 then true
807807 else ba("initial deposit requires all coins")
808808 if ((fK == fK))
809809 then {
810810 let fL = toBigInt(fC)
811811 let fM = max([0, toInt(((fJ * (sqrtBigInt((d + ((fL * d) / fI)), 18, 18, DOWN) - d)) / d))])
812812 let et = if (fr)
813813 then nil
814814 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))]
815815 let fN = bW(D(fx, bA), D(fw, bz))
816816 let fO = H(fN, b)
817817 let fP = {
818818 let fQ = if (fu)
819819 then $Tuple2(fz, fw)
820820 else $Tuple2(fA, fx)
821821 let cf = fQ._1
822822 let fR = fQ._2
823823 let fS = toInt(fraction(fJ, toBigInt((cf / 2)), toBigInt(fR)))
824824 fraction((fM - fS), b, fS)
825825 }
826826 $Tuple5(fM, et, fn, fP, fu)
827827 }
828828 else throw("Strict value is not equal to itself.")
829829 }
830830
831831
832832 func fT (fU,fC,fq,ab,ac) = {
833833 let fr = (ac == unit)
834834 let di = bk()
835835 let dj = parseIntValue(di[t])
836836 let dk = parseIntValue(di[u])
837837 let fV = [if ((fq == bw))
838838 then true
839839 else ba("invalid lp asset")]
840840 if ((fV == fV))
841841 then {
842842 let fW = if ((fU == bx))
843843 then true
844844 else if ((fU == by))
845845 then false
846846 else ba("invalid asset")
847847 let fX = if (fW)
848848 then toBigInt(bT(bp(bx)))
849849 else toBigInt(bT(bp(by)))
850850 let fY = if (fW)
851851 then dj
852852 else dk
853853 let fZ = bT(bp(bx))
854854 let ga = bT(bp(by))
855855 let gb = if (fW)
856856 then fZ
857857 else ga
858858 let gc = toBigInt(gb)
859859 let fJ = toBigInt(valueOrErrorMessage(assetInfo(bw), (("asset " + toBase58String(bw)) + " doesn't exist")).quantity)
860860 let gd = toBigInt(fC)
861861 let ge = max([0, toInt(((fX * (d - pow((d - ((gd * d) / fJ)), 18, h, 0, 18, DOWN))) / d))])
862862 let gf = fm(ge, bh)
863863 let gg = gf._1
864864 let fn = gf._2
865865 let gh = if (fW)
866866 then $Tuple4(gg, 0, (fZ - ge), ga)
867867 else $Tuple4(0, gg, fZ, (ga - ge))
868868 let gi = gh._1
869869 let gj = gh._2
870870 let gk = gh._3
871871 let gl = gh._4
872872 let fF = bW(D(gl, bA), D(gk, bz))
873873 let fG = H(fF, b)
874874 let et = if (fr)
875875 then nil
876876 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)]
877877 let fN = bW(D(ga, bA), D(fZ, bz))
878878 let fO = H(fN, b)
879879 let fP = {
880880 let gm = (toInt(fraction(fX, gd, fJ)) * 2)
881881 fraction((gg - gm), b, gm)
882882 }
883883 $Tuple5(gg, et, fn, fP, fW)
884884 }
885885 else throw("Strict value is not equal to itself.")
886886 }
887887
888888
889889 func gn () = {
890890 let go = aS()
891891 let aQ = getString(go, U())
892892 if ($isInstanceOf(aQ, "String"))
893893 then {
894894 let aV = aQ
895895 fromBase58String(aV)
896896 }
897897 else if ($isInstanceOf(aQ, "Unit"))
898898 then unit
899899 else throw("Match error")
900900 }
901901
902902
903903 func gp (fb) = {
904904 let aQ = gn()
905905 if ($isInstanceOf(aQ, "ByteVector"))
906906 then {
907907 let gq = aQ
908908 (fb.callerPublicKey == gq)
909909 }
910910 else if ($isInstanceOf(aQ, "Unit"))
911911 then (fb.caller == this)
912912 else throw("Match error")
913913 }
914914
915915
916916 func gr (fb) = {
917917 let gs = throw("Permission denied")
918918 let aQ = gn()
919919 if ($isInstanceOf(aQ, "ByteVector"))
920920 then {
921921 let gq = aQ
922922 if ((fb.callerPublicKey == gq))
923923 then true
924924 else gs
925925 }
926926 else if ($isInstanceOf(aQ, "Unit"))
927927 then if ((fb.caller == this))
928928 then true
929929 else gs
930930 else throw("Match error")
931931 }
932932
933933
934934 @Callable(fb)
935935 func rebalance () = (cI(aW(this, ae())) ++ cI(aW(this, af())))
936936
937937
938938
939939 @Callable(fb)
940940 func calculateAmountOutForSwapREADONLY (gt,gu,gv) = {
941941 let gw = if ((gu == false))
942942 then {
943943 let gx = aW(this, af())
944944 let gy = aW(this, ae())
945945 $Tuple2(gx, gy)
946946 }
947947 else {
948948 let gx = aW(this, ae())
949949 let gy = aW(this, af())
950950 $Tuple2(gx, gy)
951951 }
952952 let gx = gw._1
953953 let gy = gw._2
954954 let gz = bT(gy)
955955 let gA = bT(gx)
956956 let gB = fraction(gA, gt, (gz + gt))
957957 let gC = (toBigInt(gz) * toBigInt(gA))
958958 let gD = (((toBigInt(bT(gy)) + toBigInt(gt)) + toBigInt(gv)) * (toBigInt(bT(gx)) - toBigInt(gB)))
959959 let gE = if ((gD >= gC))
960960 then true
961961 else throw("new K is fewer error")
962962 if ((gE == gE))
963963 then $Tuple2(nil, gB)
964964 else throw("Strict value is not equal to itself.")
965965 }
966966
967967
968968
969969 @Callable(fb)
970970 func calculateAmountOutForSwapAndSendTokens (gt,gu,gF,gG,gv) = {
971971 let gH = {
972972 let bg = invoke(bd, "getSwapContractREADONLY", nil, nil)
973973 if ($isInstanceOf(bg, "String"))
974974 then bg
975975 else throw(($getType(bg) + " couldn't be cast to String"))
976976 }
977- let gI = {
978- let bg = invoke(bd, "isPoolSwapDisabledREADONLY", [toString(this)], nil)
979- if ($isInstanceOf(bg, "Boolean"))
980- then bg
981- else throw(($getType(bg) + " couldn't be cast to Boolean"))
982- }
983- let gJ = if (if (bi())
984- then true
985- else (bv == n))
986- then true
987- else gI
988- let fV = [if (if (!(gJ))
989- then true
990- else gp(fb))
991- then true
992- else ba("swap operation is blocked by admin"), if ((value(fb.payments[0]).amount >= gt))
977+ let fV = [if ((value(fb.payments[0]).amount >= gt))
993978 then true
994979 else ba("Wrong amount"), if ((fb.caller == addressFromStringValue(gH)))
995980 then true
996981 else ba("Permission denied")]
997982 if ((fV == fV))
998983 then {
999984 let fc = value(fb.payments[0])
1000985 let gy = bp(fc.assetId)
1001986 let gx = if ((gu == false))
1002987 then aW(this, af())
1003988 else aW(this, ae())
1004989 let gz = ((bT(gy) - value(fb.payments[0]).amount) - gv)
1005990 let gA = bT(gx)
1006991 let gB = fraction(gA, gt, (gz + gt))
1007992 let gC = (toBigInt(gz) * toBigInt(gA))
1008993 let gD = ((toBigInt(bT(gy)) + toBigInt(gv)) * (toBigInt(bT(gx)) - toBigInt(gB)))
1009994 let gE = if ((gD >= gC))
1010995 then true
1011996 else throw("new K is fewer error")
1012997 if ((gE == gE))
1013998 then {
1014- let gK = if ((gB >= gF))
999+ let gI = if ((gB >= gF))
10151000 then true
10161001 else throw("Exchange result is fewer coins than expected")
1017- if ((gK == gK))
1002+ if ((gI == gI))
10181003 then {
10191004 let eJ = if (gu)
10201005 then -(gB)
10211006 else gv
10221007 let eK = if (gu)
10231008 then gv
10241009 else -(gB)
1025- let gL = eI(eJ, eK, 0)._1
1026- if ((gL == gL))
1010+ let gJ = eI(eJ, eK, 0)._1
1011+ if ((gJ == gJ))
10271012 then {
1028- let gM = cI(gy)
1029- if ((gM == gM))
1013+ let gK = cI(gy)
1014+ if ((gK == gK))
10301015 then {
1031- let gN = cP(gx, gB)
1032- if ((gN == gN))
1033- then $Tuple2(((gN ++ gM) ++ [ScriptTransfer(addressFromStringValue(gG), gB, bn(gx))]), gB)
1016+ let gL = cP(gx, gB)
1017+ if ((gL == gL))
1018+ then $Tuple2(((gL ++ gK) ++ [ScriptTransfer(addressFromStringValue(gG), gB, bn(gx))]), gB)
10341019 else throw("Strict value is not equal to itself.")
10351020 }
10361021 else throw("Strict value is not equal to itself.")
10371022 }
10381023 else throw("Strict value is not equal to itself.")
10391024 }
10401025 else throw("Strict value is not equal to itself.")
10411026 }
10421027 else throw("Strict value is not equal to itself.")
10431028 }
10441029 else throw("Strict value is not equal to itself.")
10451030 }
10461031
10471032
10481033
10491034 @Callable(fb)
1050-func put (dO,gO) = if ((0 > dO))
1035+func put (dO,gM) = if ((0 > dO))
10511036 then throw("Invalid slippageTolerance passed")
10521037 else {
10531038 let fh = fe(fb, dO, true)
10541039 let eq = fh._2
10551040 let dv = fh._7
10561041 let dM = fh._9
10571042 let er = fh._10
10581043 let es = fh._11
1059- let gP = fh._12
1060- let gQ = fh._13
1044+ let gN = fh._12
1045+ let gO = fh._13
10611046 let ff = toBigInt(value(fb.payments[0]).amount)
10621047 let fg = toBigInt(value(fb.payments[1]).amount)
10631048 let eH = eA(ff, fg, toBigInt(0))
10641049 if ((eH == eH))
10651050 then {
10661051 let fj = invoke(bd, "emit", [eq], nil)
10671052 if ((fj == fj))
10681053 then {
10691054 let fk = {
10701055 let aQ = fj
10711056 if ($isInstanceOf(aQ, "Address"))
10721057 then {
10731058 let fl = aQ
10741059 invoke(fl, "emit", [eq], nil)
10751060 }
10761061 else unit
10771062 }
10781063 if ((fk == fk))
10791064 then {
1080- let gR = if ((er > 0))
1081- then invoke(bD, "put", nil, [AttachedPayment(gP, er)])
1065+ let gP = if ((er > 0))
1066+ then invoke(bD, "put", nil, [AttachedPayment(gN, er)])
10821067 else nil
1083- if ((gR == gR))
1068+ if ((gP == gP))
10841069 then {
1085- let gS = if ((es > 0))
1086- then invoke(bD, "put", nil, [AttachedPayment(gQ, es)])
1070+ let gQ = if ((es > 0))
1071+ then invoke(bD, "put", nil, [AttachedPayment(gO, es)])
10871072 else nil
1088- if ((gS == gS))
1073+ if ((gQ == gQ))
10891074 then {
1090- let gT = if (gO)
1075+ let gR = if (gM)
10911076 then {
1092- let gU = invoke(bC, "stake", nil, [AttachedPayment(dv, eq)])
1093- if ((gU == gU))
1077+ let gS = invoke(bC, "stake", nil, [AttachedPayment(dv, eq)])
1078+ if ((gS == gS))
10941079 then nil
10951080 else throw("Strict value is not equal to itself.")
10961081 }
10971082 else [ScriptTransfer(fb.caller, eq, dv)]
1098- let gV = eI(0, 0, 0)
1099- if ((gV == gV))
1083+ let gT = eI(0, 0, 0)
1084+ if ((gT == gT))
11001085 then {
1101- let ez = gV._2
1102- let gL = gV._1
1103- let gW = eN(eH, ez)
1104- if ((gW == gW))
1086+ let ez = gT._2
1087+ let gJ = gT._1
1088+ let gU = eN(eH, ez)
1089+ if ((gU == gU))
11051090 then {
1106- let gX = invoke(this, "rebalance", nil, nil)
1107- if ((gX == gX))
1108- then ((dM ++ gT) ++ gL)
1091+ let gV = invoke(this, "rebalance", nil, nil)
1092+ if ((gV == gV))
1093+ then ((dM ++ gR) ++ gJ)
11091094 else throw("Strict value is not equal to itself.")
11101095 }
11111096 else throw("Strict value is not equal to itself.")
11121097 }
11131098 else throw("Strict value is not equal to itself.")
11141099 }
11151100 else throw("Strict value is not equal to itself.")
11161101 }
11171102 else throw("Strict value is not equal to itself.")
11181103 }
11191104 else throw("Strict value is not equal to itself.")
11201105 }
11211106 else throw("Strict value is not equal to itself.")
11221107 }
11231108 else throw("Strict value is not equal to itself.")
11241109 }
11251110
11261111
11271112
11281113 @Callable(fb)
1129-func putForFree (gY) = if ((0 > gY))
1114+func putForFree (gW) = if ((0 > gW))
11301115 then throw("Invalid value passed")
11311116 else {
1132- let fh = fe(fb, gY, false)
1117+ let fh = fe(fb, gW, false)
11331118 let dM = fh._9
11341119 let ff = toBigInt(value(fb.payments[0]).amount)
11351120 let fg = toBigInt(value(fb.payments[1]).amount)
11361121 let eH = eA(ff, fg, toBigInt(0))
11371122 if ((eH == eH))
11381123 then {
1139- let gZ = eI(0, 0, 0)
1140- let gL = gZ._1
1141- let ez = gZ._2
1142- let gW = eN(eH, ez)
1143- if ((gW == gW))
1144- then (dM ++ gL)
1124+ let gX = eI(0, 0, 0)
1125+ let gJ = gX._1
1126+ let ez = gX._2
1127+ let gU = eN(eH, ez)
1128+ if ((gU == gU))
1129+ then (dM ++ gJ)
11451130 else throw("Strict value is not equal to itself.")
11461131 }
11471132 else throw("Strict value is not equal to itself.")
11481133 }
11491134
11501135
11511136
11521137 @Callable(fb)
1153-func putOneTkn (ha,hb) = {
1154- let hc = {
1138+func putOneTkn (gY,gZ) = {
1139+ let ha = {
11551140 let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
11561141 if ($isInstanceOf(bg, "Boolean"))
11571142 then bg
11581143 else throw(($getType(bg) + " couldn't be cast to Boolean"))
11591144 }
1160- let hd = if (if (if (bi())
1145+ let hb = if (if (if (bi())
11611146 then true
11621147 else (bv == l))
11631148 then true
11641149 else (bv == n))
11651150 then true
1166- else hc
1167- let fV = [if (if (!(hd))
1151+ else ha
1152+ let fV = [if (if (!(hb))
11681153 then true
11691154 else gp(fb))
11701155 then true
11711156 else ba("put operation is blocked by admin"), if ((size(fb.payments) == 1))
11721157 then true
11731158 else ba("exactly 1 payment are expected")]
11741159 if ((fV == fV))
11751160 then {
1176- let he = fb.payments[0]
1177- let fq = he.assetId
1178- let fp = he.amount
1161+ let hc = fb.payments[0]
1162+ let fq = hc.assetId
1163+ let fp = hc.amount
11791164 let eH = if ((fq == bx))
11801165 then eA(toBigInt(fp), toBigInt(0), toBigInt(0))
11811166 else if ((fq == by))
11821167 then eA(toBigInt(0), toBigInt(fp), toBigInt(0))
11831168 else ba("payment asset is not supported")
11841169 if ((eH == eH))
11851170 then {
11861171 let ab = fb.caller
11871172 let ac = fb.transactionId
1188- let hf = fo(fp, fq, ab, ac)
1189- if ((hf == hf))
1173+ let hd = fo(fp, fq, ab, ac)
1174+ if ((hd == hd))
11901175 then {
1191- let fu = hf._5
1192- let hg = hf._4
1193- let fn = hf._3
1194- let et = hf._2
1195- let hh = hf._1
1196- let hi = if (if ((ha > 0))
1197- then (ha > hh)
1176+ let fu = hd._5
1177+ let he = hd._4
1178+ let fn = hd._3
1179+ let et = hd._2
1180+ let hf = hd._1
1181+ let hg = if (if ((gY > 0))
1182+ then (gY > hf)
11981183 else false)
1199- then ba(makeString(["amount to receive is less than ", toString(ha)], ""))
1200- else hh
1201- let fj = fi(hi)
1184+ then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1185+ else hf
1186+ let fj = fi(hg)
12021187 if ((fj == fj))
12031188 then {
1204- let gT = if (hb)
1189+ let gR = if (gZ)
12051190 then {
1206- let hj = invoke(bC, "stake", nil, [AttachedPayment(bw, hi)])
1207- if ((hj == hj))
1191+ let hh = invoke(bC, "stake", nil, [AttachedPayment(bw, hg)])
1192+ if ((hh == hh))
12081193 then nil
12091194 else throw("Strict value is not equal to itself.")
12101195 }
1211- else [ScriptTransfer(fb.caller, hi, bw)]
1212- let hk = if ((fn > 0))
1196+ else [ScriptTransfer(fb.caller, hg, bw)]
1197+ let hi = if ((fn > 0))
12131198 then [ScriptTransfer(be, fn, fq)]
12141199 else nil
1215- let hl = if ((this == be))
1200+ let hj = if ((this == be))
12161201 then $Tuple2(0, 0)
12171202 else if (fu)
12181203 then $Tuple2(-(fn), 0)
12191204 else $Tuple2(0, -(fn))
1220- let eJ = hl._1
1221- let eK = hl._2
1222- let hm = eI(eJ, eK, 0)
1223- let gL = hm._1
1224- let ez = hm._2
1205+ let eJ = hj._1
1206+ let eK = hj._2
1207+ let hk = eI(eJ, eK, 0)
1208+ let gJ = hk._1
1209+ let ez = hk._2
12251210 let eU = value(getString(aj))
1226- let gW = eN(eH, ez)
1227- if ((gW == gW))
1211+ let gU = eN(eH, ez)
1212+ if ((gU == gU))
12281213 then {
1229- let gX = invoke(this, "rebalance", nil, nil)
1230- if ((gX == gX))
1231- then $Tuple2((((et ++ gT) ++ hk) ++ gL), hi)
1214+ let gV = invoke(this, "rebalance", nil, nil)
1215+ if ((gV == gV))
1216+ then $Tuple2((((et ++ gR) ++ hi) ++ gJ), hg)
12321217 else throw("Strict value is not equal to itself.")
12331218 }
12341219 else throw("Strict value is not equal to itself.")
12351220 }
12361221 else throw("Strict value is not equal to itself.")
12371222 }
12381223 else throw("Strict value is not equal to itself.")
12391224 }
12401225 else throw("Strict value is not equal to itself.")
12411226 }
12421227 else throw("Strict value is not equal to itself.")
12431228 }
12441229
12451230
12461231
12471232 @Callable(fb)
12481233 func putOneTknREADONLY (fq,fp) = {
1249- let hn = fo(fp, bn(fq), unit, unit)
1250- let hh = hn._1
1251- let et = hn._2
1252- let fn = hn._3
1253- let hg = hn._4
1254- let fu = hn._5
1255- $Tuple2(nil, $Tuple3(hh, fn, hg))
1234+ let hl = fo(fp, bn(fq), unit, unit)
1235+ let hf = hl._1
1236+ let et = hl._2
1237+ let fn = hl._3
1238+ let he = hl._4
1239+ let fu = hl._5
1240+ $Tuple2(nil, $Tuple3(hf, fn, he))
12561241 }
12571242
12581243
12591244
12601245 @Callable(fb)
1261-func getOneTkn (ho,ha) = {
1262- let hc = {
1246+func getOneTkn (hm,gY) = {
1247+ let ha = {
12631248 let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
12641249 if ($isInstanceOf(bg, "Boolean"))
12651250 then bg
12661251 else throw(($getType(bg) + " couldn't be cast to Boolean"))
12671252 }
1268- let hp = if (if (bi())
1253+ let hn = if (if (bi())
12691254 then true
12701255 else (bv == n))
12711256 then true
1272- else hc
1273- let fV = [if (if (!(hp))
1257+ else ha
1258+ let fV = [if (if (!(hn))
12741259 then true
12751260 else gp(fb))
12761261 then true
12771262 else ba("get operation is blocked by admin"), if ((size(fb.payments) == 1))
12781263 then true
12791264 else ba("exactly 1 payment are expected")]
12801265 if ((fV == fV))
12811266 then {
1282- let fU = bn(ho)
1283- let he = fb.payments[0]
1284- let fq = he.assetId
1285- let fC = he.amount
1267+ let fU = bn(hm)
1268+ let hc = fb.payments[0]
1269+ let fq = hc.assetId
1270+ let fC = hc.amount
12861271 let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
12871272 if ((eH == eH))
12881273 then {
12891274 let ab = fb.caller
12901275 let ac = fb.transactionId
1291- let hq = fT(fU, fC, fq, ab, ac)
1292- if ((hq == hq))
1276+ let ho = fT(fU, fC, fq, ab, ac)
1277+ if ((ho == ho))
12931278 then {
1294- let fW = hq._5
1295- let hg = hq._4
1296- let fn = hq._3
1297- let et = hq._2
1298- let hr = hq._1
1299- let cf = if (if ((ha > 0))
1300- then (ha > hr)
1279+ let fW = ho._5
1280+ let he = ho._4
1281+ let fn = ho._3
1282+ let et = ho._2
1283+ let hp = ho._1
1284+ let cf = if (if ((gY > 0))
1285+ then (gY > hp)
13011286 else false)
1302- then ba(makeString(["amount to receive is less than ", toString(ha)], ""))
1303- else hr
1304- let hs = invoke(bd, "burn", [fC], [AttachedPayment(fq, fC)])
1305- if ((hs == hs))
1287+ then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1288+ else hp
1289+ let hq = invoke(bd, "burn", [fC], [AttachedPayment(fq, fC)])
1290+ if ((hq == hq))
13061291 then {
1307- let gN = cP(ho, (cf + max([0, fn])))
1308- let ht = [ScriptTransfer(ab, cf, fU)]
1309- let hk = if ((fn > 0))
1292+ let gL = cP(hm, (cf + max([0, fn])))
1293+ let hr = [ScriptTransfer(ab, cf, fU)]
1294+ let hi = if ((fn > 0))
13101295 then [ScriptTransfer(be, fn, fU)]
13111296 else nil
1312- let hu = {
1313- let hv = if ((this == be))
1297+ let hs = {
1298+ let ht = if ((this == be))
13141299 then 0
13151300 else fn
13161301 if (fW)
1317- then $Tuple2(-((cf + hv)), 0)
1318- else $Tuple2(0, -((cf + hv)))
1302+ then $Tuple2(-((cf + ht)), 0)
1303+ else $Tuple2(0, -((cf + ht)))
13191304 }
1320- let eJ = hu._1
1321- let eK = hu._2
1322- let hw = eI(eJ, eK, 0)
1323- let gL = hw._1
1324- let ez = hw._2
1325- let gW = eN(eH, ez)
1326- if ((gW == gW))
1327- then $Tuple2(((((et ++ gN) ++ ht) ++ hk) ++ gL), cf)
1305+ let eJ = hs._1
1306+ let eK = hs._2
1307+ let hu = eI(eJ, eK, 0)
1308+ let gJ = hu._1
1309+ let ez = hu._2
1310+ let gU = eN(eH, ez)
1311+ if ((gU == gU))
1312+ then $Tuple2(((((et ++ gL) ++ hr) ++ hi) ++ gJ), cf)
13281313 else throw("Strict value is not equal to itself.")
13291314 }
13301315 else throw("Strict value is not equal to itself.")
13311316 }
13321317 else throw("Strict value is not equal to itself.")
13331318 }
13341319 else throw("Strict value is not equal to itself.")
13351320 }
13361321 else throw("Strict value is not equal to itself.")
13371322 }
13381323
13391324
13401325
13411326 @Callable(fb)
13421327 func getOneTknREADONLY (fU,fC) = {
1343- let hx = fT(bn(fU), fC, bw, unit, unit)
1344- let hr = hx._1
1345- let et = hx._2
1346- let fn = hx._3
1347- let hg = hx._4
1348- let fW = hx._5
1349- $Tuple2(nil, $Tuple3(hr, fn, hg))
1328+ let hv = fT(bn(fU), fC, bw, unit, unit)
1329+ let hp = hv._1
1330+ let et = hv._2
1331+ let fn = hv._3
1332+ let he = hv._4
1333+ let fW = hv._5
1334+ $Tuple2(nil, $Tuple3(hp, fn, he))
13501335 }
13511336
13521337
13531338
13541339 @Callable(fb)
1355-func unstakeAndGetOneTkn (hy,ho,ha) = {
1356- let hc = {
1340+func unstakeAndGetOneTkn (hw,hm,gY) = {
1341+ let ha = {
13571342 let bg = invoke(bd, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
13581343 if ($isInstanceOf(bg, "Boolean"))
13591344 then bg
13601345 else throw(($getType(bg) + " couldn't be cast to Boolean"))
13611346 }
1362- let hp = if (if (bi())
1347+ let hn = if (if (bi())
13631348 then true
13641349 else (bv == n))
13651350 then true
1366- else hc
1367- let fV = [if (if (!(hp))
1351+ else ha
1352+ let fV = [if (if (!(hn))
13681353 then true
13691354 else gp(fb))
13701355 then true
13711356 else ba("get operation is blocked by admin"), if ((size(fb.payments) == 0))
13721357 then true
13731358 else ba("no payments are expected")]
13741359 if ((fV == fV))
13751360 then {
1376- let fU = bn(ho)
1361+ let fU = bn(hm)
13771362 let ab = fb.caller
13781363 let ac = fb.transactionId
13791364 let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
13801365 if ((eH == eH))
13811366 then {
1382- let hz = invoke(bC, "unstake", [toBase58String(bw), hy], nil)
1383- if ((hz == hz))
1367+ let hx = invoke(bC, "unstake", [toBase58String(bw), hw], nil)
1368+ if ((hx == hx))
13841369 then {
1385- let hA = fT(fU, hy, bw, ab, ac)
1386- if ((hA == hA))
1370+ let hy = fT(fU, hw, bw, ab, ac)
1371+ if ((hy == hy))
13871372 then {
1388- let fW = hA._5
1389- let hg = hA._4
1390- let fn = hA._3
1391- let et = hA._2
1392- let hr = hA._1
1393- let cf = if (if ((ha > 0))
1394- then (ha > hr)
1373+ let fW = hy._5
1374+ let he = hy._4
1375+ let fn = hy._3
1376+ let et = hy._2
1377+ let hp = hy._1
1378+ let cf = if (if ((gY > 0))
1379+ then (gY > hp)
13951380 else false)
1396- then ba(makeString(["amount to receive is less than ", toString(ha)], ""))
1397- else hr
1398- let hs = invoke(bd, "burn", [hy], [AttachedPayment(bw, hy)])
1399- if ((hs == hs))
1381+ then ba(makeString(["amount to receive is less than ", toString(gY)], ""))
1382+ else hp
1383+ let hq = invoke(bd, "burn", [hw], [AttachedPayment(bw, hw)])
1384+ if ((hq == hq))
14001385 then {
1401- let gN = cP(ho, (cf + max([0, fn])))
1402- let ht = [ScriptTransfer(fb.caller, cf, fU)]
1403- let hk = if ((fn > 0))
1386+ let gL = cP(hm, (cf + max([0, fn])))
1387+ let hr = [ScriptTransfer(fb.caller, cf, fU)]
1388+ let hi = if ((fn > 0))
14041389 then [ScriptTransfer(be, fn, fU)]
14051390 else nil
1406- let hB = {
1407- let hv = if ((this == be))
1391+ let hz = {
1392+ let ht = if ((this == be))
14081393 then 0
14091394 else fn
14101395 if (fW)
1411- then $Tuple2(-((cf + hv)), 0)
1412- else $Tuple2(0, -((cf + hv)))
1396+ then $Tuple2(-((cf + ht)), 0)
1397+ else $Tuple2(0, -((cf + ht)))
14131398 }
1414- let eJ = hB._1
1415- let eK = hB._2
1416- let hC = eI(eJ, eK, 0)
1417- let gL = hC._1
1418- let ez = hC._2
1419- let gW = eN(eH, ez)
1420- if ((gW == gW))
1421- then $Tuple2(((((et ++ gN) ++ ht) ++ hk) ++ gL), cf)
1399+ let eJ = hz._1
1400+ let eK = hz._2
1401+ let hA = eI(eJ, eK, 0)
1402+ let gJ = hA._1
1403+ let ez = hA._2
1404+ let gU = eN(eH, ez)
1405+ if ((gU == gU))
1406+ then $Tuple2(((((et ++ gL) ++ hr) ++ hi) ++ gJ), cf)
14221407 else throw("Strict value is not equal to itself.")
14231408 }
14241409 else throw("Strict value is not equal to itself.")
14251410 }
14261411 else throw("Strict value is not equal to itself.")
14271412 }
14281413 else throw("Strict value is not equal to itself.")
14291414 }
14301415 else throw("Strict value is not equal to itself.")
14311416 }
14321417 else throw("Strict value is not equal to itself.")
14331418 }
14341419
14351420
14361421
14371422 @Callable(fb)
14381423 func get () = {
14391424 let ee = fa(fb)
14401425 let dK = ee._1
14411426 let dL = ee._2
14421427 let fd = ee._3
14431428 let dt = ee._4
14441429 let dM = ee._5
1445- let gN = cU(dK, dL)
1430+ let gL = cU(dK, dL)
14461431 let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
14471432 if ((eH == eH))
14481433 then {
1449- let hD = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1450- if ((hD == hD))
1434+ let hB = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1435+ if ((hB == hB))
14511436 then {
1452- let hE = eI(-(dK), -(dL), 0)
1453- let gL = hE._1
1454- let ez = hE._2
1455- let gW = eN(eH, ez)
1456- if ((gW == gW))
1457- then ((gN ++ dM) ++ gL)
1437+ let hC = eI(-(dK), -(dL), 0)
1438+ let gJ = hC._1
1439+ let ez = hC._2
1440+ let gU = eN(eH, ez)
1441+ if ((gU == gU))
1442+ then ((gL ++ dM) ++ gJ)
14581443 else throw("Strict value is not equal to itself.")
14591444 }
14601445 else throw("Strict value is not equal to itself.")
14611446 }
14621447 else throw("Strict value is not equal to itself.")
14631448 }
14641449
14651450
14661451
14671452 @Callable(fb)
1468-func getNoLess (hF,hG) = {
1453+func getNoLess (hD,hE) = {
14691454 let ee = fa(fb)
14701455 let dK = ee._1
14711456 let dL = ee._2
14721457 let fd = ee._3
14731458 let dt = ee._4
14741459 let dM = ee._5
1475- if ((hF > dK))
1476- then throw(((("noLessThenAmtAsset failed: " + toString(dK)) + " < ") + toString(hF)))
1477- else if ((hG > dL))
1478- then throw(((("noLessThenPriceAsset failed: " + toString(dL)) + " < ") + toString(hG)))
1460+ if ((hD > dK))
1461+ then throw(((("noLessThenAmtAsset failed: " + toString(dK)) + " < ") + toString(hD)))
1462+ else if ((hE > dL))
1463+ then throw(((("noLessThenPriceAsset failed: " + toString(dL)) + " < ") + toString(hE)))
14791464 else {
1480- let gN = cU(dK, dL)
1465+ let gL = cU(dK, dL)
14811466 let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
14821467 if ((eH == eH))
14831468 then {
1484- let hD = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1485- if ((hD == hD))
1469+ let hB = invoke(bd, "burn", [fd], [AttachedPayment(dt, fd)])
1470+ if ((hB == hB))
14861471 then {
1487- let hH = eI(-(dK), -(dL), 0)
1488- let gL = hH._1
1489- let ez = hH._2
1490- let gW = eN(eH, ez)
1491- if ((gW == gW))
1492- then ((gN ++ dM) ++ gL)
1472+ let hF = eI(-(dK), -(dL), 0)
1473+ let gJ = hF._1
1474+ let ez = hF._2
1475+ let gU = eN(eH, ez)
1476+ if ((gU == gU))
1477+ then ((gL ++ dM) ++ gJ)
14931478 else throw("Strict value is not equal to itself.")
14941479 }
14951480 else throw("Strict value is not equal to itself.")
14961481 }
14971482 else throw("Strict value is not equal to itself.")
14981483 }
14991484 }
15001485
15011486
15021487
15031488 @Callable(fb)
15041489 func unstakeAndGet (cf) = {
1505- let hI = if ((size(fb.payments) != 0))
1490+ let hG = if ((size(fb.payments) != 0))
15061491 then throw("No payments are expected")
15071492 else true
1508- if ((hI == hI))
1493+ if ((hG == hG))
15091494 then {
15101495 let di = bk()
15111496 let dv = fromBase58String(di[q])
15121497 let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
15131498 if ((eH == eH))
15141499 then {
1515- let hz = invoke(bC, "unstake", [toBase58String(dv), cf], nil)
1516- if ((hz == hz))
1500+ let hx = invoke(bC, "unstake", [toBase58String(dv), cf], nil)
1501+ if ((hx == hx))
15171502 then {
15181503 let ee = dr(toBase58String(fb.transactionId), toBase58String(dv), cf, fb.caller)
15191504 let dK = ee._1
15201505 let dL = ee._2
15211506 let dy = parseIntValue(ee._9)
15221507 let dM = ee._10
1523- let gN = cU(dK, dL)
1524- let hJ = if (if (bi())
1508+ let gL = cU(dK, dL)
1509+ let hH = if (if (bi())
15251510 then true
15261511 else (dy == n))
15271512 then throw(("Get operation is blocked by admin. Status = " + toString(dy)))
15281513 else true
1529- if ((hJ == hJ))
1514+ if ((hH == hH))
15301515 then {
1531- let hD = invoke(bd, "burn", [cf], [AttachedPayment(dv, cf)])
1532- if ((hD == hD))
1516+ let hB = invoke(bd, "burn", [cf], [AttachedPayment(dv, cf)])
1517+ if ((hB == hB))
15331518 then {
1534- let hK = eI(-(dK), -(dL), 0)
1535- let gL = hK._1
1536- let ez = hK._2
1537- let gW = eN(eH, ez)
1538- if ((gW == gW))
1539- then ((gN ++ dM) ++ gL)
1519+ let hI = eI(-(dK), -(dL), 0)
1520+ let gJ = hI._1
1521+ let ez = hI._2
1522+ let gU = eN(eH, ez)
1523+ if ((gU == gU))
1524+ then ((gL ++ dM) ++ gJ)
15401525 else throw("Strict value is not equal to itself.")
15411526 }
15421527 else throw("Strict value is not equal to itself.")
15431528 }
15441529 else throw("Strict value is not equal to itself.")
15451530 }
15461531 else throw("Strict value is not equal to itself.")
15471532 }
15481533 else throw("Strict value is not equal to itself.")
15491534 }
15501535 else throw("Strict value is not equal to itself.")
15511536 }
15521537
15531538
15541539
15551540 @Callable(fb)
1556-func unstakeAndGetNoLess (hy,hL,hG) = {
1557- let hp = if (bi())
1541+func unstakeAndGetNoLess (hw,hJ,hE) = {
1542+ let hn = if (bi())
15581543 then true
15591544 else (bv == n)
1560- let fV = [if (!(hp))
1545+ let fV = [if (!(hn))
15611546 then true
15621547 else throw("get operation is blocked by admin"), if ((size(fb.payments) == 0))
15631548 then true
15641549 else throw("no payments are expected")]
15651550 if ((fV == fV))
15661551 then {
15671552 let eH = eA(toBigInt(0), toBigInt(0), toBigInt(0))
15681553 if ((eH == eH))
15691554 then {
1570- let hz = invoke(bC, "unstake", [toBase58String(bw), hy], nil)
1571- if ((hz == hz))
1555+ let hx = invoke(bC, "unstake", [toBase58String(bw), hw], nil)
1556+ if ((hx == hx))
15721557 then {
1573- let ee = dr(toBase58String(fb.transactionId), toBase58String(bw), hy, fb.caller)
1558+ let ee = dr(toBase58String(fb.transactionId), toBase58String(bw), hw, fb.caller)
15741559 let dK = ee._1
15751560 let dL = ee._2
15761561 let dM = ee._10
1577- let gN = cU(dK, dL)
1578- let hM = [if ((dK >= hL))
1562+ let gL = cU(dK, dL)
1563+ let hK = [if ((dK >= hJ))
15791564 then true
1580- else throw(makeString(["amount asset amount to receive is less than ", toString(hL)], "")), if ((dL >= hG))
1565+ else throw(makeString(["amount asset amount to receive is less than ", toString(hJ)], "")), if ((dL >= hE))
15811566 then true
1582- else throw(makeString(["price asset amount to receive is less than ", toString(hG)], ""))]
1583- if ((hM == hM))
1567+ else throw(makeString(["price asset amount to receive is less than ", toString(hE)], ""))]
1568+ if ((hK == hK))
15841569 then {
1585- let hD = invoke(bd, "burn", [hy], [AttachedPayment(bw, hy)])
1586- if ((hD == hD))
1570+ let hB = invoke(bd, "burn", [hw], [AttachedPayment(bw, hw)])
1571+ if ((hB == hB))
15871572 then {
1588- let hN = eI(-(dK), -(dL), 0)
1589- let gL = hN._1
1590- let ez = hN._2
1591- let gW = eN(eH, ez)
1592- if ((gW == gW))
1593- then ((gN ++ dM) ++ gL)
1573+ let hL = eI(-(dK), -(dL), 0)
1574+ let gJ = hL._1
1575+ let ez = hL._2
1576+ let gU = eN(eH, ez)
1577+ if ((gU == gU))
1578+ then ((gL ++ dM) ++ gJ)
15941579 else throw("Strict value is not equal to itself.")
15951580 }
15961581 else throw("Strict value is not equal to itself.")
15971582 }
15981583 else throw("Strict value is not equal to itself.")
15991584 }
16001585 else throw("Strict value is not equal to itself.")
16011586 }
16021587 else throw("Strict value is not equal to itself.")
16031588 }
16041589 else throw("Strict value is not equal to itself.")
16051590 }
16061591
16071592
16081593
16091594 @Callable(fb)
1610-func activate (hO,hP) = if ((toString(fb.caller) != toString(bd)))
1595+func activate (hM,hN) = if ((toString(fb.caller) != toString(bd)))
16111596 then throw("permissions denied")
1612- else $Tuple2([StringEntry(ae(), hO), StringEntry(af(), hP)], "success")
1597+ else $Tuple2([StringEntry(ae(), hM), StringEntry(af(), hN)], "success")
16131598
16141599
16151600
16161601 @Callable(fb)
16171602 func refreshKLp () = {
1618- let hQ = valueOrElse(getInteger(ak), 0)
1619- let hR = if (((height - hQ) >= an))
1603+ let hO = valueOrElse(getInteger(ak), 0)
1604+ let hP = if (((height - hO) >= an))
16201605 then unit
16211606 else ba(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1622- if ((hR == hR))
1607+ if ((hP == hP))
16231608 then {
16241609 let eU = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), bc("invalid kLp"))
1625- let hS = eI(0, 0, 0)
1626- let hT = hS._1
1627- let ez = hS._2
1610+ let hQ = eI(0, 0, 0)
1611+ let hR = hQ._1
1612+ let ez = hQ._2
16281613 let eL = if ((eU != ez))
1629- then hT
1614+ then hR
16301615 else ba("nothing to refresh")
16311616 $Tuple2(eL, toString(ez))
16321617 }
16331618 else throw("Strict value is not equal to itself.")
16341619 }
16351620
16361621
16371622
16381623 @Callable(fb)
16391624 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bk())
16401625
16411626
16421627
16431628 @Callable(fb)
16441629 func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bT(ap))
16451630
16461631
16471632
16481633 @Callable(fb)
16491634 func calcPricesWrapperREADONLY (dc,dd,dh) = {
16501635 let dq = dg(dc, dd, dh)
16511636 $Tuple2(nil, [toString(dq[0]), toString(dq[1]), toString(dq[2])])
16521637 }
16531638
16541639
16551640
16561641 @Callable(fb)
16571642 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
16581643
16591644
16601645
16611646 @Callable(fb)
16621647 func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
16631648
16641649
16651650
16661651 @Callable(fb)
16671652 func calcPriceBigIntWrapperREADONLY (bX,bY) = $Tuple2(nil, toString(bW(parseBigIntValue(bX), parseBigIntValue(bY))))
16681653
16691654
16701655
16711656 @Callable(fb)
16721657 func estimatePutOperationWrapperREADONLY (ds,dO,dP,dQ,dR,dS,ab,dT,dU) = $Tuple2(nil, dN(ds, dO, dP, dQ, dR, dS, ab, dT, dU))
16731658
16741659
16751660
16761661 @Callable(fb)
16771662 func estimateGetOperationWrapperREADONLY (ds,dt,du,ab) = {
16781663 let ee = dr(ds, dt, du, addressFromStringValue(ab))
16791664 $Tuple2(nil, $Tuple10(ee._1, ee._2, ee._3, ee._4, ee._5, ee._6, ee._7, toString(ee._8), ee._9, ee._10))
16801665 }
16811666
16821667
16831668
16841669 @Callable(fb)
16851670 func statsREADONLY () = {
16861671 let di = bk()
16871672 let dv = fromBase58String(di[q])
1688- let hU = di[r]
1689- let hV = di[s]
1673+ let hS = di[r]
1674+ let hT = di[s]
16901675 let dX = di[v]
16911676 let dY = di[w]
16921677 let dj = parseIntValue(di[t])
16931678 let dk = parseIntValue(di[u])
1694- let hW = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1695- let hX = bT(hU)
1696- let hY = bT(hV)
1697- let hZ = if ((hW == 0))
1679+ let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1680+ let hV = bT(hS)
1681+ let hW = bT(hT)
1682+ let hX = if ((hU == 0))
16981683 then [e, e, e]
1699- else dg(hX, hY, hW)
1684+ else dg(hV, hW, hU)
17001685 let dF = 0
1701- let ia = H(hZ[1], b)
1702- let ib = H(hZ[2], b)
1703- let ic = value(getInteger(bd, aD(toString(this))))
1704- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hX), toString(hY), toString(hW), toString(dF), toString(ia), toString(ib), toString(ic)], j))
1686+ let hY = H(hX[1], b)
1687+ let hZ = H(hX[2], b)
1688+ let ia = value(getInteger(bd, aD(toString(this))))
1689+ $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))
17051690 }
17061691
17071692
17081693
17091694 @Callable(fb)
17101695 func evaluatePutByAmountAssetREADONLY (dP) = {
17111696 let di = bk()
17121697 let dv = fromBase58String(di[q])
17131698 let dV = di[r]
17141699 let dw = fromBase58String(dV)
17151700 let dW = di[s]
17161701 let dx = fromBase58String(dW)
17171702 let dj = parseIntValue(di[t])
17181703 let dk = parseIntValue(di[u])
17191704 let dy = di[p]
1720- let hW = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1721- let hX = bT(dV)
1722- let hY = bT(dW)
1723- let de = D(hX, dj)
1724- let df = D(hY, dk)
1725- let dE = if ((hW == 0))
1705+ let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1706+ let hV = bT(dV)
1707+ let hW = bT(dW)
1708+ let de = D(hV, dj)
1709+ let df = D(hW, dk)
1710+ let dE = if ((hU == 0))
17261711 then e
17271712 else bW(df, de)
17281713 let eb = D(dP, dj)
17291714 let ec = fraction(eb, dE, d)
17301715 let dR = H(ec, dk)
17311716 let fh = dN("", 500000, dP, dw, dR, dx, "", true, false)
17321717 let em = fh._1
1733- let id = fh._3
1718+ let ib = fh._3
17341719 let dA = fh._4
17351720 let dC = fh._5
17361721 let dz = fh._6
17371722 $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))
17381723 }
17391724
17401725
17411726
17421727 @Callable(fb)
17431728 func evaluatePutByPriceAssetREADONLY (dR) = {
17441729 let di = bk()
17451730 let dv = fromBase58String(di[q])
17461731 let dV = di[r]
17471732 let dw = fromBase58String(dV)
17481733 let dW = di[s]
17491734 let dx = fromBase58String(dW)
17501735 let dj = parseIntValue(di[t])
17511736 let dk = parseIntValue(di[u])
17521737 let dy = di[p]
1753- let hW = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1754- let ie = bT(dV)
1755- let if = bT(dW)
1756- let ig = D(ie, dj)
1757- let ih = D(if, dk)
1758- let dE = if ((hW == 0))
1738+ let hU = valueOrErrorMessage(assetInfo(dv), (("Asset " + toBase58String(dv)) + " doesn't exist")).quantity
1739+ let ic = bT(dV)
1740+ let id = bT(dW)
1741+ let ie = D(ic, dj)
1742+ let if = D(id, dk)
1743+ let dE = if ((hU == 0))
17591744 then e
1760- else bW(ih, ig)
1745+ else bW(if, ie)
17611746 let ec = D(dR, dk)
17621747 let eb = fraction(ec, d, dE)
17631748 let dP = H(eb, dj)
17641749 let fh = dN("", 500000, dP, dw, dR, dx, "", true, false)
17651750 let em = fh._1
1766- let id = fh._3
1751+ let ib = fh._3
17671752 let dA = fh._4
17681753 let dC = fh._5
17691754 let dz = fh._6
17701755 $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))
17711756 }
17721757
17731758
17741759
17751760 @Callable(fb)
1776-func evaluateGetREADONLY (ii,ij) = {
1777- let ee = dr("", ii, ij, this)
1761+func evaluateGetREADONLY (ig,ih) = {
1762+ let ee = dr("", ig, ih, this)
17781763 let dK = ee._1
17791764 let dL = ee._2
17801765 let dA = ee._5
17811766 let dC = ee._6
17821767 let dz = ee._7
17831768 let dF = ee._8
17841769 let dy = parseIntValue(ee._9)
17851770 $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))
17861771 }
17871772
17881773
1789-@Verifier(ik)
1790-func il () = {
1791- let im = {
1774+@Verifier(ii)
1775+func ij () = {
1776+ let ik = {
17921777 let aQ = gn()
17931778 if ($isInstanceOf(aQ, "ByteVector"))
17941779 then {
17951780 let gq = aQ
17961781 gq
17971782 }
17981783 else if ($isInstanceOf(aQ, "Unit"))
1799- then ik.senderPublicKey
1784+ then ii.senderPublicKey
18001785 else throw("Match error")
18011786 }
1802- let aQ = ik
1787+ let aQ = ii
18031788 if ($isInstanceOf(aQ, "Order"))
18041789 then {
18051790 let eQ = aQ
1806- let in = bj()
1807- let io = if (eM())
1791+ let il = bj()
1792+ let im = if (eM())
18081793 then $Tuple2(true, "")
18091794 else eP(eQ)
1810- let aK = io._1
1811- let aL = io._2
1795+ let aK = im._1
1796+ let aL = im._2
18121797 let aM = sigVerify(eQ.bodyBytes, eQ.proofs[0], eQ.senderPublicKey)
1813- let aN = sigVerify(eQ.bodyBytes, eQ.proofs[1], in)
1798+ let aN = sigVerify(eQ.bodyBytes, eQ.proofs[1], il)
18141799 if (if (if (aK)
18151800 then aM
18161801 else false)
18171802 then aN
18181803 else false)
18191804 then true
18201805 else aJ(aK, aL, aM, aN)
18211806 }
18221807 else if ($isInstanceOf(aQ, "SetScriptTransaction"))
18231808 then {
18241809 let aV = aQ
1825- if (sigVerify(ik.bodyBytes, ik.proofs[0], im))
1810+ if (sigVerify(ii.bodyBytes, ii.proofs[0], ik))
18261811 then true
18271812 else {
1828- let ip = blake2b256(value(aV.script))
1829- let iq = fromBase64String(value(getString(bd, aF())))
1830- let ir = scriptHash(this)
1831- if ((iq == ip))
1832- then (ir != ip)
1813+ let in = blake2b256(value(aV.script))
1814+ let io = fromBase64String(value(getString(bd, aF())))
1815+ let ip = scriptHash(this)
1816+ if ((io == in))
1817+ then (ip != in)
18331818 else false
18341819 }
18351820 }
1836- else sigVerify(ik.bodyBytes, ik.proofs[0], im)
1821+ else sigVerify(ii.bodyBytes, ii.proofs[0], ik)
18371822 }
18381823

github/deemru/w8io/169f3d6 
344.59 ms