tx · 37DqwX9n5E8Z3eewpmJjkKLRag6cPQPiogiFf2t3sWaF

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.02700000 Waves

2023.06.19 10:15 [2629197] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "37DqwX9n5E8Z3eewpmJjkKLRag6cPQPiogiFf2t3sWaF", "fee": 2700000, "feeAssetId": null, "timestamp": 1687158962867, "version": 2, "chainId": 84, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "493idR96M36rGuyv7G8AZhEJGv8yoxCHsuUWmJdX5RaczfcS6p64iR9u8xWNYs22BuKnobqrgSRRhUYCgWGRQSB3" ], "script": "base64:BgL4KwgCEgASBAoCCAgSBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEYEgoKCAgICAgIAQgIEgQKAggBEgMKAQESAwoBARIECgIIARIGCgQICAgIEgQKAggIEgQKAggIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgMKAQgSBAoCCAgSAwoBCBIDCgEIEgMKAQgSBAoCCAgSAwoBCBIDCgEIEgMKAQgSAwoBCCIGU0NBTEU4IgVNVUxUOCIGTVVMVDEyIgdTQ0FMRTE4IgZNVUxUMTgiDlBPT0xXRUlHSFRNVUxUIg5HV1h2aXJ0dWFsUE9PTCIMbGFiZWxQb29sc0xwIg1kZWZhdWx0U3ByZWFkIgt3YXZlc1N0cmluZyIQY29udHJhY3RGaWxlbmFtZSIRZGVjaW1hbHNNdWx0UHJpY2UiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIhJpZHhJbnRlcm5hbEFzc2V0SWQiD2lkeFJlc3V0QWN0aW9ucyIgaWR4SWZBc3NldElkQ2FsY3VsYXRpb25QZXJmb3JtZWQiDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSILaWR4UG9vbFR5cGUiE3Bvb2xMYWJlbFd4RW1pc3Npb24iD3ZhbGlkUG9vbExhYmVscyIHd3JhcEVyciIDbXNnIgh0aHJvd0VyciIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIMc3dhcENvbnRyYWN0IhBrZXlGYWN0b3J5Q29uZmlnIg9rZXlMcFRva2Vuc0xpc3QiEWtleVBvb2xTY3JpcHRIYXNoIg1rZXlNYXRjaGVyUHViIhhrZXlMZWdhY3lGYWN0b3J5Q29udHJhY3QiDmtleUxlZ2FjeVBvb2xzIhNrZXlNYW5hZ2VyUHVibGljS2V5IhZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzIg9rZXlBZG1pblB1YktleXMiFmtleUFzc2V0c1N0b3JlQ29udHJhY3QiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiFGtleVVzZXJQb29sc0NvbnRyYWN0Ig5rZXlQcmljZUFzc2V0cyIQa2V5UHJpY2VEZWNpbWFscyITa2V5QWxsUG9vbHNTaHV0ZG93biIWa2V5TmV4dEludGVybmFsQXNzZXRJZCIPa2V5UG9vbFRvV2VpZ2h0Igtwb29sQWRkcmVzcyIWa2V5UG9vbFRvV2VpZ2h0SGlzdG9yeSIDbnVtIh9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkIhFpbnRlcm5hbEJhc2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIg1rZXlQb29sQ29uZmlnIhNhbW91bnRBc3NldEludGVybmFsIhJwcmljZUFzc2V0SW50ZXJuYWwiIWtleVBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIOYXNzZXRzSW50ZXJuYWwiCyR0MDM4NzgzOTQwIiVrZXlBbGxQb29sc09uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIh1rZXlNYXBwaW5nTHBBc3NldFRvUG9vbEFzc2V0cyIKbHBBc3NldFN0ciIda2V5TWFwcGluZ1Bvb2xBc3NldHNUb0xwYXNzZXQiGGludGVybmFsQW1vdW50QXNzZXRJZFN0ciIXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHIiDWtleVBvb2xTcHJlYWQiKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzIhNwb29sQ29udHJhY3RBZGRyZXNzIilrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcyIfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldCIqa2V5TWFwcGluZ1Bvb2xMUEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzIg1rZXlXeEVtaXNzaW9uIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiCGtleUluRmVlIg9rZXlJbkZlZURlZmF1bHQiCWtleU91dEZlZSIQa2V5T3V0RmVlRGVmYXVsdCIWa2V5U2tpcE9yZGVyVmFsaWRhdGlvbiIRa2V5Q2hhbmdlQW1wRGVsYXkiEWtleUNoYW5nZUFtcERlbHRhIhJrZXlDaGFuZ2VBbXBUYXJnZXQiFWtleVNXYXZlc1Byb3h5QWRkcmVzcyIQa2V5U1dhdmVzQXNzZXRJZCIXa2V5U3Rha2luZ1Byb2ZpdEFkZHJlc3MiDmtleUxlYXNlZFJhdGlvIgdhc3NldElkIhVrZXlMZWFzZWRSYXRpb0RlZmF1bHQiF2tleUxlYXNlZFJhdGlvVG9sZXJhbmNlIg1rZXlNaW5CYWxhbmNlIhRrZXlNaW5CYWxhbmNlRGVmYXVsdCIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiEGdldEJvb2xlYW5PckZhaWwiDGdldEludE9yRmFpbCIMcGFyc2VBc3NldElkIgVpbnB1dCIcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcyIHJG1hdGNoMCIBcyIYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwIhlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwIhRJZHhGYWN0b3J5Q2ZnSWRvRGFwcCIVSWR4RmFjdG9yeUNmZ1RlYW1EYXBwIhlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwIhVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAiGUlkeEZhY3RvcnlDZmdTbGlwcGFnZURhcHAiFElkeEZhY3RvcnlDZmdEYW9EYXBwIhpJZHhGYWN0b3J5Q2ZnTWFya2V0aW5nRGFwcCIaSWR4RmFjdG9yeUNmZ0d3eFJld2FyZERhcHAiFklkeEZhY3RvcnlDZmdCaXJkc0RhcHAiGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsIhdnZXRTdGFraW5nQWRkcmVzc09yRmFpbCIZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbCIOZ2V0UHJpY2VBc3NldHMiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiE21hbmFnZXJWYXVsdEFkZHJlc3MiFXBlcm1pc3Npb25EZW5pZWRFcnJvciIJdGVzdEVycm9yIghtdXN0VGhpcyIBaSILbXVzdE1hbmFnZXIiAnBrIhBkYXRhRmFjdG9yeUNmZ1YzIg5zdGFraW5nQWRkcmVzcyIPYm9vc3RpbmdBZGRyZXNzIgtpZG9Db250cmFjdCIMdGVhbUNvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0IgxyZXN0Q29udHJhY3QiEHNsaXBwYWdlQ29udHJhY3QiC2Rhb0NvbnRyYWN0IhFtYXJrZXRpbmdDb250cmFjdCISZ3d4UmV3YXJkc0NvbnRyYWN0Ig1iaXJkc0NvbnRyYWN0Ig5kYXRhRmFjdG9yeUNmZyILZGF0YVBvb2xDZmciCnBvb2xTdGF0dXMiCWxwQXNzZXRJZCIOYW1vdW50QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiE2Ftb3VudEFzc2V0RGVjaW1hbHMiEnByaWNlQXNzZXREZWNpbWFscyIVYW1vdW50QXNzZXRJbnRlcm5hbElkIhRwcmljZUFzc2V0SW50ZXJuYWxJZCIPbHBBc3NldERlY2ltYWxzIghwb29sVHlwZSIVZGF0YU1hcHBpbmdQb29sQXNzZXRzIhZpbnRlcm5hbEFtb3VudEFzc2V0U3RyIhVpbnRlcm5hbFByaWNlQXNzZXRTdHIiDWdldFBvb2xDb25maWciCnBvb2xBc3NldHMiGmdldEludGVybmFsQXNzZXRJZE9yQ3JlYXRlIgphc3NldElkU3RyIgtpbmNyZW1lbnRvciIPaW50ZXJuYWxBc3NldElkIhhjdXJyZW50SW5kZXhPZkludGVybmFsSWQiBnJlc3VsdCISbmV3SW50ZXJuYWxBc3NldElkIgltdXN0QWRtaW4iCGFkbWluUEtzIglpc01hbmFnZXIiFmludE9yRGVmYXVsdE9yRmFsbGJhY2siCmtleURlZmF1bHQiDXZhbHVlRmFsbGJhY2siEnBvb2xFeGlzdHNJbnRlcm5hbCIEYW1BcyIEcHJBcyIDY2ZnIgpjZmdSZXZlcnNlIgZleGlzdHMiDSR0MDE0NTMwMTQ4MzQiAXIiByRtYXRjaDEiAnJkIgppc0xlYXNhYmxlIgtsZWFzZWRSYXRpbyIKbWluQmFsYW5jZSIBYiICYmQiDSR0MDE1MTAwMTUzMjQiDHByb3h5QWRkcmVzcyIMcHJveHlBc3NldElkIgxwcm94eVJhdGVNdWwiFHN0YWtpbmdQcm9maXRBZGRyZXNzIgZhc3NldDEiBmFzc2V0MiIJYXNzZXROdW0xIglhc3NldE51bTIiAmVlIgNyZXMiAmxwIg9zdGFraW5nQ29udHJhY3QiEGJvb3N0aW5nQ29udHJhY3QiEHNscGlwYWdlQ29udHJhY3QiDXByaWNlRGVjaW1hbHMiC2NoZWNrQ2FsbGVyIhBtYXRoY2hlclB1YjU4U3RyIgptYXRoY2VyUHViIhVsZWdhY3lGYWN0b3J5Q29udHJhY3QiC2xlZ2FjeVBvb2xzIhNhc3NldHNTdG9yZUNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0IgtwcmljZUFzc2V0cyIFY2hla3MiDGFkbWluUHViS2V5cyILbHBBc3NldE5hbWUiDGxwQXNzZXREZXNjciIKcG9vbFdlaWdodCIEbG9nbyIXaW50ZXJuYWxBbW91bnRBc3NldERhdGEiFWludGVybmFsQW1vdW50QXNzZXRJZCIWaW50ZXJuYWxQcmljZUFzc2V0RGF0YSIUaW50ZXJuYWxQcmljZUFzc2V0SWQiFXBvb2xBY2NvdW50U2NyaXB0SGFzaCIcZXRoYWxvblBvb2xBY2NvdW50U2NyaXB0SGFzaCIKcG9vbEV4aXN0cyIPcG9vbENvbmZpZ1ZhbHVlIhRhbW91bnRBc3NldHNEZWNpbWFscyITcHJpY2VBc3NldHNEZWNpbWFscyISbHBBc3NldElzc3VlQWN0aW9uIgxscEFzc2V0SWRTdHIiGHBvb2xBY3RpdmF0ZUludm9rZVJlc3VsdCIYY3JlYXRlT3JVcGRhdGVMcEFzc2V0SW52IhJhZGRQb29sc0xwTGFiZWxJbnYiCnNldExvZ29JbnYiEGFkZEFzc2V0c0xpbmtJbnYiG2luY3JlYXNlQXNzZXRQb29sc051bWJlckludiIJbmV3U3RhdHVzIgpwb29sQ29uZmlnIgpscEFzc2V0RGNtIgxhbW91bnRUb0VtaXQiBmNhbGxlciIMb3JpZ2luQ2FsbGVyIhBscEFzc2V0UmVxdWVzdGVkIgdscEFzc2V0IgxhbW91bnRUb0J1cm4iB3BheW1lbnQiDXBheW1lbnRBbW91bnQiD2luQW1vdW50QXNzZXRJZCIabHBBc3NldFJlcXVlc3RlZEZvckJ1cm5pbmciBXNoYXJlIg1wb29sV2VpZ2h0S2V5Igxnd3hXZWlnaHRLZXkiCWd3eFdlaWdodCINcG9vbFdlaWdodE5ldyIRb25Nb2RpZnlXZWlnaHRJbnYiFWd3eFZpcnR1YWxQb29sQWN0aW9ucyIUcG9vbFdlaWdodEhpc3RvcnlLZXkiF3Bvb2xXZWlnaHRIaXN0b3J5T3JVbml0Ihhwb29sV2VpZ2h0SGlzdG9yeUFjdGlvbnMiDmJ0Y1Bvb2xBZGRyZXNzIg5ldGhQb29sQWRkcmVzcyIRZXRoQnRjUG9vbEFkZHJlc3MiE3VzZGNVc2R0UG9vbEFkZHJlc3MiD2V0aEJ0Y1dlaWdodE5ldyIRdXNkY1VzZHRXZWlnaHROZXciD3dlaWdodERlY3JlbWVudCILc3Rha2luZ0RhcHAiDWd3eFJld2FyZERhcHAiDGJ0Y1dlaWdodEtFWSIMZXRoV2VpZ2h0S0VZIg9ldGhCdGNXZWlnaHRLRVkiEXVzZGNVc2R0V2VpZ2h0S0VZIglidGNXZWlnaHQiCWV0aFdlaWdodCIMYnRjV2VpZ2h0TmV3IgxldGhXZWlnaHROZXciD2J0Y0xwQXNzZXRJZFN0ciIPZXRoTHBBc3NldElkU3RyIhJldGhCdGNMcEFzc2V0SWRTdHIiFHVzZGNVc2R0THBBc3NldElkU3RyIhFvbk1vZGlmeVdlaWdodEJ0YyIRb25Nb2RpZnlXZWlnaHRFdGgiFG9uTW9kaWZ5V2VpZ2h0RXRoQnRjIhZvbk1vZGlmeVdlaWdodFVzZGNVc2R0IgloYXZlTGFiZWwiFGNoZWNrUHJpY2VBc3NldHNTaXplIgJjYiIDYWNjIgpwcmljZUFzc2V0IgdhY3Rpb25zIgIkbCICJHMiBSRhY2MwIgUkZjBfMSICJGEiAiRpIgUkZjBfMiIecG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIiJhbGxQb29sc09uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIgNmZWUiEGFtb3VudEFzc2V0SWRTdHIiD3ByaWNlQXNzZXRJZFN0ciIbYW1vdW50QXNzZXRJbnRlcm5hbElkT3B0aW9uIhpwcmljZUFzc2V0SW50ZXJuYWxJZE9wdGlvbiIZcG9vbENvbnRyYWN0QWRkcmVzc09wdGlvbiIPbHBBc3NldElkT3B0aW9uIghwb29sSW5mbyIFZGVsYXkiBWRlbHRhIgZ0YXJnZXQiBndlaWdodCILY2hlY2tXZWlnaHQiEXVzZXJQb29sc0NvbnRyYWN0Ig91c2VyUG9vbHNJbnZva2UiFHZvdGluZ0VtaXNzaW9uSW52b2tlIhFhc3NldHNTdG9yZUludm9rZSICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5eQABYQAIAAFiAIDC1y8AAWMAgKCUpY0dAAFkABIAAWUJALYCAQCAgJC7utat8A0AAWYFAWIAAWcCDkdXWHZpcnR1YWxQT09MAAFoAghQT09MU19MUAABaQCAiXoAAWoCBVdBVkVTAAFrAg9mYWN0b3J5X3YyLnJpZGUAAWwJAGgCCQBoAgBkAOgHAOgHAAFtAgJfXwABbgIAAAFvAAEAAXAAAgABcQADAAFyAAQAAXMAAQABdAACAAF1AAMAAXYAAQABdwACAAF4AAMAAXkABAABegAFAAFBAAYAAUIABwABQwAIAAFEAAkAAUUACgABRgALAAFHAgtXWF9FTUlTU0lPTgABSAkAzAgCBQFHBQNuaWwBAUkBAUoJALkJAgkAzAgCBQFrCQDMCAICAjogCQDMCAIFAUoFA25pbAIAAQFLAQFKCQACAQkBAUkBBQFKAQFMAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gBAU0AAh0lc19fYWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAEBTgACECVzX19zd2FwQ29udHJhY3QBAU8AAhElc19fZmFjdG9yeUNvbmZpZwEBUAACECVzX19scFRva2Vuc0xpc3QBAVEAAhYlcyVzX19wb29sX19zY3JpcHRIYXNoAQFSAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQFTAAIZJXNfX2xlZ2FjeUZhY3RvcnlDb250cmFjdAEBVAACDyVzX19sZWdhY3lQb29scwEBVQACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFWAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBAVcAAhAlc19fYWRtaW5QdWJLZXlzAQFYAAIXJXNfX2Fzc2V0c1N0b3JlQ29udHJhY3QBAVkAAholc19fdm90aW5nRW1pc3Npb25Db250cmFjdAEBWgACFSVzX191c2VyUG9vbHNDb250cmFjdAECYWEACQC5CQIJAMwIAgICJXMJAMwIAgILcHJpY2VBc3NldHMFA25pbAUBbQECYWIAAhElc19fcHJpY2VEZWNpbWFscwECYWMAAgwlc19fc2h1dGRvd24BAmFkAAIXJXNfX25leHRJbnRlcm5hbEFzc2V0SWQBAmFlAQJhZgkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFmAQJhZwICYWYCYWgJAKwCAgkArAICCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYWYCAl9fCQCkAwEFAmFoAQJhaQECYWoJAKwCAgIoJXMlcyVkX19tYXBwaW5nc19faW50ZXJuYWwyYmFzZUFzc2V0SWRfXwkApAMBBQJhagECYWsBAmFsCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFsAQJhbQICYW4CYW8JAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFuAgJfXwUCYW8CCF9fY29uZmlnAQJhcAECYXEEAmFyBQJhcQQCYW4IBQJhcgJfMQQCYW8IBQJhcgJfMgkAuQkCCQDMCAICBiVkJWQlcwkAzAgCCQCkAwEFAmFuCQDMCAIJAKQDAQUCYW8JAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBbQECYXMACQC5CQIJAMwIAgICJXMJAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBbQECYXQBAmF1CQCsAgIJAKwCAgIIJXMlcyVzX18FAmF1AhhfX21hcHBpbmdzX19scEFzc2V0MlBvb2wBAmF2AgJhdwJheAkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fBQJhdwICX18FAmF4Ah5fX21hcHBpbmdzX19Qb29sQXNzZXRzMkxwQXNzZXQBAmF5AQJhZgkArAICAg4lcyVzX19zcHJlYWRfXwUCYWYBAmF6AQJhQQkArAICCQCsAgICCCVzJXMlc19fBQJhQQIjX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MlBvb2xBc3NldHMBAmFCAgJhdwJheAkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fCQCkAwEFAmF3AgJfXwkApAMBBQJheAIjX19tYXBwaW5nc19fcG9vbEFzc2V0czJQb29sQ29udHJhY3QBAmFDAQJhQQkArAICCQCsAgICCCVzJXMlc19fBQJhQQIgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAmFEAQJhdQkArAICCQCsAgICCCVzJXMlc19fBQJhdQIgX19tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QBAmFFAgJhRgJhRwkArAICCQCsAgIJAKwCAgIUJXMlcyVzX193eEVtaXNzaW9uX18FAmFGAgJfXwUCYUcBAmFIAQJhZgkArAICAg0lcyVzX19pbkZlZV9fBQJhZgECYUkAAhAlc19faW5GZWVEZWZhdWx0AQJhSgECYWYJAKwCAgIOJXMlc19fb3V0RmVlX18FAmFmAQJhSwACESVzX19vdXRGZWVEZWZhdWx0AQJhTAECYWYJAKwCAgIbJXMlc19fc2tpcE9yZGVyVmFsaWRhdGlvbl9fBQJhZgECYU0BAmFmCQCsAgICFiVzJXNfX2NoYW5nZUFtcERlbGF5X18FAmFmAQJhTgECYWYJAKwCAgIWJXMlc19fY2hhbmdlQW1wRGVsdGFfXwUCYWYBAmFPAQJhZgkArAICAhclcyVzX19jaGFuZ2VBbXBUYXJnZXRfXwUCYWYBAmFQAAIWJXNfX3NXYXZlc1Byb3h5QWRkcmVzcwECYVEAAhElc19fc1dhdmVzQXNzZXRJZAECYVIAAhglc19fc3Rha2luZ1Byb2ZpdEFkZHJlc3MBAmFTAgJhZgJhVAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgtsZWFzZWRSYXRpbwkAzAgCBQJhZgkAzAgCBQJhVAUDbmlsBQFtAQJhVQECYVQJALkJAgkAzAgCAgQlcyVzCQDMCAICEmxlYXNlZFJhdGlvRGVmYXVsdAkAzAgCBQJhVAUDbmlsBQFtAQJhVgICYWYCYVQJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIUbGVhc2VkUmF0aW9Ub2xlcmFuY2UJAMwIAgUCYWYJAMwIAgUCYVQFA25pbAUBbQECYVcCAmFmAmFUCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCm1pbkJhbGFuY2UJAMwIAgUCYWYJAMwIAgUCYVQFA25pbAUBbQECYVgBAmFUCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhFtaW5CYWxhbmNlRGVmYXVsdAkAzAgCBQJhVAUDbmlsBQFtAQJhWQECYVoJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQJhWgkArAICAhVObyBkYXRhIGZvciB0aGlzLmtleT0FAmFaAQJiYQECYVoJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmwgCBQR0aGlzBQJhWgkArAICAhVObyBkYXRhIGZvciB0aGlzLmtleT0FAmFaAQJiYgECYVoJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzBQJhWgkArAICAhVObyBkYXRhIGZvciB0aGlzLmtleT0FAmFaAQJiYwECYmQDCQAAAgUCYmQFAWoFBHVuaXQJANkEAQUCYmQBAmJlAAQCYmYJAKIIAQkBAVYAAwkAAQIFAmJmAgZTdHJpbmcEAmJnBQJiZgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYmcFBHRoaXMAAmJoAAEAAmJpAAIAAmJqAAMAAmJrAAQAAmJsAAUAAmJtAAYAAmJuAAcAAmJvAAgAAmJwAAkAAmJxAAoAAmJyAAsBAmJzAQJidAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJidAUCYmkBAmJ1AQJidAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJidAUCYmwBAmJ2AQJidAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJidAUCYmgBAmJ3AQJidAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJidAUCYnEBAmJ4AAQCYmYJAKIIAQkBAmFhAAMJAAECBQJiZgIGU3RyaW5nBAJiZwUCYmYDCQAAAgkAsQIBBQJiZwAABQNuaWwJALUJAgUCYmcFAW0FA25pbAECYnkABAJiegkBAmJlAAQCYmYJAJ0IAgUCYnoJAQFVAAMJAAECBQJiZgIGU3RyaW5nBAJiZwUCYmYJANkEAQUCYmcDCQABAgUCYmYCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgACYkEJAQFLAQIRUGVybWlzc2lvbiBkZW5pZWQAAmJCCQEBSwECD1Rlc3QgZXJyb3IgaGVyZQECYkMBAmJEAwkAAAIIBQJiRAZjYWxsZXIFBHRoaXMGBQJiQQECYkUBAmJEBAJiZgkBAmJ5AAMJAAECBQJiZgIKQnl0ZVZlY3RvcgQCYkYFAmJmAwkAAAIIBQJiRA9jYWxsZXJQdWJsaWNLZXkFAmJGBgUCYkEDCQABAgUCYmYCBFVuaXQJAQJiQwEFAmJECQACAQILTWF0Y2ggZXJyb3IBAmJHCwJiSAJiSQJiSgJiSwJiTAJiTQJiTgJiTwJiUAJiUQJiUgkAuQkCCQDMCAICFiVzJXMlcyVzJXMlcyVzJXMlcyVzJXMJAMwIAgUCYkgJAMwIAgUCYkkJAMwIAgUCYkoJAMwIAgUCYksJAMwIAgUCYkwJAMwIAgUCYk0JAMwIAgUCYk4JAMwIAgUCYk8JAMwIAgUCYlAJAMwIAgUCYlEJAMwIAgUCYlIFA25pbAUBbQECYlMHAmJIAmJJAmJKAmJLAmJMAmJNAmJOCQC5CQIJAMwIAgIMJXMlcyVzJXMlcyVzCQDMCAIFAmJICQDMCAIFAmJJCQDMCAIFAmJKCQDMCAIFAmJLCQDMCAIFAmJMCQDMCAIFAmJNCQDMCAIFAmJOBQNuaWwFAW0BAmJUCwJhZgJiVQJiVgJiVwJiWAJiWQJiWgJjYQJjYgJjYwJjZAkAuQkCCQDMCAICFiVzJWQlcyVzJXMlZCVkJWQlZCVkJXMJAMwIAgUCYWYJAMwIAgUCYlUJAMwIAgUCYlYJAMwIAgUCYlcJAMwIAgUCYlgJAMwIAgkApAMBBQJiWQkAzAgCCQCkAwEFAmJaCQDMCAIJAKQDAQUCY2EJAMwIAgkApAMBBQJjYgkAzAgCCQCkAwEFAmNjCQDMCAIFAmNkBQNuaWwFAW0BAmNlAgJjZgJjZwkAuQkCCQDMCAICBCVkJWQJAMwIAgkApAMBBQJjZgkAzAgCCQCkAwEFAmNnBQNuaWwFAW0BAmNoAQJhZgQCY2kJALUJAgkBAmFZAQkBAmF6AQUCYWYFAW0EAmFuCQCRAwIFAmNpAAEEAmFvCQCRAwIFAmNpAAIJALUJAgkBAmFZAQkBAmFtAgUCYW4FAmFvBQFtAQJjagICY2sCY2wEAmNtCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhawEFAmNrAAAEAmNuCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhZAAAAAQCY28DCQAAAgUCY20AAAQCY3AJAGQCBQJjbgUCY2wJAJUKAwUCY3AJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZAAFAmNwCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWsBBQJjawUCY3AJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFpAQUCY3AFAmNrBQNuaWwGCQCVCgMFAmNtBQNuaWwHBQJjbwECY3EBAmJEBAJjcgkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEJAQFXAAUBbgUBbQMJAQ9jb250YWluc0VsZW1lbnQCBQJjcgkA2AQBCAUCYkQPY2FsbGVyUHVibGljS2V5BgQCY3MJAQJiRQEFAmJEAwkAAAIFAmNzBQJjcwYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmN0AwJhWgJjdQJjdgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhWgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJjdQUCY3YBAmN3AgJhRgJhRwQCYW4JAJ8IAQkBAmFrAQUCYUYEAmFvCQCfCAEJAQJhawEFAmFHAwMJAAACBQJhbgUEdW5pdAYJAAACBQJhbwUEdW5pdAcEAmN4CQCkAwEJAQV2YWx1ZQEFAmFuBAJjeQkApAMBCQEFdmFsdWUBBQJhbwQCY3oJAKIIAQkBAmFtAgUCY3gFAmN5BAJjQQkAoggBCQECYW0CBQJjeQUCY3gEAmNCAwkBAiE9AgUCY3oFBHVuaXQGCQECIT0CBQJjQQUEdW5pdAUCY0IhAmJEARdnZXRTd2FwQ29udHJhY3RSRUFET05MWQAJAJQKAgUDbmlsCQECYVkBCQEBTgACYkQBGmdldFBvb2xMZWFzZUNvbmZpZ1JFQURPTkxZAgJhZgJhVAQCY0MEAmJmCQCaCAIFBHRoaXMJAQJhUwIFAmFmBQJhVAMJAAECBQJiZgIDSW50BAJjRAUCYmYJAJQKAgYJAJcDAQkAzAgCAGQJAMwIAgkAlgMBCQDMCAIAAAkAzAgCBQJjRAUDbmlsBQNuaWwEAmNFCQCaCAIFBHRoaXMJAQJhVQEFAmFUAwkAAQIFAmNFAgNJbnQEAmNGBQJjRQkAlAoCBgkAlwMBCQDMCAIAZAkAzAgCCQCWAwEJAMwIAgAACQDMCAIFAmNGBQNuaWwFA25pbAkAlAoCBwAABAJjRwgFAmNDAl8xBAJjSAgFAmNDAl8yBAJjSQQCYmYJAJoIAgUEdGhpcwkBAmFXAgUCYWYFAmFUAwkAAQIFAmJmAgNJbnQEAmNKBQJiZgkAlgMBCQDMCAIAAAkAzAgCBQJjSgUDbmlsBAJjRQkAmggCBQR0aGlzCQECYVgBBQJhVAMJAAECBQJjRQIDSW50BAJjSwUCY0UJAJYDAQkAzAgCAAAJAMwIAgUCY0sFA25pbAAABAJjTAMJAAACBQJhVAIFV0FWRVMJAJUKAwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYVAAAgAJAJ0IAgUEdGhpcwkBC3ZhbHVlT3JFbHNlAgkBAmFRAAIABQFjCQCVCgMCAAIAAAAEAmNNCAUCY0wCXzEEAmNOCAUCY0wCXzIEAmNPCAUCY0wCXzMEAmNQCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQJhUgACAAkAlAoCBQNuaWwJAJkKBwUCY0cFAmNIBQJjSQUCY00FAmNOBQJjTwUCY1ACYkQBIGdldExwQXNzZXRGcm9tUG9vbEFzc2V0c1JFQURPTkxZAgJjUQJjUgMDCQAAAgUCY1ECLDhMUVc4ZjdQNWQ1UFpNN0d0WkVCZ2FxUlBHU3pTM0RmUHVpWHJVUko0QUpTCQAAAgUCY1ICBVdBVkVTBwkAlAoCBQNuaWwFBHVuaXQEAmNTCQEFdmFsdWUBCQCaCAIFBHRoaXMJAQJhawEFAmNRBAJjVAkBBXZhbHVlAQkAmggCBQR0aGlzCQECYWsBBQJjUgQCY1UJAJ0IAgUEdGhpcwkBAmF2AgkApAMBBQJjUwkApAMBBQJjVAQCY1YDCQAAAgUCY1UFBHVuaXQFBHVuaXQJALACAgkBBXZhbHVlAQUCY1UABAkAlAoCBQNuaWwFAmNWAmJEASFnZXRQb29sQWRkcmVzc0Zyb21McEFzc2V0UkVBRE9OTFkBAmNXCQCUCgIFA25pbAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYUQBBQJjVwIAAmJEAQtjb25zdHJ1Y3RvcggCY1gCY1kCYkoCYksCYkwCYk0CY1oCZGEEAmRiCQECYkUBBQJiRAMJAAACBQJkYgUCZGIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8ACQECYlMHBQJjWAUCY1kFAmJKBQJiSwUCYkwFAmJNBQJjWgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFiAAUCZGEFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRAENY29uc3RydWN0b3JWMgECZGMEAmRiCQECYkUBBQJiRAMJAAACBQJkYgUCZGIEAmRkCQCnCAEJANkEAQUCZGMDCQAAAgUCZGQFAmRkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFSAAUCZGMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRAENY29uc3RydWN0b3JWMwQCYk8CYlACYlECYlIEAmRiCQECYkUBBQJiRAMJAAACBQJkYgUCZGIEAmJ0CQC1CQIJAQJhWQEJAQFPAAUBbQkAzAgCCQELU3RyaW5nRW50cnkCCQEBTwAJAQJiRwsJAJEDAgUCYnQAAQkAkQMCBQJidAACCQCRAwIFAmJ0AAMJAJEDAgUCYnQABAkAkQMCBQJidAAFCQCRAwIFAmJ0AAYJAJEDAgUCYnQABwUCYk8FAmJQBQJiUQUCYlIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRAENY29uc3RydWN0b3JWNAICZGUCZGYEAmRiCQECYkUBBQJiRAMJAAACBQJkYgUCZGIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVMABQJkZQkAzAgCCQELU3RyaW5nRW50cnkCCQEBVAAJALkJAgUCZGYFAW0FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRAENY29uc3RydWN0b3JWNQECZGcEAmRiCQECYkUBBQJiRAMJAAACBQJkYgUCZGIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVgABQJkZwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEAQ1jb25zdHJ1Y3RvclY2AgJkaAJkaQQCZGoJAMwIAgkBAmJFAQUCYkQJAMwIAgMJAQIhPQIJAKYIAQUCZGgFBHVuaXQGAihpbnZhbGlkIHZvdGluZyBlbWlzc2lvbiBjb250cmFjdCBhZGRyZXNzBQNuaWwDCQAAAgUCZGoFAmRqCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFZAAUCZGgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAAkAuQkCBQJkaQUBbQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEAQlzZXRBZG1pbnMBAmRrBAJkYgkBAmJFAQUCYkQDCQAAAgUCZGIFAmRiCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFXAAkAuQkCBQJkawUBbQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEAQ9hY3RpdmF0ZU5ld1Bvb2wIAmFmAmJXAmJYAmRsAmRtAmRuAmNkAmRvBAJkYgkBAmNxAQUCYkQDCQAAAgUCZGIFAmRiAwkBCWlzRGVmaW5lZAEJAKIIAQkBAmF6AQUCYWYJAQFLAQkArAICCQCsAgICDVBvb2wgYWRkcmVzcyAFAmFmAhQgYWxyZWFkeSByZWdpc3RlcmVkLgQCZHAJAQJjagIFAmJXAAEEAmRxCAUCZHACXzEEAmRyCQECY2oCBQJiWAMIBQJkcAJfMwACAAEEAmRzCAUCZHICXzEEAmR0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAPEHAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWYJAKwCAgIpTm8gc2NyaXB0IGhhcyBiZWVuIGZvdW5kIG9uIHBvb2wgYWNjb3VudCAFAmFmBAJkdQkBEUBleHRyTmF0aXZlKDEwNTcpAQkBAVEABAJkdgkBAmN3AgUCYlcFAmJYAwUCZHYJAQFLAQkArAICCQCsAgIJAKwCAgkArAICAgVQb29sIAUCYlcCAS8FAmJYAhwgaGFzIGFscmVhZHkgYmVlbiBhY3RpdmF0ZWQuBAJkdwkBBXZhbHVlAQkAnQgCBQR0aGlzCQECYW0CCQCkAwEFAmRxCQCkAwEFAmRzBAJkeAMJAAACBQJiVwIFV0FWRVMFAWwJAGwGAAoAAAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQJiVwhkZWNpbWFscwAAAAAFBERPV04EAmR5AwkAAAIFAmJYAgVXQVZFUwUBbAkAbAYACgAACAkBBXZhbHVlAQkA7AcBCQDZBAEFAmJYCGRlY2ltYWxzAAAAAAUERE9XTgQCZHoJAMIIBQUCZGwFAmRtAAEACAYEAmJWCQC4CAEFAmR6BAJkQQkA2AQBBQJiVgQCZEIJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWYCCGFjdGl2YXRlCQDMCAIFAmJXCQDMCAIFAmJYBQNuaWwFA25pbAMJAAACBQJkQgUCZEIDCQECIT0CBQJkQgIHc3VjY2VzcwkBAUsBAiNQb29sIGluaXRpYWxpc2F0aW9uIGVycm9yIGhhcHBlbmVkLgQCZGcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhWQEJAQFYAAQCZEMJAPwHBAUCZGcCDmNyZWF0ZU9yVXBkYXRlCQDMCAIFAmRBCQDMCAIFAmRsCQDMCAIHBQNuaWwFA25pbAMJAAACBQJkQwUCZEMEAmRECQD8BwQFAmRnAghhZGRMYWJlbAkAzAgCBQJkQQkAzAgCBQFoBQNuaWwFA25pbAMJAAACBQJkRAUCZEQEAmRFCQD8BwQFAmRnAgdzZXRMb2dvCQDMCAIFAmRBCQDMCAIFAmRvBQNuaWwFA25pbAMJAAACBQJkRQUCZEUEAmRGCQD8BwQFAmRnAg1hZGRBc3NldHNMaW5rCQDMCAIFAmJXCQDMCAIFAmJYCQDMCAIFAmRBBQNuaWwFA25pbAMJAAACBQJkRgUCZEYEAmRHCQD8BwQFAmRnAhhpbmNyZWFzZUFzc2V0UG9vbHNOdW1iZXIJAMwIAgUCYlcFA25pbAUDbmlsAwkAAAIFAmRHBQJkRwkAlAoCCQDOCAIJAM4IAggFAmRwAl8yCAUCZHICXzIJAMwIAgUCZHoJAMwIAgkBBEJ1cm4CBQJiVgABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhbQIJAKQDAQUCZHEJAKQDAQUCZHMJAQJiVAsFAmFmCQCkAwEFAW8FAmRBBQJiVwUCYlgFAmR4BQJkeQUCZHEFAmRzBQFsBQJjZAkAzAgCCQELU3RyaW5nRW50cnkCCQECYXQBBQJkQQkBAmNlAgUCZHEFAmRzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhdgIJAKQDAQUCZHEJAKQDAQUCZHMJAKwCAgIEJXNfXwUCZEEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF6AQUCYWYJAQJjZQIFAmRxBQJkcwkAzAgCCQELU3RyaW5nRW50cnkCCQECYUICBQJkcQUCZHMFAmFmCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhRAEFAmRBBQJhZgkAzAgCCQELU3RyaW5nRW50cnkCCQECYUMBBQJhZgUCZEEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZQEFAmFmBQJkbgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmF5AQUCYWYFAWkFA25pbAUCZEEJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkQBCm1hbmFnZVBvb2wCAmFmAmRIBAJkYgkBAmJFAQUCYkQDCQAAAgUCZGIFAmRiBAJkSQkBAmNoAQUCYWYEAmJVCQCRAwIFAmRJBQF3BAJkQQkAkQMCBQJkSQUBeAQCYlcJAJEDAgUCZEkFAXkEAmJYCQCRAwIFAmRJBQF6BAJkeAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRJBQFBBAJkeQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRJBQFCBAJkcQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRJBQFDBAJkcwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRJBQFEBAJkSgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRJBQFFBAJjZAkAkQMCBQJkSQUBRgkAzAgCCQELU3RyaW5nRW50cnkCCQECYW0CCQCkAwEFAmRxCQCkAwEFAmRzCQECYlQLBQJhZgkApAMBBQJkSAUCZEEFAmJXBQJiWAUCZHgFAmR5BQJkcQUCZHMFAmRKBQJjZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEAQRlbWl0AQJkSwQCZEwIBQJiRAZjYWxsZXIEAmRNCAUCYkQMb3JpZ2luQ2FsbGVyBAJkTgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQJhQwEJAKUIAQUCZEwCHUludmFsaWQgTFAgYWRkcmVzcyBjYWxsZWQgbWUuBAJkTwkA2QQBBQJkTgQCZGYJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEBVAAFAW4FAW0EAmRlCQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAVMAAihMZWdhY3kgZmFjdG9yeSBjb250cmFjdCBkb2VzIG5vdCBleGlzdHMuAwkAZwIAAAUCZEsFA25pbAMJAQ9jb250YWluc0VsZW1lbnQCBQJkZgkApQgBBQJkTAkAlAoCBQNuaWwFAmRlCQCUCgIJAMwIAgkBB1JlaXNzdWUDBQJkTwUCZEsGCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJiRAZjYWxsZXIFAmRLBQJkTwUDbmlsAgdzdWNjZXNzAmJEAQRidXJuAQJkUAQCZEwIBQJiRAZjYWxsZXIEAmRNCAUCYkQMb3JpZ2luQ2FsbGVyBAJkUQkBBXZhbHVlAQkAkQMCCAUCYkQIcGF5bWVudHMAAAQCZFIJAQV2YWx1ZQEIBQJkUQZhbW91bnQEAmRTCQDYBAEJAQV2YWx1ZQEIBQJkUQdhc3NldElkBAJkVAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQJhQwEJAKUIAQUCZEwCHUludmFsaWQgTFAgYWRkcmVzcyBjYWxsZWQgbWUuAwkBAiE9AgUCZFMFAmRUCQEBSwECFUludmFsaWQgYXNzZXQgcGFzc2VkLgMJAQIhPQIFAmRQBQJkUgkBAUsBAhZJbnZhbGlkIGFtb3VudCBwYXNzZWQuBAJkTwkA2QQBBQJkVAkAlAoCCQDMCAIJAQRCdXJuAgUCZE8FAmRQBQNuaWwCB3N1Y2Nlc3MCYkQBDG1vZGlmeVdlaWdodAICYlYCZFUEAmRiAwkAAAIJANgEAQgIBQJiRAZjYWxsZXIFYnl0ZXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAVkAAgAGCQECYkUBBQJiRAMJAAACBQJkYgUCZGIEAmFBCQECYVkBCQECYUQBBQJiVgQCZFYJAQJhZQEFAmFBBAJkVwkBAmFlAQUBZwQCZFgJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCZFcAAAQCZG4JAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCZFYAAAQCZFkFAmRVBAJidAkAtQkCCQECYVkBCQEBTwAFAW0EAmNYCQECYnYBBQJidAQCZFoJAPwHBAUCY1gCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmJWCQDMCAIFAmFBBQNuaWwFA25pbAMJAAACBQJkWgUCZFoEAmVhAwkAAAIFAmRYAAAFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZFcAAAUDbmlsBAJlYgkBAmFnAgUCYUEAAAQCZWMJAJ8IAQUCZWIEAmVkAwkAAAIFAmVjBQR1bml0BQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQUCZWIFA25pbAkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmRWBQJkWQUDbmlsBQJlYQUCZWQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkQBDW1vZGlmeVdlaWdodHMEAmVlAmVmAmVnAmVoBAJkYgkBAmJFAQUCYkQDCQAAAgUCZGIFAmRiBAJlaQkAaQIJAGgCAAUFAWYAZAQCZWoJAGkCCQBoAgAFBQFmAGQEAmVrCQBpAgkAaAIABQUBZgBkBAJidAkAtQkCCQECYVkBCQEBTwAFAW0EAmVsCQECYnYBBQJidAQCZW0JAQJidwEFAmJ0BAJlbgkBAmFlAQUCZWUEAmVvCQECYWUBBQJlZgQCZXAJAQJhZQEFAmVnBAJlcQkBAmFlAQUCZWgEAmVyCQECYmIBBQJlbgQCZXMJAQJiYgEFAmVvBAJldAkAZQIFAmVyBQJlawQCZXUJAGUCBQJlcwUCZWsDCQBnAgAABQJldAkBAUsBCQCsAgICFmludmFsaWQgYnRjV2VpZ2h0TmV3OiAJAKQDAQUCZXQDCQBnAgAABQJldQkBAUsBCQCsAgICFmludmFsaWQgZXRoV2VpZ2h0TmV3OiAJAKQDAQUCZXUEAmV2CQECYVkBCQECYUMBBQJlZQQCZXcJAQJhWQEJAQJhQwEFAmVmBAJleAkBAmFZAQkBAmFDAQUCZWcEAmV5CQECYVkBCQECYUMBBQJlaAQCZXoJAPwHBAUCZWwCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmV2CQDMCAIFAmVlBQNuaWwFA25pbAMJAAACBQJlegUCZXoEAmVBCQD8BwQFAmVsAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJldwkAzAgCBQJlZgUDbmlsBQNuaWwDCQAAAgUCZUEFAmVBBAJlQgkA/AcEBQJlbAIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZXgJAMwIAgUCZWcFA25pbAUDbmlsAwkAAAIFAmVCBQJlQgQCZUMJAPwHBAUCZWwCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmV5CQDMCAIFAmVoBQNuaWwFA25pbAMJAAACBQJlQwUCZUMJAMwIAgkBDEludGVnZXJFbnRyeQIFAmVuBQJldAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZW8FAmV1CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlcAUCZWkJAMwIAgkBDEludGVnZXJFbnRyeQIFAmVxBQJlagkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFnAgUCZWUAAAUCZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZwIFAmVmAAAFAmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWcCBQJlZwAABQJlaQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFnAgUCZWgAAAUCZWoFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRAEYY2hlY2tXeEVtaXNzaW9uUG9vbExhYmVsAgJhRgJhRwQCZUQEAmJmCQCgCAEJAQJhRQIFAmFGBQJhRwMJAAECBQJiZgIHQm9vbGVhbgQCY0oFAmJmBQJjSgcJAJQKAgUDbmlsBQJlRAJiRAEWc2V0V3hFbWlzc2lvblBvb2xMYWJlbAICYUYCYUcEAmRiCQECY3EBBQJiRAMJAAACBQJkYgUCZGIJAJQKAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBAmFFAgUCYUYFAmFHBgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEARlkZWxldGVXeEVtaXNzaW9uUG9vbExhYmVsAgJhRgJhRwQCZGIDCQAAAggFAmJEBmNhbGxlcgUEdGhpcwYJAQJjcQEFAmJEAwkAAAIFAmRiBQJkYgkAlAoCCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRQIFAmFGBQJhRwUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEARJvblZlcmlmaWNhdGlvbkxvc3MBAmFUBAJkYgMJAAACCQDYBAEICAUCYkQGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQFYAAIABgkBAmJFAQUCYkQDCQAAAgUCZGIFAmRiBAJkaQkBAmJ4AAQCZUUDCQBmAgkAkAMBBQJkaQAABgkBAUsBAhRpbnZhbGlkIHByaWNlIGFzc2V0cwMJAAACBQJlRQUCZUUKAQJlRgICZUcCZUgEAmNECQD8BwQFBHRoaXMCGWRlbGV0ZVd4RW1pc3Npb25Qb29sTGFiZWwJAMwIAgUCYVQJAMwIAgUCZUgFA25pbAUDbmlsAwkAAAIFAmNEBQJjRAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQCZUkKAAJlSgUCZGkKAAJlSwkAkAMBBQJlSgoAAmVMBQR1bml0CgECZU0CAmVOAmVPAwkAZwIFAmVPBQJlSwUCZU4JAQJlRgIFAmVOCQCRAwIFAmVKBQJlTwoBAmVQAgJlTgJlTwMJAGcCBQJlTwUCZUsFAmVOCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTEJAQJlUAIJAQJlTQIJAQJlTQIJAQJlTQIJAQJlTQIJAQJlTQIJAQJlTQIJAQJlTQIJAQJlTQIJAQJlTQIJAQJlTQIJAQJlTQIFAmVMAAAAAQACAAMABAAFAAYABwAIAAkACgALAwkAAAIFAmVJBQJlSQkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkQBKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkBAmFmBAJkSQkBAmNoAQUCYWYEAmFxCQCUCgIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkSQUBQwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRJBQFEBAJlUQkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYXABBQJhcQcEAmVSCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhcwAHCQCUCgIFA25pbAMFAmVSBgUCZVECYkQBEGdldEluRmVlUkVBRE9OTFkBAmFmBAJlUwkBAmN0AwkBAmFIAQUCYWYJAQJhSQAAAAkAlAoCBQNuaWwFAmVTAmJEARFnZXRPdXRGZWVSRUFET05MWQECYWYEAmVTCQECY3QDCQECYUoBBQJhZgkBAmFLAAkAawMACgUBYgCQTgkAlAoCBQNuaWwFAmVTAmJEARBwb29sSW5mb1JFQURPTkxZAgJlVAJlVQQCZVYJAJoIAgUEdGhpcwkBAmFrAQUCZVQEAmVXCQCaCAIFBHRoaXMJAQJhawEFAmVVBAJlWAkAnQgCBQR0aGlzCQECYUICCQEFdmFsdWUBBQJlVgkBBXZhbHVlAQUCZVcEAmVZCQCdCAIFBHRoaXMJAQJhQwEJAQV2YWx1ZQEFAmVYBAJkdgMDCQEJaXNEZWZpbmVkAQUCZVYJAQlpc0RlZmluZWQBBQJlVwcJAQlpc0RlZmluZWQBBQJlWAcEAmVaAwUCZHYJAJQKAgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQUCZVgJAQJiYwEJAQV2YWx1ZQEFAmVZBQR1bml0CQCUCgIFA25pbAUCZVoCYkQBFWdldFBvb2xTdGF0dXNSRUFET05MWQECYWYEAmNpCQC1CQIJAQJhWQEJAQJhegEFAmFmBQFtBAJhbgkAkQMCBQJjaQABBAJhbwkAkQMCBQJjaQACBAJjegkAtQkCCQECYVkBCQECYW0CBQJhbgUCYW8FAW0JAJQKAgUDbmlsCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY3oFAXcCYkQBFWdldFBvb2xDb25maWdSRUFET05MWQECYWYEAmNpCQC1CQIJAQJhWQEJAQJhegEFAmFmBQFtBAJhbgkAkQMCBQJjaQABBAJhbwkAkQMCBQJjaQACBAJjegkAtQkCCQECYVkBCQECYW0CBQJhbgUCYW8FAW0JAJQKAgUDbmlsBQJjegJiRAEgZ2V0UG9vbENvbmZpZ0J5THBBc3NldElkUkVBRE9OTFkBAmRBBAJjaQkAtQkCCQECYVkBCQECYXQBBQJkQQUBbQQCYW4JAJEDAgUCY2kAAQQCYW8JAJEDAgUCY2kAAgQCY3oJALUJAgkBAmFZAQkBAmFtAgUCYW4FAmFvBQFtCQCUCgIFA25pbAUCY3oCYkQBEnBvb2xFeGlzdHNSRUFET05MWQICYUYCYUcJAJQKAgUDbmlsCQECY3cCBQJhRgUCYUcCYkQBG3NraXBPcmRlclZhbGlkYXRpb25SRUFET05MWQECYWYJAJQKAgUDbmlsCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhTAEFAmFmBwJiRAEaZ2V0Q2hhbmdlQW1wQ29uZmlnUkVBRE9OTFkBAmFmBAJmYQkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAmFNAQUCYWYEAmZiCQERQGV4dHJOYXRpdmUoMTA1NSkBCQECYU4BBQJhZgQCZmMJARFAZXh0ck5hdGl2ZSgxMDU1KQEJAQJhTwEFAmFmCQCUCgIFA25pbAkAzAgCBQJmYQkAzAgCBQJmYgkAzAgCBQJmYwUDbmlsAmJEARVnZXRQb29sV2VpZ2h0UkVBRE9OTFkBAmJWBAJhZgkBAmFZAQkBAmFEAQUCYlYEAmZkCQELdmFsdWVPckVsc2UCCQCfCAEJAQJhZQEFAmFmAAAJAJQKAgUDbmlsBQJmZAJiRAEKZGVsZXRlUG9vbAECYUEEAmRiAwkBAmJFAQUCYkQGBQJiQQMJAAACBQJkYgUCZGIEAmZlAwkAAAIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAmFlAQUCYUEAAAAABgkBAUsBAhdQb29sIHdlaWdodCBpcyBub3QgWmVybwMJAAACBQJmZQUCZmUEAmNpCQC1CQIJAQJhWQEJAQJhegEFAmFBBQFtBAJhbgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNpAAEEAmFvCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY2kAAgQCYUYJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQJhaQEFAmFuBAJhRwkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAmFpAQUCYW8EAmJWCQECYVkBCQECYUMBBQJhQQQCZmYJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFaAAQCZmcJAPwHBAUCZmYCCmRlbGV0ZVBvb2wJAMwIAgUCYUYJAMwIAgUCYUcFA25pbAUDbmlsAwkAAAIFAmZnBQJmZwQCZGgJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFZAAQCZmgJAPwHBAUCZGgCCmRlbGV0ZVBvb2wJAMwIAgUCYUYJAMwIAgUCYUcFA25pbAUDbmlsAwkAAAIFAmZoBQJmaAQCZGcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFYAAQCZmkJAPwHBAUCZGcCCmRlbGV0ZVBvb2wJAMwIAgUCYUYJAMwIAgUCYUcFA25pbAUDbmlsAwkAAAIFAmZpBQJmaQkAzAgCCQELRGVsZXRlRW50cnkBCQECYUMBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYXoBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYXYCCQCkAwEFAmFuCQCkAwEFAmFvCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhQgIFAmFuBQJhbwkAzAgCCQELRGVsZXRlRW50cnkBCQECYW0CCQCkAwEFAmFuCQCkAwEFAmFvCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhdAEFAmJWCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRAEFAmJWCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRQIFAmFGBQJhRwkAzAgCCQELRGVsZXRlRW50cnkBCQECYWUBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYXkBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYUgBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYUoBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYUwBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYU0BBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYU4BBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYU8BBQJhQQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJmagECZmsABAJmbAQCYmYJAQJieQADCQABAgUCYmYCCkJ5dGVWZWN0b3IEAmJGBQJiZgUCYkYDCQABAgUCYmYCBFVuaXQIBQJmag9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCZmoJYm9keUJ5dGVzCQCRAwIIBQJmagZwcm9vZnMAAAUCZmyUjMcX", "height": 2629197, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Ax73N5XmJCkQPjF5YJ4VKpfrhe53RoanVWVxbNSVX2pQ Next: 7N9YN26FYN5ozkfvCdUgJViuqKnYBYSdurenGMrJkVRc Diff:
OldNewDifferences
983983 else bA
984984 if ((db == db))
985985 then {
986- let ci = split(aY(az(aA)), m)
987- let an = parseIntValue(ci[1])
988- let ao = parseIntValue(ci[2])
989- let aF = getStringValue(ai(an))
990- let aG = getStringValue(ai(ao))
991- let bV = aY(aC(aA))
992- let fe = addressFromStringValue(getStringValue(Z()))
993- let ff = invoke(fe, "deletePool", [aF, aG], nil)
994- if ((ff == ff))
986+ let fe = if ((valueOrElse(getInteger(ae(aA)), 0) == 0))
987+ then true
988+ else K("Pool weight is not Zero")
989+ if ((fe == fe))
995990 then {
996- let dh = addressFromStringValue(getStringValue(Y()))
997- let fg = invoke(dh, "deletePool", [aF, aG], nil)
991+ let ci = split(aY(az(aA)), m)
992+ let an = parseIntValue(ci[1])
993+ let ao = parseIntValue(ci[2])
994+ let aF = getStringValue(ai(an))
995+ let aG = getStringValue(ai(ao))
996+ let bV = aY(aC(aA))
997+ let ff = addressFromStringValue(getStringValue(Z()))
998+ let fg = invoke(ff, "deletePool", [aF, aG], nil)
998999 if ((fg == fg))
999- then [DeleteEntry(aC(aA)), DeleteEntry(az(aA)), DeleteEntry(av(toString(an), toString(ao))), DeleteEntry(aB(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(at(bV)), DeleteEntry(aD(bV)), DeleteEntry(aE(aF, aG)), DeleteEntry(ae(aA)), DeleteEntry(ay(aA)), DeleteEntry(aH(aA)), DeleteEntry(aJ(aA)), DeleteEntry(aL(aA)), DeleteEntry(aM(aA)), DeleteEntry(aN(aA)), DeleteEntry(aO(aA))]
1000+ then {
1001+ let dh = addressFromStringValue(getStringValue(Y()))
1002+ let fh = invoke(dh, "deletePool", [aF, aG], nil)
1003+ if ((fh == fh))
1004+ then {
1005+ let dg = addressFromStringValue(getStringValue(X()))
1006+ let fi = invoke(dg, "deletePool", [aF, aG], nil)
1007+ if ((fi == fi))
1008+ then [DeleteEntry(aC(aA)), DeleteEntry(az(aA)), DeleteEntry(av(toString(an), toString(ao))), DeleteEntry(aB(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(at(bV)), DeleteEntry(aD(bV)), DeleteEntry(aE(aF, aG)), DeleteEntry(ae(aA)), DeleteEntry(ay(aA)), DeleteEntry(aH(aA)), DeleteEntry(aJ(aA)), DeleteEntry(aL(aA)), DeleteEntry(aM(aA)), DeleteEntry(aN(aA)), DeleteEntry(aO(aA))]
1009+ else throw("Strict value is not equal to itself.")
1010+ }
1011+ else throw("Strict value is not equal to itself.")
1012+ }
10001013 else throw("Strict value is not equal to itself.")
10011014 }
10021015 else throw("Strict value is not equal to itself.")
10051018 }
10061019
10071020
1008-@Verifier(fh)
1009-func fi () = {
1010- let fj = {
1021+@Verifier(fj)
1022+func fk () = {
1023+ let fl = {
10111024 let bf = by()
10121025 if ($isInstanceOf(bf, "ByteVector"))
10131026 then {
10151028 bF
10161029 }
10171030 else if ($isInstanceOf(bf, "Unit"))
1018- then fh.senderPublicKey
1031+ then fj.senderPublicKey
10191032 else throw("Match error")
10201033 }
1021- sigVerify(fh.bodyBytes, fh.proofs[0], fj)
1034+ sigVerify(fj.bodyBytes, fj.proofs[0], fl)
10221035 }
10231036
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 = 1000000000000
99
1010 let d = 18
1111
1212 let e = toBigInt(1000000000000000000)
1313
1414 let f = b
1515
1616 let g = "GWXvirtualPOOL"
1717
1818 let h = "POOLS_LP"
1919
2020 let i = 2000000
2121
2222 let j = "WAVES"
2323
2424 let k = "factory_v2.ride"
2525
2626 let l = ((100 * 1000) * 1000)
2727
2828 let m = "__"
2929
3030 let n = ""
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 1
4141
4242 let t = 2
4343
4444 let u = 3
4545
4646 let v = 1
4747
4848 let w = 2
4949
5050 let x = 3
5151
5252 let y = 4
5353
5454 let z = 5
5555
5656 let A = 6
5757
5858 let B = 7
5959
6060 let C = 8
6161
6262 let D = 9
6363
6464 let E = 10
6565
6666 let F = 11
6767
6868 let G = "WX_EMISSION"
6969
7070 let H = [G]
7171
7272 func I (J) = makeString([k, ": ", J], "")
7373
7474
7575 func K (J) = throw(I(J))
7676
7777
7878 func L () = "%s__allowedLpScriptHash"
7979
8080
8181 func M () = "%s__allowedLpStableScriptHash"
8282
8383
8484 func N () = "%s__swapContract"
8585
8686
8787 func O () = "%s__factoryConfig"
8888
8989
9090 func P () = "%s__lpTokensList"
9191
9292
9393 func Q () = "%s%s__pool__scriptHash"
9494
9595
9696 func R () = "%s%s__matcher__publicKey"
9797
9898
9999 func S () = "%s__legacyFactoryContract"
100100
101101
102102 func T () = "%s__legacyPools"
103103
104104
105105 func U () = "%s__managerPublicKey"
106106
107107
108108 func V () = "%s__managerVaultAddress"
109109
110110
111111 func W () = "%s__adminPubKeys"
112112
113113
114114 func X () = "%s__assetsStoreContract"
115115
116116
117117 func Y () = "%s__votingEmissionContract"
118118
119119
120120 func Z () = "%s__userPoolsContract"
121121
122122
123123 func aa () = makeString(["%s", "priceAssets"], m)
124124
125125
126126 func ab () = "%s__priceDecimals"
127127
128128
129129 func ac () = "%s__shutdown"
130130
131131
132132 func ad () = "%s__nextInternalAssetId"
133133
134134
135135 func ae (af) = ("%s%s__poolWeight__" + af)
136136
137137
138138 func ag (af,ah) = ((("%s%s__poolWeight__" + af) + "__") + toString(ah))
139139
140140
141141 func ai (aj) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(aj))
142142
143143
144144 func ak (al) = ("%s%s%s__mappings__baseAsset2internalId__" + al)
145145
146146
147147 func am (an,ao) = (((("%d%d%s__" + an) + "__") + ao) + "__config")
148148
149149
150150 func ap (aq) = {
151151 let ar = aq
152152 let an = ar._1
153153 let ao = ar._2
154154 makeString(["%d%d%s", toString(an), toString(ao), "oneTokenOperationsDisabled"], m)
155155 }
156156
157157
158158 func as () = makeString(["%s", "oneTokenOperationsDisabled"], m)
159159
160160
161161 func at (au) = (("%s%s%s__" + au) + "__mappings__lpAsset2Pool")
162162
163163
164164 func av (aw,ax) = (((("%d%d%s%s__" + aw) + "__") + ax) + "__mappings__PoolAssets2LpAsset")
165165
166166
167167 func ay (af) = ("%s%s__spread__" + af)
168168
169169
170170 func az (aA) = (("%s%s%s__" + aA) + "__mappings__poolContract2PoolAssets")
171171
172172
173173 func aB (aw,ax) = (((("%d%d%s%s__" + toString(aw)) + "__") + toString(ax)) + "__mappings__poolAssets2PoolContract")
174174
175175
176176 func aC (aA) = (("%s%s%s__" + aA) + "__mappings__poolContract2LpAsset")
177177
178178
179179 func aD (au) = (("%s%s%s__" + au) + "__mappings__lpAsset2PoolContract")
180180
181181
182182 func aE (aF,aG) = ((("%s%s%s__wxEmission__" + aF) + "__") + aG)
183183
184184
185185 func aH (af) = ("%s%s__inFee__" + af)
186186
187187
188188 func aI () = "%s__inFeeDefault"
189189
190190
191191 func aJ (af) = ("%s%s__outFee__" + af)
192192
193193
194194 func aK () = "%s__outFeeDefault"
195195
196196
197197 func aL (af) = ("%s%s__skipOrderValidation__" + af)
198198
199199
200200 func aM (af) = ("%s%s__changeAmpDelay__" + af)
201201
202202
203203 func aN (af) = ("%s%s__changeAmpDelta__" + af)
204204
205205
206206 func aO (af) = ("%s%s__changeAmpTarget__" + af)
207207
208208
209209 func aP () = "%s__sWavesProxyAddress"
210210
211211
212212 func aQ () = "%s__sWavesAssetId"
213213
214214
215215 func aR () = "%s__stakingProfitAddress"
216216
217217
218218 func aS (af,aT) = makeString(["%s%s%s", "leasedRatio", af, aT], m)
219219
220220
221221 func aU (aT) = makeString(["%s%s", "leasedRatioDefault", aT], m)
222222
223223
224224 func aV (af,aT) = makeString(["%s%s%s", "leasedRatioTolerance", af, aT], m)
225225
226226
227227 func aW (af,aT) = makeString(["%s%s%s", "minBalance", af, aT], m)
228228
229229
230230 func aX (aT) = makeString(["%s%s", "minBalanceDefault", aT], m)
231231
232232
233233 func aY (aZ) = valueOrErrorMessage(getString(this, aZ), ("No data for this.key=" + aZ))
234234
235235
236236 func ba (aZ) = valueOrErrorMessage(getBoolean(this, aZ), ("No data for this.key=" + aZ))
237237
238238
239239 func bb (aZ) = valueOrErrorMessage(getInteger(this, aZ), ("No data for this.key=" + aZ))
240240
241241
242242 func bc (bd) = if ((bd == j))
243243 then unit
244244 else fromBase58String(bd)
245245
246246
247247 func be () = {
248248 let bf = getString(V())
249249 if ($isInstanceOf(bf, "String"))
250250 then {
251251 let bg = bf
252252 addressFromStringValue(bg)
253253 }
254254 else this
255255 }
256256
257257
258258 let bh = 1
259259
260260 let bi = 2
261261
262262 let bj = 3
263263
264264 let bk = 4
265265
266266 let bl = 5
267267
268268 let bm = 6
269269
270270 let bn = 7
271271
272272 let bo = 8
273273
274274 let bp = 9
275275
276276 let bq = 10
277277
278278 let br = 11
279279
280280 func bs (bt) = addressFromStringValue(bt[bi])
281281
282282
283283 func bu (bt) = addressFromStringValue(bt[bl])
284284
285285
286286 func bv (bt) = addressFromStringValue(bt[bh])
287287
288288
289289 func bw (bt) = addressFromStringValue(bt[bq])
290290
291291
292292 func bx () = {
293293 let bf = getString(aa())
294294 if ($isInstanceOf(bf, "String"))
295295 then {
296296 let bg = bf
297297 if ((size(bg) == 0))
298298 then nil
299299 else split(bg, m)
300300 }
301301 else nil
302302 }
303303
304304
305305 func by () = {
306306 let bz = be()
307307 let bf = getString(bz, U())
308308 if ($isInstanceOf(bf, "String"))
309309 then {
310310 let bg = bf
311311 fromBase58String(bg)
312312 }
313313 else if ($isInstanceOf(bf, "Unit"))
314314 then unit
315315 else throw("Match error")
316316 }
317317
318318
319319 let bA = K("Permission denied")
320320
321321 let bB = K("Test error here")
322322
323323 func bC (bD) = if ((bD.caller == this))
324324 then true
325325 else bA
326326
327327
328328 func bE (bD) = {
329329 let bf = by()
330330 if ($isInstanceOf(bf, "ByteVector"))
331331 then {
332332 let bF = bf
333333 if ((bD.callerPublicKey == bF))
334334 then true
335335 else bA
336336 }
337337 else if ($isInstanceOf(bf, "Unit"))
338338 then bC(bD)
339339 else throw("Match error")
340340 }
341341
342342
343343 func bG (bH,bI,bJ,bK,bL,bM,bN,bO,bP,bQ,bR) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bH, bI, bJ, bK, bL, bM, bN, bO, bP, bQ, bR], m)
344344
345345
346346 func bS (bH,bI,bJ,bK,bL,bM,bN) = makeString(["%s%s%s%s%s%s", bH, bI, bJ, bK, bL, bM, bN], m)
347347
348348
349349 func bT (af,bU,bV,bW,bX,bY,bZ,ca,cb,cc,cd) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, bU, bV, bW, bX, toString(bY), toString(bZ), toString(ca), toString(cb), toString(cc), cd], m)
350350
351351
352352 func ce (cf,cg) = makeString(["%d%d", toString(cf), toString(cg)], m)
353353
354354
355355 func ch (af) = {
356356 let ci = split(aY(az(af)), m)
357357 let an = ci[1]
358358 let ao = ci[2]
359359 split(aY(am(an, ao)), m)
360360 }
361361
362362
363363 func cj (ck,cl) = {
364364 let cm = valueOrElse(getInteger(this, ak(ck)), 0)
365365 let cn = valueOrElse(getInteger(this, ad()), 0)
366366 let co = if ((cm == 0))
367367 then {
368368 let cp = (cn + cl)
369369 $Tuple3(cp, [IntegerEntry(ad(), cp), IntegerEntry(ak(ck), cp), StringEntry(ai(cp), ck)], true)
370370 }
371371 else $Tuple3(cm, nil, false)
372372 co
373373 }
374374
375375
376376 func cq (bD) = {
377377 let cr = split(valueOrElse(getString(W()), n), m)
378378 if (containsElement(cr, toBase58String(bD.callerPublicKey)))
379379 then true
380380 else {
381381 let cs = bE(bD)
382382 if ((cs == cs))
383383 then true
384384 else throw("Strict value is not equal to itself.")
385385 }
386386 }
387387
388388
389389 func ct (aZ,cu,cv) = valueOrElse(getInteger(this, aZ), valueOrElse(getInteger(this, cu), cv))
390390
391391
392392 func cw (aF,aG) = {
393393 let an = getInteger(ak(aF))
394394 let ao = getInteger(ak(aG))
395395 if (if ((an == unit))
396396 then true
397397 else (ao == unit))
398398 then false
399399 else {
400400 let cx = toString(value(an))
401401 let cy = toString(value(ao))
402402 let cz = getString(am(cx, cy))
403403 let cA = getString(am(cy, cx))
404404 let cB = if ((cz != unit))
405405 then true
406406 else (cA != unit)
407407 cB
408408 }
409409 }
410410
411411
412412 @Callable(bD)
413413 func getSwapContractREADONLY () = $Tuple2(nil, aY(N()))
414414
415415
416416
417417 @Callable(bD)
418418 func getPoolLeaseConfigREADONLY (af,aT) = {
419419 let cC = {
420420 let bf = getInteger(this, aS(af, aT))
421421 if ($isInstanceOf(bf, "Int"))
422422 then {
423423 let cD = bf
424424 $Tuple2(true, min([100, max([0, cD])]))
425425 }
426426 else {
427427 let cE = getInteger(this, aU(aT))
428428 if ($isInstanceOf(cE, "Int"))
429429 then {
430430 let cF = cE
431431 $Tuple2(true, min([100, max([0, cF])]))
432432 }
433433 else $Tuple2(false, 0)
434434 }
435435 }
436436 let cG = cC._1
437437 let cH = cC._2
438438 let cI = {
439439 let bf = getInteger(this, aW(af, aT))
440440 if ($isInstanceOf(bf, "Int"))
441441 then {
442442 let cJ = bf
443443 max([0, cJ])
444444 }
445445 else {
446446 let cE = getInteger(this, aX(aT))
447447 if ($isInstanceOf(cE, "Int"))
448448 then {
449449 let cK = cE
450450 max([0, cK])
451451 }
452452 else 0
453453 }
454454 }
455455 let cL = if ((aT == "WAVES"))
456456 then $Tuple3(valueOrElse(getString(this, aP()), ""), getString(this, valueOrElse(aQ(), "")), c)
457457 else $Tuple3("", "", 0)
458458 let cM = cL._1
459459 let cN = cL._2
460460 let cO = cL._3
461461 let cP = valueOrElse(getString(this, aR()), "")
462462 $Tuple2(nil, $Tuple7(cG, cH, cI, cM, cN, cO, cP))
463463 }
464464
465465
466466
467467 @Callable(bD)
468468 func getLpAssetFromPoolAssetsREADONLY (cQ,cR) = if (if ((cQ == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
469469 then (cR == "WAVES")
470470 else false)
471471 then $Tuple2(nil, unit)
472472 else {
473473 let cS = value(getInteger(this, ak(cQ)))
474474 let cT = value(getInteger(this, ak(cR)))
475475 let cU = getString(this, av(toString(cS), toString(cT)))
476476 let cV = if ((cU == unit))
477477 then unit
478478 else drop(value(cU), 4)
479479 $Tuple2(nil, cV)
480480 }
481481
482482
483483
484484 @Callable(bD)
485485 func getPoolAddressFromLpAssetREADONLY (cW) = $Tuple2(nil, valueOrElse(getString(this, aD(cW)), ""))
486486
487487
488488
489489 @Callable(bD)
490490 func constructor (cX,cY,bJ,bK,bL,bM,cZ,da) = {
491491 let db = bE(bD)
492492 if ((db == db))
493493 then [StringEntry(O(), bS(cX, cY, bJ, bK, bL, bM, cZ)), IntegerEntry(ab(), da)]
494494 else throw("Strict value is not equal to itself.")
495495 }
496496
497497
498498
499499 @Callable(bD)
500500 func constructorV2 (dc) = {
501501 let db = bE(bD)
502502 if ((db == db))
503503 then {
504504 let dd = addressFromPublicKey(fromBase58String(dc))
505505 if ((dd == dd))
506506 then [StringEntry(R(), dc)]
507507 else throw("Strict value is not equal to itself.")
508508 }
509509 else throw("Strict value is not equal to itself.")
510510 }
511511
512512
513513
514514 @Callable(bD)
515515 func constructorV3 (bO,bP,bQ,bR) = {
516516 let db = bE(bD)
517517 if ((db == db))
518518 then {
519519 let bt = split(aY(O()), m)
520520 [StringEntry(O(), bG(bt[1], bt[2], bt[3], bt[4], bt[5], bt[6], bt[7], bO, bP, bQ, bR))]
521521 }
522522 else throw("Strict value is not equal to itself.")
523523 }
524524
525525
526526
527527 @Callable(bD)
528528 func constructorV4 (de,df) = {
529529 let db = bE(bD)
530530 if ((db == db))
531531 then [StringEntry(S(), de), StringEntry(T(), makeString(df, m))]
532532 else throw("Strict value is not equal to itself.")
533533 }
534534
535535
536536
537537 @Callable(bD)
538538 func constructorV5 (dg) = {
539539 let db = bE(bD)
540540 if ((db == db))
541541 then [StringEntry(X(), dg)]
542542 else throw("Strict value is not equal to itself.")
543543 }
544544
545545
546546
547547 @Callable(bD)
548548 func constructorV6 (dh,di) = {
549549 let dj = [bE(bD), if ((addressFromString(dh) != unit))
550550 then true
551551 else "invalid voting emission contract address"]
552552 if ((dj == dj))
553553 then [StringEntry(Y(), dh), StringEntry(aa(), makeString(di, m))]
554554 else throw("Strict value is not equal to itself.")
555555 }
556556
557557
558558
559559 @Callable(bD)
560560 func setAdmins (dk) = {
561561 let db = bE(bD)
562562 if ((db == db))
563563 then [StringEntry(W(), makeString(dk, m))]
564564 else throw("Strict value is not equal to itself.")
565565 }
566566
567567
568568
569569 @Callable(bD)
570570 func activateNewPool (af,bW,bX,dl,dm,dn,cd,do) = {
571571 let db = cq(bD)
572572 if ((db == db))
573573 then if (isDefined(getString(az(af))))
574574 then K((("Pool address " + af) + " already registered."))
575575 else {
576576 let dp = cj(bW, 1)
577577 let dq = dp._1
578578 let dr = cj(bX, if (dp._3)
579579 then 2
580580 else 1)
581581 let ds = dr._1
582582 let dt = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
583583 let du = getBinaryValue(Q())
584584 let dv = cw(bW, bX)
585585 if (dv)
586586 then K((((("Pool " + bW) + "/") + bX) + " has already been activated."))
587587 else {
588588 let dw = value(getString(this, am(toString(dq), toString(ds))))
589589 let dx = if ((bW == "WAVES"))
590590 then l
591591 else pow(10, 0, value(assetInfo(fromBase58String(bW))).decimals, 0, 0, DOWN)
592592 let dy = if ((bX == "WAVES"))
593593 then l
594594 else pow(10, 0, value(assetInfo(fromBase58String(bX))).decimals, 0, 0, DOWN)
595595 let dz = Issue(dl, dm, 1, 8, true)
596596 let bV = calculateAssetId(dz)
597597 let dA = toBase58String(bV)
598598 let dB = invoke(addressFromStringValue(af), "activate", [bW, bX], nil)
599599 if ((dB == dB))
600600 then if ((dB != "success"))
601601 then K("Pool initialisation error happened.")
602602 else {
603603 let dg = addressFromStringValue(aY(X()))
604604 let dC = invoke(dg, "createOrUpdate", [dA, dl, false], nil)
605605 if ((dC == dC))
606606 then {
607607 let dD = invoke(dg, "addLabel", [dA, h], nil)
608608 if ((dD == dD))
609609 then {
610610 let dE = invoke(dg, "setLogo", [dA, do], nil)
611611 if ((dE == dE))
612612 then {
613613 let dF = invoke(dg, "addAssetsLink", [bW, bX, dA], nil)
614614 if ((dF == dF))
615615 then {
616616 let dG = invoke(dg, "increaseAssetPoolsNumber", [bW], nil)
617617 if ((dG == dG))
618618 then $Tuple2(((dp._2 ++ dr._2) ++ [dz, Burn(bV, 1), StringEntry(am(toString(dq), toString(ds)), bT(af, toString(o), dA, bW, bX, dx, dy, dq, ds, l, cd)), StringEntry(at(dA), ce(dq, ds)), StringEntry(av(toString(dq), toString(ds)), ("%s__" + dA)), StringEntry(az(af), ce(dq, ds)), StringEntry(aB(dq, ds), af), StringEntry(aD(dA), af), StringEntry(aC(af), dA), IntegerEntry(ae(af), dn), IntegerEntry(ay(af), i)]), dA)
619619 else throw("Strict value is not equal to itself.")
620620 }
621621 else throw("Strict value is not equal to itself.")
622622 }
623623 else throw("Strict value is not equal to itself.")
624624 }
625625 else throw("Strict value is not equal to itself.")
626626 }
627627 else throw("Strict value is not equal to itself.")
628628 }
629629 else throw("Strict value is not equal to itself.")
630630 }
631631 }
632632 else throw("Strict value is not equal to itself.")
633633 }
634634
635635
636636
637637 @Callable(bD)
638638 func managePool (af,dH) = {
639639 let db = bE(bD)
640640 if ((db == db))
641641 then {
642642 let dI = ch(af)
643643 let bU = dI[w]
644644 let dA = dI[x]
645645 let bW = dI[y]
646646 let bX = dI[z]
647647 let dx = parseIntValue(dI[A])
648648 let dy = parseIntValue(dI[B])
649649 let dq = parseIntValue(dI[C])
650650 let ds = parseIntValue(dI[D])
651651 let dJ = parseIntValue(dI[E])
652652 let cd = dI[F]
653653 [StringEntry(am(toString(dq), toString(ds)), bT(af, toString(dH), dA, bW, bX, dx, dy, dq, ds, dJ, cd))]
654654 }
655655 else throw("Strict value is not equal to itself.")
656656 }
657657
658658
659659
660660 @Callable(bD)
661661 func emit (dK) = {
662662 let dL = bD.caller
663663 let dM = bD.originCaller
664664 let dN = valueOrErrorMessage(getString(aC(toString(dL))), "Invalid LP address called me.")
665665 let dO = fromBase58String(dN)
666666 let df = split(valueOrElse(getString(T()), n), m)
667667 let de = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
668668 if ((0 >= dK))
669669 then nil
670670 else if (containsElement(df, toString(dL)))
671671 then $Tuple2(nil, de)
672672 else $Tuple2([Reissue(dO, dK, true), ScriptTransfer(bD.caller, dK, dO)], "success")
673673 }
674674
675675
676676
677677 @Callable(bD)
678678 func burn (dP) = {
679679 let dL = bD.caller
680680 let dM = bD.originCaller
681681 let dQ = value(bD.payments[0])
682682 let dR = value(dQ.amount)
683683 let dS = toBase58String(value(dQ.assetId))
684684 let dT = valueOrErrorMessage(getString(aC(toString(dL))), "Invalid LP address called me.")
685685 if ((dS != dT))
686686 then K("Invalid asset passed.")
687687 else if ((dP != dR))
688688 then K("Invalid amount passed.")
689689 else {
690690 let dO = fromBase58String(dT)
691691 $Tuple2([Burn(dO, dP)], "success")
692692 }
693693 }
694694
695695
696696
697697 @Callable(bD)
698698 func modifyWeight (bV,dU) = {
699699 let db = if ((toBase58String(bD.caller.bytes) == valueOrElse(getString(this, Y()), "")))
700700 then true
701701 else bE(bD)
702702 if ((db == db))
703703 then {
704704 let aA = aY(aD(bV))
705705 let dV = ae(aA)
706706 let dW = ae(g)
707707 let dX = valueOrElse(getInteger(dW), 0)
708708 let dn = valueOrElse(getInteger(dV), 0)
709709 let dY = dU
710710 let bt = split(aY(O()), m)
711711 let cX = bv(bt)
712712 let dZ = invoke(cX, "onModifyWeight", [bV, aA], nil)
713713 if ((dZ == dZ))
714714 then {
715715 let ea = if ((dX == 0))
716716 then nil
717717 else [IntegerEntry(dW, 0)]
718718 let eb = ag(aA, 0)
719719 let ec = getInteger(eb)
720720 let ed = if ((ec == unit))
721721 then nil
722722 else [DeleteEntry(eb)]
723723 (([IntegerEntry(dV, dY)] ++ ea) ++ ed)
724724 }
725725 else throw("Strict value is not equal to itself.")
726726 }
727727 else throw("Strict value is not equal to itself.")
728728 }
729729
730730
731731
732732 @Callable(bD)
733733 func modifyWeights (ee,ef,eg,eh) = {
734734 let db = bE(bD)
735735 if ((db == db))
736736 then {
737737 let ei = ((5 * f) / 100)
738738 let ej = ((5 * f) / 100)
739739 let ek = ((5 * f) / 100)
740740 let bt = split(aY(O()), m)
741741 let el = bv(bt)
742742 let em = bw(bt)
743743 let en = ae(ee)
744744 let eo = ae(ef)
745745 let ep = ae(eg)
746746 let eq = ae(eh)
747747 let er = bb(en)
748748 let es = bb(eo)
749749 let et = (er - ek)
750750 let eu = (es - ek)
751751 if ((0 >= et))
752752 then K(("invalid btcWeightNew: " + toString(et)))
753753 else if ((0 >= eu))
754754 then K(("invalid ethWeightNew: " + toString(eu)))
755755 else {
756756 let ev = aY(aC(ee))
757757 let ew = aY(aC(ef))
758758 let ex = aY(aC(eg))
759759 let ey = aY(aC(eh))
760760 let ez = invoke(el, "onModifyWeight", [ev, ee], nil)
761761 if ((ez == ez))
762762 then {
763763 let eA = invoke(el, "onModifyWeight", [ew, ef], nil)
764764 if ((eA == eA))
765765 then {
766766 let eB = invoke(el, "onModifyWeight", [ex, eg], nil)
767767 if ((eB == eB))
768768 then {
769769 let eC = invoke(el, "onModifyWeight", [ey, eh], nil)
770770 if ((eC == eC))
771771 then [IntegerEntry(en, et), IntegerEntry(eo, eu), IntegerEntry(ep, ei), IntegerEntry(eq, ej), IntegerEntry(ag(ee, 0), er), IntegerEntry(ag(ef, 0), es), IntegerEntry(ag(eg, 0), ei), IntegerEntry(ag(eh, 0), ej)]
772772 else throw("Strict value is not equal to itself.")
773773 }
774774 else throw("Strict value is not equal to itself.")
775775 }
776776 else throw("Strict value is not equal to itself.")
777777 }
778778 else throw("Strict value is not equal to itself.")
779779 }
780780 }
781781 else throw("Strict value is not equal to itself.")
782782 }
783783
784784
785785
786786 @Callable(bD)
787787 func checkWxEmissionPoolLabel (aF,aG) = {
788788 let eD = {
789789 let bf = getBoolean(aE(aF, aG))
790790 if ($isInstanceOf(bf, "Boolean"))
791791 then {
792792 let cJ = bf
793793 cJ
794794 }
795795 else false
796796 }
797797 $Tuple2(nil, eD)
798798 }
799799
800800
801801
802802 @Callable(bD)
803803 func setWxEmissionPoolLabel (aF,aG) = {
804804 let db = cq(bD)
805805 if ((db == db))
806806 then $Tuple2([BooleanEntry(aE(aF, aG), true)], unit)
807807 else throw("Strict value is not equal to itself.")
808808 }
809809
810810
811811
812812 @Callable(bD)
813813 func deleteWxEmissionPoolLabel (aF,aG) = {
814814 let db = if ((bD.caller == this))
815815 then true
816816 else cq(bD)
817817 if ((db == db))
818818 then $Tuple2([DeleteEntry(aE(aF, aG))], unit)
819819 else throw("Strict value is not equal to itself.")
820820 }
821821
822822
823823
824824 @Callable(bD)
825825 func onVerificationLoss (aT) = {
826826 let db = if ((toBase58String(bD.caller.bytes) == valueOrElse(getString(this, X()), "")))
827827 then true
828828 else bE(bD)
829829 if ((db == db))
830830 then {
831831 let di = bx()
832832 let eE = if ((size(di) > 0))
833833 then true
834834 else K("invalid price assets")
835835 if ((eE == eE))
836836 then {
837837 func eF (eG,eH) = {
838838 let cD = invoke(this, "deleteWxEmissionPoolLabel", [aT, eH], nil)
839839 if ((cD == cD))
840840 then unit
841841 else throw("Strict value is not equal to itself.")
842842 }
843843
844844 let eI = {
845845 let eJ = di
846846 let eK = size(eJ)
847847 let eL = unit
848848 func eM (eN,eO) = if ((eO >= eK))
849849 then eN
850850 else eF(eN, eJ[eO])
851851
852852 func eP (eN,eO) = if ((eO >= eK))
853853 then eN
854854 else throw("List size exceeds 11")
855855
856856 eP(eM(eM(eM(eM(eM(eM(eM(eM(eM(eM(eM(eL, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
857857 }
858858 if ((eI == eI))
859859 then $Tuple2(nil, unit)
860860 else throw("Strict value is not equal to itself.")
861861 }
862862 else throw("Strict value is not equal to itself.")
863863 }
864864 else throw("Strict value is not equal to itself.")
865865 }
866866
867867
868868
869869 @Callable(bD)
870870 func isPoolOneTokenOperationsDisabledREADONLY (af) = {
871871 let dI = ch(af)
872872 let aq = $Tuple2(parseIntValue(dI[C]), parseIntValue(dI[D]))
873873 let eQ = valueOrElse(getBoolean(ap(aq)), false)
874874 let eR = valueOrElse(getBoolean(as()), false)
875875 $Tuple2(nil, if (eR)
876876 then true
877877 else eQ)
878878 }
879879
880880
881881
882882 @Callable(bD)
883883 func getInFeeREADONLY (af) = {
884884 let eS = ct(aH(af), aI(), 0)
885885 $Tuple2(nil, eS)
886886 }
887887
888888
889889
890890 @Callable(bD)
891891 func getOutFeeREADONLY (af) = {
892892 let eS = ct(aJ(af), aK(), fraction(10, b, 10000))
893893 $Tuple2(nil, eS)
894894 }
895895
896896
897897
898898 @Callable(bD)
899899 func poolInfoREADONLY (eT,eU) = {
900900 let eV = getInteger(this, ak(eT))
901901 let eW = getInteger(this, ak(eU))
902902 let eX = getString(this, aB(value(eV), value(eW)))
903903 let eY = getString(this, aC(value(eX)))
904904 let dv = if (if (isDefined(eV))
905905 then isDefined(eW)
906906 else false)
907907 then isDefined(eX)
908908 else false
909909 let eZ = if (dv)
910910 then $Tuple2(addressFromStringValue(value(eX)), bc(value(eY)))
911911 else unit
912912 $Tuple2(nil, eZ)
913913 }
914914
915915
916916
917917 @Callable(bD)
918918 func getPoolStatusREADONLY (af) = {
919919 let ci = split(aY(az(af)), m)
920920 let an = ci[1]
921921 let ao = ci[2]
922922 let cz = split(aY(am(an, ao)), m)
923923 $Tuple2(nil, parseIntValue(cz[w]))
924924 }
925925
926926
927927
928928 @Callable(bD)
929929 func getPoolConfigREADONLY (af) = {
930930 let ci = split(aY(az(af)), m)
931931 let an = ci[1]
932932 let ao = ci[2]
933933 let cz = split(aY(am(an, ao)), m)
934934 $Tuple2(nil, cz)
935935 }
936936
937937
938938
939939 @Callable(bD)
940940 func getPoolConfigByLpAssetIdREADONLY (dA) = {
941941 let ci = split(aY(at(dA)), m)
942942 let an = ci[1]
943943 let ao = ci[2]
944944 let cz = split(aY(am(an, ao)), m)
945945 $Tuple2(nil, cz)
946946 }
947947
948948
949949
950950 @Callable(bD)
951951 func poolExistsREADONLY (aF,aG) = $Tuple2(nil, cw(aF, aG))
952952
953953
954954
955955 @Callable(bD)
956956 func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aL(af)), false))
957957
958958
959959
960960 @Callable(bD)
961961 func getChangeAmpConfigREADONLY (af) = {
962962 let fa = getIntegerValue(aM(af))
963963 let fb = getIntegerValue(aN(af))
964964 let fc = getIntegerValue(aO(af))
965965 $Tuple2(nil, [fa, fb, fc])
966966 }
967967
968968
969969
970970 @Callable(bD)
971971 func getPoolWeightREADONLY (bV) = {
972972 let af = aY(aD(bV))
973973 let fd = valueOrElse(getInteger(ae(af)), 0)
974974 $Tuple2(nil, fd)
975975 }
976976
977977
978978
979979 @Callable(bD)
980980 func deletePool (aA) = {
981981 let db = if (bE(bD))
982982 then true
983983 else bA
984984 if ((db == db))
985985 then {
986- let ci = split(aY(az(aA)), m)
987- let an = parseIntValue(ci[1])
988- let ao = parseIntValue(ci[2])
989- let aF = getStringValue(ai(an))
990- let aG = getStringValue(ai(ao))
991- let bV = aY(aC(aA))
992- let fe = addressFromStringValue(getStringValue(Z()))
993- let ff = invoke(fe, "deletePool", [aF, aG], nil)
994- if ((ff == ff))
986+ let fe = if ((valueOrElse(getInteger(ae(aA)), 0) == 0))
987+ then true
988+ else K("Pool weight is not Zero")
989+ if ((fe == fe))
995990 then {
996- let dh = addressFromStringValue(getStringValue(Y()))
997- let fg = invoke(dh, "deletePool", [aF, aG], nil)
991+ let ci = split(aY(az(aA)), m)
992+ let an = parseIntValue(ci[1])
993+ let ao = parseIntValue(ci[2])
994+ let aF = getStringValue(ai(an))
995+ let aG = getStringValue(ai(ao))
996+ let bV = aY(aC(aA))
997+ let ff = addressFromStringValue(getStringValue(Z()))
998+ let fg = invoke(ff, "deletePool", [aF, aG], nil)
998999 if ((fg == fg))
999- then [DeleteEntry(aC(aA)), DeleteEntry(az(aA)), DeleteEntry(av(toString(an), toString(ao))), DeleteEntry(aB(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(at(bV)), DeleteEntry(aD(bV)), DeleteEntry(aE(aF, aG)), DeleteEntry(ae(aA)), DeleteEntry(ay(aA)), DeleteEntry(aH(aA)), DeleteEntry(aJ(aA)), DeleteEntry(aL(aA)), DeleteEntry(aM(aA)), DeleteEntry(aN(aA)), DeleteEntry(aO(aA))]
1000+ then {
1001+ let dh = addressFromStringValue(getStringValue(Y()))
1002+ let fh = invoke(dh, "deletePool", [aF, aG], nil)
1003+ if ((fh == fh))
1004+ then {
1005+ let dg = addressFromStringValue(getStringValue(X()))
1006+ let fi = invoke(dg, "deletePool", [aF, aG], nil)
1007+ if ((fi == fi))
1008+ then [DeleteEntry(aC(aA)), DeleteEntry(az(aA)), DeleteEntry(av(toString(an), toString(ao))), DeleteEntry(aB(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(at(bV)), DeleteEntry(aD(bV)), DeleteEntry(aE(aF, aG)), DeleteEntry(ae(aA)), DeleteEntry(ay(aA)), DeleteEntry(aH(aA)), DeleteEntry(aJ(aA)), DeleteEntry(aL(aA)), DeleteEntry(aM(aA)), DeleteEntry(aN(aA)), DeleteEntry(aO(aA))]
1009+ else throw("Strict value is not equal to itself.")
1010+ }
1011+ else throw("Strict value is not equal to itself.")
1012+ }
10001013 else throw("Strict value is not equal to itself.")
10011014 }
10021015 else throw("Strict value is not equal to itself.")
10031016 }
10041017 else throw("Strict value is not equal to itself.")
10051018 }
10061019
10071020
1008-@Verifier(fh)
1009-func fi () = {
1010- let fj = {
1021+@Verifier(fj)
1022+func fk () = {
1023+ let fl = {
10111024 let bf = by()
10121025 if ($isInstanceOf(bf, "ByteVector"))
10131026 then {
10141027 let bF = bf
10151028 bF
10161029 }
10171030 else if ($isInstanceOf(bf, "Unit"))
1018- then fh.senderPublicKey
1031+ then fj.senderPublicKey
10191032 else throw("Match error")
10201033 }
1021- sigVerify(fh.bodyBytes, fh.proofs[0], fj)
1034+ sigVerify(fj.bodyBytes, fj.proofs[0], fl)
10221035 }
10231036

github/deemru/w8io/169f3d6 
117.55 ms