tx · GS3GMGky4X7L4x98cNok774zUZW19WjBZVnkvvDYxUKU

3N45khsjRq7bYfsvbxX1YBURhNRBBDRFNYV:  -0.03100000 Waves

2022.11.28 11:55 [2336739] smart account 3N45khsjRq7bYfsvbxX1YBURhNRBBDRFNYV > SELF 0.00000000 Waves

{ "type": 13, "id": "GS3GMGky4X7L4x98cNok774zUZW19WjBZVnkvvDYxUKU", "fee": 3100000, "feeAssetId": null, "timestamp": 1669625674991, "version": 1, "sender": "3N45khsjRq7bYfsvbxX1YBURhNRBBDRFNYV", "senderPublicKey": "9QeKzbcXevL66Vm5v2GCmySfZ86o8jcD5y7pPmfRcRYE", "proofs": [ "2oo5TbV9BvCJnjcfHSnqcojRH5Tja1HuSNhMiYH1vjYTyhJrxDvc9j8edDopuFVfRhc7rGNb29ZUnUYPAwRZ2gsG" ], "script": "base64:BgLIKQgCEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAggBEgQKAggBEgQKAggBEgUKAwEIARIAEgQKAgEBEgMKAQESBQoDAQEBEgQKAggIEgASABIDCgEIEgUKAwEBARIECgIBARIECgIIARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAEgMKAQESAwoBARIECgIIASIKbFBkZWNpbWFscyIGc2NhbGU4IgxzY2FsZThCaWdJbnQiB3NjYWxlMTgiCnplcm9CaWdJbnQiBGJpZzAiBGJpZzEiBGJpZzIiC3dhdmVzU3RyaW5nIgNTRVAiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIg5pZHhQb29sQWRkcmVzcyINaWR4UG9vbFN0YXR1cyIQaWR4UG9vbExQQXNzZXRJZCINaWR4QW10QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIg5pZHhBbXRBc3NldERjbSIQaWR4UHJpY2VBc3NldERjbSIOaWR4SUFtdEFzc2V0SWQiEGlkeElQcmljZUFzc2V0SWQiDWlkeExQQXNzZXREY20iEmlkeFBvb2xBbXRBc3NldEFtdCIUaWR4UG9vbFByaWNlQXNzZXRBbXQiEWlkeFBvb2xMUEFzc2V0QW10IhlpZHhGYWN0b3J5U3Rha2luZ0NvbnRyYWN0IhppZHhGYWN0b3J5U2xpcHBhZ2VDb250cmFjdCIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiB2Zyb21YMTgiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0Igd0b1NjYWxlIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIglhYnNCaWdJbnQiAmZjIgNtcGsiBHBtcGsiAnBsIgJwaCIBaCIJdGltZXN0YW1wIgNwYXUiC3VzZXJBZGRyZXNzIgR0eElkIgNnYXUiAmFhIgJwYSIGa2V5RmVlIgpmZWVEZWZhdWx0IgNmZWUiBmtleUtMcCIVa2V5S0xwUmVmcmVzaGVkSGVpZ2h0IhJrZXlLTHBSZWZyZXNoRGVsYXkiFmtMcFJlZnJlc2hEZWxheURlZmF1bHQiD2tMcFJlZnJlc2hEZWxheSIQa2V5RmFjdG9yeUNvbmZpZyINa2V5TWF0Y2hlclB1YiIpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMiE3Bvb2xDb250cmFjdEFkZHJlc3MiDWtleVBvb2xDb25maWciCWlBbXRBc3NldCILaVByaWNlQXNzZXQiH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQiDGJhc2VBc3NldFN0ciITa2V5QWxsUG9vbHNTaHV0ZG93biINa2V5UG9vbFdlaWdodCIPY29udHJhY3RBZGRyZXNzIhZrZXlBbGxvd2VkTHBTY3JpcHRIYXNoIhZrZXlGZWVDb2xsZWN0b3JBZGRyZXNzIg90aHJvd09yZGVyRXJyb3IiCm9yZGVyVmFsaWQiC3NlbmRlclZhbGlkIgxtYXRjaGVyVmFsaWQiD2dldFN0cmluZ09yRmFpbCIHYWRkcmVzcyIDa2V5IgxnZXRJbnRPckZhaWwiCHRocm93RXJyIgNtc2ciBmZtdEVyciIPZmFjdG9yeUNvbnRyYWN0IhNmZWVDb2xsZWN0b3JBZGRyZXNzIhBpc0dsb2JhbFNodXRkb3duIhNnZXRNYXRjaGVyUHViT3JGYWlsIg1nZXRQb29sQ29uZmlnIghhbXRBc3NldCIKcHJpY2VBc3NldCIMcGFyc2VBc3NldElkIgVpbnB1dCIPYXNzZXRJZFRvU3RyaW5nIg9wYXJzZVBvb2xDb25maWciCnBvb2xDb25maWciEHBvb2xDb25maWdQYXJzZWQiCyR0MDc5MTU4MDgxIg5jZmdQb29sQWRkcmVzcyINY2ZnUG9vbFN0YXR1cyIMY2ZnTHBBc3NldElkIhBjZmdBbW91bnRBc3NldElkIg9jZmdQcmljZUFzc2V0SWQiFmNmZ0Ftb3VudEFzc2V0RGVjaW1hbHMiFWNmZ1ByaWNlQXNzZXREZWNpbWFscyIQZ2V0RmFjdG9yeUNvbmZpZyIPc3Rha2luZ0NvbnRyYWN0IhBzbGlwcGFnZUNvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiHXNsaXBwYWdlVG9sZXJhbmNlUGFzc2VkQnlVc2VyIhVzbGlwcGFnZVRvbGVyYW5jZVJlYWwiCHR4SGVpZ2h0Igt0eFRpbWVzdGFtcCISc2xpcGFnZUFtdEFzc2V0QW10IhRzbGlwYWdlUHJpY2VBc3NldEFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIg9jYWxjUHJpY2VCaWdJbnQiCHByQW10WDE4IghhbUFtdFgxOCIQcHJpdmF0ZUNhbGNQcmljZSIKYW1Bc3NldERjbSIKcHJBc3NldERjbSIFYW1BbXQiBXByQW10Ig5hbXRBc3NldEFtdFgxOCIQcHJpY2VBc3NldEFtdFgxOCIKY2FsY1ByaWNlcyIFbHBBbXQiA2NmZyILYW10QXNzZXREY20iDXByaWNlQXNzZXREY20iCHByaWNlWDE4IghscEFtdFgxOCITbHBQcmljZUluQW1Bc3NldFgxOCITbHBQcmljZUluUHJBc3NldFgxOCIPY2FsY3VsYXRlUHJpY2VzIgZwcmljZXMiFGVzdGltYXRlR2V0T3BlcmF0aW9uIgZ0eElkNTgiCnBtdEFzc2V0SWQiCHBtdExwQW10IglscEFzc2V0SWQiCWFtQXNzZXRJZCIJcHJBc3NldElkIgpwb29sU3RhdHVzIgpscEVtaXNzaW9uIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiDWxwRW1pc3Npb25YMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIUZXN0aW1hdGVQdXRPcGVyYXRpb24iEXNsaXBwYWdlVG9sZXJhbmNlIgxpbkFtQXNzZXRBbXQiC2luQW1Bc3NldElkIgxpblByQXNzZXRBbXQiC2luUHJBc3NldElkIgppc0V2YWx1YXRlIgZlbWl0THAiDGFtQXNzZXRJZFN0ciIMcHJBc3NldElkU3RyIgtpQW10QXNzZXRJZCINaVByaWNlQXNzZXRJZCIOaW5BbUFzc2V0SWRTdHIiDmluUHJBc3NldElkU3RyIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgNyZXMiC3NsaXBwYWdlWDE4IhRzbGlwcGFnZVRvbGVyYW5jZVgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiILY29tbW9uU3RhdGUiG3ZhbGlkYXRlTWF0Y2hlck9yZGVyQWxsb3dlZCIFb3JkZXIiCmFtdEFzc2V0SWQiDHByaWNlQXNzZXRJZCISYWNjQW10QXNzZXRCYWxhbmNlIhRhY2NQcmljZUFzc2V0QmFsYW5jZSINb3JkZXJBbXRBc3NldCIQb3JkZXJBbXRBc3NldFN0ciIPb3JkZXJQcmljZUFzc2V0IhJvcmRlclByaWNlQXNzZXRTdHIiCm9yZGVyUHJpY2UiCHByaWNlRGNtIhBjYXN0ZWRPcmRlclByaWNlIhFpc09yZGVyUHJpY2VWYWxpZCIJY29tbW9uR2V0IgFpIgNwbXQiBnBtdEFtdCIJY29tbW9uUHV0IgphbUFzc2V0UG10IgpwckFzc2V0UG10IgZlc3RQdXQiBGVtaXQiBmFtb3VudCIHZW1pdEludiINZW1pdEludkxlZ2FjeSIHJG1hdGNoMCIVbGVnYWN5RmFjdG9yeUNvbnRyYWN0Igd0YWtlRmVlIglmZWVBbW91bnQiD2NhbGNQdXRPbmVUb2tlbiIQcGF5bWVudEFtb3VudFJhdyIOcGF5bWVudEFzc2V0SWQiBmlzRXZhbCIQYW1vdW50QmFsYW5jZVJhdyIPcHJpY2VCYWxhbmNlUmF3IhRwYXltZW50SW5BbW91bnRBc3NldCINJHQwMjI5NDIyMzIzNSIQYW1vdW50QmFsYW5jZU9sZCIPcHJpY2VCYWxhbmNlT2xkIg0kdDAyMzIzOTIzMzg4IhRhbW91bnRBc3NldEFtb3VudFJhdyITcHJpY2VBc3NldEFtb3VudFJhdyIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDIzNTEwMjM1NjkiDXBheW1lbnRBbW91bnQiEGFtb3VudEJhbGFuY2VOZXciD3ByaWNlQmFsYW5jZU5ldyILcHJpY2VOZXdYMTgiCHByaWNlTmV3Ig5wYXltZW50QmFsYW5jZSIUcGF5bWVudEJhbGFuY2VCaWdJbnQiDHN1cHBseUJpZ0ludCILY2hlY2hTdXBwbHkiDWRlcG9zaXRCaWdJbnQiC2lzc3VlQW1vdW50IgtwcmljZU9sZFgxOCIIcHJpY2VPbGQiBGxvc3MiDSR0MDI1MDQ2MjUyMTMiB2JhbGFuY2UiD2lzc3VlQW1vdW50Qm90aCIPY2FsY0dldE9uZVRva2VuIgpvdXRBc3NldElkIgZjaGVja3MiEG91dEluQW1vdW50QXNzZXQiDWJhbGFuY2VCaWdJbnQiDGFtQmFsYW5jZU9sZCIMcHJCYWxhbmNlT2xkIgpvdXRCYWxhbmNlIhBvdXRCYWxhbmNlQmlnSW50Ig5yZWRlZW1lZEJpZ0ludCIJYW1vdW50UmF3Ig0kdDAyNjc5MzI2ODQzIgt0b3RhbEFtb3VudCINJHQwMjY4NDcyNzA3MyILb3V0QW1BbW91bnQiC291dFByQW1vdW50IgxhbUJhbGFuY2VOZXciDHByQmFsYW5jZU5ldyIYYW1vdW50Qm90aEluUGF5bWVudEFzc2V0IgdjYWxjS0xwIg1hbW91bnRCYWxhbmNlIgxwcmljZUJhbGFuY2UiCnVwZGF0ZWRLTHAiEnJlZnJlc2hLTHBJbnRlcm5hbCISYW1vdW50QXNzZXRCYWxhbmNlIhFwcmljZUFzc2V0QmFsYW5jZSIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIBcyIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiCWlzTWFuYWdlciICcGsiC211c3RNYW5hZ2VyIgJwZCIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiC2NoZWNrQ2FsbGVyIhVjaGVja01hbmFnZXJQdWJsaWNLZXkiAnBtIgVoYXNQTSIHY2hlY2tQTSIPc2hvdWxkQXV0b1N0YWtlIgRhbUlkIgRwcklkIgxzbGlwcGFnZUFJbnYiDHNsaXBwYWdlUEludiIKbHBUcmFuc2ZlciILc2xwU3Rha2VJbnYiC21heFNsaXBwYWdlIgxtaW5PdXRBbW91bnQiCWF1dG9TdGFrZSIgaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiAUAiDWlzUHV0RGlzYWJsZWQiB3BheW1lbnQiDSR0MDMyNjAxMzI3MjgiE2VtaXRBbW91bnRFc3RpbWF0ZWQiBWJvbnVzIgplbWl0QW1vdW50IghzdGFrZUludiIHc2VuZEZlZSINJHQwMzM0NTczMzU5MiINb3V0QXNzZXRJZFN0ciINaXNHZXREaXNhYmxlZCINJHQwMzQzOTczNDUyOSIPYW1vdW50RXN0aW1hdGVkIgdidXJuSW52Ig1hc3NldFRyYW5zZmVyIg0kdDAzNTE2NDM1MzAyIg11bnN0YWtlQW1vdW50Igp1bnN0YWtlSW52Ig0kdDAzNjEyNzM2MjU3IglvdXRBbXRBbXQiFGJ1cm5MUEFzc2V0T25GYWN0b3J5IhJub0xlc3NUaGVuQW10QXNzZXQiFG5vTGVzc1RoZW5QcmljZUFzc2V0Ig1jaGVja1BheW1lbnRzIg9jaGVja1Bvb2xTdGF0dXMiFW5vTGVzc1RoZW5BbW91bnRBc3NldCIMY2hlY2tBbW91bnRzIgthbXRBc3NldFN0ciINcHJpY2VBc3NldFN0ciIYbGFzdFJlZnJlc2hlZEJsb2NrSGVpZ2h0Ih1jaGVja0xhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCINcG9vbExQQmFsYW5jZSIKcHJpY2VzTGlzdCIPbHBBbXRBc3NldFNoYXJlIhFscFByaWNlQXNzZXRTaGFyZSIKcG9vbFdlaWdodCIMY3VyUHJpY2VDYWxjIgxhbUJhbGFuY2VSYXciDHByQmFsYW5jZVJhdyIPYW1CYWxhbmNlUmF3WDE4Ig9wckJhbGFuY2VSYXdYMTgiEHBheW1lbnRMcEFzc2V0SWQiDHBheW1lbnRMcEFtdCICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5IgptYXRjaGVyUHViIgduZXdIYXNoIgthbGxvd2VkSGFzaCILY3VycmVudEhhc2hrAAFhAAgAAWIAgMLXLwABYwkAtgIBAIDC1y8AAWQJALYCAQCAgJC7utat8A0AAWUJALYCAQAAAAFmCQC2AgEAAAABZwkAtgIBAAEAAWgJALYCAQACAAFpAgVXQVZFUwABagICX18AAWsAAQABbAACAAFtAAMAAW4ABAABbwABAAFwAAIAAXEAAwABcgAEAAFzAAUAAXQABgABdQAHAAF2AAgAAXcACQABeAAKAAF5AAEAAXoAAgABQQADAAFCAAEAAUMABwEBRAIBRQFGCQC8AgMJALYCAQUBRQUBZAkAtgIBBQFGAQFHAgFIAUkJAKADAQkAvAIDBQFICQC2AgEFAUkFAWQBAUoDAUsBTAFNCQBrAwUBSwUBTAUBTQEBTgEBSAMJAGYCAAAFAUgJAQEtAQUBSAUBSAEBTwEBSAMJAL8CAgUBZQUBSAkAvgIBBQFIBQFIAQFQAAITJXNfX2ZhY3RvcnlDb250cmFjdAEBUQACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFSAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQFTAAIRJXMlc19fcHJpY2VfX2xhc3QBAVQCAVUBVgkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAVUJAMwIAgkApAMBBQFWBQNuaWwFAWoBAVcCAVgBWQkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAVgCAl9fBQFZAQFaAgFYAVkJAKwCAgkArAICCQCsAgICCyVzJXMlc19fR19fBQFYAgJfXwUBWQECYWEAAg8lc19fYW1vdW50QXNzZXQBAmFiAAIOJXNfX3ByaWNlQXNzZXQAAmFjAgclc19fZmVlAAJhZAkAawMACgUBYgCQTgACYWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWMFAmFkAAJhZgkAuQkCCQDMCAICAiVzCQDMCAICA2tMcAUDbmlsBQFqAAJhZwkAuQkCCQDMCAICAiVzCQDMCAICEmtMcFJlZnJlc2hlZEhlaWdodAUDbmlsBQFqAAJhaAkAuQkCCQDMCAICAiVzCQDMCAICD3JlZnJlc2hLTHBEZWxheQUDbmlsBQFqAAJhaQAeAAJhagkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhaAUCYWkBAmFrAAIRJXNfX2ZhY3RvcnlDb25maWcBAmFsAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhbQECYW4JAKwCAgkArAICAgglcyVzJXNfXwUCYW4CIF9fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJMcEFzc2V0AQJhbwICYXACYXEJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFwAgJfXwUCYXECCF9fY29uZmlnAQJhcgECYXMJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYXMBAmF0AAIMJXNfX3NodXRkb3duAQJhdQECYXYJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQJhdgECYXcAAhclc19fYWxsb3dlZExwU2NyaXB0SGFzaAACYXgCFyVzX19mZWVDb2xsZWN0b3JBZGRyZXNzAQJheQMCYXoCYUECYUIJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIkb3JkZXIgdmFsaWRhdGlvbiBmYWlsZWQ6IG9yZGVyVmFsaWQ9CQClAwEFAmF6Ag0gc2VuZGVyVmFsaWQ9CQClAwEFAmFBAg4gbWF0Y2hlclZhbGlkPQkApQMBBQJhQgECYUMCAmFEAmFFCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYUQFAmFFCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFECQDMCAICAS4JAMwIAgUCYUUJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYUYCAmFEAmFFCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUCYUQFAmFFCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFECQDMCAICAS4JAMwIAgUCYUUJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYUcBAmFICQACAQkAuQkCCQDMCAICCGxwLnJpZGU6CQDMCAIFAmFIBQNuaWwCASABAmFJAQJhSAkAuQkCCQDMCAICCGxwLnJpZGU6CQDMCAIFAmFIBQNuaWwCASAAAmFKCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYUMCBQR0aGlzCQEBUAAAAmFLCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYUMCBQJhSgUCYXgBAmFMAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJhSgkBAmF0AAcBAmFNAAkA2QQBCQECYUMCBQJhSgkBAmFsAAECYU4ABAJhTwkBAmFDAgUEdGhpcwkBAmFhAAQCYVAJAQJhQwIFBHRoaXMJAQJhYgAEAmFxCQECYUYCBQJhSgkBAmFyAQUCYVAEAmFwCQECYUYCBQJhSgkBAmFyAQUCYU8JALUJAgkBAmFDAgUCYUoJAQJhbwIJAKQDAQUCYXAJAKQDAQUCYXEFAWoBAmFRAQJhUgMJAAACBQJhUgUBaQUEdW5pdAkA2QQBBQJhUgECYVMBAmFSAwkAAAIFAmFSBQR1bml0BQFpCQDYBAEJAQV2YWx1ZQEFAmFSAQJhVAECYVUJAJkKBwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhVQUBbwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFVBQFwCQDZBAEJAJEDAgUCYVUFAXEJAQJhUQEJAJEDAgUCYVUFAXIJAQJhUQEJAJEDAgUCYVUFAXMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhVQUBdAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFVBQF1AAJhVgkBAmFUAQkBAmFOAAACYVcFAmFWAAJhWAgFAmFXAl8xAAJhWQgFAmFXAl8yAAJhWggFAmFXAl8zAAJiYQgFAmFXAl80AAJiYggFAmFXAl81AAJiYwgFAmFXAl82AAJiZAgFAmFXAl83AQJiZQAJALUJAgkBAmFDAgUCYUoJAQJhawAFAWoAAmJmCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCCQECYmUABQFCAhlpbmNvcnJlY3Qgc3Rha2luZyBhZGRyZXNzAAJiZwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmJlAAUBQwIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwECYmgKAmJpAmJqAmJrAmJsAmJtAmJuAmJvAmJwAmJxAmJyCQC5CQIJAMwIAgIUJWQlZCVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJiaQkAzAgCCQCkAwEFAmJqCQDMCAIJAKQDAQUCYmsJAMwIAgkApAMBBQJibAkAzAgCCQCkAwEFAmJtCQDMCAIJAKQDAQUCYm4JAMwIAgkApAMBBQJibwkAzAgCCQCkAwEFAmJwCQDMCAIJAKQDAQUCYnEJAMwIAgkApAMBBQJicgUDbmlsBQFqAQJicwYCYnQCYnUCYnYCYmwCYm8CYnAJALkJAgkAzAgCAgwlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJidAkAzAgCCQCkAwEFAmJ1CQDMCAIJAKQDAQUCYnYJAMwIAgkApAMBBQJibAkAzAgCCQCkAwEFAmJvCQDMCAIJAKQDAQUCYnAFA25pbAUBagECYncBAmJ4AwkAAAIFAmJ4AgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQJieAECYnkCAmJ6AmJBCQC8AgMFAmJ6BQFkBQJiQQECYkIEAmJDAmJEAmJFAmJGBAJiRwkBAUQCBQJiRQUCYkMEAmJICQEBRAIFAmJGBQJiRAkBAmJ5AgUCYkgFAmJHAQJiSQMCYkUCYkYCYkoEAmJLCQECYU4ABAJiTAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJLBQF0BAJiTQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJLBQF1BAJiTgkBAmJCBAUCYkwFAmJNBQJiRQUCYkYEAmJBCQEBRAIFAmJFBQJiTAQCYnoJAQFEAgUCYkYFAmJNBAJiTwkBAUQCBQJiSgUBYgQCYlAJAQJieQIFAmJBBQJiTwQCYlEJAQJieQIFAmJ6BQJiTwkAzAgCBQJiTgkAzAgCBQJiUAkAzAgCBQJiUQUDbmlsAQJiUgMCYkUCYkYCYkoEAmJTCQECYkkDBQJiRQUCYkYFAmJKCQDMCAIJAQFHAgkAkQMCBQJiUwAABQFiCQDMCAIJAQFHAgkAkQMCBQJiUwABBQFiCQDMCAIJAQFHAgkAkQMCBQJiUwACBQFiBQNuaWwBAmJUBAJiVQJiVgJiVwFYBAJiSwkBAmFOAAQCYlgJAJEDAgUCYksFAXEEAmJZCQCRAwIFAmJLBQFyBAJiWgkAkQMCBQJiSwUBcwQCYkMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiSwUBdAQCYkQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiSwUBdQQCY2EJAJEDAgUCYksFAXAEAmNiCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEJANkEAQUCYlgJAKwCAgkArAICAgZBc3NldCAFAmJYAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQMJAQIhPQIFAmJYBQJiVgkAAgECFUludmFsaWQgYXNzZXQgcGFzc2VkLgQCY2MJAQJidwEFAmJZBAJjZAkBAUQCBQJjYwUCYkMEAmNlCQECYncBBQJiWgQCY2YJAQFEAgUCY2UFAmJEBAJjZwkBAmJ5AgUCY2YFAmNkBAJjaAkBAUcCBQJjZwUBYgQCY2kJAQFEAgUCYlcFAWIEAmNqCQEBRAIFAmNiBQFiBAJjawkAvAIDBQJjZAUCY2kFAmNqBAJjbAkAvAIDBQJjZgUCY2kFAmNqBAJjbQkBAUcCBQJjawUCYkMEAmNuCQEBRwIFAmNsBQJiRAQCY28DCQAAAgUCYlUCAAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAVgFAmNtAwkAAAIFAmJZAgVXQVZFUwUEdW5pdAkA2QQBBQJiWQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQFYBQJjbgMJAAACBQJiWgIFV0FWRVMFBHVuaXQJANkEAQUCYloJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVoCCQClCAEFAVgFAmJVCQECYnMGBQJjbQUCY24FAmJXBQJjaAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVMABQJjaAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVQCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjaAUDbmlsCQCcCgoFAmNtBQJjbgUCYlkFAmJaBQJjYwUCY2UFAmNiBQJjZwUCY2EFAmNvAQJjcAkCYlUCY3ECY3ICY3MCY3QCY3UBWAJjdgJjdwQCYksJAQJhTgAEAmJYCQDZBAEJAJEDAgUCYksFAXEEAmN4CQCRAwIFAmJLBQFyBAJjeQkAkQMCBQJiSwUBcwQCY3oJAJEDAgUCYksFAXYEAmNBCQCRAwIFAmJLBQF3BAJiTAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJLBQF0BAJiTQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJLBQF1BAJjYQkAkQMCBQJiSwUBcAQCY2IICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYlgJAKwCAgkArAICAgZBc3NldCAJANgEAQUCYlgCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJjQgkA2AQBCQELdmFsdWVPckVsc2UCBQJjcwkA2QQBAgVXQVZFUwQCY0MJANgEAQkBC3ZhbHVlT3JFbHNlAgUCY3UJANkEAQIFV0FWRVMDAwkBAiE9AgUCY3gFAmNCBgkBAiE9AgUCY3kFAmNDCQACAQIiSW52YWxpZCBhbXQgb3IgcHJpY2UgYXNzZXQgcGFzc2VkLgQCY2MDBQJjdgkBAmJ3AQUCY3gJAGUCCQECYncBBQJjeAUCY3IEAmNlAwUCY3YJAQJidwEFAmN5CQBlAgkBAmJ3AQUCY3kFAmN0BAJjRAkBAUQCBQJjcgUCYkwEAmNFCQEBRAIFAmN0BQJiTQQCY0YJAQJieQIFAmNFBQJjRAQCY2QJAQFEAgUCY2MFAmJMBAJjZgkBAUQCBQJjZQUCYk0EAmNHAwkAAAIFAmNiAAAEAmNnBQFlBAJjSAUBZQQCYk8JAHYGCQC5AgIFAmNEBQJjRQAACQC2AgEABQABAAAFBERPV04JAJcKBQkBAUcCBQJiTwUBYgkBAUcCBQJjRAUCYkwJAQFHAgUCY0UFAmJNCQECYnkCCQC3AgIFAmNmBQJjRQkAtwICBQJjZAUCY0QFAmNIBAJjZwkBAmJ5AgUCY2YFAmNkBAJjSAkAvAIDCQEBTwEJALgCAgUCY2cFAmNGBQFkBQJjZwQCY0kJAQFEAgUCY3EFAWIDAwkBAiE9AgUCY2cFAWUJAL8CAgUCY0gFAmNJBwkAAgEJAKwCAgkArAICCQCsAgICD1ByaWNlIHNsaXBwYWdlIAkApgMBBQJjSAIeIGV4Y2VlZGVkIHRoZSBwYXNzZWQgbGltaXQgb2YgCQCmAwEFAmNJBAJjagkBAUQCBQJjYgUBYgQCY0oJALwCAwUCY0QFAmNnBQFkBAJjSwkAvAIDBQJjRQUBZAUCY2cEAmNMAwkAvwICBQJjSgUCY0UJAJQKAgUCY0sFAmNFCQCUCgIFAmNEBQJjSgQCY00IBQJjTAJfMQQCY04IBQJjTAJfMgQCYk8JALwCAwUCY2oFAmNOBQJjZgkAlwoFCQEBRwIFAmJPBQFiCQEBRwIFAmNNBQJiTAkBAUcCBQJjTgUCYk0FAmNnBQJjSAQCY08IBQJjRwJfMQQCY1AIBQJjRwJfMgQCY1EIBQJjRwJfMwQCY2gJAQFHAggFAmNHAl80BQFiBAJjUgkBAUcCCAUCY0cCXzUFAWIDCQBnAgAABQJjTwkAAgECNkludmFsaWQgY2FsY3VsYXRpb25zLiBMUCBjYWxjdWxhdGVkIGlzIGxlc3MgdGhhbiB6ZXJvLgQCY1MDCQEBIQEFAmN3AAAFAmNPBAJjVAkAZQIFAmNyBQJjUAQCY1UJAGUCBQJjdAUCY1EEAmNWCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUwAFAmNoCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVAIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmNoCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFXAgUBWAUCYlUJAQJiaAoFAmNQBQJjUQUCY1MFAmNoBQJjcQUCY1IFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmNUBQJjVQUDbmlsCQCfCg0FAmNPBQJjUwUCY2gFAmNjBQJjZQUCY2IFAmJYBQJjYQUCY1YFAmNUBQJjVQUCY3MFAmN1AQJjVwECY1gEAmJLCQECYU4ABAJjWQkAkQMCBQJiSwUBcgQCY1oJAJEDAgUCYksFAXMEAmNhCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYksFAXAEAmJMCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYksFAXQEAmJNCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYksFAXUEAmRhCQECYncBBQJjWQQCZGIJAQJidwEFAmNaBAJjZwMJAAACCAUCY1gJb3JkZXJUeXBlBQNCdXkJAQJiQgQFAmJMBQJiTQkAZAIFAmRhCAUCY1gGYW1vdW50BQJkYgkBAmJCBAUCYkwFAmJNCQBlAgUCZGEIBQJjWAZhbW91bnQFAmRiBAJjaAkBAUcCBQJjZwUBYgMDAwkBAmFMAAYJAAACBQJjYQUBbQYJAAACBQJjYQUBbgkAAgECHEV4Y2hhbmdlIG9wZXJhdGlvbnMgZGlzYWJsZWQEAmRjCAgFAmNYCWFzc2V0UGFpcgthbW91bnRBc3NldAQCZGQDCQAAAgUCZGMFBHVuaXQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFAmRjBAJkZQgIBQJjWAlhc3NldFBhaXIKcHJpY2VBc3NldAQCZGYDCQAAAgUCZGUFBHVuaXQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFAmRlAwMJAQIhPQIFAmRkBQJjWQYJAQIhPQIFAmRmBQJjWgkAAgECE1dyb25nIG9yZGVyIGFzc2V0cy4EAmRnCAUCY1gFcHJpY2UEAmRoCQBrAwUBYgUCYk0FAmJMBAJkaQkBAUoDBQJkZwUBYgUCZGgEAmRqAwkAAAIIBQJjWAlvcmRlclR5cGUFA0J1eQkAZwIFAmNoBQJkaQkAZwIFAmRpBQJjaAYBAmRrAQJkbAMJAQIhPQIJAJADAQgFAmRsCHBheW1lbnRzAAEJAAIBAh1leGFjdGx5IDEgcGF5bWVudCBpcyBleHBlY3RlZAQCZG0JAQV2YWx1ZQEJAJEDAggFAmRsCHBheW1lbnRzAAAEAmJWCQEFdmFsdWUBCAUCZG0HYXNzZXRJZAQCZG4IBQJkbQZhbW91bnQEAmNHCQECYlQECQDYBAEIBQJkbA10cmFuc2FjdGlvbklkCQDYBAEFAmJWBQJkbggFAmRsBmNhbGxlcgQCY20IBQJjRwJfMQQCY24IBQJjRwJfMgQCY2EJAQ1wYXJzZUludFZhbHVlAQgFAmNHAl85BAJjbwgFAmNHA18xMAMDCQECYUwABgkAAAIFAmNhBQFuCQACAQkArAICAixHZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJjYQkAlwoFBQJjbQUCY24FAmRuBQJiVgUCY28BAmRvAwJkbAJjcQJjdwMJAQIhPQIJAJADAQgFAmRsCHBheW1lbnRzAAIJAAIBAh9leGFjdGx5IDIgcGF5bWVudHMgYXJlIGV4cGVjdGVkBAJkcAkBBXZhbHVlAQkAkQMCCAUCZGwIcGF5bWVudHMAAAQCZHEJAQV2YWx1ZQEJAJEDAggFAmRsCHBheW1lbnRzAAEEAmRyCQECY3AJCQDYBAEIBQJkbA10cmFuc2FjdGlvbklkBQJjcQgFAmRwBmFtb3VudAgFAmRwB2Fzc2V0SWQIBQJkcQZhbW91bnQIBQJkcQdhc3NldElkCQClCAEIBQJkbAZjYWxsZXIHBQJjdwQCY2EJAQ1wYXJzZUludFZhbHVlAQgFAmRyAl84AwMDCQECYUwABgkAAAIFAmNhBQFsBgkAAAIFAmNhBQFuCQACAQkArAICAixQdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJjYQUCZHIBAmRzAQJkdAQCZHUJAPwHBAUCYUoCBGVtaXQJAMwIAgUCZHQFA25pbAUDbmlsAwkAAAIFAmR1BQJkdQQCZHYEAmR3BQJkdQMJAAECBQJkdwIHQWRkcmVzcwQCZHgFAmR3CQD8BwQFAmR4AgRlbWl0CQDMCAIFAmR0BQNuaWwFA25pbAUEdW5pdAMJAAACBQJkdgUCZHYFAmR0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJkeQECZHQEAmR6CQBrAwUCZHQFAmFlBQFiCQCUCgIJAGUCBQJkdAUCZHoFAmR6AQJkQQQCZEICZEMBWAFZBAJkRAkAAAIFAVkFBHVuaXQEAmRFCQECYncBCQECYVMBBQJiYQQCZEYJAQJidwEJAQJhUwEFAmJiBAJkRwMJAAACBQJkQwUCYmEGAwkAAAIFAmRDBQJiYgcJAQJhRwECDWludmFsaWQgYXNzZXQEAmRIAwUCZEQJAJQKAgUCZEUFAmRGAwUCZEcJAJQKAgkAZQIFAmRFBQJkQgUCZEYJAJQKAgUCZEUJAGUCBQJkRgUCZEIEAmRJCAUCZEgCXzEEAmRKCAUCZEgCXzIEAmRLAwUCZEcJAJQKAgUCZEIAAAkAlAoCAAAFAmRCBAJkTAgFAmRLAl8xBAJkTQgFAmRLAl8yBAJkTggJAQJkeQEFAmRMAl8xBAJkTwgJAQJkeQEFAmRNAl8xBAJkUAkBAmR5AQUCZEIEAmRRCAUCZFACXzEEAmR6CAUCZFACXzIEAmRSCQBkAgUCZEkFAmROBAJkUwkAZAIFAmRKBQJkTwQCZFQJAQJieQIJAQFEAgUCZFMFAmJkCQEBRAIFAmRSBQJiYwQCZFUJAQFHAgUCZFQFAWIEAmRWAwUCZEcFAmRJBQJkSgQCZFcJALYCAQUCZFYEAmRYCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYVoJAKwCAgkArAICAgZhc3NldCAJANgEAQUCYVoCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJkWQMJAL8CAgUCZFgFAWYGCQECYUcBAiJpbml0aWFsIGRlcG9zaXQgcmVxdWlyZXMgYWxsIGNvaW5zAwkAAAIFAmRZBQJkWQQCZFoJALYCAQUCZFEEAmVhCQCWAwEJAMwIAgAACQDMCAIJAKADAQkAugICCQC5AgIFAmRYCQC4AgIJAQpzcXJ0QmlnSW50BAkAtwICBQFkCQC6AgIJALkCAgUCZFoFAWQFAmRXABIAEgUERE9XTgUBZAUBZAUDbmlsBAJjVgMFAmREBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFTAAUCZFUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFUAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZFUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVcCCQClCAEJAQV2YWx1ZQEFAVgJANgEAQkBBXZhbHVlAQUBWQkBAmJoCgUCZEwFAmRNBQJlYQUCZFUAAAAABQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wAAAAAAUDbmlsBAJlYgkBAmJ5AgkBAUQCBQJkSgUCYmQJAQFEAgUCZEkFAmJjBAJlYwkBAUcCBQJlYgUBYgQCZWQEAmVlAwUCZEcJAJQKAgUCZEwFAmRJCQCUCgIFAmRNBQJkSgQCZHQIBQJlZQJfMQQCZWYIBQJlZQJfMgQCZWcJAKADAQkAvAIDBQJkWAkAtgIBCQBpAgUCZHQAAgkAtgIBBQJlZgkAawMJAGUCBQJlYQUCZWcFAWIFAmVnCQCWCgQFAmVhBQJjVgUCZHoFAmVkCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJlaAUCZWkCZFECZEMBWAFZBAJkRAkAAAIFAVkFBHVuaXQEAmVqCQDMCAIDCQAAAgUCZEMFAmFaBgkBAmFHAQIQaW52YWxpZCBscCBhc3NldAUDbmlsAwkAAAIFAmVqBQJlagQCZWsDCQAAAgUCZWkFAmJhBgMJAAACBQJlaQUCYmIHCQECYUcBAg1pbnZhbGlkIGFzc2V0BAJlbAMFAmVrCQC2AgEJAQJidwEJAQJhUwEFAmJhCQC2AgEJAQJidwEJAQJhUwEFAmJiBAJlbQkBAmJ3AQkBAmFTAQUCYmEEAmVuCQECYncBCQECYVMBBQJiYgQCZW8DBQJlawUCZW0FAmVuBAJlcAkAtgIBBQJlbwQCZFgJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJhWgkArAICCQCsAgICBmFzc2V0IAkA2AQBBQJhWgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmVxCQC2AgEFAmRRBAJlcgkAlgMBCQDMCAIAAAkAzAgCCQCgAwEJALoCAgkAuQICBQJlbAkAuAICBQFkCQB2BgkAuAICBQFkCQC6AgIJALkCAgUCZXEFAWQFAmRYABIFAWgAAAASBQRET1dOBQFkBQNuaWwEAmVzCQECZHkBBQJlcgQCZXQIBQJlcwJfMQQCZHoIBQJlcwJfMgQCZXUDBQJlawkAlgoEBQJldAAACQBlAgUCZW0FAmVyBQJlbgkAlgoEAAAFAmV0BQJlbQkAZQIFAmVuBQJlcgQCZXYIBQJldQJfMQQCZXcIBQJldQJfMgQCZXgIBQJldQJfMwQCZXkIBQJldQJfNAQCZFQJAQJieQIJAQFEAgUCZXkFAmJkCQEBRAIFAmV4BQJiYwQCZFUJAQFHAgUCZFQFAWIEAmNWAwUCZEQFA25pbAkAzAgCCQELU3RyaW5nRW50cnkCCQEBWgIJAKUIAQkBBXZhbHVlAQUBWAkA2AQBCQEFdmFsdWUBBQFZCQECYnMGBQJldgUCZXcFAmRRBQJkVQUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVMABQJkVQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVQCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJkVQUDbmlsBAJlYgkBAmJ5AgkBAUQCBQJlbgUCYmQJAQFEAgUCZW0FAmJjBAJlYwkBAUcCBQJlYgUBYgQCZWQEAmV6CQBoAgkAoAMBCQC8AgMFAmVsBQJlcQUCZFgAAgkAawMJAGUCBQJldAUCZXoFAWIFAmV6CQCWCgQFAmV0BQJjVgUCZHoFAmVkCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJlQQMCZUICZUMCY2IEAmVECQBpAgkAbAYJAGgCBQJlQgUCZUMAAAAFAAEAAAUERE9XTgUCY2IFAmVEAQJlRQAEAmVGCQECYncBCQECYVMBBQJiYQQCZUcJAQJidwEJAQJhUwEFAmJiBAJjYggJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJhWgkBAmFJAQkAuQkCCQDMCAICBkFzc2V0IAkAzAgCCQDYBAEFAmFaCQDMCAICDiBkb2Vzbid0IGV4aXN0BQNuaWwCAAhxdWFudGl0eQQCZUQJAQJlQQMFAmVGBQJlRwUCY2IFAmVEAQJlSAAEAmR3CQCiCAEJAQFRAAMJAAECBQJkdwIGU3RyaW5nBAJlSQUCZHcJANkEAQUCZUkDCQABAgUCZHcCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZUoABAJkdwkAoggBCQEBUgADCQABAgUCZHcCBlN0cmluZwQCZUkFAmR3CQDZBAEFAmVJAwkAAQIFAmR3AgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmVLAQJkbAQCZHcJAQJlSAADCQABAgUCZHcCCkJ5dGVWZWN0b3IEAmVMBQJkdwkAAAIIBQJkbA9jYWxsZXJQdWJsaWNLZXkFAmVMAwkAAQIFAmR3AgRVbml0CQAAAggFAmRsBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQJlTQECZGwEAmVOCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEAmR3CQECZUgAAwkAAQIFAmR3AgpCeXRlVmVjdG9yBAJlTAUCZHcDCQAAAggFAmRsD2NhbGxlclB1YmxpY0tleQUCZUwGBQJlTgMJAAECBQJkdwIEVW5pdAMJAAACCAUCZGwGY2FsbGVyBQR0aGlzBgUCZU4JAAIBAgtNYXRjaCBlcnJvchsCZGwBCnNldE1hbmFnZXIBAmVPBAJlUAkBAmVNAQUCZGwDCQAAAgUCZVAFAmVQBAJlUQkA2QQBBQJlTwMJAAACBQJlUQUCZVEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVIABQJlTwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRsAQ5jb25maXJtTWFuYWdlcgAEAmVSCQECZUoABAJlUwMJAQlpc0RlZmluZWQBBQJlUgYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZVMFAmVTBAJlVAMJAAACCAUCZGwPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJlUgYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZVQFAmVUCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFRAAkA2AQBCQEFdmFsdWUBBQJlUgkAzAgCCQELRGVsZXRlRW50cnkBCQEBUgAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkbAEDcHV0AgJjcQJlVQMJAGYCAAAFAmNxCQACAQIgSW52YWxpZCBzbGlwcGFnZVRvbGVyYW5jZSBwYXNzZWQEAmRyCQECZG8DBQJkbAUCY3EGBAJjUwgFAmRyAl8yBAJiWAgFAmRyAl83BAJjbwgFAmRyAl85BAJjVAgFAmRyA18xMAQCY1UIBQJkcgNfMTEEAmVWCAUCZHIDXzEyBAJlVwgFAmRyA18xMwQCZHUJAPwHBAUCYUoCBGVtaXQJAMwIAgUCY1MFA25pbAUDbmlsAwkAAAIFAmR1BQJkdQQCZHYEAmR3BQJkdQMJAAECBQJkdwIHQWRkcmVzcwQCZHgFAmR3CQD8BwQFAmR4AgRlbWl0CQDMCAIFAmNTBQNuaWwFA25pbAUEdW5pdAMJAAACBQJkdgUCZHYEAmVYAwkAZgIFAmNUAAAJAPwHBAUCYmcCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJlVgUCY1QFA25pbAUDbmlsAwkAAAIFAmVYBQJlWAQCZVkDCQBmAgUCY1UAAAkA/AcEBQJiZwIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmVXBQJjVQUDbmlsBQNuaWwDCQAAAgUCZVkFAmVZBAJlWgMFAmVVBAJmYQkA/AcEBQJiZgIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYlgFAmNTBQNuaWwDCQAAAgUCZmEFAmZhBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRsBmNhbGxlcgUCY1MFAmJYBQNuaWwJAM4IAgUCY28FAmVaCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRsAQpwdXRGb3JGcmVlAQJmYgMJAGYCAAAFAmZiCQACAQIUSW52YWxpZCB2YWx1ZSBwYXNzZWQEAmRyCQECZG8DBQJkbAUCZmIHCAUCZHICXzkCZGwBCXB1dE9uZVRrbgICZmMCZmQEAmZlCgACZmYJAPwHBAUCYUoCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJmZgIHQm9vbGVhbgUCZmYJAAIBCQCsAgIJAAMBBQJmZgIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZmcDAwMJAQJhTAAGCQAAAgUCYVkFAWwGCQAAAgUCYVkFAW4GBQJmZQQCZWoJAMwIAgMDCQEBIQEFAmZnBgkBAmVLAQUCZGwGCQECYUcBAiFwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJkbAhwYXltZW50cwABBgkBAmFHAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZWoFAmVqBAJmaAkAkQMCCAUCZGwIcGF5bWVudHMAAAQCZEMIBQJmaAdhc3NldElkBAJkQggFAmZoBmFtb3VudAQBWAgFAmRsBmNhbGxlcgQBWQgFAmRsDXRyYW5zYWN0aW9uSWQEAmZpCQECZEEEBQJkQgUCZEMFAVgFAVkEAmZqCAUCZmkCXzEEAmNWCAUCZmkCXzIEAmR6CAUCZmkCXzMEAmZrCAUCZmkCXzQEAmZsAwMJAGYCBQJmYwAACQBmAgUCZmMFAmZqBwkBAmFHAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJmYwUDbmlsAgAFAmZqBAJkdQkBAmRzAQUCZmwDCQAAAgUCZHUFAmR1BAJlWgMFAmZkBAJmbQkA/AcEBQJiZgIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYVoFAmZsBQNuaWwDCQAAAgUCZm0FAmZtBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRsBmNhbGxlcgUCZmwFAmFaBQNuaWwEAmZuAwkAZgIFAmR6AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUsFAmR6BQJkQwUDbmlsBQNuaWwJAJQKAgkAzggCCQDOCAIFAmNWBQJlWgUCZm4FAmZsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRsARFwdXRPbmVUa25SRUFET05MWQICZEMCZEIEAmZvCQECZEEEBQJkQgkBAmFRAQUCZEMFBHVuaXQFBHVuaXQEAmZqCAUCZm8CXzEEAmNWCAUCZm8CXzIEAmR6CAUCZm8CXzMEAmZrCAUCZm8CXzQJAJQKAgUDbmlsCQCVCgMFAmZqBQJkegUCZmsCZGwBCWdldE9uZVRrbgICZnACZmMEAmZlCgACZmYJAPwHBAUCYUoCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJmZgIHQm9vbGVhbgUCZmYJAAIBCQCsAgIJAAMBBQJmZgIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZnEDAwkBAmFMAAYJAAACBQJhWQUBbgYFAmZlBAJlagkAzAgCAwMJAQEhAQUCZnEGCQECZUsBBQJkbAYJAQJhRwECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmRsCHBheW1lbnRzAAEGCQECYUcBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJlagUCZWoEAmVpCQECYVEBBQJmcAQCZmgJAJEDAggFAmRsCHBheW1lbnRzAAAEAmRDCAUCZmgHYXNzZXRJZAQCZFEIBQJmaAZhbW91bnQEAVgIBQJkbAZjYWxsZXIEAVkIBQJkbA10cmFuc2FjdGlvbklkBAJmcgkBAmVoBQUCZWkFAmRRBQJkQwUBWAUBWQQCZnMIBQJmcgJfMQQCY1YIBQJmcgJfMgQCZHoIBQJmcgJfMwQCZmsIBQJmcgJfNAQCZHQDAwkAZgIFAmZjAAAJAGYCBQJmYwUCZnMHCQECYUcBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZjBQNuaWwCAAUCZnMEAmZ0CQD8BwQFAmFKAgRidXJuCQDMCAIFAmRRBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRDBQJkUQUDbmlsAwkAAAIFAmZ0BQJmdAQCZnUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUBWAUCZHQFAmVpBQNuaWwEAmZuAwkAZgIFAmR6AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUsFAmR6BQJlaQUDbmlsBQNuaWwJAJQKAgkAzggCCQDOCAIFAmNWBQJmdQUCZm4FAmR0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRsARFnZXRPbmVUa25SRUFET05MWQICZWkCZFEEAmZ2CQECZWgFCQECYVEBBQJlaQUCZFEFAmFaBQR1bml0BQR1bml0BAJmcwgFAmZ2Al8xBAJjVggFAmZ2Al8yBAJkeggFAmZ2Al8zBAJmawgFAmZ2Al80CQCUCgIFA25pbAkAlQoDBQJmcwUCZHoFAmZrAmRsARN1bnN0YWtlQW5kR2V0T25lVGtuAwJmdwJmcAJmYwQCZmUKAAJmZgkA/AcEBQJhSgIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmZmAgdCb29sZWFuBQJmZgkAAgEJAKwCAgkAAwEFAmZmAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJmcQMDCQECYUwABgkAAAIFAmFZBQFuBgUCZmUEAmVqCQDMCAIDAwkBASEBBQJmcQYJAQJlSwEFAmRsBgkBAmFHAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZGwIcGF5bWVudHMAAAYJAQJhRwECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmVqBQJlagQCZWkJAQJhUQEFAmZwBAFYCAUCZGwGY2FsbGVyBAFZCAUCZGwNdHJhbnNhY3Rpb25JZAQCZngJAPwHBAUCYmYCB3Vuc3Rha2UJAMwIAgkA2AQBBQJhWgkAzAgCBQJmdwUDbmlsBQNuaWwDCQAAAgUCZngFAmZ4BAJmeQkBAmVoBQUCZWkFAmZ3BQJhWgUBWAUBWQQCZnMIBQJmeQJfMQQCY1YIBQJmeQJfMgQCZHoIBQJmeQJfMwQCZmsIBQJmeQJfNAQCZHQDAwkAZgIFAmZjAAAJAGYCBQJmYwUCZnMHCQECYUcBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZjBQNuaWwCAAUCZnMEAmZ0CQD8BwQFAmFKAgRidXJuCQDMCAIFAmZ3BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmFaBQJmdwUDbmlsAwkAAAIFAmZ0BQJmdAQCZnUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRsBmNhbGxlcgUCZHQFAmVpBQNuaWwEAmZuAwkAZgIFAmR6AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUsFAmR6BQJlaQUDbmlsBQNuaWwJAJQKAgkAzggCCQDOCAIFAmNWBQJmdQUCZm4FAmR0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRsAQNnZXQABAJjRwkBAmRrAQUCZGwEAmZ6CAUCY0cCXzEEAmNuCAUCY0cCXzIEAmRuCAUCY0cCXzMEAmJWCAUCY0cCXzQEAmNvCAUCY0cCXzUEAmZBCQD8BwQFAmFKAgRidXJuCQDMCAIFAmRuBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJWBQJkbgUDbmlsAwkAAAIFAmZBBQJmQQUCY28JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZGwBCWdldE5vTGVzcwICZkICZkMEAmNHCQECZGsBBQJkbAQCY20IBQJjRwJfMQQCY24IBQJjRwJfMgQCZG4IBQJjRwJfMwQCYlYIBQJjRwJfNAQCY28IBQJjRwJfNQMJAGYCBQJmQgUCY20JAAIBCQCsAgIJAKwCAgkArAICAhxub0xlc3NUaGVuQW10QXNzZXQgZmFpbGVkOiAgCQCkAwEFAmNtAgMgPCAJAKQDAQUCZkIDCQBmAgUCZkMFAmNuCQACAQkArAICCQCsAgIJAKwCAgIdbm9MZXNzVGhlblByaWNlQXNzZXQgZmFpbGVkOiAJAKQDAQUCY24CAyA8IAkApAMBBQJmQwQCZkEJAPwHBAUCYUoCBGJ1cm4JAMwIAgUCZG4FA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYlYFAmRuBQNuaWwDCQAAAgUCZkEFAmZBBQJjbwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkbAENdW5zdGFrZUFuZEdldAECZHQEAmZEAwkBAiE9AgkAkAMBCAUCZGwIcGF5bWVudHMAAAkAAgECGE5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAYDCQAAAgUCZkQFAmZEBAJiSwkBAmFOAAQCYlgJANkEAQkAkQMCBQJiSwUBcQQCZngJAPwHBAUCYmYCB3Vuc3Rha2UJAMwIAgkA2AQBBQJiWAkAzAgCBQJkdAUDbmlsBQNuaWwDCQAAAgUCZngFAmZ4BAJjRwkBAmJUBAkA2AQBCAUCZGwNdHJhbnNhY3Rpb25JZAkA2AQBBQJiWAUCZHQIBQJkbAZjYWxsZXIEAmNhCQENcGFyc2VJbnRWYWx1ZQEIBQJjRwJfOQQCY28IBQJjRwNfMTAEAmZFAwMJAQJhTAAGCQAAAgUCY2EFAW4JAAIBCQCsAgICLEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmNhBgMJAAACBQJmRQUCZkUEAmZBCQD8BwQFAmFKAgRidXJuCQDMCAIFAmR0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJYBQJkdAUDbmlsAwkAAAIFAmZBBQJmQQUCY28JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZGwBE3Vuc3Rha2VBbmRHZXROb0xlc3MDAmZ3AmZGAmZDBAJmcQMJAQJhTAAGCQAAAgUCYVkFAW4EAmVqCQDMCAIDCQEBIQEFAmZxBgkAAgECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmRsCHBheW1lbnRzAAAGCQACAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZWoFAmVqBAJmeAkA/AcEBQJiZgIHdW5zdGFrZQkAzAgCCQDYBAEFAmFaCQDMCAIFAmZ3BQNuaWwFA25pbAMJAAACBQJmeAUCZngEAmNHCQECYlQECQDYBAEIBQJkbA10cmFuc2FjdGlvbklkCQDYBAEFAmFaBQJmdwgFAmRsBmNhbGxlcgQCY20IBQJjRwJfMQQCY24IBQJjRwJfMgQCY28IBQJjRwNfMTAEAmZHCQDMCAIDCQBnAgUCY20FAmZGBgkAAgEJALkJAgkAzAgCAixhbW91bnQgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZGBQNuaWwCAAkAzAgCAwkAZwIFAmNuBQJmQwYJAAIBCQC5CQIJAMwIAgIrcHJpY2UgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZDBQNuaWwCAAUDbmlsAwkAAAIFAmZHBQJmRwQCZkEJAPwHBAUCYUoCBGJ1cm4JAMwIAgUCZncFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYVoFAmZ3BQNuaWwDCQAAAgUCZkEFAmZBBQJjbwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkbAEIYWN0aXZhdGUCAmZIAmZJAwkBAiE9AgkApQgBCAUCZGwGY2FsbGVyCQClCAEFAmFKCQACAQIScGVybWlzc2lvbnMgZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAAUCZkgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFiAAUCZkkFA25pbAIHc3VjY2VzcwJkbAEKcmVmcmVzaEtMcAAEAmZKCQELdmFsdWVPckVsc2UCCQCfCAEFAmFnAAAEAmZLAwkAZwIJAGUCBQZoZWlnaHQFAmZKBQJhagUEdW5pdAkBAmFHAQkAuQkCCQDMCAIJAKQDAQUCYWoJAMwIAgIvIGJsb2NrcyBoYXZlIG5vdCBwYXNzZWQgc2luY2UgdGhlIHByZXZpb3VzIGNhbGwFA25pbAIAAwkAAAIFAmZLBQJmSwQCZUQJAQJlRQAJAMwIAgkBDEludGVnZXJFbnRyeQIFAmFnBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFAmFmBQJlRAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRsARxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZAAkAlAoCBQNuaWwJAQJhTgACZGwBHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkBAmJ4CQCUCgIFA25pbAkBAmJ3AQUCYngCZGwBGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkDAmJFAmJGAmJKBAJiUwkBAmJJAwUCYkUFAmJGBQJiSgkAlAoCBQNuaWwJAMwIAgkApgMBCQCRAwIFAmJTAAAJAMwIAgkApgMBCQCRAwIFAmJTAAEJAMwIAgkApgMBCQCRAwIFAmJTAAIFA25pbAJkbAEUdG9YMThXcmFwcGVyUkVBRE9OTFkCAUUBRgkAlAoCBQNuaWwJAKYDAQkBAUQCBQFFBQFGAmRsARZmcm9tWDE4V3JhcHBlclJFQURPTkxZAgFIAUkJAJQKAgUDbmlsCQEBRwIJAKcDAQUBSAUBSQJkbAEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJiegJiQQkAlAoCBQNuaWwJAKYDAQkBAmJ5AgkApwMBBQJiegkApwMBBQJiQQJkbAEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmJVAmNxAmNyAmNzAmN0AmN1AVgCY3YCY3cJAJQKAgUDbmlsCQECY3AJBQJiVQUCY3EFAmNyBQJjcwUCY3QFAmN1BQFYBQJjdgUCY3cCZGwBI2VzdGltYXRlR2V0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZBAJiVQJiVgJiVwFYBAJjRwkBAmJUBAUCYlUFAmJWBQJiVwkBEUBleHRyTmF0aXZlKDEwNjIpAQUBWAkAlAoCBQNuaWwJAJwKCggFAmNHAl8xCAUCY0cCXzIIBQJjRwJfMwgFAmNHAl80CAUCY0cCXzUIBQJjRwJfNggFAmNHAl83CQCmAwEIBQJjRwJfOAgFAmNHAl85CAUCY0cDXzEwAmRsAQ1zdGF0c1JFQURPTkxZAAQCYksJAQJhTgAEAmJYCQDZBAEJAJEDAgUCYksFAXEEAmNZCQCRAwIFAmJLBQFyBAJjWgkAkQMCBQJiSwUBcwQCY3oJAJEDAgUCYksFAXYEAmNBCQCRAwIFAmJLBQF3BAJiTAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJLBQF0BAJiTQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJLBQF1BAJmTAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiWAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiWAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmRhCQECYncBBQJjWQQCZGIJAQJidwEFAmNaBAJmTQMJAAACBQJmTAAACQDMCAIFAWUJAMwIAgUBZQkAzAgCBQFlBQNuaWwJAQJiSQMFAmRhBQJkYgUCZkwEAmNoAAAEAmZOCQEBRwIJAJEDAgUCZk0AAQUBYgQCZk8JAQFHAgkAkQMCBQJmTQACBQFiBAJmUAkBBXZhbHVlAQkAmggCBQJhSgkBAmF1AQkApQgBBQR0aGlzCQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZGEJAMwIAgkApAMBBQJkYgkAzAgCCQCkAwEFAmZMCQDMCAIJAKQDAQUCY2gJAMwIAgkApAMBBQJmTgkAzAgCCQCkAwEFAmZPCQDMCAIJAKQDAQUCZlAFA25pbAUBagJkbAEgZXZhbHVhdGVQdXRCeUFtb3VudEFzc2V0UkVBRE9OTFkBAmNyBAJiSwkBAmFOAAQCYlgJANkEAQkAkQMCBQJiSwUBcQQCY3gJAJEDAgUCYksFAXIEAmJZCQDZBAEFAmN4BAJjeQkAkQMCBQJiSwUBcwQCYloJANkEAQUCY3kEAmJMCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYksFAXQEAmJNCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYksFAXUEAmNhCQCRAwIFAmJLBQFwBAJmTAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiWAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiWAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmRhCQECYncBBQJjeAQCZGIJAQJidwEFAmN5BAJiRwkBAUQCBQJkYQUCYkwEAmJICQEBRAIFAmRiBQJiTQQCY2cDCQAAAgUCZkwAAAUBZQkBAmJ5AgUCYkgFAmJHBAJjRAkBAUQCBQJjcgUCYkwEAmNFCQC8AgMFAmNEBQJjZwUBZAQCY3QJAQFHAgUCY0UFAmJNBAJkcgkBAmNwCQIAAKDCHgUCY3IFAmJZBQJjdAUCYloCAAYHBAJjTwgFAmRyAl8xBAJmUQgFAmRyAl8zBAJjYwgFAmRyAl80BAJjZQgFAmRyAl81BAJjYggFAmRyAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjTwkAzAgCCQCkAwEJAQFHAgUCY2cFAWIJAMwIAgkApAMBBQJjYwkAzAgCCQCkAwEFAmNlCQDMCAIJAKQDAQUCY2IJAMwIAgUCY2EJAMwIAgkApAMBBQJjcgkAzAgCCQCkAwEFAmN0BQNuaWwFAWoCZGwBH2V2YWx1YXRlUHV0QnlQcmljZUFzc2V0UkVBRE9OTFkBAmN0BAJiSwkBAmFOAAQCYlgJANkEAQkAkQMCBQJiSwUBcQQCY3gJAJEDAgUCYksFAXIEAmJZCQDZBAEFAmN4BAJjeQkAkQMCBQJiSwUBcwQCYloJANkEAQUCY3kEAmJMCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYksFAXQEAmJNCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYksFAXUEAmNhCQCRAwIFAmJLBQFwBAJmTAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiWAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiWAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmZSCQECYncBBQJjeAQCZlMJAQJidwEFAmN5BAJmVAkBAUQCBQJmUgUCYkwEAmZVCQEBRAIFAmZTBQJiTQQCY2cDCQAAAgUCZkwAAAUBZQkBAmJ5AgUCZlUFAmZUBAJjRQkBAUQCBQJjdAUCYk0EAmNECQC8AgMFAmNFBQFkBQJjZwQCY3IJAQFHAgUCY0QFAmJMBAJkcgkBAmNwCQIAAKDCHgUCY3IFAmJZBQJjdAUCYloCAAYHBAJjTwgFAmRyAl8xBAJmUQgFAmRyAl8zBAJjYwgFAmRyAl80BAJjZQgFAmRyAl81BAJjYggFAmRyAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjTwkAzAgCCQCkAwEJAQFHAgUCY2cFAWIJAMwIAgkApAMBBQJjYwkAzAgCCQCkAwEFAmNlCQDMCAIJAKQDAQUCY2IJAMwIAgUCY2EJAMwIAgkApAMBBQJjcgkAzAgCCQCkAwEFAmN0BQNuaWwFAWoCZGwBE2V2YWx1YXRlR2V0UkVBRE9OTFkCAmZWAmZXBAJjRwkBAmJUBAIABQJmVgUCZlcFBHRoaXMEAmNtCAUCY0cCXzEEAmNuCAUCY0cCXzIEAmNjCAUCY0cCXzUEAmNlCAUCY0cCXzYEAmNiCAUCY0cCXzcEAmNoCAUCY0cCXzgEAmNhCQENcGFyc2VJbnRWYWx1ZQEIBQJjRwJfOQkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmNtCQDMCAIJAKQDAQUCY24JAMwIAgkApAMBBQJjYwkAzAgCCQCkAwEFAmNlCQDMCAIJAKQDAQUCY2IJAMwIAgkApgMBBQJjaAkAzAgCCQCkAwEFAmNhBQNuaWwFAWoBAmZYAQJmWQAEAmZaBAJkdwkBAmVIAAMJAAECBQJkdwIKQnl0ZVZlY3RvcgQCZUwFAmR3BQJlTAMJAAECBQJkdwIEVW5pdAgFAmZYD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yBAJkdwUCZlgDCQABAgUCZHcCBU9yZGVyBAJjWAUCZHcEAmdhCQECYU0ABAJhegkBAmNXAQUCY1gEAmFBCQD0AwMIBQJjWAlib2R5Qnl0ZXMJAJEDAggFAmNYBnByb29mcwAACAUCY1gPc2VuZGVyUHVibGljS2V5BAJhQgkA9AMDCAUCY1gJYm9keUJ5dGVzCQCRAwIIBQJjWAZwcm9vZnMAAQUCZ2EDAwMFAmF6BQJhQQcFAmFCBwYJAQJheQMFAmF6BQJhQQUCYUIDCQABAgUCZHcCFFNldFNjcmlwdFRyYW5zYWN0aW9uBAJlSQUCZHcEAmdiCQD2AwEJAQV2YWx1ZQEIBQJlSQZzY3JpcHQEAmdjCQDbBAEJAQV2YWx1ZQEJAJ0IAgUCYUoJAQJhdwAEAmdkCQDxBwEFBHRoaXMDAwkAAAIFAmdjBQJnYgkBAiE9AgUCZ2QFAmdiBwYJAPQDAwgFAmZYCWJvZHlCeXRlcwkAkQMCCAUCZlgGcHJvb2ZzAAAFAmZaCQD0AwMIBQJmWAlib2R5Qnl0ZXMJAJEDAggFAmZYBnByb29mcwAABQJmWj2Y7YM=", "chainId": 84, "height": 2336739, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5QDHLyd3y1phf3hGRPkKEUd4cMA4379iCaWjiVf9anq1 Next: 8b28UXYoZxZoFy1iZwhYQ9sAWXfWNvsftW7QPz13m7HL Diff:
OldNewDifferences
111111
112112 let ae = valueOrElse(getInteger(this, ac), ad)
113113
114-let af = makeString(["%s", "keyKlp"], j)
114+let af = makeString(["%s", "kLp"], j)
115115
116-let ag = makeString(["%s", "keyLastKLpRefreshed"], j)
116+let ag = makeString(["%s", "kLpRefreshedHeight"], j)
117117
118-let ah = makeString(["%s", "keyRefreshKLpDelay"], j)
118+let ah = makeString(["%s", "refreshKLpDelay"], j)
119119
120-func ai () = "%s__factoryConfig"
120+let ai = 30
121+
122+let aj = valueOrElse(getInteger(this, ah), ai)
123+
124+func ak () = "%s__factoryConfig"
121125
122126
123-func aj () = "%s%s__matcher__publicKey"
127+func al () = "%s%s__matcher__publicKey"
124128
125129
126-func ak (al) = (("%s%s%s__" + al) + "__mappings__poolContract2LpAsset")
130+func am (an) = (("%s%s%s__" + an) + "__mappings__poolContract2LpAsset")
127131
128132
129-func am (an,ao) = (((("%d%d%s__" + an) + "__") + ao) + "__config")
133+func ao (ap,aq) = (((("%d%d%s__" + ap) + "__") + aq) + "__config")
130134
131135
132-func ap (aq) = ("%s%s%s__mappings__baseAsset2internalId__" + aq)
136+func ar (as) = ("%s%s%s__mappings__baseAsset2internalId__" + as)
133137
134138
135-func ar () = "%s__shutdown"
139+func at () = "%s__shutdown"
136140
137141
138-func as (at) = ("%s%s__poolWeight__" + at)
142+func au (av) = ("%s%s__poolWeight__" + av)
139143
140144
141-func au () = "%s__allowedLpScriptHash"
145+func aw () = "%s__allowedLpScriptHash"
142146
143147
144-let av = "%s__feeCollectorAddress"
148+let ax = "%s__feeCollectorAddress"
145149
146-func aw (ax,ay,az) = throw(((((("order validation failed: orderValid=" + toString(ax)) + " senderValid=") + toString(ay)) + " matcherValid=") + toString(az)))
150+func ay (az,aA,aB) = throw(((((("order validation failed: orderValid=" + toString(az)) + " senderValid=") + toString(aA)) + " matcherValid=") + toString(aB)))
147151
148152
149-func aA (aB,aC) = valueOrErrorMessage(getString(aB, aC), makeString(["mandatory ", toString(aB), ".", aC, " is not defined"], ""))
153+func aC (aD,aE) = valueOrErrorMessage(getString(aD, aE), makeString(["mandatory ", toString(aD), ".", aE, " is not defined"], ""))
150154
151155
152-func aD (aB,aC) = valueOrErrorMessage(getInteger(aB, aC), makeString(["mandatory ", toString(aB), ".", aC, " is not defined"], ""))
156+func aF (aD,aE) = valueOrErrorMessage(getInteger(aD, aE), makeString(["mandatory ", toString(aD), ".", aE, " is not defined"], ""))
153157
154158
155-func aE (aF) = throw(makeString(["lp.ride:", aF], " "))
159+func aG (aH) = throw(makeString(["lp.ride:", aH], " "))
156160
157161
158-func aG (aF) = makeString(["lp.ride:", aF], " ")
162+func aI (aH) = makeString(["lp.ride:", aH], " ")
159163
160164
161-func aH (H) = {
162- let aI = H
163- if ($isInstanceOf(aI, "Int"))
164- then {
165- let aJ = aI
166- aJ
167- }
168- else throw("fail to cast into Int")
165+let aJ = addressFromStringValue(aC(this, P()))
166+
167+let aK = addressFromStringValue(aC(aJ, ax))
168+
169+func aL () = valueOrElse(getBoolean(aJ, at()), false)
170+
171+
172+func aM () = fromBase58String(aC(aJ, al()))
173+
174+
175+func aN () = {
176+ let aO = aC(this, aa())
177+ let aP = aC(this, ab())
178+ let aq = aF(aJ, ar(aP))
179+ let ap = aF(aJ, ar(aO))
180+ split(aC(aJ, ao(toString(ap), toString(aq))), j)
169181 }
170182
171183
172-let aK = addressFromStringValue(aA(this, P()))
173-
174-let aL = addressFromStringValue(aA(aK, av))
175-
176-func aM () = valueOrElse(getBoolean(aK, ar()), false)
184+func aQ (aR) = if ((aR == i))
185+ then unit
186+ else fromBase58String(aR)
177187
178188
179-func aN () = fromBase58String(aA(aK, aj()))
189+func aS (aR) = if ((aR == unit))
190+ then i
191+ else toBase58String(value(aR))
180192
181193
182-func aO () = {
183- let aP = aA(this, aa())
184- let aQ = aA(this, ab())
185- let ao = aD(aK, ap(aQ))
186- let an = aD(aK, ap(aP))
187- split(aA(aK, am(toString(an), toString(ao))), j)
194+func aT (aU) = $Tuple7(addressFromStringValue(aU[o]), parseIntValue(aU[p]), fromBase58String(aU[q]), aQ(aU[r]), aQ(aU[s]), parseIntValue(aU[t]), parseIntValue(aU[u]))
195+
196+
197+let aV = aT(aN())
198+
199+let aW = aV
200+
201+let aX = aW._1
202+
203+let aY = aW._2
204+
205+let aZ = aW._3
206+
207+let ba = aW._4
208+
209+let bb = aW._5
210+
211+let bc = aW._6
212+
213+let bd = aW._7
214+
215+func be () = split(aC(aJ, ak()), j)
216+
217+
218+let bf = valueOrErrorMessage(addressFromString(be()[B]), "incorrect staking address")
219+
220+let bg = valueOrErrorMessage(addressFromString(be()[C]), "incorrect staking address")
221+
222+func bh (bi,bj,bk,bl,bm,bn,bo,bp,bq,br) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bi), toString(bj), toString(bk), toString(bl), toString(bm), toString(bn), toString(bo), toString(bp), toString(bq), toString(br)], j)
223+
224+
225+func bs (bt,bu,bv,bl,bo,bp) = makeString(["%d%d%d%d%d%d", toString(bt), toString(bu), toString(bv), toString(bl), toString(bo), toString(bp)], j)
226+
227+
228+func bw (bx) = if ((bx == "WAVES"))
229+ then wavesBalance(this).available
230+ else assetBalance(this, fromBase58String(bx))
231+
232+
233+func by (bz,bA) = fraction(bz, d, bA)
234+
235+
236+func bB (bC,bD,bE,bF) = {
237+ let bG = D(bE, bC)
238+ let bH = D(bF, bD)
239+ by(bH, bG)
188240 }
189241
190242
191-func aR (aS) = if ((aS == i))
192- then unit
193- else fromBase58String(aS)
194-
195-
196-func aT (aS) = if ((aS == unit))
197- then i
198- else toBase58String(value(aS))
199-
200-
201-func aU (aV) = $Tuple7(addressFromStringValue(aV[o]), parseIntValue(aV[p]), fromBase58String(aV[q]), aR(aV[r]), aR(aV[s]), parseIntValue(aV[t]), parseIntValue(aV[u]))
202-
203-
204-let aW = aU(aO())
205-
206-let aX = aW
207-
208-let aY = aX._1
209-
210-let aZ = aX._2
211-
212-let ba = aX._3
213-
214-let bb = aX._4
215-
216-let bc = aX._5
217-
218-let bd = aX._6
219-
220-let be = aX._7
221-
222-func bf () = split(aA(aK, ai()), j)
223-
224-
225-let bg = valueOrErrorMessage(addressFromString(bf()[B]), "incorrect staking address")
226-
227-let bh = valueOrErrorMessage(addressFromString(bf()[C]), "incorrect staking address")
228-
229-func bi (bj,bk,bl,bm,bn,bo,bp,bq,br,bs) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bj), toString(bk), toString(bl), toString(bm), toString(bn), toString(bo), toString(bp), toString(bq), toString(br), toString(bs)], j)
230-
231-
232-func bt (bu,bv,bw,bm,bp,bq) = makeString(["%d%d%d%d%d%d", toString(bu), toString(bv), toString(bw), toString(bm), toString(bp), toString(bq)], j)
233-
234-
235-func bx (by) = if ((by == "WAVES"))
236- then wavesBalance(this).available
237- else assetBalance(this, fromBase58String(by))
238-
239-
240-func bz (bA,bB) = fraction(bA, d, bB)
241-
242-
243-func bC (bD,bE,bF,bG) = {
244- let bH = D(bF, bD)
245- let bI = D(bG, bE)
246- bz(bI, bH)
243+func bI (bE,bF,bJ) = {
244+ let bK = aN()
245+ let bL = parseIntValue(bK[t])
246+ let bM = parseIntValue(bK[u])
247+ let bN = bB(bL, bM, bE, bF)
248+ let bA = D(bE, bL)
249+ let bz = D(bF, bM)
250+ let bO = D(bJ, b)
251+ let bP = by(bA, bO)
252+ let bQ = by(bz, bO)
253+[bN, bP, bQ]
247254 }
248255
249256
250-func bJ (bF,bG,bK) = {
251- let bL = aO()
252- let bM = parseIntValue(bL[t])
253- let bN = parseIntValue(bL[u])
254- let bO = bC(bM, bN, bF, bG)
255- let bB = D(bF, bM)
256- let bA = D(bG, bN)
257- let bP = D(bK, b)
258- let bQ = bz(bB, bP)
259- let bR = bz(bA, bP)
260-[bO, bQ, bR]
257+func bR (bE,bF,bJ) = {
258+ let bS = bI(bE, bF, bJ)
259+[G(bS[0], b), G(bS[1], b), G(bS[2], b)]
261260 }
262261
263262
264-func bS (bF,bG,bK) = {
265- let bT = bJ(bF, bG, bK)
266-[G(bT[0], b), G(bT[1], b), G(bT[2], b)]
267- }
268-
269-
270-func bU (bV,bW,bX,X) = {
271- let bL = aO()
272- let bY = bL[q]
273- let bZ = bL[r]
274- let ca = bL[s]
275- let bD = parseIntValue(bL[t])
276- let bE = parseIntValue(bL[u])
277- let cb = bL[p]
278- let cc = valueOrErrorMessage(assetInfo(fromBase58String(bY)), (("Asset " + bY) + " doesn't exist")).quantity
279- if ((bY != bW))
263+func bT (bU,bV,bW,X) = {
264+ let bK = aN()
265+ let bX = bK[q]
266+ let bY = bK[r]
267+ let bZ = bK[s]
268+ let bC = parseIntValue(bK[t])
269+ let bD = parseIntValue(bK[u])
270+ let ca = bK[p]
271+ let cb = valueOrErrorMessage(assetInfo(fromBase58String(bX)), (("Asset " + bX) + " doesn't exist")).quantity
272+ if ((bX != bV))
280273 then throw("Invalid asset passed.")
281274 else {
282- let cd = bx(bZ)
283- let ce = D(cd, bD)
284- let cf = bx(ca)
285- let cg = D(cf, bE)
286- let ch = bz(cg, ce)
287- let ci = G(ch, b)
288- let cj = D(bX, b)
289- let ck = D(cc, b)
290- let cl = fraction(ce, cj, ck)
291- let cm = fraction(cg, cj, ck)
275+ let cc = bw(bY)
276+ let cd = D(cc, bC)
277+ let ce = bw(bZ)
278+ let cf = D(ce, bD)
279+ let cg = by(cf, cd)
280+ let ch = G(cg, b)
281+ let ci = D(bW, b)
282+ let cj = D(cb, b)
283+ let ck = fraction(cd, ci, cj)
284+ let cl = fraction(cf, ci, cj)
285+ let cm = G(ck, bC)
292286 let cn = G(cl, bD)
293- let co = G(cm, bE)
294- let cp = if ((bV == ""))
287+ let co = if ((bU == ""))
295288 then nil
296- else [ScriptTransfer(X, cn, if ((bZ == "WAVES"))
289+ else [ScriptTransfer(X, cm, if ((bY == "WAVES"))
297290 then unit
298- else fromBase58String(bZ)), ScriptTransfer(X, co, if ((ca == "WAVES"))
291+ else fromBase58String(bY)), ScriptTransfer(X, cn, if ((bZ == "WAVES"))
299292 then unit
300- else fromBase58String(ca)), StringEntry(Z(toString(X), bV), bt(cn, co, bX, ci, height, lastBlock.timestamp)), IntegerEntry(S(), ci), IntegerEntry(T(height, lastBlock.timestamp), ci)]
301- $Tuple10(cn, co, bZ, ca, cd, cf, cc, ch, cb, cp)
293+ else fromBase58String(bZ)), StringEntry(Z(toString(X), bU), bs(cm, cn, bW, ch, height, lastBlock.timestamp)), IntegerEntry(S(), ch), IntegerEntry(T(height, lastBlock.timestamp), ch)]
294+ $Tuple10(cm, cn, bY, bZ, cc, ce, cb, cg, ca, co)
302295 }
303296 }
304297
305298
306-func cq (bV,cr,cs,ct,cu,cv,X,cw,cx) = {
307- let bL = aO()
308- let bY = fromBase58String(bL[q])
309- let cy = bL[r]
310- let cz = bL[s]
311- let cA = bL[v]
312- let cB = bL[w]
313- let bM = parseIntValue(bL[t])
314- let bN = parseIntValue(bL[u])
315- let cb = bL[p]
316- let cc = valueOrErrorMessage(assetInfo(bY), (("Asset " + toBase58String(bY)) + " doesn't exist")).quantity
317- let cC = toBase58String(valueOrElse(ct, fromBase58String("WAVES")))
318- let cD = toBase58String(valueOrElse(cv, fromBase58String("WAVES")))
319- if (if ((cy != cC))
299+func cp (bU,cq,cr,cs,ct,cu,X,cv,cw) = {
300+ let bK = aN()
301+ let bX = fromBase58String(bK[q])
302+ let cx = bK[r]
303+ let cy = bK[s]
304+ let cz = bK[v]
305+ let cA = bK[w]
306+ let bL = parseIntValue(bK[t])
307+ let bM = parseIntValue(bK[u])
308+ let ca = bK[p]
309+ let cb = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
310+ let cB = toBase58String(valueOrElse(cs, fromBase58String("WAVES")))
311+ let cC = toBase58String(valueOrElse(cu, fromBase58String("WAVES")))
312+ if (if ((cx != cB))
320313 then true
321- else (cz != cD))
314+ else (cy != cC))
322315 then throw("Invalid amt or price asset passed.")
323316 else {
324- let cd = if (cw)
325- then bx(cy)
326- else (bx(cy) - cs)
327- let cf = if (cw)
328- then bx(cz)
329- else (bx(cz) - cu)
330- let cE = D(cs, bM)
331- let cF = D(cu, bN)
332- let cG = bz(cF, cE)
333- let ce = D(cd, bM)
334- let cg = D(cf, bN)
335- let cH = if ((cc == 0))
317+ let cc = if (cv)
318+ then bw(cx)
319+ else (bw(cx) - cr)
320+ let ce = if (cv)
321+ then bw(cy)
322+ else (bw(cy) - ct)
323+ let cD = D(cr, bL)
324+ let cE = D(ct, bM)
325+ let cF = by(cE, cD)
326+ let cd = D(cc, bL)
327+ let cf = D(ce, bM)
328+ let cG = if ((cb == 0))
336329 then {
337- let ch = e
338- let cI = e
339- let bP = pow((cE * cF), 0, toBigInt(5), 1, 0, DOWN)
340- $Tuple5(G(bP, b), G(cE, bM), G(cF, bN), bz((cg + cF), (ce + cE)), cI)
330+ let cg = e
331+ let cH = e
332+ let bO = pow((cD * cE), 0, toBigInt(5), 1, 0, DOWN)
333+ $Tuple5(G(bO, b), G(cD, bL), G(cE, bM), by((cf + cE), (cd + cD)), cH)
341334 }
342335 else {
343- let ch = bz(cg, ce)
344- let cI = fraction(O((ch - cG)), d, ch)
345- let cJ = D(cr, b)
346- if (if ((ch != e))
347- then (cI > cJ)
336+ let cg = by(cf, cd)
337+ let cH = fraction(O((cg - cF)), d, cg)
338+ let cI = D(cq, b)
339+ if (if ((cg != e))
340+ then (cH > cI)
348341 else false)
349- then throw(((("Price slippage " + toString(cI)) + " exceeded the passed limit of ") + toString(cJ)))
342+ then throw(((("Price slippage " + toString(cH)) + " exceeded the passed limit of ") + toString(cI)))
350343 else {
351- let ck = D(cc, b)
352- let cK = fraction(cE, ch, d)
353- let cL = fraction(cF, d, ch)
354- let cM = if ((cK > cF))
355- then $Tuple2(cL, cF)
356- else $Tuple2(cE, cK)
357- let cN = cM._1
358- let cO = cM._2
359- let bP = fraction(ck, cO, cg)
360- $Tuple5(G(bP, b), G(cN, bM), G(cO, bN), ch, cI)
344+ let cj = D(cb, b)
345+ let cJ = fraction(cD, cg, d)
346+ let cK = fraction(cE, d, cg)
347+ let cL = if ((cJ > cE))
348+ then $Tuple2(cK, cE)
349+ else $Tuple2(cD, cJ)
350+ let cM = cL._1
351+ let cN = cL._2
352+ let bO = fraction(cj, cN, cf)
353+ $Tuple5(G(bO, b), G(cM, bL), G(cN, bM), cg, cH)
361354 }
362355 }
363- let cP = cH._1
364- let cQ = cH._2
365- let cR = cH._3
366- let ci = G(cH._4, b)
367- let cS = G(cH._5, b)
368- if ((0 >= cP))
356+ let cO = cG._1
357+ let cP = cG._2
358+ let cQ = cG._3
359+ let ch = G(cG._4, b)
360+ let cR = G(cG._5, b)
361+ if ((0 >= cO))
369362 then throw("Invalid calculations. LP calculated is less than zero.")
370363 else {
371- let cT = if (!(cx))
364+ let cS = if (!(cw))
372365 then 0
373- else cP
374- let cU = (cs - cQ)
375- let cV = (cu - cR)
376- let cW = [IntegerEntry(S(), ci), IntegerEntry(T(height, lastBlock.timestamp), ci), StringEntry(W(X, bV), bi(cQ, cR, cT, ci, cr, cS, height, lastBlock.timestamp, cU, cV))]
377- $Tuple13(cP, cT, ci, cd, cf, cc, bY, cb, cW, cU, cV, ct, cv)
366+ else cO
367+ let cT = (cr - cP)
368+ let cU = (ct - cQ)
369+ let cV = [IntegerEntry(S(), ch), IntegerEntry(T(height, lastBlock.timestamp), ch), StringEntry(W(X, bU), bh(cP, cQ, cS, ch, cq, cR, height, lastBlock.timestamp, cT, cU))]
370+ $Tuple13(cO, cS, ch, cc, ce, cb, bX, ca, cV, cT, cU, cs, cu)
378371 }
379372 }
380373 }
381374
382375
383-func cX (cY) = {
384- let bL = aO()
385- let cZ = bL[r]
386- let da = bL[s]
387- let cb = parseIntValue(bL[p])
388- let bM = parseIntValue(bL[t])
389- let bN = parseIntValue(bL[u])
390- let db = bx(cZ)
391- let dc = bx(da)
392- let ch = if ((cY.orderType == Buy))
393- then bC(bM, bN, (db + cY.amount), dc)
394- else bC(bM, bN, (db - cY.amount), dc)
395- let ci = G(ch, b)
396- if (if (if (aM())
376+func cW (cX) = {
377+ let bK = aN()
378+ let cY = bK[r]
379+ let cZ = bK[s]
380+ let ca = parseIntValue(bK[p])
381+ let bL = parseIntValue(bK[t])
382+ let bM = parseIntValue(bK[u])
383+ let da = bw(cY)
384+ let db = bw(cZ)
385+ let cg = if ((cX.orderType == Buy))
386+ then bB(bL, bM, (da + cX.amount), db)
387+ else bB(bL, bM, (da - cX.amount), db)
388+ let ch = G(cg, b)
389+ if (if (if (aL())
397390 then true
398- else (cb == m))
391+ else (ca == m))
399392 then true
400- else (cb == n))
393+ else (ca == n))
401394 then throw("Exchange operations disabled")
402395 else {
403- let dd = cY.assetPair.amountAsset
404- let de = if ((dd == unit))
396+ let dc = cX.assetPair.amountAsset
397+ let dd = if ((dc == unit))
405398 then "WAVES"
406- else toBase58String(value(dd))
407- let df = cY.assetPair.priceAsset
408- let dg = if ((df == unit))
399+ else toBase58String(value(dc))
400+ let de = cX.assetPair.priceAsset
401+ let df = if ((de == unit))
409402 then "WAVES"
410- else toBase58String(value(df))
411- if (if ((de != cZ))
403+ else toBase58String(value(de))
404+ if (if ((dd != cY))
412405 then true
413- else (dg != da))
406+ else (df != cZ))
414407 then throw("Wrong order assets.")
415408 else {
416- let dh = cY.price
417- let di = fraction(b, bN, bM)
418- let dj = J(dh, b, di)
419- let dk = if ((cY.orderType == Buy))
420- then (ci >= dj)
421- else (dj >= ci)
409+ let dg = cX.price
410+ let dh = fraction(b, bM, bL)
411+ let di = J(dg, b, dh)
412+ let dj = if ((cX.orderType == Buy))
413+ then (ch >= di)
414+ else (di >= ch)
422415 true
423416 }
424417 }
425418 }
426419
427420
428-func dl (dm) = if ((size(dm.payments) != 1))
421+func dk (dl) = if ((size(dl.payments) != 1))
429422 then throw("exactly 1 payment is expected")
430423 else {
431- let dn = value(dm.payments[0])
432- let bW = value(dn.assetId)
433- let do = dn.amount
434- let cH = bU(toBase58String(dm.transactionId), toBase58String(bW), do, dm.caller)
435- let cn = cH._1
436- let co = cH._2
437- let cb = parseIntValue(cH._9)
438- let cp = cH._10
439- if (if (aM())
424+ let dm = value(dl.payments[0])
425+ let bV = value(dm.assetId)
426+ let dn = dm.amount
427+ let cG = bT(toBase58String(dl.transactionId), toBase58String(bV), dn, dl.caller)
428+ let cm = cG._1
429+ let cn = cG._2
430+ let ca = parseIntValue(cG._9)
431+ let co = cG._10
432+ if (if (aL())
440433 then true
441- else (cb == n))
442- then throw(("Get operation is blocked by admin. Status = " + toString(cb)))
443- else $Tuple5(cn, co, do, bW, cp)
434+ else (ca == n))
435+ then throw(("Get operation is blocked by admin. Status = " + toString(ca)))
436+ else $Tuple5(cm, cn, dn, bV, co)
444437 }
445438
446439
447-func dp (dm,cr,cx) = if ((size(dm.payments) != 2))
440+func do (dl,cq,cw) = if ((size(dl.payments) != 2))
448441 then throw("exactly 2 payments are expected")
449442 else {
450- let dq = value(dm.payments[0])
451- let dr = value(dm.payments[1])
452- let ds = cq(toBase58String(dm.transactionId), cr, dq.amount, dq.assetId, dr.amount, dr.assetId, toString(dm.caller), false, cx)
453- let cb = parseIntValue(ds._8)
454- if (if (if (aM())
443+ let dp = value(dl.payments[0])
444+ let dq = value(dl.payments[1])
445+ let dr = cp(toBase58String(dl.transactionId), cq, dp.amount, dp.assetId, dq.amount, dq.assetId, toString(dl.caller), false, cw)
446+ let ca = parseIntValue(dr._8)
447+ if (if (if (aL())
455448 then true
456- else (cb == l))
449+ else (ca == l))
457450 then true
458- else (cb == n))
459- then throw(("Put operation is blocked by admin. Status = " + toString(cb)))
460- else ds
451+ else (ca == n))
452+ then throw(("Put operation is blocked by admin. Status = " + toString(ca)))
453+ else dr
461454 }
462455
463456
464-func dt (du) = {
465- let dv = invoke(aK, "emit", [du], nil)
466- if ((dv == dv))
457+func ds (dt) = {
458+ let du = invoke(aJ, "emit", [dt], nil)
459+ if ((du == du))
467460 then {
468- let dw = {
469- let aI = dv
470- if ($isInstanceOf(aI, "Address"))
461+ let dv = {
462+ let dw = du
463+ if ($isInstanceOf(dw, "Address"))
471464 then {
472- let dx = aI
473- invoke(dx, "emit", [du], nil)
465+ let dx = dw
466+ invoke(dx, "emit", [dt], nil)
474467 }
475468 else unit
476469 }
477- if ((dw == dw))
478- then du
470+ if ((dv == dv))
471+ then dt
479472 else throw("Strict value is not equal to itself.")
480473 }
481474 else throw("Strict value is not equal to itself.")
482475 }
483476
484477
485-func dy (du) = {
486- let dz = fraction(du, ae, b)
487- $Tuple2((du - dz), dz)
478+func dy (dt) = {
479+ let dz = fraction(dt, ae, b)
480+ $Tuple2((dt - dz), dz)
488481 }
489482
490483
491484 func dA (dB,dC,X,Y) = {
492485 let dD = (Y == unit)
493- let dE = bx(aT(bb))
494- let dF = bx(aT(bc))
495- let dG = if ((dC == bb))
486+ let dE = bw(aS(ba))
487+ let dF = bw(aS(bb))
488+ let dG = if ((dC == ba))
496489 then true
497- else if ((dC == bc))
490+ else if ((dC == bb))
498491 then false
499- else aE("invalid asset")
492+ else aG("invalid asset")
500493 let dH = if (dD)
501494 then $Tuple2(dE, dF)
502495 else if (dG)
516509 let dz = dP._2
517510 let dR = (dI + dN)
518511 let dS = (dJ + dO)
519- let dT = bz(D(dS, be), D(dR, bd))
512+ let dT = by(D(dS, bd), D(dR, bc))
520513 let dU = G(dT, b)
521514 let dV = if (dG)
522515 then dI
523516 else dJ
524517 let dW = toBigInt(dV)
525- let dX = toBigInt(valueOrErrorMessage(assetInfo(ba), (("asset " + toBase58String(ba)) + " doesn't exist")).quantity)
518+ let dX = toBigInt(valueOrErrorMessage(assetInfo(aZ), (("asset " + toBase58String(aZ)) + " doesn't exist")).quantity)
526519 let dY = if ((dX > f))
527520 then true
528- else aE("initial deposit requires all coins")
521+ else aG("initial deposit requires all coins")
529522 if ((dY == dY))
530523 then {
531524 let dZ = toBigInt(dQ)
532525 let ea = max([0, toInt(((dX * (sqrtBigInt((d + ((dZ * d) / dW)), 18, 18, DOWN) - d)) / d))])
533- let cW = if (dD)
526+ let cV = if (dD)
534527 then nil
535- else [IntegerEntry(S(), dU), IntegerEntry(T(height, lastBlock.timestamp), dU), StringEntry(W(toString(value(X)), toBase58String(value(Y))), bi(dL, dM, ea, dU, 0, 0, height, lastBlock.timestamp, 0, 0))]
536- let eb = bz(D(dJ, be), D(dI, bd))
528+ else [IntegerEntry(S(), dU), IntegerEntry(T(height, lastBlock.timestamp), dU), StringEntry(W(toString(value(X)), toBase58String(value(Y))), bh(dL, dM, ea, dU, 0, 0, height, lastBlock.timestamp, 0, 0))]
529+ let eb = by(D(dJ, bd), D(dI, bc))
537530 let ec = G(eb, b)
538531 let ed = {
539532 let ee = if (dG)
540533 then $Tuple2(dL, dI)
541534 else $Tuple2(dM, dJ)
542- let du = ee._1
535+ let dt = ee._1
543536 let ef = ee._2
544- let eg = toInt(fraction(dX, toBigInt((du / 2)), toBigInt(ef)))
537+ let eg = toInt(fraction(dX, toBigInt((dt / 2)), toBigInt(ef)))
545538 fraction((ea - eg), b, eg)
546539 }
547- $Tuple4(ea, cW, dz, ed)
540+ $Tuple4(ea, cV, dz, ed)
548541 }
549542 else throw("Strict value is not equal to itself.")
550543 }
552545
553546 func eh (ei,dQ,dC,X,Y) = {
554547 let dD = (Y == unit)
555- let ej = [if ((dC == ba))
548+ let ej = [if ((dC == aZ))
556549 then true
557- else aE("invalid lp asset")]
550+ else aG("invalid lp asset")]
558551 if ((ej == ej))
559552 then {
560- let ek = if ((ei == bb))
553+ let ek = if ((ei == ba))
561554 then true
562- else if ((ei == bc))
555+ else if ((ei == bb))
563556 then false
564- else aE("invalid asset")
557+ else aG("invalid asset")
565558 let el = if (ek)
566- then toBigInt(bx(aT(bb)))
567- else toBigInt(bx(aT(bc)))
568- let em = bx(aT(bb))
569- let en = bx(aT(bc))
559+ then toBigInt(bw(aS(ba)))
560+ else toBigInt(bw(aS(bb)))
561+ let em = bw(aS(ba))
562+ let en = bw(aS(bb))
570563 let eo = if (ek)
571564 then em
572565 else en
573566 let ep = toBigInt(eo)
574- let dX = toBigInt(valueOrErrorMessage(assetInfo(ba), (("asset " + toBase58String(ba)) + " doesn't exist")).quantity)
567+ let dX = toBigInt(valueOrErrorMessage(assetInfo(aZ), (("asset " + toBase58String(aZ)) + " doesn't exist")).quantity)
575568 let eq = toBigInt(dQ)
576569 let er = max([0, toInt(((el * (d - pow((d - ((eq * d) / dX)), 18, h, 0, 18, DOWN))) / d))])
577570 let es = dy(er)
584577 let ew = eu._2
585578 let ex = eu._3
586579 let ey = eu._4
587- let dT = bz(D(ey, be), D(ex, bd))
580+ let dT = by(D(ey, bd), D(ex, bc))
588581 let dU = G(dT, b)
589- let cW = if (dD)
582+ let cV = if (dD)
590583 then nil
591- else [StringEntry(Z(toString(value(X)), toBase58String(value(Y))), bt(ev, ew, dQ, dU, height, lastBlock.timestamp)), IntegerEntry(S(), dU), IntegerEntry(T(height, lastBlock.timestamp), dU)]
592- let eb = bz(D(en, be), D(em, bd))
584+ else [StringEntry(Z(toString(value(X)), toBase58String(value(Y))), bs(ev, ew, dQ, dU, height, lastBlock.timestamp)), IntegerEntry(S(), dU), IntegerEntry(T(height, lastBlock.timestamp), dU)]
585+ let eb = by(D(en, bd), D(em, bc))
593586 let ec = G(eb, b)
594587 let ed = {
595588 let ez = (toInt(fraction(el, eq, dX)) * 2)
596589 fraction((et - ez), b, ez)
597590 }
598- $Tuple4(et, cW, dz, ed)
591+ $Tuple4(et, cV, dz, ed)
599592 }
600593 else throw("Strict value is not equal to itself.")
601594 }
602595
603596
604-func eA (eB,eC,cc) = {
605- let eD = (pow((eB * eC), 0, 5, 1, 0, DOWN) / cc)
597+func eA (eB,eC,cb) = {
598+ let eD = (pow((eB * eC), 0, 5, 1, 0, DOWN) / cb)
606599 eD
607600 }
608601
609602
610603 func eE () = {
611- let bL = aO()
612- let bY = fromBase58String(bL[q])
613- let eF = bL[r]
614- let da = bL[s]
615- let eG = bx(eF)
616- let eH = bx(da)
617- let cc = valueOrErrorMessage(assetInfo(bY), (("Asset " + toBase58String(bY)) + " doesn't exist")).quantity
618- let eD = eA(eG, eH, cc)
604+ let eF = bw(aS(ba))
605+ let eG = bw(aS(bb))
606+ let cb = valueOrErrorMessage(assetInfo(aZ), aI(makeString(["Asset ", toBase58String(aZ), " doesn't exist"], ""))).quantity
607+ let eD = eA(eF, eG, cb)
619608 eD
620609 }
621610
622611
623-func eI () = {
624- let aI = getString(Q())
625- if ($isInstanceOf(aI, "String"))
612+func eH () = {
613+ let dw = getString(Q())
614+ if ($isInstanceOf(dw, "String"))
626615 then {
627- let eJ = aI
628- fromBase58String(eJ)
616+ let eI = dw
617+ fromBase58String(eI)
629618 }
630- else if ($isInstanceOf(aI, "Unit"))
619+ else if ($isInstanceOf(dw, "Unit"))
631620 then unit
632621 else throw("Match error")
633622 }
634623
635624
636-func eK () = {
637- let aI = getString(R())
638- if ($isInstanceOf(aI, "String"))
625+func eJ () = {
626+ let dw = getString(R())
627+ if ($isInstanceOf(dw, "String"))
639628 then {
640- let eJ = aI
641- fromBase58String(eJ)
629+ let eI = dw
630+ fromBase58String(eI)
642631 }
643- else if ($isInstanceOf(aI, "Unit"))
632+ else if ($isInstanceOf(dw, "Unit"))
644633 then unit
645634 else throw("Match error")
646635 }
647636
648637
649-func eL (dm) = {
650- let aI = eI()
651- if ($isInstanceOf(aI, "ByteVector"))
638+func eK (dl) = {
639+ let dw = eH()
640+ if ($isInstanceOf(dw, "ByteVector"))
652641 then {
653- let eM = aI
654- (dm.callerPublicKey == eM)
642+ let eL = dw
643+ (dl.callerPublicKey == eL)
655644 }
656- else if ($isInstanceOf(aI, "Unit"))
657- then (dm.caller == this)
645+ else if ($isInstanceOf(dw, "Unit"))
646+ then (dl.caller == this)
658647 else throw("Match error")
659648 }
660649
661650
662-func eN (dm) = {
663- let eO = throw("Permission denied")
664- let aI = eI()
665- if ($isInstanceOf(aI, "ByteVector"))
651+func eM (dl) = {
652+ let eN = throw("Permission denied")
653+ let dw = eH()
654+ if ($isInstanceOf(dw, "ByteVector"))
666655 then {
667- let eM = aI
668- if ((dm.callerPublicKey == eM))
656+ let eL = dw
657+ if ((dl.callerPublicKey == eL))
669658 then true
670- else eO
659+ else eN
671660 }
672- else if ($isInstanceOf(aI, "Unit"))
673- then if ((dm.caller == this))
661+ else if ($isInstanceOf(dw, "Unit"))
662+ then if ((dl.caller == this))
674663 then true
675- else eO
664+ else eN
676665 else throw("Match error")
677666 }
678667
679668
680-@Callable(dm)
681-func setManager (eP) = {
682- let eQ = eN(dm)
683- if ((eQ == eQ))
669+@Callable(dl)
670+func setManager (eO) = {
671+ let eP = eM(dl)
672+ if ((eP == eP))
684673 then {
685- let eR = fromBase58String(eP)
686- if ((eR == eR))
687- then [StringEntry(R(), eP)]
674+ let eQ = fromBase58String(eO)
675+ if ((eQ == eQ))
676+ then [StringEntry(R(), eO)]
688677 else throw("Strict value is not equal to itself.")
689678 }
690679 else throw("Strict value is not equal to itself.")
692681
693682
694683
695-@Callable(dm)
684+@Callable(dl)
696685 func confirmManager () = {
697- let eS = eK()
698- let eT = if (isDefined(eS))
686+ let eR = eJ()
687+ let eS = if (isDefined(eR))
699688 then true
700689 else throw("No pending manager")
701- if ((eT == eT))
690+ if ((eS == eS))
702691 then {
703- let eU = if ((dm.callerPublicKey == value(eS)))
692+ let eT = if ((dl.callerPublicKey == value(eR)))
704693 then true
705694 else throw("You are not pending manager")
706- if ((eU == eU))
707- then [StringEntry(Q(), toBase58String(value(eS))), DeleteEntry(R())]
695+ if ((eT == eT))
696+ then [StringEntry(Q(), toBase58String(value(eR))), DeleteEntry(R())]
708697 else throw("Strict value is not equal to itself.")
709698 }
710699 else throw("Strict value is not equal to itself.")
712701
713702
714703
715-@Callable(dm)
716-func put (cr,eV) = if ((0 > cr))
704+@Callable(dl)
705+func put (cq,eU) = if ((0 > cq))
717706 then throw("Invalid slippageTolerance passed")
718707 else {
719- let ds = dp(dm, cr, true)
720- let cT = ds._2
721- let bY = ds._7
722- let cp = ds._9
723- let cU = ds._10
724- let cV = ds._11
725- let eW = ds._12
726- let eX = ds._13
727- let dv = invoke(aK, "emit", [cT], nil)
728- if ((dv == dv))
708+ let dr = do(dl, cq, true)
709+ let cS = dr._2
710+ let bX = dr._7
711+ let co = dr._9
712+ let cT = dr._10
713+ let cU = dr._11
714+ let eV = dr._12
715+ let eW = dr._13
716+ let du = invoke(aJ, "emit", [cS], nil)
717+ if ((du == du))
729718 then {
730- let dw = {
731- let aI = dv
732- if ($isInstanceOf(aI, "Address"))
719+ let dv = {
720+ let dw = du
721+ if ($isInstanceOf(dw, "Address"))
733722 then {
734- let dx = aI
735- invoke(dx, "emit", [cT], nil)
723+ let dx = dw
724+ invoke(dx, "emit", [cS], nil)
736725 }
737726 else unit
738727 }
739- if ((dw == dw))
728+ if ((dv == dv))
740729 then {
741- let eY = if ((cU > 0))
742- then invoke(bh, "put", nil, [AttachedPayment(eW, cU)])
730+ let eX = if ((cT > 0))
731+ then invoke(bg, "put", nil, [AttachedPayment(eV, cT)])
743732 else nil
744- if ((eY == eY))
733+ if ((eX == eX))
745734 then {
746- let eZ = if ((cV > 0))
747- then invoke(bh, "put", nil, [AttachedPayment(eX, cV)])
735+ let eY = if ((cU > 0))
736+ then invoke(bg, "put", nil, [AttachedPayment(eW, cU)])
748737 else nil
749- if ((eZ == eZ))
738+ if ((eY == eY))
750739 then {
751- let fa = if (eV)
740+ let eZ = if (eU)
752741 then {
753- let fb = invoke(bg, "stake", nil, [AttachedPayment(bY, cT)])
754- if ((fb == fb))
742+ let fa = invoke(bf, "stake", nil, [AttachedPayment(bX, cS)])
743+ if ((fa == fa))
755744 then nil
756745 else throw("Strict value is not equal to itself.")
757746 }
758- else [ScriptTransfer(dm.caller, cT, bY)]
759- (cp ++ fa)
747+ else [ScriptTransfer(dl.caller, cS, bX)]
748+ (co ++ eZ)
760749 }
761750 else throw("Strict value is not equal to itself.")
762751 }
769758
770759
771760
772-@Callable(dm)
773-func putForFree (fc) = if ((0 > fc))
761+@Callable(dl)
762+func putForFree (fb) = if ((0 > fb))
774763 then throw("Invalid value passed")
775764 else {
776- let ds = dp(dm, fc, false)
777- ds._9
765+ let dr = do(dl, fb, false)
766+ dr._9
778767 }
779768
780769
781770
782-@Callable(dm)
783-func putOneTkn (fd,fe) = {
784- let ff = {
785- let fg = invoke(aK, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
786- if ($isInstanceOf(fg, "Boolean"))
787- then fg
788- else throw(($getType(fg) + " couldn't be cast to Boolean"))
771+@Callable(dl)
772+func putOneTkn (fc,fd) = {
773+ let fe = {
774+ let ff = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
775+ if ($isInstanceOf(ff, "Boolean"))
776+ then ff
777+ else throw(($getType(ff) + " couldn't be cast to Boolean"))
789778 }
790- let fh = if (if (if (aM())
779+ let fg = if (if (if (aL())
791780 then true
792- else (aZ == l))
781+ else (aY == l))
793782 then true
794- else (aZ == n))
783+ else (aY == n))
795784 then true
796- else ff
797- let ej = [if (if (!(fh))
785+ else fe
786+ let ej = [if (if (!(fg))
798787 then true
799- else eL(dm))
788+ else eK(dl))
800789 then true
801- else aE("put operation is blocked by admin"), if ((size(dm.payments) == 1))
790+ else aG("put operation is blocked by admin"), if ((size(dl.payments) == 1))
802791 then true
803- else aE("exactly 1 payment are expected")]
792+ else aG("exactly 1 payment are expected")]
804793 if ((ej == ej))
805794 then {
806- let fi = dm.payments[0]
807- let dC = fi.assetId
808- let dB = fi.amount
809- let X = dm.caller
810- let Y = dm.transactionId
811- let fj = dA(dB, dC, X, Y)
812- let fk = fj._1
813- let cW = fj._2
814- let dz = fj._3
815- let fl = fj._4
816- let fm = if (if ((fd > 0))
817- then (fd > fk)
795+ let fh = dl.payments[0]
796+ let dC = fh.assetId
797+ let dB = fh.amount
798+ let X = dl.caller
799+ let Y = dl.transactionId
800+ let fi = dA(dB, dC, X, Y)
801+ let fj = fi._1
802+ let cV = fi._2
803+ let dz = fi._3
804+ let fk = fi._4
805+ let fl = if (if ((fc > 0))
806+ then (fc > fj)
818807 else false)
819- then aE(makeString(["amount to receive is less than ", toString(fd)], ""))
820- else fk
821- let dv = dt(fm)
822- if ((dv == dv))
808+ then aG(makeString(["amount to receive is less than ", toString(fc)], ""))
809+ else fj
810+ let du = ds(fl)
811+ if ((du == du))
823812 then {
824- let fa = if (fe)
813+ let eZ = if (fd)
825814 then {
826- let fn = invoke(bg, "stake", nil, [AttachedPayment(ba, fm)])
827- if ((fn == fn))
815+ let fm = invoke(bf, "stake", nil, [AttachedPayment(aZ, fl)])
816+ if ((fm == fm))
828817 then nil
829818 else throw("Strict value is not equal to itself.")
830819 }
831- else [ScriptTransfer(dm.caller, fm, ba)]
832- let fo = if ((dz > 0))
833- then [ScriptTransfer(aL, dz, dC)]
820+ else [ScriptTransfer(dl.caller, fl, aZ)]
821+ let fn = if ((dz > 0))
822+ then [ScriptTransfer(aK, dz, dC)]
834823 else nil
835- $Tuple2(((cW ++ fa) ++ fo), fm)
824+ $Tuple2(((cV ++ eZ) ++ fn), fl)
836825 }
837826 else throw("Strict value is not equal to itself.")
838827 }
841830
842831
843832
844-@Callable(dm)
833+@Callable(dl)
845834 func putOneTknREADONLY (dC,dB) = {
846- let fp = dA(dB, aR(dC), unit, unit)
847- let fk = fp._1
848- let cW = fp._2
849- let dz = fp._3
850- let fl = fp._4
851- $Tuple2(nil, $Tuple3(fk, dz, fl))
835+ let fo = dA(dB, aQ(dC), unit, unit)
836+ let fj = fo._1
837+ let cV = fo._2
838+ let dz = fo._3
839+ let fk = fo._4
840+ $Tuple2(nil, $Tuple3(fj, dz, fk))
852841 }
853842
854843
855844
856-@Callable(dm)
857-func getOneTkn (fq,fd) = {
858- let ff = {
859- let fg = invoke(aK, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
860- if ($isInstanceOf(fg, "Boolean"))
861- then fg
862- else throw(($getType(fg) + " couldn't be cast to Boolean"))
845+@Callable(dl)
846+func getOneTkn (fp,fc) = {
847+ let fe = {
848+ let ff = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
849+ if ($isInstanceOf(ff, "Boolean"))
850+ then ff
851+ else throw(($getType(ff) + " couldn't be cast to Boolean"))
863852 }
864- let fr = if (if (aM())
853+ let fq = if (if (aL())
865854 then true
866- else (aZ == n))
855+ else (aY == n))
867856 then true
868- else ff
869- let ej = [if (if (!(fr))
857+ else fe
858+ let ej = [if (if (!(fq))
870859 then true
871- else eL(dm))
860+ else eK(dl))
872861 then true
873- else aE("get operation is blocked by admin"), if ((size(dm.payments) == 1))
862+ else aG("get operation is blocked by admin"), if ((size(dl.payments) == 1))
874863 then true
875- else aE("exactly 1 payment are expected")]
864+ else aG("exactly 1 payment are expected")]
876865 if ((ej == ej))
877866 then {
878- let ei = aR(fq)
879- let fi = dm.payments[0]
880- let dC = fi.assetId
881- let dQ = fi.amount
882- let X = dm.caller
883- let Y = dm.transactionId
884- let fs = eh(ei, dQ, dC, X, Y)
885- let ft = fs._1
886- let cW = fs._2
887- let dz = fs._3
888- let fl = fs._4
889- let du = if (if ((fd > 0))
890- then (fd > ft)
867+ let ei = aQ(fp)
868+ let fh = dl.payments[0]
869+ let dC = fh.assetId
870+ let dQ = fh.amount
871+ let X = dl.caller
872+ let Y = dl.transactionId
873+ let fr = eh(ei, dQ, dC, X, Y)
874+ let fs = fr._1
875+ let cV = fr._2
876+ let dz = fr._3
877+ let fk = fr._4
878+ let dt = if (if ((fc > 0))
879+ then (fc > fs)
891880 else false)
892- then aE(makeString(["amount to receive is less than ", toString(fd)], ""))
893- else ft
894- let fu = invoke(aK, "burn", [dQ], [AttachedPayment(dC, dQ)])
895- if ((fu == fu))
881+ then aG(makeString(["amount to receive is less than ", toString(fc)], ""))
882+ else fs
883+ let ft = invoke(aJ, "burn", [dQ], [AttachedPayment(dC, dQ)])
884+ if ((ft == ft))
896885 then {
897- let fv = [ScriptTransfer(X, du, ei)]
898- let fo = if ((dz > 0))
899- then [ScriptTransfer(aL, dz, ei)]
886+ let fu = [ScriptTransfer(X, dt, ei)]
887+ let fn = if ((dz > 0))
888+ then [ScriptTransfer(aK, dz, ei)]
900889 else nil
901- $Tuple2(((cW ++ fv) ++ fo), du)
890+ $Tuple2(((cV ++ fu) ++ fn), dt)
902891 }
903892 else throw("Strict value is not equal to itself.")
904893 }
907896
908897
909898
910-@Callable(dm)
899+@Callable(dl)
911900 func getOneTknREADONLY (ei,dQ) = {
912- let fw = eh(aR(ei), dQ, ba, unit, unit)
913- let ft = fw._1
914- let cW = fw._2
915- let dz = fw._3
916- let fl = fw._4
917- $Tuple2(nil, $Tuple3(ft, dz, fl))
901+ let fv = eh(aQ(ei), dQ, aZ, unit, unit)
902+ let fs = fv._1
903+ let cV = fv._2
904+ let dz = fv._3
905+ let fk = fv._4
906+ $Tuple2(nil, $Tuple3(fs, dz, fk))
918907 }
919908
920909
921910
922-@Callable(dm)
923-func unstakeAndGetOneTkn (fx,fq,fd) = {
924- let ff = {
925- let fg = invoke(aK, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
926- if ($isInstanceOf(fg, "Boolean"))
927- then fg
928- else throw(($getType(fg) + " couldn't be cast to Boolean"))
911+@Callable(dl)
912+func unstakeAndGetOneTkn (fw,fp,fc) = {
913+ let fe = {
914+ let ff = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
915+ if ($isInstanceOf(ff, "Boolean"))
916+ then ff
917+ else throw(($getType(ff) + " couldn't be cast to Boolean"))
929918 }
930- let fr = if (if (aM())
919+ let fq = if (if (aL())
931920 then true
932- else (aZ == n))
921+ else (aY == n))
933922 then true
934- else ff
935- let ej = [if (if (!(fr))
923+ else fe
924+ let ej = [if (if (!(fq))
936925 then true
937- else eL(dm))
926+ else eK(dl))
938927 then true
939- else aE("get operation is blocked by admin"), if ((size(dm.payments) == 0))
928+ else aG("get operation is blocked by admin"), if ((size(dl.payments) == 0))
940929 then true
941- else aE("no payments are expected")]
930+ else aG("no payments are expected")]
942931 if ((ej == ej))
943932 then {
944- let ei = aR(fq)
945- let X = dm.caller
946- let Y = dm.transactionId
947- let fy = invoke(bg, "unstake", [toBase58String(ba), fx], nil)
948- if ((fy == fy))
933+ let ei = aQ(fp)
934+ let X = dl.caller
935+ let Y = dl.transactionId
936+ let fx = invoke(bf, "unstake", [toBase58String(aZ), fw], nil)
937+ if ((fx == fx))
949938 then {
950- let fz = eh(ei, fx, ba, X, Y)
951- let ft = fz._1
952- let cW = fz._2
953- let dz = fz._3
954- let fl = fz._4
955- let du = if (if ((fd > 0))
956- then (fd > ft)
939+ let fy = eh(ei, fw, aZ, X, Y)
940+ let fs = fy._1
941+ let cV = fy._2
942+ let dz = fy._3
943+ let fk = fy._4
944+ let dt = if (if ((fc > 0))
945+ then (fc > fs)
957946 else false)
958- then aE(makeString(["amount to receive is less than ", toString(fd)], ""))
959- else ft
960- let fu = invoke(aK, "burn", [fx], [AttachedPayment(ba, fx)])
961- if ((fu == fu))
947+ then aG(makeString(["amount to receive is less than ", toString(fc)], ""))
948+ else fs
949+ let ft = invoke(aJ, "burn", [fw], [AttachedPayment(aZ, fw)])
950+ if ((ft == ft))
962951 then {
963- let fv = [ScriptTransfer(dm.caller, du, ei)]
964- let fo = if ((dz > 0))
965- then [ScriptTransfer(aL, dz, ei)]
952+ let fu = [ScriptTransfer(dl.caller, dt, ei)]
953+ let fn = if ((dz > 0))
954+ then [ScriptTransfer(aK, dz, ei)]
966955 else nil
967- $Tuple2(((cW ++ fv) ++ fo), du)
956+ $Tuple2(((cV ++ fu) ++ fn), dt)
968957 }
969958 else throw("Strict value is not equal to itself.")
970959 }
975964
976965
977966
978-@Callable(dm)
967+@Callable(dl)
979968 func get () = {
980- let cH = dl(dm)
981- let fA = cH._1
982- let co = cH._2
983- let do = cH._3
984- let bW = cH._4
985- let cp = cH._5
986- let fB = invoke(aK, "burn", [do], [AttachedPayment(bW, do)])
987- if ((fB == fB))
988- then cp
969+ let cG = dk(dl)
970+ let fz = cG._1
971+ let cn = cG._2
972+ let dn = cG._3
973+ let bV = cG._4
974+ let co = cG._5
975+ let fA = invoke(aJ, "burn", [dn], [AttachedPayment(bV, dn)])
976+ if ((fA == fA))
977+ then co
989978 else throw("Strict value is not equal to itself.")
990979 }
991980
992981
993982
994-@Callable(dm)
995-func getNoLess (fC,fD) = {
996- let cH = dl(dm)
997- let cn = cH._1
998- let co = cH._2
999- let do = cH._3
1000- let bW = cH._4
1001- let cp = cH._5
1002- if ((fC > cn))
1003- then throw(((("noLessThenAmtAsset failed: " + toString(cn)) + " < ") + toString(fC)))
1004- else if ((fD > co))
1005- then throw(((("noLessThenPriceAsset failed: " + toString(co)) + " < ") + toString(fD)))
983+@Callable(dl)
984+func getNoLess (fB,fC) = {
985+ let cG = dk(dl)
986+ let cm = cG._1
987+ let cn = cG._2
988+ let dn = cG._3
989+ let bV = cG._4
990+ let co = cG._5
991+ if ((fB > cm))
992+ then throw(((("noLessThenAmtAsset failed: " + toString(cm)) + " < ") + toString(fB)))
993+ else if ((fC > cn))
994+ then throw(((("noLessThenPriceAsset failed: " + toString(cn)) + " < ") + toString(fC)))
1006995 else {
1007- let fB = invoke(aK, "burn", [do], [AttachedPayment(bW, do)])
1008- if ((fB == fB))
1009- then cp
996+ let fA = invoke(aJ, "burn", [dn], [AttachedPayment(bV, dn)])
997+ if ((fA == fA))
998+ then co
1010999 else throw("Strict value is not equal to itself.")
10111000 }
10121001 }
10131002
10141003
10151004
1016-@Callable(dm)
1017-func unstakeAndGet (du) = {
1018- let fE = if ((size(dm.payments) != 0))
1005+@Callable(dl)
1006+func unstakeAndGet (dt) = {
1007+ let fD = if ((size(dl.payments) != 0))
10191008 then throw("No payments are expected")
10201009 else true
1021- if ((fE == fE))
1010+ if ((fD == fD))
10221011 then {
1023- let bL = aO()
1024- let bY = fromBase58String(bL[q])
1025- let fy = invoke(bg, "unstake", [toBase58String(bY), du], nil)
1026- if ((fy == fy))
1012+ let bK = aN()
1013+ let bX = fromBase58String(bK[q])
1014+ let fx = invoke(bf, "unstake", [toBase58String(bX), dt], nil)
1015+ if ((fx == fx))
10271016 then {
1028- let cH = bU(toBase58String(dm.transactionId), toBase58String(bY), du, dm.caller)
1029- let cb = parseIntValue(cH._9)
1030- let cp = cH._10
1031- let fF = if (if (aM())
1017+ let cG = bT(toBase58String(dl.transactionId), toBase58String(bX), dt, dl.caller)
1018+ let ca = parseIntValue(cG._9)
1019+ let co = cG._10
1020+ let fE = if (if (aL())
10321021 then true
1033- else (cb == n))
1034- then throw(("Get operation is blocked by admin. Status = " + toString(cb)))
1022+ else (ca == n))
1023+ then throw(("Get operation is blocked by admin. Status = " + toString(ca)))
10351024 else true
1036- if ((fF == fF))
1025+ if ((fE == fE))
10371026 then {
1038- let fB = invoke(aK, "burn", [du], [AttachedPayment(bY, du)])
1039- if ((fB == fB))
1040- then cp
1027+ let fA = invoke(aJ, "burn", [dt], [AttachedPayment(bX, dt)])
1028+ if ((fA == fA))
1029+ then co
10411030 else throw("Strict value is not equal to itself.")
10421031 }
10431032 else throw("Strict value is not equal to itself.")
10491038
10501039
10511040
1052-@Callable(dm)
1053-func unstakeAndGetNoLess (fx,fG,fD) = {
1054- let fr = if (aM())
1041+@Callable(dl)
1042+func unstakeAndGetNoLess (fw,fF,fC) = {
1043+ let fq = if (aL())
10551044 then true
1056- else (aZ == n)
1057- let ej = [if (!(fr))
1045+ else (aY == n)
1046+ let ej = [if (!(fq))
10581047 then true
1059- else throw("get operation is blocked by admin"), if ((size(dm.payments) == 0))
1048+ else throw("get operation is blocked by admin"), if ((size(dl.payments) == 0))
10601049 then true
10611050 else throw("no payments are expected")]
10621051 if ((ej == ej))
10631052 then {
1064- let fy = invoke(bg, "unstake", [toBase58String(ba), fx], nil)
1065- if ((fy == fy))
1053+ let fx = invoke(bf, "unstake", [toBase58String(aZ), fw], nil)
1054+ if ((fx == fx))
10661055 then {
1067- let cH = bU(toBase58String(dm.transactionId), toBase58String(ba), fx, dm.caller)
1068- let cn = cH._1
1069- let co = cH._2
1070- let cp = cH._10
1071- let fH = [if ((cn >= fG))
1056+ let cG = bT(toBase58String(dl.transactionId), toBase58String(aZ), fw, dl.caller)
1057+ let cm = cG._1
1058+ let cn = cG._2
1059+ let co = cG._10
1060+ let fG = [if ((cm >= fF))
10721061 then true
1073- else throw(makeString(["amount asset amount to receive is less than ", toString(fG)], "")), if ((co >= fD))
1062+ else throw(makeString(["amount asset amount to receive is less than ", toString(fF)], "")), if ((cn >= fC))
10741063 then true
1075- else throw(makeString(["price asset amount to receive is less than ", toString(fD)], ""))]
1076- if ((fH == fH))
1064+ else throw(makeString(["price asset amount to receive is less than ", toString(fC)], ""))]
1065+ if ((fG == fG))
10771066 then {
1078- let fB = invoke(aK, "burn", [fx], [AttachedPayment(ba, fx)])
1079- if ((fB == fB))
1080- then cp
1067+ let fA = invoke(aJ, "burn", [fw], [AttachedPayment(aZ, fw)])
1068+ if ((fA == fA))
1069+ then co
10811070 else throw("Strict value is not equal to itself.")
10821071 }
10831072 else throw("Strict value is not equal to itself.")
10891078
10901079
10911080
1092-@Callable(dm)
1093-func activate (fI,fJ) = if ((toString(dm.caller) != toString(aK)))
1081+@Callable(dl)
1082+func activate (fH,fI) = if ((toString(dl.caller) != toString(aJ)))
10941083 then throw("permissions denied")
1095- else $Tuple2([StringEntry(aa(), fI), StringEntry(ab(), fJ)], "success")
1084+ else $Tuple2([StringEntry(aa(), fH), StringEntry(ab(), fI)], "success")
10961085
10971086
10981087
1099-@Callable(dm)
1088+@Callable(dl)
11001089 func refreshKLp () = {
1101- let fK = valueOrElse(getInteger(ag), 0)
1102- let fL = aE(makeString([value(getString(ah)), "blocks have not passed since the previous call"], " "))
1103- let fM = if (((height - fK) >= 30))
1104- then true
1105- else fL
1106- if ((fM == fM))
1090+ let fJ = valueOrElse(getInteger(ag), 0)
1091+ let fK = if (((height - fJ) >= aj))
1092+ then unit
1093+ else aG(makeString([toString(aj), " blocks have not passed since the previous call"], ""))
1094+ if ((fK == fK))
11071095 then {
1108- let eD = aH(eE())
1096+ let eD = eE()
11091097 [IntegerEntry(ag, height), IntegerEntry(af, eD)]
11101098 }
11111099 else throw("Strict value is not equal to itself.")
11131101
11141102
11151103
1116-@Callable(dm)
1117-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aO())
1104+@Callable(dl)
1105+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aN())
11181106
11191107
11201108
1121-@Callable(dm)
1122-func getAccBalanceWrapperREADONLY (by) = $Tuple2(nil, bx(by))
1109+@Callable(dl)
1110+func getAccBalanceWrapperREADONLY (bx) = $Tuple2(nil, bw(bx))
11231111
11241112
11251113
1126-@Callable(dm)
1127-func calcPricesWrapperREADONLY (bF,bG,bK) = {
1128- let bT = bJ(bF, bG, bK)
1129- $Tuple2(nil, [toString(bT[0]), toString(bT[1]), toString(bT[2])])
1114+@Callable(dl)
1115+func calcPricesWrapperREADONLY (bE,bF,bJ) = {
1116+ let bS = bI(bE, bF, bJ)
1117+ $Tuple2(nil, [toString(bS[0]), toString(bS[1]), toString(bS[2])])
11301118 }
11311119
11321120
11331121
1134-@Callable(dm)
1122+@Callable(dl)
11351123 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
11361124
11371125
11381126
1139-@Callable(dm)
1127+@Callable(dl)
11401128 func fromX18WrapperREADONLY (H,I) = $Tuple2(nil, G(parseBigIntValue(H), I))
11411129
11421130
11431131
1144-@Callable(dm)
1145-func calcPriceBigIntWrapperREADONLY (bA,bB) = $Tuple2(nil, toString(bz(parseBigIntValue(bA), parseBigIntValue(bB))))
1132+@Callable(dl)
1133+func calcPriceBigIntWrapperREADONLY (bz,bA) = $Tuple2(nil, toString(by(parseBigIntValue(bz), parseBigIntValue(bA))))
11461134
11471135
11481136
1149-@Callable(dm)
1150-func estimatePutOperationWrapperREADONLY (bV,cr,cs,ct,cu,cv,X,cw,cx) = $Tuple2(nil, cq(bV, cr, cs, ct, cu, cv, X, cw, cx))
1137+@Callable(dl)
1138+func estimatePutOperationWrapperREADONLY (bU,cq,cr,cs,ct,cu,X,cv,cw) = $Tuple2(nil, cp(bU, cq, cr, cs, ct, cu, X, cv, cw))
11511139
11521140
11531141
1154-@Callable(dm)
1155-func estimateGetOperationWrapperREADONLY (bV,bW,bX,X) = {
1156- let cH = bU(bV, bW, bX, addressFromStringValue(X))
1157- $Tuple2(nil, $Tuple10(cH._1, cH._2, cH._3, cH._4, cH._5, cH._6, cH._7, toString(cH._8), cH._9, cH._10))
1142+@Callable(dl)
1143+func estimateGetOperationWrapperREADONLY (bU,bV,bW,X) = {
1144+ let cG = bT(bU, bV, bW, addressFromStringValue(X))
1145+ $Tuple2(nil, $Tuple10(cG._1, cG._2, cG._3, cG._4, cG._5, cG._6, cG._7, toString(cG._8), cG._9, cG._10))
11581146 }
11591147
11601148
11611149
1162-@Callable(dm)
1150+@Callable(dl)
11631151 func statsREADONLY () = {
1164- let bL = aO()
1165- let bY = fromBase58String(bL[q])
1166- let cZ = bL[r]
1167- let da = bL[s]
1168- let cA = bL[v]
1169- let cB = bL[w]
1170- let bM = parseIntValue(bL[t])
1171- let bN = parseIntValue(bL[u])
1172- let fN = valueOrErrorMessage(assetInfo(bY), (("Asset " + toBase58String(bY)) + " doesn't exist")).quantity
1173- let db = bx(cZ)
1174- let dc = bx(da)
1175- let fO = if ((fN == 0))
1152+ let bK = aN()
1153+ let bX = fromBase58String(bK[q])
1154+ let cY = bK[r]
1155+ let cZ = bK[s]
1156+ let cz = bK[v]
1157+ let cA = bK[w]
1158+ let bL = parseIntValue(bK[t])
1159+ let bM = parseIntValue(bK[u])
1160+ let fL = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
1161+ let da = bw(cY)
1162+ let db = bw(cZ)
1163+ let fM = if ((fL == 0))
11761164 then [e, e, e]
1177- else bJ(db, dc, fN)
1178- let ci = 0
1179- let fP = G(fO[1], b)
1180- let fQ = G(fO[2], b)
1181- let fR = value(getInteger(aK, as(toString(this))))
1182- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(db), toString(dc), toString(fN), toString(ci), toString(fP), toString(fQ), toString(fR)], j))
1165+ else bI(da, db, fL)
1166+ let ch = 0
1167+ let fN = G(fM[1], b)
1168+ let fO = G(fM[2], b)
1169+ let fP = value(getInteger(aJ, au(toString(this))))
1170+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(da), toString(db), toString(fL), toString(ch), toString(fN), toString(fO), toString(fP)], j))
11831171 }
11841172
11851173
11861174
1187-@Callable(dm)
1188-func evaluatePutByAmountAssetREADONLY (cs) = {
1189- let bL = aO()
1190- let bY = fromBase58String(bL[q])
1191- let cy = bL[r]
1175+@Callable(dl)
1176+func evaluatePutByAmountAssetREADONLY (cr) = {
1177+ let bK = aN()
1178+ let bX = fromBase58String(bK[q])
1179+ let cx = bK[r]
1180+ let bY = fromBase58String(cx)
1181+ let cy = bK[s]
11921182 let bZ = fromBase58String(cy)
1193- let cz = bL[s]
1194- let ca = fromBase58String(cz)
1195- let bM = parseIntValue(bL[t])
1196- let bN = parseIntValue(bL[u])
1197- let cb = bL[p]
1198- let fN = valueOrErrorMessage(assetInfo(bY), (("Asset " + toBase58String(bY)) + " doesn't exist")).quantity
1199- let db = bx(cy)
1200- let dc = bx(cz)
1183+ let bL = parseIntValue(bK[t])
1184+ let bM = parseIntValue(bK[u])
1185+ let ca = bK[p]
1186+ let fL = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
1187+ let da = bw(cx)
1188+ let db = bw(cy)
1189+ let bG = D(da, bL)
12011190 let bH = D(db, bM)
1202- let bI = D(dc, bN)
1203- let ch = if ((fN == 0))
1191+ let cg = if ((fL == 0))
12041192 then e
1205- else bz(bI, bH)
1206- let cE = D(cs, bM)
1207- let cF = fraction(cE, ch, d)
1208- let cu = G(cF, bN)
1209- let ds = cq("", 500000, cs, bZ, cu, ca, "", true, false)
1210- let cP = ds._1
1211- let fS = ds._3
1212- let cd = ds._4
1213- let cf = ds._5
1214- let cc = ds._6
1215- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cP), toString(G(ch, b)), toString(cd), toString(cf), toString(cc), cb, toString(cs), toString(cu)], j))
1193+ else by(bH, bG)
1194+ let cD = D(cr, bL)
1195+ let cE = fraction(cD, cg, d)
1196+ let ct = G(cE, bM)
1197+ let dr = cp("", 500000, cr, bY, ct, bZ, "", true, false)
1198+ let cO = dr._1
1199+ let fQ = dr._3
1200+ let cc = dr._4
1201+ let ce = dr._5
1202+ let cb = dr._6
1203+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cO), toString(G(cg, b)), toString(cc), toString(ce), toString(cb), ca, toString(cr), toString(ct)], j))
12161204 }
12171205
12181206
12191207
1220-@Callable(dm)
1221-func evaluatePutByPriceAssetREADONLY (cu) = {
1222- let bL = aO()
1223- let bY = fromBase58String(bL[q])
1224- let cy = bL[r]
1208+@Callable(dl)
1209+func evaluatePutByPriceAssetREADONLY (ct) = {
1210+ let bK = aN()
1211+ let bX = fromBase58String(bK[q])
1212+ let cx = bK[r]
1213+ let bY = fromBase58String(cx)
1214+ let cy = bK[s]
12251215 let bZ = fromBase58String(cy)
1226- let cz = bL[s]
1227- let ca = fromBase58String(cz)
1228- let bM = parseIntValue(bL[t])
1229- let bN = parseIntValue(bL[u])
1230- let cb = bL[p]
1231- let fN = valueOrErrorMessage(assetInfo(bY), (("Asset " + toBase58String(bY)) + " doesn't exist")).quantity
1232- let fT = bx(cy)
1233- let fU = bx(cz)
1234- let fV = D(fT, bM)
1235- let fW = D(fU, bN)
1236- let ch = if ((fN == 0))
1216+ let bL = parseIntValue(bK[t])
1217+ let bM = parseIntValue(bK[u])
1218+ let ca = bK[p]
1219+ let fL = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
1220+ let fR = bw(cx)
1221+ let fS = bw(cy)
1222+ let fT = D(fR, bL)
1223+ let fU = D(fS, bM)
1224+ let cg = if ((fL == 0))
12371225 then e
1238- else bz(fW, fV)
1239- let cF = D(cu, bN)
1240- let cE = fraction(cF, d, ch)
1241- let cs = G(cE, bM)
1242- let ds = cq("", 500000, cs, bZ, cu, ca, "", true, false)
1243- let cP = ds._1
1244- let fS = ds._3
1245- let cd = ds._4
1246- let cf = ds._5
1247- let cc = ds._6
1248- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cP), toString(G(ch, b)), toString(cd), toString(cf), toString(cc), cb, toString(cs), toString(cu)], j))
1226+ else by(fU, fT)
1227+ let cE = D(ct, bM)
1228+ let cD = fraction(cE, d, cg)
1229+ let cr = G(cD, bL)
1230+ let dr = cp("", 500000, cr, bY, ct, bZ, "", true, false)
1231+ let cO = dr._1
1232+ let fQ = dr._3
1233+ let cc = dr._4
1234+ let ce = dr._5
1235+ let cb = dr._6
1236+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cO), toString(G(cg, b)), toString(cc), toString(ce), toString(cb), ca, toString(cr), toString(ct)], j))
12491237 }
12501238
12511239
12521240
1253-@Callable(dm)
1254-func evaluateGetREADONLY (fX,fY) = {
1255- let cH = bU("", fX, fY, this)
1256- let cn = cH._1
1257- let co = cH._2
1258- let cd = cH._5
1259- let cf = cH._6
1260- let cc = cH._7
1261- let ci = cH._8
1262- let cb = parseIntValue(cH._9)
1263- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cn), toString(co), toString(cd), toString(cf), toString(cc), toString(ci), toString(cb)], j))
1241+@Callable(dl)
1242+func evaluateGetREADONLY (fV,fW) = {
1243+ let cG = bT("", fV, fW, this)
1244+ let cm = cG._1
1245+ let cn = cG._2
1246+ let cc = cG._5
1247+ let ce = cG._6
1248+ let cb = cG._7
1249+ let ch = cG._8
1250+ let ca = parseIntValue(cG._9)
1251+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cm), toString(cn), toString(cc), toString(ce), toString(cb), toString(ch), toString(ca)], j))
12641252 }
12651253
12661254
1267-@Verifier(fZ)
1268-func ga () = {
1269- let gb = {
1270- let aI = eI()
1271- if ($isInstanceOf(aI, "ByteVector"))
1255+@Verifier(fX)
1256+func fY () = {
1257+ let fZ = {
1258+ let dw = eH()
1259+ if ($isInstanceOf(dw, "ByteVector"))
12721260 then {
1273- let eM = aI
1274- eM
1261+ let eL = dw
1262+ eL
12751263 }
1276- else if ($isInstanceOf(aI, "Unit"))
1277- then fZ.senderPublicKey
1264+ else if ($isInstanceOf(dw, "Unit"))
1265+ then fX.senderPublicKey
12781266 else throw("Match error")
12791267 }
1280- let aI = fZ
1281- if ($isInstanceOf(aI, "Order"))
1268+ let dw = fX
1269+ if ($isInstanceOf(dw, "Order"))
12821270 then {
1283- let cY = aI
1284- let gc = aN()
1285- let ax = cX(cY)
1286- let ay = sigVerify(cY.bodyBytes, cY.proofs[0], cY.senderPublicKey)
1287- let az = sigVerify(cY.bodyBytes, cY.proofs[1], gc)
1288- if (if (if (ax)
1289- then ay
1271+ let cX = dw
1272+ let ga = aM()
1273+ let az = cW(cX)
1274+ let aA = sigVerify(cX.bodyBytes, cX.proofs[0], cX.senderPublicKey)
1275+ let aB = sigVerify(cX.bodyBytes, cX.proofs[1], ga)
1276+ if (if (if (az)
1277+ then aA
12901278 else false)
1291- then az
1279+ then aB
12921280 else false)
12931281 then true
1294- else aw(ax, ay, az)
1282+ else ay(az, aA, aB)
12951283 }
1296- else if ($isInstanceOf(aI, "SetScriptTransaction"))
1284+ else if ($isInstanceOf(dw, "SetScriptTransaction"))
12971285 then {
1298- let eJ = aI
1299- let gd = blake2b256(value(eJ.script))
1300- let ge = fromBase64String(value(getString(aK, au())))
1301- let gf = scriptHash(this)
1302- if (if ((ge == gd))
1303- then (gf != gd)
1286+ let eI = dw
1287+ let gb = blake2b256(value(eI.script))
1288+ let gc = fromBase64String(value(getString(aJ, aw())))
1289+ let gd = scriptHash(this)
1290+ if (if ((gc == gb))
1291+ then (gd != gb)
13041292 else false)
13051293 then true
1306- else sigVerify(fZ.bodyBytes, fZ.proofs[0], gb)
1294+ else sigVerify(fX.bodyBytes, fX.proofs[0], fZ)
13071295 }
1308- else sigVerify(fZ.bodyBytes, fZ.proofs[0], gb)
1296+ else sigVerify(fX.bodyBytes, fX.proofs[0], fZ)
13091297 }
13101298
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 (H,I) = toInt(fraction(H, toBigInt(I), d))
6666
6767
6868 func J (K,L,M) = fraction(K, L, M)
6969
7070
7171 func N (H) = if ((0 > H))
7272 then -(H)
7373 else H
7474
7575
7676 func O (H) = if ((e > H))
7777 then -(H)
7878 else H
7979
8080
8181 func P () = "%s__factoryContract"
8282
8383
8484 func Q () = "%s__managerPublicKey"
8585
8686
8787 func R () = "%s__pendingManagerPublicKey"
8888
8989
9090 func S () = "%s%s__price__last"
9191
9292
9393 func T (U,V) = makeString(["%s%s%d%d__price__history", toString(U), toString(V)], j)
9494
9595
9696 func W (X,Y) = ((("%s%s%s__P__" + X) + "__") + Y)
9797
9898
9999 func Z (X,Y) = ((("%s%s%s__G__" + X) + "__") + Y)
100100
101101
102102 func aa () = "%s__amountAsset"
103103
104104
105105 func ab () = "%s__priceAsset"
106106
107107
108108 let ac = "%s__fee"
109109
110110 let ad = fraction(10, b, 10000)
111111
112112 let ae = valueOrElse(getInteger(this, ac), ad)
113113
114-let af = makeString(["%s", "keyKlp"], j)
114+let af = makeString(["%s", "kLp"], j)
115115
116-let ag = makeString(["%s", "keyLastKLpRefreshed"], j)
116+let ag = makeString(["%s", "kLpRefreshedHeight"], j)
117117
118-let ah = makeString(["%s", "keyRefreshKLpDelay"], j)
118+let ah = makeString(["%s", "refreshKLpDelay"], j)
119119
120-func ai () = "%s__factoryConfig"
120+let ai = 30
121+
122+let aj = valueOrElse(getInteger(this, ah), ai)
123+
124+func ak () = "%s__factoryConfig"
121125
122126
123-func aj () = "%s%s__matcher__publicKey"
127+func al () = "%s%s__matcher__publicKey"
124128
125129
126-func ak (al) = (("%s%s%s__" + al) + "__mappings__poolContract2LpAsset")
130+func am (an) = (("%s%s%s__" + an) + "__mappings__poolContract2LpAsset")
127131
128132
129-func am (an,ao) = (((("%d%d%s__" + an) + "__") + ao) + "__config")
133+func ao (ap,aq) = (((("%d%d%s__" + ap) + "__") + aq) + "__config")
130134
131135
132-func ap (aq) = ("%s%s%s__mappings__baseAsset2internalId__" + aq)
136+func ar (as) = ("%s%s%s__mappings__baseAsset2internalId__" + as)
133137
134138
135-func ar () = "%s__shutdown"
139+func at () = "%s__shutdown"
136140
137141
138-func as (at) = ("%s%s__poolWeight__" + at)
142+func au (av) = ("%s%s__poolWeight__" + av)
139143
140144
141-func au () = "%s__allowedLpScriptHash"
145+func aw () = "%s__allowedLpScriptHash"
142146
143147
144-let av = "%s__feeCollectorAddress"
148+let ax = "%s__feeCollectorAddress"
145149
146-func aw (ax,ay,az) = throw(((((("order validation failed: orderValid=" + toString(ax)) + " senderValid=") + toString(ay)) + " matcherValid=") + toString(az)))
150+func ay (az,aA,aB) = throw(((((("order validation failed: orderValid=" + toString(az)) + " senderValid=") + toString(aA)) + " matcherValid=") + toString(aB)))
147151
148152
149-func aA (aB,aC) = valueOrErrorMessage(getString(aB, aC), makeString(["mandatory ", toString(aB), ".", aC, " is not defined"], ""))
153+func aC (aD,aE) = valueOrErrorMessage(getString(aD, aE), makeString(["mandatory ", toString(aD), ".", aE, " is not defined"], ""))
150154
151155
152-func aD (aB,aC) = valueOrErrorMessage(getInteger(aB, aC), makeString(["mandatory ", toString(aB), ".", aC, " is not defined"], ""))
156+func aF (aD,aE) = valueOrErrorMessage(getInteger(aD, aE), makeString(["mandatory ", toString(aD), ".", aE, " is not defined"], ""))
153157
154158
155-func aE (aF) = throw(makeString(["lp.ride:", aF], " "))
159+func aG (aH) = throw(makeString(["lp.ride:", aH], " "))
156160
157161
158-func aG (aF) = makeString(["lp.ride:", aF], " ")
162+func aI (aH) = makeString(["lp.ride:", aH], " ")
159163
160164
161-func aH (H) = {
162- let aI = H
163- if ($isInstanceOf(aI, "Int"))
164- then {
165- let aJ = aI
166- aJ
167- }
168- else throw("fail to cast into Int")
165+let aJ = addressFromStringValue(aC(this, P()))
166+
167+let aK = addressFromStringValue(aC(aJ, ax))
168+
169+func aL () = valueOrElse(getBoolean(aJ, at()), false)
170+
171+
172+func aM () = fromBase58String(aC(aJ, al()))
173+
174+
175+func aN () = {
176+ let aO = aC(this, aa())
177+ let aP = aC(this, ab())
178+ let aq = aF(aJ, ar(aP))
179+ let ap = aF(aJ, ar(aO))
180+ split(aC(aJ, ao(toString(ap), toString(aq))), j)
169181 }
170182
171183
172-let aK = addressFromStringValue(aA(this, P()))
173-
174-let aL = addressFromStringValue(aA(aK, av))
175-
176-func aM () = valueOrElse(getBoolean(aK, ar()), false)
184+func aQ (aR) = if ((aR == i))
185+ then unit
186+ else fromBase58String(aR)
177187
178188
179-func aN () = fromBase58String(aA(aK, aj()))
189+func aS (aR) = if ((aR == unit))
190+ then i
191+ else toBase58String(value(aR))
180192
181193
182-func aO () = {
183- let aP = aA(this, aa())
184- let aQ = aA(this, ab())
185- let ao = aD(aK, ap(aQ))
186- let an = aD(aK, ap(aP))
187- split(aA(aK, am(toString(an), toString(ao))), j)
194+func aT (aU) = $Tuple7(addressFromStringValue(aU[o]), parseIntValue(aU[p]), fromBase58String(aU[q]), aQ(aU[r]), aQ(aU[s]), parseIntValue(aU[t]), parseIntValue(aU[u]))
195+
196+
197+let aV = aT(aN())
198+
199+let aW = aV
200+
201+let aX = aW._1
202+
203+let aY = aW._2
204+
205+let aZ = aW._3
206+
207+let ba = aW._4
208+
209+let bb = aW._5
210+
211+let bc = aW._6
212+
213+let bd = aW._7
214+
215+func be () = split(aC(aJ, ak()), j)
216+
217+
218+let bf = valueOrErrorMessage(addressFromString(be()[B]), "incorrect staking address")
219+
220+let bg = valueOrErrorMessage(addressFromString(be()[C]), "incorrect staking address")
221+
222+func bh (bi,bj,bk,bl,bm,bn,bo,bp,bq,br) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bi), toString(bj), toString(bk), toString(bl), toString(bm), toString(bn), toString(bo), toString(bp), toString(bq), toString(br)], j)
223+
224+
225+func bs (bt,bu,bv,bl,bo,bp) = makeString(["%d%d%d%d%d%d", toString(bt), toString(bu), toString(bv), toString(bl), toString(bo), toString(bp)], j)
226+
227+
228+func bw (bx) = if ((bx == "WAVES"))
229+ then wavesBalance(this).available
230+ else assetBalance(this, fromBase58String(bx))
231+
232+
233+func by (bz,bA) = fraction(bz, d, bA)
234+
235+
236+func bB (bC,bD,bE,bF) = {
237+ let bG = D(bE, bC)
238+ let bH = D(bF, bD)
239+ by(bH, bG)
188240 }
189241
190242
191-func aR (aS) = if ((aS == i))
192- then unit
193- else fromBase58String(aS)
194-
195-
196-func aT (aS) = if ((aS == unit))
197- then i
198- else toBase58String(value(aS))
199-
200-
201-func aU (aV) = $Tuple7(addressFromStringValue(aV[o]), parseIntValue(aV[p]), fromBase58String(aV[q]), aR(aV[r]), aR(aV[s]), parseIntValue(aV[t]), parseIntValue(aV[u]))
202-
203-
204-let aW = aU(aO())
205-
206-let aX = aW
207-
208-let aY = aX._1
209-
210-let aZ = aX._2
211-
212-let ba = aX._3
213-
214-let bb = aX._4
215-
216-let bc = aX._5
217-
218-let bd = aX._6
219-
220-let be = aX._7
221-
222-func bf () = split(aA(aK, ai()), j)
223-
224-
225-let bg = valueOrErrorMessage(addressFromString(bf()[B]), "incorrect staking address")
226-
227-let bh = valueOrErrorMessage(addressFromString(bf()[C]), "incorrect staking address")
228-
229-func bi (bj,bk,bl,bm,bn,bo,bp,bq,br,bs) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bj), toString(bk), toString(bl), toString(bm), toString(bn), toString(bo), toString(bp), toString(bq), toString(br), toString(bs)], j)
230-
231-
232-func bt (bu,bv,bw,bm,bp,bq) = makeString(["%d%d%d%d%d%d", toString(bu), toString(bv), toString(bw), toString(bm), toString(bp), toString(bq)], j)
233-
234-
235-func bx (by) = if ((by == "WAVES"))
236- then wavesBalance(this).available
237- else assetBalance(this, fromBase58String(by))
238-
239-
240-func bz (bA,bB) = fraction(bA, d, bB)
241-
242-
243-func bC (bD,bE,bF,bG) = {
244- let bH = D(bF, bD)
245- let bI = D(bG, bE)
246- bz(bI, bH)
243+func bI (bE,bF,bJ) = {
244+ let bK = aN()
245+ let bL = parseIntValue(bK[t])
246+ let bM = parseIntValue(bK[u])
247+ let bN = bB(bL, bM, bE, bF)
248+ let bA = D(bE, bL)
249+ let bz = D(bF, bM)
250+ let bO = D(bJ, b)
251+ let bP = by(bA, bO)
252+ let bQ = by(bz, bO)
253+[bN, bP, bQ]
247254 }
248255
249256
250-func bJ (bF,bG,bK) = {
251- let bL = aO()
252- let bM = parseIntValue(bL[t])
253- let bN = parseIntValue(bL[u])
254- let bO = bC(bM, bN, bF, bG)
255- let bB = D(bF, bM)
256- let bA = D(bG, bN)
257- let bP = D(bK, b)
258- let bQ = bz(bB, bP)
259- let bR = bz(bA, bP)
260-[bO, bQ, bR]
257+func bR (bE,bF,bJ) = {
258+ let bS = bI(bE, bF, bJ)
259+[G(bS[0], b), G(bS[1], b), G(bS[2], b)]
261260 }
262261
263262
264-func bS (bF,bG,bK) = {
265- let bT = bJ(bF, bG, bK)
266-[G(bT[0], b), G(bT[1], b), G(bT[2], b)]
267- }
268-
269-
270-func bU (bV,bW,bX,X) = {
271- let bL = aO()
272- let bY = bL[q]
273- let bZ = bL[r]
274- let ca = bL[s]
275- let bD = parseIntValue(bL[t])
276- let bE = parseIntValue(bL[u])
277- let cb = bL[p]
278- let cc = valueOrErrorMessage(assetInfo(fromBase58String(bY)), (("Asset " + bY) + " doesn't exist")).quantity
279- if ((bY != bW))
263+func bT (bU,bV,bW,X) = {
264+ let bK = aN()
265+ let bX = bK[q]
266+ let bY = bK[r]
267+ let bZ = bK[s]
268+ let bC = parseIntValue(bK[t])
269+ let bD = parseIntValue(bK[u])
270+ let ca = bK[p]
271+ let cb = valueOrErrorMessage(assetInfo(fromBase58String(bX)), (("Asset " + bX) + " doesn't exist")).quantity
272+ if ((bX != bV))
280273 then throw("Invalid asset passed.")
281274 else {
282- let cd = bx(bZ)
283- let ce = D(cd, bD)
284- let cf = bx(ca)
285- let cg = D(cf, bE)
286- let ch = bz(cg, ce)
287- let ci = G(ch, b)
288- let cj = D(bX, b)
289- let ck = D(cc, b)
290- let cl = fraction(ce, cj, ck)
291- let cm = fraction(cg, cj, ck)
275+ let cc = bw(bY)
276+ let cd = D(cc, bC)
277+ let ce = bw(bZ)
278+ let cf = D(ce, bD)
279+ let cg = by(cf, cd)
280+ let ch = G(cg, b)
281+ let ci = D(bW, b)
282+ let cj = D(cb, b)
283+ let ck = fraction(cd, ci, cj)
284+ let cl = fraction(cf, ci, cj)
285+ let cm = G(ck, bC)
292286 let cn = G(cl, bD)
293- let co = G(cm, bE)
294- let cp = if ((bV == ""))
287+ let co = if ((bU == ""))
295288 then nil
296- else [ScriptTransfer(X, cn, if ((bZ == "WAVES"))
289+ else [ScriptTransfer(X, cm, if ((bY == "WAVES"))
297290 then unit
298- else fromBase58String(bZ)), ScriptTransfer(X, co, if ((ca == "WAVES"))
291+ else fromBase58String(bY)), ScriptTransfer(X, cn, if ((bZ == "WAVES"))
299292 then unit
300- else fromBase58String(ca)), StringEntry(Z(toString(X), bV), bt(cn, co, bX, ci, height, lastBlock.timestamp)), IntegerEntry(S(), ci), IntegerEntry(T(height, lastBlock.timestamp), ci)]
301- $Tuple10(cn, co, bZ, ca, cd, cf, cc, ch, cb, cp)
293+ else fromBase58String(bZ)), StringEntry(Z(toString(X), bU), bs(cm, cn, bW, ch, height, lastBlock.timestamp)), IntegerEntry(S(), ch), IntegerEntry(T(height, lastBlock.timestamp), ch)]
294+ $Tuple10(cm, cn, bY, bZ, cc, ce, cb, cg, ca, co)
302295 }
303296 }
304297
305298
306-func cq (bV,cr,cs,ct,cu,cv,X,cw,cx) = {
307- let bL = aO()
308- let bY = fromBase58String(bL[q])
309- let cy = bL[r]
310- let cz = bL[s]
311- let cA = bL[v]
312- let cB = bL[w]
313- let bM = parseIntValue(bL[t])
314- let bN = parseIntValue(bL[u])
315- let cb = bL[p]
316- let cc = valueOrErrorMessage(assetInfo(bY), (("Asset " + toBase58String(bY)) + " doesn't exist")).quantity
317- let cC = toBase58String(valueOrElse(ct, fromBase58String("WAVES")))
318- let cD = toBase58String(valueOrElse(cv, fromBase58String("WAVES")))
319- if (if ((cy != cC))
299+func cp (bU,cq,cr,cs,ct,cu,X,cv,cw) = {
300+ let bK = aN()
301+ let bX = fromBase58String(bK[q])
302+ let cx = bK[r]
303+ let cy = bK[s]
304+ let cz = bK[v]
305+ let cA = bK[w]
306+ let bL = parseIntValue(bK[t])
307+ let bM = parseIntValue(bK[u])
308+ let ca = bK[p]
309+ let cb = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
310+ let cB = toBase58String(valueOrElse(cs, fromBase58String("WAVES")))
311+ let cC = toBase58String(valueOrElse(cu, fromBase58String("WAVES")))
312+ if (if ((cx != cB))
320313 then true
321- else (cz != cD))
314+ else (cy != cC))
322315 then throw("Invalid amt or price asset passed.")
323316 else {
324- let cd = if (cw)
325- then bx(cy)
326- else (bx(cy) - cs)
327- let cf = if (cw)
328- then bx(cz)
329- else (bx(cz) - cu)
330- let cE = D(cs, bM)
331- let cF = D(cu, bN)
332- let cG = bz(cF, cE)
333- let ce = D(cd, bM)
334- let cg = D(cf, bN)
335- let cH = if ((cc == 0))
317+ let cc = if (cv)
318+ then bw(cx)
319+ else (bw(cx) - cr)
320+ let ce = if (cv)
321+ then bw(cy)
322+ else (bw(cy) - ct)
323+ let cD = D(cr, bL)
324+ let cE = D(ct, bM)
325+ let cF = by(cE, cD)
326+ let cd = D(cc, bL)
327+ let cf = D(ce, bM)
328+ let cG = if ((cb == 0))
336329 then {
337- let ch = e
338- let cI = e
339- let bP = pow((cE * cF), 0, toBigInt(5), 1, 0, DOWN)
340- $Tuple5(G(bP, b), G(cE, bM), G(cF, bN), bz((cg + cF), (ce + cE)), cI)
330+ let cg = e
331+ let cH = e
332+ let bO = pow((cD * cE), 0, toBigInt(5), 1, 0, DOWN)
333+ $Tuple5(G(bO, b), G(cD, bL), G(cE, bM), by((cf + cE), (cd + cD)), cH)
341334 }
342335 else {
343- let ch = bz(cg, ce)
344- let cI = fraction(O((ch - cG)), d, ch)
345- let cJ = D(cr, b)
346- if (if ((ch != e))
347- then (cI > cJ)
336+ let cg = by(cf, cd)
337+ let cH = fraction(O((cg - cF)), d, cg)
338+ let cI = D(cq, b)
339+ if (if ((cg != e))
340+ then (cH > cI)
348341 else false)
349- then throw(((("Price slippage " + toString(cI)) + " exceeded the passed limit of ") + toString(cJ)))
342+ then throw(((("Price slippage " + toString(cH)) + " exceeded the passed limit of ") + toString(cI)))
350343 else {
351- let ck = D(cc, b)
352- let cK = fraction(cE, ch, d)
353- let cL = fraction(cF, d, ch)
354- let cM = if ((cK > cF))
355- then $Tuple2(cL, cF)
356- else $Tuple2(cE, cK)
357- let cN = cM._1
358- let cO = cM._2
359- let bP = fraction(ck, cO, cg)
360- $Tuple5(G(bP, b), G(cN, bM), G(cO, bN), ch, cI)
344+ let cj = D(cb, b)
345+ let cJ = fraction(cD, cg, d)
346+ let cK = fraction(cE, d, cg)
347+ let cL = if ((cJ > cE))
348+ then $Tuple2(cK, cE)
349+ else $Tuple2(cD, cJ)
350+ let cM = cL._1
351+ let cN = cL._2
352+ let bO = fraction(cj, cN, cf)
353+ $Tuple5(G(bO, b), G(cM, bL), G(cN, bM), cg, cH)
361354 }
362355 }
363- let cP = cH._1
364- let cQ = cH._2
365- let cR = cH._3
366- let ci = G(cH._4, b)
367- let cS = G(cH._5, b)
368- if ((0 >= cP))
356+ let cO = cG._1
357+ let cP = cG._2
358+ let cQ = cG._3
359+ let ch = G(cG._4, b)
360+ let cR = G(cG._5, b)
361+ if ((0 >= cO))
369362 then throw("Invalid calculations. LP calculated is less than zero.")
370363 else {
371- let cT = if (!(cx))
364+ let cS = if (!(cw))
372365 then 0
373- else cP
374- let cU = (cs - cQ)
375- let cV = (cu - cR)
376- let cW = [IntegerEntry(S(), ci), IntegerEntry(T(height, lastBlock.timestamp), ci), StringEntry(W(X, bV), bi(cQ, cR, cT, ci, cr, cS, height, lastBlock.timestamp, cU, cV))]
377- $Tuple13(cP, cT, ci, cd, cf, cc, bY, cb, cW, cU, cV, ct, cv)
366+ else cO
367+ let cT = (cr - cP)
368+ let cU = (ct - cQ)
369+ let cV = [IntegerEntry(S(), ch), IntegerEntry(T(height, lastBlock.timestamp), ch), StringEntry(W(X, bU), bh(cP, cQ, cS, ch, cq, cR, height, lastBlock.timestamp, cT, cU))]
370+ $Tuple13(cO, cS, ch, cc, ce, cb, bX, ca, cV, cT, cU, cs, cu)
378371 }
379372 }
380373 }
381374
382375
383-func cX (cY) = {
384- let bL = aO()
385- let cZ = bL[r]
386- let da = bL[s]
387- let cb = parseIntValue(bL[p])
388- let bM = parseIntValue(bL[t])
389- let bN = parseIntValue(bL[u])
390- let db = bx(cZ)
391- let dc = bx(da)
392- let ch = if ((cY.orderType == Buy))
393- then bC(bM, bN, (db + cY.amount), dc)
394- else bC(bM, bN, (db - cY.amount), dc)
395- let ci = G(ch, b)
396- if (if (if (aM())
376+func cW (cX) = {
377+ let bK = aN()
378+ let cY = bK[r]
379+ let cZ = bK[s]
380+ let ca = parseIntValue(bK[p])
381+ let bL = parseIntValue(bK[t])
382+ let bM = parseIntValue(bK[u])
383+ let da = bw(cY)
384+ let db = bw(cZ)
385+ let cg = if ((cX.orderType == Buy))
386+ then bB(bL, bM, (da + cX.amount), db)
387+ else bB(bL, bM, (da - cX.amount), db)
388+ let ch = G(cg, b)
389+ if (if (if (aL())
397390 then true
398- else (cb == m))
391+ else (ca == m))
399392 then true
400- else (cb == n))
393+ else (ca == n))
401394 then throw("Exchange operations disabled")
402395 else {
403- let dd = cY.assetPair.amountAsset
404- let de = if ((dd == unit))
396+ let dc = cX.assetPair.amountAsset
397+ let dd = if ((dc == unit))
405398 then "WAVES"
406- else toBase58String(value(dd))
407- let df = cY.assetPair.priceAsset
408- let dg = if ((df == unit))
399+ else toBase58String(value(dc))
400+ let de = cX.assetPair.priceAsset
401+ let df = if ((de == unit))
409402 then "WAVES"
410- else toBase58String(value(df))
411- if (if ((de != cZ))
403+ else toBase58String(value(de))
404+ if (if ((dd != cY))
412405 then true
413- else (dg != da))
406+ else (df != cZ))
414407 then throw("Wrong order assets.")
415408 else {
416- let dh = cY.price
417- let di = fraction(b, bN, bM)
418- let dj = J(dh, b, di)
419- let dk = if ((cY.orderType == Buy))
420- then (ci >= dj)
421- else (dj >= ci)
409+ let dg = cX.price
410+ let dh = fraction(b, bM, bL)
411+ let di = J(dg, b, dh)
412+ let dj = if ((cX.orderType == Buy))
413+ then (ch >= di)
414+ else (di >= ch)
422415 true
423416 }
424417 }
425418 }
426419
427420
428-func dl (dm) = if ((size(dm.payments) != 1))
421+func dk (dl) = if ((size(dl.payments) != 1))
429422 then throw("exactly 1 payment is expected")
430423 else {
431- let dn = value(dm.payments[0])
432- let bW = value(dn.assetId)
433- let do = dn.amount
434- let cH = bU(toBase58String(dm.transactionId), toBase58String(bW), do, dm.caller)
435- let cn = cH._1
436- let co = cH._2
437- let cb = parseIntValue(cH._9)
438- let cp = cH._10
439- if (if (aM())
424+ let dm = value(dl.payments[0])
425+ let bV = value(dm.assetId)
426+ let dn = dm.amount
427+ let cG = bT(toBase58String(dl.transactionId), toBase58String(bV), dn, dl.caller)
428+ let cm = cG._1
429+ let cn = cG._2
430+ let ca = parseIntValue(cG._9)
431+ let co = cG._10
432+ if (if (aL())
440433 then true
441- else (cb == n))
442- then throw(("Get operation is blocked by admin. Status = " + toString(cb)))
443- else $Tuple5(cn, co, do, bW, cp)
434+ else (ca == n))
435+ then throw(("Get operation is blocked by admin. Status = " + toString(ca)))
436+ else $Tuple5(cm, cn, dn, bV, co)
444437 }
445438
446439
447-func dp (dm,cr,cx) = if ((size(dm.payments) != 2))
440+func do (dl,cq,cw) = if ((size(dl.payments) != 2))
448441 then throw("exactly 2 payments are expected")
449442 else {
450- let dq = value(dm.payments[0])
451- let dr = value(dm.payments[1])
452- let ds = cq(toBase58String(dm.transactionId), cr, dq.amount, dq.assetId, dr.amount, dr.assetId, toString(dm.caller), false, cx)
453- let cb = parseIntValue(ds._8)
454- if (if (if (aM())
443+ let dp = value(dl.payments[0])
444+ let dq = value(dl.payments[1])
445+ let dr = cp(toBase58String(dl.transactionId), cq, dp.amount, dp.assetId, dq.amount, dq.assetId, toString(dl.caller), false, cw)
446+ let ca = parseIntValue(dr._8)
447+ if (if (if (aL())
455448 then true
456- else (cb == l))
449+ else (ca == l))
457450 then true
458- else (cb == n))
459- then throw(("Put operation is blocked by admin. Status = " + toString(cb)))
460- else ds
451+ else (ca == n))
452+ then throw(("Put operation is blocked by admin. Status = " + toString(ca)))
453+ else dr
461454 }
462455
463456
464-func dt (du) = {
465- let dv = invoke(aK, "emit", [du], nil)
466- if ((dv == dv))
457+func ds (dt) = {
458+ let du = invoke(aJ, "emit", [dt], nil)
459+ if ((du == du))
467460 then {
468- let dw = {
469- let aI = dv
470- if ($isInstanceOf(aI, "Address"))
461+ let dv = {
462+ let dw = du
463+ if ($isInstanceOf(dw, "Address"))
471464 then {
472- let dx = aI
473- invoke(dx, "emit", [du], nil)
465+ let dx = dw
466+ invoke(dx, "emit", [dt], nil)
474467 }
475468 else unit
476469 }
477- if ((dw == dw))
478- then du
470+ if ((dv == dv))
471+ then dt
479472 else throw("Strict value is not equal to itself.")
480473 }
481474 else throw("Strict value is not equal to itself.")
482475 }
483476
484477
485-func dy (du) = {
486- let dz = fraction(du, ae, b)
487- $Tuple2((du - dz), dz)
478+func dy (dt) = {
479+ let dz = fraction(dt, ae, b)
480+ $Tuple2((dt - dz), dz)
488481 }
489482
490483
491484 func dA (dB,dC,X,Y) = {
492485 let dD = (Y == unit)
493- let dE = bx(aT(bb))
494- let dF = bx(aT(bc))
495- let dG = if ((dC == bb))
486+ let dE = bw(aS(ba))
487+ let dF = bw(aS(bb))
488+ let dG = if ((dC == ba))
496489 then true
497- else if ((dC == bc))
490+ else if ((dC == bb))
498491 then false
499- else aE("invalid asset")
492+ else aG("invalid asset")
500493 let dH = if (dD)
501494 then $Tuple2(dE, dF)
502495 else if (dG)
503496 then $Tuple2((dE - dB), dF)
504497 else $Tuple2(dE, (dF - dB))
505498 let dI = dH._1
506499 let dJ = dH._2
507500 let dK = if (dG)
508501 then $Tuple2(dB, 0)
509502 else $Tuple2(0, dB)
510503 let dL = dK._1
511504 let dM = dK._2
512505 let dN = dy(dL)._1
513506 let dO = dy(dM)._1
514507 let dP = dy(dB)
515508 let dQ = dP._1
516509 let dz = dP._2
517510 let dR = (dI + dN)
518511 let dS = (dJ + dO)
519- let dT = bz(D(dS, be), D(dR, bd))
512+ let dT = by(D(dS, bd), D(dR, bc))
520513 let dU = G(dT, b)
521514 let dV = if (dG)
522515 then dI
523516 else dJ
524517 let dW = toBigInt(dV)
525- let dX = toBigInt(valueOrErrorMessage(assetInfo(ba), (("asset " + toBase58String(ba)) + " doesn't exist")).quantity)
518+ let dX = toBigInt(valueOrErrorMessage(assetInfo(aZ), (("asset " + toBase58String(aZ)) + " doesn't exist")).quantity)
526519 let dY = if ((dX > f))
527520 then true
528- else aE("initial deposit requires all coins")
521+ else aG("initial deposit requires all coins")
529522 if ((dY == dY))
530523 then {
531524 let dZ = toBigInt(dQ)
532525 let ea = max([0, toInt(((dX * (sqrtBigInt((d + ((dZ * d) / dW)), 18, 18, DOWN) - d)) / d))])
533- let cW = if (dD)
526+ let cV = if (dD)
534527 then nil
535- else [IntegerEntry(S(), dU), IntegerEntry(T(height, lastBlock.timestamp), dU), StringEntry(W(toString(value(X)), toBase58String(value(Y))), bi(dL, dM, ea, dU, 0, 0, height, lastBlock.timestamp, 0, 0))]
536- let eb = bz(D(dJ, be), D(dI, bd))
528+ else [IntegerEntry(S(), dU), IntegerEntry(T(height, lastBlock.timestamp), dU), StringEntry(W(toString(value(X)), toBase58String(value(Y))), bh(dL, dM, ea, dU, 0, 0, height, lastBlock.timestamp, 0, 0))]
529+ let eb = by(D(dJ, bd), D(dI, bc))
537530 let ec = G(eb, b)
538531 let ed = {
539532 let ee = if (dG)
540533 then $Tuple2(dL, dI)
541534 else $Tuple2(dM, dJ)
542- let du = ee._1
535+ let dt = ee._1
543536 let ef = ee._2
544- let eg = toInt(fraction(dX, toBigInt((du / 2)), toBigInt(ef)))
537+ let eg = toInt(fraction(dX, toBigInt((dt / 2)), toBigInt(ef)))
545538 fraction((ea - eg), b, eg)
546539 }
547- $Tuple4(ea, cW, dz, ed)
540+ $Tuple4(ea, cV, dz, ed)
548541 }
549542 else throw("Strict value is not equal to itself.")
550543 }
551544
552545
553546 func eh (ei,dQ,dC,X,Y) = {
554547 let dD = (Y == unit)
555- let ej = [if ((dC == ba))
548+ let ej = [if ((dC == aZ))
556549 then true
557- else aE("invalid lp asset")]
550+ else aG("invalid lp asset")]
558551 if ((ej == ej))
559552 then {
560- let ek = if ((ei == bb))
553+ let ek = if ((ei == ba))
561554 then true
562- else if ((ei == bc))
555+ else if ((ei == bb))
563556 then false
564- else aE("invalid asset")
557+ else aG("invalid asset")
565558 let el = if (ek)
566- then toBigInt(bx(aT(bb)))
567- else toBigInt(bx(aT(bc)))
568- let em = bx(aT(bb))
569- let en = bx(aT(bc))
559+ then toBigInt(bw(aS(ba)))
560+ else toBigInt(bw(aS(bb)))
561+ let em = bw(aS(ba))
562+ let en = bw(aS(bb))
570563 let eo = if (ek)
571564 then em
572565 else en
573566 let ep = toBigInt(eo)
574- let dX = toBigInt(valueOrErrorMessage(assetInfo(ba), (("asset " + toBase58String(ba)) + " doesn't exist")).quantity)
567+ let dX = toBigInt(valueOrErrorMessage(assetInfo(aZ), (("asset " + toBase58String(aZ)) + " doesn't exist")).quantity)
575568 let eq = toBigInt(dQ)
576569 let er = max([0, toInt(((el * (d - pow((d - ((eq * d) / dX)), 18, h, 0, 18, DOWN))) / d))])
577570 let es = dy(er)
578571 let et = es._1
579572 let dz = es._2
580573 let eu = if (ek)
581574 then $Tuple4(et, 0, (em - er), en)
582575 else $Tuple4(0, et, em, (en - er))
583576 let ev = eu._1
584577 let ew = eu._2
585578 let ex = eu._3
586579 let ey = eu._4
587- let dT = bz(D(ey, be), D(ex, bd))
580+ let dT = by(D(ey, bd), D(ex, bc))
588581 let dU = G(dT, b)
589- let cW = if (dD)
582+ let cV = if (dD)
590583 then nil
591- else [StringEntry(Z(toString(value(X)), toBase58String(value(Y))), bt(ev, ew, dQ, dU, height, lastBlock.timestamp)), IntegerEntry(S(), dU), IntegerEntry(T(height, lastBlock.timestamp), dU)]
592- let eb = bz(D(en, be), D(em, bd))
584+ else [StringEntry(Z(toString(value(X)), toBase58String(value(Y))), bs(ev, ew, dQ, dU, height, lastBlock.timestamp)), IntegerEntry(S(), dU), IntegerEntry(T(height, lastBlock.timestamp), dU)]
585+ let eb = by(D(en, bd), D(em, bc))
593586 let ec = G(eb, b)
594587 let ed = {
595588 let ez = (toInt(fraction(el, eq, dX)) * 2)
596589 fraction((et - ez), b, ez)
597590 }
598- $Tuple4(et, cW, dz, ed)
591+ $Tuple4(et, cV, dz, ed)
599592 }
600593 else throw("Strict value is not equal to itself.")
601594 }
602595
603596
604-func eA (eB,eC,cc) = {
605- let eD = (pow((eB * eC), 0, 5, 1, 0, DOWN) / cc)
597+func eA (eB,eC,cb) = {
598+ let eD = (pow((eB * eC), 0, 5, 1, 0, DOWN) / cb)
606599 eD
607600 }
608601
609602
610603 func eE () = {
611- let bL = aO()
612- let bY = fromBase58String(bL[q])
613- let eF = bL[r]
614- let da = bL[s]
615- let eG = bx(eF)
616- let eH = bx(da)
617- let cc = valueOrErrorMessage(assetInfo(bY), (("Asset " + toBase58String(bY)) + " doesn't exist")).quantity
618- let eD = eA(eG, eH, cc)
604+ let eF = bw(aS(ba))
605+ let eG = bw(aS(bb))
606+ let cb = valueOrErrorMessage(assetInfo(aZ), aI(makeString(["Asset ", toBase58String(aZ), " doesn't exist"], ""))).quantity
607+ let eD = eA(eF, eG, cb)
619608 eD
620609 }
621610
622611
623-func eI () = {
624- let aI = getString(Q())
625- if ($isInstanceOf(aI, "String"))
612+func eH () = {
613+ let dw = getString(Q())
614+ if ($isInstanceOf(dw, "String"))
626615 then {
627- let eJ = aI
628- fromBase58String(eJ)
616+ let eI = dw
617+ fromBase58String(eI)
629618 }
630- else if ($isInstanceOf(aI, "Unit"))
619+ else if ($isInstanceOf(dw, "Unit"))
631620 then unit
632621 else throw("Match error")
633622 }
634623
635624
636-func eK () = {
637- let aI = getString(R())
638- if ($isInstanceOf(aI, "String"))
625+func eJ () = {
626+ let dw = getString(R())
627+ if ($isInstanceOf(dw, "String"))
639628 then {
640- let eJ = aI
641- fromBase58String(eJ)
629+ let eI = dw
630+ fromBase58String(eI)
642631 }
643- else if ($isInstanceOf(aI, "Unit"))
632+ else if ($isInstanceOf(dw, "Unit"))
644633 then unit
645634 else throw("Match error")
646635 }
647636
648637
649-func eL (dm) = {
650- let aI = eI()
651- if ($isInstanceOf(aI, "ByteVector"))
638+func eK (dl) = {
639+ let dw = eH()
640+ if ($isInstanceOf(dw, "ByteVector"))
652641 then {
653- let eM = aI
654- (dm.callerPublicKey == eM)
642+ let eL = dw
643+ (dl.callerPublicKey == eL)
655644 }
656- else if ($isInstanceOf(aI, "Unit"))
657- then (dm.caller == this)
645+ else if ($isInstanceOf(dw, "Unit"))
646+ then (dl.caller == this)
658647 else throw("Match error")
659648 }
660649
661650
662-func eN (dm) = {
663- let eO = throw("Permission denied")
664- let aI = eI()
665- if ($isInstanceOf(aI, "ByteVector"))
651+func eM (dl) = {
652+ let eN = throw("Permission denied")
653+ let dw = eH()
654+ if ($isInstanceOf(dw, "ByteVector"))
666655 then {
667- let eM = aI
668- if ((dm.callerPublicKey == eM))
656+ let eL = dw
657+ if ((dl.callerPublicKey == eL))
669658 then true
670- else eO
659+ else eN
671660 }
672- else if ($isInstanceOf(aI, "Unit"))
673- then if ((dm.caller == this))
661+ else if ($isInstanceOf(dw, "Unit"))
662+ then if ((dl.caller == this))
674663 then true
675- else eO
664+ else eN
676665 else throw("Match error")
677666 }
678667
679668
680-@Callable(dm)
681-func setManager (eP) = {
682- let eQ = eN(dm)
683- if ((eQ == eQ))
669+@Callable(dl)
670+func setManager (eO) = {
671+ let eP = eM(dl)
672+ if ((eP == eP))
684673 then {
685- let eR = fromBase58String(eP)
686- if ((eR == eR))
687- then [StringEntry(R(), eP)]
674+ let eQ = fromBase58String(eO)
675+ if ((eQ == eQ))
676+ then [StringEntry(R(), eO)]
688677 else throw("Strict value is not equal to itself.")
689678 }
690679 else throw("Strict value is not equal to itself.")
691680 }
692681
693682
694683
695-@Callable(dm)
684+@Callable(dl)
696685 func confirmManager () = {
697- let eS = eK()
698- let eT = if (isDefined(eS))
686+ let eR = eJ()
687+ let eS = if (isDefined(eR))
699688 then true
700689 else throw("No pending manager")
701- if ((eT == eT))
690+ if ((eS == eS))
702691 then {
703- let eU = if ((dm.callerPublicKey == value(eS)))
692+ let eT = if ((dl.callerPublicKey == value(eR)))
704693 then true
705694 else throw("You are not pending manager")
706- if ((eU == eU))
707- then [StringEntry(Q(), toBase58String(value(eS))), DeleteEntry(R())]
695+ if ((eT == eT))
696+ then [StringEntry(Q(), toBase58String(value(eR))), DeleteEntry(R())]
708697 else throw("Strict value is not equal to itself.")
709698 }
710699 else throw("Strict value is not equal to itself.")
711700 }
712701
713702
714703
715-@Callable(dm)
716-func put (cr,eV) = if ((0 > cr))
704+@Callable(dl)
705+func put (cq,eU) = if ((0 > cq))
717706 then throw("Invalid slippageTolerance passed")
718707 else {
719- let ds = dp(dm, cr, true)
720- let cT = ds._2
721- let bY = ds._7
722- let cp = ds._9
723- let cU = ds._10
724- let cV = ds._11
725- let eW = ds._12
726- let eX = ds._13
727- let dv = invoke(aK, "emit", [cT], nil)
728- if ((dv == dv))
708+ let dr = do(dl, cq, true)
709+ let cS = dr._2
710+ let bX = dr._7
711+ let co = dr._9
712+ let cT = dr._10
713+ let cU = dr._11
714+ let eV = dr._12
715+ let eW = dr._13
716+ let du = invoke(aJ, "emit", [cS], nil)
717+ if ((du == du))
729718 then {
730- let dw = {
731- let aI = dv
732- if ($isInstanceOf(aI, "Address"))
719+ let dv = {
720+ let dw = du
721+ if ($isInstanceOf(dw, "Address"))
733722 then {
734- let dx = aI
735- invoke(dx, "emit", [cT], nil)
723+ let dx = dw
724+ invoke(dx, "emit", [cS], nil)
736725 }
737726 else unit
738727 }
739- if ((dw == dw))
728+ if ((dv == dv))
740729 then {
741- let eY = if ((cU > 0))
742- then invoke(bh, "put", nil, [AttachedPayment(eW, cU)])
730+ let eX = if ((cT > 0))
731+ then invoke(bg, "put", nil, [AttachedPayment(eV, cT)])
743732 else nil
744- if ((eY == eY))
733+ if ((eX == eX))
745734 then {
746- let eZ = if ((cV > 0))
747- then invoke(bh, "put", nil, [AttachedPayment(eX, cV)])
735+ let eY = if ((cU > 0))
736+ then invoke(bg, "put", nil, [AttachedPayment(eW, cU)])
748737 else nil
749- if ((eZ == eZ))
738+ if ((eY == eY))
750739 then {
751- let fa = if (eV)
740+ let eZ = if (eU)
752741 then {
753- let fb = invoke(bg, "stake", nil, [AttachedPayment(bY, cT)])
754- if ((fb == fb))
742+ let fa = invoke(bf, "stake", nil, [AttachedPayment(bX, cS)])
743+ if ((fa == fa))
755744 then nil
756745 else throw("Strict value is not equal to itself.")
757746 }
758- else [ScriptTransfer(dm.caller, cT, bY)]
759- (cp ++ fa)
747+ else [ScriptTransfer(dl.caller, cS, bX)]
748+ (co ++ eZ)
760749 }
761750 else throw("Strict value is not equal to itself.")
762751 }
763752 else throw("Strict value is not equal to itself.")
764753 }
765754 else throw("Strict value is not equal to itself.")
766755 }
767756 else throw("Strict value is not equal to itself.")
768757 }
769758
770759
771760
772-@Callable(dm)
773-func putForFree (fc) = if ((0 > fc))
761+@Callable(dl)
762+func putForFree (fb) = if ((0 > fb))
774763 then throw("Invalid value passed")
775764 else {
776- let ds = dp(dm, fc, false)
777- ds._9
765+ let dr = do(dl, fb, false)
766+ dr._9
778767 }
779768
780769
781770
782-@Callable(dm)
783-func putOneTkn (fd,fe) = {
784- let ff = {
785- let fg = invoke(aK, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
786- if ($isInstanceOf(fg, "Boolean"))
787- then fg
788- else throw(($getType(fg) + " couldn't be cast to Boolean"))
771+@Callable(dl)
772+func putOneTkn (fc,fd) = {
773+ let fe = {
774+ let ff = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
775+ if ($isInstanceOf(ff, "Boolean"))
776+ then ff
777+ else throw(($getType(ff) + " couldn't be cast to Boolean"))
789778 }
790- let fh = if (if (if (aM())
779+ let fg = if (if (if (aL())
791780 then true
792- else (aZ == l))
781+ else (aY == l))
793782 then true
794- else (aZ == n))
783+ else (aY == n))
795784 then true
796- else ff
797- let ej = [if (if (!(fh))
785+ else fe
786+ let ej = [if (if (!(fg))
798787 then true
799- else eL(dm))
788+ else eK(dl))
800789 then true
801- else aE("put operation is blocked by admin"), if ((size(dm.payments) == 1))
790+ else aG("put operation is blocked by admin"), if ((size(dl.payments) == 1))
802791 then true
803- else aE("exactly 1 payment are expected")]
792+ else aG("exactly 1 payment are expected")]
804793 if ((ej == ej))
805794 then {
806- let fi = dm.payments[0]
807- let dC = fi.assetId
808- let dB = fi.amount
809- let X = dm.caller
810- let Y = dm.transactionId
811- let fj = dA(dB, dC, X, Y)
812- let fk = fj._1
813- let cW = fj._2
814- let dz = fj._3
815- let fl = fj._4
816- let fm = if (if ((fd > 0))
817- then (fd > fk)
795+ let fh = dl.payments[0]
796+ let dC = fh.assetId
797+ let dB = fh.amount
798+ let X = dl.caller
799+ let Y = dl.transactionId
800+ let fi = dA(dB, dC, X, Y)
801+ let fj = fi._1
802+ let cV = fi._2
803+ let dz = fi._3
804+ let fk = fi._4
805+ let fl = if (if ((fc > 0))
806+ then (fc > fj)
818807 else false)
819- then aE(makeString(["amount to receive is less than ", toString(fd)], ""))
820- else fk
821- let dv = dt(fm)
822- if ((dv == dv))
808+ then aG(makeString(["amount to receive is less than ", toString(fc)], ""))
809+ else fj
810+ let du = ds(fl)
811+ if ((du == du))
823812 then {
824- let fa = if (fe)
813+ let eZ = if (fd)
825814 then {
826- let fn = invoke(bg, "stake", nil, [AttachedPayment(ba, fm)])
827- if ((fn == fn))
815+ let fm = invoke(bf, "stake", nil, [AttachedPayment(aZ, fl)])
816+ if ((fm == fm))
828817 then nil
829818 else throw("Strict value is not equal to itself.")
830819 }
831- else [ScriptTransfer(dm.caller, fm, ba)]
832- let fo = if ((dz > 0))
833- then [ScriptTransfer(aL, dz, dC)]
820+ else [ScriptTransfer(dl.caller, fl, aZ)]
821+ let fn = if ((dz > 0))
822+ then [ScriptTransfer(aK, dz, dC)]
834823 else nil
835- $Tuple2(((cW ++ fa) ++ fo), fm)
824+ $Tuple2(((cV ++ eZ) ++ fn), fl)
836825 }
837826 else throw("Strict value is not equal to itself.")
838827 }
839828 else throw("Strict value is not equal to itself.")
840829 }
841830
842831
843832
844-@Callable(dm)
833+@Callable(dl)
845834 func putOneTknREADONLY (dC,dB) = {
846- let fp = dA(dB, aR(dC), unit, unit)
847- let fk = fp._1
848- let cW = fp._2
849- let dz = fp._3
850- let fl = fp._4
851- $Tuple2(nil, $Tuple3(fk, dz, fl))
835+ let fo = dA(dB, aQ(dC), unit, unit)
836+ let fj = fo._1
837+ let cV = fo._2
838+ let dz = fo._3
839+ let fk = fo._4
840+ $Tuple2(nil, $Tuple3(fj, dz, fk))
852841 }
853842
854843
855844
856-@Callable(dm)
857-func getOneTkn (fq,fd) = {
858- let ff = {
859- let fg = invoke(aK, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
860- if ($isInstanceOf(fg, "Boolean"))
861- then fg
862- else throw(($getType(fg) + " couldn't be cast to Boolean"))
845+@Callable(dl)
846+func getOneTkn (fp,fc) = {
847+ let fe = {
848+ let ff = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
849+ if ($isInstanceOf(ff, "Boolean"))
850+ then ff
851+ else throw(($getType(ff) + " couldn't be cast to Boolean"))
863852 }
864- let fr = if (if (aM())
853+ let fq = if (if (aL())
865854 then true
866- else (aZ == n))
855+ else (aY == n))
867856 then true
868- else ff
869- let ej = [if (if (!(fr))
857+ else fe
858+ let ej = [if (if (!(fq))
870859 then true
871- else eL(dm))
860+ else eK(dl))
872861 then true
873- else aE("get operation is blocked by admin"), if ((size(dm.payments) == 1))
862+ else aG("get operation is blocked by admin"), if ((size(dl.payments) == 1))
874863 then true
875- else aE("exactly 1 payment are expected")]
864+ else aG("exactly 1 payment are expected")]
876865 if ((ej == ej))
877866 then {
878- let ei = aR(fq)
879- let fi = dm.payments[0]
880- let dC = fi.assetId
881- let dQ = fi.amount
882- let X = dm.caller
883- let Y = dm.transactionId
884- let fs = eh(ei, dQ, dC, X, Y)
885- let ft = fs._1
886- let cW = fs._2
887- let dz = fs._3
888- let fl = fs._4
889- let du = if (if ((fd > 0))
890- then (fd > ft)
867+ let ei = aQ(fp)
868+ let fh = dl.payments[0]
869+ let dC = fh.assetId
870+ let dQ = fh.amount
871+ let X = dl.caller
872+ let Y = dl.transactionId
873+ let fr = eh(ei, dQ, dC, X, Y)
874+ let fs = fr._1
875+ let cV = fr._2
876+ let dz = fr._3
877+ let fk = fr._4
878+ let dt = if (if ((fc > 0))
879+ then (fc > fs)
891880 else false)
892- then aE(makeString(["amount to receive is less than ", toString(fd)], ""))
893- else ft
894- let fu = invoke(aK, "burn", [dQ], [AttachedPayment(dC, dQ)])
895- if ((fu == fu))
881+ then aG(makeString(["amount to receive is less than ", toString(fc)], ""))
882+ else fs
883+ let ft = invoke(aJ, "burn", [dQ], [AttachedPayment(dC, dQ)])
884+ if ((ft == ft))
896885 then {
897- let fv = [ScriptTransfer(X, du, ei)]
898- let fo = if ((dz > 0))
899- then [ScriptTransfer(aL, dz, ei)]
886+ let fu = [ScriptTransfer(X, dt, ei)]
887+ let fn = if ((dz > 0))
888+ then [ScriptTransfer(aK, dz, ei)]
900889 else nil
901- $Tuple2(((cW ++ fv) ++ fo), du)
890+ $Tuple2(((cV ++ fu) ++ fn), dt)
902891 }
903892 else throw("Strict value is not equal to itself.")
904893 }
905894 else throw("Strict value is not equal to itself.")
906895 }
907896
908897
909898
910-@Callable(dm)
899+@Callable(dl)
911900 func getOneTknREADONLY (ei,dQ) = {
912- let fw = eh(aR(ei), dQ, ba, unit, unit)
913- let ft = fw._1
914- let cW = fw._2
915- let dz = fw._3
916- let fl = fw._4
917- $Tuple2(nil, $Tuple3(ft, dz, fl))
901+ let fv = eh(aQ(ei), dQ, aZ, unit, unit)
902+ let fs = fv._1
903+ let cV = fv._2
904+ let dz = fv._3
905+ let fk = fv._4
906+ $Tuple2(nil, $Tuple3(fs, dz, fk))
918907 }
919908
920909
921910
922-@Callable(dm)
923-func unstakeAndGetOneTkn (fx,fq,fd) = {
924- let ff = {
925- let fg = invoke(aK, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
926- if ($isInstanceOf(fg, "Boolean"))
927- then fg
928- else throw(($getType(fg) + " couldn't be cast to Boolean"))
911+@Callable(dl)
912+func unstakeAndGetOneTkn (fw,fp,fc) = {
913+ let fe = {
914+ let ff = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
915+ if ($isInstanceOf(ff, "Boolean"))
916+ then ff
917+ else throw(($getType(ff) + " couldn't be cast to Boolean"))
929918 }
930- let fr = if (if (aM())
919+ let fq = if (if (aL())
931920 then true
932- else (aZ == n))
921+ else (aY == n))
933922 then true
934- else ff
935- let ej = [if (if (!(fr))
923+ else fe
924+ let ej = [if (if (!(fq))
936925 then true
937- else eL(dm))
926+ else eK(dl))
938927 then true
939- else aE("get operation is blocked by admin"), if ((size(dm.payments) == 0))
928+ else aG("get operation is blocked by admin"), if ((size(dl.payments) == 0))
940929 then true
941- else aE("no payments are expected")]
930+ else aG("no payments are expected")]
942931 if ((ej == ej))
943932 then {
944- let ei = aR(fq)
945- let X = dm.caller
946- let Y = dm.transactionId
947- let fy = invoke(bg, "unstake", [toBase58String(ba), fx], nil)
948- if ((fy == fy))
933+ let ei = aQ(fp)
934+ let X = dl.caller
935+ let Y = dl.transactionId
936+ let fx = invoke(bf, "unstake", [toBase58String(aZ), fw], nil)
937+ if ((fx == fx))
949938 then {
950- let fz = eh(ei, fx, ba, X, Y)
951- let ft = fz._1
952- let cW = fz._2
953- let dz = fz._3
954- let fl = fz._4
955- let du = if (if ((fd > 0))
956- then (fd > ft)
939+ let fy = eh(ei, fw, aZ, X, Y)
940+ let fs = fy._1
941+ let cV = fy._2
942+ let dz = fy._3
943+ let fk = fy._4
944+ let dt = if (if ((fc > 0))
945+ then (fc > fs)
957946 else false)
958- then aE(makeString(["amount to receive is less than ", toString(fd)], ""))
959- else ft
960- let fu = invoke(aK, "burn", [fx], [AttachedPayment(ba, fx)])
961- if ((fu == fu))
947+ then aG(makeString(["amount to receive is less than ", toString(fc)], ""))
948+ else fs
949+ let ft = invoke(aJ, "burn", [fw], [AttachedPayment(aZ, fw)])
950+ if ((ft == ft))
962951 then {
963- let fv = [ScriptTransfer(dm.caller, du, ei)]
964- let fo = if ((dz > 0))
965- then [ScriptTransfer(aL, dz, ei)]
952+ let fu = [ScriptTransfer(dl.caller, dt, ei)]
953+ let fn = if ((dz > 0))
954+ then [ScriptTransfer(aK, dz, ei)]
966955 else nil
967- $Tuple2(((cW ++ fv) ++ fo), du)
956+ $Tuple2(((cV ++ fu) ++ fn), dt)
968957 }
969958 else throw("Strict value is not equal to itself.")
970959 }
971960 else throw("Strict value is not equal to itself.")
972961 }
973962 else throw("Strict value is not equal to itself.")
974963 }
975964
976965
977966
978-@Callable(dm)
967+@Callable(dl)
979968 func get () = {
980- let cH = dl(dm)
981- let fA = cH._1
982- let co = cH._2
983- let do = cH._3
984- let bW = cH._4
985- let cp = cH._5
986- let fB = invoke(aK, "burn", [do], [AttachedPayment(bW, do)])
987- if ((fB == fB))
988- then cp
969+ let cG = dk(dl)
970+ let fz = cG._1
971+ let cn = cG._2
972+ let dn = cG._3
973+ let bV = cG._4
974+ let co = cG._5
975+ let fA = invoke(aJ, "burn", [dn], [AttachedPayment(bV, dn)])
976+ if ((fA == fA))
977+ then co
989978 else throw("Strict value is not equal to itself.")
990979 }
991980
992981
993982
994-@Callable(dm)
995-func getNoLess (fC,fD) = {
996- let cH = dl(dm)
997- let cn = cH._1
998- let co = cH._2
999- let do = cH._3
1000- let bW = cH._4
1001- let cp = cH._5
1002- if ((fC > cn))
1003- then throw(((("noLessThenAmtAsset failed: " + toString(cn)) + " < ") + toString(fC)))
1004- else if ((fD > co))
1005- then throw(((("noLessThenPriceAsset failed: " + toString(co)) + " < ") + toString(fD)))
983+@Callable(dl)
984+func getNoLess (fB,fC) = {
985+ let cG = dk(dl)
986+ let cm = cG._1
987+ let cn = cG._2
988+ let dn = cG._3
989+ let bV = cG._4
990+ let co = cG._5
991+ if ((fB > cm))
992+ then throw(((("noLessThenAmtAsset failed: " + toString(cm)) + " < ") + toString(fB)))
993+ else if ((fC > cn))
994+ then throw(((("noLessThenPriceAsset failed: " + toString(cn)) + " < ") + toString(fC)))
1006995 else {
1007- let fB = invoke(aK, "burn", [do], [AttachedPayment(bW, do)])
1008- if ((fB == fB))
1009- then cp
996+ let fA = invoke(aJ, "burn", [dn], [AttachedPayment(bV, dn)])
997+ if ((fA == fA))
998+ then co
1010999 else throw("Strict value is not equal to itself.")
10111000 }
10121001 }
10131002
10141003
10151004
1016-@Callable(dm)
1017-func unstakeAndGet (du) = {
1018- let fE = if ((size(dm.payments) != 0))
1005+@Callable(dl)
1006+func unstakeAndGet (dt) = {
1007+ let fD = if ((size(dl.payments) != 0))
10191008 then throw("No payments are expected")
10201009 else true
1021- if ((fE == fE))
1010+ if ((fD == fD))
10221011 then {
1023- let bL = aO()
1024- let bY = fromBase58String(bL[q])
1025- let fy = invoke(bg, "unstake", [toBase58String(bY), du], nil)
1026- if ((fy == fy))
1012+ let bK = aN()
1013+ let bX = fromBase58String(bK[q])
1014+ let fx = invoke(bf, "unstake", [toBase58String(bX), dt], nil)
1015+ if ((fx == fx))
10271016 then {
1028- let cH = bU(toBase58String(dm.transactionId), toBase58String(bY), du, dm.caller)
1029- let cb = parseIntValue(cH._9)
1030- let cp = cH._10
1031- let fF = if (if (aM())
1017+ let cG = bT(toBase58String(dl.transactionId), toBase58String(bX), dt, dl.caller)
1018+ let ca = parseIntValue(cG._9)
1019+ let co = cG._10
1020+ let fE = if (if (aL())
10321021 then true
1033- else (cb == n))
1034- then throw(("Get operation is blocked by admin. Status = " + toString(cb)))
1022+ else (ca == n))
1023+ then throw(("Get operation is blocked by admin. Status = " + toString(ca)))
10351024 else true
1036- if ((fF == fF))
1025+ if ((fE == fE))
10371026 then {
1038- let fB = invoke(aK, "burn", [du], [AttachedPayment(bY, du)])
1039- if ((fB == fB))
1040- then cp
1027+ let fA = invoke(aJ, "burn", [dt], [AttachedPayment(bX, dt)])
1028+ if ((fA == fA))
1029+ then co
10411030 else throw("Strict value is not equal to itself.")
10421031 }
10431032 else throw("Strict value is not equal to itself.")
10441033 }
10451034 else throw("Strict value is not equal to itself.")
10461035 }
10471036 else throw("Strict value is not equal to itself.")
10481037 }
10491038
10501039
10511040
1052-@Callable(dm)
1053-func unstakeAndGetNoLess (fx,fG,fD) = {
1054- let fr = if (aM())
1041+@Callable(dl)
1042+func unstakeAndGetNoLess (fw,fF,fC) = {
1043+ let fq = if (aL())
10551044 then true
1056- else (aZ == n)
1057- let ej = [if (!(fr))
1045+ else (aY == n)
1046+ let ej = [if (!(fq))
10581047 then true
1059- else throw("get operation is blocked by admin"), if ((size(dm.payments) == 0))
1048+ else throw("get operation is blocked by admin"), if ((size(dl.payments) == 0))
10601049 then true
10611050 else throw("no payments are expected")]
10621051 if ((ej == ej))
10631052 then {
1064- let fy = invoke(bg, "unstake", [toBase58String(ba), fx], nil)
1065- if ((fy == fy))
1053+ let fx = invoke(bf, "unstake", [toBase58String(aZ), fw], nil)
1054+ if ((fx == fx))
10661055 then {
1067- let cH = bU(toBase58String(dm.transactionId), toBase58String(ba), fx, dm.caller)
1068- let cn = cH._1
1069- let co = cH._2
1070- let cp = cH._10
1071- let fH = [if ((cn >= fG))
1056+ let cG = bT(toBase58String(dl.transactionId), toBase58String(aZ), fw, dl.caller)
1057+ let cm = cG._1
1058+ let cn = cG._2
1059+ let co = cG._10
1060+ let fG = [if ((cm >= fF))
10721061 then true
1073- else throw(makeString(["amount asset amount to receive is less than ", toString(fG)], "")), if ((co >= fD))
1062+ else throw(makeString(["amount asset amount to receive is less than ", toString(fF)], "")), if ((cn >= fC))
10741063 then true
1075- else throw(makeString(["price asset amount to receive is less than ", toString(fD)], ""))]
1076- if ((fH == fH))
1064+ else throw(makeString(["price asset amount to receive is less than ", toString(fC)], ""))]
1065+ if ((fG == fG))
10771066 then {
1078- let fB = invoke(aK, "burn", [fx], [AttachedPayment(ba, fx)])
1079- if ((fB == fB))
1080- then cp
1067+ let fA = invoke(aJ, "burn", [fw], [AttachedPayment(aZ, fw)])
1068+ if ((fA == fA))
1069+ then co
10811070 else throw("Strict value is not equal to itself.")
10821071 }
10831072 else throw("Strict value is not equal to itself.")
10841073 }
10851074 else throw("Strict value is not equal to itself.")
10861075 }
10871076 else throw("Strict value is not equal to itself.")
10881077 }
10891078
10901079
10911080
1092-@Callable(dm)
1093-func activate (fI,fJ) = if ((toString(dm.caller) != toString(aK)))
1081+@Callable(dl)
1082+func activate (fH,fI) = if ((toString(dl.caller) != toString(aJ)))
10941083 then throw("permissions denied")
1095- else $Tuple2([StringEntry(aa(), fI), StringEntry(ab(), fJ)], "success")
1084+ else $Tuple2([StringEntry(aa(), fH), StringEntry(ab(), fI)], "success")
10961085
10971086
10981087
1099-@Callable(dm)
1088+@Callable(dl)
11001089 func refreshKLp () = {
1101- let fK = valueOrElse(getInteger(ag), 0)
1102- let fL = aE(makeString([value(getString(ah)), "blocks have not passed since the previous call"], " "))
1103- let fM = if (((height - fK) >= 30))
1104- then true
1105- else fL
1106- if ((fM == fM))
1090+ let fJ = valueOrElse(getInteger(ag), 0)
1091+ let fK = if (((height - fJ) >= aj))
1092+ then unit
1093+ else aG(makeString([toString(aj), " blocks have not passed since the previous call"], ""))
1094+ if ((fK == fK))
11071095 then {
1108- let eD = aH(eE())
1096+ let eD = eE()
11091097 [IntegerEntry(ag, height), IntegerEntry(af, eD)]
11101098 }
11111099 else throw("Strict value is not equal to itself.")
11121100 }
11131101
11141102
11151103
1116-@Callable(dm)
1117-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aO())
1104+@Callable(dl)
1105+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aN())
11181106
11191107
11201108
1121-@Callable(dm)
1122-func getAccBalanceWrapperREADONLY (by) = $Tuple2(nil, bx(by))
1109+@Callable(dl)
1110+func getAccBalanceWrapperREADONLY (bx) = $Tuple2(nil, bw(bx))
11231111
11241112
11251113
1126-@Callable(dm)
1127-func calcPricesWrapperREADONLY (bF,bG,bK) = {
1128- let bT = bJ(bF, bG, bK)
1129- $Tuple2(nil, [toString(bT[0]), toString(bT[1]), toString(bT[2])])
1114+@Callable(dl)
1115+func calcPricesWrapperREADONLY (bE,bF,bJ) = {
1116+ let bS = bI(bE, bF, bJ)
1117+ $Tuple2(nil, [toString(bS[0]), toString(bS[1]), toString(bS[2])])
11301118 }
11311119
11321120
11331121
1134-@Callable(dm)
1122+@Callable(dl)
11351123 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
11361124
11371125
11381126
1139-@Callable(dm)
1127+@Callable(dl)
11401128 func fromX18WrapperREADONLY (H,I) = $Tuple2(nil, G(parseBigIntValue(H), I))
11411129
11421130
11431131
1144-@Callable(dm)
1145-func calcPriceBigIntWrapperREADONLY (bA,bB) = $Tuple2(nil, toString(bz(parseBigIntValue(bA), parseBigIntValue(bB))))
1132+@Callable(dl)
1133+func calcPriceBigIntWrapperREADONLY (bz,bA) = $Tuple2(nil, toString(by(parseBigIntValue(bz), parseBigIntValue(bA))))
11461134
11471135
11481136
1149-@Callable(dm)
1150-func estimatePutOperationWrapperREADONLY (bV,cr,cs,ct,cu,cv,X,cw,cx) = $Tuple2(nil, cq(bV, cr, cs, ct, cu, cv, X, cw, cx))
1137+@Callable(dl)
1138+func estimatePutOperationWrapperREADONLY (bU,cq,cr,cs,ct,cu,X,cv,cw) = $Tuple2(nil, cp(bU, cq, cr, cs, ct, cu, X, cv, cw))
11511139
11521140
11531141
1154-@Callable(dm)
1155-func estimateGetOperationWrapperREADONLY (bV,bW,bX,X) = {
1156- let cH = bU(bV, bW, bX, addressFromStringValue(X))
1157- $Tuple2(nil, $Tuple10(cH._1, cH._2, cH._3, cH._4, cH._5, cH._6, cH._7, toString(cH._8), cH._9, cH._10))
1142+@Callable(dl)
1143+func estimateGetOperationWrapperREADONLY (bU,bV,bW,X) = {
1144+ let cG = bT(bU, bV, bW, addressFromStringValue(X))
1145+ $Tuple2(nil, $Tuple10(cG._1, cG._2, cG._3, cG._4, cG._5, cG._6, cG._7, toString(cG._8), cG._9, cG._10))
11581146 }
11591147
11601148
11611149
1162-@Callable(dm)
1150+@Callable(dl)
11631151 func statsREADONLY () = {
1164- let bL = aO()
1165- let bY = fromBase58String(bL[q])
1166- let cZ = bL[r]
1167- let da = bL[s]
1168- let cA = bL[v]
1169- let cB = bL[w]
1170- let bM = parseIntValue(bL[t])
1171- let bN = parseIntValue(bL[u])
1172- let fN = valueOrErrorMessage(assetInfo(bY), (("Asset " + toBase58String(bY)) + " doesn't exist")).quantity
1173- let db = bx(cZ)
1174- let dc = bx(da)
1175- let fO = if ((fN == 0))
1152+ let bK = aN()
1153+ let bX = fromBase58String(bK[q])
1154+ let cY = bK[r]
1155+ let cZ = bK[s]
1156+ let cz = bK[v]
1157+ let cA = bK[w]
1158+ let bL = parseIntValue(bK[t])
1159+ let bM = parseIntValue(bK[u])
1160+ let fL = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
1161+ let da = bw(cY)
1162+ let db = bw(cZ)
1163+ let fM = if ((fL == 0))
11761164 then [e, e, e]
1177- else bJ(db, dc, fN)
1178- let ci = 0
1179- let fP = G(fO[1], b)
1180- let fQ = G(fO[2], b)
1181- let fR = value(getInteger(aK, as(toString(this))))
1182- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(db), toString(dc), toString(fN), toString(ci), toString(fP), toString(fQ), toString(fR)], j))
1165+ else bI(da, db, fL)
1166+ let ch = 0
1167+ let fN = G(fM[1], b)
1168+ let fO = G(fM[2], b)
1169+ let fP = value(getInteger(aJ, au(toString(this))))
1170+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(da), toString(db), toString(fL), toString(ch), toString(fN), toString(fO), toString(fP)], j))
11831171 }
11841172
11851173
11861174
1187-@Callable(dm)
1188-func evaluatePutByAmountAssetREADONLY (cs) = {
1189- let bL = aO()
1190- let bY = fromBase58String(bL[q])
1191- let cy = bL[r]
1175+@Callable(dl)
1176+func evaluatePutByAmountAssetREADONLY (cr) = {
1177+ let bK = aN()
1178+ let bX = fromBase58String(bK[q])
1179+ let cx = bK[r]
1180+ let bY = fromBase58String(cx)
1181+ let cy = bK[s]
11921182 let bZ = fromBase58String(cy)
1193- let cz = bL[s]
1194- let ca = fromBase58String(cz)
1195- let bM = parseIntValue(bL[t])
1196- let bN = parseIntValue(bL[u])
1197- let cb = bL[p]
1198- let fN = valueOrErrorMessage(assetInfo(bY), (("Asset " + toBase58String(bY)) + " doesn't exist")).quantity
1199- let db = bx(cy)
1200- let dc = bx(cz)
1183+ let bL = parseIntValue(bK[t])
1184+ let bM = parseIntValue(bK[u])
1185+ let ca = bK[p]
1186+ let fL = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
1187+ let da = bw(cx)
1188+ let db = bw(cy)
1189+ let bG = D(da, bL)
12011190 let bH = D(db, bM)
1202- let bI = D(dc, bN)
1203- let ch = if ((fN == 0))
1191+ let cg = if ((fL == 0))
12041192 then e
1205- else bz(bI, bH)
1206- let cE = D(cs, bM)
1207- let cF = fraction(cE, ch, d)
1208- let cu = G(cF, bN)
1209- let ds = cq("", 500000, cs, bZ, cu, ca, "", true, false)
1210- let cP = ds._1
1211- let fS = ds._3
1212- let cd = ds._4
1213- let cf = ds._5
1214- let cc = ds._6
1215- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cP), toString(G(ch, b)), toString(cd), toString(cf), toString(cc), cb, toString(cs), toString(cu)], j))
1193+ else by(bH, bG)
1194+ let cD = D(cr, bL)
1195+ let cE = fraction(cD, cg, d)
1196+ let ct = G(cE, bM)
1197+ let dr = cp("", 500000, cr, bY, ct, bZ, "", true, false)
1198+ let cO = dr._1
1199+ let fQ = dr._3
1200+ let cc = dr._4
1201+ let ce = dr._5
1202+ let cb = dr._6
1203+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cO), toString(G(cg, b)), toString(cc), toString(ce), toString(cb), ca, toString(cr), toString(ct)], j))
12161204 }
12171205
12181206
12191207
1220-@Callable(dm)
1221-func evaluatePutByPriceAssetREADONLY (cu) = {
1222- let bL = aO()
1223- let bY = fromBase58String(bL[q])
1224- let cy = bL[r]
1208+@Callable(dl)
1209+func evaluatePutByPriceAssetREADONLY (ct) = {
1210+ let bK = aN()
1211+ let bX = fromBase58String(bK[q])
1212+ let cx = bK[r]
1213+ let bY = fromBase58String(cx)
1214+ let cy = bK[s]
12251215 let bZ = fromBase58String(cy)
1226- let cz = bL[s]
1227- let ca = fromBase58String(cz)
1228- let bM = parseIntValue(bL[t])
1229- let bN = parseIntValue(bL[u])
1230- let cb = bL[p]
1231- let fN = valueOrErrorMessage(assetInfo(bY), (("Asset " + toBase58String(bY)) + " doesn't exist")).quantity
1232- let fT = bx(cy)
1233- let fU = bx(cz)
1234- let fV = D(fT, bM)
1235- let fW = D(fU, bN)
1236- let ch = if ((fN == 0))
1216+ let bL = parseIntValue(bK[t])
1217+ let bM = parseIntValue(bK[u])
1218+ let ca = bK[p]
1219+ let fL = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
1220+ let fR = bw(cx)
1221+ let fS = bw(cy)
1222+ let fT = D(fR, bL)
1223+ let fU = D(fS, bM)
1224+ let cg = if ((fL == 0))
12371225 then e
1238- else bz(fW, fV)
1239- let cF = D(cu, bN)
1240- let cE = fraction(cF, d, ch)
1241- let cs = G(cE, bM)
1242- let ds = cq("", 500000, cs, bZ, cu, ca, "", true, false)
1243- let cP = ds._1
1244- let fS = ds._3
1245- let cd = ds._4
1246- let cf = ds._5
1247- let cc = ds._6
1248- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cP), toString(G(ch, b)), toString(cd), toString(cf), toString(cc), cb, toString(cs), toString(cu)], j))
1226+ else by(fU, fT)
1227+ let cE = D(ct, bM)
1228+ let cD = fraction(cE, d, cg)
1229+ let cr = G(cD, bL)
1230+ let dr = cp("", 500000, cr, bY, ct, bZ, "", true, false)
1231+ let cO = dr._1
1232+ let fQ = dr._3
1233+ let cc = dr._4
1234+ let ce = dr._5
1235+ let cb = dr._6
1236+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cO), toString(G(cg, b)), toString(cc), toString(ce), toString(cb), ca, toString(cr), toString(ct)], j))
12491237 }
12501238
12511239
12521240
1253-@Callable(dm)
1254-func evaluateGetREADONLY (fX,fY) = {
1255- let cH = bU("", fX, fY, this)
1256- let cn = cH._1
1257- let co = cH._2
1258- let cd = cH._5
1259- let cf = cH._6
1260- let cc = cH._7
1261- let ci = cH._8
1262- let cb = parseIntValue(cH._9)
1263- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cn), toString(co), toString(cd), toString(cf), toString(cc), toString(ci), toString(cb)], j))
1241+@Callable(dl)
1242+func evaluateGetREADONLY (fV,fW) = {
1243+ let cG = bT("", fV, fW, this)
1244+ let cm = cG._1
1245+ let cn = cG._2
1246+ let cc = cG._5
1247+ let ce = cG._6
1248+ let cb = cG._7
1249+ let ch = cG._8
1250+ let ca = parseIntValue(cG._9)
1251+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cm), toString(cn), toString(cc), toString(ce), toString(cb), toString(ch), toString(ca)], j))
12641252 }
12651253
12661254
1267-@Verifier(fZ)
1268-func ga () = {
1269- let gb = {
1270- let aI = eI()
1271- if ($isInstanceOf(aI, "ByteVector"))
1255+@Verifier(fX)
1256+func fY () = {
1257+ let fZ = {
1258+ let dw = eH()
1259+ if ($isInstanceOf(dw, "ByteVector"))
12721260 then {
1273- let eM = aI
1274- eM
1261+ let eL = dw
1262+ eL
12751263 }
1276- else if ($isInstanceOf(aI, "Unit"))
1277- then fZ.senderPublicKey
1264+ else if ($isInstanceOf(dw, "Unit"))
1265+ then fX.senderPublicKey
12781266 else throw("Match error")
12791267 }
1280- let aI = fZ
1281- if ($isInstanceOf(aI, "Order"))
1268+ let dw = fX
1269+ if ($isInstanceOf(dw, "Order"))
12821270 then {
1283- let cY = aI
1284- let gc = aN()
1285- let ax = cX(cY)
1286- let ay = sigVerify(cY.bodyBytes, cY.proofs[0], cY.senderPublicKey)
1287- let az = sigVerify(cY.bodyBytes, cY.proofs[1], gc)
1288- if (if (if (ax)
1289- then ay
1271+ let cX = dw
1272+ let ga = aM()
1273+ let az = cW(cX)
1274+ let aA = sigVerify(cX.bodyBytes, cX.proofs[0], cX.senderPublicKey)
1275+ let aB = sigVerify(cX.bodyBytes, cX.proofs[1], ga)
1276+ if (if (if (az)
1277+ then aA
12901278 else false)
1291- then az
1279+ then aB
12921280 else false)
12931281 then true
1294- else aw(ax, ay, az)
1282+ else ay(az, aA, aB)
12951283 }
1296- else if ($isInstanceOf(aI, "SetScriptTransaction"))
1284+ else if ($isInstanceOf(dw, "SetScriptTransaction"))
12971285 then {
1298- let eJ = aI
1299- let gd = blake2b256(value(eJ.script))
1300- let ge = fromBase64String(value(getString(aK, au())))
1301- let gf = scriptHash(this)
1302- if (if ((ge == gd))
1303- then (gf != gd)
1286+ let eI = dw
1287+ let gb = blake2b256(value(eI.script))
1288+ let gc = fromBase64String(value(getString(aJ, aw())))
1289+ let gd = scriptHash(this)
1290+ if (if ((gc == gb))
1291+ then (gd != gb)
13041292 else false)
13051293 then true
1306- else sigVerify(fZ.bodyBytes, fZ.proofs[0], gb)
1294+ else sigVerify(fX.bodyBytes, fX.proofs[0], fZ)
13071295 }
1308- else sigVerify(fZ.bodyBytes, fZ.proofs[0], gb)
1296+ else sigVerify(fX.bodyBytes, fX.proofs[0], fZ)
13091297 }
13101298

github/deemru/w8io/169f3d6 
379.87 ms