tx · FaCoaLVqEpvGcu53TWPMr2g6vyZgjbin52BzswfvRu3b

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.02400000 Waves

2023.03.22 16:46 [2501297] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

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

github/deemru/w8io/026f985 
86.11 ms