tx · 2WDGMsVG2DdTLoiSysPmRoqNaYJdB3VXmKUPdVTqdkUF

3N1xHtFLmVxy153ELFALTEt3HuVXvv4rnqb:  -0.03000000 Waves

2022.11.09 10:30 [2309299] smart account 3N1xHtFLmVxy153ELFALTEt3HuVXvv4rnqb > SELF 0.00000000 Waves

{ "type": 13, "id": "2WDGMsVG2DdTLoiSysPmRoqNaYJdB3VXmKUPdVTqdkUF", "fee": 3000000, "feeAssetId": null, "timestamp": 1667979110758, "version": 1, "sender": "3N1xHtFLmVxy153ELFALTEt3HuVXvv4rnqb", "senderPublicKey": "FbottDhjAqYmSxiGz2jbuu6xQEvdqZoV43vksDrkTTgb", "proofs": [ "4vo3b9f5EmAPWt6pSBFkB4h4onfvh4JAQfibDrbPnB4Uax9CQELqZGGTbkzg3niEz5Gp9cKFL4ioLvCkmFrPTEMQ" ], "script": "base64:BgLNJwgCEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAggBEgQKAggBEgQKAggBEgUKAwEIARIAEgQKAgEBEgMKAQESBQoDAQEBEgQKAggIEgASAwoBCBIFCgMBAQESBAoCAQESBAoCCAESBAoCCAgSCwoJCAEBAgECCAQEEgYKBAgIAQgSABIDCgEBEgMKAQESBAoCCAEiCmxQZGVjaW1hbHMiBnNjYWxlOCIMc2NhbGU4QmlnSW50IgdzY2FsZTE4Igp6ZXJvQmlnSW50IgRiaWcwIgRiaWcxIgRiaWcyIgt3YXZlc1N0cmluZyIDU0VQIgpQb29sQWN0aXZlIg9Qb29sUHV0RGlzYWJsZWQiE1Bvb2xNYXRjaGVyRGlzYWJsZWQiDFBvb2xTaHV0ZG93biIOaWR4UG9vbEFkZHJlc3MiDWlkeFBvb2xTdGF0dXMiEGlkeFBvb2xMUEFzc2V0SWQiDWlkeEFtdEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIOaWR4QW10QXNzZXREY20iEGlkeFByaWNlQXNzZXREY20iDmlkeElBbXRBc3NldElkIhBpZHhJUHJpY2VBc3NldElkIg1pZHhMUEFzc2V0RGNtIhJpZHhQb29sQW10QXNzZXRBbXQiFGlkeFBvb2xQcmljZUFzc2V0QW10IhFpZHhQb29sTFBBc3NldEFtdCIZaWR4RmFjdG9yeVN0YWtpbmdDb250cmFjdCIaaWR4RmFjdG9yeVNsaXBwYWdlQ29udHJhY3QiDHRlc3RpbmdnZ2dnZyIMc3Nzc3Nzc3Nzc3NzIgV0b1gxOCIHb3JpZ1ZhbCINb3JpZ1NjYWxlTXVsdCIHZnJvbVgxOCIDdmFsIg9yZXN1bHRTY2FsZU11bHQiB3RvU2NhbGUiA2FtdCIIcmVzU2NhbGUiCGN1clNjYWxlIgNhYnMiCWFic0JpZ0ludCICZmMiA21wayIEcG1wayICcGwiAnBoIgFoIgl0aW1lc3RhbXAiA3BhdSILdXNlckFkZHJlc3MiBHR4SWQiA2dhdSICYWEiAnBhIgZrZXlGZWUiCmZlZURlZmF1bHQiA2ZlZSIQa2V5RmFjdG9yeUNvbmZpZyINa2V5TWF0Y2hlclB1YiIpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMiE3Bvb2xDb250cmFjdEFkZHJlc3MiDWtleVBvb2xDb25maWciCWlBbXRBc3NldCILaVByaWNlQXNzZXQiH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQiDGJhc2VBc3NldFN0ciITa2V5QWxsUG9vbHNTaHV0ZG93biINa2V5UG9vbFdlaWdodCIPY29udHJhY3RBZGRyZXNzIhZrZXlBbGxvd2VkTHBTY3JpcHRIYXNoIhZrZXlGZWVDb2xsZWN0b3JBZGRyZXNzIg90aHJvd09yZGVyRXJyb3IiCm9yZGVyVmFsaWQiC3NlbmRlclZhbGlkIgxtYXRjaGVyVmFsaWQiD2dldFN0cmluZ09yRmFpbCIHYWRkcmVzcyIDa2V5IgxnZXRJbnRPckZhaWwiCHRocm93RXJyIgNtc2ciD2ZhY3RvcnlDb250cmFjdCITZmVlQ29sbGVjdG9yQWRkcmVzcyIQaXNHbG9iYWxTaHV0ZG93biITZ2V0TWF0Y2hlclB1Yk9yRmFpbCINZ2V0UG9vbENvbmZpZyIIYW10QXNzZXQiCnByaWNlQXNzZXQiDHBhcnNlQXNzZXRJZCIFaW5wdXQiD2Fzc2V0SWRUb1N0cmluZyIPcGFyc2VQb29sQ29uZmlnIgpwb29sQ29uZmlnIhBwb29sQ29uZmlnUGFyc2VkIgskdDA3NTg3Nzc1MyIOY2ZnUG9vbEFkZHJlc3MiDWNmZ1Bvb2xTdGF0dXMiDGNmZ0xwQXNzZXRJZCIQY2ZnQW1vdW50QXNzZXRJZCIPY2ZnUHJpY2VBc3NldElkIhZjZmdBbW91bnRBc3NldERlY2ltYWxzIhVjZmdQcmljZUFzc2V0RGVjaW1hbHMiEGdldEZhY3RvcnlDb25maWciD3N0YWtpbmdDb250cmFjdCIQc2xpcHBhZ2VDb250cmFjdCIRZGF0YVB1dEFjdGlvbkluZm8iDWluQW10QXNzZXRBbXQiD2luUHJpY2VBc3NldEFtdCIIb3V0THBBbXQiBXByaWNlIh1zbGlwcGFnZVRvbGVyYW5jZVBhc3NlZEJ5VXNlciIVc2xpcHBhZ2VUb2xlcmFuY2VSZWFsIgh0eEhlaWdodCILdHhUaW1lc3RhbXAiEnNsaXBhZ2VBbXRBc3NldEFtdCIUc2xpcGFnZVByaWNlQXNzZXRBbXQiEWRhdGFHZXRBY3Rpb25JbmZvIg5vdXRBbXRBc3NldEFtdCIQb3V0UHJpY2VBc3NldEFtdCIHaW5McEFtdCINZ2V0QWNjQmFsYW5jZSIHYXNzZXRJZCIPY2FsY1ByaWNlQmlnSW50IghwckFtdFgxOCIIYW1BbXRYMTgiEHByaXZhdGVDYWxjUHJpY2UiCmFtQXNzZXREY20iCnByQXNzZXREY20iBWFtQW10IgVwckFtdCIOYW10QXNzZXRBbXRYMTgiEHByaWNlQXNzZXRBbXRYMTgiCmNhbGNQcmljZXMiBWxwQW10IgNjZmciC2FtdEFzc2V0RGNtIg1wcmljZUFzc2V0RGNtIghwcmljZVgxOCIIbHBBbXRYMTgiE2xwUHJpY2VJbkFtQXNzZXRYMTgiE2xwUHJpY2VJblByQXNzZXRYMTgiD2NhbGN1bGF0ZVByaWNlcyIGcHJpY2VzIhRlc3RpbWF0ZUdldE9wZXJhdGlvbiIGdHhJZDU4IgpwbXRBc3NldElkIghwbXRMcEFtdCIJbHBBc3NldElkIglhbUFzc2V0SWQiCXByQXNzZXRJZCIKcG9vbFN0YXR1cyIKbHBFbWlzc2lvbiIJYW1CYWxhbmNlIgxhbUJhbGFuY2VYMTgiCXByQmFsYW5jZSIMcHJCYWxhbmNlWDE4IgtjdXJQcmljZVgxOCIIY3VyUHJpY2UiC3BtdExwQW10WDE4Ig1scEVtaXNzaW9uWDE4IgtvdXRBbUFtdFgxOCILb3V0UHJBbXRYMTgiCG91dEFtQW10IghvdXRQckFtdCIFc3RhdGUiFGVzdGltYXRlUHV0T3BlcmF0aW9uIhFzbGlwcGFnZVRvbGVyYW5jZSIMaW5BbUFzc2V0QW10IgtpbkFtQXNzZXRJZCIMaW5QckFzc2V0QW10IgtpblByQXNzZXRJZCIKaXNFdmFsdWF0ZSIGZW1pdExwIgxhbUFzc2V0SWRTdHIiDHByQXNzZXRJZFN0ciILaUFtdEFzc2V0SWQiDWlQcmljZUFzc2V0SWQiDmluQW1Bc3NldElkU3RyIg5pblByQXNzZXRJZFN0ciIPaW5BbUFzc2V0QW10WDE4Ig9pblByQXNzZXRBbXRYMTgiDHVzZXJQcmljZVgxOCIDcmVzIgtzbGlwcGFnZVgxOCIUc2xpcHBhZ2VUb2xlcmFuY2VYMTgiCnByVmlhQW1YMTgiCmFtVmlhUHJYMTgiDGV4cGVjdGVkQW10cyIRZXhwQW10QXNzZXRBbXRYMTgiE2V4cFByaWNlQXNzZXRBbXRYMTgiCWNhbGNMcEFtdCIOY2FsY0FtQXNzZXRQbXQiDmNhbGNQckFzc2V0UG10IgxzbGlwcGFnZUNhbGMiCWVtaXRMcEFtdCIGYW1EaWZmIgZwckRpZmYiC2NvbW1vblN0YXRlIht2YWxpZGF0ZU1hdGNoZXJPcmRlckFsbG93ZWQiBW9yZGVyIgphbXRBc3NldElkIgxwcmljZUFzc2V0SWQiEmFjY0FtdEFzc2V0QmFsYW5jZSIUYWNjUHJpY2VBc3NldEJhbGFuY2UiDW9yZGVyQW10QXNzZXQiEG9yZGVyQW10QXNzZXRTdHIiD29yZGVyUHJpY2VBc3NldCISb3JkZXJQcmljZUFzc2V0U3RyIgpvcmRlclByaWNlIghwcmljZURjbSIQY2FzdGVkT3JkZXJQcmljZSIRaXNPcmRlclByaWNlVmFsaWQiCWNvbW1vbkdldCIBaSIDcG10IgZwbXRBbXQiCWNvbW1vblB1dCIKYW1Bc3NldFBtdCIKcHJBc3NldFBtdCIGZXN0UHV0IgRlbWl0IgZhbW91bnQiB2VtaXRJbnYiDWVtaXRJbnZMZWdhY3kiByRtYXRjaDAiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCIHdGFrZUZlZSIJZmVlQW1vdW50Ig9jYWxjUHV0T25lVG9rZW4iEHBheW1lbnRBbW91bnRSYXciDnBheW1lbnRBc3NldElkIgZpc0V2YWwiEGFtb3VudEJhbGFuY2VSYXciD3ByaWNlQmFsYW5jZVJhdyIUcGF5bWVudEluQW1vdW50QXNzZXQiDSR0MDIyNjE0MjI5MDciEGFtb3VudEJhbGFuY2VPbGQiD3ByaWNlQmFsYW5jZU9sZCINJHQwMjI5MTEyMzA2MCIUYW1vdW50QXNzZXRBbW91bnRSYXciE3ByaWNlQXNzZXRBbW91bnRSYXciEWFtb3VudEFzc2V0QW1vdW50IhBwcmljZUFzc2V0QW1vdW50Ig0kdDAyMzE4MjIzMjQxIg1wYXltZW50QW1vdW50IhBhbW91bnRCYWxhbmNlTmV3Ig9wcmljZUJhbGFuY2VOZXciC3ByaWNlTmV3WDE4IghwcmljZU5ldyIOcGF5bWVudEJhbGFuY2UiFHBheW1lbnRCYWxhbmNlQmlnSW50IgxzdXBwbHlCaWdJbnQiC2NoZWNoU3VwcGx5Ig1kZXBvc2l0QmlnSW50Igtpc3N1ZUFtb3VudCILcHJpY2VPbGRYMTgiCHByaWNlT2xkIgRsb3NzIg0kdDAyNDcxODI0ODg1IgdiYWxhbmNlIg9pc3N1ZUFtb3VudEJvdGgiD2NhbGNHZXRPbmVUb2tlbiIKb3V0QXNzZXRJZCIGY2hlY2tzIhBvdXRJbkFtb3VudEFzc2V0Ig1iYWxhbmNlQmlnSW50IgxhbUJhbGFuY2VPbGQiDHByQmFsYW5jZU9sZCIKb3V0QmFsYW5jZSIQb3V0QmFsYW5jZUJpZ0ludCIOcmVkZWVtZWRCaWdJbnQiCWFtb3VudFJhdyINJHQwMjY0NjUyNjUxNSILdG90YWxBbW91bnQiDSR0MDI2NTE5MjY3NDUiC291dEFtQW1vdW50IgtvdXRQckFtb3VudCIMYW1CYWxhbmNlTmV3IgxwckJhbGFuY2VOZXciGGFtb3VudEJvdGhJblBheW1lbnRBc3NldCIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIBcyIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiC211c3RNYW5hZ2VyIgJwZCICcGsiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgtjaGVja0NhbGxlciIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iD3Nob3VsZEF1dG9TdGFrZSIEYW1JZCIEcHJJZCIMc2xpcHBhZ2VBSW52IgxzbGlwcGFnZVBJbnYiCmxwVHJhbnNmZXIiC3NscFN0YWtlSW52IgttYXhTbGlwcGFnZSIMbWluT3V0QW1vdW50IglhdXRvU3Rha2UiIGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIgFAIg1pc1B1dERpc2FibGVkIgdwYXltZW50Ig0kdDAzMTQ1NTMxNTgyIhNlbWl0QW1vdW50RXN0aW1hdGVkIgVib251cyIKZW1pdEFtb3VudCIIc3Rha2VJbnYiB3NlbmRGZWUiDSR0MDMyMzExMzI0NDYiDW91dEFzc2V0SWRTdHIiDWlzR2V0RGlzYWJsZWQiDSR0MDMzMjE4MzMzNTAiD2Ftb3VudEVzdGltYXRlZCIHYnVybkludiINYXNzZXRUcmFuc2ZlciINJHQwMzM5ODUzNDEyMyINdW5zdGFrZUFtb3VudCIKdW5zdGFrZUludiINJHQwMzQ5MTUzNTA0NSIJb3V0QW10QW10IhRidXJuTFBBc3NldE9uRmFjdG9yeSISbm9MZXNzVGhlbkFtdEFzc2V0IhRub0xlc3NUaGVuUHJpY2VBc3NldCINY2hlY2tQYXltZW50cyIPY2hlY2tQb29sU3RhdHVzIhVub0xlc3NUaGVuQW1vdW50QXNzZXQiDGNoZWNrQW1vdW50cyILYW10QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiDXBvb2xMUEJhbGFuY2UiCnByaWNlc0xpc3QiD2xwQW10QXNzZXRTaGFyZSIRbHBQcmljZUFzc2V0U2hhcmUiCnBvb2xXZWlnaHQiDGN1clByaWNlQ2FsYyIMYW1CYWxhbmNlUmF3IgxwckJhbGFuY2VSYXciD2FtQmFsYW5jZVJhd1gxOCIPcHJCYWxhbmNlUmF3WDE4IhBwYXltZW50THBBc3NldElkIgxwYXltZW50THBBbXQiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleSIKbWF0Y2hlclB1YiIHbmV3SGFzaCILYWxsb3dlZEhhc2giC2N1cnJlbnRIYXNoZAABYQAIAAFiAIDC1y8AAWMJALYCAQCAwtcvAAFkCQC2AgEAgICQu7rWrfANAAFlCQC2AgEAAAABZgkAtgIBAAAAAWcJALYCAQABAAFoCQC2AgEAAgABaQIFV0FWRVMAAWoCAl9fAAFrAAEAAWwAAgABbQADAAFuAAQAAW8AAQABcAACAAFxAAMAAXIABAABcwAFAAF0AAYAAXUABwABdgAIAAF3AAkAAXgACgABeQABAAF6AAIAAUEAAwABQgABAAFDAAcAAUQAAQABRQABAQFGAgFHAUgJALwCAwkAtgIBBQFHBQFkCQC2AgEFAUgBAUkCAUoBSwkAoAMBCQC8AgMFAUoJALYCAQUBSwUBZAEBTAMBTQFOAU8JAGsDBQFNBQFOBQFPAQFQAQFKAwkAZgIAAAUBSgkBAS0BBQFKBQFKAQFRAQFKAwkAvwICBQFlBQFKCQC+AgEFAUoFAUoBAVIAAhMlc19fZmFjdG9yeUNvbnRyYWN0AQFTAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAVQAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAVUAAhElcyVzX19wcmljZV9fbGFzdAEBVgIBVwFYCQC5CQIJAMwIAgIYJXMlcyVkJWRfX3ByaWNlX19oaXN0b3J5CQDMCAIJAKQDAQUBVwkAzAgCCQCkAwEFAVgFA25pbAUBagEBWQIBWgJhYQkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAVoCAl9fBQJhYQECYWICAVoCYWEJAKwCAgkArAICCQCsAgICCyVzJXMlc19fR19fBQFaAgJfXwUCYWEBAmFjAAIPJXNfX2Ftb3VudEFzc2V0AQJhZAACDiVzX19wcmljZUFzc2V0AAJhZQIHJXNfX2ZlZQACYWYJAGsDAAoFAWIAkE4AAmFnCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFlBQJhZgECYWgAAhElc19fZmFjdG9yeUNvbmZpZwECYWkAAhglcyVzX19tYXRjaGVyX19wdWJsaWNLZXkBAmFqAQJhawkArAICCQCsAgICCCVzJXMlc19fBQJhawIgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAmFsAgJhbQJhbgkArAICCQCsAgIJAKwCAgkArAICAgglZCVkJXNfXwUCYW0CAl9fBQJhbgIIX19jb25maWcBAmFvAQJhcAkArAICAiglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQJhcAECYXEAAgwlc19fc2h1dGRvd24BAmFyAQJhcwkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFzAQJhdAACFyVzX19hbGxvd2VkTHBTY3JpcHRIYXNoAAJhdQIXJXNfX2ZlZUNvbGxlY3RvckFkZHJlc3MBAmF2AwJhdwJheAJheQkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAiRvcmRlciB2YWxpZGF0aW9uIGZhaWxlZDogb3JkZXJWYWxpZD0JAKUDAQUCYXcCDSBzZW5kZXJWYWxpZD0JAKUDAQUCYXgCDiBtYXRjaGVyVmFsaWQ9CQClAwEFAmF5AQJhegICYUECYUIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhQQUCYUIJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUCYUEJAMwIAgIBLgkAzAgCBQJhQgkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQJhQwICYUECYUIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQJhQQUCYUIJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUCYUEJAMwIAgIBLgkAzAgCBQJhQgkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQJhRAECYUUJAAIBCQC5CQIJAMwIAgIIbHAucmlkZToJAMwIAgUCYUUFA25pbAIBIAACYUYJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhegIFBHRoaXMJAQFSAAACYUcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhegIFAmFGBQJhdQECYUgACQELdmFsdWVPckVsc2UCCQCbCAIFAmFGCQECYXEABwECYUkACQDZBAEJAQJhegIFAmFGCQECYWkAAQJhSgAEAmFLCQECYXoCBQR0aGlzCQECYWMABAJhTAkBAmF6AgUEdGhpcwkBAmFkAAQCYW4JAQJhQwIFAmFGCQECYW8BBQJhTAQCYW0JAQJhQwIFAmFGCQECYW8BBQJhSwkAtQkCCQECYXoCBQJhRgkBAmFsAgkApAMBBQJhbQkApAMBBQJhbgUBagECYU0BAmFOAwkAAAIFAmFOBQFpBQR1bml0CQDZBAEFAmFOAQJhTwECYU4DCQAAAgUCYU4FBHVuaXQFAWkJANgEAQkBBXZhbHVlAQUCYU4BAmFQAQJhUQkAmQoHCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFRBQFvCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYVEFAXAJANkEAQkAkQMCBQJhUQUBcQkBAmFNAQkAkQMCBQJhUQUBcgkBAmFNAQkAkQMCBQJhUQUBcwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFRBQF0CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYVEFAXUAAmFSCQECYVABCQECYUoAAAJhUwUCYVIAAmFUCAUCYVMCXzEAAmFVCAUCYVMCXzIAAmFWCAUCYVMCXzMAAmFXCAUCYVMCXzQAAmFYCAUCYVMCXzUAAmFZCAUCYVMCXzYAAmFaCAUCYVMCXzcBAmJhAAkAtQkCCQECYXoCBQJhRgkBAmFoAAUBagACYmIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIJAQJiYQAFAUICGWluY29ycmVjdCBzdGFraW5nIGFkZHJlc3MAAmJjCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCCQECYmEABQFDAhlpbmNvcnJlY3Qgc3Rha2luZyBhZGRyZXNzAQJiZAoCYmUCYmYCYmcCYmgCYmkCYmoCYmsCYmwCYm0CYm4JALkJAgkAzAgCAhQlZCVkJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJlCQDMCAIJAKQDAQUCYmYJAMwIAgkApAMBBQJiZwkAzAgCCQCkAwEFAmJoCQDMCAIJAKQDAQUCYmkJAMwIAgkApAMBBQJiagkAzAgCCQCkAwEFAmJrCQDMCAIJAKQDAQUCYmwJAMwIAgkApAMBBQJibQkAzAgCCQCkAwEFAmJuBQNuaWwFAWoBAmJvBgJicAJicQJicgJiaAJiawJibAkAuQkCCQDMCAICDCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJwCQDMCAIJAKQDAQUCYnEJAMwIAgkApAMBBQJicgkAzAgCCQCkAwEFAmJoCQDMCAIJAKQDAQUCYmsJAMwIAgkApAMBBQJibAUDbmlsBQFqAQJicwECYnQDCQAAAgUCYnQCBVdBVkVTCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQDZBAEFAmJ0AQJidQICYnYCYncJALwCAwUCYnYFAWQFAmJ3AQJieAQCYnkCYnoCYkECYkIEAmJDCQEBRgIFAmJBBQJieQQCYkQJAQFGAgUCYkIFAmJ6CQECYnUCBQJiRAUCYkMBAmJFAwJiQQJiQgJiRgQCYkcJAQJhSgAEAmJICQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkcFAXQEAmJJCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkcFAXUEAmJKCQECYngEBQJiSAUCYkkFAmJBBQJiQgQCYncJAQFGAgUCYkEFAmJIBAJidgkBAUYCBQJiQgUCYkkEAmJLCQEBRgIFAmJGBQFiBAJiTAkBAmJ1AgUCYncFAmJLBAJiTQkBAmJ1AgUCYnYFAmJLCQDMCAIFAmJKCQDMCAIFAmJMCQDMCAIFAmJNBQNuaWwBAmJOAwJiQQJiQgJiRgQCYk8JAQJiRQMFAmJBBQJiQgUCYkYJAMwIAgkBAUkCCQCRAwIFAmJPAAAFAWIJAMwIAgkBAUkCCQCRAwIFAmJPAAEFAWIJAMwIAgkBAUkCCQCRAwIFAmJPAAIFAWIFA25pbAECYlAEAmJRAmJSAmJTAVoEAmJHCQECYUoABAJiVAkAkQMCBQJiRwUBcQQCYlUJAJEDAgUCYkcFAXIEAmJWCQCRAwIFAmJHBQFzBAJieQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJHBQF0BAJiegkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJHBQF1BAJiVwkAkQMCBQJiRwUBcAQCYlgICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQkA2QQBBQJiVAkArAICCQCsAgICBkFzc2V0IAUCYlQCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5AwkBAiE9AgUCYlQFAmJSCQACAQIVSW52YWxpZCBhc3NldCBwYXNzZWQuBAJiWQkBAmJzAQUCYlUEAmJaCQEBRgIFAmJZBQJieQQCY2EJAQJicwEFAmJWBAJjYgkBAUYCBQJjYQUCYnoEAmNjCQECYnUCBQJjYgUCYloEAmNkCQEBSQIFAmNjBQFiBAJjZQkBAUYCBQJiUwUBYgQCY2YJAQFGAgUCYlgFAWIEAmNnCQC8AgMFAmJaBQJjZQUCY2YEAmNoCQC8AgMFAmNiBQJjZQUCY2YEAmNpCQEBSQIFAmNnBQJieQQCY2oJAQFJAgUCY2gFAmJ6BAJjawMJAAACBQJiUQIABQNuaWwJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUBWgUCY2kDCQAAAgUCYlUCBVdBVkVTBQR1bml0CQDZBAEFAmJVCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAVoFAmNqAwkAAAIFAmJWAgVXQVZFUwUEdW5pdAkA2QQBBQJiVgkAzAgCCQELU3RyaW5nRW50cnkCCQECYWICCQClCAEFAVoFAmJRCQECYm8GBQJjaQUCY2oFAmJTBQJjZAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVUABQJjZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVYCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjZAUDbmlsCQCcCgoFAmNpBQJjagUCYlUFAmJWBQJiWQUCY2EFAmJYBQJjYwUCYlcFAmNrAQJjbAkCYlECY20CY24CY28CY3ACY3EBWgJjcgJjcwQCYkcJAQJhSgAEAmJUCQDZBAEJAJEDAgUCYkcFAXEEAmN0CQCRAwIFAmJHBQFyBAJjdQkAkQMCBQJiRwUBcwQCY3YJAJEDAgUCYkcFAXYEAmN3CQCRAwIFAmJHBQF3BAJiSAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJHBQF0BAJiSQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJHBQF1BAJiVwkAkQMCBQJiRwUBcAQCYlgICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYlQJAKwCAgkArAICAgZBc3NldCAJANgEAQUCYlQCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJjeAkA2AQBCQELdmFsdWVPckVsc2UCBQJjbwkA2QQBAgVXQVZFUwQCY3kJANgEAQkBC3ZhbHVlT3JFbHNlAgUCY3EJANkEAQIFV0FWRVMDAwkBAiE9AgUCY3QFAmN4BgkBAiE9AgUCY3UFAmN5CQACAQIiSW52YWxpZCBhbXQgb3IgcHJpY2UgYXNzZXQgcGFzc2VkLgQCYlkDBQJjcgkBAmJzAQUCY3QJAGUCCQECYnMBBQJjdAUCY24EAmNhAwUCY3IJAQJicwEFAmN1CQBlAgkBAmJzAQUCY3UFAmNwBAJjegkBAUYCBQJjbgUCYkgEAmNBCQEBRgIFAmNwBQJiSQQCY0IJAQJidQIFAmNBBQJjegQCYloJAQFGAgUCYlkFAmJIBAJjYgkBAUYCBQJjYQUCYkkEAmNDAwkAAAIFAmJYAAAEAmNjBQFlBAJjRAUBZQQCYksJAHYGCQC5AgIFAmN6BQJjQQAACQC2AgEABQABAAAFBERPV04JAJcKBQkBAUkCBQJiSwUBYgkBAUkCBQJjegUCYkgJAQFJAgUCY0EFAmJJCQECYnUCCQC3AgIFAmNiBQJjQQkAtwICBQJiWgUCY3oFAmNEBAJjYwkBAmJ1AgUCY2IFAmJaBAJjRAkAvAIDCQEBUQEJALgCAgUCY2MFAmNCBQFkBQJjYwQCY0UJAQFGAgUCY20FAWIDAwkBAiE9AgUCY2MFAWUJAL8CAgUCY0QFAmNFBwkAAgEJAKwCAgkArAICCQCsAgICD1ByaWNlIHNsaXBwYWdlIAkApgMBBQJjRAIeIGV4Y2VlZGVkIHRoZSBwYXNzZWQgbGltaXQgb2YgCQCmAwEFAmNFBAJjZgkBAUYCBQJiWAUBYgQCY0YJALwCAwUCY3oFAmNjBQFkBAJjRwkAvAIDBQJjQQUBZAUCY2MEAmNIAwkAvwICBQJjRgUCY0EJAJQKAgUCY0cFAmNBCQCUCgIFAmN6BQJjRgQCY0kIBQJjSAJfMQQCY0oIBQJjSAJfMgQCYksJALwCAwUCY2YFAmNKBQJjYgkAlwoFCQEBSQIFAmJLBQFiCQEBSQIFAmNJBQJiSAkBAUkCBQJjSgUCYkkFAmNjBQJjRAQCY0sIBQJjQwJfMQQCY0wIBQJjQwJfMgQCY00IBQJjQwJfMwQCY2QJAQFJAggFAmNDAl80BQFiBAJjTgkBAUkCCAUCY0MCXzUFAWIDCQBnAgAABQJjSwkAAgECNkludmFsaWQgY2FsY3VsYXRpb25zLiBMUCBjYWxjdWxhdGVkIGlzIGxlc3MgdGhhbiB6ZXJvLgQCY08DCQEBIQEFAmNzAAAFAmNLBAJjUAkAZQIFAmNuBQJjTAQCY1EJAGUCBQJjcAUCY00EAmNSCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVQAFAmNkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVgIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmNkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFZAgUBWgUCYlEJAQJiZAoFAmNMBQJjTQUCY08FAmNkBQJjbQUCY04FBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmNQBQJjUQUDbmlsCQCfCg0FAmNLBQJjTwUCY2QFAmJZBQJjYQUCYlgFAmJUBQJiVwUCY1IFAmNQBQJjUQUCY28FAmNxAQJjUwECY1QEAmJHCQECYUoABAJjVQkAkQMCBQJiRwUBcgQCY1YJAJEDAgUCYkcFAXMEAmJXCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkcFAXAEAmJICQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkcFAXQEAmJJCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkcFAXUEAmNXCQECYnMBBQJjVQQCY1gJAQJicwEFAmNWBAJjYwMJAAACCAUCY1QJb3JkZXJUeXBlBQNCdXkJAQJieAQFAmJIBQJiSQkAZAIFAmNXCAUCY1QGYW1vdW50BQJjWAkBAmJ4BAUCYkgFAmJJCQBlAgUCY1cIBQJjVAZhbW91bnQFAmNYBAJjZAkBAUkCBQJjYwUBYgMDAwkBAmFIAAYJAAACBQJiVwUBbQYJAAACBQJiVwUBbgkAAgECHEV4Y2hhbmdlIG9wZXJhdGlvbnMgZGlzYWJsZWQEAmNZCAgFAmNUCWFzc2V0UGFpcgthbW91bnRBc3NldAQCY1oDCQAAAgUCY1kFBHVuaXQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFAmNZBAJkYQgIBQJjVAlhc3NldFBhaXIKcHJpY2VBc3NldAQCZGIDCQAAAgUCZGEFBHVuaXQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFAmRhAwMJAQIhPQIFAmNaBQJjVQYJAQIhPQIFAmRiBQJjVgkAAgECE1dyb25nIG9yZGVyIGFzc2V0cy4EAmRjCAUCY1QFcHJpY2UEAmRkCQBrAwUBYgUCYkkFAmJIBAJkZQkBAUwDBQJkYwUBYgUCZGQEAmRmAwkAAAIIBQJjVAlvcmRlclR5cGUFA0J1eQkAZwIFAmNkBQJkZQkAZwIFAmRlBQJjZAYBAmRnAQJkaAMJAQIhPQIJAJADAQgFAmRoCHBheW1lbnRzAAEJAAIBAh1leGFjdGx5IDEgcGF5bWVudCBpcyBleHBlY3RlZAQCZGkJAQV2YWx1ZQEJAJEDAggFAmRoCHBheW1lbnRzAAAEAmJSCQEFdmFsdWUBCAUCZGkHYXNzZXRJZAQCZGoIBQJkaQZhbW91bnQEAmNDCQECYlAECQDYBAEIBQJkaA10cmFuc2FjdGlvbklkCQDYBAEFAmJSBQJkaggFAmRoBmNhbGxlcgQCY2kIBQJjQwJfMQQCY2oIBQJjQwJfMgQCYlcJAQ1wYXJzZUludFZhbHVlAQgFAmNDAl85BAJjawgFAmNDA18xMAMDCQECYUgABgkAAAIFAmJXBQFuCQACAQkArAICAixHZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJiVwkAlwoFBQJjaQUCY2oFAmRqBQJiUgUCY2sBAmRrAwJkaAJjbQJjcwMJAQIhPQIJAJADAQgFAmRoCHBheW1lbnRzAAIJAAIBAh9leGFjdGx5IDIgcGF5bWVudHMgYXJlIGV4cGVjdGVkBAJkbAkBBXZhbHVlAQkAkQMCCAUCZGgIcGF5bWVudHMAAAQCZG0JAQV2YWx1ZQEJAJEDAggFAmRoCHBheW1lbnRzAAEEAmRuCQECY2wJCQDYBAEIBQJkaA10cmFuc2FjdGlvbklkBQJjbQgFAmRsBmFtb3VudAgFAmRsB2Fzc2V0SWQIBQJkbQZhbW91bnQIBQJkbQdhc3NldElkCQClCAEIBQJkaAZjYWxsZXIHBQJjcwQCYlcJAQ1wYXJzZUludFZhbHVlAQgFAmRuAl84AwMDCQECYUgABgkAAAIFAmJXBQFsBgkAAAIFAmJXBQFuCQACAQkArAICAixQdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJiVwUCZG4BAmRvAQJkcAQCZHEJAPwHBAUCYUYCBGVtaXQJAMwIAgUCZHAFA25pbAUDbmlsAwkAAAIFAmRxBQJkcQQCZHIEAmRzBQJkcQMJAAECBQJkcwIHQWRkcmVzcwQCZHQFAmRzCQD8BwQFAmR0AgRlbWl0CQDMCAIFAmRwBQNuaWwFA25pbAUEdW5pdAMJAAACBQJkcgUCZHIFAmRwCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJkdQECZHAEAmR2CQBrAwUCZHAFAmFnBQFiCQCUCgIJAGUCBQJkcAUCZHYFAmR2AQJkdwQCZHgCZHkBWgJhYQQCZHoJAAACBQJhYQUEdW5pdAQCZEEJAQJicwEJAQJhTwEFAmFXBAJkQgkBAmJzAQkBAmFPAQUCYVgEAmRDAwkAAAIFAmR5BQJhVwYDCQAAAgUCZHkFAmFYBwkBAmFEAQINaW52YWxpZCBhc3NldAQCZEQDBQJkegkAlAoCBQJkQQUCZEIDBQJkQwkAlAoCCQBlAgUCZEEFAmR4BQJkQgkAlAoCBQJkQQkAZQIFAmRCBQJkeAQCZEUIBQJkRAJfMQQCZEYIBQJkRAJfMgQCZEcDBQJkQwkAlAoCBQJkeAAACQCUCgIAAAUCZHgEAmRICAUCZEcCXzEEAmRJCAUCZEcCXzIEAmRKCAkBAmR1AQUCZEgCXzEEAmRLCAkBAmR1AQUCZEkCXzEEAmRMCQECZHUBBQJkeAQCZE0IBQJkTAJfMQQCZHYIBQJkTAJfMgQCZE4JAGQCBQJkRQUCZEoEAmRPCQBkAgUCZEYFAmRLBAJkUAkBAmJ1AgkBAUYCBQJkTwUCYVoJAQFGAgUCZE4FAmFZBAJkUQkBAUkCBQJkUAUBYgQCZFIDBQJkQwUCZEUFAmRGBAJkUwkAtgIBBQJkUgQCZFQJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJhVgkArAICCQCsAgICBmFzc2V0IAkA2AQBBQJhVgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmRVAwkAvwICBQJkVAUBZgYJAQJhRAECImluaXRpYWwgZGVwb3NpdCByZXF1aXJlcyBhbGwgY29pbnMDCQAAAgUCZFUFAmRVBAJkVgkAtgIBBQJkTQQCZFcJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC6AgIJALkCAgUCZFQJALgCAgkBCnNxcnRCaWdJbnQECQC3AgIFAWQJALoCAgkAuQICBQJkVgUBZAUCZFMAEgASBQRET1dOBQFkBQFkBQNuaWwEAmNSAwUCZHoFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVUABQJkUQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVYCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJkUQkAzAgCCQELU3RyaW5nRW50cnkCCQEBWQIJAKUIAQkBBXZhbHVlAQUBWgkA2AQBCQEFdmFsdWUBBQJhYQkBAmJkCgUCZEgFAmRJBQJkVwUCZFEAAAAABQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wAAAAAAUDbmlsBAJkWAkBAmJ1AgkBAUYCBQJkRgUCYVoJAQFGAgUCZEUFAmFZBAJkWQkBAUkCBQJkWAUBYgQCZFoEAmVhAwUCZEMJAJQKAgUCZEgFAmRFCQCUCgIFAmRJBQJkRgQCZHAIBQJlYQJfMQQCZWIIBQJlYQJfMgQCZWMJAKADAQkAvAIDBQJkVAkAtgIBCQBpAgUCZHAAAgkAtgIBBQJlYgkAawMJAGUCBQJkVwUCZWMFAWIFAmVjCQCWCgQFAmRXBQJjUgUCZHYFAmRaCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJlZAUCZWUCZE0CZHkBWgJhYQQCZHoJAAACBQJhYQUEdW5pdAQCZWYJAMwIAgMJAAACBQJkeQUCYVYGCQECYUQBAhBpbnZhbGlkIGxwIGFzc2V0BQNuaWwDCQAAAgUCZWYFAmVmBAJlZwMJAAACBQJlZQUCYVcGAwkAAAIFAmVlBQJhWAcJAQJhRAECDWludmFsaWQgYXNzZXQEAmVoAwUCZWcJALYCAQkBAmJzAQkBAmFPAQUCYVcJALYCAQkBAmJzAQkBAmFPAQUCYVgEAmVpCQECYnMBCQECYU8BBQJhVwQCZWoJAQJicwEJAQJhTwEFAmFYBAJlawMFAmVnBQJlaQUCZWoEAmVsCQC2AgEFAmVrBAJkVAkAtgIBCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmFWCQCsAgIJAKwCAgIGYXNzZXQgCQDYBAEFAmFWAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCZW0JALYCAQUCZE0EAmVuCQCWAwEJAMwIAgAACQDMCAIJAKADAQkAugICCQC5AgIFAmVoCQC4AgIFAWQJAHYGCQC4AgIFAWQJALoCAgkAuQICBQJlbQUBZAUCZFQAEgUBaAAAABIFBERPV04FAWQFA25pbAQCZW8JAQJkdQEFAmVuBAJlcAgFAmVvAl8xBAJkdggFAmVvAl8yBAJlcQMFAmVnCQCWCgQFAmVwAAAJAGUCBQJlaQUCZW4FAmVqCQCWCgQAAAUCZXAFAmVpCQBlAgUCZWoFAmVuBAJlcggFAmVxAl8xBAJlcwgFAmVxAl8yBAJldAgFAmVxAl8zBAJldQgFAmVxAl80BAJkUAkBAmJ1AgkBAUYCBQJldQUCYVoJAQFGAgUCZXQFAmFZBAJkUQkBAUkCBQJkUAUBYgQCY1IDBQJkegUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYgIJAKUIAQkBBXZhbHVlAQUBWgkA2AQBCQEFdmFsdWUBBQJhYQkBAmJvBgUCZXIFAmVzBQJkTQUCZFEFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFVAAUCZFEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFWAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZFEFA25pbAQCZFgJAQJidQIJAQFGAgUCZWoFAmFaCQEBRgIFAmVpBQJhWQQCZFkJAQFJAgUCZFgFAWIEAmRaBAJldgkAaAIJAKADAQkAvAIDBQJlaAUCZW0FAmRUAAIJAGsDCQBlAgUCZXAFAmV2BQFiBQJldgkAlgoEBQJlcAUCY1IFAmR2BQJkWgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZXcABAJkcwkAoggBCQEBUwADCQABAgUCZHMCBlN0cmluZwQCZXgFAmRzCQDZBAEFAmV4AwkAAQIFAmRzAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmV5AAQCZHMJAKIIAQkBAVQAAwkAAQIFAmRzAgZTdHJpbmcEAmV4BQJkcwkA2QQBBQJleAMJAAECBQJkcwIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJlegECZGgEAmVBCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEAmRzCQECZXcAAwkAAQIFAmRzAgpCeXRlVmVjdG9yBAJlQgUCZHMDCQAAAggFAmRoD2NhbGxlclB1YmxpY0tleQUCZUIGBQJlQQMJAAECBQJkcwIEVW5pdAMJAAACCAUCZGgGY2FsbGVyBQR0aGlzBgUCZUEJAAIBAgtNYXRjaCBlcnJvchoCZGgBCnNldE1hbmFnZXIBAmVDBAJlRAkBAmV6AQUCZGgDCQAAAgUCZUQFAmVEBAJlRQkA2QQBBQJlQwMJAAACBQJlRQUCZUUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVQABQJlQwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRoAQ5jb25maXJtTWFuYWdlcgAEAmVGCQECZXkABAJlRwMJAQlpc0RlZmluZWQBBQJlRgYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZUcFAmVHBAJlSAMJAAACCAUCZGgPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJlRgYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZUgFAmVICQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFTAAkA2AQBCQEFdmFsdWUBBQJlRgkAzAgCCQELRGVsZXRlRW50cnkBCQEBVAAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkaAEDcHV0AgJjbQJlSQMJAGYCAAAFAmNtCQACAQIgSW52YWxpZCBzbGlwcGFnZVRvbGVyYW5jZSBwYXNzZWQEAmRuCQECZGsDBQJkaAUCY20GBAJjTwgFAmRuAl8yBAJiVAgFAmRuAl83BAJjawgFAmRuAl85BAJjUAgFAmRuA18xMAQCY1EIBQJkbgNfMTEEAmVKCAUCZG4DXzEyBAJlSwgFAmRuA18xMwQCZHEJAPwHBAUCYUYCBGVtaXQJAMwIAgUCY08FA25pbAUDbmlsAwkAAAIFAmRxBQJkcQQCZHIEAmRzBQJkcQMJAAECBQJkcwIHQWRkcmVzcwQCZHQFAmRzCQD8BwQFAmR0AgRlbWl0CQDMCAIFAmNPBQNuaWwFA25pbAUEdW5pdAMJAAACBQJkcgUCZHIEAmVMAwkAZgIFAmNQAAAJAPwHBAUCYmMCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJlSgUCY1AFA25pbAUDbmlsAwkAAAIFAmVMBQJlTAQCZU0DCQBmAgUCY1EAAAkA/AcEBQJiYwIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmVLBQJjUQUDbmlsBQNuaWwDCQAAAgUCZU0FAmVNBAJlTgMFAmVJBAJlTwkA/AcEBQJiYgIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYlQFAmNPBQNuaWwDCQAAAgUCZU8FAmVPBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRoBmNhbGxlcgUCY08FAmJUBQNuaWwJAM4IAgUCY2sFAmVOCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRoAQpwdXRGb3JGcmVlAQJlUAMJAGYCAAAFAmVQCQACAQIUSW52YWxpZCB2YWx1ZSBwYXNzZWQEAmRuCQECZGsDBQJkaAUCZVAHCAUCZG4CXzkCZGgBCXB1dE9uZVRrbgICZVECZVIEAmVTCgACZVQJAPwHBAUCYUYCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJlVAIHQm9vbGVhbgUCZVQJAAIBCQCsAgIJAAMBBQJlVAIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZVUDAwMJAQJhSAAGCQAAAgUCYVUFAWwGCQAAAgUCYVUFAW4GBQJlUwQCZWYJAMwIAgMJAQEhAQUCZVUGCQECYUQBAiFwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJkaAhwYXltZW50cwABBgkBAmFEAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZWYFAmVmBAJlVgkAkQMCCAUCZGgIcGF5bWVudHMAAAQCZHkIBQJlVgdhc3NldElkBAJkeAgFAmVWBmFtb3VudAQBWggFAmRoBmNhbGxlcgQCYWEIBQJkaA10cmFuc2FjdGlvbklkBAJlVwkBAmR3BAUCZHgFAmR5BQFaBQJhYQQCZVgIBQJlVwJfMQQCY1IIBQJlVwJfMgQCZHYIBQJlVwJfMwQCZVkIBQJlVwJfNAQCZVoDAwkAZgIFAmVRAAAJAGYCBQJlUQUCZVgHCQECYUQBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmVRBQNuaWwCAAUCZVgEAmRxCQECZG8BBQJlWgMJAAACBQJkcQUCZHEEAmVOAwUCZVIEAmZhCQD8BwQFAmJiAgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJhVgUCZVoFA25pbAMJAAACBQJmYQUCZmEFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZGgGY2FsbGVyBQJlWgUCYVYFA25pbAQCZmIDCQBmAgUCZHYAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhRwUCZHYFAmR5BQNuaWwFA25pbAkAlAoCCQDOCAIJAM4IAgUCY1IFAmVOBQJmYgUCZVoJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZGgBEXB1dE9uZVRrblJFQURPTkxZAgJkeQJkeAQCZmMJAQJkdwQFAmR4CQECYU0BBQJkeQUEdW5pdAUEdW5pdAQCZVgIBQJmYwJfMQQCY1IIBQJmYwJfMgQCZHYIBQJmYwJfMwQCZVkIBQJmYwJfNAkAlAoCBQNuaWwJAJUKAwUCZVgFAmR2BQJlWQJkaAEJZ2V0T25lVGtuAgJmZAJlUQQCZVMKAAJlVAkA/AcEBQJhRgIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmVUAgdCb29sZWFuBQJlVAkAAgEJAKwCAgkAAwEFAmVUAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJmZQMDCQECYUgABgkAAAIFAmFVBQFuBgUCZVMEAmVmCQDMCAIDCQEBIQEFAmZlBgkBAmFEAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZGgIcGF5bWVudHMAAQYJAQJhRAECHmV4YWN0bHkgMSBwYXltZW50IGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmVmBQJlZgQCZWUJAQJhTQEFAmZkBAJlVgkAkQMCCAUCZGgIcGF5bWVudHMAAAQCZHkIBQJlVgdhc3NldElkBAJkTQgFAmVWBmFtb3VudAQBWggFAmRoBmNhbGxlcgQCYWEIBQJkaA10cmFuc2FjdGlvbklkBAJmZgkBAmVkBQUCZWUFAmRNBQJkeQUBWgUCYWEEAmZnCAUCZmYCXzEEAmNSCAUCZmYCXzIEAmR2CAUCZmYCXzMEAmVZCAUCZmYCXzQEAmRwAwMJAGYCBQJlUQAACQBmAgUCZVEFAmZnBwkBAmFEAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJlUQUDbmlsAgAFAmZnBAJmaAkA/AcEBQJhRgIEYnVybgkAzAgCBQJkTQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkeQUCZE0FA25pbAMJAAACBQJmaAUCZmgEAmZpCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAVoFAmRwBQJlZQUDbmlsBAJmYgMJAGYCBQJkdgAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFHBQJkdgUCZWUFA25pbAUDbmlsCQCUCgIJAM4IAgkAzggCBQJjUgUCZmkFAmZiBQJkcAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkaAERZ2V0T25lVGtuUkVBRE9OTFkCAmVlAmRNBAJmagkBAmVkBQkBAmFNAQUCZWUFAmRNBQJhVgUEdW5pdAUEdW5pdAQCZmcIBQJmagJfMQQCY1IIBQJmagJfMgQCZHYIBQJmagJfMwQCZVkIBQJmagJfNAkAlAoCBQNuaWwJAJUKAwUCZmcFAmR2BQJlWQJkaAETdW5zdGFrZUFuZEdldE9uZVRrbgMCZmsCZmQCZVEEAmVTCgACZVQJAPwHBAUCYUYCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJlVAIHQm9vbGVhbgUCZVQJAAIBCQCsAgIJAAMBBQJlVAIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZmUDAwkBAmFIAAYJAAACBQJhVQUBbgYFAmVTBAJlZgkAzAgCAwkBASEBBQJmZQYJAQJhRAECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmRoCHBheW1lbnRzAAAGCQECYUQBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJlZgUCZWYEAmVlCQECYU0BBQJmZAQBWggFAmRoBmNhbGxlcgQCYWEIBQJkaA10cmFuc2FjdGlvbklkBAJmbAkA/AcEBQJiYgIHdW5zdGFrZQkAzAgCCQDYBAEFAmFWCQDMCAIFAmZrBQNuaWwFA25pbAMJAAACBQJmbAUCZmwEAmZtCQECZWQFBQJlZQUCZmsFAmFWBQFaBQJhYQQCZmcIBQJmbQJfMQQCY1IIBQJmbQJfMgQCZHYIBQJmbQJfMwQCZVkIBQJmbQJfNAQCZHADAwkAZgIFAmVRAAAJAGYCBQJlUQUCZmcHCQECYUQBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmVRBQNuaWwCAAUCZmcEAmZoCQD8BwQFAmFGAgRidXJuCQDMCAIFAmZrBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmFWBQJmawUDbmlsAwkAAAIFAmZoBQJmaAQCZmkJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRoBmNhbGxlcgUCZHAFAmVlBQNuaWwEAmZiAwkAZgIFAmR2AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUcFAmR2BQJlZQUDbmlsBQNuaWwJAJQKAgkAzggCCQDOCAIFAmNSBQJmaQUCZmIFAmRwCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRoAQNnZXQABAJjQwkBAmRnAQUCZGgEAmZuCAUCY0MCXzEEAmNqCAUCY0MCXzIEAmRqCAUCY0MCXzMEAmJSCAUCY0MCXzQEAmNrCAUCY0MCXzUEAmZvCQD8BwQFAmFGAgRidXJuCQDMCAIFAmRqBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJSBQJkagUDbmlsAwkAAAIFAmZvBQJmbwUCY2sJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZGgBCWdldE5vTGVzcwICZnACZnEEAmNDCQECZGcBBQJkaAQCY2kIBQJjQwJfMQQCY2oIBQJjQwJfMgQCZGoIBQJjQwJfMwQCYlIIBQJjQwJfNAQCY2sIBQJjQwJfNQMJAGYCBQJmcAUCY2kJAAIBCQCsAgIJAKwCAgkArAICAhxub0xlc3NUaGVuQW10QXNzZXQgZmFpbGVkOiAgCQCkAwEFAmNpAgMgPCAJAKQDAQUCZnADCQBmAgUCZnEFAmNqCQACAQkArAICCQCsAgIJAKwCAgIdbm9MZXNzVGhlblByaWNlQXNzZXQgZmFpbGVkOiAJAKQDAQUCY2oCAyA8IAkApAMBBQJmcQQCZm8JAPwHBAUCYUYCBGJ1cm4JAMwIAgUCZGoFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYlIFAmRqBQNuaWwDCQAAAgUCZm8FAmZvBQJjawkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkaAENdW5zdGFrZUFuZEdldAECZHAEAmZyAwkBAiE9AgkAkAMBCAUCZGgIcGF5bWVudHMAAAkAAgECGE5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAYDCQAAAgUCZnIFAmZyBAJiRwkBAmFKAAQCYlQJANkEAQkAkQMCBQJiRwUBcQQCZmwJAPwHBAUCYmICB3Vuc3Rha2UJAMwIAgkA2AQBBQJiVAkAzAgCBQJkcAUDbmlsBQNuaWwDCQAAAgUCZmwFAmZsBAJjQwkBAmJQBAkA2AQBCAUCZGgNdHJhbnNhY3Rpb25JZAkA2AQBBQJiVAUCZHAIBQJkaAZjYWxsZXIEAmJXCQENcGFyc2VJbnRWYWx1ZQEIBQJjQwJfOQQCY2sIBQJjQwNfMTAEAmZzAwMJAQJhSAAGCQAAAgUCYlcFAW4JAAIBCQCsAgICLEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmJXBgMJAAACBQJmcwUCZnMEAmZvCQD8BwQFAmFGAgRidXJuCQDMCAIFAmRwBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJUBQJkcAUDbmlsAwkAAAIFAmZvBQJmbwUCY2sJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZGgBE3Vuc3Rha2VBbmRHZXROb0xlc3MDAmZrAmZ0AmZxBAJmZQMJAQJhSAAGCQAAAgUCYVUFAW4EAmVmCQDMCAIDCQEBIQEFAmZlBgkAAgECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmRoCHBheW1lbnRzAAAGCQACAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZWYFAmVmBAJmbAkA/AcEBQJiYgIHdW5zdGFrZQkAzAgCCQDYBAEFAmFWCQDMCAIFAmZrBQNuaWwFA25pbAMJAAACBQJmbAUCZmwEAmNDCQECYlAECQDYBAEIBQJkaA10cmFuc2FjdGlvbklkCQDYBAEFAmFWBQJmawgFAmRoBmNhbGxlcgQCY2kIBQJjQwJfMQQCY2oIBQJjQwJfMgQCY2sIBQJjQwNfMTAEAmZ1CQDMCAIDCQBnAgUCY2kFAmZ0BgkAAgEJALkJAgkAzAgCAixhbW91bnQgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZ0BQNuaWwCAAkAzAgCAwkAZwIFAmNqBQJmcQYJAAIBCQC5CQIJAMwIAgIrcHJpY2UgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZxBQNuaWwCAAUDbmlsAwkAAAIFAmZ1BQJmdQQCZm8JAPwHBAUCYUYCBGJ1cm4JAMwIAgUCZmsFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYVYFAmZrBQNuaWwDCQAAAgUCZm8FAmZvBQJjawkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkaAEIYWN0aXZhdGUCAmZ2AmZ3AwkBAiE9AgkApQgBCAUCZGgGY2FsbGVyCQClCAEFAmFGCQACAQIScGVybWlzc2lvbnMgZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFjAAUCZnYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFkAAUCZncFA25pbAIHc3VjY2VzcwJkaAEcZ2V0UG9vbENvbmZpZ1dyYXBwZXJSRUFET05MWQAJAJQKAgUDbmlsCQECYUoAAmRoARxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZAQJidAkAlAoCBQNuaWwJAQJicwEFAmJ0AmRoARljYWxjUHJpY2VzV3JhcHBlclJFQURPTkxZAwJiQQJiQgJiRgQCYk8JAQJiRQMFAmJBBQJiQgUCYkYJAJQKAgUDbmlsCQDMCAIJAKYDAQkAkQMCBQJiTwAACQDMCAIJAKYDAQkAkQMCBQJiTwABCQDMCAIJAKYDAQkAkQMCBQJiTwACBQNuaWwCZGgBFHRvWDE4V3JhcHBlclJFQURPTkxZAgFHAUgJAJQKAgUDbmlsCQCmAwEJAQFGAgUBRwUBSAJkaAEWZnJvbVgxOFdyYXBwZXJSRUFET05MWQIBSgFLCQCUCgIFA25pbAkBAUkCCQCnAwEFAUoFAUsCZGgBHmNhbGNQcmljZUJpZ0ludFdyYXBwZXJSRUFET05MWQICYnYCYncJAJQKAgUDbmlsCQCmAwEJAQJidQIJAKcDAQUCYnYJAKcDAQUCYncCZGgBI2VzdGltYXRlUHV0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZCQJiUQJjbQJjbgJjbwJjcAJjcQFaAmNyAmNzCQCUCgIFA25pbAkBAmNsCQUCYlEFAmNtBQJjbgUCY28FAmNwBQJjcQUBWgUCY3IFAmNzAmRoASNlc3RpbWF0ZUdldE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQQCYlECYlICYlMBWgQCY0MJAQJiUAQFAmJRBQJiUgUCYlMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAVoJAJQKAgUDbmlsCQCcCgoIBQJjQwJfMQgFAmNDAl8yCAUCY0MCXzMIBQJjQwJfNAgFAmNDAl81CAUCY0MCXzYIBQJjQwJfNwkApgMBCAUCY0MCXzgIBQJjQwJfOQgFAmNDA18xMAJkaAENc3RhdHNSRUFET05MWQAEAmJHCQECYUoABAJiVAkA2QQBCQCRAwIFAmJHBQFxBAJjVQkAkQMCBQJiRwUBcgQCY1YJAJEDAgUCYkcFAXMEAmN2CQCRAwIFAmJHBQF2BAJjdwkAkQMCBQJiRwUBdwQCYkgJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRwUBdAQCYkkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRwUBdQQCZngICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYlQJAKwCAgkArAICAgZBc3NldCAJANgEAQUCYlQCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJjVwkBAmJzAQUCY1UEAmNYCQECYnMBBQJjVgQCZnkDCQAAAgUCZngAAAkAzAgCBQFlCQDMCAIFAWUJAMwIAgUBZQUDbmlsCQECYkUDBQJjVwUCY1gFAmZ4BAJjZAAABAJmegkBAUkCCQCRAwIFAmZ5AAEFAWIEAmZBCQEBSQIJAJEDAgUCZnkAAgUBYgQCZkIJAQV2YWx1ZQEJAJoIAgUCYUYJAQJhcgEJAKUIAQUEdGhpcwkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmNXCQDMCAIJAKQDAQUCY1gJAMwIAgkApAMBBQJmeAkAzAgCCQCkAwEFAmNkCQDMCAIJAKQDAQUCZnoJAMwIAgkApAMBBQJmQQkAzAgCCQCkAwEFAmZCBQNuaWwFAWoCZGgBIGV2YWx1YXRlUHV0QnlBbW91bnRBc3NldFJFQURPTkxZAQJjbgQCYkcJAQJhSgAEAmJUCQDZBAEJAJEDAgUCYkcFAXEEAmN0CQCRAwIFAmJHBQFyBAJiVQkA2QQBBQJjdAQCY3UJAJEDAgUCYkcFAXMEAmJWCQDZBAEFAmN1BAJiSAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJHBQF0BAJiSQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJHBQF1BAJiVwkAkQMCBQJiRwUBcAQCZngICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYlQJAKwCAgkArAICAgZBc3NldCAJANgEAQUCYlQCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJjVwkBAmJzAQUCY3QEAmNYCQECYnMBBQJjdQQCYkMJAQFGAgUCY1cFAmJIBAJiRAkBAUYCBQJjWAUCYkkEAmNjAwkAAAIFAmZ4AAAFAWUJAQJidQIFAmJEBQJiQwQCY3oJAQFGAgUCY24FAmJIBAJjQQkAvAIDBQJjegUCY2MFAWQEAmNwCQEBSQIFAmNBBQJiSQQCZG4JAQJjbAkCAACgwh4FAmNuBQJiVQUCY3AFAmJWAgAGBwQCY0sIBQJkbgJfMQQCZkMIBQJkbgJfMwQCYlkIBQJkbgJfNAQCY2EIBQJkbgJfNQQCYlgIBQJkbgJfNgkAlAoCBQNuaWwJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCY0sJAMwIAgkApAMBCQEBSQIFAmNjBQFiCQDMCAIJAKQDAQUCYlkJAMwIAgkApAMBBQJjYQkAzAgCCQCkAwEFAmJYCQDMCAIFAmJXCQDMCAIJAKQDAQUCY24JAMwIAgkApAMBBQJjcAUDbmlsBQFqAmRoAR9ldmFsdWF0ZVB1dEJ5UHJpY2VBc3NldFJFQURPTkxZAQJjcAQCYkcJAQJhSgAEAmJUCQDZBAEJAJEDAgUCYkcFAXEEAmN0CQCRAwIFAmJHBQFyBAJiVQkA2QQBBQJjdAQCY3UJAJEDAgUCYkcFAXMEAmJWCQDZBAEFAmN1BAJiSAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJHBQF0BAJiSQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJHBQF1BAJiVwkAkQMCBQJiRwUBcAQCZngICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYlQJAKwCAgkArAICAgZBc3NldCAJANgEAQUCYlQCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJmRAkBAmJzAQUCY3QEAmZFCQECYnMBBQJjdQQCZkYJAQFGAgUCZkQFAmJIBAJmRwkBAUYCBQJmRQUCYkkEAmNjAwkAAAIFAmZ4AAAFAWUJAQJidQIFAmZHBQJmRgQCY0EJAQFGAgUCY3AFAmJJBAJjegkAvAIDBQJjQQUBZAUCY2MEAmNuCQEBSQIFAmN6BQJiSAQCZG4JAQJjbAkCAACgwh4FAmNuBQJiVQUCY3AFAmJWAgAGBwQCY0sIBQJkbgJfMQQCZkMIBQJkbgJfMwQCYlkIBQJkbgJfNAQCY2EIBQJkbgJfNQQCYlgIBQJkbgJfNgkAlAoCBQNuaWwJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCY0sJAMwIAgkApAMBCQEBSQIFAmNjBQFiCQDMCAIJAKQDAQUCYlkJAMwIAgkApAMBBQJjYQkAzAgCCQCkAwEFAmJYCQDMCAIFAmJXCQDMCAIJAKQDAQUCY24JAMwIAgkApAMBBQJjcAUDbmlsBQFqAmRoARNldmFsdWF0ZUdldFJFQURPTkxZAgJmSAJmSQQCY0MJAQJiUAQCAAUCZkgFAmZJBQR0aGlzBAJjaQgFAmNDAl8xBAJjaggFAmNDAl8yBAJiWQgFAmNDAl81BAJjYQgFAmNDAl82BAJiWAgFAmNDAl83BAJjZAgFAmNDAl84BAJiVwkBDXBhcnNlSW50VmFsdWUBCAUCY0MCXzkJAJQKAgUDbmlsCQC5CQIJAMwIAgIOJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjaQkAzAgCCQCkAwEFAmNqCQDMCAIJAKQDAQUCYlkJAMwIAgkApAMBBQJjYQkAzAgCCQCkAwEFAmJYCQDMCAIJAKYDAQUCY2QJAMwIAgkApAMBBQJiVwUDbmlsBQFqAQJmSgECZksABAJmTAQCZHMJAQJldwADCQABAgUCZHMCCkJ5dGVWZWN0b3IEAmVCBQJkcwUCZUIDCQABAgUCZHMCBFVuaXQIBQJmSg9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgQCZHMFAmZKAwkAAQIFAmRzAgVPcmRlcgQCY1QFAmRzBAJmTQkBAmFJAAQCYXcJAQJjUwEFAmNUBAJheAkA9AMDCAUCY1QJYm9keUJ5dGVzCQCRAwIIBQJjVAZwcm9vZnMAAAgFAmNUD3NlbmRlclB1YmxpY0tleQQCYXkJAPQDAwgFAmNUCWJvZHlCeXRlcwkAkQMCCAUCY1QGcHJvb2ZzAAEFAmZNAwMDBQJhdwUCYXgHBQJheQcGCQECYXYDBQJhdwUCYXgFAmF5AwkAAQIFAmRzAhRTZXRTY3JpcHRUcmFuc2FjdGlvbgQCZXgFAmRzBAJmTgkA9gMBCQEFdmFsdWUBCAUCZXgGc2NyaXB0BAJmTwkA2wQBCQEFdmFsdWUBCQCdCAIFAmFGCQECYXQABAJmUAkA8QcBBQR0aGlzAwMJAAACBQJmTwUCZk4JAQIhPQIFAmZQBQJmTgcGCQD0AwMIBQJmSglib2R5Qnl0ZXMJAJEDAggFAmZKBnByb29mcwAABQJmTAkA9AMDCAUCZkoJYm9keUJ5dGVzCQCRAwIIBQJmSgZwcm9vZnMAAAUCZkypkbtG", "chainId": 84, "height": 2309299, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BQumnWnXYsVZo1yrnpvxA6g9ceNV7riM1rswXGT7St19 Next: 9GZf9yAibGXN68xF7uJeyzn4mf2RnkeJn5aEvVdSvNFj Diff:
OldNewDifferences
6161
6262 let D = 1
6363
64-func E (F,G) = fraction(toBigInt(F), d, toBigInt(G))
64+let E = 1
65+
66+func F (G,H) = fraction(toBigInt(G), d, toBigInt(H))
6567
6668
67-func H (I,J) = toInt(fraction(I, toBigInt(J), d))
69+func I (J,K) = toInt(fraction(J, toBigInt(K), d))
6870
6971
70-func K (L,M,N) = fraction(L, M, N)
72+func L (M,N,O) = fraction(M, N, O)
7173
7274
73-func O (I) = if ((0 > I))
74- then -(I)
75- else I
75+func P (J) = if ((0 > J))
76+ then -(J)
77+ else J
7678
7779
78-func P (I) = if ((e > I))
79- then -(I)
80- else I
80+func Q (J) = if ((e > J))
81+ then -(J)
82+ else J
8183
8284
83-func Q () = "%s__factoryContract"
85+func R () = "%s__factoryContract"
8486
8587
86-func R () = "%s__managerPublicKey"
88+func S () = "%s__managerPublicKey"
8789
8890
89-func S () = "%s__pendingManagerPublicKey"
91+func T () = "%s__pendingManagerPublicKey"
9092
9193
92-func T () = "%s%s__price__last"
94+func U () = "%s%s__price__last"
9395
9496
95-func U (V,W) = makeString(["%s%s%d%d__price__history", toString(V), toString(W)], j)
97+func V (W,X) = makeString(["%s%s%d%d__price__history", toString(W), toString(X)], j)
9698
9799
98-func X (Y,Z) = ((("%s%s%s__P__" + Y) + "__") + Z)
100+func Y (Z,aa) = ((("%s%s%s__P__" + Z) + "__") + aa)
99101
100102
101-func aa (Y,Z) = ((("%s%s%s__G__" + Y) + "__") + Z)
103+func ab (Z,aa) = ((("%s%s%s__G__" + Z) + "__") + aa)
102104
103105
104-func ab () = "%s__amountAsset"
106+func ac () = "%s__amountAsset"
105107
106108
107-func ac () = "%s__priceAsset"
109+func ad () = "%s__priceAsset"
108110
109111
110-let ad = "%s__fee"
112+let ae = "%s__fee"
111113
112-let ae = fraction(10, b, 10000)
114+let af = fraction(10, b, 10000)
113115
114-let af = valueOrElse(getInteger(this, ad), ae)
116+let ag = valueOrElse(getInteger(this, ae), af)
115117
116-func ag () = "%s__factoryConfig"
118+func ah () = "%s__factoryConfig"
117119
118120
119-func ah () = "%s%s__matcher__publicKey"
121+func ai () = "%s%s__matcher__publicKey"
120122
121123
122-func ai (aj) = (("%s%s%s__" + aj) + "__mappings__poolContract2LpAsset")
124+func aj (ak) = (("%s%s%s__" + ak) + "__mappings__poolContract2LpAsset")
123125
124126
125-func ak (al,am) = (((("%d%d%s__" + al) + "__") + am) + "__config")
127+func al (am,an) = (((("%d%d%s__" + am) + "__") + an) + "__config")
126128
127129
128-func an (ao) = ("%s%s%s__mappings__baseAsset2internalId__" + ao)
130+func ao (ap) = ("%s%s%s__mappings__baseAsset2internalId__" + ap)
129131
130132
131-func ap () = "%s__shutdown"
133+func aq () = "%s__shutdown"
132134
133135
134-func aq (ar) = ("%s%s__poolWeight__" + ar)
136+func ar (as) = ("%s%s__poolWeight__" + as)
135137
136138
137-func as () = "%s__allowedLpScriptHash"
139+func at () = "%s__allowedLpScriptHash"
138140
139141
140-let at = "%s__feeCollectorAddress"
142+let au = "%s__feeCollectorAddress"
141143
142-func au (av,aw,ax) = throw(((((("order validation failed: orderValid=" + toString(av)) + " senderValid=") + toString(aw)) + " matcherValid=") + toString(ax)))
144+func av (aw,ax,ay) = throw(((((("order validation failed: orderValid=" + toString(aw)) + " senderValid=") + toString(ax)) + " matcherValid=") + toString(ay)))
143145
144146
145-func ay (az,aA) = valueOrErrorMessage(getString(az, aA), makeString(["mandatory ", toString(az), ".", aA, " is not defined"], ""))
147+func az (aA,aB) = valueOrErrorMessage(getString(aA, aB), makeString(["mandatory ", toString(aA), ".", aB, " is not defined"], ""))
146148
147149
148-func aB (az,aA) = valueOrErrorMessage(getInteger(az, aA), makeString(["mandatory ", toString(az), ".", aA, " is not defined"], ""))
150+func aC (aA,aB) = valueOrErrorMessage(getInteger(aA, aB), makeString(["mandatory ", toString(aA), ".", aB, " is not defined"], ""))
149151
150152
151-func aC (aD) = throw(makeString(["lp.ride:", aD], " "))
153+func aD (aE) = throw(makeString(["lp.ride:", aE], " "))
152154
153155
154-let aE = addressFromStringValue(ay(this, Q()))
156+let aF = addressFromStringValue(az(this, R()))
155157
156-let aF = addressFromStringValue(ay(aE, at))
158+let aG = addressFromStringValue(az(aF, au))
157159
158-func aG () = valueOrElse(getBoolean(aE, ap()), false)
160+func aH () = valueOrElse(getBoolean(aF, aq()), false)
159161
160162
161-func aH () = fromBase58String(ay(aE, ah()))
163+func aI () = fromBase58String(az(aF, ai()))
162164
163165
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)
166+func aJ () = {
167+ let aK = az(this, ac())
168+ let aL = az(this, ad())
169+ let an = aC(aF, ao(aL))
170+ let am = aC(aF, ao(aK))
171+ split(az(aF, al(toString(am), toString(an))), j)
170172 }
171173
172174
173-func aL (aM) = if ((aM == i))
175+func aM (aN) = if ((aN == i))
174176 then unit
175- else fromBase58String(aM)
177+ else fromBase58String(aN)
176178
177179
178-func aN (aM) = if ((aM == unit))
180+func aO (aN) = if ((aN == unit))
179181 then i
180- else toBase58String(value(aM))
182+ else toBase58String(value(aN))
181183
182184
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]))
185+func aP (aQ) = $Tuple7(addressFromStringValue(aQ[o]), parseIntValue(aQ[p]), fromBase58String(aQ[q]), aM(aQ[r]), aM(aQ[s]), parseIntValue(aQ[t]), parseIntValue(aQ[u]))
184186
185187
186-let aQ = aO(aI())
188+let aR = aP(aJ())
187189
188-let aR = aQ
190+let aS = aR
189191
190-let aS = aR._1
192+let aT = aS._1
191193
192-let aT = aR._2
194+let aU = aS._2
193195
194-let aU = aR._3
196+let aV = aS._3
195197
196-let aV = aR._4
198+let aW = aS._4
197199
198-let aW = aR._5
200+let aX = aS._5
199201
200-let aX = aR._6
202+let aY = aS._6
201203
202-let aY = aR._7
204+let aZ = aS._7
203205
204-func aZ () = split(ay(aE, ag()), j)
206+func ba () = split(az(aF, ah()), j)
205207
206208
207-let ba = valueOrErrorMessage(addressFromString(aZ()[B]), "incorrect staking address")
209+let bb = valueOrErrorMessage(addressFromString(ba()[B]), "incorrect staking address")
208210
209-let bb = valueOrErrorMessage(addressFromString(aZ()[C]), "incorrect staking address")
211+let bc = valueOrErrorMessage(addressFromString(ba()[C]), "incorrect staking address")
210212
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)
213+func bd (be,bf,bg,bh,bi,bj,bk,bl,bm,bn) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj), toString(bk), toString(bl), toString(bm), toString(bn)], j)
212214
213215
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)
216+func bo (bp,bq,br,bh,bk,bl) = makeString(["%d%d%d%d%d%d", toString(bp), toString(bq), toString(br), toString(bh), toString(bk), toString(bl)], j)
215217
216218
217-func br (bs) = if ((bs == "WAVES"))
219+func bs (bt) = if ((bt == "WAVES"))
218220 then wavesBalance(this).available
219- else assetBalance(this, fromBase58String(bs))
221+ else assetBalance(this, fromBase58String(bt))
220222
221223
222-func bt (bu,bv) = fraction(bu, d, bv)
224+func bu (bv,bw) = fraction(bv, d, bw)
223225
224226
225-func bw (bx,by,bz,bA) = {
226- let bB = E(bz, bx)
227- let bC = E(bA, by)
228- bt(bC, bB)
227+func bx (by,bz,bA,bB) = {
228+ let bC = F(bA, by)
229+ let bD = F(bB, bz)
230+ bu(bD, bC)
229231 }
230232
231233
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]
234+func bE (bA,bB,bF) = {
235+ let bG = aJ()
236+ let bH = parseIntValue(bG[t])
237+ let bI = parseIntValue(bG[u])
238+ let bJ = bx(bH, bI, bA, bB)
239+ let bw = F(bA, bH)
240+ let bv = F(bB, bI)
241+ let bK = F(bF, b)
242+ let bL = bu(bw, bK)
243+ let bM = bu(bv, bK)
244+[bJ, bL, bM]
243245 }
244246
245247
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)]
248+func bN (bA,bB,bF) = {
249+ let bO = bE(bA, bB, bF)
250+[I(bO[0], b), I(bO[1], b), I(bO[2], b)]
249251 }
250252
251253
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))
254+func bP (bQ,bR,bS,Z) = {
255+ let bG = aJ()
256+ let bT = bG[q]
257+ let bU = bG[r]
258+ let bV = bG[s]
259+ let by = parseIntValue(bG[t])
260+ let bz = parseIntValue(bG[u])
261+ let bW = bG[p]
262+ let bX = valueOrErrorMessage(assetInfo(fromBase58String(bT)), (("Asset " + bT) + " doesn't exist")).quantity
263+ if ((bT != bR))
262264 then throw("Invalid asset passed.")
263265 else {
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 == ""))
266+ let bY = bs(bU)
267+ let bZ = F(bY, by)
268+ let ca = bs(bV)
269+ let cb = F(ca, bz)
270+ let cc = bu(cb, bZ)
271+ let cd = I(cc, b)
272+ let ce = F(bS, b)
273+ let cf = F(bX, b)
274+ let cg = fraction(bZ, ce, cf)
275+ let ch = fraction(cb, ce, cf)
276+ let ci = I(cg, by)
277+ let cj = I(ch, bz)
278+ let ck = if ((bQ == ""))
277279 then nil
278- else [ScriptTransfer(Y, ch, if ((bT == "WAVES"))
280+ else [ScriptTransfer(Z, ci, if ((bU == "WAVES"))
279281 then unit
280- else fromBase58String(bT)), ScriptTransfer(Y, ci, if ((bU == "WAVES"))
282+ else fromBase58String(bU)), ScriptTransfer(Z, cj, if ((bV == "WAVES"))
281283 then unit
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)
284+ else fromBase58String(bV)), StringEntry(ab(toString(Z), bQ), bo(ci, cj, bS, cd, height, lastBlock.timestamp)), IntegerEntry(U(), cd), IntegerEntry(V(height, lastBlock.timestamp), cd)]
285+ $Tuple10(ci, cj, bU, bV, bY, ca, bX, cc, bW, ck)
284286 }
285287 }
286288
287289
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))
290+func cl (bQ,cm,cn,co,cp,cq,Z,cr,cs) = {
291+ let bG = aJ()
292+ let bT = fromBase58String(bG[q])
293+ let ct = bG[r]
294+ let cu = bG[s]
295+ let cv = bG[v]
296+ let cw = bG[w]
297+ let bH = parseIntValue(bG[t])
298+ let bI = parseIntValue(bG[u])
299+ let bW = bG[p]
300+ let bX = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
301+ let cx = toBase58String(valueOrElse(co, fromBase58String("WAVES")))
302+ let cy = toBase58String(valueOrElse(cq, fromBase58String("WAVES")))
303+ if (if ((ct != cx))
302304 then true
303- else (ct != cx))
305+ else (cu != cy))
304306 then throw("Invalid amt or price asset passed.")
305307 else {
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))
308+ let bY = if (cr)
309+ then bs(ct)
310+ else (bs(ct) - cn)
311+ let ca = if (cr)
312+ then bs(cu)
313+ else (bs(cu) - cp)
314+ let cz = F(cn, bH)
315+ let cA = F(cp, bI)
316+ let cB = bu(cA, cz)
317+ let bZ = F(bY, bH)
318+ let cb = F(ca, bI)
319+ let cC = if ((bX == 0))
318320 then {
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)
321+ let cc = e
322+ let cD = e
323+ let bK = pow((cz * cA), 0, toBigInt(5), 1, 0, DOWN)
324+ $Tuple5(I(bK, b), I(cz, bH), I(cA, bI), bu((cb + cA), (bZ + cz)), cD)
323325 }
324326 else {
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)
327+ let cc = bu(cb, bZ)
328+ let cD = fraction(Q((cc - cB)), d, cc)
329+ let cE = F(cm, b)
330+ if (if ((cc != e))
331+ then (cD > cE)
330332 else false)
331- then throw(((("Price slippage " + toString(cC)) + " exceeded the passed limit of ") + toString(cD)))
333+ then throw(((("Price slippage " + toString(cD)) + " exceeded the passed limit of ") + toString(cE)))
332334 else {
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)
335+ let cf = F(bX, b)
336+ let cF = fraction(cz, cc, d)
337+ let cG = fraction(cA, d, cc)
338+ let cH = if ((cF > cA))
339+ then $Tuple2(cG, cA)
340+ else $Tuple2(cz, cF)
341+ let cI = cH._1
342+ let cJ = cH._2
343+ let bK = fraction(cf, cJ, cb)
344+ $Tuple5(I(bK, b), I(cI, bH), I(cJ, bI), cc, cD)
343345 }
344346 }
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))
347+ let cK = cC._1
348+ let cL = cC._2
349+ let cM = cC._3
350+ let cd = I(cC._4, b)
351+ let cN = I(cC._5, b)
352+ if ((0 >= cK))
351353 then throw("Invalid calculations. LP calculated is less than zero.")
352354 else {
353- let cN = if (!(cr))
355+ let cO = if (!(cs))
354356 then 0
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)
357+ else cK
358+ let cP = (cn - cL)
359+ let cQ = (cp - cM)
360+ let cR = [IntegerEntry(U(), cd), IntegerEntry(V(height, lastBlock.timestamp), cd), StringEntry(Y(Z, bQ), bd(cL, cM, cO, cd, cm, cN, height, lastBlock.timestamp, cP, cQ))]
361+ $Tuple13(cK, cO, cd, bY, ca, bX, bT, bW, cR, cP, cQ, co, cq)
360362 }
361363 }
362364 }
363365
364366
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())
367+func cS (cT) = {
368+ let bG = aJ()
369+ let cU = bG[r]
370+ let cV = bG[s]
371+ let bW = parseIntValue(bG[p])
372+ let bH = parseIntValue(bG[t])
373+ let bI = parseIntValue(bG[u])
374+ let cW = bs(cU)
375+ let cX = bs(cV)
376+ let cc = if ((cT.orderType == Buy))
377+ then bx(bH, bI, (cW + cT.amount), cX)
378+ else bx(bH, bI, (cW - cT.amount), cX)
379+ let cd = I(cc, b)
380+ if (if (if (aH())
379381 then true
380- else (bV == m))
382+ else (bW == m))
381383 then true
382- else (bV == n))
384+ else (bW == n))
383385 then throw("Exchange operations disabled")
384386 else {
385- let cX = cS.assetPair.amountAsset
386- let cY = if ((cX == unit))
387+ let cY = cT.assetPair.amountAsset
388+ let cZ = if ((cY == unit))
387389 then "WAVES"
388- else toBase58String(value(cX))
389- let cZ = cS.assetPair.priceAsset
390- let da = if ((cZ == unit))
390+ else toBase58String(value(cY))
391+ let da = cT.assetPair.priceAsset
392+ let db = if ((da == unit))
391393 then "WAVES"
392- else toBase58String(value(cZ))
393- if (if ((cY != cT))
394+ else toBase58String(value(da))
395+ if (if ((cZ != cU))
394396 then true
395- else (da != cU))
397+ else (db != cV))
396398 then throw("Wrong order assets.")
397399 else {
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)
400+ let dc = cT.price
401+ let dd = fraction(b, bI, bH)
402+ let de = L(dc, b, dd)
403+ let df = if ((cT.orderType == Buy))
404+ then (cd >= de)
405+ else (de >= cd)
404406 true
405407 }
406408 }
407409 }
408410
409411
410-func df (dg) = if ((size(dg.payments) != 1))
412+func dg (dh) = if ((size(dh.payments) != 1))
411413 then throw("exactly 1 payment is expected")
412414 else {
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())
415+ let di = value(dh.payments[0])
416+ let bR = value(di.assetId)
417+ let dj = di.amount
418+ let cC = bP(toBase58String(dh.transactionId), toBase58String(bR), dj, dh.caller)
419+ let ci = cC._1
420+ let cj = cC._2
421+ let bW = parseIntValue(cC._9)
422+ let ck = cC._10
423+ if (if (aH())
422424 then true
423- else (bV == n))
424- then throw(("Get operation is blocked by admin. Status = " + toString(bV)))
425- else $Tuple5(ch, ci, di, bQ, cj)
425+ else (bW == n))
426+ then throw(("Get operation is blocked by admin. Status = " + toString(bW)))
427+ else $Tuple5(ci, cj, dj, bR, ck)
426428 }
427429
428430
429-func dj (dg,cl,cr) = if ((size(dg.payments) != 2))
431+func dk (dh,cm,cs) = if ((size(dh.payments) != 2))
430432 then throw("exactly 2 payments are expected")
431433 else {
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())
434+ let dl = value(dh.payments[0])
435+ let dm = value(dh.payments[1])
436+ let dn = cl(toBase58String(dh.transactionId), cm, dl.amount, dl.assetId, dm.amount, dm.assetId, toString(dh.caller), false, cs)
437+ let bW = parseIntValue(dn._8)
438+ if (if (if (aH())
437439 then true
438- else (bV == l))
440+ else (bW == l))
439441 then true
440- else (bV == n))
441- then throw(("Put operation is blocked by admin. Status = " + toString(bV)))
442- else dm
442+ else (bW == n))
443+ then throw(("Put operation is blocked by admin. Status = " + toString(bW)))
444+ else dn
443445 }
444446
445447
446-func dn (do) = {
447- let dp = invoke(aE, "emit", [do], nil)
448- if ((dp == dp))
448+func do (dp) = {
449+ let dq = invoke(aF, "emit", [dp], nil)
450+ if ((dq == dq))
449451 then {
450- let dq = {
451- let dr = dp
452- if ($isInstanceOf(dr, "Address"))
452+ let dr = {
453+ let ds = dq
454+ if ($isInstanceOf(ds, "Address"))
453455 then {
454- let ds = dr
455- invoke(ds, "emit", [do], nil)
456+ let dt = ds
457+ invoke(dt, "emit", [dp], nil)
456458 }
457459 else unit
458460 }
459- if ((dq == dq))
460- then do
461+ if ((dr == dr))
462+ then dp
461463 else throw("Strict value is not equal to itself.")
462464 }
463465 else throw("Strict value is not equal to itself.")
464466 }
465467
466468
467-func dt (do) = {
468- let du = fraction(do, af, b)
469- $Tuple2((do - du), du)
469+func du (dp) = {
470+ let dv = fraction(dp, ag, b)
471+ $Tuple2((dp - dv), dv)
470472 }
471473
472474
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))
475+func dw (dx,dy,Z,aa) = {
476+ let dz = (aa == unit)
477+ let dA = bs(aO(aW))
478+ let dB = bs(aO(aX))
479+ let dC = if ((dy == aW))
478480 then true
479- else if ((dx == aW))
481+ else if ((dy == aX))
480482 then false
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
499- let dM = (dD + dI)
483+ else aD("invalid asset")
484+ let dD = if (dz)
485+ then $Tuple2(dA, dB)
486+ else if (dC)
487+ then $Tuple2((dA - dx), dB)
488+ else $Tuple2(dA, (dB - dx))
489+ let dE = dD._1
490+ let dF = dD._2
491+ let dG = if (dC)
492+ then $Tuple2(dx, 0)
493+ else $Tuple2(0, dx)
494+ let dH = dG._1
495+ let dI = dG._2
496+ let dJ = du(dH)._1
497+ let dK = du(dI)._1
498+ let dL = du(dx)
499+ let dM = dL._1
500+ let dv = dL._2
500501 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))
502+ let dO = (dF + dK)
503+ let dP = bu(F(dO, aZ), F(dN, aY))
504+ let dQ = I(dP, b)
505+ let dR = if (dC)
506+ then dE
507+ else dF
508+ let dS = toBigInt(dR)
509+ let dT = toBigInt(valueOrErrorMessage(assetInfo(aV), (("asset " + toBase58String(aV)) + " doesn't exist")).quantity)
510+ let dU = if ((dT > f))
509511 then true
510- else aC("initial deposit requires all coins")
511- if ((dT == dT))
512+ else aD("initial deposit requires all coins")
513+ if ((dU == dU))
512514 then {
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)
515+ let dV = toBigInt(dM)
516+ let dW = max([0, toInt(((dT * (sqrtBigInt((d + ((dV * d) / dS)), 18, 18, DOWN) - d)) / d))])
517+ let cR = if (dz)
516518 then nil
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)
519+ else [IntegerEntry(U(), dQ), IntegerEntry(V(height, lastBlock.timestamp), dQ), StringEntry(Y(toString(value(Z)), toBase58String(value(aa))), bd(dH, dI, dW, dQ, 0, 0, height, lastBlock.timestamp, 0, 0))]
520+ let dX = bu(F(dF, aZ), F(dE, aY))
521+ let dY = I(dX, b)
522+ let dZ = {
523+ let ea = if (dC)
524+ then $Tuple2(dH, dE)
525+ else $Tuple2(dI, dF)
526+ let dp = ea._1
527+ let eb = ea._2
528+ let ec = toInt(fraction(dT, toBigInt((dp / 2)), toBigInt(eb)))
529+ fraction((dW - ec), b, ec)
528530 }
529- $Tuple4(dV, cQ, du, dY)
531+ $Tuple4(dW, cR, dv, dZ)
530532 }
531533 else throw("Strict value is not equal to itself.")
532534 }
533535
534536
535-func ec (ed,dL,dx,Y,Z) = {
536- let dy = (Z == unit)
537- let ee = [if ((dx == aU))
537+func ed (ee,dM,dy,Z,aa) = {
538+ let dz = (aa == unit)
539+ let ef = [if ((dy == aV))
538540 then true
539- else aC("invalid lp asset")]
540- if ((ee == ee))
541+ else aD("invalid lp asset")]
542+ if ((ef == ef))
541543 then {
542- let ef = if ((ed == aV))
544+ let eg = if ((ee == aW))
543545 then true
544- else if ((ed == aW))
546+ else if ((ee == aX))
545547 then false
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)
548+ else aD("invalid asset")
549+ let eh = if (eg)
550+ then toBigInt(bs(aO(aW)))
551+ else toBigInt(bs(aO(aX)))
552+ let ei = bs(aO(aW))
553+ let ej = bs(aO(aX))
554+ let ek = if (eg)
555+ then ei
556+ else ej
557+ let el = toBigInt(ek)
558+ let dT = toBigInt(valueOrErrorMessage(assetInfo(aV), (("asset " + toBase58String(aV)) + " doesn't exist")).quantity)
559+ let em = toBigInt(dM)
560+ let en = max([0, toInt(((eh * (d - pow((d - ((em * d) / dT)), 18, h, 0, 18, DOWN))) / d))])
561+ let eo = du(en)
562+ let ep = eo._1
563+ let dv = eo._2
564+ let eq = if (eg)
565+ then $Tuple4(ep, 0, (ei - en), ej)
566+ else $Tuple4(0, ep, ei, (ej - en))
567+ let er = eq._1
568+ let es = eq._2
569+ let et = eq._3
570+ let eu = eq._4
571+ let dP = bu(F(eu, aZ), F(et, aY))
572+ let dQ = I(dP, b)
573+ let cR = if (dz)
572574 then nil
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)
575+ else [StringEntry(ab(toString(value(Z)), toBase58String(value(aa))), bo(er, es, dM, dQ, height, lastBlock.timestamp)), IntegerEntry(U(), dQ), IntegerEntry(V(height, lastBlock.timestamp), dQ)]
576+ let dX = bu(F(ej, aZ), F(ei, aY))
577+ let dY = I(dX, b)
578+ let dZ = {
579+ let ev = (toInt(fraction(eh, em, dT)) * 2)
580+ fraction((ep - ev), b, ev)
579581 }
580- $Tuple4(eo, cQ, du, dY)
582+ $Tuple4(ep, cR, dv, dZ)
581583 }
582584 else throw("Strict value is not equal to itself.")
583585 }
584586
585587
586-func ev () = {
587- let dr = getString(R())
588- if ($isInstanceOf(dr, "String"))
588+func ew () = {
589+ let ds = getString(S())
590+ if ($isInstanceOf(ds, "String"))
589591 then {
590- let ew = dr
591- fromBase58String(ew)
592+ let ex = ds
593+ fromBase58String(ex)
592594 }
593- else if ($isInstanceOf(dr, "Unit"))
595+ else if ($isInstanceOf(ds, "Unit"))
594596 then unit
595597 else throw("Match error")
596598 }
597599
598600
599-func ex () = {
600- let dr = getString(S())
601- if ($isInstanceOf(dr, "String"))
601+func ey () = {
602+ let ds = getString(T())
603+ if ($isInstanceOf(ds, "String"))
602604 then {
603- let ew = dr
604- fromBase58String(ew)
605+ let ex = ds
606+ fromBase58String(ex)
605607 }
606- else if ($isInstanceOf(dr, "Unit"))
608+ else if ($isInstanceOf(ds, "Unit"))
607609 then unit
608610 else throw("Match error")
609611 }
610612
611613
612-func ey (dg) = {
613- let ez = throw("Permission denied")
614- let dr = ev()
615- if ($isInstanceOf(dr, "ByteVector"))
614+func ez (dh) = {
615+ let eA = throw("Permission denied")
616+ let ds = ew()
617+ if ($isInstanceOf(ds, "ByteVector"))
616618 then {
617- let eA = dr
618- if ((dg.callerPublicKey == eA))
619+ let eB = ds
620+ if ((dh.callerPublicKey == eB))
619621 then true
620- else ez
622+ else eA
621623 }
622- else if ($isInstanceOf(dr, "Unit"))
623- then if ((dg.caller == this))
624+ else if ($isInstanceOf(ds, "Unit"))
625+ then if ((dh.caller == this))
624626 then true
625- else ez
627+ else eA
626628 else throw("Match error")
627629 }
628630
629631
630-@Callable(dg)
631-func setManager (eB) = {
632- let eC = ey(dg)
633- if ((eC == eC))
632+@Callable(dh)
633+func setManager (eC) = {
634+ let eD = ez(dh)
635+ if ((eD == eD))
634636 then {
635- let eD = fromBase58String(eB)
636- if ((eD == eD))
637- then [StringEntry(S(), eB)]
637+ let eE = fromBase58String(eC)
638+ if ((eE == eE))
639+ then [StringEntry(T(), eC)]
638640 else throw("Strict value is not equal to itself.")
639641 }
640642 else throw("Strict value is not equal to itself.")
642644
643645
644646
645-@Callable(dg)
647+@Callable(dh)
646648 func confirmManager () = {
647- let eE = ex()
648- let eF = if (isDefined(eE))
649+ let eF = ey()
650+ let eG = if (isDefined(eF))
649651 then true
650652 else throw("No pending manager")
651- if ((eF == eF))
653+ if ((eG == eG))
652654 then {
653- let eG = if ((dg.callerPublicKey == value(eE)))
655+ let eH = if ((dh.callerPublicKey == value(eF)))
654656 then true
655657 else throw("You are not pending manager")
656- if ((eG == eG))
657- then [StringEntry(R(), toBase58String(value(eE))), DeleteEntry(S())]
658+ if ((eH == eH))
659+ then [StringEntry(S(), toBase58String(value(eF))), DeleteEntry(T())]
658660 else throw("Strict value is not equal to itself.")
659661 }
660662 else throw("Strict value is not equal to itself.")
662664
663665
664666
665-@Callable(dg)
666-func put (cl,eH) = if ((0 > cl))
667+@Callable(dh)
668+func put (cm,eI) = if ((0 > cm))
667669 then throw("Invalid slippageTolerance passed")
668670 else {
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))
671+ let dn = dk(dh, cm, true)
672+ let cO = dn._2
673+ let bT = dn._7
674+ let ck = dn._9
675+ let cP = dn._10
676+ let cQ = dn._11
677+ let eJ = dn._12
678+ let eK = dn._13
679+ let dq = invoke(aF, "emit", [cO], nil)
680+ if ((dq == dq))
679681 then {
680- let dq = {
681- let dr = dp
682- if ($isInstanceOf(dr, "Address"))
682+ let dr = {
683+ let ds = dq
684+ if ($isInstanceOf(ds, "Address"))
683685 then {
684- let ds = dr
685- invoke(ds, "emit", [cN], nil)
686+ let dt = ds
687+ invoke(dt, "emit", [cO], nil)
686688 }
687689 else unit
688690 }
689- if ((dq == dq))
691+ if ((dr == dr))
690692 then {
691- let eK = if ((cO > 0))
692- then invoke(bb, "put", nil, [AttachedPayment(eI, cO)])
693+ let eL = if ((cP > 0))
694+ then invoke(bc, "put", nil, [AttachedPayment(eJ, cP)])
693695 else nil
694- if ((eK == eK))
696+ if ((eL == eL))
695697 then {
696- let eL = if ((cP > 0))
697- then invoke(bb, "put", nil, [AttachedPayment(eJ, cP)])
698+ let eM = if ((cQ > 0))
699+ then invoke(bc, "put", nil, [AttachedPayment(eK, cQ)])
698700 else nil
699- if ((eL == eL))
701+ if ((eM == eM))
700702 then {
701- let eM = if (eH)
703+ let eN = if (eI)
702704 then {
703- let eN = invoke(ba, "stake", nil, [AttachedPayment(bS, cN)])
704- if ((eN == eN))
705+ let eO = invoke(bb, "stake", nil, [AttachedPayment(bT, cO)])
706+ if ((eO == eO))
705707 then nil
706708 else throw("Strict value is not equal to itself.")
707709 }
708- else [ScriptTransfer(dg.caller, cN, bS)]
709- (cj ++ eM)
710+ else [ScriptTransfer(dh.caller, cO, bT)]
711+ (ck ++ eN)
710712 }
711713 else throw("Strict value is not equal to itself.")
712714 }
719721
720722
721723
722-@Callable(dg)
723-func putForFree (eO) = if ((0 > eO))
724+@Callable(dh)
725+func putForFree (eP) = if ((0 > eP))
724726 then throw("Invalid value passed")
725727 else {
726- let dm = dj(dg, eO, false)
727- dm._9
728+ let dn = dk(dh, eP, false)
729+ dn._9
728730 }
729731
730732
731733
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"))
734+@Callable(dh)
735+func putOneTkn (eQ,eR) = {
736+ let eS = {
737+ let eT = invoke(aF, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
738+ if ($isInstanceOf(eT, "Boolean"))
739+ then eT
740+ else throw(($getType(eT) + " couldn't be cast to Boolean"))
739741 }
740- let eT = if (if (if (aG())
742+ let eU = if (if (if (aH())
741743 then true
742- else (aT == l))
744+ else (aU == l))
743745 then true
744- else (aT == n))
746+ else (aU == n))
745747 then true
746- else eR
747- let ee = [if (!(eT))
748+ else eS
749+ let ef = [if (!(eU))
748750 then true
749- else aC("put operation is blocked by admin"), if ((size(dg.payments) == 1))
751+ else aD("put operation is blocked by admin"), if ((size(dh.payments) == 1))
750752 then true
751- else aC("exactly 1 payment are expected")]
752- if ((ee == ee))
753+ else aD("exactly 1 payment are expected")]
754+ if ((ef == ef))
753755 then {
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)
756+ let eV = dh.payments[0]
757+ let dy = eV.assetId
758+ let dx = eV.amount
759+ let Z = dh.caller
760+ let aa = dh.transactionId
761+ let eW = dw(dx, dy, Z, aa)
762+ let eX = eW._1
763+ let cR = eW._2
764+ let dv = eW._3
765+ let eY = eW._4
766+ let eZ = if (if ((eQ > 0))
767+ then (eQ > eX)
766768 else false)
767- then aC(makeString(["amount to receive is less than ", toString(eP)], ""))
768- else eW
769- let dp = dn(eY)
770- if ((dp == dp))
769+ then aD(makeString(["amount to receive is less than ", toString(eQ)], ""))
770+ else eX
771+ let dq = do(eZ)
772+ if ((dq == dq))
771773 then {
772- let eM = if (eQ)
774+ let eN = if (eR)
773775 then {
774- let eZ = invoke(ba, "stake", nil, [AttachedPayment(aU, eY)])
775- if ((eZ == eZ))
776+ let fa = invoke(bb, "stake", nil, [AttachedPayment(aV, eZ)])
777+ if ((fa == fa))
776778 then nil
777779 else throw("Strict value is not equal to itself.")
778780 }
779- else [ScriptTransfer(dg.caller, eY, aU)]
780- let fa = if ((du > 0))
781- then [ScriptTransfer(aF, du, dx)]
781+ else [ScriptTransfer(dh.caller, eZ, aV)]
782+ let fb = if ((dv > 0))
783+ then [ScriptTransfer(aG, dv, dy)]
782784 else nil
783- $Tuple2(((cQ ++ eM) ++ fa), eY)
785+ $Tuple2(((cR ++ eN) ++ fb), eZ)
784786 }
785787 else throw("Strict value is not equal to itself.")
786788 }
789791
790792
791793
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))
794+@Callable(dh)
795+func putOneTknREADONLY (dy,dx) = {
796+ let fc = dw(dx, aM(dy), unit, unit)
797+ let eX = fc._1
798+ let cR = fc._2
799+ let dv = fc._3
800+ let eY = fc._4
801+ $Tuple2(nil, $Tuple3(eX, dv, eY))
800802 }
801803
802804
803805
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"))
806+@Callable(dh)
807+func getOneTkn (fd,eQ) = {
808+ let eS = {
809+ let eT = invoke(aF, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
810+ if ($isInstanceOf(eT, "Boolean"))
811+ then eT
812+ else throw(($getType(eT) + " couldn't be cast to Boolean"))
811813 }
812- let fd = if (if (aG())
814+ let fe = if (if (aH())
813815 then true
814- else (aT == n))
816+ else (aU == n))
815817 then true
816- else eR
817- let ee = [if (!(fd))
818+ else eS
819+ let ef = [if (!(fe))
818820 then true
819- else aC("get operation is blocked by admin"), if ((size(dg.payments) == 1))
821+ else aD("get operation is blocked by admin"), if ((size(dh.payments) == 1))
820822 then true
821- else aC("exactly 1 payment are expected")]
822- if ((ee == ee))
823+ else aD("exactly 1 payment are expected")]
824+ if ((ef == ef))
823825 then {
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)
826+ let ee = aM(fd)
827+ let eV = dh.payments[0]
828+ let dy = eV.assetId
829+ let dM = eV.amount
830+ let Z = dh.caller
831+ let aa = dh.transactionId
832+ let ff = ed(ee, dM, dy, Z, aa)
833+ let fg = ff._1
834+ let cR = ff._2
835+ let dv = ff._3
836+ let eY = ff._4
837+ let dp = if (if ((eQ > 0))
838+ then (eQ > fg)
837839 else false)
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))
840+ then aD(makeString(["amount to receive is less than ", toString(eQ)], ""))
841+ else fg
842+ let fh = invoke(aF, "burn", [dM], [AttachedPayment(dy, dM)])
843+ if ((fh == fh))
842844 then {
843- let fh = [ScriptTransfer(Y, do, ed)]
844- let fa = if ((du > 0))
845- then [ScriptTransfer(aF, du, ed)]
845+ let fi = [ScriptTransfer(Z, dp, ee)]
846+ let fb = if ((dv > 0))
847+ then [ScriptTransfer(aG, dv, ee)]
846848 else nil
847- $Tuple2(((cQ ++ fh) ++ fa), do)
849+ $Tuple2(((cR ++ fi) ++ fb), dp)
848850 }
849851 else throw("Strict value is not equal to itself.")
850852 }
853855
854856
855857
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))
858+@Callable(dh)
859+func getOneTknREADONLY (ee,dM) = {
860+ let fj = ed(aM(ee), dM, aV, unit, unit)
861+ let fg = fj._1
862+ let cR = fj._2
863+ let dv = fj._3
864+ let eY = fj._4
865+ $Tuple2(nil, $Tuple3(fg, dv, eY))
864866 }
865867
866868
867869
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"))
870+@Callable(dh)
871+func unstakeAndGetOneTkn (fk,fd,eQ) = {
872+ let eS = {
873+ let eT = invoke(aF, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
874+ if ($isInstanceOf(eT, "Boolean"))
875+ then eT
876+ else throw(($getType(eT) + " couldn't be cast to Boolean"))
875877 }
876- let fd = if (if (aG())
878+ let fe = if (if (aH())
877879 then true
878- else (aT == n))
880+ else (aU == n))
879881 then true
880- else eR
881- let ee = [if (!(fd))
882+ else eS
883+ let ef = [if (!(fe))
882884 then true
883- else aC("get operation is blocked by admin"), if ((size(dg.payments) == 0))
885+ else aD("get operation is blocked by admin"), if ((size(dh.payments) == 0))
884886 then true
885- else aC("no payments are expected")]
886- if ((ee == ee))
887+ else aD("no payments are expected")]
888+ if ((ef == ef))
887889 then {
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))
890+ let ee = aM(fd)
891+ let Z = dh.caller
892+ let aa = dh.transactionId
893+ let fl = invoke(bb, "unstake", [toBase58String(aV), fk], nil)
894+ if ((fl == fl))
893895 then {
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)
896+ let fm = ed(ee, fk, aV, Z, aa)
897+ let fg = fm._1
898+ let cR = fm._2
899+ let dv = fm._3
900+ let eY = fm._4
901+ let dp = if (if ((eQ > 0))
902+ then (eQ > fg)
901903 else false)
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))
904+ then aD(makeString(["amount to receive is less than ", toString(eQ)], ""))
905+ else fg
906+ let fh = invoke(aF, "burn", [fk], [AttachedPayment(aV, fk)])
907+ if ((fh == fh))
906908 then {
907- let fh = [ScriptTransfer(dg.caller, do, ed)]
908- let fa = if ((du > 0))
909- then [ScriptTransfer(aF, du, ed)]
909+ let fi = [ScriptTransfer(dh.caller, dp, ee)]
910+ let fb = if ((dv > 0))
911+ then [ScriptTransfer(aG, dv, ee)]
910912 else nil
911- $Tuple2(((cQ ++ fh) ++ fa), do)
913+ $Tuple2(((cR ++ fi) ++ fb), dp)
912914 }
913915 else throw("Strict value is not equal to itself.")
914916 }
919921
920922
921923
922-@Callable(dg)
924+@Callable(dh)
923925 func get () = {
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
926+ let cC = dg(dh)
927+ let fn = cC._1
928+ let cj = cC._2
929+ let dj = cC._3
930+ let bR = cC._4
931+ let ck = cC._5
932+ let fo = invoke(aF, "burn", [dj], [AttachedPayment(bR, dj)])
933+ if ((fo == fo))
934+ then ck
933935 else throw("Strict value is not equal to itself.")
934936 }
935937
936938
937939
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)))
940+@Callable(dh)
941+func getNoLess (fp,fq) = {
942+ let cC = dg(dh)
943+ let ci = cC._1
944+ let cj = cC._2
945+ let dj = cC._3
946+ let bR = cC._4
947+ let ck = cC._5
948+ if ((fp > ci))
949+ then throw(((("noLessThenAmtAsset failed: " + toString(ci)) + " < ") + toString(fp)))
950+ else if ((fq > cj))
951+ then throw(((("noLessThenPriceAsset failed: " + toString(cj)) + " < ") + toString(fq)))
950952 else {
951- let fn = invoke(aE, "burn", [di], [AttachedPayment(bQ, di)])
952- if ((fn == fn))
953- then cj
953+ let fo = invoke(aF, "burn", [dj], [AttachedPayment(bR, dj)])
954+ if ((fo == fo))
955+ then ck
954956 else throw("Strict value is not equal to itself.")
955957 }
956958 }
957959
958960
959961
960-@Callable(dg)
961-func unstakeAndGet (do) = {
962- let fq = if ((size(dg.payments) != 0))
962+@Callable(dh)
963+func unstakeAndGet (dp) = {
964+ let fr = if ((size(dh.payments) != 0))
963965 then throw("No payments are expected")
964966 else true
965- if ((fq == fq))
967+ if ((fr == fr))
966968 then {
967- let bF = aI()
968- let bS = fromBase58String(bF[q])
969- let fk = invoke(ba, "unstake", [toBase58String(bS), do], nil)
970- if ((fk == fk))
969+ let bG = aJ()
970+ let bT = fromBase58String(bG[q])
971+ let fl = invoke(bb, "unstake", [toBase58String(bT), dp], nil)
972+ if ((fl == fl))
971973 then {
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())
974+ let cC = bP(toBase58String(dh.transactionId), toBase58String(bT), dp, dh.caller)
975+ let bW = parseIntValue(cC._9)
976+ let ck = cC._10
977+ let fs = if (if (aH())
976978 then true
977- else (bV == n))
978- then throw(("Get operation is blocked by admin. Status = " + toString(bV)))
979+ else (bW == n))
980+ then throw(("Get operation is blocked by admin. Status = " + toString(bW)))
979981 else true
980- if ((fr == fr))
982+ if ((fs == fs))
981983 then {
982- let fn = invoke(aE, "burn", [do], [AttachedPayment(bS, do)])
983- if ((fn == fn))
984- then cj
984+ let fo = invoke(aF, "burn", [dp], [AttachedPayment(bT, dp)])
985+ if ((fo == fo))
986+ then ck
985987 else throw("Strict value is not equal to itself.")
986988 }
987989 else throw("Strict value is not equal to itself.")
993995
994996
995997
996-@Callable(dg)
997-func unstakeAndGetNoLess (fj,fs,fp) = {
998- let fd = if (aG())
998+@Callable(dh)
999+func unstakeAndGetNoLess (fk,ft,fq) = {
1000+ let fe = if (aH())
9991001 then true
1000- else (aT == n)
1001- let ee = [if (!(fd))
1002+ else (aU == n)
1003+ let ef = [if (!(fe))
10021004 then true
1003- else throw("get operation is blocked by admin"), if ((size(dg.payments) == 0))
1005+ else throw("get operation is blocked by admin"), if ((size(dh.payments) == 0))
10041006 then true
10051007 else throw("no payments are expected")]
1006- if ((ee == ee))
1008+ if ((ef == ef))
10071009 then {
1008- let fk = invoke(ba, "unstake", [toBase58String(aU), fj], nil)
1009- if ((fk == fk))
1010+ let fl = invoke(bb, "unstake", [toBase58String(aV), fk], nil)
1011+ if ((fl == fl))
10101012 then {
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))
1013+ let cC = bP(toBase58String(dh.transactionId), toBase58String(aV), fk, dh.caller)
1014+ let ci = cC._1
1015+ let cj = cC._2
1016+ let ck = cC._10
1017+ let fu = [if ((ci >= ft))
10161018 then true
1017- else throw(makeString(["amount asset amount to receive is less than ", toString(fs)], "")), if ((ci >= fp))
1019+ else throw(makeString(["amount asset amount to receive is less than ", toString(ft)], "")), if ((cj >= fq))
10181020 then true
1019- else throw(makeString(["price asset amount to receive is less than ", toString(fp)], ""))]
1020- if ((ft == ft))
1021+ else throw(makeString(["price asset amount to receive is less than ", toString(fq)], ""))]
1022+ if ((fu == fu))
10211023 then {
1022- let fn = invoke(aE, "burn", [fj], [AttachedPayment(aU, fj)])
1023- if ((fn == fn))
1024- then cj
1024+ let fo = invoke(aF, "burn", [fk], [AttachedPayment(aV, fk)])
1025+ if ((fo == fo))
1026+ then ck
10251027 else throw("Strict value is not equal to itself.")
10261028 }
10271029 else throw("Strict value is not equal to itself.")
10331035
10341036
10351037
1036-@Callable(dg)
1037-func activate (fu,fv) = if ((toString(dg.caller) != toString(aE)))
1038+@Callable(dh)
1039+func activate (fv,fw) = if ((toString(dh.caller) != toString(aF)))
10381040 then throw("permissions denied")
1039- else $Tuple2([StringEntry(ab(), fu), StringEntry(ac(), fv)], "success")
1041+ else $Tuple2([StringEntry(ac(), fv), StringEntry(ad(), fw)], "success")
10401042
10411043
10421044
1043-@Callable(dg)
1044-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aI())
1045+@Callable(dh)
1046+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aJ())
10451047
10461048
10471049
1048-@Callable(dg)
1049-func getAccBalanceWrapperREADONLY (bs) = $Tuple2(nil, br(bs))
1050+@Callable(dh)
1051+func getAccBalanceWrapperREADONLY (bt) = $Tuple2(nil, bs(bt))
10501052
10511053
10521054
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])])
1055+@Callable(dh)
1056+func calcPricesWrapperREADONLY (bA,bB,bF) = {
1057+ let bO = bE(bA, bB, bF)
1058+ $Tuple2(nil, [toString(bO[0]), toString(bO[1]), toString(bO[2])])
10571059 }
10581060
10591061
10601062
1061-@Callable(dg)
1062-func toX18WrapperREADONLY (F,G) = $Tuple2(nil, toString(E(F, G)))
1063+@Callable(dh)
1064+func toX18WrapperREADONLY (G,H) = $Tuple2(nil, toString(F(G, H)))
10631065
10641066
10651067
1066-@Callable(dg)
1067-func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
1068+@Callable(dh)
1069+func fromX18WrapperREADONLY (J,K) = $Tuple2(nil, I(parseBigIntValue(J), K))
10681070
10691071
10701072
1071-@Callable(dg)
1072-func calcPriceBigIntWrapperREADONLY (bu,bv) = $Tuple2(nil, toString(bt(parseBigIntValue(bu), parseBigIntValue(bv))))
1073+@Callable(dh)
1074+func calcPriceBigIntWrapperREADONLY (bv,bw) = $Tuple2(nil, toString(bu(parseBigIntValue(bv), parseBigIntValue(bw))))
10731075
10741076
10751077
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))
1078+@Callable(dh)
1079+func estimatePutOperationWrapperREADONLY (bQ,cm,cn,co,cp,cq,Z,cr,cs) = $Tuple2(nil, cl(bQ, cm, cn, co, cp, cq, Z, cr, cs))
10781080
10791081
10801082
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))
1083+@Callable(dh)
1084+func estimateGetOperationWrapperREADONLY (bQ,bR,bS,Z) = {
1085+ let cC = bP(bQ, bR, bS, addressFromStringValue(Z))
1086+ $Tuple2(nil, $Tuple10(cC._1, cC._2, cC._3, cC._4, cC._5, cC._6, cC._7, toString(cC._8), cC._9, cC._10))
10851087 }
10861088
10871089
10881090
1089-@Callable(dg)
1091+@Callable(dh)
10901092 func statsREADONLY () = {
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))
1093+ let bG = aJ()
1094+ let bT = fromBase58String(bG[q])
1095+ let cU = bG[r]
1096+ let cV = bG[s]
1097+ let cv = bG[v]
1098+ let cw = bG[w]
1099+ let bH = parseIntValue(bG[t])
1100+ let bI = parseIntValue(bG[u])
1101+ let fx = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
1102+ let cW = bs(cU)
1103+ let cX = bs(cV)
1104+ let fy = if ((fx == 0))
11031105 then [e, e, e]
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))
1106+ else bE(cW, cX, fx)
1107+ let cd = 0
1108+ let fz = I(fy[1], b)
1109+ let fA = I(fy[2], b)
1110+ let fB = value(getInteger(aF, ar(toString(this))))
1111+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cW), toString(cX), toString(fx), toString(cd), toString(fz), toString(fA), toString(fB)], j))
11101112 }
11111113
11121114
11131115
1114-@Callable(dg)
1115-func evaluatePutByAmountAssetREADONLY (cm) = {
1116- let bF = aI()
1117- let bS = fromBase58String(bF[q])
1118- let cs = bF[r]
1119- let bT = fromBase58String(cs)
1120- let ct = bF[s]
1116+@Callable(dh)
1117+func evaluatePutByAmountAssetREADONLY (cn) = {
1118+ let bG = aJ()
1119+ let bT = fromBase58String(bG[q])
1120+ let ct = bG[r]
11211121 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))
1122+ let cu = bG[s]
1123+ let bV = fromBase58String(cu)
1124+ let bH = parseIntValue(bG[t])
1125+ let bI = parseIntValue(bG[u])
1126+ let bW = bG[p]
1127+ let fx = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
1128+ let cW = bs(ct)
1129+ let cX = bs(cu)
1130+ let bC = F(cW, bH)
1131+ let bD = F(cX, bI)
1132+ let cc = if ((fx == 0))
11311133 then e
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))
1134+ else bu(bD, bC)
1135+ let cz = F(cn, bH)
1136+ let cA = fraction(cz, cc, d)
1137+ let cp = I(cA, bI)
1138+ let dn = cl("", 500000, cn, bU, cp, bV, "", true, false)
1139+ let cK = dn._1
1140+ let fC = dn._3
1141+ let bY = dn._4
1142+ let ca = dn._5
1143+ let bX = dn._6
1144+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cK), toString(I(cc, b)), toString(bY), toString(ca), toString(bX), bW, toString(cn), toString(cp)], j))
11431145 }
11441146
11451147
11461148
1147-@Callable(dg)
1148-func evaluatePutByPriceAssetREADONLY (co) = {
1149- let bF = aI()
1150- let bS = fromBase58String(bF[q])
1151- let cs = bF[r]
1152- let bT = fromBase58String(cs)
1153- let ct = bF[s]
1149+@Callable(dh)
1150+func evaluatePutByPriceAssetREADONLY (cp) = {
1151+ let bG = aJ()
1152+ let bT = fromBase58String(bG[q])
1153+ let ct = bG[r]
11541154 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))
1155+ let cu = bG[s]
1156+ let bV = fromBase58String(cu)
1157+ let bH = parseIntValue(bG[t])
1158+ let bI = parseIntValue(bG[u])
1159+ let bW = bG[p]
1160+ let fx = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
1161+ let fD = bs(ct)
1162+ let fE = bs(cu)
1163+ let fF = F(fD, bH)
1164+ let fG = F(fE, bI)
1165+ let cc = if ((fx == 0))
11641166 then e
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))
1167+ else bu(fG, fF)
1168+ let cA = F(cp, bI)
1169+ let cz = fraction(cA, d, cc)
1170+ let cn = I(cz, bH)
1171+ let dn = cl("", 500000, cn, bU, cp, bV, "", true, false)
1172+ let cK = dn._1
1173+ let fC = dn._3
1174+ let bY = dn._4
1175+ let ca = dn._5
1176+ let bX = dn._6
1177+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cK), toString(I(cc, b)), toString(bY), toString(ca), toString(bX), bW, toString(cn), toString(cp)], j))
11761178 }
11771179
11781180
11791181
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))
1182+@Callable(dh)
1183+func evaluateGetREADONLY (fH,fI) = {
1184+ let cC = bP("", fH, fI, this)
1185+ let ci = cC._1
1186+ let cj = cC._2
1187+ let bY = cC._5
1188+ let ca = cC._6
1189+ let bX = cC._7
1190+ let cd = cC._8
1191+ let bW = parseIntValue(cC._9)
1192+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(ci), toString(cj), toString(bY), toString(ca), toString(bX), toString(cd), toString(bW)], j))
11911193 }
11921194
11931195
1194-@Verifier(fI)
1195-func fJ () = {
1196- let fK = {
1197- let dr = ev()
1198- if ($isInstanceOf(dr, "ByteVector"))
1196+@Verifier(fJ)
1197+func fK () = {
1198+ let fL = {
1199+ let ds = ew()
1200+ if ($isInstanceOf(ds, "ByteVector"))
11991201 then {
1200- let eA = dr
1201- eA
1202+ let eB = ds
1203+ eB
12021204 }
1203- else if ($isInstanceOf(dr, "Unit"))
1204- then fI.senderPublicKey
1205+ else if ($isInstanceOf(ds, "Unit"))
1206+ then fJ.senderPublicKey
12051207 else throw("Match error")
12061208 }
1207- let dr = fI
1208- if ($isInstanceOf(dr, "Order"))
1209+ let ds = fJ
1210+ if ($isInstanceOf(ds, "Order"))
12091211 then {
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)
1216- then aw
1217- else false)
1212+ let cT = ds
1213+ let fM = aI()
1214+ let aw = cS(cT)
1215+ let ax = sigVerify(cT.bodyBytes, cT.proofs[0], cT.senderPublicKey)
1216+ let ay = sigVerify(cT.bodyBytes, cT.proofs[1], fM)
1217+ if (if (if (aw)
12181218 then ax
12191219 else false)
1220+ then ay
1221+ else false)
12201222 then true
1221- else au(av, aw, ax)
1223+ else av(aw, ax, ay)
12221224 }
1223- else if ($isInstanceOf(dr, "SetScriptTransaction"))
1225+ else if ($isInstanceOf(ds, "SetScriptTransaction"))
12241226 then {
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)
1227+ let ex = ds
1228+ let fN = blake2b256(value(ex.script))
1229+ let fO = fromBase64String(value(getString(aF, at())))
1230+ let fP = scriptHash(this)
1231+ if (if ((fO == fN))
1232+ then (fP != fN)
12311233 else false)
12321234 then true
1233- else sigVerify(fI.bodyBytes, fI.proofs[0], fK)
1235+ else sigVerify(fJ.bodyBytes, fJ.proofs[0], fL)
12341236 }
1235- else sigVerify(fI.bodyBytes, fI.proofs[0], fK)
1237+ else sigVerify(fJ.bodyBytes, fJ.proofs[0], fL)
12361238 }
12371239
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = toBigInt(100000000)
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = toBigInt(0)
1313
1414 let f = toBigInt(0)
1515
1616 let g = toBigInt(1)
1717
1818 let h = toBigInt(2)
1919
2020 let i = "WAVES"
2121
2222 let j = "__"
2323
2424 let k = 1
2525
2626 let l = 2
2727
2828 let m = 3
2929
3030 let n = 4
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 5
4141
4242 let t = 6
4343
4444 let u = 7
4545
4646 let v = 8
4747
4848 let w = 9
4949
5050 let x = 10
5151
5252 let y = 1
5353
5454 let z = 2
5555
5656 let A = 3
5757
5858 let B = 1
5959
6060 let C = 7
6161
6262 let D = 1
6363
64-func E (F,G) = fraction(toBigInt(F), d, toBigInt(G))
64+let E = 1
65+
66+func F (G,H) = fraction(toBigInt(G), d, toBigInt(H))
6567
6668
67-func H (I,J) = toInt(fraction(I, toBigInt(J), d))
69+func I (J,K) = toInt(fraction(J, toBigInt(K), d))
6870
6971
70-func K (L,M,N) = fraction(L, M, N)
72+func L (M,N,O) = fraction(M, N, O)
7173
7274
73-func O (I) = if ((0 > I))
74- then -(I)
75- else I
75+func P (J) = if ((0 > J))
76+ then -(J)
77+ else J
7678
7779
78-func P (I) = if ((e > I))
79- then -(I)
80- else I
80+func Q (J) = if ((e > J))
81+ then -(J)
82+ else J
8183
8284
83-func Q () = "%s__factoryContract"
85+func R () = "%s__factoryContract"
8486
8587
86-func R () = "%s__managerPublicKey"
88+func S () = "%s__managerPublicKey"
8789
8890
89-func S () = "%s__pendingManagerPublicKey"
91+func T () = "%s__pendingManagerPublicKey"
9092
9193
92-func T () = "%s%s__price__last"
94+func U () = "%s%s__price__last"
9395
9496
95-func U (V,W) = makeString(["%s%s%d%d__price__history", toString(V), toString(W)], j)
97+func V (W,X) = makeString(["%s%s%d%d__price__history", toString(W), toString(X)], j)
9698
9799
98-func X (Y,Z) = ((("%s%s%s__P__" + Y) + "__") + Z)
100+func Y (Z,aa) = ((("%s%s%s__P__" + Z) + "__") + aa)
99101
100102
101-func aa (Y,Z) = ((("%s%s%s__G__" + Y) + "__") + Z)
103+func ab (Z,aa) = ((("%s%s%s__G__" + Z) + "__") + aa)
102104
103105
104-func ab () = "%s__amountAsset"
106+func ac () = "%s__amountAsset"
105107
106108
107-func ac () = "%s__priceAsset"
109+func ad () = "%s__priceAsset"
108110
109111
110-let ad = "%s__fee"
112+let ae = "%s__fee"
111113
112-let ae = fraction(10, b, 10000)
114+let af = fraction(10, b, 10000)
113115
114-let af = valueOrElse(getInteger(this, ad), ae)
116+let ag = valueOrElse(getInteger(this, ae), af)
115117
116-func ag () = "%s__factoryConfig"
118+func ah () = "%s__factoryConfig"
117119
118120
119-func ah () = "%s%s__matcher__publicKey"
121+func ai () = "%s%s__matcher__publicKey"
120122
121123
122-func ai (aj) = (("%s%s%s__" + aj) + "__mappings__poolContract2LpAsset")
124+func aj (ak) = (("%s%s%s__" + ak) + "__mappings__poolContract2LpAsset")
123125
124126
125-func ak (al,am) = (((("%d%d%s__" + al) + "__") + am) + "__config")
127+func al (am,an) = (((("%d%d%s__" + am) + "__") + an) + "__config")
126128
127129
128-func an (ao) = ("%s%s%s__mappings__baseAsset2internalId__" + ao)
130+func ao (ap) = ("%s%s%s__mappings__baseAsset2internalId__" + ap)
129131
130132
131-func ap () = "%s__shutdown"
133+func aq () = "%s__shutdown"
132134
133135
134-func aq (ar) = ("%s%s__poolWeight__" + ar)
136+func ar (as) = ("%s%s__poolWeight__" + as)
135137
136138
137-func as () = "%s__allowedLpScriptHash"
139+func at () = "%s__allowedLpScriptHash"
138140
139141
140-let at = "%s__feeCollectorAddress"
142+let au = "%s__feeCollectorAddress"
141143
142-func au (av,aw,ax) = throw(((((("order validation failed: orderValid=" + toString(av)) + " senderValid=") + toString(aw)) + " matcherValid=") + toString(ax)))
144+func av (aw,ax,ay) = throw(((((("order validation failed: orderValid=" + toString(aw)) + " senderValid=") + toString(ax)) + " matcherValid=") + toString(ay)))
143145
144146
145-func ay (az,aA) = valueOrErrorMessage(getString(az, aA), makeString(["mandatory ", toString(az), ".", aA, " is not defined"], ""))
147+func az (aA,aB) = valueOrErrorMessage(getString(aA, aB), makeString(["mandatory ", toString(aA), ".", aB, " is not defined"], ""))
146148
147149
148-func aB (az,aA) = valueOrErrorMessage(getInteger(az, aA), makeString(["mandatory ", toString(az), ".", aA, " is not defined"], ""))
150+func aC (aA,aB) = valueOrErrorMessage(getInteger(aA, aB), makeString(["mandatory ", toString(aA), ".", aB, " is not defined"], ""))
149151
150152
151-func aC (aD) = throw(makeString(["lp.ride:", aD], " "))
153+func aD (aE) = throw(makeString(["lp.ride:", aE], " "))
152154
153155
154-let aE = addressFromStringValue(ay(this, Q()))
156+let aF = addressFromStringValue(az(this, R()))
155157
156-let aF = addressFromStringValue(ay(aE, at))
158+let aG = addressFromStringValue(az(aF, au))
157159
158-func aG () = valueOrElse(getBoolean(aE, ap()), false)
160+func aH () = valueOrElse(getBoolean(aF, aq()), false)
159161
160162
161-func aH () = fromBase58String(ay(aE, ah()))
163+func aI () = fromBase58String(az(aF, ai()))
162164
163165
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)
166+func aJ () = {
167+ let aK = az(this, ac())
168+ let aL = az(this, ad())
169+ let an = aC(aF, ao(aL))
170+ let am = aC(aF, ao(aK))
171+ split(az(aF, al(toString(am), toString(an))), j)
170172 }
171173
172174
173-func aL (aM) = if ((aM == i))
175+func aM (aN) = if ((aN == i))
174176 then unit
175- else fromBase58String(aM)
177+ else fromBase58String(aN)
176178
177179
178-func aN (aM) = if ((aM == unit))
180+func aO (aN) = if ((aN == unit))
179181 then i
180- else toBase58String(value(aM))
182+ else toBase58String(value(aN))
181183
182184
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]))
185+func aP (aQ) = $Tuple7(addressFromStringValue(aQ[o]), parseIntValue(aQ[p]), fromBase58String(aQ[q]), aM(aQ[r]), aM(aQ[s]), parseIntValue(aQ[t]), parseIntValue(aQ[u]))
184186
185187
186-let aQ = aO(aI())
188+let aR = aP(aJ())
187189
188-let aR = aQ
190+let aS = aR
189191
190-let aS = aR._1
192+let aT = aS._1
191193
192-let aT = aR._2
194+let aU = aS._2
193195
194-let aU = aR._3
196+let aV = aS._3
195197
196-let aV = aR._4
198+let aW = aS._4
197199
198-let aW = aR._5
200+let aX = aS._5
199201
200-let aX = aR._6
202+let aY = aS._6
201203
202-let aY = aR._7
204+let aZ = aS._7
203205
204-func aZ () = split(ay(aE, ag()), j)
206+func ba () = split(az(aF, ah()), j)
205207
206208
207-let ba = valueOrErrorMessage(addressFromString(aZ()[B]), "incorrect staking address")
209+let bb = valueOrErrorMessage(addressFromString(ba()[B]), "incorrect staking address")
208210
209-let bb = valueOrErrorMessage(addressFromString(aZ()[C]), "incorrect staking address")
211+let bc = valueOrErrorMessage(addressFromString(ba()[C]), "incorrect staking address")
210212
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)
213+func bd (be,bf,bg,bh,bi,bj,bk,bl,bm,bn) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj), toString(bk), toString(bl), toString(bm), toString(bn)], j)
212214
213215
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)
216+func bo (bp,bq,br,bh,bk,bl) = makeString(["%d%d%d%d%d%d", toString(bp), toString(bq), toString(br), toString(bh), toString(bk), toString(bl)], j)
215217
216218
217-func br (bs) = if ((bs == "WAVES"))
219+func bs (bt) = if ((bt == "WAVES"))
218220 then wavesBalance(this).available
219- else assetBalance(this, fromBase58String(bs))
221+ else assetBalance(this, fromBase58String(bt))
220222
221223
222-func bt (bu,bv) = fraction(bu, d, bv)
224+func bu (bv,bw) = fraction(bv, d, bw)
223225
224226
225-func bw (bx,by,bz,bA) = {
226- let bB = E(bz, bx)
227- let bC = E(bA, by)
228- bt(bC, bB)
227+func bx (by,bz,bA,bB) = {
228+ let bC = F(bA, by)
229+ let bD = F(bB, bz)
230+ bu(bD, bC)
229231 }
230232
231233
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]
234+func bE (bA,bB,bF) = {
235+ let bG = aJ()
236+ let bH = parseIntValue(bG[t])
237+ let bI = parseIntValue(bG[u])
238+ let bJ = bx(bH, bI, bA, bB)
239+ let bw = F(bA, bH)
240+ let bv = F(bB, bI)
241+ let bK = F(bF, b)
242+ let bL = bu(bw, bK)
243+ let bM = bu(bv, bK)
244+[bJ, bL, bM]
243245 }
244246
245247
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)]
248+func bN (bA,bB,bF) = {
249+ let bO = bE(bA, bB, bF)
250+[I(bO[0], b), I(bO[1], b), I(bO[2], b)]
249251 }
250252
251253
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))
254+func bP (bQ,bR,bS,Z) = {
255+ let bG = aJ()
256+ let bT = bG[q]
257+ let bU = bG[r]
258+ let bV = bG[s]
259+ let by = parseIntValue(bG[t])
260+ let bz = parseIntValue(bG[u])
261+ let bW = bG[p]
262+ let bX = valueOrErrorMessage(assetInfo(fromBase58String(bT)), (("Asset " + bT) + " doesn't exist")).quantity
263+ if ((bT != bR))
262264 then throw("Invalid asset passed.")
263265 else {
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 == ""))
266+ let bY = bs(bU)
267+ let bZ = F(bY, by)
268+ let ca = bs(bV)
269+ let cb = F(ca, bz)
270+ let cc = bu(cb, bZ)
271+ let cd = I(cc, b)
272+ let ce = F(bS, b)
273+ let cf = F(bX, b)
274+ let cg = fraction(bZ, ce, cf)
275+ let ch = fraction(cb, ce, cf)
276+ let ci = I(cg, by)
277+ let cj = I(ch, bz)
278+ let ck = if ((bQ == ""))
277279 then nil
278- else [ScriptTransfer(Y, ch, if ((bT == "WAVES"))
280+ else [ScriptTransfer(Z, ci, if ((bU == "WAVES"))
279281 then unit
280- else fromBase58String(bT)), ScriptTransfer(Y, ci, if ((bU == "WAVES"))
282+ else fromBase58String(bU)), ScriptTransfer(Z, cj, if ((bV == "WAVES"))
281283 then unit
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)
284+ else fromBase58String(bV)), StringEntry(ab(toString(Z), bQ), bo(ci, cj, bS, cd, height, lastBlock.timestamp)), IntegerEntry(U(), cd), IntegerEntry(V(height, lastBlock.timestamp), cd)]
285+ $Tuple10(ci, cj, bU, bV, bY, ca, bX, cc, bW, ck)
284286 }
285287 }
286288
287289
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))
290+func cl (bQ,cm,cn,co,cp,cq,Z,cr,cs) = {
291+ let bG = aJ()
292+ let bT = fromBase58String(bG[q])
293+ let ct = bG[r]
294+ let cu = bG[s]
295+ let cv = bG[v]
296+ let cw = bG[w]
297+ let bH = parseIntValue(bG[t])
298+ let bI = parseIntValue(bG[u])
299+ let bW = bG[p]
300+ let bX = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
301+ let cx = toBase58String(valueOrElse(co, fromBase58String("WAVES")))
302+ let cy = toBase58String(valueOrElse(cq, fromBase58String("WAVES")))
303+ if (if ((ct != cx))
302304 then true
303- else (ct != cx))
305+ else (cu != cy))
304306 then throw("Invalid amt or price asset passed.")
305307 else {
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))
308+ let bY = if (cr)
309+ then bs(ct)
310+ else (bs(ct) - cn)
311+ let ca = if (cr)
312+ then bs(cu)
313+ else (bs(cu) - cp)
314+ let cz = F(cn, bH)
315+ let cA = F(cp, bI)
316+ let cB = bu(cA, cz)
317+ let bZ = F(bY, bH)
318+ let cb = F(ca, bI)
319+ let cC = if ((bX == 0))
318320 then {
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)
321+ let cc = e
322+ let cD = e
323+ let bK = pow((cz * cA), 0, toBigInt(5), 1, 0, DOWN)
324+ $Tuple5(I(bK, b), I(cz, bH), I(cA, bI), bu((cb + cA), (bZ + cz)), cD)
323325 }
324326 else {
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)
327+ let cc = bu(cb, bZ)
328+ let cD = fraction(Q((cc - cB)), d, cc)
329+ let cE = F(cm, b)
330+ if (if ((cc != e))
331+ then (cD > cE)
330332 else false)
331- then throw(((("Price slippage " + toString(cC)) + " exceeded the passed limit of ") + toString(cD)))
333+ then throw(((("Price slippage " + toString(cD)) + " exceeded the passed limit of ") + toString(cE)))
332334 else {
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)
335+ let cf = F(bX, b)
336+ let cF = fraction(cz, cc, d)
337+ let cG = fraction(cA, d, cc)
338+ let cH = if ((cF > cA))
339+ then $Tuple2(cG, cA)
340+ else $Tuple2(cz, cF)
341+ let cI = cH._1
342+ let cJ = cH._2
343+ let bK = fraction(cf, cJ, cb)
344+ $Tuple5(I(bK, b), I(cI, bH), I(cJ, bI), cc, cD)
343345 }
344346 }
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))
347+ let cK = cC._1
348+ let cL = cC._2
349+ let cM = cC._3
350+ let cd = I(cC._4, b)
351+ let cN = I(cC._5, b)
352+ if ((0 >= cK))
351353 then throw("Invalid calculations. LP calculated is less than zero.")
352354 else {
353- let cN = if (!(cr))
355+ let cO = if (!(cs))
354356 then 0
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)
357+ else cK
358+ let cP = (cn - cL)
359+ let cQ = (cp - cM)
360+ let cR = [IntegerEntry(U(), cd), IntegerEntry(V(height, lastBlock.timestamp), cd), StringEntry(Y(Z, bQ), bd(cL, cM, cO, cd, cm, cN, height, lastBlock.timestamp, cP, cQ))]
361+ $Tuple13(cK, cO, cd, bY, ca, bX, bT, bW, cR, cP, cQ, co, cq)
360362 }
361363 }
362364 }
363365
364366
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())
367+func cS (cT) = {
368+ let bG = aJ()
369+ let cU = bG[r]
370+ let cV = bG[s]
371+ let bW = parseIntValue(bG[p])
372+ let bH = parseIntValue(bG[t])
373+ let bI = parseIntValue(bG[u])
374+ let cW = bs(cU)
375+ let cX = bs(cV)
376+ let cc = if ((cT.orderType == Buy))
377+ then bx(bH, bI, (cW + cT.amount), cX)
378+ else bx(bH, bI, (cW - cT.amount), cX)
379+ let cd = I(cc, b)
380+ if (if (if (aH())
379381 then true
380- else (bV == m))
382+ else (bW == m))
381383 then true
382- else (bV == n))
384+ else (bW == n))
383385 then throw("Exchange operations disabled")
384386 else {
385- let cX = cS.assetPair.amountAsset
386- let cY = if ((cX == unit))
387+ let cY = cT.assetPair.amountAsset
388+ let cZ = if ((cY == unit))
387389 then "WAVES"
388- else toBase58String(value(cX))
389- let cZ = cS.assetPair.priceAsset
390- let da = if ((cZ == unit))
390+ else toBase58String(value(cY))
391+ let da = cT.assetPair.priceAsset
392+ let db = if ((da == unit))
391393 then "WAVES"
392- else toBase58String(value(cZ))
393- if (if ((cY != cT))
394+ else toBase58String(value(da))
395+ if (if ((cZ != cU))
394396 then true
395- else (da != cU))
397+ else (db != cV))
396398 then throw("Wrong order assets.")
397399 else {
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)
400+ let dc = cT.price
401+ let dd = fraction(b, bI, bH)
402+ let de = L(dc, b, dd)
403+ let df = if ((cT.orderType == Buy))
404+ then (cd >= de)
405+ else (de >= cd)
404406 true
405407 }
406408 }
407409 }
408410
409411
410-func df (dg) = if ((size(dg.payments) != 1))
412+func dg (dh) = if ((size(dh.payments) != 1))
411413 then throw("exactly 1 payment is expected")
412414 else {
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())
415+ let di = value(dh.payments[0])
416+ let bR = value(di.assetId)
417+ let dj = di.amount
418+ let cC = bP(toBase58String(dh.transactionId), toBase58String(bR), dj, dh.caller)
419+ let ci = cC._1
420+ let cj = cC._2
421+ let bW = parseIntValue(cC._9)
422+ let ck = cC._10
423+ if (if (aH())
422424 then true
423- else (bV == n))
424- then throw(("Get operation is blocked by admin. Status = " + toString(bV)))
425- else $Tuple5(ch, ci, di, bQ, cj)
425+ else (bW == n))
426+ then throw(("Get operation is blocked by admin. Status = " + toString(bW)))
427+ else $Tuple5(ci, cj, dj, bR, ck)
426428 }
427429
428430
429-func dj (dg,cl,cr) = if ((size(dg.payments) != 2))
431+func dk (dh,cm,cs) = if ((size(dh.payments) != 2))
430432 then throw("exactly 2 payments are expected")
431433 else {
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())
434+ let dl = value(dh.payments[0])
435+ let dm = value(dh.payments[1])
436+ let dn = cl(toBase58String(dh.transactionId), cm, dl.amount, dl.assetId, dm.amount, dm.assetId, toString(dh.caller), false, cs)
437+ let bW = parseIntValue(dn._8)
438+ if (if (if (aH())
437439 then true
438- else (bV == l))
440+ else (bW == l))
439441 then true
440- else (bV == n))
441- then throw(("Put operation is blocked by admin. Status = " + toString(bV)))
442- else dm
442+ else (bW == n))
443+ then throw(("Put operation is blocked by admin. Status = " + toString(bW)))
444+ else dn
443445 }
444446
445447
446-func dn (do) = {
447- let dp = invoke(aE, "emit", [do], nil)
448- if ((dp == dp))
448+func do (dp) = {
449+ let dq = invoke(aF, "emit", [dp], nil)
450+ if ((dq == dq))
449451 then {
450- let dq = {
451- let dr = dp
452- if ($isInstanceOf(dr, "Address"))
452+ let dr = {
453+ let ds = dq
454+ if ($isInstanceOf(ds, "Address"))
453455 then {
454- let ds = dr
455- invoke(ds, "emit", [do], nil)
456+ let dt = ds
457+ invoke(dt, "emit", [dp], nil)
456458 }
457459 else unit
458460 }
459- if ((dq == dq))
460- then do
461+ if ((dr == dr))
462+ then dp
461463 else throw("Strict value is not equal to itself.")
462464 }
463465 else throw("Strict value is not equal to itself.")
464466 }
465467
466468
467-func dt (do) = {
468- let du = fraction(do, af, b)
469- $Tuple2((do - du), du)
469+func du (dp) = {
470+ let dv = fraction(dp, ag, b)
471+ $Tuple2((dp - dv), dv)
470472 }
471473
472474
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))
475+func dw (dx,dy,Z,aa) = {
476+ let dz = (aa == unit)
477+ let dA = bs(aO(aW))
478+ let dB = bs(aO(aX))
479+ let dC = if ((dy == aW))
478480 then true
479- else if ((dx == aW))
481+ else if ((dy == aX))
480482 then false
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
499- let dM = (dD + dI)
483+ else aD("invalid asset")
484+ let dD = if (dz)
485+ then $Tuple2(dA, dB)
486+ else if (dC)
487+ then $Tuple2((dA - dx), dB)
488+ else $Tuple2(dA, (dB - dx))
489+ let dE = dD._1
490+ let dF = dD._2
491+ let dG = if (dC)
492+ then $Tuple2(dx, 0)
493+ else $Tuple2(0, dx)
494+ let dH = dG._1
495+ let dI = dG._2
496+ let dJ = du(dH)._1
497+ let dK = du(dI)._1
498+ let dL = du(dx)
499+ let dM = dL._1
500+ let dv = dL._2
500501 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))
502+ let dO = (dF + dK)
503+ let dP = bu(F(dO, aZ), F(dN, aY))
504+ let dQ = I(dP, b)
505+ let dR = if (dC)
506+ then dE
507+ else dF
508+ let dS = toBigInt(dR)
509+ let dT = toBigInt(valueOrErrorMessage(assetInfo(aV), (("asset " + toBase58String(aV)) + " doesn't exist")).quantity)
510+ let dU = if ((dT > f))
509511 then true
510- else aC("initial deposit requires all coins")
511- if ((dT == dT))
512+ else aD("initial deposit requires all coins")
513+ if ((dU == dU))
512514 then {
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)
515+ let dV = toBigInt(dM)
516+ let dW = max([0, toInt(((dT * (sqrtBigInt((d + ((dV * d) / dS)), 18, 18, DOWN) - d)) / d))])
517+ let cR = if (dz)
516518 then nil
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)
519+ else [IntegerEntry(U(), dQ), IntegerEntry(V(height, lastBlock.timestamp), dQ), StringEntry(Y(toString(value(Z)), toBase58String(value(aa))), bd(dH, dI, dW, dQ, 0, 0, height, lastBlock.timestamp, 0, 0))]
520+ let dX = bu(F(dF, aZ), F(dE, aY))
521+ let dY = I(dX, b)
522+ let dZ = {
523+ let ea = if (dC)
524+ then $Tuple2(dH, dE)
525+ else $Tuple2(dI, dF)
526+ let dp = ea._1
527+ let eb = ea._2
528+ let ec = toInt(fraction(dT, toBigInt((dp / 2)), toBigInt(eb)))
529+ fraction((dW - ec), b, ec)
528530 }
529- $Tuple4(dV, cQ, du, dY)
531+ $Tuple4(dW, cR, dv, dZ)
530532 }
531533 else throw("Strict value is not equal to itself.")
532534 }
533535
534536
535-func ec (ed,dL,dx,Y,Z) = {
536- let dy = (Z == unit)
537- let ee = [if ((dx == aU))
537+func ed (ee,dM,dy,Z,aa) = {
538+ let dz = (aa == unit)
539+ let ef = [if ((dy == aV))
538540 then true
539- else aC("invalid lp asset")]
540- if ((ee == ee))
541+ else aD("invalid lp asset")]
542+ if ((ef == ef))
541543 then {
542- let ef = if ((ed == aV))
544+ let eg = if ((ee == aW))
543545 then true
544- else if ((ed == aW))
546+ else if ((ee == aX))
545547 then false
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)
548+ else aD("invalid asset")
549+ let eh = if (eg)
550+ then toBigInt(bs(aO(aW)))
551+ else toBigInt(bs(aO(aX)))
552+ let ei = bs(aO(aW))
553+ let ej = bs(aO(aX))
554+ let ek = if (eg)
555+ then ei
556+ else ej
557+ let el = toBigInt(ek)
558+ let dT = toBigInt(valueOrErrorMessage(assetInfo(aV), (("asset " + toBase58String(aV)) + " doesn't exist")).quantity)
559+ let em = toBigInt(dM)
560+ let en = max([0, toInt(((eh * (d - pow((d - ((em * d) / dT)), 18, h, 0, 18, DOWN))) / d))])
561+ let eo = du(en)
562+ let ep = eo._1
563+ let dv = eo._2
564+ let eq = if (eg)
565+ then $Tuple4(ep, 0, (ei - en), ej)
566+ else $Tuple4(0, ep, ei, (ej - en))
567+ let er = eq._1
568+ let es = eq._2
569+ let et = eq._3
570+ let eu = eq._4
571+ let dP = bu(F(eu, aZ), F(et, aY))
572+ let dQ = I(dP, b)
573+ let cR = if (dz)
572574 then nil
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)
575+ else [StringEntry(ab(toString(value(Z)), toBase58String(value(aa))), bo(er, es, dM, dQ, height, lastBlock.timestamp)), IntegerEntry(U(), dQ), IntegerEntry(V(height, lastBlock.timestamp), dQ)]
576+ let dX = bu(F(ej, aZ), F(ei, aY))
577+ let dY = I(dX, b)
578+ let dZ = {
579+ let ev = (toInt(fraction(eh, em, dT)) * 2)
580+ fraction((ep - ev), b, ev)
579581 }
580- $Tuple4(eo, cQ, du, dY)
582+ $Tuple4(ep, cR, dv, dZ)
581583 }
582584 else throw("Strict value is not equal to itself.")
583585 }
584586
585587
586-func ev () = {
587- let dr = getString(R())
588- if ($isInstanceOf(dr, "String"))
588+func ew () = {
589+ let ds = getString(S())
590+ if ($isInstanceOf(ds, "String"))
589591 then {
590- let ew = dr
591- fromBase58String(ew)
592+ let ex = ds
593+ fromBase58String(ex)
592594 }
593- else if ($isInstanceOf(dr, "Unit"))
595+ else if ($isInstanceOf(ds, "Unit"))
594596 then unit
595597 else throw("Match error")
596598 }
597599
598600
599-func ex () = {
600- let dr = getString(S())
601- if ($isInstanceOf(dr, "String"))
601+func ey () = {
602+ let ds = getString(T())
603+ if ($isInstanceOf(ds, "String"))
602604 then {
603- let ew = dr
604- fromBase58String(ew)
605+ let ex = ds
606+ fromBase58String(ex)
605607 }
606- else if ($isInstanceOf(dr, "Unit"))
608+ else if ($isInstanceOf(ds, "Unit"))
607609 then unit
608610 else throw("Match error")
609611 }
610612
611613
612-func ey (dg) = {
613- let ez = throw("Permission denied")
614- let dr = ev()
615- if ($isInstanceOf(dr, "ByteVector"))
614+func ez (dh) = {
615+ let eA = throw("Permission denied")
616+ let ds = ew()
617+ if ($isInstanceOf(ds, "ByteVector"))
616618 then {
617- let eA = dr
618- if ((dg.callerPublicKey == eA))
619+ let eB = ds
620+ if ((dh.callerPublicKey == eB))
619621 then true
620- else ez
622+ else eA
621623 }
622- else if ($isInstanceOf(dr, "Unit"))
623- then if ((dg.caller == this))
624+ else if ($isInstanceOf(ds, "Unit"))
625+ then if ((dh.caller == this))
624626 then true
625- else ez
627+ else eA
626628 else throw("Match error")
627629 }
628630
629631
630-@Callable(dg)
631-func setManager (eB) = {
632- let eC = ey(dg)
633- if ((eC == eC))
632+@Callable(dh)
633+func setManager (eC) = {
634+ let eD = ez(dh)
635+ if ((eD == eD))
634636 then {
635- let eD = fromBase58String(eB)
636- if ((eD == eD))
637- then [StringEntry(S(), eB)]
637+ let eE = fromBase58String(eC)
638+ if ((eE == eE))
639+ then [StringEntry(T(), eC)]
638640 else throw("Strict value is not equal to itself.")
639641 }
640642 else throw("Strict value is not equal to itself.")
641643 }
642644
643645
644646
645-@Callable(dg)
647+@Callable(dh)
646648 func confirmManager () = {
647- let eE = ex()
648- let eF = if (isDefined(eE))
649+ let eF = ey()
650+ let eG = if (isDefined(eF))
649651 then true
650652 else throw("No pending manager")
651- if ((eF == eF))
653+ if ((eG == eG))
652654 then {
653- let eG = if ((dg.callerPublicKey == value(eE)))
655+ let eH = if ((dh.callerPublicKey == value(eF)))
654656 then true
655657 else throw("You are not pending manager")
656- if ((eG == eG))
657- then [StringEntry(R(), toBase58String(value(eE))), DeleteEntry(S())]
658+ if ((eH == eH))
659+ then [StringEntry(S(), toBase58String(value(eF))), DeleteEntry(T())]
658660 else throw("Strict value is not equal to itself.")
659661 }
660662 else throw("Strict value is not equal to itself.")
661663 }
662664
663665
664666
665-@Callable(dg)
666-func put (cl,eH) = if ((0 > cl))
667+@Callable(dh)
668+func put (cm,eI) = if ((0 > cm))
667669 then throw("Invalid slippageTolerance passed")
668670 else {
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))
671+ let dn = dk(dh, cm, true)
672+ let cO = dn._2
673+ let bT = dn._7
674+ let ck = dn._9
675+ let cP = dn._10
676+ let cQ = dn._11
677+ let eJ = dn._12
678+ let eK = dn._13
679+ let dq = invoke(aF, "emit", [cO], nil)
680+ if ((dq == dq))
679681 then {
680- let dq = {
681- let dr = dp
682- if ($isInstanceOf(dr, "Address"))
682+ let dr = {
683+ let ds = dq
684+ if ($isInstanceOf(ds, "Address"))
683685 then {
684- let ds = dr
685- invoke(ds, "emit", [cN], nil)
686+ let dt = ds
687+ invoke(dt, "emit", [cO], nil)
686688 }
687689 else unit
688690 }
689- if ((dq == dq))
691+ if ((dr == dr))
690692 then {
691- let eK = if ((cO > 0))
692- then invoke(bb, "put", nil, [AttachedPayment(eI, cO)])
693+ let eL = if ((cP > 0))
694+ then invoke(bc, "put", nil, [AttachedPayment(eJ, cP)])
693695 else nil
694- if ((eK == eK))
696+ if ((eL == eL))
695697 then {
696- let eL = if ((cP > 0))
697- then invoke(bb, "put", nil, [AttachedPayment(eJ, cP)])
698+ let eM = if ((cQ > 0))
699+ then invoke(bc, "put", nil, [AttachedPayment(eK, cQ)])
698700 else nil
699- if ((eL == eL))
701+ if ((eM == eM))
700702 then {
701- let eM = if (eH)
703+ let eN = if (eI)
702704 then {
703- let eN = invoke(ba, "stake", nil, [AttachedPayment(bS, cN)])
704- if ((eN == eN))
705+ let eO = invoke(bb, "stake", nil, [AttachedPayment(bT, cO)])
706+ if ((eO == eO))
705707 then nil
706708 else throw("Strict value is not equal to itself.")
707709 }
708- else [ScriptTransfer(dg.caller, cN, bS)]
709- (cj ++ eM)
710+ else [ScriptTransfer(dh.caller, cO, bT)]
711+ (ck ++ eN)
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 else throw("Strict value is not equal to itself.")
718720 }
719721
720722
721723
722-@Callable(dg)
723-func putForFree (eO) = if ((0 > eO))
724+@Callable(dh)
725+func putForFree (eP) = if ((0 > eP))
724726 then throw("Invalid value passed")
725727 else {
726- let dm = dj(dg, eO, false)
727- dm._9
728+ let dn = dk(dh, eP, false)
729+ dn._9
728730 }
729731
730732
731733
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"))
734+@Callable(dh)
735+func putOneTkn (eQ,eR) = {
736+ let eS = {
737+ let eT = invoke(aF, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
738+ if ($isInstanceOf(eT, "Boolean"))
739+ then eT
740+ else throw(($getType(eT) + " couldn't be cast to Boolean"))
739741 }
740- let eT = if (if (if (aG())
742+ let eU = if (if (if (aH())
741743 then true
742- else (aT == l))
744+ else (aU == l))
743745 then true
744- else (aT == n))
746+ else (aU == n))
745747 then true
746- else eR
747- let ee = [if (!(eT))
748+ else eS
749+ let ef = [if (!(eU))
748750 then true
749- else aC("put operation is blocked by admin"), if ((size(dg.payments) == 1))
751+ else aD("put operation is blocked by admin"), if ((size(dh.payments) == 1))
750752 then true
751- else aC("exactly 1 payment are expected")]
752- if ((ee == ee))
753+ else aD("exactly 1 payment are expected")]
754+ if ((ef == ef))
753755 then {
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)
756+ let eV = dh.payments[0]
757+ let dy = eV.assetId
758+ let dx = eV.amount
759+ let Z = dh.caller
760+ let aa = dh.transactionId
761+ let eW = dw(dx, dy, Z, aa)
762+ let eX = eW._1
763+ let cR = eW._2
764+ let dv = eW._3
765+ let eY = eW._4
766+ let eZ = if (if ((eQ > 0))
767+ then (eQ > eX)
766768 else false)
767- then aC(makeString(["amount to receive is less than ", toString(eP)], ""))
768- else eW
769- let dp = dn(eY)
770- if ((dp == dp))
769+ then aD(makeString(["amount to receive is less than ", toString(eQ)], ""))
770+ else eX
771+ let dq = do(eZ)
772+ if ((dq == dq))
771773 then {
772- let eM = if (eQ)
774+ let eN = if (eR)
773775 then {
774- let eZ = invoke(ba, "stake", nil, [AttachedPayment(aU, eY)])
775- if ((eZ == eZ))
776+ let fa = invoke(bb, "stake", nil, [AttachedPayment(aV, eZ)])
777+ if ((fa == fa))
776778 then nil
777779 else throw("Strict value is not equal to itself.")
778780 }
779- else [ScriptTransfer(dg.caller, eY, aU)]
780- let fa = if ((du > 0))
781- then [ScriptTransfer(aF, du, dx)]
781+ else [ScriptTransfer(dh.caller, eZ, aV)]
782+ let fb = if ((dv > 0))
783+ then [ScriptTransfer(aG, dv, dy)]
782784 else nil
783- $Tuple2(((cQ ++ eM) ++ fa), eY)
785+ $Tuple2(((cR ++ eN) ++ fb), eZ)
784786 }
785787 else throw("Strict value is not equal to itself.")
786788 }
787789 else throw("Strict value is not equal to itself.")
788790 }
789791
790792
791793
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))
794+@Callable(dh)
795+func putOneTknREADONLY (dy,dx) = {
796+ let fc = dw(dx, aM(dy), unit, unit)
797+ let eX = fc._1
798+ let cR = fc._2
799+ let dv = fc._3
800+ let eY = fc._4
801+ $Tuple2(nil, $Tuple3(eX, dv, eY))
800802 }
801803
802804
803805
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"))
806+@Callable(dh)
807+func getOneTkn (fd,eQ) = {
808+ let eS = {
809+ let eT = invoke(aF, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
810+ if ($isInstanceOf(eT, "Boolean"))
811+ then eT
812+ else throw(($getType(eT) + " couldn't be cast to Boolean"))
811813 }
812- let fd = if (if (aG())
814+ let fe = if (if (aH())
813815 then true
814- else (aT == n))
816+ else (aU == n))
815817 then true
816- else eR
817- let ee = [if (!(fd))
818+ else eS
819+ let ef = [if (!(fe))
818820 then true
819- else aC("get operation is blocked by admin"), if ((size(dg.payments) == 1))
821+ else aD("get operation is blocked by admin"), if ((size(dh.payments) == 1))
820822 then true
821- else aC("exactly 1 payment are expected")]
822- if ((ee == ee))
823+ else aD("exactly 1 payment are expected")]
824+ if ((ef == ef))
823825 then {
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)
826+ let ee = aM(fd)
827+ let eV = dh.payments[0]
828+ let dy = eV.assetId
829+ let dM = eV.amount
830+ let Z = dh.caller
831+ let aa = dh.transactionId
832+ let ff = ed(ee, dM, dy, Z, aa)
833+ let fg = ff._1
834+ let cR = ff._2
835+ let dv = ff._3
836+ let eY = ff._4
837+ let dp = if (if ((eQ > 0))
838+ then (eQ > fg)
837839 else false)
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))
840+ then aD(makeString(["amount to receive is less than ", toString(eQ)], ""))
841+ else fg
842+ let fh = invoke(aF, "burn", [dM], [AttachedPayment(dy, dM)])
843+ if ((fh == fh))
842844 then {
843- let fh = [ScriptTransfer(Y, do, ed)]
844- let fa = if ((du > 0))
845- then [ScriptTransfer(aF, du, ed)]
845+ let fi = [ScriptTransfer(Z, dp, ee)]
846+ let fb = if ((dv > 0))
847+ then [ScriptTransfer(aG, dv, ee)]
846848 else nil
847- $Tuple2(((cQ ++ fh) ++ fa), do)
849+ $Tuple2(((cR ++ fi) ++ fb), dp)
848850 }
849851 else throw("Strict value is not equal to itself.")
850852 }
851853 else throw("Strict value is not equal to itself.")
852854 }
853855
854856
855857
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))
858+@Callable(dh)
859+func getOneTknREADONLY (ee,dM) = {
860+ let fj = ed(aM(ee), dM, aV, unit, unit)
861+ let fg = fj._1
862+ let cR = fj._2
863+ let dv = fj._3
864+ let eY = fj._4
865+ $Tuple2(nil, $Tuple3(fg, dv, eY))
864866 }
865867
866868
867869
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"))
870+@Callable(dh)
871+func unstakeAndGetOneTkn (fk,fd,eQ) = {
872+ let eS = {
873+ let eT = invoke(aF, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
874+ if ($isInstanceOf(eT, "Boolean"))
875+ then eT
876+ else throw(($getType(eT) + " couldn't be cast to Boolean"))
875877 }
876- let fd = if (if (aG())
878+ let fe = if (if (aH())
877879 then true
878- else (aT == n))
880+ else (aU == n))
879881 then true
880- else eR
881- let ee = [if (!(fd))
882+ else eS
883+ let ef = [if (!(fe))
882884 then true
883- else aC("get operation is blocked by admin"), if ((size(dg.payments) == 0))
885+ else aD("get operation is blocked by admin"), if ((size(dh.payments) == 0))
884886 then true
885- else aC("no payments are expected")]
886- if ((ee == ee))
887+ else aD("no payments are expected")]
888+ if ((ef == ef))
887889 then {
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))
890+ let ee = aM(fd)
891+ let Z = dh.caller
892+ let aa = dh.transactionId
893+ let fl = invoke(bb, "unstake", [toBase58String(aV), fk], nil)
894+ if ((fl == fl))
893895 then {
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)
896+ let fm = ed(ee, fk, aV, Z, aa)
897+ let fg = fm._1
898+ let cR = fm._2
899+ let dv = fm._3
900+ let eY = fm._4
901+ let dp = if (if ((eQ > 0))
902+ then (eQ > fg)
901903 else false)
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))
904+ then aD(makeString(["amount to receive is less than ", toString(eQ)], ""))
905+ else fg
906+ let fh = invoke(aF, "burn", [fk], [AttachedPayment(aV, fk)])
907+ if ((fh == fh))
906908 then {
907- let fh = [ScriptTransfer(dg.caller, do, ed)]
908- let fa = if ((du > 0))
909- then [ScriptTransfer(aF, du, ed)]
909+ let fi = [ScriptTransfer(dh.caller, dp, ee)]
910+ let fb = if ((dv > 0))
911+ then [ScriptTransfer(aG, dv, ee)]
910912 else nil
911- $Tuple2(((cQ ++ fh) ++ fa), do)
913+ $Tuple2(((cR ++ fi) ++ fb), dp)
912914 }
913915 else throw("Strict value is not equal to itself.")
914916 }
915917 else throw("Strict value is not equal to itself.")
916918 }
917919 else throw("Strict value is not equal to itself.")
918920 }
919921
920922
921923
922-@Callable(dg)
924+@Callable(dh)
923925 func get () = {
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
926+ let cC = dg(dh)
927+ let fn = cC._1
928+ let cj = cC._2
929+ let dj = cC._3
930+ let bR = cC._4
931+ let ck = cC._5
932+ let fo = invoke(aF, "burn", [dj], [AttachedPayment(bR, dj)])
933+ if ((fo == fo))
934+ then ck
933935 else throw("Strict value is not equal to itself.")
934936 }
935937
936938
937939
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)))
940+@Callable(dh)
941+func getNoLess (fp,fq) = {
942+ let cC = dg(dh)
943+ let ci = cC._1
944+ let cj = cC._2
945+ let dj = cC._3
946+ let bR = cC._4
947+ let ck = cC._5
948+ if ((fp > ci))
949+ then throw(((("noLessThenAmtAsset failed: " + toString(ci)) + " < ") + toString(fp)))
950+ else if ((fq > cj))
951+ then throw(((("noLessThenPriceAsset failed: " + toString(cj)) + " < ") + toString(fq)))
950952 else {
951- let fn = invoke(aE, "burn", [di], [AttachedPayment(bQ, di)])
952- if ((fn == fn))
953- then cj
953+ let fo = invoke(aF, "burn", [dj], [AttachedPayment(bR, dj)])
954+ if ((fo == fo))
955+ then ck
954956 else throw("Strict value is not equal to itself.")
955957 }
956958 }
957959
958960
959961
960-@Callable(dg)
961-func unstakeAndGet (do) = {
962- let fq = if ((size(dg.payments) != 0))
962+@Callable(dh)
963+func unstakeAndGet (dp) = {
964+ let fr = if ((size(dh.payments) != 0))
963965 then throw("No payments are expected")
964966 else true
965- if ((fq == fq))
967+ if ((fr == fr))
966968 then {
967- let bF = aI()
968- let bS = fromBase58String(bF[q])
969- let fk = invoke(ba, "unstake", [toBase58String(bS), do], nil)
970- if ((fk == fk))
969+ let bG = aJ()
970+ let bT = fromBase58String(bG[q])
971+ let fl = invoke(bb, "unstake", [toBase58String(bT), dp], nil)
972+ if ((fl == fl))
971973 then {
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())
974+ let cC = bP(toBase58String(dh.transactionId), toBase58String(bT), dp, dh.caller)
975+ let bW = parseIntValue(cC._9)
976+ let ck = cC._10
977+ let fs = if (if (aH())
976978 then true
977- else (bV == n))
978- then throw(("Get operation is blocked by admin. Status = " + toString(bV)))
979+ else (bW == n))
980+ then throw(("Get operation is blocked by admin. Status = " + toString(bW)))
979981 else true
980- if ((fr == fr))
982+ if ((fs == fs))
981983 then {
982- let fn = invoke(aE, "burn", [do], [AttachedPayment(bS, do)])
983- if ((fn == fn))
984- then cj
984+ let fo = invoke(aF, "burn", [dp], [AttachedPayment(bT, dp)])
985+ if ((fo == fo))
986+ then ck
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 else throw("Strict value is not equal to itself.")
992994 }
993995
994996
995997
996-@Callable(dg)
997-func unstakeAndGetNoLess (fj,fs,fp) = {
998- let fd = if (aG())
998+@Callable(dh)
999+func unstakeAndGetNoLess (fk,ft,fq) = {
1000+ let fe = if (aH())
9991001 then true
1000- else (aT == n)
1001- let ee = [if (!(fd))
1002+ else (aU == n)
1003+ let ef = [if (!(fe))
10021004 then true
1003- else throw("get operation is blocked by admin"), if ((size(dg.payments) == 0))
1005+ else throw("get operation is blocked by admin"), if ((size(dh.payments) == 0))
10041006 then true
10051007 else throw("no payments are expected")]
1006- if ((ee == ee))
1008+ if ((ef == ef))
10071009 then {
1008- let fk = invoke(ba, "unstake", [toBase58String(aU), fj], nil)
1009- if ((fk == fk))
1010+ let fl = invoke(bb, "unstake", [toBase58String(aV), fk], nil)
1011+ if ((fl == fl))
10101012 then {
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))
1013+ let cC = bP(toBase58String(dh.transactionId), toBase58String(aV), fk, dh.caller)
1014+ let ci = cC._1
1015+ let cj = cC._2
1016+ let ck = cC._10
1017+ let fu = [if ((ci >= ft))
10161018 then true
1017- else throw(makeString(["amount asset amount to receive is less than ", toString(fs)], "")), if ((ci >= fp))
1019+ else throw(makeString(["amount asset amount to receive is less than ", toString(ft)], "")), if ((cj >= fq))
10181020 then true
1019- else throw(makeString(["price asset amount to receive is less than ", toString(fp)], ""))]
1020- if ((ft == ft))
1021+ else throw(makeString(["price asset amount to receive is less than ", toString(fq)], ""))]
1022+ if ((fu == fu))
10211023 then {
1022- let fn = invoke(aE, "burn", [fj], [AttachedPayment(aU, fj)])
1023- if ((fn == fn))
1024- then cj
1024+ let fo = invoke(aF, "burn", [fk], [AttachedPayment(aV, fk)])
1025+ if ((fo == fo))
1026+ then ck
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 else throw("Strict value is not equal to itself.")
10321034 }
10331035
10341036
10351037
1036-@Callable(dg)
1037-func activate (fu,fv) = if ((toString(dg.caller) != toString(aE)))
1038+@Callable(dh)
1039+func activate (fv,fw) = if ((toString(dh.caller) != toString(aF)))
10381040 then throw("permissions denied")
1039- else $Tuple2([StringEntry(ab(), fu), StringEntry(ac(), fv)], "success")
1041+ else $Tuple2([StringEntry(ac(), fv), StringEntry(ad(), fw)], "success")
10401042
10411043
10421044
1043-@Callable(dg)
1044-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aI())
1045+@Callable(dh)
1046+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aJ())
10451047
10461048
10471049
1048-@Callable(dg)
1049-func getAccBalanceWrapperREADONLY (bs) = $Tuple2(nil, br(bs))
1050+@Callable(dh)
1051+func getAccBalanceWrapperREADONLY (bt) = $Tuple2(nil, bs(bt))
10501052
10511053
10521054
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])])
1055+@Callable(dh)
1056+func calcPricesWrapperREADONLY (bA,bB,bF) = {
1057+ let bO = bE(bA, bB, bF)
1058+ $Tuple2(nil, [toString(bO[0]), toString(bO[1]), toString(bO[2])])
10571059 }
10581060
10591061
10601062
1061-@Callable(dg)
1062-func toX18WrapperREADONLY (F,G) = $Tuple2(nil, toString(E(F, G)))
1063+@Callable(dh)
1064+func toX18WrapperREADONLY (G,H) = $Tuple2(nil, toString(F(G, H)))
10631065
10641066
10651067
1066-@Callable(dg)
1067-func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
1068+@Callable(dh)
1069+func fromX18WrapperREADONLY (J,K) = $Tuple2(nil, I(parseBigIntValue(J), K))
10681070
10691071
10701072
1071-@Callable(dg)
1072-func calcPriceBigIntWrapperREADONLY (bu,bv) = $Tuple2(nil, toString(bt(parseBigIntValue(bu), parseBigIntValue(bv))))
1073+@Callable(dh)
1074+func calcPriceBigIntWrapperREADONLY (bv,bw) = $Tuple2(nil, toString(bu(parseBigIntValue(bv), parseBigIntValue(bw))))
10731075
10741076
10751077
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))
1078+@Callable(dh)
1079+func estimatePutOperationWrapperREADONLY (bQ,cm,cn,co,cp,cq,Z,cr,cs) = $Tuple2(nil, cl(bQ, cm, cn, co, cp, cq, Z, cr, cs))
10781080
10791081
10801082
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))
1083+@Callable(dh)
1084+func estimateGetOperationWrapperREADONLY (bQ,bR,bS,Z) = {
1085+ let cC = bP(bQ, bR, bS, addressFromStringValue(Z))
1086+ $Tuple2(nil, $Tuple10(cC._1, cC._2, cC._3, cC._4, cC._5, cC._6, cC._7, toString(cC._8), cC._9, cC._10))
10851087 }
10861088
10871089
10881090
1089-@Callable(dg)
1091+@Callable(dh)
10901092 func statsREADONLY () = {
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))
1093+ let bG = aJ()
1094+ let bT = fromBase58String(bG[q])
1095+ let cU = bG[r]
1096+ let cV = bG[s]
1097+ let cv = bG[v]
1098+ let cw = bG[w]
1099+ let bH = parseIntValue(bG[t])
1100+ let bI = parseIntValue(bG[u])
1101+ let fx = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
1102+ let cW = bs(cU)
1103+ let cX = bs(cV)
1104+ let fy = if ((fx == 0))
11031105 then [e, e, e]
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))
1106+ else bE(cW, cX, fx)
1107+ let cd = 0
1108+ let fz = I(fy[1], b)
1109+ let fA = I(fy[2], b)
1110+ let fB = value(getInteger(aF, ar(toString(this))))
1111+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cW), toString(cX), toString(fx), toString(cd), toString(fz), toString(fA), toString(fB)], j))
11101112 }
11111113
11121114
11131115
1114-@Callable(dg)
1115-func evaluatePutByAmountAssetREADONLY (cm) = {
1116- let bF = aI()
1117- let bS = fromBase58String(bF[q])
1118- let cs = bF[r]
1119- let bT = fromBase58String(cs)
1120- let ct = bF[s]
1116+@Callable(dh)
1117+func evaluatePutByAmountAssetREADONLY (cn) = {
1118+ let bG = aJ()
1119+ let bT = fromBase58String(bG[q])
1120+ let ct = bG[r]
11211121 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))
1122+ let cu = bG[s]
1123+ let bV = fromBase58String(cu)
1124+ let bH = parseIntValue(bG[t])
1125+ let bI = parseIntValue(bG[u])
1126+ let bW = bG[p]
1127+ let fx = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
1128+ let cW = bs(ct)
1129+ let cX = bs(cu)
1130+ let bC = F(cW, bH)
1131+ let bD = F(cX, bI)
1132+ let cc = if ((fx == 0))
11311133 then e
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))
1134+ else bu(bD, bC)
1135+ let cz = F(cn, bH)
1136+ let cA = fraction(cz, cc, d)
1137+ let cp = I(cA, bI)
1138+ let dn = cl("", 500000, cn, bU, cp, bV, "", true, false)
1139+ let cK = dn._1
1140+ let fC = dn._3
1141+ let bY = dn._4
1142+ let ca = dn._5
1143+ let bX = dn._6
1144+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cK), toString(I(cc, b)), toString(bY), toString(ca), toString(bX), bW, toString(cn), toString(cp)], j))
11431145 }
11441146
11451147
11461148
1147-@Callable(dg)
1148-func evaluatePutByPriceAssetREADONLY (co) = {
1149- let bF = aI()
1150- let bS = fromBase58String(bF[q])
1151- let cs = bF[r]
1152- let bT = fromBase58String(cs)
1153- let ct = bF[s]
1149+@Callable(dh)
1150+func evaluatePutByPriceAssetREADONLY (cp) = {
1151+ let bG = aJ()
1152+ let bT = fromBase58String(bG[q])
1153+ let ct = bG[r]
11541154 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))
1155+ let cu = bG[s]
1156+ let bV = fromBase58String(cu)
1157+ let bH = parseIntValue(bG[t])
1158+ let bI = parseIntValue(bG[u])
1159+ let bW = bG[p]
1160+ let fx = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
1161+ let fD = bs(ct)
1162+ let fE = bs(cu)
1163+ let fF = F(fD, bH)
1164+ let fG = F(fE, bI)
1165+ let cc = if ((fx == 0))
11641166 then e
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))
1167+ else bu(fG, fF)
1168+ let cA = F(cp, bI)
1169+ let cz = fraction(cA, d, cc)
1170+ let cn = I(cz, bH)
1171+ let dn = cl("", 500000, cn, bU, cp, bV, "", true, false)
1172+ let cK = dn._1
1173+ let fC = dn._3
1174+ let bY = dn._4
1175+ let ca = dn._5
1176+ let bX = dn._6
1177+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cK), toString(I(cc, b)), toString(bY), toString(ca), toString(bX), bW, toString(cn), toString(cp)], j))
11761178 }
11771179
11781180
11791181
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))
1182+@Callable(dh)
1183+func evaluateGetREADONLY (fH,fI) = {
1184+ let cC = bP("", fH, fI, this)
1185+ let ci = cC._1
1186+ let cj = cC._2
1187+ let bY = cC._5
1188+ let ca = cC._6
1189+ let bX = cC._7
1190+ let cd = cC._8
1191+ let bW = parseIntValue(cC._9)
1192+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(ci), toString(cj), toString(bY), toString(ca), toString(bX), toString(cd), toString(bW)], j))
11911193 }
11921194
11931195
1194-@Verifier(fI)
1195-func fJ () = {
1196- let fK = {
1197- let dr = ev()
1198- if ($isInstanceOf(dr, "ByteVector"))
1196+@Verifier(fJ)
1197+func fK () = {
1198+ let fL = {
1199+ let ds = ew()
1200+ if ($isInstanceOf(ds, "ByteVector"))
11991201 then {
1200- let eA = dr
1201- eA
1202+ let eB = ds
1203+ eB
12021204 }
1203- else if ($isInstanceOf(dr, "Unit"))
1204- then fI.senderPublicKey
1205+ else if ($isInstanceOf(ds, "Unit"))
1206+ then fJ.senderPublicKey
12051207 else throw("Match error")
12061208 }
1207- let dr = fI
1208- if ($isInstanceOf(dr, "Order"))
1209+ let ds = fJ
1210+ if ($isInstanceOf(ds, "Order"))
12091211 then {
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)
1216- then aw
1217- else false)
1212+ let cT = ds
1213+ let fM = aI()
1214+ let aw = cS(cT)
1215+ let ax = sigVerify(cT.bodyBytes, cT.proofs[0], cT.senderPublicKey)
1216+ let ay = sigVerify(cT.bodyBytes, cT.proofs[1], fM)
1217+ if (if (if (aw)
12181218 then ax
12191219 else false)
1220+ then ay
1221+ else false)
12201222 then true
1221- else au(av, aw, ax)
1223+ else av(aw, ax, ay)
12221224 }
1223- else if ($isInstanceOf(dr, "SetScriptTransaction"))
1225+ else if ($isInstanceOf(ds, "SetScriptTransaction"))
12241226 then {
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)
1227+ let ex = ds
1228+ let fN = blake2b256(value(ex.script))
1229+ let fO = fromBase64String(value(getString(aF, at())))
1230+ let fP = scriptHash(this)
1231+ if (if ((fO == fN))
1232+ then (fP != fN)
12311233 else false)
12321234 then true
1233- else sigVerify(fI.bodyBytes, fI.proofs[0], fK)
1235+ else sigVerify(fJ.bodyBytes, fJ.proofs[0], fL)
12341236 }
1235- else sigVerify(fI.bodyBytes, fI.proofs[0], fK)
1237+ else sigVerify(fJ.bodyBytes, fJ.proofs[0], fL)
12361238 }
12371239

github/deemru/w8io/026f985 
541.71 ms