tx · BTEXZM4HfHc9RqASKBxWCL55UndGJLWL12C5U19G3efv

3Mv2ozd8y23QCNtzBbL6pbAxJ6cT7Hds3VD:  -0.03000000 Waves

2022.11.09 10:27 [2309294] smart account 3Mv2ozd8y23QCNtzBbL6pbAxJ6cT7Hds3VD > SELF 0.00000000 Waves

{ "type": 13, "id": "BTEXZM4HfHc9RqASKBxWCL55UndGJLWL12C5U19G3efv", "fee": 3000000, "feeAssetId": null, "timestamp": 1667978826471, "version": 1, "sender": "3Mv2ozd8y23QCNtzBbL6pbAxJ6cT7Hds3VD", "senderPublicKey": "4TAMTfz1jYZDdz74KmYG6pKSVAPTFJa2tJhrhhr7ovef", "proofs": [ "2zXpQP8SGR3EpQCYVkZ2LfT97iQz74jX9i2FbUkwJeV9fzMmosu2mih3xS7U22Tch8DwxGw1YKde46vmnFjrS18z" ], "script": "base64:BgK/JwgCEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAggBEgQKAggBEgQKAggBEgUKAwEIARIAEgQKAgEBEgMKAQESBQoDAQEBEgQKAggIEgASAwoBCBIFCgMBAQESBAoCAQESBAoCCAESBAoCCAgSCwoJCAEBAgECCAQEEgYKBAgIAQgSABIDCgEBEgMKAQESBAoCCAEiCmxQZGVjaW1hbHMiBnNjYWxlOCIMc2NhbGU4QmlnSW50IgdzY2FsZTE4Igp6ZXJvQmlnSW50IgRiaWcwIgRiaWcxIgRiaWcyIgt3YXZlc1N0cmluZyIDU0VQIgpQb29sQWN0aXZlIg9Qb29sUHV0RGlzYWJsZWQiE1Bvb2xNYXRjaGVyRGlzYWJsZWQiDFBvb2xTaHV0ZG93biIOaWR4UG9vbEFkZHJlc3MiDWlkeFBvb2xTdGF0dXMiEGlkeFBvb2xMUEFzc2V0SWQiDWlkeEFtdEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIOaWR4QW10QXNzZXREY20iEGlkeFByaWNlQXNzZXREY20iDmlkeElBbXRBc3NldElkIhBpZHhJUHJpY2VBc3NldElkIg1pZHhMUEFzc2V0RGNtIhJpZHhQb29sQW10QXNzZXRBbXQiFGlkeFBvb2xQcmljZUFzc2V0QW10IhFpZHhQb29sTFBBc3NldEFtdCIZaWR4RmFjdG9yeVN0YWtpbmdDb250cmFjdCIaaWR4RmFjdG9yeVNsaXBwYWdlQ29udHJhY3QiDHRlc3RpbmdnZ2dnZyIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiB2Zyb21YMTgiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0Igd0b1NjYWxlIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIglhYnNCaWdJbnQiAmZjIgNtcGsiBHBtcGsiAnBsIgJwaCIBaCIJdGltZXN0YW1wIgNwYXUiC3VzZXJBZGRyZXNzIgR0eElkIgNnYXUiAmFhIgJwYSIGa2V5RmVlIgpmZWVEZWZhdWx0IgNmZWUiEGtleUZhY3RvcnlDb25maWciDWtleU1hdGNoZXJQdWIiKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzIhNwb29sQ29udHJhY3RBZGRyZXNzIg1rZXlQb29sQ29uZmlnIglpQW10QXNzZXQiC2lQcmljZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiE2tleUFsbFBvb2xzU2h1dGRvd24iDWtleVBvb2xXZWlnaHQiD2NvbnRyYWN0QWRkcmVzcyIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIWa2V5RmVlQ29sbGVjdG9yQWRkcmVzcyIPdGhyb3dPcmRlckVycm9yIgpvcmRlclZhbGlkIgtzZW5kZXJWYWxpZCIMbWF0Y2hlclZhbGlkIg9nZXRTdHJpbmdPckZhaWwiB2FkZHJlc3MiA2tleSIMZ2V0SW50T3JGYWlsIgh0aHJvd0VyciIDbXNnIg9mYWN0b3J5Q29udHJhY3QiE2ZlZUNvbGxlY3RvckFkZHJlc3MiEGlzR2xvYmFsU2h1dGRvd24iE2dldE1hdGNoZXJQdWJPckZhaWwiDWdldFBvb2xDb25maWciCGFtdEFzc2V0IgpwcmljZUFzc2V0IgxwYXJzZUFzc2V0SWQiBWlucHV0Ig9hc3NldElkVG9TdHJpbmciD3BhcnNlUG9vbENvbmZpZyIKcG9vbENvbmZpZyIQcG9vbENvbmZpZ1BhcnNlZCILJHQwNzU2Njc3MzIiDmNmZ1Bvb2xBZGRyZXNzIg1jZmdQb29sU3RhdHVzIgxjZmdMcEFzc2V0SWQiEGNmZ0Ftb3VudEFzc2V0SWQiD2NmZ1ByaWNlQXNzZXRJZCIWY2ZnQW1vdW50QXNzZXREZWNpbWFscyIVY2ZnUHJpY2VBc3NldERlY2ltYWxzIhBnZXRGYWN0b3J5Q29uZmlnIg9zdGFraW5nQ29udHJhY3QiEHNsaXBwYWdlQ29udHJhY3QiEWRhdGFQdXRBY3Rpb25JbmZvIg1pbkFtdEFzc2V0QW10Ig9pblByaWNlQXNzZXRBbXQiCG91dExwQW10IgVwcmljZSIdc2xpcHBhZ2VUb2xlcmFuY2VQYXNzZWRCeVVzZXIiFXNsaXBwYWdlVG9sZXJhbmNlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIhJzbGlwYWdlQW10QXNzZXRBbXQiFHNsaXBhZ2VQcmljZUFzc2V0QW10IhFkYXRhR2V0QWN0aW9uSW5mbyIOb3V0QW10QXNzZXRBbXQiEG91dFByaWNlQXNzZXRBbXQiB2luTHBBbXQiDWdldEFjY0JhbGFuY2UiB2Fzc2V0SWQiD2NhbGNQcmljZUJpZ0ludCIIcHJBbXRYMTgiCGFtQW10WDE4IhBwcml2YXRlQ2FsY1ByaWNlIgphbUFzc2V0RGNtIgpwckFzc2V0RGNtIgVhbUFtdCIFcHJBbXQiDmFtdEFzc2V0QW10WDE4IhBwcmljZUFzc2V0QW10WDE4IgpjYWxjUHJpY2VzIgVscEFtdCIDY2ZnIgthbXRBc3NldERjbSINcHJpY2VBc3NldERjbSIIcHJpY2VYMTgiCGxwQW10WDE4IhNscFByaWNlSW5BbUFzc2V0WDE4IhNscFByaWNlSW5QckFzc2V0WDE4Ig9jYWxjdWxhdGVQcmljZXMiBnByaWNlcyIUZXN0aW1hdGVHZXRPcGVyYXRpb24iBnR4SWQ1OCIKcG10QXNzZXRJZCIIcG10THBBbXQiCWxwQXNzZXRJZCIJYW1Bc3NldElkIglwckFzc2V0SWQiCnBvb2xTdGF0dXMiCmxwRW1pc3Npb24iCWFtQmFsYW5jZSIMYW1CYWxhbmNlWDE4IglwckJhbGFuY2UiDHByQmFsYW5jZVgxOCILY3VyUHJpY2VYMTgiCGN1clByaWNlIgtwbXRMcEFtdFgxOCINbHBFbWlzc2lvblgxOCILb3V0QW1BbXRYMTgiC291dFByQW10WDE4IghvdXRBbUFtdCIIb3V0UHJBbXQiBXN0YXRlIhRlc3RpbWF0ZVB1dE9wZXJhdGlvbiIRc2xpcHBhZ2VUb2xlcmFuY2UiDGluQW1Bc3NldEFtdCILaW5BbUFzc2V0SWQiDGluUHJBc3NldEFtdCILaW5QckFzc2V0SWQiCmlzRXZhbHVhdGUiBmVtaXRMcCIMYW1Bc3NldElkU3RyIgxwckFzc2V0SWRTdHIiC2lBbXRBc3NldElkIg1pUHJpY2VBc3NldElkIg5pbkFtQXNzZXRJZFN0ciIOaW5QckFzc2V0SWRTdHIiD2luQW1Bc3NldEFtdFgxOCIPaW5QckFzc2V0QW10WDE4Igx1c2VyUHJpY2VYMTgiA3JlcyILc2xpcHBhZ2VYMTgiFHNsaXBwYWdlVG9sZXJhbmNlWDE4IgpwclZpYUFtWDE4IgphbVZpYVByWDE4IgxleHBlY3RlZEFtdHMiEWV4cEFtdEFzc2V0QW10WDE4IhNleHBQcmljZUFzc2V0QW10WDE4IgljYWxjTHBBbXQiDmNhbGNBbUFzc2V0UG10Ig5jYWxjUHJBc3NldFBtdCIMc2xpcHBhZ2VDYWxjIgllbWl0THBBbXQiBmFtRGlmZiIGcHJEaWZmIgtjb21tb25TdGF0ZSIbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkIgVvcmRlciIKYW10QXNzZXRJZCIMcHJpY2VBc3NldElkIhJhY2NBbXRBc3NldEJhbGFuY2UiFGFjY1ByaWNlQXNzZXRCYWxhbmNlIg1vcmRlckFtdEFzc2V0IhBvcmRlckFtdEFzc2V0U3RyIg9vcmRlclByaWNlQXNzZXQiEm9yZGVyUHJpY2VBc3NldFN0ciIKb3JkZXJQcmljZSIIcHJpY2VEY20iEGNhc3RlZE9yZGVyUHJpY2UiEWlzT3JkZXJQcmljZVZhbGlkIgljb21tb25HZXQiAWkiA3BtdCIGcG10QW10Igljb21tb25QdXQiCmFtQXNzZXRQbXQiCnByQXNzZXRQbXQiBmVzdFB1dCIEZW1pdCIGYW1vdW50IgdlbWl0SW52Ig1lbWl0SW52TGVnYWN5IgckbWF0Y2gwIhVsZWdhY3lGYWN0b3J5Q29udHJhY3QiB3Rha2VGZWUiCWZlZUFtb3VudCIPY2FsY1B1dE9uZVRva2VuIhBwYXltZW50QW1vdW50UmF3Ig5wYXltZW50QXNzZXRJZCIGaXNFdmFsIhBhbW91bnRCYWxhbmNlUmF3Ig9wcmljZUJhbGFuY2VSYXciFHBheW1lbnRJbkFtb3VudEFzc2V0Ig0kdDAyMjU5MzIyODg2IhBhbW91bnRCYWxhbmNlT2xkIg9wcmljZUJhbGFuY2VPbGQiDSR0MDIyODkwMjMwMzkiFGFtb3VudEFzc2V0QW1vdW50UmF3IhNwcmljZUFzc2V0QW1vdW50UmF3IhFhbW91bnRBc3NldEFtb3VudCIQcHJpY2VBc3NldEFtb3VudCINJHQwMjMxNjEyMzIyMCINcGF5bWVudEFtb3VudCIQYW1vdW50QmFsYW5jZU5ldyIPcHJpY2VCYWxhbmNlTmV3IgtwcmljZU5ld1gxOCIIcHJpY2VOZXciDnBheW1lbnRCYWxhbmNlIhRwYXltZW50QmFsYW5jZUJpZ0ludCIMc3VwcGx5QmlnSW50IgtjaGVjaFN1cHBseSINZGVwb3NpdEJpZ0ludCILaXNzdWVBbW91bnQiC3ByaWNlT2xkWDE4IghwcmljZU9sZCIEbG9zcyINJHQwMjQ2OTcyNDg2NCIHYmFsYW5jZSIPaXNzdWVBbW91bnRCb3RoIg9jYWxjR2V0T25lVG9rZW4iCm91dEFzc2V0SWQiBmNoZWNrcyIQb3V0SW5BbW91bnRBc3NldCINYmFsYW5jZUJpZ0ludCIMYW1CYWxhbmNlT2xkIgxwckJhbGFuY2VPbGQiCm91dEJhbGFuY2UiEG91dEJhbGFuY2VCaWdJbnQiDnJlZGVlbWVkQmlnSW50IglhbW91bnRSYXciDSR0MDI2NDQ0MjY0OTQiC3RvdGFsQW1vdW50Ig0kdDAyNjQ5ODI2NzI0IgtvdXRBbUFtb3VudCILb3V0UHJBbW91bnQiDGFtQmFsYW5jZU5ldyIMcHJCYWxhbmNlTmV3IhhhbW91bnRCb3RoSW5QYXltZW50QXNzZXQiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiAXMiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0IgttdXN0TWFuYWdlciICcGQiAnBrIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSILY2hlY2tDYWxsZXIiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIg9zaG91bGRBdXRvU3Rha2UiBGFtSWQiBHBySWQiDHNsaXBwYWdlQUludiIMc2xpcHBhZ2VQSW52IgpscFRyYW5zZmVyIgtzbHBTdGFrZUludiILbWF4U2xpcHBhZ2UiDG1pbk91dEFtb3VudCIJYXV0b1N0YWtlIiBpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIBQCINaXNQdXREaXNhYmxlZCIHcGF5bWVudCINJHQwMzE0MzQzMTU2MSITZW1pdEFtb3VudEVzdGltYXRlZCIFYm9udXMiCmVtaXRBbW91bnQiCHN0YWtlSW52IgdzZW5kRmVlIg0kdDAzMjI5MDMyNDI1Ig1vdXRBc3NldElkU3RyIg1pc0dldERpc2FibGVkIg0kdDAzMzE5NzMzMzI5Ig9hbW91bnRFc3RpbWF0ZWQiB2J1cm5JbnYiDWFzc2V0VHJhbnNmZXIiDSR0MDMzOTY0MzQxMDIiDXVuc3Rha2VBbW91bnQiCnVuc3Rha2VJbnYiDSR0MDM0ODk0MzUwMjQiCW91dEFtdEFtdCIUYnVybkxQQXNzZXRPbkZhY3RvcnkiEm5vTGVzc1RoZW5BbXRBc3NldCIUbm9MZXNzVGhlblByaWNlQXNzZXQiDWNoZWNrUGF5bWVudHMiD2NoZWNrUG9vbFN0YXR1cyIVbm9MZXNzVGhlbkFtb3VudEFzc2V0IgxjaGVja0Ftb3VudHMiC2FtdEFzc2V0U3RyIg1wcmljZUFzc2V0U3RyIg1wb29sTFBCYWxhbmNlIgpwcmljZXNMaXN0Ig9scEFtdEFzc2V0U2hhcmUiEWxwUHJpY2VBc3NldFNoYXJlIgpwb29sV2VpZ2h0IgxjdXJQcmljZUNhbGMiDGFtQmFsYW5jZVJhdyIMcHJCYWxhbmNlUmF3Ig9hbUJhbGFuY2VSYXdYMTgiD3ByQmFsYW5jZVJhd1gxOCIQcGF5bWVudExwQXNzZXRJZCIMcGF5bWVudExwQW10IgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkiCm1hdGNoZXJQdWIiB25ld0hhc2giC2FsbG93ZWRIYXNoIgtjdXJyZW50SGFzaGMAAWEACAABYgCAwtcvAAFjCQC2AgEAgMLXLwABZAkAtgIBAICAkLu61q3wDQABZQkAtgIBAAAAAWYJALYCAQAAAAFnCQC2AgEAAQABaAkAtgIBAAIAAWkCBVdBVkVTAAFqAgJfXwABawABAAFsAAIAAW0AAwABbgAEAAFvAAEAAXAAAgABcQADAAFyAAQAAXMABQABdAAGAAF1AAcAAXYACAABdwAJAAF4AAoAAXkAAQABegACAAFBAAMAAUIAAQABQwAHAAFEAAEBAUUCAUYBRwkAvAIDCQC2AgEFAUYFAWQJALYCAQUBRwEBSAIBSQFKCQCgAwEJALwCAwUBSQkAtgIBBQFKBQFkAQFLAwFMAU0BTgkAawMFAUwFAU0FAU4BAU8BAUkDCQBmAgAABQFJCQEBLQEFAUkFAUkBAVABAUkDCQC/AgIFAWUFAUkJAL4CAQUBSQUBSQEBUQACEyVzX19mYWN0b3J5Q29udHJhY3QBAVIAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBUwACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBVAACESVzJXNfX3ByaWNlX19sYXN0AQFVAgFWAVcJALkJAgkAzAgCAhglcyVzJWQlZF9fcHJpY2VfX2hpc3RvcnkJAMwIAgkApAMBBQFWCQDMCAIJAKQDAQUBVwUDbmlsBQFqAQFYAgFZAVoJAKwCAgkArAICCQCsAgICCyVzJXMlc19fUF9fBQFZAgJfXwUBWgECYWECAVkBWgkArAICCQCsAgIJAKwCAgILJXMlcyVzX19HX18FAVkCAl9fBQFaAQJhYgACDyVzX19hbW91bnRBc3NldAECYWMAAg4lc19fcHJpY2VBc3NldAACYWQCByVzX19mZWUAAmFlCQBrAwAKBQFiAJBOAAJhZgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhZAUCYWUBAmFnAAIRJXNfX2ZhY3RvcnlDb25maWcBAmFoAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhaQECYWoJAKwCAgkArAICAgglcyVzJXNfXwUCYWoCIF9fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJMcEFzc2V0AQJhawICYWwCYW0JAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFsAgJfXwUCYW0CCF9fY29uZmlnAQJhbgECYW8JAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYW8BAmFwAAIMJXNfX3NodXRkb3duAQJhcQECYXIJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQJhcgECYXMAAhclc19fYWxsb3dlZExwU2NyaXB0SGFzaAACYXQCFyVzX19mZWVDb2xsZWN0b3JBZGRyZXNzAQJhdQMCYXYCYXcCYXgJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIkb3JkZXIgdmFsaWRhdGlvbiBmYWlsZWQ6IG9yZGVyVmFsaWQ9CQClAwEFAmF2Ag0gc2VuZGVyVmFsaWQ9CQClAwEFAmF3Ag4gbWF0Y2hlclZhbGlkPQkApQMBBQJheAECYXkCAmF6AmFBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYXoFAmFBCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmF6CQDMCAICAS4JAMwIAgUCYUEJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYUICAmF6AmFBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUCYXoFAmFBCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmF6CQDMCAICAS4JAMwIAgUCYUEJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYUMBAmFECQACAQkAuQkCCQDMCAICCGxwLnJpZGU6CQDMCAIFAmFEBQNuaWwCASAAAmFFCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYXkCBQR0aGlzCQEBUQAAAmFGCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYXkCBQJhRQUCYXQBAmFHAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJhRQkBAmFwAAcBAmFIAAkA2QQBCQECYXkCBQJhRQkBAmFoAAECYUkABAJhSgkBAmF5AgUEdGhpcwkBAmFiAAQCYUsJAQJheQIFBHRoaXMJAQJhYwAEAmFtCQECYUICBQJhRQkBAmFuAQUCYUsEAmFsCQECYUICBQJhRQkBAmFuAQUCYUoJALUJAgkBAmF5AgUCYUUJAQJhawIJAKQDAQUCYWwJAKQDAQUCYW0FAWoBAmFMAQJhTQMJAAACBQJhTQUBaQUEdW5pdAkA2QQBBQJhTQECYU4BAmFNAwkAAAIFAmFNBQR1bml0BQFpCQDYBAEJAQV2YWx1ZQEFAmFNAQJhTwECYVAJAJkKBwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhUAUBbwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFQBQFwCQDZBAEJAJEDAgUCYVAFAXEJAQJhTAEJAJEDAgUCYVAFAXIJAQJhTAEJAJEDAgUCYVAFAXMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhUAUBdAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFQBQF1AAJhUQkBAmFPAQkBAmFJAAACYVIFAmFRAAJhUwgFAmFSAl8xAAJhVAgFAmFSAl8yAAJhVQgFAmFSAl8zAAJhVggFAmFSAl80AAJhVwgFAmFSAl81AAJhWAgFAmFSAl82AAJhWQgFAmFSAl83AQJhWgAJALUJAgkBAmF5AgUCYUUJAQJhZwAFAWoAAmJhCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCCQECYVoABQFCAhlpbmNvcnJlY3Qgc3Rha2luZyBhZGRyZXNzAAJiYgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmFaAAUBQwIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwECYmMKAmJkAmJlAmJmAmJnAmJoAmJpAmJqAmJrAmJsAmJtCQC5CQIJAMwIAgIUJWQlZCVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJiZAkAzAgCCQCkAwEFAmJlCQDMCAIJAKQDAQUCYmYJAMwIAgkApAMBBQJiZwkAzAgCCQCkAwEFAmJoCQDMCAIJAKQDAQUCYmkJAMwIAgkApAMBBQJiagkAzAgCCQCkAwEFAmJrCQDMCAIJAKQDAQUCYmwJAMwIAgkApAMBBQJibQUDbmlsBQFqAQJibgYCYm8CYnACYnECYmcCYmoCYmsJALkJAgkAzAgCAgwlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJibwkAzAgCCQCkAwEFAmJwCQDMCAIJAKQDAQUCYnEJAMwIAgkApAMBBQJiZwkAzAgCCQCkAwEFAmJqCQDMCAIJAKQDAQUCYmsFA25pbAUBagECYnIBAmJzAwkAAAIFAmJzAgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQJicwECYnQCAmJ1AmJ2CQC8AgMFAmJ1BQFkBQJidgECYncEAmJ4AmJ5AmJ6AmJBBAJiQgkBAUUCBQJiegUCYngEAmJDCQEBRQIFAmJBBQJieQkBAmJ0AgUCYkMFAmJCAQJiRAMCYnoCYkECYkUEAmJGCQECYUkABAJiRwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJGBQF0BAJiSAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJGBQF1BAJiSQkBAmJ3BAUCYkcFAmJIBQJiegUCYkEEAmJ2CQEBRQIFAmJ6BQJiRwQCYnUJAQFFAgUCYkEFAmJIBAJiSgkBAUUCBQJiRQUBYgQCYksJAQJidAIFAmJ2BQJiSgQCYkwJAQJidAIFAmJ1BQJiSgkAzAgCBQJiSQkAzAgCBQJiSwkAzAgCBQJiTAUDbmlsAQJiTQMCYnoCYkECYkUEAmJOCQECYkQDBQJiegUCYkEFAmJFCQDMCAIJAQFIAgkAkQMCBQJiTgAABQFiCQDMCAIJAQFIAgkAkQMCBQJiTgABBQFiCQDMCAIJAQFIAgkAkQMCBQJiTgACBQFiBQNuaWwBAmJPBAJiUAJiUQJiUgFZBAJiRgkBAmFJAAQCYlMJAJEDAgUCYkYFAXEEAmJUCQCRAwIFAmJGBQFyBAJiVQkAkQMCBQJiRgUBcwQCYngJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRgUBdAQCYnkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRgUBdQQCYlYJAJEDAgUCYkYFAXAEAmJXCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEJANkEAQUCYlMJAKwCAgkArAICAgZBc3NldCAFAmJTAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQMJAQIhPQIFAmJTBQJiUQkAAgECFUludmFsaWQgYXNzZXQgcGFzc2VkLgQCYlgJAQJicgEFAmJUBAJiWQkBAUUCBQJiWAUCYngEAmJaCQECYnIBBQJiVQQCY2EJAQFFAgUCYloFAmJ5BAJjYgkBAmJ0AgUCY2EFAmJZBAJjYwkBAUgCBQJjYgUBYgQCY2QJAQFFAgUCYlIFAWIEAmNlCQEBRQIFAmJXBQFiBAJjZgkAvAIDBQJiWQUCY2QFAmNlBAJjZwkAvAIDBQJjYQUCY2QFAmNlBAJjaAkBAUgCBQJjZgUCYngEAmNpCQEBSAIFAmNnBQJieQQCY2oDCQAAAgUCYlACAAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAVkFAmNoAwkAAAIFAmJUAgVXQVZFUwUEdW5pdAkA2QQBBQJiVAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQFZBQJjaQMJAAACBQJiVQIFV0FWRVMFBHVuaXQJANkEAQUCYlUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAgkApQgBBQFZBQJiUAkBAmJuBgUCY2gFAmNpBQJiUgUCY2MFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFUAAUCY2MJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFVAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCY2MFA25pbAkAnAoKBQJjaAUCY2kFAmJUBQJiVQUCYlgFAmJaBQJiVwUCY2IFAmJWBQJjagECY2sJAmJQAmNsAmNtAmNuAmNvAmNwAVkCY3ECY3IEAmJGCQECYUkABAJiUwkA2QQBCQCRAwIFAmJGBQFxBAJjcwkAkQMCBQJiRgUBcgQCY3QJAJEDAgUCYkYFAXMEAmN1CQCRAwIFAmJGBQF2BAJjdgkAkQMCBQJiRgUBdwQCYkcJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRgUBdAQCYkgJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRgUBdQQCYlYJAJEDAgUCYkYFAXAEAmJXCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJTCQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmJTAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCY3cJANgEAQkBC3ZhbHVlT3JFbHNlAgUCY24JANkEAQIFV0FWRVMEAmN4CQDYBAEJAQt2YWx1ZU9yRWxzZQIFAmNwCQDZBAECBVdBVkVTAwMJAQIhPQIFAmNzBQJjdwYJAQIhPQIFAmN0BQJjeAkAAgECIkludmFsaWQgYW10IG9yIHByaWNlIGFzc2V0IHBhc3NlZC4EAmJYAwUCY3EJAQJicgEFAmNzCQBlAgkBAmJyAQUCY3MFAmNtBAJiWgMFAmNxCQECYnIBBQJjdAkAZQIJAQJicgEFAmN0BQJjbwQCY3kJAQFFAgUCY20FAmJHBAJjegkBAUUCBQJjbwUCYkgEAmNBCQECYnQCBQJjegUCY3kEAmJZCQEBRQIFAmJYBQJiRwQCY2EJAQFFAgUCYloFAmJIBAJjQgMJAAACBQJiVwAABAJjYgUBZQQCY0MFAWUEAmJKCQB2BgkAuQICBQJjeQUCY3oAAAkAtgIBAAUAAQAABQRET1dOCQCXCgUJAQFIAgUCYkoFAWIJAQFIAgUCY3kFAmJHCQEBSAIFAmN6BQJiSAkBAmJ0AgkAtwICBQJjYQUCY3oJALcCAgUCYlkFAmN5BQJjQwQCY2IJAQJidAIFAmNhBQJiWQQCY0MJALwCAwkBAVABCQC4AgIFAmNiBQJjQQUBZAUCY2IEAmNECQEBRQIFAmNsBQFiAwMJAQIhPQIFAmNiBQFlCQC/AgIFAmNDBQJjRAcJAAIBCQCsAgIJAKwCAgkArAICAg9QcmljZSBzbGlwcGFnZSAJAKYDAQUCY0MCHiBleGNlZWRlZCB0aGUgcGFzc2VkIGxpbWl0IG9mIAkApgMBBQJjRAQCY2UJAQFFAgUCYlcFAWIEAmNFCQC8AgMFAmN5BQJjYgUBZAQCY0YJALwCAwUCY3oFAWQFAmNiBAJjRwMJAL8CAgUCY0UFAmN6CQCUCgIFAmNGBQJjegkAlAoCBQJjeQUCY0UEAmNICAUCY0cCXzEEAmNJCAUCY0cCXzIEAmJKCQC8AgMFAmNlBQJjSQUCY2EJAJcKBQkBAUgCBQJiSgUBYgkBAUgCBQJjSAUCYkcJAQFIAgUCY0kFAmJIBQJjYgUCY0MEAmNKCAUCY0ICXzEEAmNLCAUCY0ICXzIEAmNMCAUCY0ICXzMEAmNjCQEBSAIIBQJjQgJfNAUBYgQCY00JAQFIAggFAmNCAl81BQFiAwkAZwIAAAUCY0oJAAIBAjZJbnZhbGlkIGNhbGN1bGF0aW9ucy4gTFAgY2FsY3VsYXRlZCBpcyBsZXNzIHRoYW4gemVyby4EAmNOAwkBASEBBQJjcgAABQJjSgQCY08JAGUCBQJjbQUCY0sEAmNQCQBlAgUCY28FAmNMBAJjUQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVQABQJjYwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVUCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjYwkAzAgCCQELU3RyaW5nRW50cnkCCQEBWAIFAVkFAmJQCQECYmMKBQJjSwUCY0wFAmNOBQJjYwUCY2wFAmNNBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjTwUCY1AFA25pbAkAnwoNBQJjSgUCY04FAmNjBQJiWAUCYloFAmJXBQJiUwUCYlYFAmNRBQJjTwUCY1AFAmNuBQJjcAECY1IBAmNTBAJiRgkBAmFJAAQCY1QJAJEDAgUCYkYFAXIEAmNVCQCRAwIFAmJGBQFzBAJiVgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJGBQFwBAJiRwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJGBQF0BAJiSAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJGBQF1BAJjVgkBAmJyAQUCY1QEAmNXCQECYnIBBQJjVQQCY2IDCQAAAggFAmNTCW9yZGVyVHlwZQUDQnV5CQECYncEBQJiRwUCYkgJAGQCBQJjVggFAmNTBmFtb3VudAUCY1cJAQJidwQFAmJHBQJiSAkAZQIFAmNWCAUCY1MGYW1vdW50BQJjVwQCY2MJAQFIAgUCY2IFAWIDAwMJAQJhRwAGCQAAAgUCYlYFAW0GCQAAAgUCYlYFAW4JAAIBAhxFeGNoYW5nZSBvcGVyYXRpb25zIGRpc2FibGVkBAJjWAgIBQJjUwlhc3NldFBhaXILYW1vdW50QXNzZXQEAmNZAwkAAAIFAmNYBQR1bml0AgVXQVZFUwkA2AQBCQEFdmFsdWUBBQJjWAQCY1oICAUCY1MJYXNzZXRQYWlyCnByaWNlQXNzZXQEAmRhAwkAAAIFAmNaBQR1bml0AgVXQVZFUwkA2AQBCQEFdmFsdWUBBQJjWgMDCQECIT0CBQJjWQUCY1QGCQECIT0CBQJkYQUCY1UJAAIBAhNXcm9uZyBvcmRlciBhc3NldHMuBAJkYggFAmNTBXByaWNlBAJkYwkAawMFAWIFAmJIBQJiRwQCZGQJAQFLAwUCZGIFAWIFAmRjBAJkZQMJAAACCAUCY1MJb3JkZXJUeXBlBQNCdXkJAGcCBQJjYwUCZGQJAGcCBQJkZAUCY2MGAQJkZgECZGcDCQECIT0CCQCQAwEIBQJkZwhwYXltZW50cwABCQACAQIdZXhhY3RseSAxIHBheW1lbnQgaXMgZXhwZWN0ZWQEAmRoCQEFdmFsdWUBCQCRAwIIBQJkZwhwYXltZW50cwAABAJiUQkBBXZhbHVlAQgFAmRoB2Fzc2V0SWQEAmRpCAUCZGgGYW1vdW50BAJjQgkBAmJPBAkA2AQBCAUCZGcNdHJhbnNhY3Rpb25JZAkA2AQBBQJiUQUCZGkIBQJkZwZjYWxsZXIEAmNoCAUCY0ICXzEEAmNpCAUCY0ICXzIEAmJWCQENcGFyc2VJbnRWYWx1ZQEIBQJjQgJfOQQCY2oIBQJjQgNfMTADAwkBAmFHAAYJAAACBQJiVgUBbgkAAgEJAKwCAgIsR2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCYlYJAJcKBQUCY2gFAmNpBQJkaQUCYlEFAmNqAQJkagMCZGcCY2wCY3IDCQECIT0CCQCQAwEIBQJkZwhwYXltZW50cwACCQACAQIfZXhhY3RseSAyIHBheW1lbnRzIGFyZSBleHBlY3RlZAQCZGsJAQV2YWx1ZQEJAJEDAggFAmRnCHBheW1lbnRzAAAEAmRsCQEFdmFsdWUBCQCRAwIIBQJkZwhwYXltZW50cwABBAJkbQkBAmNrCQkA2AQBCAUCZGcNdHJhbnNhY3Rpb25JZAUCY2wIBQJkawZhbW91bnQIBQJkawdhc3NldElkCAUCZGwGYW1vdW50CAUCZGwHYXNzZXRJZAkApQgBCAUCZGcGY2FsbGVyBwUCY3IEAmJWCQENcGFyc2VJbnRWYWx1ZQEIBQJkbQJfOAMDAwkBAmFHAAYJAAACBQJiVgUBbAYJAAACBQJiVgUBbgkAAgEJAKwCAgIsUHV0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCYlYFAmRtAQJkbgECZG8EAmRwCQD8BwQFAmFFAgRlbWl0CQDMCAIFAmRvBQNuaWwFA25pbAMJAAACBQJkcAUCZHAEAmRxBAJkcgUCZHADCQABAgUCZHICB0FkZHJlc3MEAmRzBQJkcgkA/AcEBQJkcwIEZW1pdAkAzAgCBQJkbwUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZHEFAmRxBQJkbwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZHQBAmRvBAJkdQkAawMFAmRvBQJhZgUBYgkAlAoCCQBlAgUCZG8FAmR1BQJkdQECZHYEAmR3AmR4AVkBWgQCZHkJAAACBQFaBQR1bml0BAJkegkBAmJyAQkBAmFOAQUCYVYEAmRBCQECYnIBCQECYU4BBQJhVwQCZEIDCQAAAgUCZHgFAmFWBgMJAAACBQJkeAUCYVcHCQECYUMBAg1pbnZhbGlkIGFzc2V0BAJkQwMFAmR5CQCUCgIFAmR6BQJkQQMFAmRCCQCUCgIJAGUCBQJkegUCZHcFAmRBCQCUCgIFAmR6CQBlAgUCZEEFAmR3BAJkRAgFAmRDAl8xBAJkRQgFAmRDAl8yBAJkRgMFAmRCCQCUCgIFAmR3AAAJAJQKAgAABQJkdwQCZEcIBQJkRgJfMQQCZEgIBQJkRgJfMgQCZEkICQECZHQBBQJkRwJfMQQCZEoICQECZHQBBQJkSAJfMQQCZEsJAQJkdAEFAmR3BAJkTAgFAmRLAl8xBAJkdQgFAmRLAl8yBAJkTQkAZAIFAmREBQJkSQQCZE4JAGQCBQJkRQUCZEoEAmRPCQECYnQCCQEBRQIFAmROBQJhWQkBAUUCBQJkTQUCYVgEAmRQCQEBSAIFAmRPBQFiBAJkUQMFAmRCBQJkRAUCZEUEAmRSCQC2AgEFAmRRBAJkUwkAtgIBCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmFVCQCsAgIJAKwCAgIGYXNzZXQgCQDYBAEFAmFVAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCZFQDCQC/AgIFAmRTBQFmBgkBAmFDAQIiaW5pdGlhbCBkZXBvc2l0IHJlcXVpcmVzIGFsbCBjb2lucwMJAAACBQJkVAUCZFQEAmRVCQC2AgEFAmRMBAJkVgkAlgMBCQDMCAIAAAkAzAgCCQCgAwEJALoCAgkAuQICBQJkUwkAuAICCQEKc3FydEJpZ0ludAQJALcCAgUBZAkAugICCQC5AgIFAmRVBQFkBQJkUgASABIFBERPV04FAWQFAWQFA25pbAQCY1EDBQJkeQUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVAAFAmRQCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVQIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmRQCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFYAgkApQgBCQEFdmFsdWUBBQFZCQDYBAEJAQV2YWx1ZQEFAVoJAQJiYwoFAmRHBQJkSAUCZFYFAmRQAAAAAAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAAAAAAFA25pbAQCZFcJAQJidAIJAQFFAgUCZEUFAmFZCQEBRQIFAmREBQJhWAQCZFgJAQFIAgUCZFcFAWIEAmRZBAJkWgMFAmRCCQCUCgIFAmRHBQJkRAkAlAoCBQJkSAUCZEUEAmRvCAUCZFoCXzEEAmVhCAUCZFoCXzIEAmViCQCgAwEJALwCAwUCZFMJALYCAQkAaQIFAmRvAAIJALYCAQUCZWEJAGsDCQBlAgUCZFYFAmViBQFiBQJlYgkAlgoEBQJkVgUCY1EFAmR1BQJkWQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZWMFAmVkAmRMAmR4AVkBWgQCZHkJAAACBQFaBQR1bml0BAJlZQkAzAgCAwkAAAIFAmR4BQJhVQYJAQJhQwECEGludmFsaWQgbHAgYXNzZXQFA25pbAMJAAACBQJlZQUCZWUEAmVmAwkAAAIFAmVkBQJhVgYDCQAAAgUCZWQFAmFXBwkBAmFDAQINaW52YWxpZCBhc3NldAQCZWcDBQJlZgkAtgIBCQECYnIBCQECYU4BBQJhVgkAtgIBCQECYnIBCQECYU4BBQJhVwQCZWgJAQJicgEJAQJhTgEFAmFWBAJlaQkBAmJyAQkBAmFOAQUCYVcEAmVqAwUCZWYFAmVoBQJlaQQCZWsJALYCAQUCZWoEAmRTCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYVUJAKwCAgkArAICAgZhc3NldCAJANgEAQUCYVUCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJlbAkAtgIBBQJkTAQCZW0JAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC6AgIJALkCAgUCZWcJALgCAgUBZAkAdgYJALgCAgUBZAkAugICCQC5AgIFAmVsBQFkBQJkUwASBQFoAAAAEgUERE9XTgUBZAUDbmlsBAJlbgkBAmR0AQUCZW0EAmVvCAUCZW4CXzEEAmR1CAUCZW4CXzIEAmVwAwUCZWYJAJYKBAUCZW8AAAkAZQIFAmVoBQJlbQUCZWkJAJYKBAAABQJlbwUCZWgJAGUCBQJlaQUCZW0EAmVxCAUCZXACXzEEAmVyCAUCZXACXzIEAmVzCAUCZXACXzMEAmV0CAUCZXACXzQEAmRPCQECYnQCCQEBRQIFAmV0BQJhWQkBAUUCBQJlcwUCYVgEAmRQCQEBSAIFAmRPBQFiBAJjUQMFAmR5BQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAgkApQgBCQEFdmFsdWUBBQFZCQDYBAEJAQV2YWx1ZQEFAVoJAQJibgYFAmVxBQJlcgUCZEwFAmRQBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVAAFAmRQCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVQIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmRQBQNuaWwEAmRXCQECYnQCCQEBRQIFAmVpBQJhWQkBAUUCBQJlaAUCYVgEAmRYCQEBSAIFAmRXBQFiBAJkWQQCZXUJAGgCCQCgAwEJALwCAwUCZWcFAmVsBQJkUwACCQBrAwkAZQIFAmVvBQJldQUBYgUCZXUJAJYKBAUCZW8FAmNRBQJkdQUCZFkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmV2AAQCZHIJAKIIAQkBAVIAAwkAAQIFAmRyAgZTdHJpbmcEAmV3BQJkcgkA2QQBBQJldwMJAAECBQJkcgIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJleAAEAmRyCQCiCAEJAQFTAAMJAAECBQJkcgIGU3RyaW5nBAJldwUCZHIJANkEAQUCZXcDCQABAgUCZHICBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZXkBAmRnBAJlegkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAJkcgkBAmV2AAMJAAECBQJkcgIKQnl0ZVZlY3RvcgQCZUEFAmRyAwkAAAIIBQJkZw9jYWxsZXJQdWJsaWNLZXkFAmVBBgUCZXoDCQABAgUCZHICBFVuaXQDCQAAAggFAmRnBmNhbGxlcgUEdGhpcwYFAmV6CQACAQILTWF0Y2ggZXJyb3IaAmRnAQpzZXRNYW5hZ2VyAQJlQgQCZUMJAQJleQEFAmRnAwkAAAIFAmVDBQJlQwQCZUQJANkEAQUCZUIDCQAAAgUCZUQFAmVECQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFTAAUCZUIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkZwEOY29uZmlybU1hbmFnZXIABAJlRQkBAmV4AAQCZUYDCQEJaXNEZWZpbmVkAQUCZUUGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmVGBQJlRgQCZUcDCQAAAggFAmRnD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCZUUGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmVHBQJlRwkAzAgCCQELU3RyaW5nRW50cnkCCQEBUgAJANgEAQkBBXZhbHVlAQUCZUUJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVMABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZGcBA3B1dAICY2wCZUgDCQBmAgAABQJjbAkAAgECIEludmFsaWQgc2xpcHBhZ2VUb2xlcmFuY2UgcGFzc2VkBAJkbQkBAmRqAwUCZGcFAmNsBgQCY04IBQJkbQJfMgQCYlMIBQJkbQJfNwQCY2oIBQJkbQJfOQQCY08IBQJkbQNfMTAEAmNQCAUCZG0DXzExBAJlSQgFAmRtA18xMgQCZUoIBQJkbQNfMTMEAmRwCQD8BwQFAmFFAgRlbWl0CQDMCAIFAmNOBQNuaWwFA25pbAMJAAACBQJkcAUCZHAEAmRxBAJkcgUCZHADCQABAgUCZHICB0FkZHJlc3MEAmRzBQJkcgkA/AcEBQJkcwIEZW1pdAkAzAgCBQJjTgUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZHEFAmRxBAJlSwMJAGYCBQJjTwAACQD8BwQFAmJiAgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZUkFAmNPBQNuaWwFA25pbAMJAAACBQJlSwUCZUsEAmVMAwkAZgIFAmNQAAAJAPwHBAUCYmICA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJlSgUCY1AFA25pbAUDbmlsAwkAAAIFAmVMBQJlTAQCZU0DBQJlSAQCZU4JAPwHBAUCYmECBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJTBQJjTgUDbmlsAwkAAAIFAmVOBQJlTgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJkZwZjYWxsZXIFAmNOBQJiUwUDbmlsCQDOCAIFAmNqBQJlTQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkZwEKcHV0Rm9yRnJlZQECZU8DCQBmAgAABQJlTwkAAgECFEludmFsaWQgdmFsdWUgcGFzc2VkBAJkbQkBAmRqAwUCZGcFAmVPBwgFAmRtAl85AmRnAQlwdXRPbmVUa24CAmVQAmVRBAJlUgoAAmVTCQD8BwQFAmFFAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCZVMCB0Jvb2xlYW4FAmVTCQACAQkArAICCQADAQUCZVMCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmVUAwMDCQECYUcABgkAAAIFAmFUBQFsBgkAAAIFAmFUBQFuBgUCZVIEAmVlCQDMCAIDCQEBIQEFAmVUBgkBAmFDAQIhcHV0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZGcIcGF5bWVudHMAAQYJAQJhQwECHmV4YWN0bHkgMSBwYXltZW50IGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmVlBQJlZQQCZVUJAJEDAggFAmRnCHBheW1lbnRzAAAEAmR4CAUCZVUHYXNzZXRJZAQCZHcIBQJlVQZhbW91bnQEAVkIBQJkZwZjYWxsZXIEAVoIBQJkZw10cmFuc2FjdGlvbklkBAJlVgkBAmR2BAUCZHcFAmR4BQFZBQFaBAJlVwgFAmVWAl8xBAJjUQgFAmVWAl8yBAJkdQgFAmVWAl8zBAJlWAgFAmVWAl80BAJlWQMDCQBmAgUCZVAAAAkAZgIFAmVQBQJlVwcJAQJhQwEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZVAFA25pbAIABQJlVwQCZHAJAQJkbgEFAmVZAwkAAAIFAmRwBQJkcAQCZU0DBQJlUQQCZVoJAPwHBAUCYmECBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmFVBQJlWQUDbmlsAwkAAAIFAmVaBQJlWgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJkZwZjYWxsZXIFAmVZBQJhVQUDbmlsBAJmYQMJAGYCBQJkdQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFGBQJkdQUCZHgFA25pbAUDbmlsCQCUCgIJAM4IAgkAzggCBQJjUQUCZU0FAmZhBQJlWQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkZwERcHV0T25lVGtuUkVBRE9OTFkCAmR4AmR3BAJmYgkBAmR2BAUCZHcJAQJhTAEFAmR4BQR1bml0BQR1bml0BAJlVwgFAmZiAl8xBAJjUQgFAmZiAl8yBAJkdQgFAmZiAl8zBAJlWAgFAmZiAl80CQCUCgIFA25pbAkAlQoDBQJlVwUCZHUFAmVYAmRnAQlnZXRPbmVUa24CAmZjAmVQBAJlUgoAAmVTCQD8BwQFAmFFAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCZVMCB0Jvb2xlYW4FAmVTCQACAQkArAICCQADAQUCZVMCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmZkAwMJAQJhRwAGCQAAAgUCYVQFAW4GBQJlUgQCZWUJAMwIAgMJAQEhAQUCZmQGCQECYUMBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJkZwhwYXltZW50cwABBgkBAmFDAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZWUFAmVlBAJlZAkBAmFMAQUCZmMEAmVVCQCRAwIIBQJkZwhwYXltZW50cwAABAJkeAgFAmVVB2Fzc2V0SWQEAmRMCAUCZVUGYW1vdW50BAFZCAUCZGcGY2FsbGVyBAFaCAUCZGcNdHJhbnNhY3Rpb25JZAQCZmUJAQJlYwUFAmVkBQJkTAUCZHgFAVkFAVoEAmZmCAUCZmUCXzEEAmNRCAUCZmUCXzIEAmR1CAUCZmUCXzMEAmVYCAUCZmUCXzQEAmRvAwMJAGYCBQJlUAAACQBmAgUCZVAFAmZmBwkBAmFDAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJlUAUDbmlsAgAFAmZmBAJmZwkA/AcEBQJhRQIEYnVybgkAzAgCBQJkTAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkeAUCZEwFA25pbAMJAAACBQJmZwUCZmcEAmZoCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAVkFAmRvBQJlZAUDbmlsBAJmYQMJAGYCBQJkdQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFGBQJkdQUCZWQFA25pbAUDbmlsCQCUCgIJAM4IAgkAzggCBQJjUQUCZmgFAmZhBQJkbwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkZwERZ2V0T25lVGtuUkVBRE9OTFkCAmVkAmRMBAJmaQkBAmVjBQkBAmFMAQUCZWQFAmRMBQJhVQUEdW5pdAUEdW5pdAQCZmYIBQJmaQJfMQQCY1EIBQJmaQJfMgQCZHUIBQJmaQJfMwQCZVgIBQJmaQJfNAkAlAoCBQNuaWwJAJUKAwUCZmYFAmR1BQJlWAJkZwETdW5zdGFrZUFuZEdldE9uZVRrbgMCZmoCZmMCZVAEAmVSCgACZVMJAPwHBAUCYUUCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJlUwIHQm9vbGVhbgUCZVMJAAIBCQCsAgIJAAMBBQJlUwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZmQDAwkBAmFHAAYJAAACBQJhVAUBbgYFAmVSBAJlZQkAzAgCAwkBASEBBQJmZAYJAQJhQwECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmRnCHBheW1lbnRzAAAGCQECYUMBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJlZQUCZWUEAmVkCQECYUwBBQJmYwQBWQgFAmRnBmNhbGxlcgQBWggFAmRnDXRyYW5zYWN0aW9uSWQEAmZrCQD8BwQFAmJhAgd1bnN0YWtlCQDMCAIJANgEAQUCYVUJAMwIAgUCZmoFA25pbAUDbmlsAwkAAAIFAmZrBQJmawQCZmwJAQJlYwUFAmVkBQJmagUCYVUFAVkFAVoEAmZmCAUCZmwCXzEEAmNRCAUCZmwCXzIEAmR1CAUCZmwCXzMEAmVYCAUCZmwCXzQEAmRvAwMJAGYCBQJlUAAACQBmAgUCZVAFAmZmBwkBAmFDAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJlUAUDbmlsAgAFAmZmBAJmZwkA/AcEBQJhRQIEYnVybgkAzAgCBQJmagUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJhVQUCZmoFA25pbAMJAAACBQJmZwUCZmcEAmZoCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJkZwZjYWxsZXIFAmRvBQJlZAUDbmlsBAJmYQMJAGYCBQJkdQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFGBQJkdQUCZWQFA25pbAUDbmlsCQCUCgIJAM4IAgkAzggCBQJjUQUCZmgFAmZhBQJkbwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkZwEDZ2V0AAQCY0IJAQJkZgEFAmRnBAJmbQgFAmNCAl8xBAJjaQgFAmNCAl8yBAJkaQgFAmNCAl8zBAJiUQgFAmNCAl80BAJjaggFAmNCAl81BAJmbgkA/AcEBQJhRQIEYnVybgkAzAgCBQJkaQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiUQUCZGkFA25pbAMJAAACBQJmbgUCZm4FAmNqCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRnAQlnZXROb0xlc3MCAmZvAmZwBAJjQgkBAmRmAQUCZGcEAmNoCAUCY0ICXzEEAmNpCAUCY0ICXzIEAmRpCAUCY0ICXzMEAmJRCAUCY0ICXzQEAmNqCAUCY0ICXzUDCQBmAgUCZm8FAmNoCQACAQkArAICCQCsAgIJAKwCAgIcbm9MZXNzVGhlbkFtdEFzc2V0IGZhaWxlZDogIAkApAMBBQJjaAIDIDwgCQCkAwEFAmZvAwkAZgIFAmZwBQJjaQkAAgEJAKwCAgkArAICCQCsAgICHW5vTGVzc1RoZW5QcmljZUFzc2V0IGZhaWxlZDogCQCkAwEFAmNpAgMgPCAJAKQDAQUCZnAEAmZuCQD8BwQFAmFFAgRidXJuCQDMCAIFAmRpBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJRBQJkaQUDbmlsAwkAAAIFAmZuBQJmbgUCY2oJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZGcBDXVuc3Rha2VBbmRHZXQBAmRvBAJmcQMJAQIhPQIJAJADAQgFAmRnCHBheW1lbnRzAAAJAAIBAhhObyBwYXltZW50cyBhcmUgZXhwZWN0ZWQGAwkAAAIFAmZxBQJmcQQCYkYJAQJhSQAEAmJTCQDZBAEJAJEDAgUCYkYFAXEEAmZrCQD8BwQFAmJhAgd1bnN0YWtlCQDMCAIJANgEAQUCYlMJAMwIAgUCZG8FA25pbAUDbmlsAwkAAAIFAmZrBQJmawQCY0IJAQJiTwQJANgEAQgFAmRnDXRyYW5zYWN0aW9uSWQJANgEAQUCYlMFAmRvCAUCZGcGY2FsbGVyBAJiVgkBDXBhcnNlSW50VmFsdWUBCAUCY0ICXzkEAmNqCAUCY0IDXzEwBAJmcgMDCQECYUcABgkAAAIFAmJWBQFuCQACAQkArAICAixHZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJiVgYDCQAAAgUCZnIFAmZyBAJmbgkA/AcEBQJhRQIEYnVybgkAzAgCBQJkbwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiUwUCZG8FA25pbAMJAAACBQJmbgUCZm4FAmNqCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRnARN1bnN0YWtlQW5kR2V0Tm9MZXNzAwJmagJmcwJmcAQCZmQDCQECYUcABgkAAAIFAmFUBQFuBAJlZQkAzAgCAwkBASEBBQJmZAYJAAIBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJkZwhwYXltZW50cwAABgkAAgECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmVlBQJlZQQCZmsJAPwHBAUCYmECB3Vuc3Rha2UJAMwIAgkA2AQBBQJhVQkAzAgCBQJmagUDbmlsBQNuaWwDCQAAAgUCZmsFAmZrBAJjQgkBAmJPBAkA2AQBCAUCZGcNdHJhbnNhY3Rpb25JZAkA2AQBBQJhVQUCZmoIBQJkZwZjYWxsZXIEAmNoCAUCY0ICXzEEAmNpCAUCY0ICXzIEAmNqCAUCY0IDXzEwBAJmdAkAzAgCAwkAZwIFAmNoBQJmcwYJAAIBCQC5CQIJAMwIAgIsYW1vdW50IGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJmcwUDbmlsAgAJAMwIAgMJAGcCBQJjaQUCZnAGCQACAQkAuQkCCQDMCAICK3ByaWNlIGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJmcAUDbmlsAgAFA25pbAMJAAACBQJmdAUCZnQEAmZuCQD8BwQFAmFFAgRidXJuCQDMCAIFAmZqBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmFVBQJmagUDbmlsAwkAAAIFAmZuBQJmbgUCY2oJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZGcBCGFjdGl2YXRlAgJmdQJmdgMJAQIhPQIJAKUIAQgFAmRnBmNhbGxlcgkApQgBBQJhRQkAAgECEnBlcm1pc3Npb25zIGRlbmllZAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYgAFAmZ1CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYwAFAmZ2BQNuaWwCB3N1Y2Nlc3MCZGcBHGdldFBvb2xDb25maWdXcmFwcGVyUkVBRE9OTFkACQCUCgIFA25pbAkBAmFJAAJkZwEcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQECYnMJAJQKAgUDbmlsCQECYnIBBQJicwJkZwEZY2FsY1ByaWNlc1dyYXBwZXJSRUFET05MWQMCYnoCYkECYkUEAmJOCQECYkQDBQJiegUCYkEFAmJFCQCUCgIFA25pbAkAzAgCCQCmAwEJAJEDAgUCYk4AAAkAzAgCCQCmAwEJAJEDAgUCYk4AAQkAzAgCCQCmAwEJAJEDAgUCYk4AAgUDbmlsAmRnARR0b1gxOFdyYXBwZXJSRUFET05MWQIBRgFHCQCUCgIFA25pbAkApgMBCQEBRQIFAUYFAUcCZGcBFmZyb21YMThXcmFwcGVyUkVBRE9OTFkCAUkBSgkAlAoCBQNuaWwJAQFIAgkApwMBBQFJBQFKAmRnAR5jYWxjUHJpY2VCaWdJbnRXcmFwcGVyUkVBRE9OTFkCAmJ1AmJ2CQCUCgIFA25pbAkApgMBCQECYnQCCQCnAwEFAmJ1CQCnAwEFAmJ2AmRnASNlc3RpbWF0ZVB1dE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQkCYlACY2wCY20CY24CY28CY3ABWQJjcQJjcgkAlAoCBQNuaWwJAQJjawkFAmJQBQJjbAUCY20FAmNuBQJjbwUCY3AFAVkFAmNxBQJjcgJkZwEjZXN0aW1hdGVHZXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkEAmJQAmJRAmJSAVkEAmNCCQECYk8EBQJiUAUCYlEFAmJSCQERQGV4dHJOYXRpdmUoMTA2MikBBQFZCQCUCgIFA25pbAkAnAoKCAUCY0ICXzEIBQJjQgJfMggFAmNCAl8zCAUCY0ICXzQIBQJjQgJfNQgFAmNCAl82CAUCY0ICXzcJAKYDAQgFAmNCAl84CAUCY0ICXzkIBQJjQgNfMTACZGcBDXN0YXRzUkVBRE9OTFkABAJiRgkBAmFJAAQCYlMJANkEAQkAkQMCBQJiRgUBcQQCY1QJAJEDAgUCYkYFAXIEAmNVCQCRAwIFAmJGBQFzBAJjdQkAkQMCBQJiRgUBdgQCY3YJAJEDAgUCYkYFAXcEAmJHCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkYFAXQEAmJICQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkYFAXUEAmZ3CAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJTCQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmJTAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCY1YJAQJicgEFAmNUBAJjVwkBAmJyAQUCY1UEAmZ4AwkAAAIFAmZ3AAAJAMwIAgUBZQkAzAgCBQFlCQDMCAIFAWUFA25pbAkBAmJEAwUCY1YFAmNXBQJmdwQCY2MAAAQCZnkJAQFIAgkAkQMCBQJmeAABBQFiBAJmegkBAUgCCQCRAwIFAmZ4AAIFAWIEAmZBCQEFdmFsdWUBCQCaCAIFAmFFCQECYXEBCQClCAEFBHRoaXMJAJQKAgUDbmlsCQC5CQIJAMwIAgIOJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjVgkAzAgCCQCkAwEFAmNXCQDMCAIJAKQDAQUCZncJAMwIAgkApAMBBQJjYwkAzAgCCQCkAwEFAmZ5CQDMCAIJAKQDAQUCZnoJAMwIAgkApAMBBQJmQQUDbmlsBQFqAmRnASBldmFsdWF0ZVB1dEJ5QW1vdW50QXNzZXRSRUFET05MWQECY20EAmJGCQECYUkABAJiUwkA2QQBCQCRAwIFAmJGBQFxBAJjcwkAkQMCBQJiRgUBcgQCYlQJANkEAQUCY3MEAmN0CQCRAwIFAmJGBQFzBAJiVQkA2QQBBQJjdAQCYkcJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRgUBdAQCYkgJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRgUBdQQCYlYJAJEDAgUCYkYFAXAEAmZ3CAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJTCQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmJTAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCY1YJAQJicgEFAmNzBAJjVwkBAmJyAQUCY3QEAmJCCQEBRQIFAmNWBQJiRwQCYkMJAQFFAgUCY1cFAmJIBAJjYgMJAAACBQJmdwAABQFlCQECYnQCBQJiQwUCYkIEAmN5CQEBRQIFAmNtBQJiRwQCY3oJALwCAwUCY3kFAmNiBQFkBAJjbwkBAUgCBQJjegUCYkgEAmRtCQECY2sJAgAAoMIeBQJjbQUCYlQFAmNvBQJiVQIABgcEAmNKCAUCZG0CXzEEAmZCCAUCZG0CXzMEAmJYCAUCZG0CXzQEAmJaCAUCZG0CXzUEAmJXCAUCZG0CXzYJAJQKAgUDbmlsCQC5CQIJAMwIAgIQJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmNKCQDMCAIJAKQDAQkBAUgCBQJjYgUBYgkAzAgCCQCkAwEFAmJYCQDMCAIJAKQDAQUCYloJAMwIAgkApAMBBQJiVwkAzAgCBQJiVgkAzAgCCQCkAwEFAmNtCQDMCAIJAKQDAQUCY28FA25pbAUBagJkZwEfZXZhbHVhdGVQdXRCeVByaWNlQXNzZXRSRUFET05MWQECY28EAmJGCQECYUkABAJiUwkA2QQBCQCRAwIFAmJGBQFxBAJjcwkAkQMCBQJiRgUBcgQCYlQJANkEAQUCY3MEAmN0CQCRAwIFAmJGBQFzBAJiVQkA2QQBBQJjdAQCYkcJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRgUBdAQCYkgJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRgUBdQQCYlYJAJEDAgUCYkYFAXAEAmZ3CAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJTCQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmJTAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCZkMJAQJicgEFAmNzBAJmRAkBAmJyAQUCY3QEAmZFCQEBRQIFAmZDBQJiRwQCZkYJAQFFAgUCZkQFAmJIBAJjYgMJAAACBQJmdwAABQFlCQECYnQCBQJmRgUCZkUEAmN6CQEBRQIFAmNvBQJiSAQCY3kJALwCAwUCY3oFAWQFAmNiBAJjbQkBAUgCBQJjeQUCYkcEAmRtCQECY2sJAgAAoMIeBQJjbQUCYlQFAmNvBQJiVQIABgcEAmNKCAUCZG0CXzEEAmZCCAUCZG0CXzMEAmJYCAUCZG0CXzQEAmJaCAUCZG0CXzUEAmJXCAUCZG0CXzYJAJQKAgUDbmlsCQC5CQIJAMwIAgIQJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmNKCQDMCAIJAKQDAQkBAUgCBQJjYgUBYgkAzAgCCQCkAwEFAmJYCQDMCAIJAKQDAQUCYloJAMwIAgkApAMBBQJiVwkAzAgCBQJiVgkAzAgCCQCkAwEFAmNtCQDMCAIJAKQDAQUCY28FA25pbAUBagJkZwETZXZhbHVhdGVHZXRSRUFET05MWQICZkcCZkgEAmNCCQECYk8EAgAFAmZHBQJmSAUEdGhpcwQCY2gIBQJjQgJfMQQCY2kIBQJjQgJfMgQCYlgIBQJjQgJfNQQCYloIBQJjQgJfNgQCYlcIBQJjQgJfNwQCY2MIBQJjQgJfOAQCYlYJAQ1wYXJzZUludFZhbHVlAQgFAmNCAl85CQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCY2gJAMwIAgkApAMBBQJjaQkAzAgCCQCkAwEFAmJYCQDMCAIJAKQDAQUCYloJAMwIAgkApAMBBQJiVwkAzAgCCQCmAwEFAmNjCQDMCAIJAKQDAQUCYlYFA25pbAUBagECZkkBAmZKAAQCZksEAmRyCQECZXYAAwkAAQIFAmRyAgpCeXRlVmVjdG9yBAJlQQUCZHIFAmVBAwkAAQIFAmRyAgRVbml0CAUCZkkPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IEAmRyBQJmSQMJAAECBQJkcgIFT3JkZXIEAmNTBQJkcgQCZkwJAQJhSAAEAmF2CQECY1IBBQJjUwQCYXcJAPQDAwgFAmNTCWJvZHlCeXRlcwkAkQMCCAUCY1MGcHJvb2ZzAAAIBQJjUw9zZW5kZXJQdWJsaWNLZXkEAmF4CQD0AwMIBQJjUwlib2R5Qnl0ZXMJAJEDAggFAmNTBnByb29mcwABBQJmTAMDAwUCYXYFAmF3BwUCYXgHBgkBAmF1AwUCYXYFAmF3BQJheAMJAAECBQJkcgIUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAmV3BQJkcgQCZk0JAPYDAQkBBXZhbHVlAQgFAmV3BnNjcmlwdAQCZk4JANsEAQkBBXZhbHVlAQkAnQgCBQJhRQkBAmFzAAQCZk8JAPEHAQUEdGhpcwMDCQAAAgUCZk4FAmZNCQECIT0CBQJmTwUCZk0HBgkA9AMDCAUCZkkJYm9keUJ5dGVzCQCRAwIIBQJmSQZwcm9vZnMAAAUCZksJAPQDAwgFAmZJCWJvZHlCeXRlcwkAkQMCCAUCZkkGcHJvb2ZzAAAFAmZLnz/4cQ==", "chainId": 84, "height": 2309294, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FHHoG4f3MuvxoLcMFjfUY22R6Ye6UmWm41hiEUurwoEN Next: AkGinRPX1R6HChbAgFK7yrXTnShyJ6FqDepG5DCUD882 Diff:
OldNewDifferences
5959
6060 let C = 7
6161
62-func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
62+let D = 1
63+
64+func E (F,G) = fraction(toBigInt(F), d, toBigInt(G))
6365
6466
65-func G (H,I) = toInt(fraction(H, toBigInt(I), d))
67+func H (I,J) = toInt(fraction(I, toBigInt(J), d))
6668
6769
68-func J (K,L,M) = fraction(K, L, M)
70+func K (L,M,N) = fraction(L, M, N)
6971
7072
71-func N (H) = if ((0 > H))
72- then -(H)
73- else H
73+func O (I) = if ((0 > I))
74+ then -(I)
75+ else I
7476
7577
76-func O (H) = if ((e > H))
77- then -(H)
78- else H
78+func P (I) = if ((e > I))
79+ then -(I)
80+ else I
7981
8082
81-func P () = "%s__factoryContract"
83+func Q () = "%s__factoryContract"
8284
8385
84-func Q () = "%s__managerPublicKey"
86+func R () = "%s__managerPublicKey"
8587
8688
87-func R () = "%s__pendingManagerPublicKey"
89+func S () = "%s__pendingManagerPublicKey"
8890
8991
90-func S () = "%s%s__price__last"
92+func T () = "%s%s__price__last"
9193
9294
93-func T (U,V) = makeString(["%s%s%d%d__price__history", toString(U), toString(V)], j)
95+func U (V,W) = makeString(["%s%s%d%d__price__history", toString(V), toString(W)], j)
9496
9597
96-func W (X,Y) = ((("%s%s%s__P__" + X) + "__") + Y)
98+func X (Y,Z) = ((("%s%s%s__P__" + Y) + "__") + Z)
9799
98100
99-func Z (X,Y) = ((("%s%s%s__G__" + X) + "__") + Y)
101+func aa (Y,Z) = ((("%s%s%s__G__" + Y) + "__") + Z)
100102
101103
102-func aa () = "%s__amountAsset"
104+func ab () = "%s__amountAsset"
103105
104106
105-func ab () = "%s__priceAsset"
107+func ac () = "%s__priceAsset"
106108
107109
108-let ac = "%s__fee"
110+let ad = "%s__fee"
109111
110-let ad = fraction(10, b, 10000)
112+let ae = fraction(10, b, 10000)
111113
112-let ae = valueOrElse(getInteger(this, ac), ad)
114+let af = valueOrElse(getInteger(this, ad), ae)
113115
114-func af () = "%s__factoryConfig"
116+func ag () = "%s__factoryConfig"
115117
116118
117-func ag () = "%s%s__matcher__publicKey"
119+func ah () = "%s%s__matcher__publicKey"
118120
119121
120-func ah (ai) = (("%s%s%s__" + ai) + "__mappings__poolContract2LpAsset")
122+func ai (aj) = (("%s%s%s__" + aj) + "__mappings__poolContract2LpAsset")
121123
122124
123-func aj (ak,al) = (((("%d%d%s__" + ak) + "__") + al) + "__config")
125+func ak (al,am) = (((("%d%d%s__" + al) + "__") + am) + "__config")
124126
125127
126-func am (an) = ("%s%s%s__mappings__baseAsset2internalId__" + an)
128+func an (ao) = ("%s%s%s__mappings__baseAsset2internalId__" + ao)
127129
128130
129-func ao () = "%s__shutdown"
131+func ap () = "%s__shutdown"
130132
131133
132-func ap (aq) = ("%s%s__poolWeight__" + aq)
134+func aq (ar) = ("%s%s__poolWeight__" + ar)
133135
134136
135-func ar () = "%s__allowedLpScriptHash"
137+func as () = "%s__allowedLpScriptHash"
136138
137139
138-let as = "%s__feeCollectorAddress"
140+let at = "%s__feeCollectorAddress"
139141
140-func at (au,av,aw) = throw(((((("order validation failed: orderValid=" + toString(au)) + " senderValid=") + toString(av)) + " matcherValid=") + toString(aw)))
142+func au (av,aw,ax) = throw(((((("order validation failed: orderValid=" + toString(av)) + " senderValid=") + toString(aw)) + " matcherValid=") + toString(ax)))
141143
142144
143-func ax (ay,az) = valueOrErrorMessage(getString(ay, az), makeString(["mandatory ", toString(ay), ".", az, " is not defined"], ""))
145+func ay (az,aA) = valueOrErrorMessage(getString(az, aA), makeString(["mandatory ", toString(az), ".", aA, " is not defined"], ""))
144146
145147
146-func aA (ay,az) = valueOrErrorMessage(getInteger(ay, az), makeString(["mandatory ", toString(ay), ".", az, " is not defined"], ""))
148+func aB (az,aA) = valueOrErrorMessage(getInteger(az, aA), makeString(["mandatory ", toString(az), ".", aA, " is not defined"], ""))
147149
148150
149-func aB (aC) = throw(makeString(["lp.ride:", aC], " "))
151+func aC (aD) = throw(makeString(["lp.ride:", aD], " "))
150152
151153
152-let aD = addressFromStringValue(ax(this, P()))
154+let aE = addressFromStringValue(ay(this, Q()))
153155
154-let aE = addressFromStringValue(ax(aD, as))
156+let aF = addressFromStringValue(ay(aE, at))
155157
156-func aF () = valueOrElse(getBoolean(aD, ao()), false)
158+func aG () = valueOrElse(getBoolean(aE, ap()), false)
157159
158160
159-func aG () = fromBase58String(ax(aD, ag()))
161+func aH () = fromBase58String(ay(aE, ah()))
160162
161163
162-func aH () = {
163- let aI = ax(this, aa())
164- let aJ = ax(this, ab())
165- let al = aA(aD, am(aJ))
166- let ak = aA(aD, am(aI))
167- split(ax(aD, aj(toString(ak), toString(al))), j)
164+func aI () = {
165+ let aJ = ay(this, ab())
166+ let aK = ay(this, ac())
167+ let am = aB(aE, an(aK))
168+ let al = aB(aE, an(aJ))
169+ split(ay(aE, ak(toString(al), toString(am))), j)
168170 }
169171
170172
171-func aK (aL) = if ((aL == i))
173+func aL (aM) = if ((aM == i))
172174 then unit
173- else fromBase58String(aL)
175+ else fromBase58String(aM)
174176
175177
176-func aM (aL) = if ((aL == unit))
178+func aN (aM) = if ((aM == unit))
177179 then i
178- else toBase58String(value(aL))
180+ else toBase58String(value(aM))
179181
180182
181-func aN (aO) = $Tuple7(addressFromStringValue(aO[o]), parseIntValue(aO[p]), fromBase58String(aO[q]), aK(aO[r]), aK(aO[s]), parseIntValue(aO[t]), parseIntValue(aO[u]))
183+func aO (aP) = $Tuple7(addressFromStringValue(aP[o]), parseIntValue(aP[p]), fromBase58String(aP[q]), aL(aP[r]), aL(aP[s]), parseIntValue(aP[t]), parseIntValue(aP[u]))
182184
183185
184-let aP = aN(aH())
186+let aQ = aO(aI())
185187
186-let aQ = aP
188+let aR = aQ
187189
188-let aR = aQ._1
190+let aS = aR._1
189191
190-let aS = aQ._2
192+let aT = aR._2
191193
192-let aT = aQ._3
194+let aU = aR._3
193195
194-let aU = aQ._4
196+let aV = aR._4
195197
196-let aV = aQ._5
198+let aW = aR._5
197199
198-let aW = aQ._6
200+let aX = aR._6
199201
200-let aX = aQ._7
202+let aY = aR._7
201203
202-func aY () = split(ax(aD, af()), j)
204+func aZ () = split(ay(aE, ag()), j)
203205
204206
205-let aZ = valueOrErrorMessage(addressFromString(aY()[B]), "incorrect staking address")
207+let ba = valueOrErrorMessage(addressFromString(aZ()[B]), "incorrect staking address")
206208
207-let ba = valueOrErrorMessage(addressFromString(aY()[C]), "incorrect staking address")
209+let bb = valueOrErrorMessage(addressFromString(aZ()[C]), "incorrect staking address")
208210
209-func bb (bc,bd,be,bf,bg,bh,bi,bj,bk,bl) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bc), toString(bd), toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj), toString(bk), toString(bl)], j)
211+func bc (bd,be,bf,bg,bh,bi,bj,bk,bl,bm) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bd), toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj), toString(bk), toString(bl), toString(bm)], j)
210212
211213
212-func bm (bn,bo,bp,bf,bi,bj) = makeString(["%d%d%d%d%d%d", toString(bn), toString(bo), toString(bp), toString(bf), toString(bi), toString(bj)], j)
214+func bn (bo,bp,bq,bg,bj,bk) = makeString(["%d%d%d%d%d%d", toString(bo), toString(bp), toString(bq), toString(bg), toString(bj), toString(bk)], j)
213215
214216
215-func bq (br) = if ((br == "WAVES"))
217+func br (bs) = if ((bs == "WAVES"))
216218 then wavesBalance(this).available
217- else assetBalance(this, fromBase58String(br))
219+ else assetBalance(this, fromBase58String(bs))
218220
219221
220-func bs (bt,bu) = fraction(bt, d, bu)
222+func bt (bu,bv) = fraction(bu, d, bv)
221223
222224
223-func bv (bw,bx,by,bz) = {
224- let bA = D(by, bw)
225- let bB = D(bz, bx)
226- bs(bB, bA)
225+func bw (bx,by,bz,bA) = {
226+ let bB = E(bz, bx)
227+ let bC = E(bA, by)
228+ bt(bC, bB)
227229 }
228230
229231
230-func bC (by,bz,bD) = {
231- let bE = aH()
232- let bF = parseIntValue(bE[t])
233- let bG = parseIntValue(bE[u])
234- let bH = bv(bF, bG, by, bz)
235- let bu = D(by, bF)
236- let bt = D(bz, bG)
237- let bI = D(bD, b)
238- let bJ = bs(bu, bI)
239- let bK = bs(bt, bI)
240-[bH, bJ, bK]
232+func bD (bz,bA,bE) = {
233+ let bF = aI()
234+ let bG = parseIntValue(bF[t])
235+ let bH = parseIntValue(bF[u])
236+ let bI = bw(bG, bH, bz, bA)
237+ let bv = E(bz, bG)
238+ let bu = E(bA, bH)
239+ let bJ = E(bE, b)
240+ let bK = bt(bv, bJ)
241+ let bL = bt(bu, bJ)
242+[bI, bK, bL]
241243 }
242244
243245
244-func bL (by,bz,bD) = {
245- let bM = bC(by, bz, bD)
246-[G(bM[0], b), G(bM[1], b), G(bM[2], b)]
246+func bM (bz,bA,bE) = {
247+ let bN = bD(bz, bA, bE)
248+[H(bN[0], b), H(bN[1], b), H(bN[2], b)]
247249 }
248250
249251
250-func bN (bO,bP,bQ,X) = {
251- let bE = aH()
252- let bR = bE[q]
253- let bS = bE[r]
254- let bT = bE[s]
255- let bw = parseIntValue(bE[t])
256- let bx = parseIntValue(bE[u])
257- let bU = bE[p]
258- let bV = valueOrErrorMessage(assetInfo(fromBase58String(bR)), (("Asset " + bR) + " doesn't exist")).quantity
259- if ((bR != bP))
252+func bO (bP,bQ,bR,Y) = {
253+ let bF = aI()
254+ let bS = bF[q]
255+ let bT = bF[r]
256+ let bU = bF[s]
257+ let bx = parseIntValue(bF[t])
258+ let by = parseIntValue(bF[u])
259+ let bV = bF[p]
260+ let bW = valueOrErrorMessage(assetInfo(fromBase58String(bS)), (("Asset " + bS) + " doesn't exist")).quantity
261+ if ((bS != bQ))
260262 then throw("Invalid asset passed.")
261263 else {
262- let bW = bq(bS)
263- let bX = D(bW, bw)
264- let bY = bq(bT)
265- let bZ = D(bY, bx)
266- let ca = bs(bZ, bX)
267- let cb = G(ca, b)
268- let cc = D(bQ, b)
269- let cd = D(bV, b)
270- let ce = fraction(bX, cc, cd)
271- let cf = fraction(bZ, cc, cd)
272- let cg = G(ce, bw)
273- let ch = G(cf, bx)
274- let ci = if ((bO == ""))
264+ let bX = br(bT)
265+ let bY = E(bX, bx)
266+ let bZ = br(bU)
267+ let ca = E(bZ, by)
268+ let cb = bt(ca, bY)
269+ let cc = H(cb, b)
270+ let cd = E(bR, b)
271+ let ce = E(bW, b)
272+ let cf = fraction(bY, cd, ce)
273+ let cg = fraction(ca, cd, ce)
274+ let ch = H(cf, bx)
275+ let ci = H(cg, by)
276+ let cj = if ((bP == ""))
275277 then nil
276- else [ScriptTransfer(X, cg, if ((bS == "WAVES"))
278+ else [ScriptTransfer(Y, ch, if ((bT == "WAVES"))
277279 then unit
278- else fromBase58String(bS)), ScriptTransfer(X, ch, if ((bT == "WAVES"))
280+ else fromBase58String(bT)), ScriptTransfer(Y, ci, if ((bU == "WAVES"))
279281 then unit
280- else fromBase58String(bT)), StringEntry(Z(toString(X), bO), bm(cg, ch, bQ, cb, height, lastBlock.timestamp)), IntegerEntry(S(), cb), IntegerEntry(T(height, lastBlock.timestamp), cb)]
281- $Tuple10(cg, ch, bS, bT, bW, bY, bV, ca, bU, ci)
282+ else fromBase58String(bU)), StringEntry(aa(toString(Y), bP), bn(ch, ci, bR, cc, height, lastBlock.timestamp)), IntegerEntry(T(), cc), IntegerEntry(U(height, lastBlock.timestamp), cc)]
283+ $Tuple10(ch, ci, bT, bU, bX, bZ, bW, cb, bV, cj)
282284 }
283285 }
284286
285287
286-func cj (bO,ck,cl,cm,cn,co,X,cp,cq) = {
287- let bE = aH()
288- let bR = fromBase58String(bE[q])
289- let cr = bE[r]
290- let cs = bE[s]
291- let ct = bE[v]
292- let cu = bE[w]
293- let bF = parseIntValue(bE[t])
294- let bG = parseIntValue(bE[u])
295- let bU = bE[p]
296- let bV = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
297- let cv = toBase58String(valueOrElse(cm, fromBase58String("WAVES")))
298- let cw = toBase58String(valueOrElse(co, fromBase58String("WAVES")))
299- if (if ((cr != cv))
288+func ck (bP,cl,cm,cn,co,cp,Y,cq,cr) = {
289+ let bF = aI()
290+ let bS = fromBase58String(bF[q])
291+ let cs = bF[r]
292+ let ct = bF[s]
293+ let cu = bF[v]
294+ let cv = bF[w]
295+ let bG = parseIntValue(bF[t])
296+ let bH = parseIntValue(bF[u])
297+ let bV = bF[p]
298+ let bW = valueOrErrorMessage(assetInfo(bS), (("Asset " + toBase58String(bS)) + " doesn't exist")).quantity
299+ let cw = toBase58String(valueOrElse(cn, fromBase58String("WAVES")))
300+ let cx = toBase58String(valueOrElse(cp, fromBase58String("WAVES")))
301+ if (if ((cs != cw))
300302 then true
301- else (cs != cw))
303+ else (ct != cx))
302304 then throw("Invalid amt or price asset passed.")
303305 else {
304- let bW = if (cp)
305- then bq(cr)
306- else (bq(cr) - cl)
307- let bY = if (cp)
308- then bq(cs)
309- else (bq(cs) - cn)
310- let cx = D(cl, bF)
311- let cy = D(cn, bG)
312- let cz = bs(cy, cx)
313- let bX = D(bW, bF)
314- let bZ = D(bY, bG)
315- let cA = if ((bV == 0))
306+ let bX = if (cq)
307+ then br(cs)
308+ else (br(cs) - cm)
309+ let bZ = if (cq)
310+ then br(ct)
311+ else (br(ct) - co)
312+ let cy = E(cm, bG)
313+ let cz = E(co, bH)
314+ let cA = bt(cz, cy)
315+ let bY = E(bX, bG)
316+ let ca = E(bZ, bH)
317+ let cB = if ((bW == 0))
316318 then {
317- let ca = e
318- let cB = e
319- let bI = pow((cx * cy), 0, toBigInt(5), 1, 0, DOWN)
320- $Tuple5(G(bI, b), G(cx, bF), G(cy, bG), bs((bZ + cy), (bX + cx)), cB)
319+ let cb = e
320+ let cC = e
321+ let bJ = pow((cy * cz), 0, toBigInt(5), 1, 0, DOWN)
322+ $Tuple5(H(bJ, b), H(cy, bG), H(cz, bH), bt((ca + cz), (bY + cy)), cC)
321323 }
322324 else {
323- let ca = bs(bZ, bX)
324- let cB = fraction(O((ca - cz)), d, ca)
325- let cC = D(ck, b)
326- if (if ((ca != e))
327- then (cB > cC)
325+ let cb = bt(ca, bY)
326+ let cC = fraction(P((cb - cA)), d, cb)
327+ let cD = E(cl, b)
328+ if (if ((cb != e))
329+ then (cC > cD)
328330 else false)
329- then throw(((("Price slippage " + toString(cB)) + " exceeded the passed limit of ") + toString(cC)))
331+ then throw(((("Price slippage " + toString(cC)) + " exceeded the passed limit of ") + toString(cD)))
330332 else {
331- let cd = D(bV, b)
332- let cD = fraction(cx, ca, d)
333- let cE = fraction(cy, d, ca)
334- let cF = if ((cD > cy))
335- then $Tuple2(cE, cy)
336- else $Tuple2(cx, cD)
337- let cG = cF._1
338- let cH = cF._2
339- let bI = fraction(cd, cH, bZ)
340- $Tuple5(G(bI, b), G(cG, bF), G(cH, bG), ca, cB)
333+ let ce = E(bW, b)
334+ let cE = fraction(cy, cb, d)
335+ let cF = fraction(cz, d, cb)
336+ let cG = if ((cE > cz))
337+ then $Tuple2(cF, cz)
338+ else $Tuple2(cy, cE)
339+ let cH = cG._1
340+ let cI = cG._2
341+ let bJ = fraction(ce, cI, ca)
342+ $Tuple5(H(bJ, b), H(cH, bG), H(cI, bH), cb, cC)
341343 }
342344 }
343- let cI = cA._1
344- let cJ = cA._2
345- let cK = cA._3
346- let cb = G(cA._4, b)
347- let cL = G(cA._5, b)
348- if ((0 >= cI))
345+ let cJ = cB._1
346+ let cK = cB._2
347+ let cL = cB._3
348+ let cc = H(cB._4, b)
349+ let cM = H(cB._5, b)
350+ if ((0 >= cJ))
349351 then throw("Invalid calculations. LP calculated is less than zero.")
350352 else {
351- let cM = if (!(cq))
353+ let cN = if (!(cr))
352354 then 0
353- else cI
354- let cN = (cl - cJ)
355- let cO = (cn - cK)
356- let cP = [IntegerEntry(S(), cb), IntegerEntry(T(height, lastBlock.timestamp), cb), StringEntry(W(X, bO), bb(cJ, cK, cM, cb, ck, cL, height, lastBlock.timestamp, cN, cO))]
357- $Tuple13(cI, cM, cb, bW, bY, bV, bR, bU, cP, cN, cO, cm, co)
355+ else cJ
356+ let cO = (cm - cK)
357+ let cP = (co - cL)
358+ let cQ = [IntegerEntry(T(), cc), IntegerEntry(U(height, lastBlock.timestamp), cc), StringEntry(X(Y, bP), bc(cK, cL, cN, cc, cl, cM, height, lastBlock.timestamp, cO, cP))]
359+ $Tuple13(cJ, cN, cc, bX, bZ, bW, bS, bV, cQ, cO, cP, cn, cp)
358360 }
359361 }
360362 }
361363
362364
363-func cQ (cR) = {
364- let bE = aH()
365- let cS = bE[r]
366- let cT = bE[s]
367- let bU = parseIntValue(bE[p])
368- let bF = parseIntValue(bE[t])
369- let bG = parseIntValue(bE[u])
370- let cU = bq(cS)
371- let cV = bq(cT)
372- let ca = if ((cR.orderType == Buy))
373- then bv(bF, bG, (cU + cR.amount), cV)
374- else bv(bF, bG, (cU - cR.amount), cV)
375- let cb = G(ca, b)
376- if (if (if (aF())
365+func cR (cS) = {
366+ let bF = aI()
367+ let cT = bF[r]
368+ let cU = bF[s]
369+ let bV = parseIntValue(bF[p])
370+ let bG = parseIntValue(bF[t])
371+ let bH = parseIntValue(bF[u])
372+ let cV = br(cT)
373+ let cW = br(cU)
374+ let cb = if ((cS.orderType == Buy))
375+ then bw(bG, bH, (cV + cS.amount), cW)
376+ else bw(bG, bH, (cV - cS.amount), cW)
377+ let cc = H(cb, b)
378+ if (if (if (aG())
377379 then true
378- else (bU == m))
380+ else (bV == m))
379381 then true
380- else (bU == n))
382+ else (bV == n))
381383 then throw("Exchange operations disabled")
382384 else {
383- let cW = cR.assetPair.amountAsset
384- let cX = if ((cW == unit))
385+ let cX = cS.assetPair.amountAsset
386+ let cY = if ((cX == unit))
385387 then "WAVES"
386- else toBase58String(value(cW))
387- let cY = cR.assetPair.priceAsset
388- let cZ = if ((cY == unit))
388+ else toBase58String(value(cX))
389+ let cZ = cS.assetPair.priceAsset
390+ let da = if ((cZ == unit))
389391 then "WAVES"
390- else toBase58String(value(cY))
391- if (if ((cX != cS))
392+ else toBase58String(value(cZ))
393+ if (if ((cY != cT))
392394 then true
393- else (cZ != cT))
395+ else (da != cU))
394396 then throw("Wrong order assets.")
395397 else {
396- let da = cR.price
397- let db = fraction(b, bG, bF)
398- let dc = J(da, b, db)
399- let dd = if ((cR.orderType == Buy))
400- then (cb >= dc)
401- else (dc >= cb)
398+ let db = cS.price
399+ let dc = fraction(b, bH, bG)
400+ let dd = K(db, b, dc)
401+ let de = if ((cS.orderType == Buy))
402+ then (cc >= dd)
403+ else (dd >= cc)
402404 true
403405 }
404406 }
405407 }
406408
407409
408-func de (df) = if ((size(df.payments) != 1))
410+func df (dg) = if ((size(dg.payments) != 1))
409411 then throw("exactly 1 payment is expected")
410412 else {
411- let dg = value(df.payments[0])
412- let bP = value(dg.assetId)
413- let dh = dg.amount
414- let cA = bN(toBase58String(df.transactionId), toBase58String(bP), dh, df.caller)
415- let cg = cA._1
416- let ch = cA._2
417- let bU = parseIntValue(cA._9)
418- let ci = cA._10
419- if (if (aF())
413+ let dh = value(dg.payments[0])
414+ let bQ = value(dh.assetId)
415+ let di = dh.amount
416+ let cB = bO(toBase58String(dg.transactionId), toBase58String(bQ), di, dg.caller)
417+ let ch = cB._1
418+ let ci = cB._2
419+ let bV = parseIntValue(cB._9)
420+ let cj = cB._10
421+ if (if (aG())
420422 then true
421- else (bU == n))
422- then throw(("Get operation is blocked by admin. Status = " + toString(bU)))
423- else $Tuple5(cg, ch, dh, bP, ci)
423+ else (bV == n))
424+ then throw(("Get operation is blocked by admin. Status = " + toString(bV)))
425+ else $Tuple5(ch, ci, di, bQ, cj)
424426 }
425427
426428
427-func di (df,ck,cq) = if ((size(df.payments) != 2))
429+func dj (dg,cl,cr) = if ((size(dg.payments) != 2))
428430 then throw("exactly 2 payments are expected")
429431 else {
430- let dj = value(df.payments[0])
431- let dk = value(df.payments[1])
432- let dl = cj(toBase58String(df.transactionId), ck, dj.amount, dj.assetId, dk.amount, dk.assetId, toString(df.caller), false, cq)
433- let bU = parseIntValue(dl._8)
434- if (if (if (aF())
432+ let dk = value(dg.payments[0])
433+ let dl = value(dg.payments[1])
434+ let dm = ck(toBase58String(dg.transactionId), cl, dk.amount, dk.assetId, dl.amount, dl.assetId, toString(dg.caller), false, cr)
435+ let bV = parseIntValue(dm._8)
436+ if (if (if (aG())
435437 then true
436- else (bU == l))
438+ else (bV == l))
437439 then true
438- else (bU == n))
439- then throw(("Put operation is blocked by admin. Status = " + toString(bU)))
440- else dl
440+ else (bV == n))
441+ then throw(("Put operation is blocked by admin. Status = " + toString(bV)))
442+ else dm
441443 }
442444
443445
444-func dm (dn) = {
445- let do = invoke(aD, "emit", [dn], nil)
446- if ((do == do))
446+func dn (do) = {
447+ let dp = invoke(aE, "emit", [do], nil)
448+ if ((dp == dp))
447449 then {
448- let dp = {
449- let dq = do
450- if ($isInstanceOf(dq, "Address"))
450+ let dq = {
451+ let dr = dp
452+ if ($isInstanceOf(dr, "Address"))
451453 then {
452- let dr = dq
453- invoke(dr, "emit", [dn], nil)
454+ let ds = dr
455+ invoke(ds, "emit", [do], nil)
454456 }
455457 else unit
456458 }
457- if ((dp == dp))
458- then dn
459+ if ((dq == dq))
460+ then do
459461 else throw("Strict value is not equal to itself.")
460462 }
461463 else throw("Strict value is not equal to itself.")
462464 }
463465
464466
465-func ds (dn) = {
466- let dt = fraction(dn, ae, b)
467- $Tuple2((dn - dt), dt)
467+func dt (do) = {
468+ let du = fraction(do, af, b)
469+ $Tuple2((do - du), du)
468470 }
469471
470472
471-func du (dv,dw,X,Y) = {
472- let dx = (Y == unit)
473- let dy = bq(aM(aU))
474- let dz = bq(aM(aV))
475- let dA = if ((dw == aU))
473+func dv (dw,dx,Y,Z) = {
474+ let dy = (Z == unit)
475+ let dz = br(aN(aV))
476+ let dA = br(aN(aW))
477+ let dB = if ((dx == aV))
476478 then true
477- else if ((dw == aV))
479+ else if ((dx == aW))
478480 then false
479- else aB("invalid asset")
480- let dB = if (dx)
481- then $Tuple2(dy, dz)
482- else if (dA)
483- then $Tuple2((dy - dv), dz)
484- else $Tuple2(dy, (dz - dv))
485- let dC = dB._1
486- let dD = dB._2
487- let dE = if (dA)
488- then $Tuple2(dv, 0)
489- else $Tuple2(0, dv)
490- let dF = dE._1
491- let dG = dE._2
492- let dH = ds(dF)._1
493- let dI = ds(dG)._1
494- let dJ = ds(dv)
495- let dK = dJ._1
496- let dt = dJ._2
497- let dL = (dC + dH)
481+ else aC("invalid asset")
482+ let dC = if (dy)
483+ then $Tuple2(dz, dA)
484+ else if (dB)
485+ then $Tuple2((dz - dw), dA)
486+ else $Tuple2(dz, (dA - dw))
487+ let dD = dC._1
488+ let dE = dC._2
489+ let dF = if (dB)
490+ then $Tuple2(dw, 0)
491+ else $Tuple2(0, dw)
492+ let dG = dF._1
493+ let dH = dF._2
494+ let dI = dt(dG)._1
495+ let dJ = dt(dH)._1
496+ let dK = dt(dw)
497+ let dL = dK._1
498+ let du = dK._2
498499 let dM = (dD + dI)
499- let dN = bs(D(dM, aX), D(dL, aW))
500- let dO = G(dN, b)
501- let dP = if (dA)
502- then dC
503- else dD
504- let dQ = toBigInt(dP)
505- let dR = toBigInt(valueOrErrorMessage(assetInfo(aT), (("asset " + toBase58String(aT)) + " doesn't exist")).quantity)
506- let dS = if ((dR > f))
500+ let dN = (dE + dJ)
501+ let dO = bt(E(dN, aY), E(dM, aX))
502+ let dP = H(dO, b)
503+ let dQ = if (dB)
504+ then dD
505+ else dE
506+ let dR = toBigInt(dQ)
507+ let dS = toBigInt(valueOrErrorMessage(assetInfo(aU), (("asset " + toBase58String(aU)) + " doesn't exist")).quantity)
508+ let dT = if ((dS > f))
507509 then true
508- else aB("initial deposit requires all coins")
509- if ((dS == dS))
510+ else aC("initial deposit requires all coins")
511+ if ((dT == dT))
510512 then {
511- let dT = toBigInt(dK)
512- let dU = max([0, toInt(((dR * (sqrtBigInt((d + ((dT * d) / dQ)), 18, 18, DOWN) - d)) / d))])
513- let cP = if (dx)
513+ let dU = toBigInt(dL)
514+ let dV = max([0, toInt(((dS * (sqrtBigInt((d + ((dU * d) / dR)), 18, 18, DOWN) - d)) / d))])
515+ let cQ = if (dy)
514516 then nil
515- else [IntegerEntry(S(), dO), IntegerEntry(T(height, lastBlock.timestamp), dO), StringEntry(W(toString(value(X)), toBase58String(value(Y))), bb(dF, dG, dU, dO, 0, 0, height, lastBlock.timestamp, 0, 0))]
516- let dV = bs(D(dD, aX), D(dC, aW))
517- let dW = G(dV, b)
518- let dX = {
519- let dY = if (dA)
520- then $Tuple2(dF, dC)
521- else $Tuple2(dG, dD)
522- let dn = dY._1
523- let dZ = dY._2
524- let ea = toInt(fraction(dR, toBigInt((dn / 2)), toBigInt(dZ)))
525- fraction((dU - ea), b, ea)
517+ else [IntegerEntry(T(), dP), IntegerEntry(U(height, lastBlock.timestamp), dP), StringEntry(X(toString(value(Y)), toBase58String(value(Z))), bc(dG, dH, dV, dP, 0, 0, height, lastBlock.timestamp, 0, 0))]
518+ let dW = bt(E(dE, aY), E(dD, aX))
519+ let dX = H(dW, b)
520+ let dY = {
521+ let dZ = if (dB)
522+ then $Tuple2(dG, dD)
523+ else $Tuple2(dH, dE)
524+ let do = dZ._1
525+ let ea = dZ._2
526+ let eb = toInt(fraction(dS, toBigInt((do / 2)), toBigInt(ea)))
527+ fraction((dV - eb), b, eb)
526528 }
527- $Tuple4(dU, cP, dt, dX)
529+ $Tuple4(dV, cQ, du, dY)
528530 }
529531 else throw("Strict value is not equal to itself.")
530532 }
531533
532534
533-func eb (ec,dK,dw,X,Y) = {
534- let dx = (Y == unit)
535- let ed = [if ((dw == aT))
535+func ec (ed,dL,dx,Y,Z) = {
536+ let dy = (Z == unit)
537+ let ee = [if ((dx == aU))
536538 then true
537- else aB("invalid lp asset")]
538- if ((ed == ed))
539+ else aC("invalid lp asset")]
540+ if ((ee == ee))
539541 then {
540- let ee = if ((ec == aU))
542+ let ef = if ((ed == aV))
541543 then true
542- else if ((ec == aV))
544+ else if ((ed == aW))
543545 then false
544- else aB("invalid asset")
545- let ef = if (ee)
546- then toBigInt(bq(aM(aU)))
547- else toBigInt(bq(aM(aV)))
548- let eg = bq(aM(aU))
549- let eh = bq(aM(aV))
550- let ei = if (ee)
551- then eg
552- else eh
553- let ej = toBigInt(ei)
554- let dR = toBigInt(valueOrErrorMessage(assetInfo(aT), (("asset " + toBase58String(aT)) + " doesn't exist")).quantity)
555- let ek = toBigInt(dK)
556- let el = max([0, toInt(((ef * (d - pow((d - ((ek * d) / dR)), 18, h, 0, 18, DOWN))) / d))])
557- let em = ds(el)
558- let en = em._1
559- let dt = em._2
560- let eo = if (ee)
561- then $Tuple4(en, 0, (eg - el), eh)
562- else $Tuple4(0, en, eg, (eh - el))
563- let ep = eo._1
564- let eq = eo._2
565- let er = eo._3
566- let es = eo._4
567- let dN = bs(D(es, aX), D(er, aW))
568- let dO = G(dN, b)
569- let cP = if (dx)
546+ else aC("invalid asset")
547+ let eg = if (ef)
548+ then toBigInt(br(aN(aV)))
549+ else toBigInt(br(aN(aW)))
550+ let eh = br(aN(aV))
551+ let ei = br(aN(aW))
552+ let ej = if (ef)
553+ then eh
554+ else ei
555+ let ek = toBigInt(ej)
556+ let dS = toBigInt(valueOrErrorMessage(assetInfo(aU), (("asset " + toBase58String(aU)) + " doesn't exist")).quantity)
557+ let el = toBigInt(dL)
558+ let em = max([0, toInt(((eg * (d - pow((d - ((el * d) / dS)), 18, h, 0, 18, DOWN))) / d))])
559+ let en = dt(em)
560+ let eo = en._1
561+ let du = en._2
562+ let ep = if (ef)
563+ then $Tuple4(eo, 0, (eh - em), ei)
564+ else $Tuple4(0, eo, eh, (ei - em))
565+ let eq = ep._1
566+ let er = ep._2
567+ let es = ep._3
568+ let et = ep._4
569+ let dO = bt(E(et, aY), E(es, aX))
570+ let dP = H(dO, b)
571+ let cQ = if (dy)
570572 then nil
571- else [StringEntry(Z(toString(value(X)), toBase58String(value(Y))), bm(ep, eq, dK, dO, height, lastBlock.timestamp)), IntegerEntry(S(), dO), IntegerEntry(T(height, lastBlock.timestamp), dO)]
572- let dV = bs(D(eh, aX), D(eg, aW))
573- let dW = G(dV, b)
574- let dX = {
575- let et = (toInt(fraction(ef, ek, dR)) * 2)
576- fraction((en - et), b, et)
573+ else [StringEntry(aa(toString(value(Y)), toBase58String(value(Z))), bn(eq, er, dL, dP, height, lastBlock.timestamp)), IntegerEntry(T(), dP), IntegerEntry(U(height, lastBlock.timestamp), dP)]
574+ let dW = bt(E(ei, aY), E(eh, aX))
575+ let dX = H(dW, b)
576+ let dY = {
577+ let eu = (toInt(fraction(eg, el, dS)) * 2)
578+ fraction((eo - eu), b, eu)
577579 }
578- $Tuple4(en, cP, dt, dX)
580+ $Tuple4(eo, cQ, du, dY)
579581 }
580582 else throw("Strict value is not equal to itself.")
581583 }
582584
583585
584-func eu () = {
585- let dq = getString(Q())
586- if ($isInstanceOf(dq, "String"))
586+func ev () = {
587+ let dr = getString(R())
588+ if ($isInstanceOf(dr, "String"))
587589 then {
588- let ev = dq
589- fromBase58String(ev)
590+ let ew = dr
591+ fromBase58String(ew)
590592 }
591- else if ($isInstanceOf(dq, "Unit"))
593+ else if ($isInstanceOf(dr, "Unit"))
592594 then unit
593595 else throw("Match error")
594596 }
595597
596598
597-func ew () = {
598- let dq = getString(R())
599- if ($isInstanceOf(dq, "String"))
599+func ex () = {
600+ let dr = getString(S())
601+ if ($isInstanceOf(dr, "String"))
600602 then {
601- let ev = dq
602- fromBase58String(ev)
603+ let ew = dr
604+ fromBase58String(ew)
603605 }
604- else if ($isInstanceOf(dq, "Unit"))
606+ else if ($isInstanceOf(dr, "Unit"))
605607 then unit
606608 else throw("Match error")
607609 }
608610
609611
610-func ex (df) = {
611- let ey = throw("Permission denied")
612- let dq = eu()
613- if ($isInstanceOf(dq, "ByteVector"))
612+func ey (dg) = {
613+ let ez = throw("Permission denied")
614+ let dr = ev()
615+ if ($isInstanceOf(dr, "ByteVector"))
614616 then {
615- let ez = dq
616- if ((df.callerPublicKey == ez))
617+ let eA = dr
618+ if ((dg.callerPublicKey == eA))
617619 then true
618- else ey
620+ else ez
619621 }
620- else if ($isInstanceOf(dq, "Unit"))
621- then if ((df.caller == this))
622+ else if ($isInstanceOf(dr, "Unit"))
623+ then if ((dg.caller == this))
622624 then true
623- else ey
625+ else ez
624626 else throw("Match error")
625627 }
626628
627629
628-@Callable(df)
629-func setManager (eA) = {
630- let eB = ex(df)
631- if ((eB == eB))
630+@Callable(dg)
631+func setManager (eB) = {
632+ let eC = ey(dg)
633+ if ((eC == eC))
632634 then {
633- let eC = fromBase58String(eA)
634- if ((eC == eC))
635- then [StringEntry(R(), eA)]
635+ let eD = fromBase58String(eB)
636+ if ((eD == eD))
637+ then [StringEntry(S(), eB)]
636638 else throw("Strict value is not equal to itself.")
637639 }
638640 else throw("Strict value is not equal to itself.")
640642
641643
642644
643-@Callable(df)
645+@Callable(dg)
644646 func confirmManager () = {
645- let eD = ew()
646- let eE = if (isDefined(eD))
647+ let eE = ex()
648+ let eF = if (isDefined(eE))
647649 then true
648650 else throw("No pending manager")
649- if ((eE == eE))
651+ if ((eF == eF))
650652 then {
651- let eF = if ((df.callerPublicKey == value(eD)))
653+ let eG = if ((dg.callerPublicKey == value(eE)))
652654 then true
653655 else throw("You are not pending manager")
654- if ((eF == eF))
655- then [StringEntry(Q(), toBase58String(value(eD))), DeleteEntry(R())]
656+ if ((eG == eG))
657+ then [StringEntry(R(), toBase58String(value(eE))), DeleteEntry(S())]
656658 else throw("Strict value is not equal to itself.")
657659 }
658660 else throw("Strict value is not equal to itself.")
660662
661663
662664
663-@Callable(df)
664-func put (ck,eG) = if ((0 > ck))
665+@Callable(dg)
666+func put (cl,eH) = if ((0 > cl))
665667 then throw("Invalid slippageTolerance passed")
666668 else {
667- let dl = di(df, ck, true)
668- let cM = dl._2
669- let bR = dl._7
670- let ci = dl._9
671- let cN = dl._10
672- let cO = dl._11
673- let eH = dl._12
674- let eI = dl._13
675- let do = invoke(aD, "emit", [cM], nil)
676- if ((do == do))
669+ let dm = dj(dg, cl, true)
670+ let cN = dm._2
671+ let bS = dm._7
672+ let cj = dm._9
673+ let cO = dm._10
674+ let cP = dm._11
675+ let eI = dm._12
676+ let eJ = dm._13
677+ let dp = invoke(aE, "emit", [cN], nil)
678+ if ((dp == dp))
677679 then {
678- let dp = {
679- let dq = do
680- if ($isInstanceOf(dq, "Address"))
680+ let dq = {
681+ let dr = dp
682+ if ($isInstanceOf(dr, "Address"))
681683 then {
682- let dr = dq
683- invoke(dr, "emit", [cM], nil)
684+ let ds = dr
685+ invoke(ds, "emit", [cN], nil)
684686 }
685687 else unit
686688 }
687- if ((dp == dp))
689+ if ((dq == dq))
688690 then {
689- let eJ = if ((cN > 0))
690- then invoke(ba, "put", nil, [AttachedPayment(eH, cN)])
691+ let eK = if ((cO > 0))
692+ then invoke(bb, "put", nil, [AttachedPayment(eI, cO)])
691693 else nil
692- if ((eJ == eJ))
694+ if ((eK == eK))
693695 then {
694- let eK = if ((cO > 0))
695- then invoke(ba, "put", nil, [AttachedPayment(eI, cO)])
696+ let eL = if ((cP > 0))
697+ then invoke(bb, "put", nil, [AttachedPayment(eJ, cP)])
696698 else nil
697- if ((eK == eK))
699+ if ((eL == eL))
698700 then {
699- let eL = if (eG)
701+ let eM = if (eH)
700702 then {
701- let eM = invoke(aZ, "stake", nil, [AttachedPayment(bR, cM)])
702- if ((eM == eM))
703+ let eN = invoke(ba, "stake", nil, [AttachedPayment(bS, cN)])
704+ if ((eN == eN))
703705 then nil
704706 else throw("Strict value is not equal to itself.")
705707 }
706- else [ScriptTransfer(df.caller, cM, bR)]
707- (ci ++ eL)
708+ else [ScriptTransfer(dg.caller, cN, bS)]
709+ (cj ++ eM)
708710 }
709711 else throw("Strict value is not equal to itself.")
710712 }
717719
718720
719721
720-@Callable(df)
721-func putForFree (eN) = if ((0 > eN))
722+@Callable(dg)
723+func putForFree (eO) = if ((0 > eO))
722724 then throw("Invalid value passed")
723725 else {
724- let dl = di(df, eN, false)
725- dl._9
726+ let dm = dj(dg, eO, false)
727+ dm._9
726728 }
727729
728730
729731
730-@Callable(df)
731-func putOneTkn (eO,eP) = {
732- let eQ = {
733- let eR = invoke(aD, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
734- if ($isInstanceOf(eR, "Boolean"))
735- then eR
736- else throw(($getType(eR) + " couldn't be cast to Boolean"))
732+@Callable(dg)
733+func putOneTkn (eP,eQ) = {
734+ let eR = {
735+ let eS = invoke(aE, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
736+ if ($isInstanceOf(eS, "Boolean"))
737+ then eS
738+ else throw(($getType(eS) + " couldn't be cast to Boolean"))
737739 }
738- let eS = if (if (if (aF())
740+ let eT = if (if (if (aG())
739741 then true
740- else (aS == l))
742+ else (aT == l))
741743 then true
742- else (aS == n))
744+ else (aT == n))
743745 then true
744- else eQ
745- let ed = [if (!(eS))
746+ else eR
747+ let ee = [if (!(eT))
746748 then true
747- else aB("put operation is blocked by admin"), if ((size(df.payments) == 1))
749+ else aC("put operation is blocked by admin"), if ((size(dg.payments) == 1))
748750 then true
749- else aB("exactly 1 payment are expected")]
750- if ((ed == ed))
751+ else aC("exactly 1 payment are expected")]
752+ if ((ee == ee))
751753 then {
752- let eT = df.payments[0]
753- let dw = eT.assetId
754- let dv = eT.amount
755- let X = df.caller
756- let Y = df.transactionId
757- let eU = du(dv, dw, X, Y)
758- let eV = eU._1
759- let cP = eU._2
760- let dt = eU._3
761- let eW = eU._4
762- let eX = if (if ((eO > 0))
763- then (eO > eV)
754+ let eU = dg.payments[0]
755+ let dx = eU.assetId
756+ let dw = eU.amount
757+ let Y = dg.caller
758+ let Z = dg.transactionId
759+ let eV = dv(dw, dx, Y, Z)
760+ let eW = eV._1
761+ let cQ = eV._2
762+ let du = eV._3
763+ let eX = eV._4
764+ let eY = if (if ((eP > 0))
765+ then (eP > eW)
764766 else false)
765- then aB(makeString(["amount to receive is less than ", toString(eO)], ""))
766- else eV
767- let do = dm(eX)
768- if ((do == do))
767+ then aC(makeString(["amount to receive is less than ", toString(eP)], ""))
768+ else eW
769+ let dp = dn(eY)
770+ if ((dp == dp))
769771 then {
770- let eL = if (eP)
772+ let eM = if (eQ)
771773 then {
772- let eY = invoke(aZ, "stake", nil, [AttachedPayment(aT, eX)])
773- if ((eY == eY))
774+ let eZ = invoke(ba, "stake", nil, [AttachedPayment(aU, eY)])
775+ if ((eZ == eZ))
774776 then nil
775777 else throw("Strict value is not equal to itself.")
776778 }
777- else [ScriptTransfer(df.caller, eX, aT)]
778- let eZ = if ((dt > 0))
779- then [ScriptTransfer(aE, dt, dw)]
779+ else [ScriptTransfer(dg.caller, eY, aU)]
780+ let fa = if ((du > 0))
781+ then [ScriptTransfer(aF, du, dx)]
780782 else nil
781- $Tuple2(((cP ++ eL) ++ eZ), eX)
783+ $Tuple2(((cQ ++ eM) ++ fa), eY)
782784 }
783785 else throw("Strict value is not equal to itself.")
784786 }
787789
788790
789791
790-@Callable(df)
791-func putOneTknREADONLY (dw,dv) = {
792- let fa = du(dv, aK(dw), unit, unit)
793- let eV = fa._1
794- let cP = fa._2
795- let dt = fa._3
796- let eW = fa._4
797- $Tuple2(nil, $Tuple3(eV, dt, eW))
792+@Callable(dg)
793+func putOneTknREADONLY (dx,dw) = {
794+ let fb = dv(dw, aL(dx), unit, unit)
795+ let eW = fb._1
796+ let cQ = fb._2
797+ let du = fb._3
798+ let eX = fb._4
799+ $Tuple2(nil, $Tuple3(eW, du, eX))
798800 }
799801
800802
801803
802-@Callable(df)
803-func getOneTkn (fb,eO) = {
804- let eQ = {
805- let eR = invoke(aD, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
806- if ($isInstanceOf(eR, "Boolean"))
807- then eR
808- else throw(($getType(eR) + " couldn't be cast to Boolean"))
804+@Callable(dg)
805+func getOneTkn (fc,eP) = {
806+ let eR = {
807+ let eS = invoke(aE, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
808+ if ($isInstanceOf(eS, "Boolean"))
809+ then eS
810+ else throw(($getType(eS) + " couldn't be cast to Boolean"))
809811 }
810- let fc = if (if (aF())
812+ let fd = if (if (aG())
811813 then true
812- else (aS == n))
814+ else (aT == n))
813815 then true
814- else eQ
815- let ed = [if (!(fc))
816+ else eR
817+ let ee = [if (!(fd))
816818 then true
817- else aB("get operation is blocked by admin"), if ((size(df.payments) == 1))
819+ else aC("get operation is blocked by admin"), if ((size(dg.payments) == 1))
818820 then true
819- else aB("exactly 1 payment are expected")]
820- if ((ed == ed))
821+ else aC("exactly 1 payment are expected")]
822+ if ((ee == ee))
821823 then {
822- let ec = aK(fb)
823- let eT = df.payments[0]
824- let dw = eT.assetId
825- let dK = eT.amount
826- let X = df.caller
827- let Y = df.transactionId
828- let fd = eb(ec, dK, dw, X, Y)
829- let fe = fd._1
830- let cP = fd._2
831- let dt = fd._3
832- let eW = fd._4
833- let dn = if (if ((eO > 0))
834- then (eO > fe)
824+ let ed = aL(fc)
825+ let eU = dg.payments[0]
826+ let dx = eU.assetId
827+ let dL = eU.amount
828+ let Y = dg.caller
829+ let Z = dg.transactionId
830+ let fe = ec(ed, dL, dx, Y, Z)
831+ let ff = fe._1
832+ let cQ = fe._2
833+ let du = fe._3
834+ let eX = fe._4
835+ let do = if (if ((eP > 0))
836+ then (eP > ff)
835837 else false)
836- then aB(makeString(["amount to receive is less than ", toString(eO)], ""))
837- else fe
838- let ff = invoke(aD, "burn", [dK], [AttachedPayment(dw, dK)])
839- if ((ff == ff))
838+ then aC(makeString(["amount to receive is less than ", toString(eP)], ""))
839+ else ff
840+ let fg = invoke(aE, "burn", [dL], [AttachedPayment(dx, dL)])
841+ if ((fg == fg))
840842 then {
841- let fg = [ScriptTransfer(X, dn, ec)]
842- let eZ = if ((dt > 0))
843- then [ScriptTransfer(aE, dt, ec)]
843+ let fh = [ScriptTransfer(Y, do, ed)]
844+ let fa = if ((du > 0))
845+ then [ScriptTransfer(aF, du, ed)]
844846 else nil
845- $Tuple2(((cP ++ fg) ++ eZ), dn)
847+ $Tuple2(((cQ ++ fh) ++ fa), do)
846848 }
847849 else throw("Strict value is not equal to itself.")
848850 }
851853
852854
853855
854-@Callable(df)
855-func getOneTknREADONLY (ec,dK) = {
856- let fh = eb(aK(ec), dK, aT, unit, unit)
857- let fe = fh._1
858- let cP = fh._2
859- let dt = fh._3
860- let eW = fh._4
861- $Tuple2(nil, $Tuple3(fe, dt, eW))
856+@Callable(dg)
857+func getOneTknREADONLY (ed,dL) = {
858+ let fi = ec(aL(ed), dL, aU, unit, unit)
859+ let ff = fi._1
860+ let cQ = fi._2
861+ let du = fi._3
862+ let eX = fi._4
863+ $Tuple2(nil, $Tuple3(ff, du, eX))
862864 }
863865
864866
865867
866-@Callable(df)
867-func unstakeAndGetOneTkn (fi,fb,eO) = {
868- let eQ = {
869- let eR = invoke(aD, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
870- if ($isInstanceOf(eR, "Boolean"))
871- then eR
872- else throw(($getType(eR) + " couldn't be cast to Boolean"))
868+@Callable(dg)
869+func unstakeAndGetOneTkn (fj,fc,eP) = {
870+ let eR = {
871+ let eS = invoke(aE, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
872+ if ($isInstanceOf(eS, "Boolean"))
873+ then eS
874+ else throw(($getType(eS) + " couldn't be cast to Boolean"))
873875 }
874- let fc = if (if (aF())
876+ let fd = if (if (aG())
875877 then true
876- else (aS == n))
878+ else (aT == n))
877879 then true
878- else eQ
879- let ed = [if (!(fc))
880+ else eR
881+ let ee = [if (!(fd))
880882 then true
881- else aB("get operation is blocked by admin"), if ((size(df.payments) == 0))
883+ else aC("get operation is blocked by admin"), if ((size(dg.payments) == 0))
882884 then true
883- else aB("no payments are expected")]
884- if ((ed == ed))
885+ else aC("no payments are expected")]
886+ if ((ee == ee))
885887 then {
886- let ec = aK(fb)
887- let X = df.caller
888- let Y = df.transactionId
889- let fj = invoke(aZ, "unstake", [toBase58String(aT), fi], nil)
890- if ((fj == fj))
888+ let ed = aL(fc)
889+ let Y = dg.caller
890+ let Z = dg.transactionId
891+ let fk = invoke(ba, "unstake", [toBase58String(aU), fj], nil)
892+ if ((fk == fk))
891893 then {
892- let fk = eb(ec, fi, aT, X, Y)
893- let fe = fk._1
894- let cP = fk._2
895- let dt = fk._3
896- let eW = fk._4
897- let dn = if (if ((eO > 0))
898- then (eO > fe)
894+ let fl = ec(ed, fj, aU, Y, Z)
895+ let ff = fl._1
896+ let cQ = fl._2
897+ let du = fl._3
898+ let eX = fl._4
899+ let do = if (if ((eP > 0))
900+ then (eP > ff)
899901 else false)
900- then aB(makeString(["amount to receive is less than ", toString(eO)], ""))
901- else fe
902- let ff = invoke(aD, "burn", [fi], [AttachedPayment(aT, fi)])
903- if ((ff == ff))
902+ then aC(makeString(["amount to receive is less than ", toString(eP)], ""))
903+ else ff
904+ let fg = invoke(aE, "burn", [fj], [AttachedPayment(aU, fj)])
905+ if ((fg == fg))
904906 then {
905- let fg = [ScriptTransfer(df.caller, dn, ec)]
906- let eZ = if ((dt > 0))
907- then [ScriptTransfer(aE, dt, ec)]
907+ let fh = [ScriptTransfer(dg.caller, do, ed)]
908+ let fa = if ((du > 0))
909+ then [ScriptTransfer(aF, du, ed)]
908910 else nil
909- $Tuple2(((cP ++ fg) ++ eZ), dn)
911+ $Tuple2(((cQ ++ fh) ++ fa), do)
910912 }
911913 else throw("Strict value is not equal to itself.")
912914 }
917919
918920
919921
920-@Callable(df)
922+@Callable(dg)
921923 func get () = {
922- let cA = de(df)
923- let fl = cA._1
924- let ch = cA._2
925- let dh = cA._3
926- let bP = cA._4
927- let ci = cA._5
928- let fm = invoke(aD, "burn", [dh], [AttachedPayment(bP, dh)])
929- if ((fm == fm))
930- then ci
924+ let cB = df(dg)
925+ let fm = cB._1
926+ let ci = cB._2
927+ let di = cB._3
928+ let bQ = cB._4
929+ let cj = cB._5
930+ let fn = invoke(aE, "burn", [di], [AttachedPayment(bQ, di)])
931+ if ((fn == fn))
932+ then cj
931933 else throw("Strict value is not equal to itself.")
932934 }
933935
934936
935937
936-@Callable(df)
937-func getNoLess (fn,fo) = {
938- let cA = de(df)
939- let cg = cA._1
940- let ch = cA._2
941- let dh = cA._3
942- let bP = cA._4
943- let ci = cA._5
944- if ((fn > cg))
945- then throw(((("noLessThenAmtAsset failed: " + toString(cg)) + " < ") + toString(fn)))
946- else if ((fo > ch))
947- then throw(((("noLessThenPriceAsset failed: " + toString(ch)) + " < ") + toString(fo)))
938+@Callable(dg)
939+func getNoLess (fo,fp) = {
940+ let cB = df(dg)
941+ let ch = cB._1
942+ let ci = cB._2
943+ let di = cB._3
944+ let bQ = cB._4
945+ let cj = cB._5
946+ if ((fo > ch))
947+ then throw(((("noLessThenAmtAsset failed: " + toString(ch)) + " < ") + toString(fo)))
948+ else if ((fp > ci))
949+ then throw(((("noLessThenPriceAsset failed: " + toString(ci)) + " < ") + toString(fp)))
948950 else {
949- let fm = invoke(aD, "burn", [dh], [AttachedPayment(bP, dh)])
950- if ((fm == fm))
951- then ci
951+ let fn = invoke(aE, "burn", [di], [AttachedPayment(bQ, di)])
952+ if ((fn == fn))
953+ then cj
952954 else throw("Strict value is not equal to itself.")
953955 }
954956 }
955957
956958
957959
958-@Callable(df)
959-func unstakeAndGet (dn) = {
960- let fp = if ((size(df.payments) != 0))
960+@Callable(dg)
961+func unstakeAndGet (do) = {
962+ let fq = if ((size(dg.payments) != 0))
961963 then throw("No payments are expected")
962964 else true
963- if ((fp == fp))
965+ if ((fq == fq))
964966 then {
965- let bE = aH()
966- let bR = fromBase58String(bE[q])
967- let fj = invoke(aZ, "unstake", [toBase58String(bR), dn], nil)
968- if ((fj == fj))
967+ let bF = aI()
968+ let bS = fromBase58String(bF[q])
969+ let fk = invoke(ba, "unstake", [toBase58String(bS), do], nil)
970+ if ((fk == fk))
969971 then {
970- let cA = bN(toBase58String(df.transactionId), toBase58String(bR), dn, df.caller)
971- let bU = parseIntValue(cA._9)
972- let ci = cA._10
973- let fq = if (if (aF())
972+ let cB = bO(toBase58String(dg.transactionId), toBase58String(bS), do, dg.caller)
973+ let bV = parseIntValue(cB._9)
974+ let cj = cB._10
975+ let fr = if (if (aG())
974976 then true
975- else (bU == n))
976- then throw(("Get operation is blocked by admin. Status = " + toString(bU)))
977+ else (bV == n))
978+ then throw(("Get operation is blocked by admin. Status = " + toString(bV)))
977979 else true
978- if ((fq == fq))
980+ if ((fr == fr))
979981 then {
980- let fm = invoke(aD, "burn", [dn], [AttachedPayment(bR, dn)])
981- if ((fm == fm))
982- then ci
982+ let fn = invoke(aE, "burn", [do], [AttachedPayment(bS, do)])
983+ if ((fn == fn))
984+ then cj
983985 else throw("Strict value is not equal to itself.")
984986 }
985987 else throw("Strict value is not equal to itself.")
991993
992994
993995
994-@Callable(df)
995-func unstakeAndGetNoLess (fi,fr,fo) = {
996- let fc = if (aF())
996+@Callable(dg)
997+func unstakeAndGetNoLess (fj,fs,fp) = {
998+ let fd = if (aG())
997999 then true
998- else (aS == n)
999- let ed = [if (!(fc))
1000+ else (aT == n)
1001+ let ee = [if (!(fd))
10001002 then true
1001- else throw("get operation is blocked by admin"), if ((size(df.payments) == 0))
1003+ else throw("get operation is blocked by admin"), if ((size(dg.payments) == 0))
10021004 then true
10031005 else throw("no payments are expected")]
1004- if ((ed == ed))
1006+ if ((ee == ee))
10051007 then {
1006- let fj = invoke(aZ, "unstake", [toBase58String(aT), fi], nil)
1007- if ((fj == fj))
1008+ let fk = invoke(ba, "unstake", [toBase58String(aU), fj], nil)
1009+ if ((fk == fk))
10081010 then {
1009- let cA = bN(toBase58String(df.transactionId), toBase58String(aT), fi, df.caller)
1010- let cg = cA._1
1011- let ch = cA._2
1012- let ci = cA._10
1013- let fs = [if ((cg >= fr))
1011+ let cB = bO(toBase58String(dg.transactionId), toBase58String(aU), fj, dg.caller)
1012+ let ch = cB._1
1013+ let ci = cB._2
1014+ let cj = cB._10
1015+ let ft = [if ((ch >= fs))
10141016 then true
1015- else throw(makeString(["amount asset amount to receive is less than ", toString(fr)], "")), if ((ch >= fo))
1017+ else throw(makeString(["amount asset amount to receive is less than ", toString(fs)], "")), if ((ci >= fp))
10161018 then true
1017- else throw(makeString(["price asset amount to receive is less than ", toString(fo)], ""))]
1018- if ((fs == fs))
1019+ else throw(makeString(["price asset amount to receive is less than ", toString(fp)], ""))]
1020+ if ((ft == ft))
10191021 then {
1020- let fm = invoke(aD, "burn", [fi], [AttachedPayment(aT, fi)])
1021- if ((fm == fm))
1022- then ci
1022+ let fn = invoke(aE, "burn", [fj], [AttachedPayment(aU, fj)])
1023+ if ((fn == fn))
1024+ then cj
10231025 else throw("Strict value is not equal to itself.")
10241026 }
10251027 else throw("Strict value is not equal to itself.")
10311033
10321034
10331035
1034-@Callable(df)
1035-func activate (ft,fu) = if ((toString(df.caller) != toString(aD)))
1036+@Callable(dg)
1037+func activate (fu,fv) = if ((toString(dg.caller) != toString(aE)))
10361038 then throw("permissions denied")
1037- else $Tuple2([StringEntry(aa(), ft), StringEntry(ab(), fu)], "success")
1039+ else $Tuple2([StringEntry(ab(), fu), StringEntry(ac(), fv)], "success")
10381040
10391041
10401042
1041-@Callable(df)
1042-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aH())
1043+@Callable(dg)
1044+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aI())
10431045
10441046
10451047
1046-@Callable(df)
1047-func getAccBalanceWrapperREADONLY (br) = $Tuple2(nil, bq(br))
1048+@Callable(dg)
1049+func getAccBalanceWrapperREADONLY (bs) = $Tuple2(nil, br(bs))
10481050
10491051
10501052
1051-@Callable(df)
1052-func calcPricesWrapperREADONLY (by,bz,bD) = {
1053- let bM = bC(by, bz, bD)
1054- $Tuple2(nil, [toString(bM[0]), toString(bM[1]), toString(bM[2])])
1053+@Callable(dg)
1054+func calcPricesWrapperREADONLY (bz,bA,bE) = {
1055+ let bN = bD(bz, bA, bE)
1056+ $Tuple2(nil, [toString(bN[0]), toString(bN[1]), toString(bN[2])])
10551057 }
10561058
10571059
10581060
1059-@Callable(df)
1060-func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
1061+@Callable(dg)
1062+func toX18WrapperREADONLY (F,G) = $Tuple2(nil, toString(E(F, G)))
10611063
10621064
10631065
1064-@Callable(df)
1065-func fromX18WrapperREADONLY (H,I) = $Tuple2(nil, G(parseBigIntValue(H), I))
1066+@Callable(dg)
1067+func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
10661068
10671069
10681070
1069-@Callable(df)
1070-func calcPriceBigIntWrapperREADONLY (bt,bu) = $Tuple2(nil, toString(bs(parseBigIntValue(bt), parseBigIntValue(bu))))
1071+@Callable(dg)
1072+func calcPriceBigIntWrapperREADONLY (bu,bv) = $Tuple2(nil, toString(bt(parseBigIntValue(bu), parseBigIntValue(bv))))
10711073
10721074
10731075
1074-@Callable(df)
1075-func estimatePutOperationWrapperREADONLY (bO,ck,cl,cm,cn,co,X,cp,cq) = $Tuple2(nil, cj(bO, ck, cl, cm, cn, co, X, cp, cq))
1076+@Callable(dg)
1077+func estimatePutOperationWrapperREADONLY (bP,cl,cm,cn,co,cp,Y,cq,cr) = $Tuple2(nil, ck(bP, cl, cm, cn, co, cp, Y, cq, cr))
10761078
10771079
10781080
1079-@Callable(df)
1080-func estimateGetOperationWrapperREADONLY (bO,bP,bQ,X) = {
1081- let cA = bN(bO, bP, bQ, addressFromStringValue(X))
1082- $Tuple2(nil, $Tuple10(cA._1, cA._2, cA._3, cA._4, cA._5, cA._6, cA._7, toString(cA._8), cA._9, cA._10))
1081+@Callable(dg)
1082+func estimateGetOperationWrapperREADONLY (bP,bQ,bR,Y) = {
1083+ let cB = bO(bP, bQ, bR, addressFromStringValue(Y))
1084+ $Tuple2(nil, $Tuple10(cB._1, cB._2, cB._3, cB._4, cB._5, cB._6, cB._7, toString(cB._8), cB._9, cB._10))
10831085 }
10841086
10851087
10861088
1087-@Callable(df)
1089+@Callable(dg)
10881090 func statsREADONLY () = {
1089- let bE = aH()
1090- let bR = fromBase58String(bE[q])
1091- let cS = bE[r]
1092- let cT = bE[s]
1093- let ct = bE[v]
1094- let cu = bE[w]
1095- let bF = parseIntValue(bE[t])
1096- let bG = parseIntValue(bE[u])
1097- let fv = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
1098- let cU = bq(cS)
1099- let cV = bq(cT)
1100- let fw = if ((fv == 0))
1091+ let bF = aI()
1092+ let bS = fromBase58String(bF[q])
1093+ let cT = bF[r]
1094+ let cU = bF[s]
1095+ let cu = bF[v]
1096+ let cv = bF[w]
1097+ let bG = parseIntValue(bF[t])
1098+ let bH = parseIntValue(bF[u])
1099+ let fw = valueOrErrorMessage(assetInfo(bS), (("Asset " + toBase58String(bS)) + " doesn't exist")).quantity
1100+ let cV = br(cT)
1101+ let cW = br(cU)
1102+ let fx = if ((fw == 0))
11011103 then [e, e, e]
1102- else bC(cU, cV, fv)
1103- let cb = 0
1104- let fx = G(fw[1], b)
1105- let fy = G(fw[2], b)
1106- let fz = value(getInteger(aD, ap(toString(this))))
1107- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cU), toString(cV), toString(fv), toString(cb), toString(fx), toString(fy), toString(fz)], j))
1104+ else bD(cV, cW, fw)
1105+ let cc = 0
1106+ let fy = H(fx[1], b)
1107+ let fz = H(fx[2], b)
1108+ let fA = value(getInteger(aE, aq(toString(this))))
1109+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cV), toString(cW), toString(fw), toString(cc), toString(fy), toString(fz), toString(fA)], j))
11081110 }
11091111
11101112
11111113
1112-@Callable(df)
1113-func evaluatePutByAmountAssetREADONLY (cl) = {
1114- let bE = aH()
1115- let bR = fromBase58String(bE[q])
1116- let cr = bE[r]
1117- let bS = fromBase58String(cr)
1118- let cs = bE[s]
1114+@Callable(dg)
1115+func evaluatePutByAmountAssetREADONLY (cm) = {
1116+ let bF = aI()
1117+ let bS = fromBase58String(bF[q])
1118+ let cs = bF[r]
11191119 let bT = fromBase58String(cs)
1120- let bF = parseIntValue(bE[t])
1121- let bG = parseIntValue(bE[u])
1122- let bU = bE[p]
1123- let fv = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
1124- let cU = bq(cr)
1125- let cV = bq(cs)
1126- let bA = D(cU, bF)
1127- let bB = D(cV, bG)
1128- let ca = if ((fv == 0))
1120+ let ct = bF[s]
1121+ let bU = fromBase58String(ct)
1122+ let bG = parseIntValue(bF[t])
1123+ let bH = parseIntValue(bF[u])
1124+ let bV = bF[p]
1125+ let fw = valueOrErrorMessage(assetInfo(bS), (("Asset " + toBase58String(bS)) + " doesn't exist")).quantity
1126+ let cV = br(cs)
1127+ let cW = br(ct)
1128+ let bB = E(cV, bG)
1129+ let bC = E(cW, bH)
1130+ let cb = if ((fw == 0))
11291131 then e
1130- else bs(bB, bA)
1131- let cx = D(cl, bF)
1132- let cy = fraction(cx, ca, d)
1133- let cn = G(cy, bG)
1134- let dl = cj("", 500000, cl, bS, cn, bT, "", true, false)
1135- let cI = dl._1
1136- let fA = dl._3
1137- let bW = dl._4
1138- let bY = dl._5
1139- let bV = dl._6
1140- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cI), toString(G(ca, b)), toString(bW), toString(bY), toString(bV), bU, toString(cl), toString(cn)], j))
1132+ else bt(bC, bB)
1133+ let cy = E(cm, bG)
1134+ let cz = fraction(cy, cb, d)
1135+ let co = H(cz, bH)
1136+ let dm = ck("", 500000, cm, bT, co, bU, "", true, false)
1137+ let cJ = dm._1
1138+ let fB = dm._3
1139+ let bX = dm._4
1140+ let bZ = dm._5
1141+ let bW = dm._6
1142+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cJ), toString(H(cb, b)), toString(bX), toString(bZ), toString(bW), bV, toString(cm), toString(co)], j))
11411143 }
11421144
11431145
11441146
1145-@Callable(df)
1146-func evaluatePutByPriceAssetREADONLY (cn) = {
1147- let bE = aH()
1148- let bR = fromBase58String(bE[q])
1149- let cr = bE[r]
1150- let bS = fromBase58String(cr)
1151- let cs = bE[s]
1147+@Callable(dg)
1148+func evaluatePutByPriceAssetREADONLY (co) = {
1149+ let bF = aI()
1150+ let bS = fromBase58String(bF[q])
1151+ let cs = bF[r]
11521152 let bT = fromBase58String(cs)
1153- let bF = parseIntValue(bE[t])
1154- let bG = parseIntValue(bE[u])
1155- let bU = bE[p]
1156- let fv = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
1157- let fB = bq(cr)
1158- let fC = bq(cs)
1159- let fD = D(fB, bF)
1160- let fE = D(fC, bG)
1161- let ca = if ((fv == 0))
1153+ let ct = bF[s]
1154+ let bU = fromBase58String(ct)
1155+ let bG = parseIntValue(bF[t])
1156+ let bH = parseIntValue(bF[u])
1157+ let bV = bF[p]
1158+ let fw = valueOrErrorMessage(assetInfo(bS), (("Asset " + toBase58String(bS)) + " doesn't exist")).quantity
1159+ let fC = br(cs)
1160+ let fD = br(ct)
1161+ let fE = E(fC, bG)
1162+ let fF = E(fD, bH)
1163+ let cb = if ((fw == 0))
11621164 then e
1163- else bs(fE, fD)
1164- let cy = D(cn, bG)
1165- let cx = fraction(cy, d, ca)
1166- let cl = G(cx, bF)
1167- let dl = cj("", 500000, cl, bS, cn, bT, "", true, false)
1168- let cI = dl._1
1169- let fA = dl._3
1170- let bW = dl._4
1171- let bY = dl._5
1172- let bV = dl._6
1173- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cI), toString(G(ca, b)), toString(bW), toString(bY), toString(bV), bU, toString(cl), toString(cn)], j))
1165+ else bt(fF, fE)
1166+ let cz = E(co, bH)
1167+ let cy = fraction(cz, d, cb)
1168+ let cm = H(cy, bG)
1169+ let dm = ck("", 500000, cm, bT, co, bU, "", true, false)
1170+ let cJ = dm._1
1171+ let fB = dm._3
1172+ let bX = dm._4
1173+ let bZ = dm._5
1174+ let bW = dm._6
1175+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cJ), toString(H(cb, b)), toString(bX), toString(bZ), toString(bW), bV, toString(cm), toString(co)], j))
11741176 }
11751177
11761178
11771179
1178-@Callable(df)
1179-func evaluateGetREADONLY (fF,fG) = {
1180- let cA = bN("", fF, fG, this)
1181- let cg = cA._1
1182- let ch = cA._2
1183- let bW = cA._5
1184- let bY = cA._6
1185- let bV = cA._7
1186- let cb = cA._8
1187- let bU = parseIntValue(cA._9)
1188- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cg), toString(ch), toString(bW), toString(bY), toString(bV), toString(cb), toString(bU)], j))
1180+@Callable(dg)
1181+func evaluateGetREADONLY (fG,fH) = {
1182+ let cB = bO("", fG, fH, this)
1183+ let ch = cB._1
1184+ let ci = cB._2
1185+ let bX = cB._5
1186+ let bZ = cB._6
1187+ let bW = cB._7
1188+ let cc = cB._8
1189+ let bV = parseIntValue(cB._9)
1190+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(ch), toString(ci), toString(bX), toString(bZ), toString(bW), toString(cc), toString(bV)], j))
11891191 }
11901192
11911193
1192-@Verifier(fH)
1193-func fI () = {
1194- let fJ = {
1195- let dq = eu()
1196- if ($isInstanceOf(dq, "ByteVector"))
1194+@Verifier(fI)
1195+func fJ () = {
1196+ let fK = {
1197+ let dr = ev()
1198+ if ($isInstanceOf(dr, "ByteVector"))
11971199 then {
1198- let ez = dq
1199- ez
1200+ let eA = dr
1201+ eA
12001202 }
1201- else if ($isInstanceOf(dq, "Unit"))
1202- then fH.senderPublicKey
1203+ else if ($isInstanceOf(dr, "Unit"))
1204+ then fI.senderPublicKey
12031205 else throw("Match error")
12041206 }
1205- let dq = fH
1206- if ($isInstanceOf(dq, "Order"))
1207+ let dr = fI
1208+ if ($isInstanceOf(dr, "Order"))
12071209 then {
1208- let cR = dq
1209- let fK = aG()
1210- let au = cQ(cR)
1211- let av = sigVerify(cR.bodyBytes, cR.proofs[0], cR.senderPublicKey)
1212- let aw = sigVerify(cR.bodyBytes, cR.proofs[1], fK)
1213- if (if (if (au)
1214- then av
1215- else false)
1210+ let cS = dr
1211+ let fL = aH()
1212+ let av = cR(cS)
1213+ let aw = sigVerify(cS.bodyBytes, cS.proofs[0], cS.senderPublicKey)
1214+ let ax = sigVerify(cS.bodyBytes, cS.proofs[1], fL)
1215+ if (if (if (av)
12161216 then aw
12171217 else false)
1218+ then ax
1219+ else false)
12181220 then true
1219- else at(au, av, aw)
1221+ else au(av, aw, ax)
12201222 }
1221- else if ($isInstanceOf(dq, "SetScriptTransaction"))
1223+ else if ($isInstanceOf(dr, "SetScriptTransaction"))
12221224 then {
1223- let ev = dq
1224- let fL = blake2b256(value(ev.script))
1225- let fM = fromBase64String(value(getString(aD, ar())))
1226- let fN = scriptHash(this)
1227- if (if ((fM == fL))
1228- then (fN != fL)
1225+ let ew = dr
1226+ let fM = blake2b256(value(ew.script))
1227+ let fN = fromBase64String(value(getString(aE, as())))
1228+ let fO = scriptHash(this)
1229+ if (if ((fN == fM))
1230+ then (fO != fM)
12291231 else false)
12301232 then true
1231- else sigVerify(fH.bodyBytes, fH.proofs[0], fJ)
1233+ else sigVerify(fI.bodyBytes, fI.proofs[0], fK)
12321234 }
1233- else sigVerify(fH.bodyBytes, fH.proofs[0], fJ)
1235+ else sigVerify(fI.bodyBytes, fI.proofs[0], fK)
12341236 }
12351237
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
62-func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
62+let D = 1
63+
64+func E (F,G) = fraction(toBigInt(F), d, toBigInt(G))
6365
6466
65-func G (H,I) = toInt(fraction(H, toBigInt(I), d))
67+func H (I,J) = toInt(fraction(I, toBigInt(J), d))
6668
6769
68-func J (K,L,M) = fraction(K, L, M)
70+func K (L,M,N) = fraction(L, M, N)
6971
7072
71-func N (H) = if ((0 > H))
72- then -(H)
73- else H
73+func O (I) = if ((0 > I))
74+ then -(I)
75+ else I
7476
7577
76-func O (H) = if ((e > H))
77- then -(H)
78- else H
78+func P (I) = if ((e > I))
79+ then -(I)
80+ else I
7981
8082
81-func P () = "%s__factoryContract"
83+func Q () = "%s__factoryContract"
8284
8385
84-func Q () = "%s__managerPublicKey"
86+func R () = "%s__managerPublicKey"
8587
8688
87-func R () = "%s__pendingManagerPublicKey"
89+func S () = "%s__pendingManagerPublicKey"
8890
8991
90-func S () = "%s%s__price__last"
92+func T () = "%s%s__price__last"
9193
9294
93-func T (U,V) = makeString(["%s%s%d%d__price__history", toString(U), toString(V)], j)
95+func U (V,W) = makeString(["%s%s%d%d__price__history", toString(V), toString(W)], j)
9496
9597
96-func W (X,Y) = ((("%s%s%s__P__" + X) + "__") + Y)
98+func X (Y,Z) = ((("%s%s%s__P__" + Y) + "__") + Z)
9799
98100
99-func Z (X,Y) = ((("%s%s%s__G__" + X) + "__") + Y)
101+func aa (Y,Z) = ((("%s%s%s__G__" + Y) + "__") + Z)
100102
101103
102-func aa () = "%s__amountAsset"
104+func ab () = "%s__amountAsset"
103105
104106
105-func ab () = "%s__priceAsset"
107+func ac () = "%s__priceAsset"
106108
107109
108-let ac = "%s__fee"
110+let ad = "%s__fee"
109111
110-let ad = fraction(10, b, 10000)
112+let ae = fraction(10, b, 10000)
111113
112-let ae = valueOrElse(getInteger(this, ac), ad)
114+let af = valueOrElse(getInteger(this, ad), ae)
113115
114-func af () = "%s__factoryConfig"
116+func ag () = "%s__factoryConfig"
115117
116118
117-func ag () = "%s%s__matcher__publicKey"
119+func ah () = "%s%s__matcher__publicKey"
118120
119121
120-func ah (ai) = (("%s%s%s__" + ai) + "__mappings__poolContract2LpAsset")
122+func ai (aj) = (("%s%s%s__" + aj) + "__mappings__poolContract2LpAsset")
121123
122124
123-func aj (ak,al) = (((("%d%d%s__" + ak) + "__") + al) + "__config")
125+func ak (al,am) = (((("%d%d%s__" + al) + "__") + am) + "__config")
124126
125127
126-func am (an) = ("%s%s%s__mappings__baseAsset2internalId__" + an)
128+func an (ao) = ("%s%s%s__mappings__baseAsset2internalId__" + ao)
127129
128130
129-func ao () = "%s__shutdown"
131+func ap () = "%s__shutdown"
130132
131133
132-func ap (aq) = ("%s%s__poolWeight__" + aq)
134+func aq (ar) = ("%s%s__poolWeight__" + ar)
133135
134136
135-func ar () = "%s__allowedLpScriptHash"
137+func as () = "%s__allowedLpScriptHash"
136138
137139
138-let as = "%s__feeCollectorAddress"
140+let at = "%s__feeCollectorAddress"
139141
140-func at (au,av,aw) = throw(((((("order validation failed: orderValid=" + toString(au)) + " senderValid=") + toString(av)) + " matcherValid=") + toString(aw)))
142+func au (av,aw,ax) = throw(((((("order validation failed: orderValid=" + toString(av)) + " senderValid=") + toString(aw)) + " matcherValid=") + toString(ax)))
141143
142144
143-func ax (ay,az) = valueOrErrorMessage(getString(ay, az), makeString(["mandatory ", toString(ay), ".", az, " is not defined"], ""))
145+func ay (az,aA) = valueOrErrorMessage(getString(az, aA), makeString(["mandatory ", toString(az), ".", aA, " is not defined"], ""))
144146
145147
146-func aA (ay,az) = valueOrErrorMessage(getInteger(ay, az), makeString(["mandatory ", toString(ay), ".", az, " is not defined"], ""))
148+func aB (az,aA) = valueOrErrorMessage(getInteger(az, aA), makeString(["mandatory ", toString(az), ".", aA, " is not defined"], ""))
147149
148150
149-func aB (aC) = throw(makeString(["lp.ride:", aC], " "))
151+func aC (aD) = throw(makeString(["lp.ride:", aD], " "))
150152
151153
152-let aD = addressFromStringValue(ax(this, P()))
154+let aE = addressFromStringValue(ay(this, Q()))
153155
154-let aE = addressFromStringValue(ax(aD, as))
156+let aF = addressFromStringValue(ay(aE, at))
155157
156-func aF () = valueOrElse(getBoolean(aD, ao()), false)
158+func aG () = valueOrElse(getBoolean(aE, ap()), false)
157159
158160
159-func aG () = fromBase58String(ax(aD, ag()))
161+func aH () = fromBase58String(ay(aE, ah()))
160162
161163
162-func aH () = {
163- let aI = ax(this, aa())
164- let aJ = ax(this, ab())
165- let al = aA(aD, am(aJ))
166- let ak = aA(aD, am(aI))
167- split(ax(aD, aj(toString(ak), toString(al))), j)
164+func aI () = {
165+ let aJ = ay(this, ab())
166+ let aK = ay(this, ac())
167+ let am = aB(aE, an(aK))
168+ let al = aB(aE, an(aJ))
169+ split(ay(aE, ak(toString(al), toString(am))), j)
168170 }
169171
170172
171-func aK (aL) = if ((aL == i))
173+func aL (aM) = if ((aM == i))
172174 then unit
173- else fromBase58String(aL)
175+ else fromBase58String(aM)
174176
175177
176-func aM (aL) = if ((aL == unit))
178+func aN (aM) = if ((aM == unit))
177179 then i
178- else toBase58String(value(aL))
180+ else toBase58String(value(aM))
179181
180182
181-func aN (aO) = $Tuple7(addressFromStringValue(aO[o]), parseIntValue(aO[p]), fromBase58String(aO[q]), aK(aO[r]), aK(aO[s]), parseIntValue(aO[t]), parseIntValue(aO[u]))
183+func aO (aP) = $Tuple7(addressFromStringValue(aP[o]), parseIntValue(aP[p]), fromBase58String(aP[q]), aL(aP[r]), aL(aP[s]), parseIntValue(aP[t]), parseIntValue(aP[u]))
182184
183185
184-let aP = aN(aH())
186+let aQ = aO(aI())
185187
186-let aQ = aP
188+let aR = aQ
187189
188-let aR = aQ._1
190+let aS = aR._1
189191
190-let aS = aQ._2
192+let aT = aR._2
191193
192-let aT = aQ._3
194+let aU = aR._3
193195
194-let aU = aQ._4
196+let aV = aR._4
195197
196-let aV = aQ._5
198+let aW = aR._5
197199
198-let aW = aQ._6
200+let aX = aR._6
199201
200-let aX = aQ._7
202+let aY = aR._7
201203
202-func aY () = split(ax(aD, af()), j)
204+func aZ () = split(ay(aE, ag()), j)
203205
204206
205-let aZ = valueOrErrorMessage(addressFromString(aY()[B]), "incorrect staking address")
207+let ba = valueOrErrorMessage(addressFromString(aZ()[B]), "incorrect staking address")
206208
207-let ba = valueOrErrorMessage(addressFromString(aY()[C]), "incorrect staking address")
209+let bb = valueOrErrorMessage(addressFromString(aZ()[C]), "incorrect staking address")
208210
209-func bb (bc,bd,be,bf,bg,bh,bi,bj,bk,bl) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bc), toString(bd), toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj), toString(bk), toString(bl)], j)
211+func bc (bd,be,bf,bg,bh,bi,bj,bk,bl,bm) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bd), toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj), toString(bk), toString(bl), toString(bm)], j)
210212
211213
212-func bm (bn,bo,bp,bf,bi,bj) = makeString(["%d%d%d%d%d%d", toString(bn), toString(bo), toString(bp), toString(bf), toString(bi), toString(bj)], j)
214+func bn (bo,bp,bq,bg,bj,bk) = makeString(["%d%d%d%d%d%d", toString(bo), toString(bp), toString(bq), toString(bg), toString(bj), toString(bk)], j)
213215
214216
215-func bq (br) = if ((br == "WAVES"))
217+func br (bs) = if ((bs == "WAVES"))
216218 then wavesBalance(this).available
217- else assetBalance(this, fromBase58String(br))
219+ else assetBalance(this, fromBase58String(bs))
218220
219221
220-func bs (bt,bu) = fraction(bt, d, bu)
222+func bt (bu,bv) = fraction(bu, d, bv)
221223
222224
223-func bv (bw,bx,by,bz) = {
224- let bA = D(by, bw)
225- let bB = D(bz, bx)
226- bs(bB, bA)
225+func bw (bx,by,bz,bA) = {
226+ let bB = E(bz, bx)
227+ let bC = E(bA, by)
228+ bt(bC, bB)
227229 }
228230
229231
230-func bC (by,bz,bD) = {
231- let bE = aH()
232- let bF = parseIntValue(bE[t])
233- let bG = parseIntValue(bE[u])
234- let bH = bv(bF, bG, by, bz)
235- let bu = D(by, bF)
236- let bt = D(bz, bG)
237- let bI = D(bD, b)
238- let bJ = bs(bu, bI)
239- let bK = bs(bt, bI)
240-[bH, bJ, bK]
232+func bD (bz,bA,bE) = {
233+ let bF = aI()
234+ let bG = parseIntValue(bF[t])
235+ let bH = parseIntValue(bF[u])
236+ let bI = bw(bG, bH, bz, bA)
237+ let bv = E(bz, bG)
238+ let bu = E(bA, bH)
239+ let bJ = E(bE, b)
240+ let bK = bt(bv, bJ)
241+ let bL = bt(bu, bJ)
242+[bI, bK, bL]
241243 }
242244
243245
244-func bL (by,bz,bD) = {
245- let bM = bC(by, bz, bD)
246-[G(bM[0], b), G(bM[1], b), G(bM[2], b)]
246+func bM (bz,bA,bE) = {
247+ let bN = bD(bz, bA, bE)
248+[H(bN[0], b), H(bN[1], b), H(bN[2], b)]
247249 }
248250
249251
250-func bN (bO,bP,bQ,X) = {
251- let bE = aH()
252- let bR = bE[q]
253- let bS = bE[r]
254- let bT = bE[s]
255- let bw = parseIntValue(bE[t])
256- let bx = parseIntValue(bE[u])
257- let bU = bE[p]
258- let bV = valueOrErrorMessage(assetInfo(fromBase58String(bR)), (("Asset " + bR) + " doesn't exist")).quantity
259- if ((bR != bP))
252+func bO (bP,bQ,bR,Y) = {
253+ let bF = aI()
254+ let bS = bF[q]
255+ let bT = bF[r]
256+ let bU = bF[s]
257+ let bx = parseIntValue(bF[t])
258+ let by = parseIntValue(bF[u])
259+ let bV = bF[p]
260+ let bW = valueOrErrorMessage(assetInfo(fromBase58String(bS)), (("Asset " + bS) + " doesn't exist")).quantity
261+ if ((bS != bQ))
260262 then throw("Invalid asset passed.")
261263 else {
262- let bW = bq(bS)
263- let bX = D(bW, bw)
264- let bY = bq(bT)
265- let bZ = D(bY, bx)
266- let ca = bs(bZ, bX)
267- let cb = G(ca, b)
268- let cc = D(bQ, b)
269- let cd = D(bV, b)
270- let ce = fraction(bX, cc, cd)
271- let cf = fraction(bZ, cc, cd)
272- let cg = G(ce, bw)
273- let ch = G(cf, bx)
274- let ci = if ((bO == ""))
264+ let bX = br(bT)
265+ let bY = E(bX, bx)
266+ let bZ = br(bU)
267+ let ca = E(bZ, by)
268+ let cb = bt(ca, bY)
269+ let cc = H(cb, b)
270+ let cd = E(bR, b)
271+ let ce = E(bW, b)
272+ let cf = fraction(bY, cd, ce)
273+ let cg = fraction(ca, cd, ce)
274+ let ch = H(cf, bx)
275+ let ci = H(cg, by)
276+ let cj = if ((bP == ""))
275277 then nil
276- else [ScriptTransfer(X, cg, if ((bS == "WAVES"))
278+ else [ScriptTransfer(Y, ch, if ((bT == "WAVES"))
277279 then unit
278- else fromBase58String(bS)), ScriptTransfer(X, ch, if ((bT == "WAVES"))
280+ else fromBase58String(bT)), ScriptTransfer(Y, ci, if ((bU == "WAVES"))
279281 then unit
280- else fromBase58String(bT)), StringEntry(Z(toString(X), bO), bm(cg, ch, bQ, cb, height, lastBlock.timestamp)), IntegerEntry(S(), cb), IntegerEntry(T(height, lastBlock.timestamp), cb)]
281- $Tuple10(cg, ch, bS, bT, bW, bY, bV, ca, bU, ci)
282+ else fromBase58String(bU)), StringEntry(aa(toString(Y), bP), bn(ch, ci, bR, cc, height, lastBlock.timestamp)), IntegerEntry(T(), cc), IntegerEntry(U(height, lastBlock.timestamp), cc)]
283+ $Tuple10(ch, ci, bT, bU, bX, bZ, bW, cb, bV, cj)
282284 }
283285 }
284286
285287
286-func cj (bO,ck,cl,cm,cn,co,X,cp,cq) = {
287- let bE = aH()
288- let bR = fromBase58String(bE[q])
289- let cr = bE[r]
290- let cs = bE[s]
291- let ct = bE[v]
292- let cu = bE[w]
293- let bF = parseIntValue(bE[t])
294- let bG = parseIntValue(bE[u])
295- let bU = bE[p]
296- let bV = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
297- let cv = toBase58String(valueOrElse(cm, fromBase58String("WAVES")))
298- let cw = toBase58String(valueOrElse(co, fromBase58String("WAVES")))
299- if (if ((cr != cv))
288+func ck (bP,cl,cm,cn,co,cp,Y,cq,cr) = {
289+ let bF = aI()
290+ let bS = fromBase58String(bF[q])
291+ let cs = bF[r]
292+ let ct = bF[s]
293+ let cu = bF[v]
294+ let cv = bF[w]
295+ let bG = parseIntValue(bF[t])
296+ let bH = parseIntValue(bF[u])
297+ let bV = bF[p]
298+ let bW = valueOrErrorMessage(assetInfo(bS), (("Asset " + toBase58String(bS)) + " doesn't exist")).quantity
299+ let cw = toBase58String(valueOrElse(cn, fromBase58String("WAVES")))
300+ let cx = toBase58String(valueOrElse(cp, fromBase58String("WAVES")))
301+ if (if ((cs != cw))
300302 then true
301- else (cs != cw))
303+ else (ct != cx))
302304 then throw("Invalid amt or price asset passed.")
303305 else {
304- let bW = if (cp)
305- then bq(cr)
306- else (bq(cr) - cl)
307- let bY = if (cp)
308- then bq(cs)
309- else (bq(cs) - cn)
310- let cx = D(cl, bF)
311- let cy = D(cn, bG)
312- let cz = bs(cy, cx)
313- let bX = D(bW, bF)
314- let bZ = D(bY, bG)
315- let cA = if ((bV == 0))
306+ let bX = if (cq)
307+ then br(cs)
308+ else (br(cs) - cm)
309+ let bZ = if (cq)
310+ then br(ct)
311+ else (br(ct) - co)
312+ let cy = E(cm, bG)
313+ let cz = E(co, bH)
314+ let cA = bt(cz, cy)
315+ let bY = E(bX, bG)
316+ let ca = E(bZ, bH)
317+ let cB = if ((bW == 0))
316318 then {
317- let ca = e
318- let cB = e
319- let bI = pow((cx * cy), 0, toBigInt(5), 1, 0, DOWN)
320- $Tuple5(G(bI, b), G(cx, bF), G(cy, bG), bs((bZ + cy), (bX + cx)), cB)
319+ let cb = e
320+ let cC = e
321+ let bJ = pow((cy * cz), 0, toBigInt(5), 1, 0, DOWN)
322+ $Tuple5(H(bJ, b), H(cy, bG), H(cz, bH), bt((ca + cz), (bY + cy)), cC)
321323 }
322324 else {
323- let ca = bs(bZ, bX)
324- let cB = fraction(O((ca - cz)), d, ca)
325- let cC = D(ck, b)
326- if (if ((ca != e))
327- then (cB > cC)
325+ let cb = bt(ca, bY)
326+ let cC = fraction(P((cb - cA)), d, cb)
327+ let cD = E(cl, b)
328+ if (if ((cb != e))
329+ then (cC > cD)
328330 else false)
329- then throw(((("Price slippage " + toString(cB)) + " exceeded the passed limit of ") + toString(cC)))
331+ then throw(((("Price slippage " + toString(cC)) + " exceeded the passed limit of ") + toString(cD)))
330332 else {
331- let cd = D(bV, b)
332- let cD = fraction(cx, ca, d)
333- let cE = fraction(cy, d, ca)
334- let cF = if ((cD > cy))
335- then $Tuple2(cE, cy)
336- else $Tuple2(cx, cD)
337- let cG = cF._1
338- let cH = cF._2
339- let bI = fraction(cd, cH, bZ)
340- $Tuple5(G(bI, b), G(cG, bF), G(cH, bG), ca, cB)
333+ let ce = E(bW, b)
334+ let cE = fraction(cy, cb, d)
335+ let cF = fraction(cz, d, cb)
336+ let cG = if ((cE > cz))
337+ then $Tuple2(cF, cz)
338+ else $Tuple2(cy, cE)
339+ let cH = cG._1
340+ let cI = cG._2
341+ let bJ = fraction(ce, cI, ca)
342+ $Tuple5(H(bJ, b), H(cH, bG), H(cI, bH), cb, cC)
341343 }
342344 }
343- let cI = cA._1
344- let cJ = cA._2
345- let cK = cA._3
346- let cb = G(cA._4, b)
347- let cL = G(cA._5, b)
348- if ((0 >= cI))
345+ let cJ = cB._1
346+ let cK = cB._2
347+ let cL = cB._3
348+ let cc = H(cB._4, b)
349+ let cM = H(cB._5, b)
350+ if ((0 >= cJ))
349351 then throw("Invalid calculations. LP calculated is less than zero.")
350352 else {
351- let cM = if (!(cq))
353+ let cN = if (!(cr))
352354 then 0
353- else cI
354- let cN = (cl - cJ)
355- let cO = (cn - cK)
356- let cP = [IntegerEntry(S(), cb), IntegerEntry(T(height, lastBlock.timestamp), cb), StringEntry(W(X, bO), bb(cJ, cK, cM, cb, ck, cL, height, lastBlock.timestamp, cN, cO))]
357- $Tuple13(cI, cM, cb, bW, bY, bV, bR, bU, cP, cN, cO, cm, co)
355+ else cJ
356+ let cO = (cm - cK)
357+ let cP = (co - cL)
358+ let cQ = [IntegerEntry(T(), cc), IntegerEntry(U(height, lastBlock.timestamp), cc), StringEntry(X(Y, bP), bc(cK, cL, cN, cc, cl, cM, height, lastBlock.timestamp, cO, cP))]
359+ $Tuple13(cJ, cN, cc, bX, bZ, bW, bS, bV, cQ, cO, cP, cn, cp)
358360 }
359361 }
360362 }
361363
362364
363-func cQ (cR) = {
364- let bE = aH()
365- let cS = bE[r]
366- let cT = bE[s]
367- let bU = parseIntValue(bE[p])
368- let bF = parseIntValue(bE[t])
369- let bG = parseIntValue(bE[u])
370- let cU = bq(cS)
371- let cV = bq(cT)
372- let ca = if ((cR.orderType == Buy))
373- then bv(bF, bG, (cU + cR.amount), cV)
374- else bv(bF, bG, (cU - cR.amount), cV)
375- let cb = G(ca, b)
376- if (if (if (aF())
365+func cR (cS) = {
366+ let bF = aI()
367+ let cT = bF[r]
368+ let cU = bF[s]
369+ let bV = parseIntValue(bF[p])
370+ let bG = parseIntValue(bF[t])
371+ let bH = parseIntValue(bF[u])
372+ let cV = br(cT)
373+ let cW = br(cU)
374+ let cb = if ((cS.orderType == Buy))
375+ then bw(bG, bH, (cV + cS.amount), cW)
376+ else bw(bG, bH, (cV - cS.amount), cW)
377+ let cc = H(cb, b)
378+ if (if (if (aG())
377379 then true
378- else (bU == m))
380+ else (bV == m))
379381 then true
380- else (bU == n))
382+ else (bV == n))
381383 then throw("Exchange operations disabled")
382384 else {
383- let cW = cR.assetPair.amountAsset
384- let cX = if ((cW == unit))
385+ let cX = cS.assetPair.amountAsset
386+ let cY = if ((cX == unit))
385387 then "WAVES"
386- else toBase58String(value(cW))
387- let cY = cR.assetPair.priceAsset
388- let cZ = if ((cY == unit))
388+ else toBase58String(value(cX))
389+ let cZ = cS.assetPair.priceAsset
390+ let da = if ((cZ == unit))
389391 then "WAVES"
390- else toBase58String(value(cY))
391- if (if ((cX != cS))
392+ else toBase58String(value(cZ))
393+ if (if ((cY != cT))
392394 then true
393- else (cZ != cT))
395+ else (da != cU))
394396 then throw("Wrong order assets.")
395397 else {
396- let da = cR.price
397- let db = fraction(b, bG, bF)
398- let dc = J(da, b, db)
399- let dd = if ((cR.orderType == Buy))
400- then (cb >= dc)
401- else (dc >= cb)
398+ let db = cS.price
399+ let dc = fraction(b, bH, bG)
400+ let dd = K(db, b, dc)
401+ let de = if ((cS.orderType == Buy))
402+ then (cc >= dd)
403+ else (dd >= cc)
402404 true
403405 }
404406 }
405407 }
406408
407409
408-func de (df) = if ((size(df.payments) != 1))
410+func df (dg) = if ((size(dg.payments) != 1))
409411 then throw("exactly 1 payment is expected")
410412 else {
411- let dg = value(df.payments[0])
412- let bP = value(dg.assetId)
413- let dh = dg.amount
414- let cA = bN(toBase58String(df.transactionId), toBase58String(bP), dh, df.caller)
415- let cg = cA._1
416- let ch = cA._2
417- let bU = parseIntValue(cA._9)
418- let ci = cA._10
419- if (if (aF())
413+ let dh = value(dg.payments[0])
414+ let bQ = value(dh.assetId)
415+ let di = dh.amount
416+ let cB = bO(toBase58String(dg.transactionId), toBase58String(bQ), di, dg.caller)
417+ let ch = cB._1
418+ let ci = cB._2
419+ let bV = parseIntValue(cB._9)
420+ let cj = cB._10
421+ if (if (aG())
420422 then true
421- else (bU == n))
422- then throw(("Get operation is blocked by admin. Status = " + toString(bU)))
423- else $Tuple5(cg, ch, dh, bP, ci)
423+ else (bV == n))
424+ then throw(("Get operation is blocked by admin. Status = " + toString(bV)))
425+ else $Tuple5(ch, ci, di, bQ, cj)
424426 }
425427
426428
427-func di (df,ck,cq) = if ((size(df.payments) != 2))
429+func dj (dg,cl,cr) = if ((size(dg.payments) != 2))
428430 then throw("exactly 2 payments are expected")
429431 else {
430- let dj = value(df.payments[0])
431- let dk = value(df.payments[1])
432- let dl = cj(toBase58String(df.transactionId), ck, dj.amount, dj.assetId, dk.amount, dk.assetId, toString(df.caller), false, cq)
433- let bU = parseIntValue(dl._8)
434- if (if (if (aF())
432+ let dk = value(dg.payments[0])
433+ let dl = value(dg.payments[1])
434+ let dm = ck(toBase58String(dg.transactionId), cl, dk.amount, dk.assetId, dl.amount, dl.assetId, toString(dg.caller), false, cr)
435+ let bV = parseIntValue(dm._8)
436+ if (if (if (aG())
435437 then true
436- else (bU == l))
438+ else (bV == l))
437439 then true
438- else (bU == n))
439- then throw(("Put operation is blocked by admin. Status = " + toString(bU)))
440- else dl
440+ else (bV == n))
441+ then throw(("Put operation is blocked by admin. Status = " + toString(bV)))
442+ else dm
441443 }
442444
443445
444-func dm (dn) = {
445- let do = invoke(aD, "emit", [dn], nil)
446- if ((do == do))
446+func dn (do) = {
447+ let dp = invoke(aE, "emit", [do], nil)
448+ if ((dp == dp))
447449 then {
448- let dp = {
449- let dq = do
450- if ($isInstanceOf(dq, "Address"))
450+ let dq = {
451+ let dr = dp
452+ if ($isInstanceOf(dr, "Address"))
451453 then {
452- let dr = dq
453- invoke(dr, "emit", [dn], nil)
454+ let ds = dr
455+ invoke(ds, "emit", [do], nil)
454456 }
455457 else unit
456458 }
457- if ((dp == dp))
458- then dn
459+ if ((dq == dq))
460+ then do
459461 else throw("Strict value is not equal to itself.")
460462 }
461463 else throw("Strict value is not equal to itself.")
462464 }
463465
464466
465-func ds (dn) = {
466- let dt = fraction(dn, ae, b)
467- $Tuple2((dn - dt), dt)
467+func dt (do) = {
468+ let du = fraction(do, af, b)
469+ $Tuple2((do - du), du)
468470 }
469471
470472
471-func du (dv,dw,X,Y) = {
472- let dx = (Y == unit)
473- let dy = bq(aM(aU))
474- let dz = bq(aM(aV))
475- let dA = if ((dw == aU))
473+func dv (dw,dx,Y,Z) = {
474+ let dy = (Z == unit)
475+ let dz = br(aN(aV))
476+ let dA = br(aN(aW))
477+ let dB = if ((dx == aV))
476478 then true
477- else if ((dw == aV))
479+ else if ((dx == aW))
478480 then false
479- else aB("invalid asset")
480- let dB = if (dx)
481- then $Tuple2(dy, dz)
482- else if (dA)
483- then $Tuple2((dy - dv), dz)
484- else $Tuple2(dy, (dz - dv))
485- let dC = dB._1
486- let dD = dB._2
487- let dE = if (dA)
488- then $Tuple2(dv, 0)
489- else $Tuple2(0, dv)
490- let dF = dE._1
491- let dG = dE._2
492- let dH = ds(dF)._1
493- let dI = ds(dG)._1
494- let dJ = ds(dv)
495- let dK = dJ._1
496- let dt = dJ._2
497- let dL = (dC + dH)
481+ else aC("invalid asset")
482+ let dC = if (dy)
483+ then $Tuple2(dz, dA)
484+ else if (dB)
485+ then $Tuple2((dz - dw), dA)
486+ else $Tuple2(dz, (dA - dw))
487+ let dD = dC._1
488+ let dE = dC._2
489+ let dF = if (dB)
490+ then $Tuple2(dw, 0)
491+ else $Tuple2(0, dw)
492+ let dG = dF._1
493+ let dH = dF._2
494+ let dI = dt(dG)._1
495+ let dJ = dt(dH)._1
496+ let dK = dt(dw)
497+ let dL = dK._1
498+ let du = dK._2
498499 let dM = (dD + dI)
499- let dN = bs(D(dM, aX), D(dL, aW))
500- let dO = G(dN, b)
501- let dP = if (dA)
502- then dC
503- else dD
504- let dQ = toBigInt(dP)
505- let dR = toBigInt(valueOrErrorMessage(assetInfo(aT), (("asset " + toBase58String(aT)) + " doesn't exist")).quantity)
506- let dS = if ((dR > f))
500+ let dN = (dE + dJ)
501+ let dO = bt(E(dN, aY), E(dM, aX))
502+ let dP = H(dO, b)
503+ let dQ = if (dB)
504+ then dD
505+ else dE
506+ let dR = toBigInt(dQ)
507+ let dS = toBigInt(valueOrErrorMessage(assetInfo(aU), (("asset " + toBase58String(aU)) + " doesn't exist")).quantity)
508+ let dT = if ((dS > f))
507509 then true
508- else aB("initial deposit requires all coins")
509- if ((dS == dS))
510+ else aC("initial deposit requires all coins")
511+ if ((dT == dT))
510512 then {
511- let dT = toBigInt(dK)
512- let dU = max([0, toInt(((dR * (sqrtBigInt((d + ((dT * d) / dQ)), 18, 18, DOWN) - d)) / d))])
513- let cP = if (dx)
513+ let dU = toBigInt(dL)
514+ let dV = max([0, toInt(((dS * (sqrtBigInt((d + ((dU * d) / dR)), 18, 18, DOWN) - d)) / d))])
515+ let cQ = if (dy)
514516 then nil
515- else [IntegerEntry(S(), dO), IntegerEntry(T(height, lastBlock.timestamp), dO), StringEntry(W(toString(value(X)), toBase58String(value(Y))), bb(dF, dG, dU, dO, 0, 0, height, lastBlock.timestamp, 0, 0))]
516- let dV = bs(D(dD, aX), D(dC, aW))
517- let dW = G(dV, b)
518- let dX = {
519- let dY = if (dA)
520- then $Tuple2(dF, dC)
521- else $Tuple2(dG, dD)
522- let dn = dY._1
523- let dZ = dY._2
524- let ea = toInt(fraction(dR, toBigInt((dn / 2)), toBigInt(dZ)))
525- fraction((dU - ea), b, ea)
517+ else [IntegerEntry(T(), dP), IntegerEntry(U(height, lastBlock.timestamp), dP), StringEntry(X(toString(value(Y)), toBase58String(value(Z))), bc(dG, dH, dV, dP, 0, 0, height, lastBlock.timestamp, 0, 0))]
518+ let dW = bt(E(dE, aY), E(dD, aX))
519+ let dX = H(dW, b)
520+ let dY = {
521+ let dZ = if (dB)
522+ then $Tuple2(dG, dD)
523+ else $Tuple2(dH, dE)
524+ let do = dZ._1
525+ let ea = dZ._2
526+ let eb = toInt(fraction(dS, toBigInt((do / 2)), toBigInt(ea)))
527+ fraction((dV - eb), b, eb)
526528 }
527- $Tuple4(dU, cP, dt, dX)
529+ $Tuple4(dV, cQ, du, dY)
528530 }
529531 else throw("Strict value is not equal to itself.")
530532 }
531533
532534
533-func eb (ec,dK,dw,X,Y) = {
534- let dx = (Y == unit)
535- let ed = [if ((dw == aT))
535+func ec (ed,dL,dx,Y,Z) = {
536+ let dy = (Z == unit)
537+ let ee = [if ((dx == aU))
536538 then true
537- else aB("invalid lp asset")]
538- if ((ed == ed))
539+ else aC("invalid lp asset")]
540+ if ((ee == ee))
539541 then {
540- let ee = if ((ec == aU))
542+ let ef = if ((ed == aV))
541543 then true
542- else if ((ec == aV))
544+ else if ((ed == aW))
543545 then false
544- else aB("invalid asset")
545- let ef = if (ee)
546- then toBigInt(bq(aM(aU)))
547- else toBigInt(bq(aM(aV)))
548- let eg = bq(aM(aU))
549- let eh = bq(aM(aV))
550- let ei = if (ee)
551- then eg
552- else eh
553- let ej = toBigInt(ei)
554- let dR = toBigInt(valueOrErrorMessage(assetInfo(aT), (("asset " + toBase58String(aT)) + " doesn't exist")).quantity)
555- let ek = toBigInt(dK)
556- let el = max([0, toInt(((ef * (d - pow((d - ((ek * d) / dR)), 18, h, 0, 18, DOWN))) / d))])
557- let em = ds(el)
558- let en = em._1
559- let dt = em._2
560- let eo = if (ee)
561- then $Tuple4(en, 0, (eg - el), eh)
562- else $Tuple4(0, en, eg, (eh - el))
563- let ep = eo._1
564- let eq = eo._2
565- let er = eo._3
566- let es = eo._4
567- let dN = bs(D(es, aX), D(er, aW))
568- let dO = G(dN, b)
569- let cP = if (dx)
546+ else aC("invalid asset")
547+ let eg = if (ef)
548+ then toBigInt(br(aN(aV)))
549+ else toBigInt(br(aN(aW)))
550+ let eh = br(aN(aV))
551+ let ei = br(aN(aW))
552+ let ej = if (ef)
553+ then eh
554+ else ei
555+ let ek = toBigInt(ej)
556+ let dS = toBigInt(valueOrErrorMessage(assetInfo(aU), (("asset " + toBase58String(aU)) + " doesn't exist")).quantity)
557+ let el = toBigInt(dL)
558+ let em = max([0, toInt(((eg * (d - pow((d - ((el * d) / dS)), 18, h, 0, 18, DOWN))) / d))])
559+ let en = dt(em)
560+ let eo = en._1
561+ let du = en._2
562+ let ep = if (ef)
563+ then $Tuple4(eo, 0, (eh - em), ei)
564+ else $Tuple4(0, eo, eh, (ei - em))
565+ let eq = ep._1
566+ let er = ep._2
567+ let es = ep._3
568+ let et = ep._4
569+ let dO = bt(E(et, aY), E(es, aX))
570+ let dP = H(dO, b)
571+ let cQ = if (dy)
570572 then nil
571- else [StringEntry(Z(toString(value(X)), toBase58String(value(Y))), bm(ep, eq, dK, dO, height, lastBlock.timestamp)), IntegerEntry(S(), dO), IntegerEntry(T(height, lastBlock.timestamp), dO)]
572- let dV = bs(D(eh, aX), D(eg, aW))
573- let dW = G(dV, b)
574- let dX = {
575- let et = (toInt(fraction(ef, ek, dR)) * 2)
576- fraction((en - et), b, et)
573+ else [StringEntry(aa(toString(value(Y)), toBase58String(value(Z))), bn(eq, er, dL, dP, height, lastBlock.timestamp)), IntegerEntry(T(), dP), IntegerEntry(U(height, lastBlock.timestamp), dP)]
574+ let dW = bt(E(ei, aY), E(eh, aX))
575+ let dX = H(dW, b)
576+ let dY = {
577+ let eu = (toInt(fraction(eg, el, dS)) * 2)
578+ fraction((eo - eu), b, eu)
577579 }
578- $Tuple4(en, cP, dt, dX)
580+ $Tuple4(eo, cQ, du, dY)
579581 }
580582 else throw("Strict value is not equal to itself.")
581583 }
582584
583585
584-func eu () = {
585- let dq = getString(Q())
586- if ($isInstanceOf(dq, "String"))
586+func ev () = {
587+ let dr = getString(R())
588+ if ($isInstanceOf(dr, "String"))
587589 then {
588- let ev = dq
589- fromBase58String(ev)
590+ let ew = dr
591+ fromBase58String(ew)
590592 }
591- else if ($isInstanceOf(dq, "Unit"))
593+ else if ($isInstanceOf(dr, "Unit"))
592594 then unit
593595 else throw("Match error")
594596 }
595597
596598
597-func ew () = {
598- let dq = getString(R())
599- if ($isInstanceOf(dq, "String"))
599+func ex () = {
600+ let dr = getString(S())
601+ if ($isInstanceOf(dr, "String"))
600602 then {
601- let ev = dq
602- fromBase58String(ev)
603+ let ew = dr
604+ fromBase58String(ew)
603605 }
604- else if ($isInstanceOf(dq, "Unit"))
606+ else if ($isInstanceOf(dr, "Unit"))
605607 then unit
606608 else throw("Match error")
607609 }
608610
609611
610-func ex (df) = {
611- let ey = throw("Permission denied")
612- let dq = eu()
613- if ($isInstanceOf(dq, "ByteVector"))
612+func ey (dg) = {
613+ let ez = throw("Permission denied")
614+ let dr = ev()
615+ if ($isInstanceOf(dr, "ByteVector"))
614616 then {
615- let ez = dq
616- if ((df.callerPublicKey == ez))
617+ let eA = dr
618+ if ((dg.callerPublicKey == eA))
617619 then true
618- else ey
620+ else ez
619621 }
620- else if ($isInstanceOf(dq, "Unit"))
621- then if ((df.caller == this))
622+ else if ($isInstanceOf(dr, "Unit"))
623+ then if ((dg.caller == this))
622624 then true
623- else ey
625+ else ez
624626 else throw("Match error")
625627 }
626628
627629
628-@Callable(df)
629-func setManager (eA) = {
630- let eB = ex(df)
631- if ((eB == eB))
630+@Callable(dg)
631+func setManager (eB) = {
632+ let eC = ey(dg)
633+ if ((eC == eC))
632634 then {
633- let eC = fromBase58String(eA)
634- if ((eC == eC))
635- then [StringEntry(R(), eA)]
635+ let eD = fromBase58String(eB)
636+ if ((eD == eD))
637+ then [StringEntry(S(), eB)]
636638 else throw("Strict value is not equal to itself.")
637639 }
638640 else throw("Strict value is not equal to itself.")
639641 }
640642
641643
642644
643-@Callable(df)
645+@Callable(dg)
644646 func confirmManager () = {
645- let eD = ew()
646- let eE = if (isDefined(eD))
647+ let eE = ex()
648+ let eF = if (isDefined(eE))
647649 then true
648650 else throw("No pending manager")
649- if ((eE == eE))
651+ if ((eF == eF))
650652 then {
651- let eF = if ((df.callerPublicKey == value(eD)))
653+ let eG = if ((dg.callerPublicKey == value(eE)))
652654 then true
653655 else throw("You are not pending manager")
654- if ((eF == eF))
655- then [StringEntry(Q(), toBase58String(value(eD))), DeleteEntry(R())]
656+ if ((eG == eG))
657+ then [StringEntry(R(), toBase58String(value(eE))), DeleteEntry(S())]
656658 else throw("Strict value is not equal to itself.")
657659 }
658660 else throw("Strict value is not equal to itself.")
659661 }
660662
661663
662664
663-@Callable(df)
664-func put (ck,eG) = if ((0 > ck))
665+@Callable(dg)
666+func put (cl,eH) = if ((0 > cl))
665667 then throw("Invalid slippageTolerance passed")
666668 else {
667- let dl = di(df, ck, true)
668- let cM = dl._2
669- let bR = dl._7
670- let ci = dl._9
671- let cN = dl._10
672- let cO = dl._11
673- let eH = dl._12
674- let eI = dl._13
675- let do = invoke(aD, "emit", [cM], nil)
676- if ((do == do))
669+ let dm = dj(dg, cl, true)
670+ let cN = dm._2
671+ let bS = dm._7
672+ let cj = dm._9
673+ let cO = dm._10
674+ let cP = dm._11
675+ let eI = dm._12
676+ let eJ = dm._13
677+ let dp = invoke(aE, "emit", [cN], nil)
678+ if ((dp == dp))
677679 then {
678- let dp = {
679- let dq = do
680- if ($isInstanceOf(dq, "Address"))
680+ let dq = {
681+ let dr = dp
682+ if ($isInstanceOf(dr, "Address"))
681683 then {
682- let dr = dq
683- invoke(dr, "emit", [cM], nil)
684+ let ds = dr
685+ invoke(ds, "emit", [cN], nil)
684686 }
685687 else unit
686688 }
687- if ((dp == dp))
689+ if ((dq == dq))
688690 then {
689- let eJ = if ((cN > 0))
690- then invoke(ba, "put", nil, [AttachedPayment(eH, cN)])
691+ let eK = if ((cO > 0))
692+ then invoke(bb, "put", nil, [AttachedPayment(eI, cO)])
691693 else nil
692- if ((eJ == eJ))
694+ if ((eK == eK))
693695 then {
694- let eK = if ((cO > 0))
695- then invoke(ba, "put", nil, [AttachedPayment(eI, cO)])
696+ let eL = if ((cP > 0))
697+ then invoke(bb, "put", nil, [AttachedPayment(eJ, cP)])
696698 else nil
697- if ((eK == eK))
699+ if ((eL == eL))
698700 then {
699- let eL = if (eG)
701+ let eM = if (eH)
700702 then {
701- let eM = invoke(aZ, "stake", nil, [AttachedPayment(bR, cM)])
702- if ((eM == eM))
703+ let eN = invoke(ba, "stake", nil, [AttachedPayment(bS, cN)])
704+ if ((eN == eN))
703705 then nil
704706 else throw("Strict value is not equal to itself.")
705707 }
706- else [ScriptTransfer(df.caller, cM, bR)]
707- (ci ++ eL)
708+ else [ScriptTransfer(dg.caller, cN, bS)]
709+ (cj ++ eM)
708710 }
709711 else throw("Strict value is not equal to itself.")
710712 }
711713 else throw("Strict value is not equal to itself.")
712714 }
713715 else throw("Strict value is not equal to itself.")
714716 }
715717 else throw("Strict value is not equal to itself.")
716718 }
717719
718720
719721
720-@Callable(df)
721-func putForFree (eN) = if ((0 > eN))
722+@Callable(dg)
723+func putForFree (eO) = if ((0 > eO))
722724 then throw("Invalid value passed")
723725 else {
724- let dl = di(df, eN, false)
725- dl._9
726+ let dm = dj(dg, eO, false)
727+ dm._9
726728 }
727729
728730
729731
730-@Callable(df)
731-func putOneTkn (eO,eP) = {
732- let eQ = {
733- let eR = invoke(aD, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
734- if ($isInstanceOf(eR, "Boolean"))
735- then eR
736- else throw(($getType(eR) + " couldn't be cast to Boolean"))
732+@Callable(dg)
733+func putOneTkn (eP,eQ) = {
734+ let eR = {
735+ let eS = invoke(aE, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
736+ if ($isInstanceOf(eS, "Boolean"))
737+ then eS
738+ else throw(($getType(eS) + " couldn't be cast to Boolean"))
737739 }
738- let eS = if (if (if (aF())
740+ let eT = if (if (if (aG())
739741 then true
740- else (aS == l))
742+ else (aT == l))
741743 then true
742- else (aS == n))
744+ else (aT == n))
743745 then true
744- else eQ
745- let ed = [if (!(eS))
746+ else eR
747+ let ee = [if (!(eT))
746748 then true
747- else aB("put operation is blocked by admin"), if ((size(df.payments) == 1))
749+ else aC("put operation is blocked by admin"), if ((size(dg.payments) == 1))
748750 then true
749- else aB("exactly 1 payment are expected")]
750- if ((ed == ed))
751+ else aC("exactly 1 payment are expected")]
752+ if ((ee == ee))
751753 then {
752- let eT = df.payments[0]
753- let dw = eT.assetId
754- let dv = eT.amount
755- let X = df.caller
756- let Y = df.transactionId
757- let eU = du(dv, dw, X, Y)
758- let eV = eU._1
759- let cP = eU._2
760- let dt = eU._3
761- let eW = eU._4
762- let eX = if (if ((eO > 0))
763- then (eO > eV)
754+ let eU = dg.payments[0]
755+ let dx = eU.assetId
756+ let dw = eU.amount
757+ let Y = dg.caller
758+ let Z = dg.transactionId
759+ let eV = dv(dw, dx, Y, Z)
760+ let eW = eV._1
761+ let cQ = eV._2
762+ let du = eV._3
763+ let eX = eV._4
764+ let eY = if (if ((eP > 0))
765+ then (eP > eW)
764766 else false)
765- then aB(makeString(["amount to receive is less than ", toString(eO)], ""))
766- else eV
767- let do = dm(eX)
768- if ((do == do))
767+ then aC(makeString(["amount to receive is less than ", toString(eP)], ""))
768+ else eW
769+ let dp = dn(eY)
770+ if ((dp == dp))
769771 then {
770- let eL = if (eP)
772+ let eM = if (eQ)
771773 then {
772- let eY = invoke(aZ, "stake", nil, [AttachedPayment(aT, eX)])
773- if ((eY == eY))
774+ let eZ = invoke(ba, "stake", nil, [AttachedPayment(aU, eY)])
775+ if ((eZ == eZ))
774776 then nil
775777 else throw("Strict value is not equal to itself.")
776778 }
777- else [ScriptTransfer(df.caller, eX, aT)]
778- let eZ = if ((dt > 0))
779- then [ScriptTransfer(aE, dt, dw)]
779+ else [ScriptTransfer(dg.caller, eY, aU)]
780+ let fa = if ((du > 0))
781+ then [ScriptTransfer(aF, du, dx)]
780782 else nil
781- $Tuple2(((cP ++ eL) ++ eZ), eX)
783+ $Tuple2(((cQ ++ eM) ++ fa), eY)
782784 }
783785 else throw("Strict value is not equal to itself.")
784786 }
785787 else throw("Strict value is not equal to itself.")
786788 }
787789
788790
789791
790-@Callable(df)
791-func putOneTknREADONLY (dw,dv) = {
792- let fa = du(dv, aK(dw), unit, unit)
793- let eV = fa._1
794- let cP = fa._2
795- let dt = fa._3
796- let eW = fa._4
797- $Tuple2(nil, $Tuple3(eV, dt, eW))
792+@Callable(dg)
793+func putOneTknREADONLY (dx,dw) = {
794+ let fb = dv(dw, aL(dx), unit, unit)
795+ let eW = fb._1
796+ let cQ = fb._2
797+ let du = fb._3
798+ let eX = fb._4
799+ $Tuple2(nil, $Tuple3(eW, du, eX))
798800 }
799801
800802
801803
802-@Callable(df)
803-func getOneTkn (fb,eO) = {
804- let eQ = {
805- let eR = invoke(aD, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
806- if ($isInstanceOf(eR, "Boolean"))
807- then eR
808- else throw(($getType(eR) + " couldn't be cast to Boolean"))
804+@Callable(dg)
805+func getOneTkn (fc,eP) = {
806+ let eR = {
807+ let eS = invoke(aE, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
808+ if ($isInstanceOf(eS, "Boolean"))
809+ then eS
810+ else throw(($getType(eS) + " couldn't be cast to Boolean"))
809811 }
810- let fc = if (if (aF())
812+ let fd = if (if (aG())
811813 then true
812- else (aS == n))
814+ else (aT == n))
813815 then true
814- else eQ
815- let ed = [if (!(fc))
816+ else eR
817+ let ee = [if (!(fd))
816818 then true
817- else aB("get operation is blocked by admin"), if ((size(df.payments) == 1))
819+ else aC("get operation is blocked by admin"), if ((size(dg.payments) == 1))
818820 then true
819- else aB("exactly 1 payment are expected")]
820- if ((ed == ed))
821+ else aC("exactly 1 payment are expected")]
822+ if ((ee == ee))
821823 then {
822- let ec = aK(fb)
823- let eT = df.payments[0]
824- let dw = eT.assetId
825- let dK = eT.amount
826- let X = df.caller
827- let Y = df.transactionId
828- let fd = eb(ec, dK, dw, X, Y)
829- let fe = fd._1
830- let cP = fd._2
831- let dt = fd._3
832- let eW = fd._4
833- let dn = if (if ((eO > 0))
834- then (eO > fe)
824+ let ed = aL(fc)
825+ let eU = dg.payments[0]
826+ let dx = eU.assetId
827+ let dL = eU.amount
828+ let Y = dg.caller
829+ let Z = dg.transactionId
830+ let fe = ec(ed, dL, dx, Y, Z)
831+ let ff = fe._1
832+ let cQ = fe._2
833+ let du = fe._3
834+ let eX = fe._4
835+ let do = if (if ((eP > 0))
836+ then (eP > ff)
835837 else false)
836- then aB(makeString(["amount to receive is less than ", toString(eO)], ""))
837- else fe
838- let ff = invoke(aD, "burn", [dK], [AttachedPayment(dw, dK)])
839- if ((ff == ff))
838+ then aC(makeString(["amount to receive is less than ", toString(eP)], ""))
839+ else ff
840+ let fg = invoke(aE, "burn", [dL], [AttachedPayment(dx, dL)])
841+ if ((fg == fg))
840842 then {
841- let fg = [ScriptTransfer(X, dn, ec)]
842- let eZ = if ((dt > 0))
843- then [ScriptTransfer(aE, dt, ec)]
843+ let fh = [ScriptTransfer(Y, do, ed)]
844+ let fa = if ((du > 0))
845+ then [ScriptTransfer(aF, du, ed)]
844846 else nil
845- $Tuple2(((cP ++ fg) ++ eZ), dn)
847+ $Tuple2(((cQ ++ fh) ++ fa), do)
846848 }
847849 else throw("Strict value is not equal to itself.")
848850 }
849851 else throw("Strict value is not equal to itself.")
850852 }
851853
852854
853855
854-@Callable(df)
855-func getOneTknREADONLY (ec,dK) = {
856- let fh = eb(aK(ec), dK, aT, unit, unit)
857- let fe = fh._1
858- let cP = fh._2
859- let dt = fh._3
860- let eW = fh._4
861- $Tuple2(nil, $Tuple3(fe, dt, eW))
856+@Callable(dg)
857+func getOneTknREADONLY (ed,dL) = {
858+ let fi = ec(aL(ed), dL, aU, unit, unit)
859+ let ff = fi._1
860+ let cQ = fi._2
861+ let du = fi._3
862+ let eX = fi._4
863+ $Tuple2(nil, $Tuple3(ff, du, eX))
862864 }
863865
864866
865867
866-@Callable(df)
867-func unstakeAndGetOneTkn (fi,fb,eO) = {
868- let eQ = {
869- let eR = invoke(aD, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
870- if ($isInstanceOf(eR, "Boolean"))
871- then eR
872- else throw(($getType(eR) + " couldn't be cast to Boolean"))
868+@Callable(dg)
869+func unstakeAndGetOneTkn (fj,fc,eP) = {
870+ let eR = {
871+ let eS = invoke(aE, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
872+ if ($isInstanceOf(eS, "Boolean"))
873+ then eS
874+ else throw(($getType(eS) + " couldn't be cast to Boolean"))
873875 }
874- let fc = if (if (aF())
876+ let fd = if (if (aG())
875877 then true
876- else (aS == n))
878+ else (aT == n))
877879 then true
878- else eQ
879- let ed = [if (!(fc))
880+ else eR
881+ let ee = [if (!(fd))
880882 then true
881- else aB("get operation is blocked by admin"), if ((size(df.payments) == 0))
883+ else aC("get operation is blocked by admin"), if ((size(dg.payments) == 0))
882884 then true
883- else aB("no payments are expected")]
884- if ((ed == ed))
885+ else aC("no payments are expected")]
886+ if ((ee == ee))
885887 then {
886- let ec = aK(fb)
887- let X = df.caller
888- let Y = df.transactionId
889- let fj = invoke(aZ, "unstake", [toBase58String(aT), fi], nil)
890- if ((fj == fj))
888+ let ed = aL(fc)
889+ let Y = dg.caller
890+ let Z = dg.transactionId
891+ let fk = invoke(ba, "unstake", [toBase58String(aU), fj], nil)
892+ if ((fk == fk))
891893 then {
892- let fk = eb(ec, fi, aT, X, Y)
893- let fe = fk._1
894- let cP = fk._2
895- let dt = fk._3
896- let eW = fk._4
897- let dn = if (if ((eO > 0))
898- then (eO > fe)
894+ let fl = ec(ed, fj, aU, Y, Z)
895+ let ff = fl._1
896+ let cQ = fl._2
897+ let du = fl._3
898+ let eX = fl._4
899+ let do = if (if ((eP > 0))
900+ then (eP > ff)
899901 else false)
900- then aB(makeString(["amount to receive is less than ", toString(eO)], ""))
901- else fe
902- let ff = invoke(aD, "burn", [fi], [AttachedPayment(aT, fi)])
903- if ((ff == ff))
902+ then aC(makeString(["amount to receive is less than ", toString(eP)], ""))
903+ else ff
904+ let fg = invoke(aE, "burn", [fj], [AttachedPayment(aU, fj)])
905+ if ((fg == fg))
904906 then {
905- let fg = [ScriptTransfer(df.caller, dn, ec)]
906- let eZ = if ((dt > 0))
907- then [ScriptTransfer(aE, dt, ec)]
907+ let fh = [ScriptTransfer(dg.caller, do, ed)]
908+ let fa = if ((du > 0))
909+ then [ScriptTransfer(aF, du, ed)]
908910 else nil
909- $Tuple2(((cP ++ fg) ++ eZ), dn)
911+ $Tuple2(((cQ ++ fh) ++ fa), do)
910912 }
911913 else throw("Strict value is not equal to itself.")
912914 }
913915 else throw("Strict value is not equal to itself.")
914916 }
915917 else throw("Strict value is not equal to itself.")
916918 }
917919
918920
919921
920-@Callable(df)
922+@Callable(dg)
921923 func get () = {
922- let cA = de(df)
923- let fl = cA._1
924- let ch = cA._2
925- let dh = cA._3
926- let bP = cA._4
927- let ci = cA._5
928- let fm = invoke(aD, "burn", [dh], [AttachedPayment(bP, dh)])
929- if ((fm == fm))
930- then ci
924+ let cB = df(dg)
925+ let fm = cB._1
926+ let ci = cB._2
927+ let di = cB._3
928+ let bQ = cB._4
929+ let cj = cB._5
930+ let fn = invoke(aE, "burn", [di], [AttachedPayment(bQ, di)])
931+ if ((fn == fn))
932+ then cj
931933 else throw("Strict value is not equal to itself.")
932934 }
933935
934936
935937
936-@Callable(df)
937-func getNoLess (fn,fo) = {
938- let cA = de(df)
939- let cg = cA._1
940- let ch = cA._2
941- let dh = cA._3
942- let bP = cA._4
943- let ci = cA._5
944- if ((fn > cg))
945- then throw(((("noLessThenAmtAsset failed: " + toString(cg)) + " < ") + toString(fn)))
946- else if ((fo > ch))
947- then throw(((("noLessThenPriceAsset failed: " + toString(ch)) + " < ") + toString(fo)))
938+@Callable(dg)
939+func getNoLess (fo,fp) = {
940+ let cB = df(dg)
941+ let ch = cB._1
942+ let ci = cB._2
943+ let di = cB._3
944+ let bQ = cB._4
945+ let cj = cB._5
946+ if ((fo > ch))
947+ then throw(((("noLessThenAmtAsset failed: " + toString(ch)) + " < ") + toString(fo)))
948+ else if ((fp > ci))
949+ then throw(((("noLessThenPriceAsset failed: " + toString(ci)) + " < ") + toString(fp)))
948950 else {
949- let fm = invoke(aD, "burn", [dh], [AttachedPayment(bP, dh)])
950- if ((fm == fm))
951- then ci
951+ let fn = invoke(aE, "burn", [di], [AttachedPayment(bQ, di)])
952+ if ((fn == fn))
953+ then cj
952954 else throw("Strict value is not equal to itself.")
953955 }
954956 }
955957
956958
957959
958-@Callable(df)
959-func unstakeAndGet (dn) = {
960- let fp = if ((size(df.payments) != 0))
960+@Callable(dg)
961+func unstakeAndGet (do) = {
962+ let fq = if ((size(dg.payments) != 0))
961963 then throw("No payments are expected")
962964 else true
963- if ((fp == fp))
965+ if ((fq == fq))
964966 then {
965- let bE = aH()
966- let bR = fromBase58String(bE[q])
967- let fj = invoke(aZ, "unstake", [toBase58String(bR), dn], nil)
968- if ((fj == fj))
967+ let bF = aI()
968+ let bS = fromBase58String(bF[q])
969+ let fk = invoke(ba, "unstake", [toBase58String(bS), do], nil)
970+ if ((fk == fk))
969971 then {
970- let cA = bN(toBase58String(df.transactionId), toBase58String(bR), dn, df.caller)
971- let bU = parseIntValue(cA._9)
972- let ci = cA._10
973- let fq = if (if (aF())
972+ let cB = bO(toBase58String(dg.transactionId), toBase58String(bS), do, dg.caller)
973+ let bV = parseIntValue(cB._9)
974+ let cj = cB._10
975+ let fr = if (if (aG())
974976 then true
975- else (bU == n))
976- then throw(("Get operation is blocked by admin. Status = " + toString(bU)))
977+ else (bV == n))
978+ then throw(("Get operation is blocked by admin. Status = " + toString(bV)))
977979 else true
978- if ((fq == fq))
980+ if ((fr == fr))
979981 then {
980- let fm = invoke(aD, "burn", [dn], [AttachedPayment(bR, dn)])
981- if ((fm == fm))
982- then ci
982+ let fn = invoke(aE, "burn", [do], [AttachedPayment(bS, do)])
983+ if ((fn == fn))
984+ then cj
983985 else throw("Strict value is not equal to itself.")
984986 }
985987 else throw("Strict value is not equal to itself.")
986988 }
987989 else throw("Strict value is not equal to itself.")
988990 }
989991 else throw("Strict value is not equal to itself.")
990992 }
991993
992994
993995
994-@Callable(df)
995-func unstakeAndGetNoLess (fi,fr,fo) = {
996- let fc = if (aF())
996+@Callable(dg)
997+func unstakeAndGetNoLess (fj,fs,fp) = {
998+ let fd = if (aG())
997999 then true
998- else (aS == n)
999- let ed = [if (!(fc))
1000+ else (aT == n)
1001+ let ee = [if (!(fd))
10001002 then true
1001- else throw("get operation is blocked by admin"), if ((size(df.payments) == 0))
1003+ else throw("get operation is blocked by admin"), if ((size(dg.payments) == 0))
10021004 then true
10031005 else throw("no payments are expected")]
1004- if ((ed == ed))
1006+ if ((ee == ee))
10051007 then {
1006- let fj = invoke(aZ, "unstake", [toBase58String(aT), fi], nil)
1007- if ((fj == fj))
1008+ let fk = invoke(ba, "unstake", [toBase58String(aU), fj], nil)
1009+ if ((fk == fk))
10081010 then {
1009- let cA = bN(toBase58String(df.transactionId), toBase58String(aT), fi, df.caller)
1010- let cg = cA._1
1011- let ch = cA._2
1012- let ci = cA._10
1013- let fs = [if ((cg >= fr))
1011+ let cB = bO(toBase58String(dg.transactionId), toBase58String(aU), fj, dg.caller)
1012+ let ch = cB._1
1013+ let ci = cB._2
1014+ let cj = cB._10
1015+ let ft = [if ((ch >= fs))
10141016 then true
1015- else throw(makeString(["amount asset amount to receive is less than ", toString(fr)], "")), if ((ch >= fo))
1017+ else throw(makeString(["amount asset amount to receive is less than ", toString(fs)], "")), if ((ci >= fp))
10161018 then true
1017- else throw(makeString(["price asset amount to receive is less than ", toString(fo)], ""))]
1018- if ((fs == fs))
1019+ else throw(makeString(["price asset amount to receive is less than ", toString(fp)], ""))]
1020+ if ((ft == ft))
10191021 then {
1020- let fm = invoke(aD, "burn", [fi], [AttachedPayment(aT, fi)])
1021- if ((fm == fm))
1022- then ci
1022+ let fn = invoke(aE, "burn", [fj], [AttachedPayment(aU, fj)])
1023+ if ((fn == fn))
1024+ then cj
10231025 else throw("Strict value is not equal to itself.")
10241026 }
10251027 else throw("Strict value is not equal to itself.")
10261028 }
10271029 else throw("Strict value is not equal to itself.")
10281030 }
10291031 else throw("Strict value is not equal to itself.")
10301032 }
10311033
10321034
10331035
1034-@Callable(df)
1035-func activate (ft,fu) = if ((toString(df.caller) != toString(aD)))
1036+@Callable(dg)
1037+func activate (fu,fv) = if ((toString(dg.caller) != toString(aE)))
10361038 then throw("permissions denied")
1037- else $Tuple2([StringEntry(aa(), ft), StringEntry(ab(), fu)], "success")
1039+ else $Tuple2([StringEntry(ab(), fu), StringEntry(ac(), fv)], "success")
10381040
10391041
10401042
1041-@Callable(df)
1042-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aH())
1043+@Callable(dg)
1044+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aI())
10431045
10441046
10451047
1046-@Callable(df)
1047-func getAccBalanceWrapperREADONLY (br) = $Tuple2(nil, bq(br))
1048+@Callable(dg)
1049+func getAccBalanceWrapperREADONLY (bs) = $Tuple2(nil, br(bs))
10481050
10491051
10501052
1051-@Callable(df)
1052-func calcPricesWrapperREADONLY (by,bz,bD) = {
1053- let bM = bC(by, bz, bD)
1054- $Tuple2(nil, [toString(bM[0]), toString(bM[1]), toString(bM[2])])
1053+@Callable(dg)
1054+func calcPricesWrapperREADONLY (bz,bA,bE) = {
1055+ let bN = bD(bz, bA, bE)
1056+ $Tuple2(nil, [toString(bN[0]), toString(bN[1]), toString(bN[2])])
10551057 }
10561058
10571059
10581060
1059-@Callable(df)
1060-func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
1061+@Callable(dg)
1062+func toX18WrapperREADONLY (F,G) = $Tuple2(nil, toString(E(F, G)))
10611063
10621064
10631065
1064-@Callable(df)
1065-func fromX18WrapperREADONLY (H,I) = $Tuple2(nil, G(parseBigIntValue(H), I))
1066+@Callable(dg)
1067+func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
10661068
10671069
10681070
1069-@Callable(df)
1070-func calcPriceBigIntWrapperREADONLY (bt,bu) = $Tuple2(nil, toString(bs(parseBigIntValue(bt), parseBigIntValue(bu))))
1071+@Callable(dg)
1072+func calcPriceBigIntWrapperREADONLY (bu,bv) = $Tuple2(nil, toString(bt(parseBigIntValue(bu), parseBigIntValue(bv))))
10711073
10721074
10731075
1074-@Callable(df)
1075-func estimatePutOperationWrapperREADONLY (bO,ck,cl,cm,cn,co,X,cp,cq) = $Tuple2(nil, cj(bO, ck, cl, cm, cn, co, X, cp, cq))
1076+@Callable(dg)
1077+func estimatePutOperationWrapperREADONLY (bP,cl,cm,cn,co,cp,Y,cq,cr) = $Tuple2(nil, ck(bP, cl, cm, cn, co, cp, Y, cq, cr))
10761078
10771079
10781080
1079-@Callable(df)
1080-func estimateGetOperationWrapperREADONLY (bO,bP,bQ,X) = {
1081- let cA = bN(bO, bP, bQ, addressFromStringValue(X))
1082- $Tuple2(nil, $Tuple10(cA._1, cA._2, cA._3, cA._4, cA._5, cA._6, cA._7, toString(cA._8), cA._9, cA._10))
1081+@Callable(dg)
1082+func estimateGetOperationWrapperREADONLY (bP,bQ,bR,Y) = {
1083+ let cB = bO(bP, bQ, bR, addressFromStringValue(Y))
1084+ $Tuple2(nil, $Tuple10(cB._1, cB._2, cB._3, cB._4, cB._5, cB._6, cB._7, toString(cB._8), cB._9, cB._10))
10831085 }
10841086
10851087
10861088
1087-@Callable(df)
1089+@Callable(dg)
10881090 func statsREADONLY () = {
1089- let bE = aH()
1090- let bR = fromBase58String(bE[q])
1091- let cS = bE[r]
1092- let cT = bE[s]
1093- let ct = bE[v]
1094- let cu = bE[w]
1095- let bF = parseIntValue(bE[t])
1096- let bG = parseIntValue(bE[u])
1097- let fv = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
1098- let cU = bq(cS)
1099- let cV = bq(cT)
1100- let fw = if ((fv == 0))
1091+ let bF = aI()
1092+ let bS = fromBase58String(bF[q])
1093+ let cT = bF[r]
1094+ let cU = bF[s]
1095+ let cu = bF[v]
1096+ let cv = bF[w]
1097+ let bG = parseIntValue(bF[t])
1098+ let bH = parseIntValue(bF[u])
1099+ let fw = valueOrErrorMessage(assetInfo(bS), (("Asset " + toBase58String(bS)) + " doesn't exist")).quantity
1100+ let cV = br(cT)
1101+ let cW = br(cU)
1102+ let fx = if ((fw == 0))
11011103 then [e, e, e]
1102- else bC(cU, cV, fv)
1103- let cb = 0
1104- let fx = G(fw[1], b)
1105- let fy = G(fw[2], b)
1106- let fz = value(getInteger(aD, ap(toString(this))))
1107- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cU), toString(cV), toString(fv), toString(cb), toString(fx), toString(fy), toString(fz)], j))
1104+ else bD(cV, cW, fw)
1105+ let cc = 0
1106+ let fy = H(fx[1], b)
1107+ let fz = H(fx[2], b)
1108+ let fA = value(getInteger(aE, aq(toString(this))))
1109+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cV), toString(cW), toString(fw), toString(cc), toString(fy), toString(fz), toString(fA)], j))
11081110 }
11091111
11101112
11111113
1112-@Callable(df)
1113-func evaluatePutByAmountAssetREADONLY (cl) = {
1114- let bE = aH()
1115- let bR = fromBase58String(bE[q])
1116- let cr = bE[r]
1117- let bS = fromBase58String(cr)
1118- let cs = bE[s]
1114+@Callable(dg)
1115+func evaluatePutByAmountAssetREADONLY (cm) = {
1116+ let bF = aI()
1117+ let bS = fromBase58String(bF[q])
1118+ let cs = bF[r]
11191119 let bT = fromBase58String(cs)
1120- let bF = parseIntValue(bE[t])
1121- let bG = parseIntValue(bE[u])
1122- let bU = bE[p]
1123- let fv = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
1124- let cU = bq(cr)
1125- let cV = bq(cs)
1126- let bA = D(cU, bF)
1127- let bB = D(cV, bG)
1128- let ca = if ((fv == 0))
1120+ let ct = bF[s]
1121+ let bU = fromBase58String(ct)
1122+ let bG = parseIntValue(bF[t])
1123+ let bH = parseIntValue(bF[u])
1124+ let bV = bF[p]
1125+ let fw = valueOrErrorMessage(assetInfo(bS), (("Asset " + toBase58String(bS)) + " doesn't exist")).quantity
1126+ let cV = br(cs)
1127+ let cW = br(ct)
1128+ let bB = E(cV, bG)
1129+ let bC = E(cW, bH)
1130+ let cb = if ((fw == 0))
11291131 then e
1130- else bs(bB, bA)
1131- let cx = D(cl, bF)
1132- let cy = fraction(cx, ca, d)
1133- let cn = G(cy, bG)
1134- let dl = cj("", 500000, cl, bS, cn, bT, "", true, false)
1135- let cI = dl._1
1136- let fA = dl._3
1137- let bW = dl._4
1138- let bY = dl._5
1139- let bV = dl._6
1140- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cI), toString(G(ca, b)), toString(bW), toString(bY), toString(bV), bU, toString(cl), toString(cn)], j))
1132+ else bt(bC, bB)
1133+ let cy = E(cm, bG)
1134+ let cz = fraction(cy, cb, d)
1135+ let co = H(cz, bH)
1136+ let dm = ck("", 500000, cm, bT, co, bU, "", true, false)
1137+ let cJ = dm._1
1138+ let fB = dm._3
1139+ let bX = dm._4
1140+ let bZ = dm._5
1141+ let bW = dm._6
1142+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cJ), toString(H(cb, b)), toString(bX), toString(bZ), toString(bW), bV, toString(cm), toString(co)], j))
11411143 }
11421144
11431145
11441146
1145-@Callable(df)
1146-func evaluatePutByPriceAssetREADONLY (cn) = {
1147- let bE = aH()
1148- let bR = fromBase58String(bE[q])
1149- let cr = bE[r]
1150- let bS = fromBase58String(cr)
1151- let cs = bE[s]
1147+@Callable(dg)
1148+func evaluatePutByPriceAssetREADONLY (co) = {
1149+ let bF = aI()
1150+ let bS = fromBase58String(bF[q])
1151+ let cs = bF[r]
11521152 let bT = fromBase58String(cs)
1153- let bF = parseIntValue(bE[t])
1154- let bG = parseIntValue(bE[u])
1155- let bU = bE[p]
1156- let fv = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
1157- let fB = bq(cr)
1158- let fC = bq(cs)
1159- let fD = D(fB, bF)
1160- let fE = D(fC, bG)
1161- let ca = if ((fv == 0))
1153+ let ct = bF[s]
1154+ let bU = fromBase58String(ct)
1155+ let bG = parseIntValue(bF[t])
1156+ let bH = parseIntValue(bF[u])
1157+ let bV = bF[p]
1158+ let fw = valueOrErrorMessage(assetInfo(bS), (("Asset " + toBase58String(bS)) + " doesn't exist")).quantity
1159+ let fC = br(cs)
1160+ let fD = br(ct)
1161+ let fE = E(fC, bG)
1162+ let fF = E(fD, bH)
1163+ let cb = if ((fw == 0))
11621164 then e
1163- else bs(fE, fD)
1164- let cy = D(cn, bG)
1165- let cx = fraction(cy, d, ca)
1166- let cl = G(cx, bF)
1167- let dl = cj("", 500000, cl, bS, cn, bT, "", true, false)
1168- let cI = dl._1
1169- let fA = dl._3
1170- let bW = dl._4
1171- let bY = dl._5
1172- let bV = dl._6
1173- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cI), toString(G(ca, b)), toString(bW), toString(bY), toString(bV), bU, toString(cl), toString(cn)], j))
1165+ else bt(fF, fE)
1166+ let cz = E(co, bH)
1167+ let cy = fraction(cz, d, cb)
1168+ let cm = H(cy, bG)
1169+ let dm = ck("", 500000, cm, bT, co, bU, "", true, false)
1170+ let cJ = dm._1
1171+ let fB = dm._3
1172+ let bX = dm._4
1173+ let bZ = dm._5
1174+ let bW = dm._6
1175+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cJ), toString(H(cb, b)), toString(bX), toString(bZ), toString(bW), bV, toString(cm), toString(co)], j))
11741176 }
11751177
11761178
11771179
1178-@Callable(df)
1179-func evaluateGetREADONLY (fF,fG) = {
1180- let cA = bN("", fF, fG, this)
1181- let cg = cA._1
1182- let ch = cA._2
1183- let bW = cA._5
1184- let bY = cA._6
1185- let bV = cA._7
1186- let cb = cA._8
1187- let bU = parseIntValue(cA._9)
1188- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cg), toString(ch), toString(bW), toString(bY), toString(bV), toString(cb), toString(bU)], j))
1180+@Callable(dg)
1181+func evaluateGetREADONLY (fG,fH) = {
1182+ let cB = bO("", fG, fH, this)
1183+ let ch = cB._1
1184+ let ci = cB._2
1185+ let bX = cB._5
1186+ let bZ = cB._6
1187+ let bW = cB._7
1188+ let cc = cB._8
1189+ let bV = parseIntValue(cB._9)
1190+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(ch), toString(ci), toString(bX), toString(bZ), toString(bW), toString(cc), toString(bV)], j))
11891191 }
11901192
11911193
1192-@Verifier(fH)
1193-func fI () = {
1194- let fJ = {
1195- let dq = eu()
1196- if ($isInstanceOf(dq, "ByteVector"))
1194+@Verifier(fI)
1195+func fJ () = {
1196+ let fK = {
1197+ let dr = ev()
1198+ if ($isInstanceOf(dr, "ByteVector"))
11971199 then {
1198- let ez = dq
1199- ez
1200+ let eA = dr
1201+ eA
12001202 }
1201- else if ($isInstanceOf(dq, "Unit"))
1202- then fH.senderPublicKey
1203+ else if ($isInstanceOf(dr, "Unit"))
1204+ then fI.senderPublicKey
12031205 else throw("Match error")
12041206 }
1205- let dq = fH
1206- if ($isInstanceOf(dq, "Order"))
1207+ let dr = fI
1208+ if ($isInstanceOf(dr, "Order"))
12071209 then {
1208- let cR = dq
1209- let fK = aG()
1210- let au = cQ(cR)
1211- let av = sigVerify(cR.bodyBytes, cR.proofs[0], cR.senderPublicKey)
1212- let aw = sigVerify(cR.bodyBytes, cR.proofs[1], fK)
1213- if (if (if (au)
1214- then av
1215- else false)
1210+ let cS = dr
1211+ let fL = aH()
1212+ let av = cR(cS)
1213+ let aw = sigVerify(cS.bodyBytes, cS.proofs[0], cS.senderPublicKey)
1214+ let ax = sigVerify(cS.bodyBytes, cS.proofs[1], fL)
1215+ if (if (if (av)
12161216 then aw
12171217 else false)
1218+ then ax
1219+ else false)
12181220 then true
1219- else at(au, av, aw)
1221+ else au(av, aw, ax)
12201222 }
1221- else if ($isInstanceOf(dq, "SetScriptTransaction"))
1223+ else if ($isInstanceOf(dr, "SetScriptTransaction"))
12221224 then {
1223- let ev = dq
1224- let fL = blake2b256(value(ev.script))
1225- let fM = fromBase64String(value(getString(aD, ar())))
1226- let fN = scriptHash(this)
1227- if (if ((fM == fL))
1228- then (fN != fL)
1225+ let ew = dr
1226+ let fM = blake2b256(value(ew.script))
1227+ let fN = fromBase64String(value(getString(aE, as())))
1228+ let fO = scriptHash(this)
1229+ if (if ((fN == fM))
1230+ then (fO != fM)
12291231 else false)
12301232 then true
1231- else sigVerify(fH.bodyBytes, fH.proofs[0], fJ)
1233+ else sigVerify(fI.bodyBytes, fI.proofs[0], fK)
12321234 }
1233- else sigVerify(fH.bodyBytes, fH.proofs[0], fJ)
1235+ else sigVerify(fI.bodyBytes, fI.proofs[0], fK)
12341236 }
12351237

github/deemru/w8io/026f985 
414.23 ms