tx · 6ybzmt66DPDiEwu2CChng5bbe46KEdSnzYPa5bicC63G

3N7b3kPunHUXhZp1vMG9NhPMARNEprCMWxT:  -0.03500000 Waves

2023.01.20 12:08 [2413085] smart account 3N7b3kPunHUXhZp1vMG9NhPMARNEprCMWxT > SELF 0.00000000 Waves

{ "type": 13, "id": "6ybzmt66DPDiEwu2CChng5bbe46KEdSnzYPa5bicC63G", "fee": 3500000, "feeAssetId": null, "timestamp": 1674205770960, "version": 2, "chainId": 84, "sender": "3N7b3kPunHUXhZp1vMG9NhPMARNEprCMWxT", "senderPublicKey": "AYbpHveq7zviKTDV7SGTB1pZGFbkumgfq3jSwVv6BznT", "proofs": [ "5RzdJhCTKoP9Y4PTt81aeDKsnV4hDvXoJf8RVDDkhRNMqcfhaxh4sDpTwG5KgFN4sXCTQkG55aDRQGfgZfAJWLxg" ], "script": "base64:BgLkLAgCEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAggBEgQKAggBEgQKAggBEgUKAwEIARIAEgQKAgEBEgMKAQESBQoDAQEBEgQKAggIEgASABIDCgEIEgUKAwEBARIECgIBARIECgIIARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAEgMKAQESAwoBARIECgIIASIGc2NhbGU4IgdzY2FsZTE4Igp6ZXJvQmlnSW50IgRiaWcwIgRiaWcxIgRiaWcyIgt3YXZlc1N0cmluZyIDU0VQIg9Qb29sUHV0RGlzYWJsZWQiE1Bvb2xNYXRjaGVyRGlzYWJsZWQiDFBvb2xTaHV0ZG93biIOaWR4UG9vbEFkZHJlc3MiDWlkeFBvb2xTdGF0dXMiEGlkeFBvb2xMUEFzc2V0SWQiDWlkeEFtdEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIOaWR4QW10QXNzZXREY20iEGlkeFByaWNlQXNzZXREY20iDmlkeElBbXRBc3NldElkIhBpZHhJUHJpY2VBc3NldElkIhlpZHhGYWN0b3J5U3Rha2luZ0NvbnRyYWN0IhppZHhGYWN0b3J5U2xpcHBhZ2VDb250cmFjdCIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiC3RvWDE4QmlnSW50Igdmcm9tWDE4IgN2YWwiD3Jlc3VsdFNjYWxlTXVsdCIMZnJvbVgxOFJvdW5kIgVyb3VuZCIJYWJzQmlnSW50IgJmYyIDbXBrIgRwbXBrIgJwbCICcGgiAWgiCXRpbWVzdGFtcCIDcGF1Igt1c2VyQWRkcmVzcyIEdHhJZCIDZ2F1IgJhYSICcGEiBmtleUZlZSIKZmVlRGVmYXVsdCIDZmVlIgZrZXlLTHAiFWtleUtMcFJlZnJlc2hlZEhlaWdodCISa2V5S0xwUmVmcmVzaERlbGF5IhZrTHBSZWZyZXNoRGVsYXlEZWZhdWx0Ig9rTHBSZWZyZXNoRGVsYXkiEGtleUZhY3RvcnlDb25maWciDWtleU1hdGNoZXJQdWIiDWtleVBvb2xDb25maWciCWlBbXRBc3NldCILaVByaWNlQXNzZXQiH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQiDGJhc2VBc3NldFN0ciITa2V5QWxsUG9vbHNTaHV0ZG93biINa2V5UG9vbFdlaWdodCIPY29udHJhY3RBZGRyZXNzIhZrZXlBbGxvd2VkTHBTY3JpcHRIYXNoIhZrZXlGZWVDb2xsZWN0b3JBZGRyZXNzIg90aHJvd09yZGVyRXJyb3IiCm9yZGVyVmFsaWQiDm9yZGVyVmFsaWRJbmZvIgtzZW5kZXJWYWxpZCIMbWF0Y2hlclZhbGlkIg9nZXRTdHJpbmdPckZhaWwiB2FkZHJlc3MiA2tleSIMZ2V0SW50T3JGYWlsIgh0aHJvd0VyciIDbXNnIgZmbXRFcnIiD2ZhY3RvcnlDb250cmFjdCITZmVlQ29sbGVjdG9yQWRkcmVzcyIFaW5GZWUiAUAiBm91dEZlZSIQaXNHbG9iYWxTaHV0ZG93biITZ2V0TWF0Y2hlclB1Yk9yRmFpbCINZ2V0UG9vbENvbmZpZyIIYW10QXNzZXQiCnByaWNlQXNzZXQiDHBhcnNlQXNzZXRJZCIFaW5wdXQiD2Fzc2V0SWRUb1N0cmluZyIPcGFyc2VQb29sQ29uZmlnIgpwb29sQ29uZmlnIhBwb29sQ29uZmlnUGFyc2VkIgskdDA4NDA4ODU3NCINY2ZnUG9vbFN0YXR1cyIMY2ZnTHBBc3NldElkIhBjZmdBbW91bnRBc3NldElkIg9jZmdQcmljZUFzc2V0SWQiFmNmZ0Ftb3VudEFzc2V0RGVjaW1hbHMiFWNmZ1ByaWNlQXNzZXREZWNpbWFscyIQZ2V0RmFjdG9yeUNvbmZpZyIPc3Rha2luZ0NvbnRyYWN0IhBzbGlwcGFnZUNvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiHXNsaXBwYWdlVG9sZXJhbmNlUGFzc2VkQnlVc2VyIhVzbGlwcGFnZVRvbGVyYW5jZVJlYWwiCHR4SGVpZ2h0Igt0eFRpbWVzdGFtcCISc2xpcGFnZUFtdEFzc2V0QW10IhRzbGlwYWdlUHJpY2VBc3NldEFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIg9jYWxjUHJpY2VCaWdJbnQiCHByQW10WDE4IghhbUFtdFgxOCIUY2FsY1ByaWNlQmlnSW50Um91bmQiEHByaXZhdGVDYWxjUHJpY2UiCmFtQXNzZXREY20iCnByQXNzZXREY20iBWFtQW10IgVwckFtdCIOYW10QXNzZXRBbXRYMTgiEHByaWNlQXNzZXRBbXRYMTgiCmNhbGNQcmljZXMiBWxwQW10IgNjZmciC2FtdEFzc2V0RGNtIg1wcmljZUFzc2V0RGNtIghwcmljZVgxOCIIbHBBbXRYMTgiE2xwUHJpY2VJbkFtQXNzZXRYMTgiE2xwUHJpY2VJblByQXNzZXRYMTgiFGVzdGltYXRlR2V0T3BlcmF0aW9uIgZ0eElkNTgiCnBtdEFzc2V0SWQiCHBtdExwQW10IglscEFzc2V0SWQiCWFtQXNzZXRJZCIJcHJBc3NldElkIgpwb29sU3RhdHVzIgpscEVtaXNzaW9uIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiDWxwRW1pc3Npb25YMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIUZXN0aW1hdGVQdXRPcGVyYXRpb24iEXNsaXBwYWdlVG9sZXJhbmNlIgxpbkFtQXNzZXRBbXQiC2luQW1Bc3NldElkIgxpblByQXNzZXRBbXQiC2luUHJBc3NldElkIgppc0V2YWx1YXRlIgZlbWl0THAiDGFtQXNzZXRJZFN0ciIMcHJBc3NldElkU3RyIgtpQW10QXNzZXRJZCINaVByaWNlQXNzZXRJZCIOaW5BbUFzc2V0SWRTdHIiDmluUHJBc3NldElkU3RyIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgNyZXMiC3NsaXBwYWdlWDE4IhRzbGlwcGFnZVRvbGVyYW5jZVgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiILY29tbW9uU3RhdGUiB2NhbGNLTHAiDWFtb3VudEJhbGFuY2UiDHByaWNlQmFsYW5jZSIQYW1vdW50QmFsYW5jZVgxOCIPcHJpY2VCYWxhbmNlWDE4Igp1cGRhdGVkS0xwIg5jYWxjQ3VycmVudEtMcCIQYW1vdW50QXNzZXREZWx0YSIPcHJpY2VBc3NldERlbHRhIhRscEFzc2V0RW1pc3Npb25EZWx0YSISYW1vdW50QXNzZXRCYWxhbmNlIhFwcmljZUFzc2V0QmFsYW5jZSIPbHBBc3NldEVtaXNzaW9uIgpjdXJyZW50S0xwIhJyZWZyZXNoS0xwSW50ZXJuYWwiF2Ftb3VudEFzc2V0QmFsYW5jZURlbHRhIhZwcmljZUFzc2V0QmFsYW5jZURlbHRhIgdhY3Rpb25zIhJ2YWxpZGF0ZVVwZGF0ZWRLTHAiBm9sZEtMcCIbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkIgVvcmRlciIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDIxMzI2MjE1MzgiA2tMcCINJHQwMjIwMDkyMjEwOSINdW51c2VkQWN0aW9ucyIGa0xwTmV3Ig0kdDAyMjExMjIyMTc0Ig51bnVzZWRBY3Rpb25zMCIKa0xwQ3VycmVudCIMaXNPcmRlclZhbGlkIhNhbW91bnRCYWxhbmNlWDE4TmV3IhJwcmljZUJhbGFuY2VYMThOZXciAWsiBGtOZXciBGluZm8iCWNvbW1vbkdldCIBaSIDcG10IgZwbXRBbXQiCWNvbW1vblB1dCIKYW1Bc3NldFBtdCIKcHJBc3NldFBtdCIGZXN0UHV0IgRlbWl0IgZhbW91bnQiB2VtaXRJbnYiDWVtaXRJbnZMZWdhY3kiByRtYXRjaDAiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCIHdGFrZUZlZSIJZmVlQW1vdW50Ig9jYWxjUHV0T25lVG9rZW4iEHBheW1lbnRBbW91bnRSYXciDnBheW1lbnRBc3NldElkIgZpc0V2YWwiEGFtb3VudEJhbGFuY2VSYXciD3ByaWNlQmFsYW5jZVJhdyIUcGF5bWVudEluQW1vdW50QXNzZXQiDSR0MDI1Njk2MjU5ODkiEGFtb3VudEJhbGFuY2VPbGQiD3ByaWNlQmFsYW5jZU9sZCINJHQwMjU5OTMyNjE0MiIUYW1vdW50QXNzZXRBbW91bnRSYXciE3ByaWNlQXNzZXRBbW91bnRSYXciDSR0MDI2Mjc0MjYzMzgiDXBheW1lbnRBbW91bnQiEGFtb3VudEJhbGFuY2VOZXciD3ByaWNlQmFsYW5jZU5ldyILcHJpY2VOZXdYMTgiCHByaWNlTmV3Ig5wYXltZW50QmFsYW5jZSIUcGF5bWVudEJhbGFuY2VCaWdJbnQiDHN1cHBseUJpZ0ludCILY2hlY2hTdXBwbHkiDWRlcG9zaXRCaWdJbnQiC2lzc3VlQW1vdW50IgtwcmljZU9sZFgxOCIIcHJpY2VPbGQiBGxvc3MiDSR0MDI4MDE5MjgxODYiB2JhbGFuY2UiD2lzc3VlQW1vdW50Qm90aCIPY2FsY0dldE9uZVRva2VuIgpvdXRBc3NldElkIgZjaGVja3MiEG91dEluQW1vdW50QXNzZXQiDWJhbGFuY2VCaWdJbnQiGG91dEluQW1vdW50QXNzZXREZWNpbWFscyIMYW1CYWxhbmNlT2xkIgxwckJhbGFuY2VPbGQiCm91dEJhbGFuY2UiEG91dEJhbGFuY2VCaWdJbnQiDnJlZGVlbWVkQmlnSW50IglhbW91bnRSYXciDSR0MDMwMjY0MzAzMjAiC3RvdGFsQW1vdW50Ig0kdDAzMDMyNDMwNTUwIgtvdXRBbUFtb3VudCILb3V0UHJBbW91bnQiDGFtQmFsYW5jZU5ldyIMcHJCYWxhbmNlTmV3IhhhbW91bnRCb3RoSW5QYXltZW50QXNzZXQiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiAXMiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0Iglpc01hbmFnZXIiAnBrIgttdXN0TWFuYWdlciICcGQiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgtjaGVja0NhbGxlciIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iD3Nob3VsZEF1dG9TdGFrZSIEYW1JZCIEcHJJZCIMc2xpcHBhZ2VBSW52IgxzbGlwcGFnZVBJbnYiCmxwVHJhbnNmZXIiC3NscFN0YWtlSW52Ig0kdDAzNTA3ODM1NTQwIhFyZWZyZXNoS0xwQWN0aW9ucyIRaXNVcGRhdGVkS0xwVmFsaWQiC21heFNsaXBwYWdlIg0kdDAzNjEwMjM2MTY3IgxtaW5PdXRBbW91bnQiCWF1dG9TdGFrZSIgaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiDWlzUHV0RGlzYWJsZWQiB3BheW1lbnQiDSR0MDM3MzU1Mzc1MDciBWJvbnVzIhNlbWl0QW1vdW50RXN0aW1hdGVkIgplbWl0QW1vdW50IghzdGFrZUludiIHc2VuZEZlZSINJHQwMzgwOTMzODI5MCINJHQwMzgyOTMzODQwMSINJHQwMzg3MDczODg2NCINb3V0QXNzZXRJZFN0ciINaXNHZXREaXNhYmxlZCINJHQwMzk3NDkzOTkwMiIPYW1vdW50RXN0aW1hdGVkIgdidXJuSW52Ig1hc3NldFRyYW5zZmVyIg0kdDA0MDQwMjQwNjQ5IhBmZWVBbW91bnRGb3JDYWxjIg0kdDA0MDY1MjQwNzYwIg0kdDA0MTAxNzQxMTczIg11bnN0YWtlQW1vdW50Igp1bnN0YWtlSW52Ig0kdDA0MjA3ODQyMjI5Ig0kdDA0MjcyNDQyOTcxIg0kdDA0Mjk3NDQzMDgyIglvdXRBbXRBbXQiFGJ1cm5MUEFzc2V0T25GYWN0b3J5Ig0kdDA0NDAyODQ0MTEwIhJub0xlc3NUaGVuQW10QXNzZXQiFG5vTGVzc1RoZW5QcmljZUFzc2V0Ig0kdDA0NTA1OTQ1MTQwIg1jaGVja1BheW1lbnRzIg9jaGVja1Bvb2xTdGF0dXMiDSR0MDQ2MjY2NDYzNDciFW5vTGVzc1RoZW5BbW91bnRBc3NldCIMY2hlY2tBbW91bnRzIg0kdDA0NzY0MjQ3NzIzIgthbXRBc3NldFN0ciINcHJpY2VBc3NldFN0ciIYbGFzdFJlZnJlc2hlZEJsb2NrSGVpZ2h0Ih1jaGVja0xhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCINJHQwNDg5MTA0ODk3NCIQa0xwVXBkYXRlQWN0aW9ucyIGcHJpY2VzIgphbXRBc3NldElkIgxwcmljZUFzc2V0SWQiDXBvb2xMUEJhbGFuY2UiEmFjY0FtdEFzc2V0QmFsYW5jZSIUYWNjUHJpY2VBc3NldEJhbGFuY2UiCnByaWNlc0xpc3QiD2xwQW10QXNzZXRTaGFyZSIRbHBQcmljZUFzc2V0U2hhcmUiCnBvb2xXZWlnaHQiDGN1clByaWNlQ2FsYyIMYW1CYWxhbmNlUmF3IgxwckJhbGFuY2VSYXciD2FtQmFsYW5jZVJhd1gxOCIPcHJCYWxhbmNlUmF3WDE4IhBwYXltZW50THBBc3NldElkIgxwYXltZW50THBBbXQiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleSIKbWF0Y2hlclB1YiINJHQwNTc2MzY1NzcwNSIHbmV3SGFzaCILYWxsb3dlZEhhc2giC2N1cnJlbnRIYXNoZgABYQCAwtcvAAFiCQC2AgEAgICQu7rWrfANAAFjCQC2AgEAAAABZAkAtgIBAAAAAWUJALYCAQABAAFmCQC2AgEAAgABZwIFV0FWRVMAAWgCAl9fAAFpAAIAAWoAAwABawAEAAFsAAEAAW0AAgABbgADAAFvAAQAAXAABQABcQAGAAFyAAcAAXMACAABdAAJAAF1AAEAAXYABwEBdwIBeAF5CQC8AgMJALYCAQUBeAUBYgkAtgIBBQF5AQF6AgF4AXkJALwCAwUBeAUBYgUBeQEBQQIBQgFDCQCgAwEJALwCAwUBQgkAtgIBBQFDBQFiAQFEAwFCAUMBRQkAoAMBCQC9AgQFAUIJALYCAQUBQwUBYgUBRQEBRgEBQgMJAL8CAgUBYwUBQgkAvgIBBQFCBQFCAQFHAAITJXNfX2ZhY3RvcnlDb250cmFjdAEBSAACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFJAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQFKAAIRJXMlc19fcHJpY2VfX2xhc3QBAUsCAUwBTQkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAUwJAMwIAgkApAMBBQFNBQNuaWwFAWgBAU4CAU8BUAkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAU8CAl9fBQFQAQFRAgFPAVAJAKwCAgkArAICCQCsAgICCyVzJXMlc19fR19fBQFPAgJfXwUBUAEBUgACDyVzX19hbW91bnRBc3NldAEBUwACDiVzX19wcmljZUFzc2V0AAFUAgclc19fZmVlAAFVCQBrAwAKBQFhAJBOAAFWCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAVQFAVUAAVcJALkJAgkAzAgCAgIlcwkAzAgCAgNrTHAFA25pbAUBaAABWAkAuQkCCQDMCAICAiVzCQDMCAICEmtMcFJlZnJlc2hlZEhlaWdodAUDbmlsBQFoAAFZCQC5CQIJAMwIAgICJXMJAMwIAgIPcmVmcmVzaEtMcERlbGF5BQNuaWwFAWgAAVoAHgACYWEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBWQUBWgECYWIAAhElc19fZmFjdG9yeUNvbmZpZwECYWMAAhglcyVzX19tYXRjaGVyX19wdWJsaWNLZXkBAmFkAgJhZQJhZgkArAICCQCsAgIJAKwCAgkArAICAgglZCVkJXNfXwUCYWUCAl9fBQJhZgIIX19jb25maWcBAmFnAQJhaAkArAICAiglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQJhaAECYWkAAgwlc19fc2h1dGRvd24BAmFqAQJhawkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFrAQJhbAACFyVzX19hbGxvd2VkTHBTY3JpcHRIYXNoAAJhbQIXJXNfX2ZlZUNvbGxlY3RvckFkZHJlc3MBAmFuBAJhbwJhcAJhcQJhcgkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAiRvcmRlciB2YWxpZGF0aW9uIGZhaWxlZDogb3JkZXJWYWxpZD0JAKUDAQUCYW8CAiAoBQJhcAIBKQINIHNlbmRlclZhbGlkPQkApQMBBQJhcQIOIG1hdGNoZXJWYWxpZD0JAKUDAQUCYXIBAmFzAgJhdAJhdQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmF0BQJhdQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJhdAkAzAgCAgEuCQDMCAIFAmF1CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABAmF2AgJhdAJhdQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFAmF0BQJhdQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJhdAkAzAgCAgEuCQDMCAIFAmF1CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABAmF3AQJheAkAAgEJALkJAgkAzAgCAghscC5yaWRlOgkAzAgCBQJheAUDbmlsAgEgAQJheQECYXgJALkJAgkAzAgCAghscC5yaWRlOgkAzAgCBQJheAUDbmlsAgEgAAJhegkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFzAgUEdGhpcwkBAUcAAAJhQQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFzAgUCYXoFAmFtAAJhQgoAAmFDCQD8BwQFAmF6AhBnZXRJbkZlZVJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYUMCA0ludAUCYUMJAAIBCQCsAgIJAAMBBQJhQwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AAJhRAoAAmFDCQD8BwQFAmF6AhFnZXRPdXRGZWVSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFDAgNJbnQFAmFDCQACAQkArAICCQADAQUCYUMCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAECYUUACQELdmFsdWVPckVsc2UCCQCbCAIFAmF6CQECYWkABwECYUYACQDZBAEJAQJhcwIFAmF6CQECYWMAAQJhRwAEAmFICQECYXMCBQR0aGlzCQEBUgAEAmFJCQECYXMCBQR0aGlzCQEBUwAEAmFmCQECYXYCBQJhegkBAmFnAQUCYUkEAmFlCQECYXYCBQJhegkBAmFnAQUCYUgJALUJAgkBAmFzAgUCYXoJAQJhZAIJAKQDAQUCYWUJAKQDAQUCYWYFAWgBAmFKAQJhSwMJAAACBQJhSwUBZwUEdW5pdAkA2QQBBQJhSwECYUwBAmFLAwkAAAIFAmFLBQR1bml0BQFnCQDYBAEJAQV2YWx1ZQEFAmFLAQJhTQECYU4JAJkKBwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhTgUBbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFOBQFtCQDZBAEJAJEDAgUCYU4FAW4JAQJhSgEJAJEDAgUCYU4FAW8JAQJhSgEJAJEDAgUCYU4FAXAJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhTgUBcQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFOBQFyAAJhTwkBAmFNAQkBAmFHAAACYVAFAmFPAAJhUQgFAmFQAl8yAAJhUggFAmFQAl8zAAJhUwgFAmFQAl80AAJhVAgFAmFQAl81AAJhVQgFAmFQAl82AAJhVggFAmFQAl83AQJhVwAJALUJAgkBAmFzAgUCYXoJAQJhYgAFAWgAAmFYCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCCQECYVcABQF1AhlpbmNvcnJlY3Qgc3Rha2luZyBhZGRyZXNzAAJhWQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmFXAAUBdgIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwECYVoKAmJhAmJiAmJjAmJkAmJlAmJmAmJnAmJoAmJpAmJqCQC5CQIJAMwIAgIUJWQlZCVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJiYQkAzAgCCQCkAwEFAmJiCQDMCAIJAKQDAQUCYmMJAMwIAgkApAMBBQJiZAkAzAgCCQCkAwEFAmJlCQDMCAIJAKQDAQUCYmYJAMwIAgkApAMBBQJiZwkAzAgCCQCkAwEFAmJoCQDMCAIJAKQDAQUCYmkJAMwIAgkApAMBBQJiagUDbmlsBQFoAQJiawYCYmwCYm0CYm4CYmQCYmcCYmgJALkJAgkAzAgCAgwlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJibAkAzAgCCQCkAwEFAmJtCQDMCAIJAKQDAQUCYm4JAMwIAgkApAMBBQJiZAkAzAgCCQCkAwEFAmJnCQDMCAIJAKQDAQUCYmgFA25pbAUBaAECYm8BAmJwAwkAAAIFAmJwAgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQJicAECYnECAmJyAmJzCQC8AgMFAmJyBQFiBQJicwECYnQDAmJyAmJzAUUJAL0CBAUCYnIFAWIFAmJzBQFFAQJidQQCYnYCYncCYngCYnkEAmJ6CQEBdwIFAmJ4BQJidgQCYkEJAQF3AgUCYnkFAmJ3CQECYnECBQJiQQUCYnoBAmJCAwJieAJieQJiQwQCYkQJAQJhRwAEAmJFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXEEAmJGCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXIEAmJHCQECYnUEBQJiRQUCYkYFAmJ4BQJieQQCYnMJAQF3AgUCYngFAmJFBAJicgkBAXcCBQJieQUCYkYEAmJICQEBdwIFAmJDBQFhBAJiSQkBAmJxAgUCYnMFAmJIBAJiSgkBAmJxAgUCYnIFAmJICQDMCAIFAmJHCQDMCAIFAmJJCQDMCAIFAmJKBQNuaWwBAmJLBAJiTAJiTQJiTgFPBAJiRAkBAmFHAAQCYk8JAJEDAgUCYkQFAW4EAmJQCQCRAwIFAmJEBQFvBAJiUQkAkQMCBQJiRAUBcAQCYnYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRAUBcQQCYncJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRAUBcgQCYlIJAJEDAgUCYkQFAW0EAmJTCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEJANkEAQUCYk8JAKwCAgkArAICAgZBc3NldCAFAmJPAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQMJAQIhPQIFAmJPBQJiTQkAAgECFUludmFsaWQgYXNzZXQgcGFzc2VkLgQCYlQJAQJibwEFAmJQBAJiVQkBAXcCBQJiVAUCYnYEAmJWCQECYm8BBQJiUQQCYlcJAQF3AgUCYlYFAmJ3BAJiWAkBAmJxAgUCYlcFAmJVBAJiWQkBAUECBQJiWAUBYQQCYloJAQF3AgUCYk4FAWEEAmNhCQEBdwIFAmJTBQFhBAJjYgkAvAIDBQJiVQUCYloFAmNhBAJjYwkAvAIDBQJiVwUCYloFAmNhBAJjZAkBAUQDBQJjYgUCYnYFBUZMT09SBAJjZQkBAUQDBQJjYwUCYncFBUZMT09SBAJjZgMJAAACBQJiTAIABQNuaWwJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUBTwUCY2QDCQAAAgUCYlACBVdBVkVTBQR1bml0CQDZBAEFAmJQCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAU8FAmNlAwkAAAIFAmJRAgVXQVZFUwUEdW5pdAkA2QQBBQJiUQkAzAgCCQELU3RyaW5nRW50cnkCCQEBUQIJAKUIAQUBTwUCYkwJAQJiawYFAmNkBQJjZQUCYk4FAmJZBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBSgAFAmJZCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBSwIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmJZBQNuaWwJAJwKCgUCY2QFAmNlBQJiUAUCYlEFAmJUBQJiVgUCYlMFAmJYBQJiUgUCY2YBAmNnCQJiTAJjaAJjaQJjagJjawJjbAFPAmNtAmNuBAJiRAkBAmFHAAQCYk8JANkEAQkAkQMCBQJiRAUBbgQCY28JAJEDAgUCYkQFAW8EAmNwCQCRAwIFAmJEBQFwBAJjcQkAkQMCBQJiRAUBcwQCY3IJAJEDAgUCYkQFAXQEAmJFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXEEAmJGCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXIEAmJSCQCRAwIFAmJEBQFtBAJiUwgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiTwkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiTwIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmNzCQDYBAEJAQt2YWx1ZU9yRWxzZQIFAmNqCQDZBAECBVdBVkVTBAJjdAkA2AQBCQELdmFsdWVPckVsc2UCBQJjbAkA2QQBAgVXQVZFUwMDCQECIT0CBQJjbwUCY3MGCQECIT0CBQJjcAUCY3QJAAIBAiJJbnZhbGlkIGFtdCBvciBwcmljZSBhc3NldCBwYXNzZWQuBAJiVAMFAmNtCQECYm8BBQJjbwkAZQIJAQJibwEFAmNvBQJjaQQCYlYDBQJjbQkBAmJvAQUCY3AJAGUCCQECYm8BBQJjcAUCY2sEAmN1CQEBdwIFAmNpBQJiRQQCY3YJAQF3AgUCY2sFAmJGBAJjdwkBAmJxAgUCY3YFAmN1BAJiVQkBAXcCBQJiVAUCYkUEAmJXCQEBdwIFAmJWBQJiRgQCY3gDCQAAAgUCYlMAAAQCYlgFAWMEAmN5BQFjBAJiSAkAdgYJALkCAgUCY3UFAmN2AAAJALYCAQAFAAEAAAUERE9XTgkAlwoFCQEBQQIFAmJIBQFhCQEBQQIFAmN1BQJiRQkBAUECBQJjdgUCYkYJAQJicQIJALcCAgUCYlcFAmN2CQC3AgIFAmJVBQJjdQUCY3kEAmJYCQECYnECBQJiVwUCYlUEAmN5CQC8AgMJAQFGAQkAuAICBQJiWAUCY3cFAWIFAmJYBAJjegkBAXcCBQJjaAUBYQMDCQECIT0CBQJiWAUBYwkAvwICBQJjeQUCY3oHCQACAQkArAICCQCsAgIJAKwCAgIPUHJpY2Ugc2xpcHBhZ2UgCQCmAwEFAmN5Ah4gZXhjZWVkZWQgdGhlIHBhc3NlZCBsaW1pdCBvZiAJAKYDAQUCY3oEAmNhCQEBdwIFAmJTBQFhBAJjQQkAvQIEBQJjdQkBAmJ0AwUCYlcFAmJVBQdDRUlMSU5HBQFiBQdDRUlMSU5HBAJjQgkAvQIEBQJjdgUBYgkBAmJ0AwUCYlcFAmJVBQVGTE9PUgUHQ0VJTElORwQCY0MDCQC/AgIFAmNBBQJjdgkAlAoCBQJjQgUCY3YJAJQKAgUCY3UFAmNBBAJjRAgFAmNDAl8xBAJjRQgFAmNDAl8yBAJiSAkAvQIEBQJjYQUCY0UFAmJXBQVGTE9PUgkAlwoFCQEBRAMFAmJIBQFhBQVGTE9PUgkBAUQDBQJjRAUCYkUFB0NFSUxJTkcJAQFEAwUCY0UFAmJGBQdDRUlMSU5HBQJiWAUCY3kEAmNGCAUCY3gCXzEEAmNHCAUCY3gCXzIEAmNICAUCY3gCXzMEAmJZCQEBQQIIBQJjeAJfNAUBYQQCY0kJAQFBAggFAmN4Al81BQFhAwkAZwIAAAUCY0YJAAIBAjZJbnZhbGlkIGNhbGN1bGF0aW9ucy4gTFAgY2FsY3VsYXRlZCBpcyBsZXNzIHRoYW4gemVyby4EAmNKAwkBASEBBQJjbgAABQJjRgQCY0sJAGUCBQJjaQUCY0cEAmNMCQBlAgUCY2sFAmNIBAJjTQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUoABQJiWQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUsCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJiWQkAzAgCCQELU3RyaW5nRW50cnkCCQEBTgIFAU8FAmJMCQECYVoKBQJjRwUCY0gFAmNKBQJiWQUCY2gFAmNJBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjSwUCY0wFA25pbAkAnwoNBQJjRgUCY0oFAmJZBQJiVAUCYlYFAmJTBQJiTwUCYlIFAmNNBQJjSwUCY0wFAmNqBQJjbAECY04DAmNPAmNQAmJTBAJjUQkBAXoCBQJjTwkAtgIBBQJhVQQCY1IJAQF6AgUCY1AJALYCAQUCYVYEAmNTCQC8AgMJAHYGCQC5AgIFAmNRBQJjUgAACQC2AgEABQABABIFBERPV04FAWUFAmJTAwkAAAIFAmJTBQFkBQFkBQJjUwECY1QDAmNVAmNWAmNXBAJjWAkAuAICCQC2AgEJAQJibwEJAQJhTAEFAmFTBQJjVQQCY1kJALgCAgkAtgIBCQECYm8BCQECYUwBBQJhVAUCY1YEAmNaCQC4AgIJALYCAQgJAQV2YWx1ZQEJAOwHAQUCYVIIcXVhbnRpdHkFAmNXBAJkYQkBAmNOAwUCY1gFAmNZBQJjWgUCZGEBAmRiAwJkYwJkZAJjVwQCY1gJAGQCCQECYm8BCQECYUwBBQJhUwUCZGMEAmNZCQBkAgkBAmJvAQkBAmFMAQUCYVQFAmRkBAJjWgkAZAIICQEFdmFsdWUBCQDsBwEFAmFSCHF1YW50aXR5BQJjVwQCY1MJAQJjTgMJALYCAQUCY1gJALYCAQUCY1kJALYCAQUCY1oEAmRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFYBQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgUBVwkApgMBBQJjUwUDbmlsCQCUCgIFAmRlBQJjUwECZGYCAmRnAmNTAwkAwAICBQJjUwUCZGcGCQECYXcBCQC5CQIJAMwIAgIidXBkYXRlZCBLTHAgbG93ZXIgdGhhbiBjdXJyZW50IEtMcAkAzAgCCQCmAwEFAmRnCQDMCAIJAKYDAQUCY1MFA25pbAIBIAECZGgBAmRpBAJkaggFAmRpBmFtb3VudAQCZGsJAG4ECAUCZGkGYW1vdW50CAUCZGkFcHJpY2UFAWEFBUZMT09SBAJkbAMJAAACCAUCZGkJb3JkZXJUeXBlBQNCdXkJAJQKAgUCZGoJAQEtAQUCZGsJAJQKAgkBAS0BBQJkagUCZGsEAmRjCAUCZGwCXzEEAmRkCAUCZGwCXzIDAwMJAQJhRQAGCQAAAgUCYVEFAWoGCQAAAgUCYVEFAWsJAAIBAhxFeGNoYW5nZSBvcGVyYXRpb25zIGRpc2FibGVkAwMJAQIhPQIICAUCZGkJYXNzZXRQYWlyC2Ftb3VudEFzc2V0BQJhUwYJAQIhPQIICAUCZGkJYXNzZXRQYWlyCnByaWNlQXNzZXQFAmFUCQACAQITV3Jvbmcgb3JkZXIgYXNzZXRzLgQCZG0JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUBVwkBAmF5AQIPa0xwIGlzIHJlcXVpcmVkCQECYXkBAgtpbnZhbGlkIGtMcAQCZG4JAQJkYgMFAmRjBQJkZAAABAJkbwgFAmRuAl8xBAJkcAgFAmRuAl8yBAJkcQkBAmRiAwAAAAAAAAQCZHIIBQJkcQJfMQQCZHMIBQJkcQJfMgQCZHQJAMACAgUCZHAFAmRtBAJjTwkBAmJvAQkBAmFMAQUCYVMEAmNQCQECYm8BCQECYUwBBQJhVAQCY1EJAQF3AgUCY08FAmFVBAJkdQkAtwICBQJjUQkBAXcCBQJkYwUCYVUEAmNSCQEBdwIFAmNQBQJhVgQCZHYJALcCAgUCY1IJAQF3AgUCZGQFAmFWBAJkdwkAdgYJALkCAgUCY1EFAmNSAAAJALYCAQAFAAEAEgUERE9XTgQCZHgJAHYGCQC5AgIFAmR1BQJkdgAACQC2AgEABQABABIFBERPV04EAmR5CQC5CQIJAMwIAgkApgMBBQJkbQkAzAgCCQCmAwEFAmRwCQDMCAIJAKYDAQUCZHcJAMwIAgkApgMBBQJkeAUDbmlsAgEgCQCUCgIFAmR0BQJkeQECZHoBAmRBAwkBAiE9AgkAkAMBCAUCZEEIcGF5bWVudHMAAQkAAgECHWV4YWN0bHkgMSBwYXltZW50IGlzIGV4cGVjdGVkBAJkQgkBBXZhbHVlAQkAkQMCCAUCZEEIcGF5bWVudHMAAAQCYk0JAQV2YWx1ZQEIBQJkQgdhc3NldElkBAJkQwgFAmRCBmFtb3VudAQCY3gJAQJiSwQJANgEAQgFAmRBDXRyYW5zYWN0aW9uSWQJANgEAQUCYk0FAmRDCAUCZEEGY2FsbGVyBAJjZAgFAmN4Al8xBAJjZQgFAmN4Al8yBAJiUgkBDXBhcnNlSW50VmFsdWUBCAUCY3gCXzkEAmNmCAUCY3gDXzEwAwMJAQJhRQAGCQAAAgUCYlIFAWsJAAIBCQCsAgICLEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmJSCQCXCgUFAmNkBQJjZQUCZEMFAmJNBQJjZgECZEQDAmRBAmNoAmNuAwkBAiE9AgkAkAMBCAUCZEEIcGF5bWVudHMAAgkAAgECH2V4YWN0bHkgMiBwYXltZW50cyBhcmUgZXhwZWN0ZWQEAmRFCQEFdmFsdWUBCQCRAwIIBQJkQQhwYXltZW50cwAABAJkRgkBBXZhbHVlAQkAkQMCCAUCZEEIcGF5bWVudHMAAQQCZEcJAQJjZwkJANgEAQgFAmRBDXRyYW5zYWN0aW9uSWQFAmNoCAUCZEUGYW1vdW50CAUCZEUHYXNzZXRJZAgFAmRGBmFtb3VudAgFAmRGB2Fzc2V0SWQJAKUIAQgFAmRBBmNhbGxlcgcFAmNuBAJiUgkBDXBhcnNlSW50VmFsdWUBCAUCZEcCXzgDAwMJAQJhRQAGCQAAAgUCYlIFAWkGCQAAAgUCYlIFAWsJAAIBCQCsAgICLFB1dCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmJSBQJkRwECZEgBAmRJBAJkSgkA/AcEBQJhegIEZW1pdAkAzAgCBQJkSQUDbmlsBQNuaWwDCQAAAgUCZEoFAmRKBAJkSwQCZEwFAmRKAwkAAQIFAmRMAgdBZGRyZXNzBAJkTQUCZEwJAPwHBAUCZE0CBGVtaXQJAMwIAgUCZEkFA25pbAUDbmlsBQR1bml0AwkAAAIFAmRLBQJkSwUCZEkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmROAgJkSQFWBAJkTwMJAAACBQFWAAAAAAkAawMFAmRJBQFWBQFhCQCUCgIJAGUCBQJkSQUCZE8FAmRPAQJkUAQCZFECZFIBTwFQBAJkUwkAAAIFAVAFBHVuaXQEAmRUCQECYm8BCQECYUwBBQJhUwQCZFUJAQJibwEJAQJhTAEFAmFUBAJkVgMJAAACBQJkUgUCYVMGAwkAAAIFAmRSBQJhVAcJAQJhdwECDWludmFsaWQgYXNzZXQEAmRXAwUCZFMJAJQKAgUCZFQFAmRVAwUCZFYJAJQKAgkAZQIFAmRUBQJkUQUCZFUJAJQKAgUCZFQJAGUCBQJkVQUCZFEEAmRYCAUCZFcCXzEEAmRZCAUCZFcCXzIEAmRaAwUCZFYJAJQKAgUCZFEAAAkAlAoCAAAFAmRRBAJlYQgFAmRaAl8xBAJlYggFAmRaAl8yBAJkaggJAQJkTgIFAmVhBQJhQgJfMQQCZGsICQECZE4CBQJlYgUCYUICXzEEAmVjCQECZE4CBQJkUQUCYUIEAmVkCAUCZWMCXzEEAmRPCAUCZWMCXzIEAmVlCQBkAgUCZFgFAmRqBAJlZgkAZAIFAmRZBQJkawQCZWcJAQJicQIJAQF3AgUCZWYFAmFWCQEBdwIFAmVlBQJhVQQCZWgJAQFBAgUCZWcFAWEEAmVpAwUCZFYFAmRYBQJkWQQCZWoJALYCAQUCZWkEAmVrCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYVIJAKwCAgkArAICAgZhc3NldCAJANgEAQUCYVICDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJlbAMJAL8CAgUCZWsFAWQGCQECYXcBAiJpbml0aWFsIGRlcG9zaXQgcmVxdWlyZXMgYWxsIGNvaW5zAwkAAAIFAmVsBQJlbAQCZW0JALYCAQUCZWQEAmVuCQCWAwEJAMwIAgAACQDMCAIJAKADAQkAugICCQC5AgIFAmVrCQC4AgIJAQpzcXJ0QmlnSW50BAkAtwICBQFiCQC6AgIJALkCAgUCZW0FAWIFAmVqABIAEgUERE9XTgUBYgUBYgUDbmlsBAJjTQMFAmRTBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFKAAUCZWgJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFLAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZWgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU4CCQClCAEJAQV2YWx1ZQEFAU8JANgEAQkBBXZhbHVlAQUBUAkBAmFaCgUCZWEFAmViBQJlbgUCZWgAAAAABQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wAAAAAAUDbmlsBAJlbwkBAmJxAgkBAXcCBQJkWQUCYVYJAQF3AgUCZFgFAmFVBAJlcAkBAUECBQJlbwUBYQQCZXEEAmVyAwUCZFYJAJQKAgUCZWEFAmRYCQCUCgIFAmViBQJkWQQCZEkIBQJlcgJfMQQCZXMIBQJlcgJfMgQCZXQJAKADAQkAvAIDBQJlawkAtgIBCQBpAgUCZEkAAgkAtgIBBQJlcwkAawMJAGUCBQJlbgUCZXQFAWEFAmV0CQCXCgUFAmVuBQJjTQUCZE8FAmVxBQJkVgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZXUFAmV2AmVkAmRSAU8BUAQCZFMJAAACBQFQBQR1bml0BAJiRAkBAmFHAAQCYkUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRAUBcQQCYkYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRAUBcgQCZXcJAMwIAgMJAAACBQJkUgUCYVIGCQECYXcBAhBpbnZhbGlkIGxwIGFzc2V0BQNuaWwDCQAAAgUCZXcFAmV3BAJleAMJAAACBQJldgUCYVMGAwkAAAIFAmV2BQJhVAcJAQJhdwECDWludmFsaWQgYXNzZXQEAmV5AwUCZXgJALYCAQkBAmJvAQkBAmFMAQUCYVMJALYCAQkBAmJvAQkBAmFMAQUCYVQEAmV6AwUCZXgFAmJFBQJiRgQCZUEJAQJibwEJAQJhTAEFAmFTBAJlQgkBAmJvAQkBAmFMAQUCYVQEAmVDAwUCZXgFAmVBBQJlQgQCZUQJALYCAQUCZUMEAmVrCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYVIJAKwCAgkArAICAgZhc3NldCAJANgEAQUCYVICDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJlRQkAtgIBBQJlZAQCZUYJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC6AgIJALkCAgUCZXkJALgCAgUBYgkAdgYJALgCAgUBYgkAugICCQC5AgIFAmVFBQFiBQJlawASBQFmAAAAEgUERE9XTgUBYgUDbmlsBAJlRwkBAmROAgUCZUYFAmFEBAJlSAgFAmVHAl8xBAJkTwgFAmVHAl8yBAJlSQMFAmV4CQCWCgQFAmVIAAAJAGUCBQJlQQUCZUYFAmVCCQCWCgQAAAUCZUgFAmVBCQBlAgUCZUIFAmVGBAJlSggFAmVJAl8xBAJlSwgFAmVJAl8yBAJlTAgFAmVJAl8zBAJlTQgFAmVJAl80BAJlZwkBAmJxAgkBAXcCBQJlTQUCYVYJAQF3AgUCZUwFAmFVBAJlaAkBAUECBQJlZwUBYQQCY00DBQJkUwUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFRAgkApQgBCQEFdmFsdWUBBQFPCQDYBAEJAQV2YWx1ZQEFAVAJAQJiawYFAmVKBQJlSwUCZWQFAmVoBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBSgAFAmVoCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBSwIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmVoBQNuaWwEAmVvCQECYnECCQEBdwIFAmVCBQJhVgkBAXcCBQJlQQUCYVUEAmVwCQEBQQIFAmVvBQFhBAJlcQQCZU4JAGgCCQCgAwEJALwCAwUCZXkFAmVFBQJlawACCQBrAwkAZQIFAmVIBQJlTgUBYQUCZU4JAJcKBQUCZUgFAmNNBQJkTwUCZXEFAmV4CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJlTwAEAmRMCQCiCAEJAQFIAAMJAAECBQJkTAIGU3RyaW5nBAJlUAUCZEwJANkEAQUCZVADCQABAgUCZEwCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZVEABAJkTAkAoggBCQEBSQADCQABAgUCZEwCBlN0cmluZwQCZVAFAmRMCQDZBAEFAmVQAwkAAQIFAmRMAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmVSAQJkQQQCZEwJAQJlTwADCQABAgUCZEwCCkJ5dGVWZWN0b3IEAmVTBQJkTAkAAAIIBQJkQQ9jYWxsZXJQdWJsaWNLZXkFAmVTAwkAAQIFAmRMAgRVbml0CQAAAggFAmRBBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQJlVAECZEEEAmVVCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEAmRMCQECZU8AAwkAAQIFAmRMAgpCeXRlVmVjdG9yBAJlUwUCZEwDCQAAAggFAmRBD2NhbGxlclB1YmxpY0tleQUCZVMGBQJlVQMJAAECBQJkTAIEVW5pdAMJAAACCAUCZEEGY2FsbGVyBQR0aGlzBgUCZVUJAAIBAgtNYXRjaCBlcnJvchsCZEEBCnNldE1hbmFnZXIBAmVWBAJlVwkBAmVUAQUCZEEDCQAAAgUCZVcFAmVXBAJlWAkA2QQBBQJlVgMJAAACBQJlWAUCZVgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUkABQJlVgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBAQ5jb25maXJtTWFuYWdlcgAEAmVZCQECZVEABAJlWgMJAQlpc0RlZmluZWQBBQJlWQYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZVoFAmVaBAJmYQMJAAACCAUCZEEPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJlWQYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZmEFAmZhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFIAAkA2AQBCQEFdmFsdWUBBQJlWQkAzAgCCQELRGVsZXRlRW50cnkBCQEBSQAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQQEDcHV0AgJjaAJmYgMJAGYCAAAFAmNoCQACAQIgSW52YWxpZCBzbGlwcGFnZVRvbGVyYW5jZSBwYXNzZWQEAmRHCQECZEQDBQJkQQUCY2gGBAJjSggFAmRHAl8yBAJiTwgFAmRHAl83BAJjZggFAmRHAl85BAJjSwgFAmRHA18xMAQCY0wIBQJkRwNfMTEEAmZjCAUCZEcDXzEyBAJmZAgFAmRHA18xMwQCZEUJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmRBCHBheW1lbnRzAAAGYW1vdW50BAJkRgkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCZEEIcGF5bWVudHMAAQZhbW91bnQEAmRhCQECY1QDBQJkRQUCZEYJALYCAQAAAwkAAAIFAmRhBQJkYQQCZEoJAPwHBAUCYXoCBGVtaXQJAMwIAgUCY0oFA25pbAUDbmlsAwkAAAIFAmRKBQJkSgQCZEsEAmRMBQJkSgMJAAECBQJkTAIHQWRkcmVzcwQCZE0FAmRMCQD8BwQFAmRNAgRlbWl0CQDMCAIFAmNKBQNuaWwFA25pbAUEdW5pdAMJAAACBQJkSwUCZEsEAmZlAwkAZgIFAmNLAAAJAPwHBAUCYVkCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJmYwUCY0sFA25pbAUDbmlsAwkAAAIFAmZlBQJmZQQCZmYDCQBmAgUCY0wAAAkA/AcEBQJhWQIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmZkBQJjTAUDbmlsBQNuaWwDCQAAAgUCZmYFAmZmBAJmZwMFAmZiBAJmaAkA/AcEBQJhWAIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYk8FAmNKBQNuaWwDCQAAAgUCZmgFAmZoBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRBBmNhbGxlcgUCY0oFAmJPBQNuaWwEAmZpCQECZGIDAAAAAAAAAwkAAAIFAmZpBQJmaQQCY1MIBQJmaQJfMgQCZmoIBQJmaQJfMQQCZmsJAQJkZgIFAmRhBQJjUwMJAAACBQJmawUCZmsJAM4IAgkAzggCBQJjZgUCZmcFAmZqCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBAQpwdXRGb3JGcmVlAQJmbAMJAGYCAAAFAmZsCQACAQIUSW52YWxpZCB2YWx1ZSBwYXNzZWQEAmRHCQECZEQDBQJkQQUCZmwHBAJjZggFAmRHAl85BAJkRQkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCZEEIcGF5bWVudHMAAAZhbW91bnQEAmRGCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJkQQhwYXltZW50cwABBmFtb3VudAQCZGEJAQJjVAMFAmRFBQJkRgkAtgIBAAADCQAAAgUCZGEFAmRhBAJmbQkBAmRiAwAAAAAAAAQCZmoIBQJmbQJfMQQCY1MIBQJmbQJfMgQCZmsJAQJkZgIFAmRhBQJjUwMJAAACBQJmawUCZmsJAM4IAgUCY2YFAmZqCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBAQlwdXRPbmVUa24CAmZuAmZvBAJmcAoAAmFDCQD8BwQFAmF6Aihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYUMCB0Jvb2xlYW4FAmFDCQACAQkArAICCQADAQUCYUMCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmZxAwMDCQECYUUABgkAAAIFAmFRBQFpBgkAAAIFAmFRBQFrBgUCZnAEAmV3CQDMCAIDAwkBASEBBQJmcQYJAQJlUgEFAmRBBgkBAmF3AQIhcHV0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZEEIcGF5bWVudHMAAQYJAQJhdwECHmV4YWN0bHkgMSBwYXltZW50IGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmV3BQJldwQCZnIJAJEDAggFAmRBCHBheW1lbnRzAAAEAmRSCAUCZnIHYXNzZXRJZAQCZFEIBQJmcgZhbW91bnQEAmRhAwkAAAIFAmRSBQJhUwkBAmNUAwkAtgIBBQJkUQkAtgIBAAAJALYCAQAAAwkAAAIFAmRSBQJhVAkBAmNUAwkAtgIBAAAJALYCAQUCZFEJALYCAQAACQECYXcBAh5wYXltZW50IGFzc2V0IGlzIG5vdCBzdXBwb3J0ZWQDCQAAAgUCZGEFAmRhBAFPCAUCZEEGY2FsbGVyBAFQCAUCZEENdHJhbnNhY3Rpb25JZAQCZnMJAQJkUAQFAmRRBQJkUgUBTwUBUAMJAAACBQJmcwUCZnMEAmRWCAUCZnMCXzUEAmZ0CAUCZnMCXzQEAmRPCAUCZnMCXzMEAmNNCAUCZnMCXzIEAmZ1CAUCZnMCXzEEAmZ2AwMJAGYCBQJmbgAACQBmAgUCZm4FAmZ1BwkBAmF3AQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJmbgUDbmlsAgAFAmZ1BAJkSgkBAmRIAQUCZnYDCQAAAgUCZEoFAmRKBAJmZwMFAmZvBAJmdwkA/AcEBQJhWAIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYVIFAmZ2BQNuaWwDCQAAAgUCZncFAmZ3BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRBBmNhbGxlcgUCZnYFAmFSBQNuaWwEAmZ4AwkAZgIFAmRPAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUEFAmRPBQJkUgUDbmlsBQNuaWwEAmZ5AwkAAAIFBHRoaXMFAmFBCQCUCgIAAAAAAwUCZFYJAJQKAgkBAS0BBQJkTwAACQCUCgIAAAkBAS0BBQJkTwQCZGMIBQJmeQJfMQQCZGQIBQJmeQJfMgQCZnoJAQJkYgMFAmRjBQJkZAAABAJmaggFAmZ6Al8xBAJjUwgFAmZ6Al8yBAJkbQkBBXZhbHVlAQkAoggBBQFXBAJmawkBAmRmAgUCZGEFAmNTAwkAAAIFAmZrBQJmawkAlAoCCQDOCAIJAM4IAgkAzggCBQJjTQUCZmcFAmZ4BQJmagUCZnYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEEBEXB1dE9uZVRrblJFQURPTkxZAgJkUgJkUQQCZkEJAQJkUAQFAmRRCQECYUoBBQJkUgUEdW5pdAUEdW5pdAQCZnUIBQJmQQJfMQQCY00IBQJmQQJfMgQCZE8IBQJmQQJfMwQCZnQIBQJmQQJfNAQCZFYIBQJmQQJfNQkAlAoCBQNuaWwJAJUKAwUCZnUFAmRPBQJmdAJkQQEJZ2V0T25lVGtuAgJmQgJmbgQCZnAKAAJhQwkA/AcEBQJhegIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFDAgdCb29sZWFuBQJhQwkAAgEJAKwCAgkAAwEFAmFDAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJmQwMDCQECYUUABgkAAAIFAmFRBQFrBgUCZnAEAmV3CQDMCAIDAwkBASEBBQJmQwYJAQJlUgEFAmRBBgkBAmF3AQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZEEIcGF5bWVudHMAAQYJAQJhdwECHmV4YWN0bHkgMSBwYXltZW50IGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmV3BQJldwQCZXYJAQJhSgEFAmZCBAJmcgkAkQMCCAUCZEEIcGF5bWVudHMAAAQCZFIIBQJmcgdhc3NldElkBAJlZAgFAmZyBmFtb3VudAQCZGEJAQJjVAMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZGEFAmRhBAFPCAUCZEEGY2FsbGVyBAFQCAUCZEENdHJhbnNhY3Rpb25JZAQCZkQJAQJldQUFAmV2BQJlZAUCZFIFAU8FAVADCQAAAgUCZkQFAmZEBAJleAgFAmZEAl81BAJmdAgFAmZEAl80BAJkTwgFAmZEAl8zBAJjTQgFAmZEAl8yBAJmRQgFAmZEAl8xBAJkSQMDCQBmAgUCZm4AAAkAZgIFAmZuBQJmRQcJAQJhdwEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZm4FA25pbAIABQJmRQQCZkYJAPwHBAUCYXoCBGJ1cm4JAMwIAgUCZWQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZFIFAmVkBQNuaWwDCQAAAgUCZkYFAmZGBAJmRwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQFPBQJkSQUCZXYFA25pbAQCZngDCQBmAgUCZE8AAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhQQUCZE8FAmV2BQNuaWwFA25pbAQCZkgEAmZJAwkAAAIFBHRoaXMFAmFBAAAFAmRPAwUCZXgJAJQKAgkBAS0BCQBkAgUCZEkFAmZJAAAJAJQKAgAACQEBLQEJAGQCBQJkSQUCZkkEAmRjCAUCZkgCXzEEAmRkCAUCZkgCXzIEAmZKCQECZGIDBQJkYwUCZGQAAAQCZmoIBQJmSgJfMQQCY1MIBQJmSgJfMgQCZmsJAQJkZgIFAmRhBQJjUwMJAAACBQJmawUCZmsJAJQKAgkAzggCCQDOCAIJAM4IAgUCY00FAmZHBQJmeAUCZmoFAmRJCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBARFnZXRPbmVUa25SRUFET05MWQICZXYCZWQEAmZLCQECZXUFCQECYUoBBQJldgUCZWQFAmFSBQR1bml0BQR1bml0BAJmRQgFAmZLAl8xBAJjTQgFAmZLAl8yBAJkTwgFAmZLAl8zBAJmdAgFAmZLAl80BAJleAgFAmZLAl81CQCUCgIFA25pbAkAlQoDBQJmRQUCZE8FAmZ0AmRBARN1bnN0YWtlQW5kR2V0T25lVGtuAwJmTAJmQgJmbgQCZnAKAAJhQwkA/AcEBQJhegIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFDAgdCb29sZWFuBQJhQwkAAgEJAKwCAgkAAwEFAmFDAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJmQwMDCQECYUUABgkAAAIFAmFRBQFrBgUCZnAEAmV3CQDMCAIDAwkBASEBBQJmQwYJAQJlUgEFAmRBBgkBAmF3AQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZEEIcGF5bWVudHMAAAYJAQJhdwECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmV3BQJldwQCZXYJAQJhSgEFAmZCBAFPCAUCZEEGY2FsbGVyBAFQCAUCZEENdHJhbnNhY3Rpb25JZAQCZGEJAQJjVAMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZGEFAmRhBAJmTQkA/AcEBQJhWAIHdW5zdGFrZQkAzAgCCQDYBAEFAmFSCQDMCAIFAmZMBQNuaWwFA25pbAMJAAACBQJmTQUCZk0EAmZOCQECZXUFBQJldgUCZkwFAmFSBQFPBQFQAwkAAAIFAmZOBQJmTgQCZXgIBQJmTgJfNQQCZnQIBQJmTgJfNAQCZE8IBQJmTgJfMwQCY00IBQJmTgJfMgQCZkUIBQJmTgJfMQQCZEkDAwkAZgIFAmZuAAAJAGYCBQJmbgUCZkUHCQECYXcBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZuBQNuaWwCAAUCZkUEAmZGCQD8BwQFAmF6AgRidXJuCQDMCAIFAmZMBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmFSBQJmTAUDbmlsAwkAAAIFAmZGBQJmRgQCZkcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRBBmNhbGxlcgUCZEkFAmV2BQNuaWwEAmZ4AwkAZgIFAmRPAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUEFAmRPBQJldgUDbmlsBQNuaWwEAmZPBAJmSQMJAAACBQR0aGlzBQJhQQAABQJkTwMFAmV4CQCUCgIJAQEtAQkAZAIFAmRJBQJmSQAACQCUCgIAAAkBAS0BCQBkAgUCZEkFAmZJBAJkYwgFAmZPAl8xBAJkZAgFAmZPAl8yBAJmUAkBAmRiAwUCZGMFAmRkAAAEAmZqCAUCZlACXzEEAmNTCAUCZlACXzIEAmZrCQECZGYCBQJkYQUCY1MDCQAAAgUCZmsFAmZrCQCUCgIJAM4IAgkAzggCCQDOCAIFAmNNBQJmRwUCZngFAmZqBQJkSQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQQEDZ2V0AAQCY3gJAQJkegEFAmRBBAJmUQgFAmN4Al8xBAJjZQgFAmN4Al8yBAJkQwgFAmN4Al8zBAJiTQgFAmN4Al80BAJjZggFAmN4Al81BAJkYQkBAmNUAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJkYQUCZGEEAmZSCQD8BwQFAmF6AgRidXJuCQDMCAIFAmRDBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJNBQJkQwUDbmlsAwkAAAIFAmZSBQJmUgQCZlMJAQJkYgMJAQEtAQUCZlEJAQEtAQUCY2UAAAQCZmoIBQJmUwJfMQQCY1MIBQJmUwJfMgQCZmsJAQJkZgIFAmRhBQJjUwMJAAACBQJmawUCZmsJAM4IAgUCY2YFAmZqCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBAQlnZXROb0xlc3MCAmZUAmZVBAJjeAkBAmR6AQUCZEEEAmNkCAUCY3gCXzEEAmNlCAUCY3gCXzIEAmRDCAUCY3gCXzMEAmJNCAUCY3gCXzQEAmNmCAUCY3gCXzUDCQBmAgUCZlQFAmNkCQACAQkArAICCQCsAgIJAKwCAgIcbm9MZXNzVGhlbkFtdEFzc2V0IGZhaWxlZDogIAkApAMBBQJjZAIDIDwgCQCkAwEFAmZUAwkAZgIFAmZVBQJjZQkAAgEJAKwCAgkArAICCQCsAgICHW5vTGVzc1RoZW5QcmljZUFzc2V0IGZhaWxlZDogCQCkAwEFAmNlAgMgPCAJAKQDAQUCZlUEAmRhCQECY1QDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmRhBQJkYQQCZlIJAPwHBAUCYXoCBGJ1cm4JAMwIAgUCZEMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYk0FAmRDBQNuaWwDCQAAAgUCZlIFAmZSBAJmVgkBAmRiAwkBAS0BBQJjZAkBAS0BBQJjZQAABAJmaggFAmZWAl8xBAJjUwgFAmZWAl8yBAJmawkBAmRmAgUCZGEFAmNTAwkAAAIFAmZrBQJmawkAzggCBQJjZgUCZmoJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEEBDXVuc3Rha2VBbmRHZXQBAmRJBAJmVwMJAQIhPQIJAJADAQgFAmRBCHBheW1lbnRzAAAJAAIBAhhObyBwYXltZW50cyBhcmUgZXhwZWN0ZWQGAwkAAAIFAmZXBQJmVwQCYkQJAQJhRwAEAmJPCQDZBAEJAJEDAgUCYkQFAW4EAmRhCQECY1QDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmRhBQJkYQQCZk0JAPwHBAUCYVgCB3Vuc3Rha2UJAMwIAgkA2AQBBQJiTwkAzAgCBQJkSQUDbmlsBQNuaWwDCQAAAgUCZk0FAmZNBAJjeAkBAmJLBAkA2AQBCAUCZEENdHJhbnNhY3Rpb25JZAkA2AQBBQJiTwUCZEkIBQJkQQZjYWxsZXIEAmNkCAUCY3gCXzEEAmNlCAUCY3gCXzIEAmJSCQENcGFyc2VJbnRWYWx1ZQEIBQJjeAJfOQQCY2YIBQJjeANfMTAEAmZYAwMJAQJhRQAGCQAAAgUCYlIFAWsJAAIBCQCsAgICLEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmJSBgMJAAACBQJmWAUCZlgEAmZSCQD8BwQFAmF6AgRidXJuCQDMCAIFAmRJBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJPBQJkSQUDbmlsAwkAAAIFAmZSBQJmUgQCZlkJAQJkYgMJAQEtAQUCY2QJAQEtAQUCY2UAAAQCZmoIBQJmWQJfMQQCY1MIBQJmWQJfMgQCZmsJAQJkZgIFAmRhBQJjUwMJAAACBQJmawUCZmsJAM4IAgUCY2YFAmZqCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBARN1bnN0YWtlQW5kR2V0Tm9MZXNzAwJmTAJmWgJmVQQCZkMDCQECYUUABgkAAAIFAmFRBQFrBAJldwkAzAgCAwkBASEBBQJmQwYJAAIBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJkQQhwYXltZW50cwAABgkAAgECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmV3BQJldwQCZGEJAQJjVAMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZGEFAmRhBAJmTQkA/AcEBQJhWAIHdW5zdGFrZQkAzAgCCQDYBAEFAmFSCQDMCAIFAmZMBQNuaWwFA25pbAMJAAACBQJmTQUCZk0EAmN4CQECYksECQDYBAEIBQJkQQ10cmFuc2FjdGlvbklkCQDYBAEFAmFSBQJmTAgFAmRBBmNhbGxlcgQCY2QIBQJjeAJfMQQCY2UIBQJjeAJfMgQCY2YIBQJjeANfMTAEAmdhCQDMCAIDCQBnAgUCY2QFAmZaBgkAAgEJALkJAgkAzAgCAixhbW91bnQgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZaBQNuaWwCAAkAzAgCAwkAZwIFAmNlBQJmVQYJAAIBCQC5CQIJAMwIAgIrcHJpY2UgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZVBQNuaWwCAAUDbmlsAwkAAAIFAmdhBQJnYQQCZlIJAPwHBAUCYXoCBGJ1cm4JAMwIAgUCZkwFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYVIFAmZMBQNuaWwDCQAAAgUCZlIFAmZSBAJnYgkBAmRiAwkBAS0BBQJjZAkBAS0BBQJjZQAABAJmaggFAmdiAl8xBAJjUwgFAmdiAl8yBAJmawkBAmRmAgUCZGEFAmNTAwkAAAIFAmZrBQJmawkAzggCBQJjZgUCZmoJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEEBCGFjdGl2YXRlAgJnYwJnZAMJAQIhPQIJAKUIAQgFAmRBBmNhbGxlcgkApQgBBQJhegkAAgECEnBlcm1pc3Npb25zIGRlbmllZAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFSAAUCZ2MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVMABQJnZAUDbmlsAgdzdWNjZXNzAmRBAQpyZWZyZXNoS0xwAAQCZ2UJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUBWAAABAJnZgMJAGcCCQBlAgUGaGVpZ2h0BQJnZQUCYWEFBHVuaXQJAQJhdwEJALkJAgkAzAgCCQCkAwEFAmFhCQDMCAICLyBibG9ja3MgaGF2ZSBub3QgcGFzc2VkIHNpbmNlIHRoZSBwcmV2aW91cyBjYWxsBQNuaWwCAAMJAAACBQJnZgUCZ2YEAmRtCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQFXAgEwCQECYXkBAgtpbnZhbGlkIGtMcAQCZ2cJAQJkYgMAAAAAAAAEAmdoCAUCZ2cCXzEEAmNTCAUCZ2cCXzIEAmRlAwkBAiE9AgUCZG0FAmNTBQJnaAkBAmF3AQISbm90aGluZyB0byByZWZyZXNoCQCUCgIFAmRlCQCmAwEFAmNTCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBARxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZAAkAlAoCBQNuaWwJAQJhRwACZEEBHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkBAmJwCQCUCgIFA25pbAkBAmJvAQUCYnACZEEBGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkDAmJ4AmJ5AmJDBAJnaQkBAmJCAwUCYngFAmJ5BQJiQwkAlAoCBQNuaWwJAMwIAgkApgMBCQCRAwIFAmdpAAAJAMwIAgkApgMBCQCRAwIFAmdpAAEJAMwIAgkApgMBCQCRAwIFAmdpAAIFA25pbAJkQQEUdG9YMThXcmFwcGVyUkVBRE9OTFkCAXgBeQkAlAoCBQNuaWwJAKYDAQkBAXcCBQF4BQF5AmRBARZmcm9tWDE4V3JhcHBlclJFQURPTkxZAgFCAUMJAJQKAgUDbmlsCQEBQQIJAKcDAQUBQgUBQwJkQQEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJicgJicwkAlAoCBQNuaWwJAKYDAQkBAmJxAgkApwMBBQJicgkApwMBBQJicwJkQQEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmJMAmNoAmNpAmNqAmNrAmNsAU8CY20CY24JAJQKAgUDbmlsCQECY2cJBQJiTAUCY2gFAmNpBQJjagUCY2sFAmNsBQFPBQJjbQUCY24CZEEBI2VzdGltYXRlR2V0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZBAJiTAJiTQJiTgFPBAJjeAkBAmJLBAUCYkwFAmJNBQJiTgkBEUBleHRyTmF0aXZlKDEwNjIpAQUBTwkAlAoCBQNuaWwJAJwKCggFAmN4Al8xCAUCY3gCXzIIBQJjeAJfMwgFAmN4Al80CAUCY3gCXzUIBQJjeAJfNggFAmN4Al83CQCmAwEIBQJjeAJfOAgFAmN4Al85CAUCY3gDXzEwAmRBAQ1zdGF0c1JFQURPTkxZAAQCYkQJAQJhRwAEAmJPCQDZBAEJAJEDAgUCYkQFAW4EAmdqCQCRAwIFAmJEBQFvBAJnawkAkQMCBQJiRAUBcAQCY3EJAJEDAgUCYkQFAXMEAmNyCQCRAwIFAmJEBQF0BAJiRQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQFxBAJiRgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQFyBAJnbAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiTwkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiTwIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmdtCQECYm8BBQJnagQCZ24JAQJibwEFAmdrBAJnbwMJAAACBQJnbAAACQDMCAIFAWMJAMwIAgUBYwkAzAgCBQFjBQNuaWwJAQJiQgMFAmdtBQJnbgUCZ2wEAmJZAAAEAmdwCQEBQQIJAJEDAgUCZ28AAQUBYQQCZ3EJAQFBAgkAkQMCBQJnbwACBQFhBAJncgkBBXZhbHVlAQkAmggCBQJhegkBAmFqAQkApQgBBQR0aGlzCQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZ20JAMwIAgkApAMBBQJnbgkAzAgCCQCkAwEFAmdsCQDMCAIJAKQDAQUCYlkJAMwIAgkApAMBBQJncAkAzAgCCQCkAwEFAmdxCQDMCAIJAKQDAQUCZ3IFA25pbAUBaAJkQQEgZXZhbHVhdGVQdXRCeUFtb3VudEFzc2V0UkVBRE9OTFkBAmNpBAJiRAkBAmFHAAQCYk8JANkEAQkAkQMCBQJiRAUBbgQCY28JAJEDAgUCYkQFAW8EAmJQCQDZBAEFAmNvBAJjcAkAkQMCBQJiRAUBcAQCYlEJANkEAQUCY3AEAmJFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXEEAmJGCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXIEAmJSCQCRAwIFAmJEBQFtBAJnbAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiTwkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiTwIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmdtCQECYm8BBQJjbwQCZ24JAQJibwEFAmNwBAJiegkBAXcCBQJnbQUCYkUEAmJBCQEBdwIFAmduBQJiRgQCYlgDCQAAAgUCZ2wAAAUBYwkBAmJxAgUCYkEFAmJ6BAJjdQkBAXcCBQJjaQUCYkUEAmN2CQC8AgMFAmN1BQJiWAUBYgQCY2sJAQFBAgUCY3YFAmJGBAJkRwkBAmNnCQIAAKDCHgUCY2kFAmJQBQJjawUCYlECAAYHBAJjRggFAmRHAl8xBAJncwgFAmRHAl8zBAJiVAgFAmRHAl80BAJiVggFAmRHAl81BAJiUwgFAmRHAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjRgkAzAgCCQCkAwEJAQFBAgUCYlgFAWEJAMwIAgkApAMBBQJiVAkAzAgCCQCkAwEFAmJWCQDMCAIJAKQDAQUCYlMJAMwIAgUCYlIJAMwIAgkApAMBBQJjaQkAzAgCCQCkAwEFAmNrBQNuaWwFAWgCZEEBH2V2YWx1YXRlUHV0QnlQcmljZUFzc2V0UkVBRE9OTFkBAmNrBAJiRAkBAmFHAAQCYk8JANkEAQkAkQMCBQJiRAUBbgQCY28JAJEDAgUCYkQFAW8EAmJQCQDZBAEFAmNvBAJjcAkAkQMCBQJiRAUBcAQCYlEJANkEAQUCY3AEAmJFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXEEAmJGCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXIEAmJSCQCRAwIFAmJEBQFtBAJnbAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiTwkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiTwIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmd0CQECYm8BBQJjbwQCZ3UJAQJibwEFAmNwBAJndgkBAXcCBQJndAUCYkUEAmd3CQEBdwIFAmd1BQJiRgQCYlgDCQAAAgUCZ2wAAAUBYwkBAmJxAgUCZ3cFAmd2BAJjdgkBAXcCBQJjawUCYkYEAmN1CQC8AgMFAmN2BQFiBQJiWAQCY2kJAQFBAgUCY3UFAmJFBAJkRwkBAmNnCQIAAKDCHgUCY2kFAmJQBQJjawUCYlECAAYHBAJjRggFAmRHAl8xBAJncwgFAmRHAl8zBAJiVAgFAmRHAl80BAJiVggFAmRHAl81BAJiUwgFAmRHAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjRgkAzAgCCQCkAwEJAQFBAgUCYlgFAWEJAMwIAgkApAMBBQJiVAkAzAgCCQCkAwEFAmJWCQDMCAIJAKQDAQUCYlMJAMwIAgUCYlIJAMwIAgkApAMBBQJjaQkAzAgCCQCkAwEFAmNrBQNuaWwFAWgCZEEBE2V2YWx1YXRlR2V0UkVBRE9OTFkCAmd4Amd5BAJjeAkBAmJLBAIABQJneAUCZ3kFBHRoaXMEAmNkCAUCY3gCXzEEAmNlCAUCY3gCXzIEAmJUCAUCY3gCXzUEAmJWCAUCY3gCXzYEAmJTCAUCY3gCXzcEAmJZCAUCY3gCXzgEAmJSCQENcGFyc2VJbnRWYWx1ZQEIBQJjeAJfOQkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmNkCQDMCAIJAKQDAQUCY2UJAMwIAgkApAMBBQJiVAkAzAgCCQCkAwEFAmJWCQDMCAIJAKQDAQUCYlMJAMwIAgkApgMBBQJiWQkAzAgCCQCkAwEFAmJSBQNuaWwFAWgBAmd6AQJnQQAEAmdCBAJkTAkBAmVPAAMJAAECBQJkTAIKQnl0ZVZlY3RvcgQCZVMFAmRMBQJlUwMJAAECBQJkTAIEVW5pdAgFAmd6D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yBAJkTAUCZ3oDCQABAgUCZEwCBU9yZGVyBAJkaQUCZEwEAmdDCQECYUYABAJnRAkBAmRoAQUCZGkEAmFvCAUCZ0QCXzEEAmFwCAUCZ0QCXzIEAmFxCQD0AwMIBQJkaQlib2R5Qnl0ZXMJAJEDAggFAmRpBnByb29mcwAACAUCZGkPc2VuZGVyUHVibGljS2V5BAJhcgkA9AMDCAUCZGkJYm9keUJ5dGVzCQCRAwIIBQJkaQZwcm9vZnMAAQUCZ0MDAwMFAmFvBQJhcQcFAmFyBwYJAQJhbgQFAmFvBQJhcAUCYXEFAmFyAwkAAQIFAmRMAhRTZXRTY3JpcHRUcmFuc2FjdGlvbgQCZVAFAmRMBAJnRQkA9gMBCQEFdmFsdWUBCAUCZVAGc2NyaXB0BAJnRgkA2wQBCQEFdmFsdWUBCQCdCAIFAmF6CQECYWwABAJnRwkA8QcBBQR0aGlzAwMJAAACBQJnRgUCZ0UJAQIhPQIFAmdHBQJnRQcGCQD0AwMIBQJneglib2R5Qnl0ZXMJAJEDAggFAmd6BnByb29mcwAABQJnQgkA9AMDCAUCZ3oJYm9keUJ5dGVzCQCRAwIIBQJnegZwcm9vZnMAAAUCZ0JnyEZ4", "height": 2413085, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4homFNZJEVav37BawJrV3MJEQnjyd25cTmTcZYvAUqcr Next: 7wXQx9mHF7gVGG8uaTCAQa1ERj3jvRhoVbTPf7MiHuzH Diff:
OldNewDifferences
427427 let cO = bo(aL(aS))
428428 let cP = bo(aL(aT))
429429 let cQ = w(cO, aU)
430- let du = (cO + dc)
430+ let du = (cQ + w(dc, aU))
431431 let cR = w(cP, aV)
432- let dv = (cP + dd)
433- let dw = pow((toBigInt(cO) * toBigInt(cP)), 0, toBigInt(5), 1, 18, DOWN)
434- let dx = pow((toBigInt(du) * toBigInt(dv)), 0, toBigInt(5), 1, 18, DOWN)
432+ let dv = (cR + w(dd, aV))
433+ let dw = pow((cQ * cR), 0, toBigInt(5), 1, 18, DOWN)
434+ let dx = pow((du * dv), 0, toBigInt(5), 1, 18, DOWN)
435435 let dy = makeString([toString(dm), toString(dp), toString(dw), toString(dx)], " ")
436436 $Tuple2(dt, dy)
437437 }
529529 let ec = dN(dQ, aB)
530530 let ed = ec._1
531531 let dO = ec._2
532- let du = (dX + dj)
533- let dv = (dY + dk)
534- let ee = bq(w(dv, aV), w(du, aU))
535- let ef = A(ee, a)
536- let eg = if (dV)
532+ let ee = (dX + dj)
533+ let ef = (dY + dk)
534+ let eg = bq(w(ef, aV), w(ee, aU))
535+ let eh = A(eg, a)
536+ let ei = if (dV)
537537 then dX
538538 else dY
539- let eh = toBigInt(eg)
540- let ei = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
541- let ej = if ((ei > d))
539+ let ej = toBigInt(ei)
540+ let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
541+ let el = if ((ek > d))
542542 then true
543543 else aw("initial deposit requires all coins")
544- if ((ej == ej))
544+ if ((el == el))
545545 then {
546- let ek = toBigInt(ed)
547- let el = max([0, toInt(((ei * (sqrtBigInt((b + ((ek * b) / eh)), 18, 18, DOWN) - b)) / b))])
546+ let em = toBigInt(ed)
547+ let en = max([0, toInt(((ek * (sqrtBigInt((b + ((em * b) / ej)), 18, 18, DOWN) - b)) / b))])
548548 let cM = if (dS)
549549 then nil
550- else [IntegerEntry(J(), ef), IntegerEntry(K(height, lastBlock.timestamp), ef), StringEntry(N(toString(value(O)), toBase58String(value(P))), aZ(ea, eb, el, ef, 0, 0, height, lastBlock.timestamp, 0, 0))]
551- let em = bq(w(dY, aV), w(dX, aU))
552- let en = A(em, a)
553- let eo = {
554- let ep = if (dV)
550+ else [IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh), StringEntry(N(toString(value(O)), toBase58String(value(P))), aZ(ea, eb, en, eh, 0, 0, height, lastBlock.timestamp, 0, 0))]
551+ let eo = bq(w(dY, aV), w(dX, aU))
552+ let ep = A(eo, a)
553+ let eq = {
554+ let er = if (dV)
555555 then $Tuple2(ea, dX)
556556 else $Tuple2(eb, dY)
557- let dI = ep._1
558- let eq = ep._2
559- let er = toInt(fraction(ei, toBigInt((dI / 2)), toBigInt(eq)))
560- fraction((el - er), a, er)
557+ let dI = er._1
558+ let es = er._2
559+ let et = toInt(fraction(ek, toBigInt((dI / 2)), toBigInt(es)))
560+ fraction((en - et), a, et)
561561 }
562- $Tuple5(el, cM, dO, eo, dV)
562+ $Tuple5(en, cM, dO, eq, dV)
563563 }
564564 else throw("Strict value is not equal to itself.")
565565 }
566566
567567
568-func es (et,ed,dR,O,P) = {
568+func eu (ev,ed,dR,O,P) = {
569569 let dS = (P == unit)
570570 let bD = aG()
571571 let bE = parseIntValue(bD[q])
572572 let bF = parseIntValue(bD[r])
573- let eu = [if ((dR == aR))
573+ let ew = [if ((dR == aR))
574574 then true
575575 else aw("invalid lp asset")]
576- if ((eu == eu))
576+ if ((ew == ew))
577577 then {
578- let ev = if ((et == aS))
578+ let ex = if ((ev == aS))
579579 then true
580- else if ((et == aT))
580+ else if ((ev == aT))
581581 then false
582582 else aw("invalid asset")
583- let ew = if (ev)
583+ let ey = if (ex)
584584 then toBigInt(bo(aL(aS)))
585585 else toBigInt(bo(aL(aT)))
586- let ex = if (ev)
586+ let ez = if (ex)
587587 then bE
588588 else bF
589- let ey = bo(aL(aS))
590- let ez = bo(aL(aT))
591- let eA = if (ev)
592- then ey
593- else ez
594- let eB = toBigInt(eA)
595- let ei = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
596- let eC = toBigInt(ed)
597- let eD = max([0, toInt(((ew * (b - pow((b - ((eC * b) / ei)), 18, f, 0, 18, DOWN))) / b))])
598- let eE = dN(eD, aD)
599- let eF = eE._1
600- let dO = eE._2
601- let eG = if (ev)
602- then $Tuple4(eF, 0, (ey - eD), ez)
603- else $Tuple4(0, eF, ey, (ez - eD))
589+ let eA = bo(aL(aS))
590+ let eB = bo(aL(aT))
591+ let eC = if (ex)
592+ then eA
593+ else eB
594+ let eD = toBigInt(eC)
595+ let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
596+ let eE = toBigInt(ed)
597+ let eF = max([0, toInt(((ey * (b - pow((b - ((eE * b) / ek)), 18, f, 0, 18, DOWN))) / b))])
598+ let eG = dN(eF, aD)
604599 let eH = eG._1
605- let eI = eG._2
606- let eJ = eG._3
607- let eK = eG._4
608- let ee = bq(w(eK, aV), w(eJ, aU))
609- let ef = A(ee, a)
600+ let dO = eG._2
601+ let eI = if (ex)
602+ then $Tuple4(eH, 0, (eA - eF), eB)
603+ else $Tuple4(0, eH, eA, (eB - eF))
604+ let eJ = eI._1
605+ let eK = eI._2
606+ let eL = eI._3
607+ let eM = eI._4
608+ let eg = bq(w(eM, aV), w(eL, aU))
609+ let eh = A(eg, a)
610610 let cM = if (dS)
611611 then nil
612- else [StringEntry(Q(toString(value(O)), toBase58String(value(P))), bk(eH, eI, ed, ef, height, lastBlock.timestamp)), IntegerEntry(J(), ef), IntegerEntry(K(height, lastBlock.timestamp), ef)]
613- let em = bq(w(ez, aV), w(ey, aU))
614- let en = A(em, a)
615- let eo = {
616- let eL = (toInt(fraction(ew, eC, ei)) * 2)
617- fraction((eF - eL), a, eL)
612+ else [StringEntry(Q(toString(value(O)), toBase58String(value(P))), bk(eJ, eK, ed, eh, height, lastBlock.timestamp)), IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh)]
613+ let eo = bq(w(eB, aV), w(eA, aU))
614+ let ep = A(eo, a)
615+ let eq = {
616+ let eN = (toInt(fraction(ey, eE, ek)) * 2)
617+ fraction((eH - eN), a, eN)
618618 }
619- $Tuple5(eF, cM, dO, eo, ev)
619+ $Tuple5(eH, cM, dO, eq, ex)
620620 }
621621 else throw("Strict value is not equal to itself.")
622622 }
623623
624624
625-func eM () = {
625+func eO () = {
626626 let dL = getString(H())
627627 if ($isInstanceOf(dL, "String"))
628628 then {
629- let eN = dL
630- fromBase58String(eN)
629+ let eP = dL
630+ fromBase58String(eP)
631631 }
632632 else if ($isInstanceOf(dL, "Unit"))
633633 then unit
635635 }
636636
637637
638-func eO () = {
638+func eQ () = {
639639 let dL = getString(I())
640640 if ($isInstanceOf(dL, "String"))
641641 then {
642- let eN = dL
643- fromBase58String(eN)
642+ let eP = dL
643+ fromBase58String(eP)
644644 }
645645 else if ($isInstanceOf(dL, "Unit"))
646646 then unit
648648 }
649649
650650
651-func eP (dA) = {
652- let dL = eM()
651+func eR (dA) = {
652+ let dL = eO()
653653 if ($isInstanceOf(dL, "ByteVector"))
654654 then {
655- let eQ = dL
656- (dA.callerPublicKey == eQ)
655+ let eS = dL
656+ (dA.callerPublicKey == eS)
657657 }
658658 else if ($isInstanceOf(dL, "Unit"))
659659 then (dA.caller == this)
661661 }
662662
663663
664-func eR (dA) = {
665- let eS = throw("Permission denied")
666- let dL = eM()
664+func eT (dA) = {
665+ let eU = throw("Permission denied")
666+ let dL = eO()
667667 if ($isInstanceOf(dL, "ByteVector"))
668668 then {
669- let eQ = dL
670- if ((dA.callerPublicKey == eQ))
669+ let eS = dL
670+ if ((dA.callerPublicKey == eS))
671671 then true
672- else eS
672+ else eU
673673 }
674674 else if ($isInstanceOf(dL, "Unit"))
675675 then if ((dA.caller == this))
676676 then true
677- else eS
677+ else eU
678678 else throw("Match error")
679679 }
680680
681681
682682 @Callable(dA)
683-func setManager (eT) = {
684- let eU = eR(dA)
685- if ((eU == eU))
683+func setManager (eV) = {
684+ let eW = eT(dA)
685+ if ((eW == eW))
686686 then {
687- let eV = fromBase58String(eT)
688- if ((eV == eV))
689- then [StringEntry(I(), eT)]
687+ let eX = fromBase58String(eV)
688+ if ((eX == eX))
689+ then [StringEntry(I(), eV)]
690690 else throw("Strict value is not equal to itself.")
691691 }
692692 else throw("Strict value is not equal to itself.")
696696
697697 @Callable(dA)
698698 func confirmManager () = {
699- let eW = eO()
700- let eX = if (isDefined(eW))
699+ let eY = eQ()
700+ let eZ = if (isDefined(eY))
701701 then true
702702 else throw("No pending manager")
703- if ((eX == eX))
703+ if ((eZ == eZ))
704704 then {
705- let eY = if ((dA.callerPublicKey == value(eW)))
705+ let fa = if ((dA.callerPublicKey == value(eY)))
706706 then true
707707 else throw("You are not pending manager")
708- if ((eY == eY))
709- then [StringEntry(H(), toBase58String(value(eW))), DeleteEntry(I())]
708+ if ((fa == fa))
709+ then [StringEntry(H(), toBase58String(value(eY))), DeleteEntry(I())]
710710 else throw("Strict value is not equal to itself.")
711711 }
712712 else throw("Strict value is not equal to itself.")
715715
716716
717717 @Callable(dA)
718-func put (ch,eZ) = if ((0 > ch))
718+func put (ch,fb) = if ((0 > ch))
719719 then throw("Invalid slippageTolerance passed")
720720 else {
721721 let dG = dD(dA, ch, true)
724724 let cf = dG._9
725725 let cK = dG._10
726726 let cL = dG._11
727- let fa = dG._12
728- let fb = dG._13
727+ let fc = dG._12
728+ let fd = dG._13
729729 let dE = toBigInt(value(dA.payments[0]).amount)
730730 let dF = toBigInt(value(dA.payments[1]).amount)
731731 let da = cT(dE, dF, toBigInt(0))
745745 }
746746 if ((dK == dK))
747747 then {
748- let fc = if ((cK > 0))
749- then invoke(aY, "put", nil, [AttachedPayment(fa, cK)])
748+ let fe = if ((cK > 0))
749+ then invoke(aY, "put", nil, [AttachedPayment(fc, cK)])
750750 else nil
751- if ((fc == fc))
751+ if ((fe == fe))
752752 then {
753- let fd = if ((cL > 0))
754- then invoke(aY, "put", nil, [AttachedPayment(fb, cL)])
753+ let ff = if ((cL > 0))
754+ then invoke(aY, "put", nil, [AttachedPayment(fd, cL)])
755755 else nil
756- if ((fd == fd))
756+ if ((ff == ff))
757757 then {
758- let fe = if (eZ)
758+ let fg = if (fb)
759759 then {
760- let ff = invoke(aX, "stake", nil, [AttachedPayment(bO, cJ)])
761- if ((ff == ff))
760+ let fh = invoke(aX, "stake", nil, [AttachedPayment(bO, cJ)])
761+ if ((fh == fh))
762762 then nil
763763 else throw("Strict value is not equal to itself.")
764764 }
765765 else [ScriptTransfer(dA.caller, cJ, bO)]
766- let fg = db(0, 0, 0)
767- if ((fg == fg))
766+ let fi = db(0, 0, 0)
767+ if ((fi == fi))
768768 then {
769- let cS = fg._2
770- let fh = fg._1
771- let fi = df(da, cS)
772- if ((fi == fi))
773- then ((cf ++ fe) ++ fh)
769+ let cS = fi._2
770+ let fj = fi._1
771+ let fk = df(da, cS)
772+ if ((fk == fk))
773+ then ((cf ++ fg) ++ fj)
774774 else throw("Strict value is not equal to itself.")
775775 }
776776 else throw("Strict value is not equal to itself.")
789789
790790
791791 @Callable(dA)
792-func putForFree (fj) = if ((0 > fj))
792+func putForFree (fl) = if ((0 > fl))
793793 then throw("Invalid value passed")
794794 else {
795- let dG = dD(dA, fj, false)
795+ let dG = dD(dA, fl, false)
796796 let cf = dG._9
797797 let dE = toBigInt(value(dA.payments[0]).amount)
798798 let dF = toBigInt(value(dA.payments[1]).amount)
799799 let da = cT(dE, dF, toBigInt(0))
800800 if ((da == da))
801801 then {
802- let fk = db(0, 0, 0)
803- let fh = fk._1
804- let cS = fk._2
805- let fi = df(da, cS)
806- if ((fi == fi))
807- then (cf ++ fh)
802+ let fm = db(0, 0, 0)
803+ let fj = fm._1
804+ let cS = fm._2
805+ let fk = df(da, cS)
806+ if ((fk == fk))
807+ then (cf ++ fj)
808808 else throw("Strict value is not equal to itself.")
809809 }
810810 else throw("Strict value is not equal to itself.")
813813
814814
815815 @Callable(dA)
816-func putOneTkn (fl,fm) = {
817- let fn = {
816+func putOneTkn (fn,fo) = {
817+ let fp = {
818818 let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
819819 if ($isInstanceOf(aC, "Boolean"))
820820 then aC
821821 else throw(($getType(aC) + " couldn't be cast to Boolean"))
822822 }
823- let fo = if (if (if (aE())
823+ let fq = if (if (if (aE())
824824 then true
825825 else (aQ == i))
826826 then true
827827 else (aQ == k))
828828 then true
829- else fn
830- let eu = [if (if (!(fo))
829+ else fp
830+ let ew = [if (if (!(fq))
831831 then true
832- else eP(dA))
832+ else eR(dA))
833833 then true
834834 else aw("put operation is blocked by admin"), if ((size(dA.payments) == 1))
835835 then true
836836 else aw("exactly 1 payment are expected")]
837- if ((eu == eu))
837+ if ((ew == ew))
838838 then {
839- let fp = dA.payments[0]
840- let dR = fp.assetId
841- let dQ = fp.amount
839+ let fr = dA.payments[0]
840+ let dR = fr.assetId
841+ let dQ = fr.amount
842842 let da = if ((dR == aS))
843843 then cT(toBigInt(dQ), toBigInt(0), toBigInt(0))
844844 else if ((dR == aT))
848848 then {
849849 let O = dA.caller
850850 let P = dA.transactionId
851- let fq = dP(dQ, dR, O, P)
852- if ((fq == fq))
851+ let fs = dP(dQ, dR, O, P)
852+ if ((fs == fs))
853853 then {
854- let dV = fq._5
855- let fr = fq._4
856- let dO = fq._3
857- let cM = fq._2
858- let fs = fq._1
859- let ft = if (if ((fl > 0))
860- then (fl > fs)
854+ let dV = fs._5
855+ let ft = fs._4
856+ let dO = fs._3
857+ let cM = fs._2
858+ let fu = fs._1
859+ let fv = if (if ((fn > 0))
860+ then (fn > fu)
861861 else false)
862- then aw(makeString(["amount to receive is less than ", toString(fl)], ""))
863- else fs
864- let dJ = dH(ft)
862+ then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
863+ else fu
864+ let dJ = dH(fv)
865865 if ((dJ == dJ))
866866 then {
867- let fe = if (fm)
867+ let fg = if (fo)
868868 then {
869- let fu = invoke(aX, "stake", nil, [AttachedPayment(aR, ft)])
870- if ((fu == fu))
869+ let fw = invoke(aX, "stake", nil, [AttachedPayment(aR, fv)])
870+ if ((fw == fw))
871871 then nil
872872 else throw("Strict value is not equal to itself.")
873873 }
874- else [ScriptTransfer(dA.caller, ft, aR)]
875- let fv = if ((dO > 0))
874+ else [ScriptTransfer(dA.caller, fv, aR)]
875+ let fx = if ((dO > 0))
876876 then [ScriptTransfer(aA, dO, dR)]
877877 else nil
878- let fw = if ((this == aA))
878+ let fy = if ((this == aA))
879879 then $Tuple2(0, 0)
880880 else if (dV)
881881 then $Tuple2(-(dO), 0)
882882 else $Tuple2(0, -(dO))
883- let dc = fw._1
884- let dd = fw._2
885- let fx = db(dc, dd, 0)
886- let fh = fx._1
887- let cS = fx._2
883+ let dc = fy._1
884+ let dd = fy._2
885+ let fz = db(dc, dd, 0)
886+ let fj = fz._1
887+ let cS = fz._2
888888 let dm = value(getString(W))
889- let fi = df(da, cS)
890- if ((fi == fi))
891- then $Tuple2((((cM ++ fe) ++ fv) ++ fh), ft)
889+ let fk = df(da, cS)
890+ if ((fk == fk))
891+ then $Tuple2((((cM ++ fg) ++ fx) ++ fj), fv)
892892 else throw("Strict value is not equal to itself.")
893893 }
894894 else throw("Strict value is not equal to itself.")
904904
905905 @Callable(dA)
906906 func putOneTknREADONLY (dR,dQ) = {
907- let fy = dP(dQ, aJ(dR), unit, unit)
908- let fs = fy._1
909- let cM = fy._2
910- let dO = fy._3
911- let fr = fy._4
912- let dV = fy._5
913- $Tuple2(nil, $Tuple3(fs, dO, fr))
907+ let fA = dP(dQ, aJ(dR), unit, unit)
908+ let fu = fA._1
909+ let cM = fA._2
910+ let dO = fA._3
911+ let ft = fA._4
912+ let dV = fA._5
913+ $Tuple2(nil, $Tuple3(fu, dO, ft))
914914 }
915915
916916
917917
918918 @Callable(dA)
919-func getOneTkn (fz,fl) = {
920- let fn = {
919+func getOneTkn (fB,fn) = {
920+ let fp = {
921921 let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
922922 if ($isInstanceOf(aC, "Boolean"))
923923 then aC
924924 else throw(($getType(aC) + " couldn't be cast to Boolean"))
925925 }
926- let fA = if (if (aE())
926+ let fC = if (if (aE())
927927 then true
928928 else (aQ == k))
929929 then true
930- else fn
931- let eu = [if (if (!(fA))
930+ else fp
931+ let ew = [if (if (!(fC))
932932 then true
933- else eP(dA))
933+ else eR(dA))
934934 then true
935935 else aw("get operation is blocked by admin"), if ((size(dA.payments) == 1))
936936 then true
937937 else aw("exactly 1 payment are expected")]
938- if ((eu == eu))
938+ if ((ew == ew))
939939 then {
940- let et = aJ(fz)
941- let fp = dA.payments[0]
942- let dR = fp.assetId
943- let ed = fp.amount
940+ let ev = aJ(fB)
941+ let fr = dA.payments[0]
942+ let dR = fr.assetId
943+ let ed = fr.amount
944944 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
945945 if ((da == da))
946946 then {
947947 let O = dA.caller
948948 let P = dA.transactionId
949- let fB = es(et, ed, dR, O, P)
950- if ((fB == fB))
949+ let fD = eu(ev, ed, dR, O, P)
950+ if ((fD == fD))
951951 then {
952- let ev = fB._5
953- let fr = fB._4
954- let dO = fB._3
955- let cM = fB._2
956- let fC = fB._1
957- let dI = if (if ((fl > 0))
958- then (fl > fC)
952+ let ex = fD._5
953+ let ft = fD._4
954+ let dO = fD._3
955+ let cM = fD._2
956+ let fE = fD._1
957+ let dI = if (if ((fn > 0))
958+ then (fn > fE)
959959 else false)
960- then aw(makeString(["amount to receive is less than ", toString(fl)], ""))
961- else fC
962- let fD = invoke(az, "burn", [ed], [AttachedPayment(dR, ed)])
963- if ((fD == fD))
960+ then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
961+ else fE
962+ let fF = invoke(az, "burn", [ed], [AttachedPayment(dR, ed)])
963+ if ((fF == fF))
964964 then {
965- let fE = [ScriptTransfer(O, dI, et)]
966- let fv = if ((dO > 0))
967- then [ScriptTransfer(aA, dO, et)]
965+ let fG = [ScriptTransfer(O, dI, ev)]
966+ let fx = if ((dO > 0))
967+ then [ScriptTransfer(aA, dO, ev)]
968968 else nil
969- let fF = {
970- let fG = if ((this == aA))
969+ let fH = {
970+ let fI = if ((this == aA))
971971 then 0
972972 else dO
973- if (ev)
974- then $Tuple2(-((dI + fG)), 0)
975- else $Tuple2(0, -((dI + fG)))
973+ if (ex)
974+ then $Tuple2(-((dI + fI)), 0)
975+ else $Tuple2(0, -((dI + fI)))
976976 }
977- let dc = fF._1
978- let dd = fF._2
979- let fH = db(dc, dd, 0)
980- let fh = fH._1
981- let cS = fH._2
982- let fi = df(da, cS)
983- if ((fi == fi))
984- then $Tuple2((((cM ++ fE) ++ fv) ++ fh), dI)
977+ let dc = fH._1
978+ let dd = fH._2
979+ let fJ = db(dc, dd, 0)
980+ let fj = fJ._1
981+ let cS = fJ._2
982+ let fk = df(da, cS)
983+ if ((fk == fk))
984+ then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
985985 else throw("Strict value is not equal to itself.")
986986 }
987987 else throw("Strict value is not equal to itself.")
996996
997997
998998 @Callable(dA)
999-func getOneTknREADONLY (et,ed) = {
1000- let fI = es(aJ(et), ed, aR, unit, unit)
1001- let fC = fI._1
1002- let cM = fI._2
1003- let dO = fI._3
1004- let fr = fI._4
1005- let ev = fI._5
1006- $Tuple2(nil, $Tuple3(fC, dO, fr))
999+func getOneTknREADONLY (ev,ed) = {
1000+ let fK = eu(aJ(ev), ed, aR, unit, unit)
1001+ let fE = fK._1
1002+ let cM = fK._2
1003+ let dO = fK._3
1004+ let ft = fK._4
1005+ let ex = fK._5
1006+ $Tuple2(nil, $Tuple3(fE, dO, ft))
10071007 }
10081008
10091009
10101010
10111011 @Callable(dA)
1012-func unstakeAndGetOneTkn (fJ,fz,fl) = {
1013- let fn = {
1012+func unstakeAndGetOneTkn (fL,fB,fn) = {
1013+ let fp = {
10141014 let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
10151015 if ($isInstanceOf(aC, "Boolean"))
10161016 then aC
10171017 else throw(($getType(aC) + " couldn't be cast to Boolean"))
10181018 }
1019- let fA = if (if (aE())
1019+ let fC = if (if (aE())
10201020 then true
10211021 else (aQ == k))
10221022 then true
1023- else fn
1024- let eu = [if (if (!(fA))
1023+ else fp
1024+ let ew = [if (if (!(fC))
10251025 then true
1026- else eP(dA))
1026+ else eR(dA))
10271027 then true
10281028 else aw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
10291029 then true
10301030 else aw("no payments are expected")]
1031- if ((eu == eu))
1031+ if ((ew == ew))
10321032 then {
1033- let et = aJ(fz)
1033+ let ev = aJ(fB)
10341034 let O = dA.caller
10351035 let P = dA.transactionId
10361036 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
10371037 if ((da == da))
10381038 then {
1039- let fK = invoke(aX, "unstake", [toBase58String(aR), fJ], nil)
1040- if ((fK == fK))
1039+ let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1040+ if ((fM == fM))
10411041 then {
1042- let fL = es(et, fJ, aR, O, P)
1043- if ((fL == fL))
1042+ let fN = eu(ev, fL, aR, O, P)
1043+ if ((fN == fN))
10441044 then {
1045- let ev = fL._5
1046- let fr = fL._4
1047- let dO = fL._3
1048- let cM = fL._2
1049- let fC = fL._1
1050- let dI = if (if ((fl > 0))
1051- then (fl > fC)
1045+ let ex = fN._5
1046+ let ft = fN._4
1047+ let dO = fN._3
1048+ let cM = fN._2
1049+ let fE = fN._1
1050+ let dI = if (if ((fn > 0))
1051+ then (fn > fE)
10521052 else false)
1053- then aw(makeString(["amount to receive is less than ", toString(fl)], ""))
1054- else fC
1055- let fD = invoke(az, "burn", [fJ], [AttachedPayment(aR, fJ)])
1056- if ((fD == fD))
1053+ then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
1054+ else fE
1055+ let fF = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1056+ if ((fF == fF))
10571057 then {
1058- let fE = [ScriptTransfer(dA.caller, dI, et)]
1059- let fv = if ((dO > 0))
1060- then [ScriptTransfer(aA, dO, et)]
1058+ let fG = [ScriptTransfer(dA.caller, dI, ev)]
1059+ let fx = if ((dO > 0))
1060+ then [ScriptTransfer(aA, dO, ev)]
10611061 else nil
1062- let fM = {
1063- let fG = if ((this == aA))
1062+ let fO = {
1063+ let fI = if ((this == aA))
10641064 then 0
10651065 else dO
1066- if (ev)
1067- then $Tuple2(-((dI + fG)), 0)
1068- else $Tuple2(0, -((dI + fG)))
1066+ if (ex)
1067+ then $Tuple2(-((dI + fI)), 0)
1068+ else $Tuple2(0, -((dI + fI)))
10691069 }
1070- let dc = fM._1
1071- let dd = fM._2
1072- let fN = db(dc, dd, 0)
1073- let fh = fN._1
1074- let cS = fN._2
1075- let fi = df(da, cS)
1076- if ((fi == fi))
1077- then $Tuple2((((cM ++ fE) ++ fv) ++ fh), dI)
1070+ let dc = fO._1
1071+ let dd = fO._2
1072+ let fP = db(dc, dd, 0)
1073+ let fj = fP._1
1074+ let cS = fP._2
1075+ let fk = df(da, cS)
1076+ if ((fk == fk))
1077+ then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
10781078 else throw("Strict value is not equal to itself.")
10791079 }
10801080 else throw("Strict value is not equal to itself.")
10931093 @Callable(dA)
10941094 func get () = {
10951095 let cx = dz(dA)
1096- let fO = cx._1
1096+ let fQ = cx._1
10971097 let ce = cx._2
10981098 let dC = cx._3
10991099 let bM = cx._4
11011101 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
11021102 if ((da == da))
11031103 then {
1104- let fP = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1105- if ((fP == fP))
1104+ let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1105+ if ((fR == fR))
11061106 then {
1107- let fQ = db(-(fO), -(ce), 0)
1108- let fh = fQ._1
1109- let cS = fQ._2
1110- let fi = df(da, cS)
1111- if ((fi == fi))
1112- then (cf ++ fh)
1107+ let fS = db(-(fQ), -(ce), 0)
1108+ let fj = fS._1
1109+ let cS = fS._2
1110+ let fk = df(da, cS)
1111+ if ((fk == fk))
1112+ then (cf ++ fj)
11131113 else throw("Strict value is not equal to itself.")
11141114 }
11151115 else throw("Strict value is not equal to itself.")
11201120
11211121
11221122 @Callable(dA)
1123-func getNoLess (fR,fS) = {
1123+func getNoLess (fT,fU) = {
11241124 let cx = dz(dA)
11251125 let cd = cx._1
11261126 let ce = cx._2
11271127 let dC = cx._3
11281128 let bM = cx._4
11291129 let cf = cx._5
1130- if ((fR > cd))
1131- then throw(((("noLessThenAmtAsset failed: " + toString(cd)) + " < ") + toString(fR)))
1132- else if ((fS > ce))
1133- then throw(((("noLessThenPriceAsset failed: " + toString(ce)) + " < ") + toString(fS)))
1130+ if ((fT > cd))
1131+ then throw(((("noLessThenAmtAsset failed: " + toString(cd)) + " < ") + toString(fT)))
1132+ else if ((fU > ce))
1133+ then throw(((("noLessThenPriceAsset failed: " + toString(ce)) + " < ") + toString(fU)))
11341134 else {
11351135 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
11361136 if ((da == da))
11371137 then {
1138- let fP = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1139- if ((fP == fP))
1138+ let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1139+ if ((fR == fR))
11401140 then {
1141- let fT = db(-(cd), -(ce), 0)
1142- let fh = fT._1
1143- let cS = fT._2
1144- let fi = df(da, cS)
1145- if ((fi == fi))
1146- then (cf ++ fh)
1141+ let fV = db(-(cd), -(ce), 0)
1142+ let fj = fV._1
1143+ let cS = fV._2
1144+ let fk = df(da, cS)
1145+ if ((fk == fk))
1146+ then (cf ++ fj)
11471147 else throw("Strict value is not equal to itself.")
11481148 }
11491149 else throw("Strict value is not equal to itself.")
11561156
11571157 @Callable(dA)
11581158 func unstakeAndGet (dI) = {
1159- let fU = if ((size(dA.payments) != 0))
1159+ let fW = if ((size(dA.payments) != 0))
11601160 then throw("No payments are expected")
11611161 else true
1162- if ((fU == fU))
1162+ if ((fW == fW))
11631163 then {
11641164 let bD = aG()
11651165 let bO = fromBase58String(bD[n])
11661166 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
11671167 if ((da == da))
11681168 then {
1169- let fK = invoke(aX, "unstake", [toBase58String(bO), dI], nil)
1170- if ((fK == fK))
1169+ let fM = invoke(aX, "unstake", [toBase58String(bO), dI], nil)
1170+ if ((fM == fM))
11711171 then {
11721172 let cx = bK(toBase58String(dA.transactionId), toBase58String(bO), dI, dA.caller)
11731173 let cd = cx._1
11741174 let ce = cx._2
11751175 let bR = parseIntValue(cx._9)
11761176 let cf = cx._10
1177- let fV = if (if (aE())
1177+ let fX = if (if (aE())
11781178 then true
11791179 else (bR == k))
11801180 then throw(("Get operation is blocked by admin. Status = " + toString(bR)))
11811181 else true
1182- if ((fV == fV))
1182+ if ((fX == fX))
11831183 then {
1184- let fP = invoke(az, "burn", [dI], [AttachedPayment(bO, dI)])
1185- if ((fP == fP))
1184+ let fR = invoke(az, "burn", [dI], [AttachedPayment(bO, dI)])
1185+ if ((fR == fR))
11861186 then {
1187- let fW = db(-(cd), -(ce), 0)
1188- let fh = fW._1
1189- let cS = fW._2
1190- let fi = df(da, cS)
1191- if ((fi == fi))
1192- then (cf ++ fh)
1187+ let fY = db(-(cd), -(ce), 0)
1188+ let fj = fY._1
1189+ let cS = fY._2
1190+ let fk = df(da, cS)
1191+ if ((fk == fk))
1192+ then (cf ++ fj)
11931193 else throw("Strict value is not equal to itself.")
11941194 }
11951195 else throw("Strict value is not equal to itself.")
12061206
12071207
12081208 @Callable(dA)
1209-func unstakeAndGetNoLess (fJ,fX,fS) = {
1210- let fA = if (aE())
1209+func unstakeAndGetNoLess (fL,fZ,fU) = {
1210+ let fC = if (aE())
12111211 then true
12121212 else (aQ == k)
1213- let eu = [if (!(fA))
1213+ let ew = [if (!(fC))
12141214 then true
12151215 else throw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
12161216 then true
12171217 else throw("no payments are expected")]
1218- if ((eu == eu))
1218+ if ((ew == ew))
12191219 then {
12201220 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
12211221 if ((da == da))
12221222 then {
1223- let fK = invoke(aX, "unstake", [toBase58String(aR), fJ], nil)
1224- if ((fK == fK))
1223+ let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1224+ if ((fM == fM))
12251225 then {
1226- let cx = bK(toBase58String(dA.transactionId), toBase58String(aR), fJ, dA.caller)
1226+ let cx = bK(toBase58String(dA.transactionId), toBase58String(aR), fL, dA.caller)
12271227 let cd = cx._1
12281228 let ce = cx._2
12291229 let cf = cx._10
1230- let fY = [if ((cd >= fX))
1230+ let ga = [if ((cd >= fZ))
12311231 then true
1232- else throw(makeString(["amount asset amount to receive is less than ", toString(fX)], "")), if ((ce >= fS))
1232+ else throw(makeString(["amount asset amount to receive is less than ", toString(fZ)], "")), if ((ce >= fU))
12331233 then true
1234- else throw(makeString(["price asset amount to receive is less than ", toString(fS)], ""))]
1235- if ((fY == fY))
1234+ else throw(makeString(["price asset amount to receive is less than ", toString(fU)], ""))]
1235+ if ((ga == ga))
12361236 then {
1237- let fP = invoke(az, "burn", [fJ], [AttachedPayment(aR, fJ)])
1238- if ((fP == fP))
1237+ let fR = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1238+ if ((fR == fR))
12391239 then {
1240- let fZ = db(-(cd), -(ce), 0)
1241- let fh = fZ._1
1242- let cS = fZ._2
1243- let fi = df(da, cS)
1244- if ((fi == fi))
1245- then (cf ++ fh)
1240+ let gb = db(-(cd), -(ce), 0)
1241+ let fj = gb._1
1242+ let cS = gb._2
1243+ let fk = df(da, cS)
1244+ if ((fk == fk))
1245+ then (cf ++ fj)
12461246 else throw("Strict value is not equal to itself.")
12471247 }
12481248 else throw("Strict value is not equal to itself.")
12591259
12601260
12611261 @Callable(dA)
1262-func activate (ga,gb) = if ((toString(dA.caller) != toString(az)))
1262+func activate (gc,gd) = if ((toString(dA.caller) != toString(az)))
12631263 then throw("permissions denied")
1264- else $Tuple2([StringEntry(R(), ga), StringEntry(S(), gb)], "success")
1264+ else $Tuple2([StringEntry(R(), gc), StringEntry(S(), gd)], "success")
12651265
12661266
12671267
12681268 @Callable(dA)
12691269 func refreshKLp () = {
1270- let gc = valueOrElse(getInteger(X), 0)
1271- let gd = if (((height - gc) >= aa))
1270+ let ge = valueOrElse(getInteger(X), 0)
1271+ let gf = if (((height - ge) >= aa))
12721272 then unit
12731273 else aw(makeString([toString(aa), " blocks have not passed since the previous call"], ""))
1274- if ((gd == gd))
1274+ if ((gf == gf))
12751275 then {
12761276 let dm = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, W), "0")), ay("invalid kLp"))
1277- let ge = db(0, 0, 0)
1278- let gf = ge._1
1279- let cS = ge._2
1277+ let gg = db(0, 0, 0)
1278+ let gh = gg._1
1279+ let cS = gg._2
12801280 let de = if ((dm != cS))
1281- then gf
1281+ then gh
12821282 else aw("nothing to refresh")
12831283 $Tuple2(de, toString(cS))
12841284 }
12991299
13001300 @Callable(dA)
13011301 func calcPricesWrapperREADONLY (bx,by,bC) = {
1302- let gg = bB(bx, by, bC)
1303- $Tuple2(nil, [toString(gg[0]), toString(gg[1]), toString(gg[2])])
1302+ let gi = bB(bx, by, bC)
1303+ $Tuple2(nil, [toString(gi[0]), toString(gi[1]), toString(gi[2])])
13041304 }
13051305
13061306
13371337 func statsREADONLY () = {
13381338 let bD = aG()
13391339 let bO = fromBase58String(bD[n])
1340- let gh = bD[o]
1341- let gi = bD[p]
1340+ let gj = bD[o]
1341+ let gk = bD[p]
13421342 let cq = bD[s]
13431343 let cr = bD[t]
13441344 let bE = parseIntValue(bD[q])
13451345 let bF = parseIntValue(bD[r])
1346- let gj = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1347- let gk = bo(gh)
1348- let gl = bo(gi)
1349- let gm = if ((gj == 0))
1346+ let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1347+ let gm = bo(gj)
1348+ let gn = bo(gk)
1349+ let go = if ((gl == 0))
13501350 then [c, c, c]
1351- else bB(gk, gl, gj)
1351+ else bB(gm, gn, gl)
13521352 let bY = 0
1353- let gn = A(gm[1], a)
1354- let go = A(gm[2], a)
1355- let gp = value(getInteger(az, aj(toString(this))))
1356- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gk), toString(gl), toString(gj), toString(bY), toString(gn), toString(go), toString(gp)], h))
1353+ let gp = A(go[1], a)
1354+ let gq = A(go[2], a)
1355+ let gr = value(getInteger(az, aj(toString(this))))
1356+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gm), toString(gn), toString(gl), toString(bY), toString(gp), toString(gq), toString(gr)], h))
13571357 }
13581358
13591359
13691369 let bE = parseIntValue(bD[q])
13701370 let bF = parseIntValue(bD[r])
13711371 let bR = bD[m]
1372- let gj = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1373- let gk = bo(co)
1374- let gl = bo(cp)
1375- let bz = w(gk, bE)
1376- let bA = w(gl, bF)
1377- let bX = if ((gj == 0))
1372+ let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1373+ let gm = bo(co)
1374+ let gn = bo(cp)
1375+ let bz = w(gm, bE)
1376+ let bA = w(gn, bF)
1377+ let bX = if ((gl == 0))
13781378 then c
13791379 else bq(bA, bz)
13801380 let cu = w(ci, bE)
13821382 let ck = A(cv, bF)
13831383 let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
13841384 let cF = dG._1
1385- let gq = dG._3
1385+ let gs = dG._3
13861386 let bT = dG._4
13871387 let bV = dG._5
13881388 let bS = dG._6
14021402 let bE = parseIntValue(bD[q])
14031403 let bF = parseIntValue(bD[r])
14041404 let bR = bD[m]
1405- let gj = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1406- let gr = bo(co)
1407- let gs = bo(cp)
1408- let gt = w(gr, bE)
1409- let gu = w(gs, bF)
1410- let bX = if ((gj == 0))
1405+ let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1406+ let gt = bo(co)
1407+ let gu = bo(cp)
1408+ let gv = w(gt, bE)
1409+ let gw = w(gu, bF)
1410+ let bX = if ((gl == 0))
14111411 then c
1412- else bq(gu, gt)
1412+ else bq(gw, gv)
14131413 let cv = w(ck, bF)
14141414 let cu = fraction(cv, b, bX)
14151415 let ci = A(cu, bE)
14161416 let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
14171417 let cF = dG._1
1418- let gq = dG._3
1418+ let gs = dG._3
14191419 let bT = dG._4
14201420 let bV = dG._5
14211421 let bS = dG._6
14251425
14261426
14271427 @Callable(dA)
1428-func evaluateGetREADONLY (gv,gw) = {
1429- let cx = bK("", gv, gw, this)
1428+func evaluateGetREADONLY (gx,gy) = {
1429+ let cx = bK("", gx, gy, this)
14301430 let cd = cx._1
14311431 let ce = cx._2
14321432 let bT = cx._5
14381438 }
14391439
14401440
1441-@Verifier(gx)
1442-func gy () = {
1443- let gz = {
1444- let dL = eM()
1441+@Verifier(gz)
1442+func gA () = {
1443+ let gB = {
1444+ let dL = eO()
14451445 if ($isInstanceOf(dL, "ByteVector"))
14461446 then {
1447- let eQ = dL
1448- eQ
1447+ let eS = dL
1448+ eS
14491449 }
14501450 else if ($isInstanceOf(dL, "Unit"))
1451- then gx.senderPublicKey
1451+ then gz.senderPublicKey
14521452 else throw("Match error")
14531453 }
1454- let dL = gx
1454+ let dL = gz
14551455 if ($isInstanceOf(dL, "Order"))
14561456 then {
14571457 let di = dL
1458- let gA = aF()
1459- let gB = dh(di)
1460- let ao = gB._1
1461- let ap = gB._2
1458+ let gC = aF()
1459+ let gD = dh(di)
1460+ let ao = gD._1
1461+ let ap = gD._2
14621462 let aq = sigVerify(di.bodyBytes, di.proofs[0], di.senderPublicKey)
1463- let ar = sigVerify(di.bodyBytes, di.proofs[1], gA)
1463+ let ar = sigVerify(di.bodyBytes, di.proofs[1], gC)
14641464 if (if (if (ao)
14651465 then aq
14661466 else false)
14711471 }
14721472 else if ($isInstanceOf(dL, "SetScriptTransaction"))
14731473 then {
1474- let eN = dL
1475- let gC = blake2b256(value(eN.script))
1476- let gD = fromBase64String(value(getString(az, al())))
1477- let gE = scriptHash(this)
1478- if (if ((gD == gC))
1479- then (gE != gC)
1474+ let eP = dL
1475+ let gE = blake2b256(value(eP.script))
1476+ let gF = fromBase64String(value(getString(az, al())))
1477+ let gG = scriptHash(this)
1478+ if (if ((gF == gE))
1479+ then (gG != gE)
14801480 else false)
14811481 then true
1482- else sigVerify(gx.bodyBytes, gx.proofs[0], gz)
1482+ else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
14831483 }
1484- else sigVerify(gx.bodyBytes, gx.proofs[0], gz)
1484+ else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
14851485 }
14861486
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = toBigInt(1000000000000000000)
77
88 let c = toBigInt(0)
99
1010 let d = toBigInt(0)
1111
1212 let e = toBigInt(1)
1313
1414 let f = toBigInt(2)
1515
1616 let g = "WAVES"
1717
1818 let h = "__"
1919
2020 let i = 2
2121
2222 let j = 3
2323
2424 let k = 4
2525
2626 let l = 1
2727
2828 let m = 2
2929
3030 let n = 3
3131
3232 let o = 4
3333
3434 let p = 5
3535
3636 let q = 6
3737
3838 let r = 7
3939
4040 let s = 8
4141
4242 let t = 9
4343
4444 let u = 1
4545
4646 let v = 7
4747
4848 func w (x,y) = fraction(toBigInt(x), b, toBigInt(y))
4949
5050
5151 func z (x,y) = fraction(x, b, y)
5252
5353
5454 func A (B,C) = toInt(fraction(B, toBigInt(C), b))
5555
5656
5757 func D (B,C,E) = toInt(fraction(B, toBigInt(C), b, E))
5858
5959
6060 func F (B) = if ((c > B))
6161 then -(B)
6262 else B
6363
6464
6565 func G () = "%s__factoryContract"
6666
6767
6868 func H () = "%s__managerPublicKey"
6969
7070
7171 func I () = "%s__pendingManagerPublicKey"
7272
7373
7474 func J () = "%s%s__price__last"
7575
7676
7777 func K (L,M) = makeString(["%s%s%d%d__price__history", toString(L), toString(M)], h)
7878
7979
8080 func N (O,P) = ((("%s%s%s__P__" + O) + "__") + P)
8181
8282
8383 func Q (O,P) = ((("%s%s%s__G__" + O) + "__") + P)
8484
8585
8686 func R () = "%s__amountAsset"
8787
8888
8989 func S () = "%s__priceAsset"
9090
9191
9292 let T = "%s__fee"
9393
9494 let U = fraction(10, a, 10000)
9595
9696 let V = valueOrElse(getInteger(this, T), U)
9797
9898 let W = makeString(["%s", "kLp"], h)
9999
100100 let X = makeString(["%s", "kLpRefreshedHeight"], h)
101101
102102 let Y = makeString(["%s", "refreshKLpDelay"], h)
103103
104104 let Z = 30
105105
106106 let aa = valueOrElse(getInteger(this, Y), Z)
107107
108108 func ab () = "%s__factoryConfig"
109109
110110
111111 func ac () = "%s%s__matcher__publicKey"
112112
113113
114114 func ad (ae,af) = (((("%d%d%s__" + ae) + "__") + af) + "__config")
115115
116116
117117 func ag (ah) = ("%s%s%s__mappings__baseAsset2internalId__" + ah)
118118
119119
120120 func ai () = "%s__shutdown"
121121
122122
123123 func aj (ak) = ("%s%s__poolWeight__" + ak)
124124
125125
126126 func al () = "%s__allowedLpScriptHash"
127127
128128
129129 let am = "%s__feeCollectorAddress"
130130
131131 func an (ao,ap,aq,ar) = throw((((((((("order validation failed: orderValid=" + toString(ao)) + " (") + ap) + ")") + " senderValid=") + toString(aq)) + " matcherValid=") + toString(ar)))
132132
133133
134134 func as (at,au) = valueOrErrorMessage(getString(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
135135
136136
137137 func av (at,au) = valueOrErrorMessage(getInteger(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
138138
139139
140140 func aw (ax) = throw(makeString(["lp.ride:", ax], " "))
141141
142142
143143 func ay (ax) = makeString(["lp.ride:", ax], " ")
144144
145145
146146 let az = addressFromStringValue(as(this, G()))
147147
148148 let aA = addressFromStringValue(as(az, am))
149149
150150 let aB = {
151151 let aC = invoke(az, "getInFeeREADONLY", [toString(this)], nil)
152152 if ($isInstanceOf(aC, "Int"))
153153 then aC
154154 else throw(($getType(aC) + " couldn't be cast to Int"))
155155 }
156156
157157 let aD = {
158158 let aC = invoke(az, "getOutFeeREADONLY", [toString(this)], nil)
159159 if ($isInstanceOf(aC, "Int"))
160160 then aC
161161 else throw(($getType(aC) + " couldn't be cast to Int"))
162162 }
163163
164164 func aE () = valueOrElse(getBoolean(az, ai()), false)
165165
166166
167167 func aF () = fromBase58String(as(az, ac()))
168168
169169
170170 func aG () = {
171171 let aH = as(this, R())
172172 let aI = as(this, S())
173173 let af = av(az, ag(aI))
174174 let ae = av(az, ag(aH))
175175 split(as(az, ad(toString(ae), toString(af))), h)
176176 }
177177
178178
179179 func aJ (aK) = if ((aK == g))
180180 then unit
181181 else fromBase58String(aK)
182182
183183
184184 func aL (aK) = if ((aK == unit))
185185 then g
186186 else toBase58String(value(aK))
187187
188188
189189 func aM (aN) = $Tuple7(addressFromStringValue(aN[l]), parseIntValue(aN[m]), fromBase58String(aN[n]), aJ(aN[o]), aJ(aN[p]), parseIntValue(aN[q]), parseIntValue(aN[r]))
190190
191191
192192 let aO = aM(aG())
193193
194194 let aP = aO
195195
196196 let aQ = aP._2
197197
198198 let aR = aP._3
199199
200200 let aS = aP._4
201201
202202 let aT = aP._5
203203
204204 let aU = aP._6
205205
206206 let aV = aP._7
207207
208208 func aW () = split(as(az, ab()), h)
209209
210210
211211 let aX = valueOrErrorMessage(addressFromString(aW()[u]), "incorrect staking address")
212212
213213 let aY = valueOrErrorMessage(addressFromString(aW()[v]), "incorrect staking address")
214214
215215 func aZ (ba,bb,bc,bd,be,bf,bg,bh,bi,bj) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(ba), toString(bb), toString(bc), toString(bd), toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj)], h)
216216
217217
218218 func bk (bl,bm,bn,bd,bg,bh) = makeString(["%d%d%d%d%d%d", toString(bl), toString(bm), toString(bn), toString(bd), toString(bg), toString(bh)], h)
219219
220220
221221 func bo (bp) = if ((bp == "WAVES"))
222222 then wavesBalance(this).available
223223 else assetBalance(this, fromBase58String(bp))
224224
225225
226226 func bq (br,bs) = fraction(br, b, bs)
227227
228228
229229 func bt (br,bs,E) = fraction(br, b, bs, E)
230230
231231
232232 func bu (bv,bw,bx,by) = {
233233 let bz = w(bx, bv)
234234 let bA = w(by, bw)
235235 bq(bA, bz)
236236 }
237237
238238
239239 func bB (bx,by,bC) = {
240240 let bD = aG()
241241 let bE = parseIntValue(bD[q])
242242 let bF = parseIntValue(bD[r])
243243 let bG = bu(bE, bF, bx, by)
244244 let bs = w(bx, bE)
245245 let br = w(by, bF)
246246 let bH = w(bC, a)
247247 let bI = bq(bs, bH)
248248 let bJ = bq(br, bH)
249249 [bG, bI, bJ]
250250 }
251251
252252
253253 func bK (bL,bM,bN,O) = {
254254 let bD = aG()
255255 let bO = bD[n]
256256 let bP = bD[o]
257257 let bQ = bD[p]
258258 let bv = parseIntValue(bD[q])
259259 let bw = parseIntValue(bD[r])
260260 let bR = bD[m]
261261 let bS = valueOrErrorMessage(assetInfo(fromBase58String(bO)), (("Asset " + bO) + " doesn't exist")).quantity
262262 if ((bO != bM))
263263 then throw("Invalid asset passed.")
264264 else {
265265 let bT = bo(bP)
266266 let bU = w(bT, bv)
267267 let bV = bo(bQ)
268268 let bW = w(bV, bw)
269269 let bX = bq(bW, bU)
270270 let bY = A(bX, a)
271271 let bZ = w(bN, a)
272272 let ca = w(bS, a)
273273 let cb = fraction(bU, bZ, ca)
274274 let cc = fraction(bW, bZ, ca)
275275 let cd = D(cb, bv, FLOOR)
276276 let ce = D(cc, bw, FLOOR)
277277 let cf = if ((bL == ""))
278278 then nil
279279 else [ScriptTransfer(O, cd, if ((bP == "WAVES"))
280280 then unit
281281 else fromBase58String(bP)), ScriptTransfer(O, ce, if ((bQ == "WAVES"))
282282 then unit
283283 else fromBase58String(bQ)), StringEntry(Q(toString(O), bL), bk(cd, ce, bN, bY, height, lastBlock.timestamp)), IntegerEntry(J(), bY), IntegerEntry(K(height, lastBlock.timestamp), bY)]
284284 $Tuple10(cd, ce, bP, bQ, bT, bV, bS, bX, bR, cf)
285285 }
286286 }
287287
288288
289289 func cg (bL,ch,ci,cj,ck,cl,O,cm,cn) = {
290290 let bD = aG()
291291 let bO = fromBase58String(bD[n])
292292 let co = bD[o]
293293 let cp = bD[p]
294294 let cq = bD[s]
295295 let cr = bD[t]
296296 let bE = parseIntValue(bD[q])
297297 let bF = parseIntValue(bD[r])
298298 let bR = bD[m]
299299 let bS = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
300300 let cs = toBase58String(valueOrElse(cj, fromBase58String("WAVES")))
301301 let ct = toBase58String(valueOrElse(cl, fromBase58String("WAVES")))
302302 if (if ((co != cs))
303303 then true
304304 else (cp != ct))
305305 then throw("Invalid amt or price asset passed.")
306306 else {
307307 let bT = if (cm)
308308 then bo(co)
309309 else (bo(co) - ci)
310310 let bV = if (cm)
311311 then bo(cp)
312312 else (bo(cp) - ck)
313313 let cu = w(ci, bE)
314314 let cv = w(ck, bF)
315315 let cw = bq(cv, cu)
316316 let bU = w(bT, bE)
317317 let bW = w(bV, bF)
318318 let cx = if ((bS == 0))
319319 then {
320320 let bX = c
321321 let cy = c
322322 let bH = pow((cu * cv), 0, toBigInt(5), 1, 0, DOWN)
323323 $Tuple5(A(bH, a), A(cu, bE), A(cv, bF), bq((bW + cv), (bU + cu)), cy)
324324 }
325325 else {
326326 let bX = bq(bW, bU)
327327 let cy = fraction(F((bX - cw)), b, bX)
328328 let cz = w(ch, a)
329329 if (if ((bX != c))
330330 then (cy > cz)
331331 else false)
332332 then throw(((("Price slippage " + toString(cy)) + " exceeded the passed limit of ") + toString(cz)))
333333 else {
334334 let ca = w(bS, a)
335335 let cA = fraction(cu, bt(bW, bU, CEILING), b, CEILING)
336336 let cB = fraction(cv, b, bt(bW, bU, FLOOR), CEILING)
337337 let cC = if ((cA > cv))
338338 then $Tuple2(cB, cv)
339339 else $Tuple2(cu, cA)
340340 let cD = cC._1
341341 let cE = cC._2
342342 let bH = fraction(ca, cE, bW, FLOOR)
343343 $Tuple5(D(bH, a, FLOOR), D(cD, bE, CEILING), D(cE, bF, CEILING), bX, cy)
344344 }
345345 }
346346 let cF = cx._1
347347 let cG = cx._2
348348 let cH = cx._3
349349 let bY = A(cx._4, a)
350350 let cI = A(cx._5, a)
351351 if ((0 >= cF))
352352 then throw("Invalid calculations. LP calculated is less than zero.")
353353 else {
354354 let cJ = if (!(cn))
355355 then 0
356356 else cF
357357 let cK = (ci - cG)
358358 let cL = (ck - cH)
359359 let cM = [IntegerEntry(J(), bY), IntegerEntry(K(height, lastBlock.timestamp), bY), StringEntry(N(O, bL), aZ(cG, cH, cJ, bY, ch, cI, height, lastBlock.timestamp, cK, cL))]
360360 $Tuple13(cF, cJ, bY, bT, bV, bS, bO, bR, cM, cK, cL, cj, cl)
361361 }
362362 }
363363 }
364364
365365
366366 func cN (cO,cP,bS) = {
367367 let cQ = z(cO, toBigInt(aU))
368368 let cR = z(cP, toBigInt(aV))
369369 let cS = fraction(pow((cQ * cR), 0, toBigInt(5), 1, 18, DOWN), e, bS)
370370 if ((bS == d))
371371 then d
372372 else cS
373373 }
374374
375375
376376 func cT (cU,cV,cW) = {
377377 let cX = (toBigInt(bo(aL(aS))) - cU)
378378 let cY = (toBigInt(bo(aL(aT))) - cV)
379379 let cZ = (toBigInt(value(assetInfo(aR)).quantity) - cW)
380380 let da = cN(cX, cY, cZ)
381381 da
382382 }
383383
384384
385385 func db (dc,dd,cW) = {
386386 let cX = (bo(aL(aS)) + dc)
387387 let cY = (bo(aL(aT)) + dd)
388388 let cZ = (value(assetInfo(aR)).quantity + cW)
389389 let cS = cN(toBigInt(cX), toBigInt(cY), toBigInt(cZ))
390390 let de = [IntegerEntry(X, height), StringEntry(W, toString(cS))]
391391 $Tuple2(de, cS)
392392 }
393393
394394
395395 func df (dg,cS) = if ((cS >= dg))
396396 then true
397397 else aw(makeString(["updated KLp lower than current KLp", toString(dg), toString(cS)], " "))
398398
399399
400400 func dh (di) = {
401401 let dj = di.amount
402402 let dk = fraction(di.amount, di.price, a, FLOOR)
403403 let dl = if ((di.orderType == Buy))
404404 then $Tuple2(dj, -(dk))
405405 else $Tuple2(-(dj), dk)
406406 let dc = dl._1
407407 let dd = dl._2
408408 if (if (if (aE())
409409 then true
410410 else (aQ == j))
411411 then true
412412 else (aQ == k))
413413 then throw("Exchange operations disabled")
414414 else if (if ((di.assetPair.amountAsset != aS))
415415 then true
416416 else (di.assetPair.priceAsset != aT))
417417 then throw("Wrong order assets.")
418418 else {
419419 let dm = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, W), ay("kLp is required"))), ay("invalid kLp"))
420420 let dn = db(dc, dd, 0)
421421 let do = dn._1
422422 let dp = dn._2
423423 let dq = db(0, 0, 0)
424424 let dr = dq._1
425425 let ds = dq._2
426426 let dt = (dp >= dm)
427427 let cO = bo(aL(aS))
428428 let cP = bo(aL(aT))
429429 let cQ = w(cO, aU)
430- let du = (cO + dc)
430+ let du = (cQ + w(dc, aU))
431431 let cR = w(cP, aV)
432- let dv = (cP + dd)
433- let dw = pow((toBigInt(cO) * toBigInt(cP)), 0, toBigInt(5), 1, 18, DOWN)
434- let dx = pow((toBigInt(du) * toBigInt(dv)), 0, toBigInt(5), 1, 18, DOWN)
432+ let dv = (cR + w(dd, aV))
433+ let dw = pow((cQ * cR), 0, toBigInt(5), 1, 18, DOWN)
434+ let dx = pow((du * dv), 0, toBigInt(5), 1, 18, DOWN)
435435 let dy = makeString([toString(dm), toString(dp), toString(dw), toString(dx)], " ")
436436 $Tuple2(dt, dy)
437437 }
438438 }
439439
440440
441441 func dz (dA) = if ((size(dA.payments) != 1))
442442 then throw("exactly 1 payment is expected")
443443 else {
444444 let dB = value(dA.payments[0])
445445 let bM = value(dB.assetId)
446446 let dC = dB.amount
447447 let cx = bK(toBase58String(dA.transactionId), toBase58String(bM), dC, dA.caller)
448448 let cd = cx._1
449449 let ce = cx._2
450450 let bR = parseIntValue(cx._9)
451451 let cf = cx._10
452452 if (if (aE())
453453 then true
454454 else (bR == k))
455455 then throw(("Get operation is blocked by admin. Status = " + toString(bR)))
456456 else $Tuple5(cd, ce, dC, bM, cf)
457457 }
458458
459459
460460 func dD (dA,ch,cn) = if ((size(dA.payments) != 2))
461461 then throw("exactly 2 payments are expected")
462462 else {
463463 let dE = value(dA.payments[0])
464464 let dF = value(dA.payments[1])
465465 let dG = cg(toBase58String(dA.transactionId), ch, dE.amount, dE.assetId, dF.amount, dF.assetId, toString(dA.caller), false, cn)
466466 let bR = parseIntValue(dG._8)
467467 if (if (if (aE())
468468 then true
469469 else (bR == i))
470470 then true
471471 else (bR == k))
472472 then throw(("Put operation is blocked by admin. Status = " + toString(bR)))
473473 else dG
474474 }
475475
476476
477477 func dH (dI) = {
478478 let dJ = invoke(az, "emit", [dI], nil)
479479 if ((dJ == dJ))
480480 then {
481481 let dK = {
482482 let dL = dJ
483483 if ($isInstanceOf(dL, "Address"))
484484 then {
485485 let dM = dL
486486 invoke(dM, "emit", [dI], nil)
487487 }
488488 else unit
489489 }
490490 if ((dK == dK))
491491 then dI
492492 else throw("Strict value is not equal to itself.")
493493 }
494494 else throw("Strict value is not equal to itself.")
495495 }
496496
497497
498498 func dN (dI,V) = {
499499 let dO = if ((V == 0))
500500 then 0
501501 else fraction(dI, V, a)
502502 $Tuple2((dI - dO), dO)
503503 }
504504
505505
506506 func dP (dQ,dR,O,P) = {
507507 let dS = (P == unit)
508508 let dT = bo(aL(aS))
509509 let dU = bo(aL(aT))
510510 let dV = if ((dR == aS))
511511 then true
512512 else if ((dR == aT))
513513 then false
514514 else aw("invalid asset")
515515 let dW = if (dS)
516516 then $Tuple2(dT, dU)
517517 else if (dV)
518518 then $Tuple2((dT - dQ), dU)
519519 else $Tuple2(dT, (dU - dQ))
520520 let dX = dW._1
521521 let dY = dW._2
522522 let dZ = if (dV)
523523 then $Tuple2(dQ, 0)
524524 else $Tuple2(0, dQ)
525525 let ea = dZ._1
526526 let eb = dZ._2
527527 let dj = dN(ea, aB)._1
528528 let dk = dN(eb, aB)._1
529529 let ec = dN(dQ, aB)
530530 let ed = ec._1
531531 let dO = ec._2
532- let du = (dX + dj)
533- let dv = (dY + dk)
534- let ee = bq(w(dv, aV), w(du, aU))
535- let ef = A(ee, a)
536- let eg = if (dV)
532+ let ee = (dX + dj)
533+ let ef = (dY + dk)
534+ let eg = bq(w(ef, aV), w(ee, aU))
535+ let eh = A(eg, a)
536+ let ei = if (dV)
537537 then dX
538538 else dY
539- let eh = toBigInt(eg)
540- let ei = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
541- let ej = if ((ei > d))
539+ let ej = toBigInt(ei)
540+ let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
541+ let el = if ((ek > d))
542542 then true
543543 else aw("initial deposit requires all coins")
544- if ((ej == ej))
544+ if ((el == el))
545545 then {
546- let ek = toBigInt(ed)
547- let el = max([0, toInt(((ei * (sqrtBigInt((b + ((ek * b) / eh)), 18, 18, DOWN) - b)) / b))])
546+ let em = toBigInt(ed)
547+ let en = max([0, toInt(((ek * (sqrtBigInt((b + ((em * b) / ej)), 18, 18, DOWN) - b)) / b))])
548548 let cM = if (dS)
549549 then nil
550- else [IntegerEntry(J(), ef), IntegerEntry(K(height, lastBlock.timestamp), ef), StringEntry(N(toString(value(O)), toBase58String(value(P))), aZ(ea, eb, el, ef, 0, 0, height, lastBlock.timestamp, 0, 0))]
551- let em = bq(w(dY, aV), w(dX, aU))
552- let en = A(em, a)
553- let eo = {
554- let ep = if (dV)
550+ else [IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh), StringEntry(N(toString(value(O)), toBase58String(value(P))), aZ(ea, eb, en, eh, 0, 0, height, lastBlock.timestamp, 0, 0))]
551+ let eo = bq(w(dY, aV), w(dX, aU))
552+ let ep = A(eo, a)
553+ let eq = {
554+ let er = if (dV)
555555 then $Tuple2(ea, dX)
556556 else $Tuple2(eb, dY)
557- let dI = ep._1
558- let eq = ep._2
559- let er = toInt(fraction(ei, toBigInt((dI / 2)), toBigInt(eq)))
560- fraction((el - er), a, er)
557+ let dI = er._1
558+ let es = er._2
559+ let et = toInt(fraction(ek, toBigInt((dI / 2)), toBigInt(es)))
560+ fraction((en - et), a, et)
561561 }
562- $Tuple5(el, cM, dO, eo, dV)
562+ $Tuple5(en, cM, dO, eq, dV)
563563 }
564564 else throw("Strict value is not equal to itself.")
565565 }
566566
567567
568-func es (et,ed,dR,O,P) = {
568+func eu (ev,ed,dR,O,P) = {
569569 let dS = (P == unit)
570570 let bD = aG()
571571 let bE = parseIntValue(bD[q])
572572 let bF = parseIntValue(bD[r])
573- let eu = [if ((dR == aR))
573+ let ew = [if ((dR == aR))
574574 then true
575575 else aw("invalid lp asset")]
576- if ((eu == eu))
576+ if ((ew == ew))
577577 then {
578- let ev = if ((et == aS))
578+ let ex = if ((ev == aS))
579579 then true
580- else if ((et == aT))
580+ else if ((ev == aT))
581581 then false
582582 else aw("invalid asset")
583- let ew = if (ev)
583+ let ey = if (ex)
584584 then toBigInt(bo(aL(aS)))
585585 else toBigInt(bo(aL(aT)))
586- let ex = if (ev)
586+ let ez = if (ex)
587587 then bE
588588 else bF
589- let ey = bo(aL(aS))
590- let ez = bo(aL(aT))
591- let eA = if (ev)
592- then ey
593- else ez
594- let eB = toBigInt(eA)
595- let ei = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
596- let eC = toBigInt(ed)
597- let eD = max([0, toInt(((ew * (b - pow((b - ((eC * b) / ei)), 18, f, 0, 18, DOWN))) / b))])
598- let eE = dN(eD, aD)
599- let eF = eE._1
600- let dO = eE._2
601- let eG = if (ev)
602- then $Tuple4(eF, 0, (ey - eD), ez)
603- else $Tuple4(0, eF, ey, (ez - eD))
589+ let eA = bo(aL(aS))
590+ let eB = bo(aL(aT))
591+ let eC = if (ex)
592+ then eA
593+ else eB
594+ let eD = toBigInt(eC)
595+ let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
596+ let eE = toBigInt(ed)
597+ let eF = max([0, toInt(((ey * (b - pow((b - ((eE * b) / ek)), 18, f, 0, 18, DOWN))) / b))])
598+ let eG = dN(eF, aD)
604599 let eH = eG._1
605- let eI = eG._2
606- let eJ = eG._3
607- let eK = eG._4
608- let ee = bq(w(eK, aV), w(eJ, aU))
609- let ef = A(ee, a)
600+ let dO = eG._2
601+ let eI = if (ex)
602+ then $Tuple4(eH, 0, (eA - eF), eB)
603+ else $Tuple4(0, eH, eA, (eB - eF))
604+ let eJ = eI._1
605+ let eK = eI._2
606+ let eL = eI._3
607+ let eM = eI._4
608+ let eg = bq(w(eM, aV), w(eL, aU))
609+ let eh = A(eg, a)
610610 let cM = if (dS)
611611 then nil
612- else [StringEntry(Q(toString(value(O)), toBase58String(value(P))), bk(eH, eI, ed, ef, height, lastBlock.timestamp)), IntegerEntry(J(), ef), IntegerEntry(K(height, lastBlock.timestamp), ef)]
613- let em = bq(w(ez, aV), w(ey, aU))
614- let en = A(em, a)
615- let eo = {
616- let eL = (toInt(fraction(ew, eC, ei)) * 2)
617- fraction((eF - eL), a, eL)
612+ else [StringEntry(Q(toString(value(O)), toBase58String(value(P))), bk(eJ, eK, ed, eh, height, lastBlock.timestamp)), IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh)]
613+ let eo = bq(w(eB, aV), w(eA, aU))
614+ let ep = A(eo, a)
615+ let eq = {
616+ let eN = (toInt(fraction(ey, eE, ek)) * 2)
617+ fraction((eH - eN), a, eN)
618618 }
619- $Tuple5(eF, cM, dO, eo, ev)
619+ $Tuple5(eH, cM, dO, eq, ex)
620620 }
621621 else throw("Strict value is not equal to itself.")
622622 }
623623
624624
625-func eM () = {
625+func eO () = {
626626 let dL = getString(H())
627627 if ($isInstanceOf(dL, "String"))
628628 then {
629- let eN = dL
630- fromBase58String(eN)
629+ let eP = dL
630+ fromBase58String(eP)
631631 }
632632 else if ($isInstanceOf(dL, "Unit"))
633633 then unit
634634 else throw("Match error")
635635 }
636636
637637
638-func eO () = {
638+func eQ () = {
639639 let dL = getString(I())
640640 if ($isInstanceOf(dL, "String"))
641641 then {
642- let eN = dL
643- fromBase58String(eN)
642+ let eP = dL
643+ fromBase58String(eP)
644644 }
645645 else if ($isInstanceOf(dL, "Unit"))
646646 then unit
647647 else throw("Match error")
648648 }
649649
650650
651-func eP (dA) = {
652- let dL = eM()
651+func eR (dA) = {
652+ let dL = eO()
653653 if ($isInstanceOf(dL, "ByteVector"))
654654 then {
655- let eQ = dL
656- (dA.callerPublicKey == eQ)
655+ let eS = dL
656+ (dA.callerPublicKey == eS)
657657 }
658658 else if ($isInstanceOf(dL, "Unit"))
659659 then (dA.caller == this)
660660 else throw("Match error")
661661 }
662662
663663
664-func eR (dA) = {
665- let eS = throw("Permission denied")
666- let dL = eM()
664+func eT (dA) = {
665+ let eU = throw("Permission denied")
666+ let dL = eO()
667667 if ($isInstanceOf(dL, "ByteVector"))
668668 then {
669- let eQ = dL
670- if ((dA.callerPublicKey == eQ))
669+ let eS = dL
670+ if ((dA.callerPublicKey == eS))
671671 then true
672- else eS
672+ else eU
673673 }
674674 else if ($isInstanceOf(dL, "Unit"))
675675 then if ((dA.caller == this))
676676 then true
677- else eS
677+ else eU
678678 else throw("Match error")
679679 }
680680
681681
682682 @Callable(dA)
683-func setManager (eT) = {
684- let eU = eR(dA)
685- if ((eU == eU))
683+func setManager (eV) = {
684+ let eW = eT(dA)
685+ if ((eW == eW))
686686 then {
687- let eV = fromBase58String(eT)
688- if ((eV == eV))
689- then [StringEntry(I(), eT)]
687+ let eX = fromBase58String(eV)
688+ if ((eX == eX))
689+ then [StringEntry(I(), eV)]
690690 else throw("Strict value is not equal to itself.")
691691 }
692692 else throw("Strict value is not equal to itself.")
693693 }
694694
695695
696696
697697 @Callable(dA)
698698 func confirmManager () = {
699- let eW = eO()
700- let eX = if (isDefined(eW))
699+ let eY = eQ()
700+ let eZ = if (isDefined(eY))
701701 then true
702702 else throw("No pending manager")
703- if ((eX == eX))
703+ if ((eZ == eZ))
704704 then {
705- let eY = if ((dA.callerPublicKey == value(eW)))
705+ let fa = if ((dA.callerPublicKey == value(eY)))
706706 then true
707707 else throw("You are not pending manager")
708- if ((eY == eY))
709- then [StringEntry(H(), toBase58String(value(eW))), DeleteEntry(I())]
708+ if ((fa == fa))
709+ then [StringEntry(H(), toBase58String(value(eY))), DeleteEntry(I())]
710710 else throw("Strict value is not equal to itself.")
711711 }
712712 else throw("Strict value is not equal to itself.")
713713 }
714714
715715
716716
717717 @Callable(dA)
718-func put (ch,eZ) = if ((0 > ch))
718+func put (ch,fb) = if ((0 > ch))
719719 then throw("Invalid slippageTolerance passed")
720720 else {
721721 let dG = dD(dA, ch, true)
722722 let cJ = dG._2
723723 let bO = dG._7
724724 let cf = dG._9
725725 let cK = dG._10
726726 let cL = dG._11
727- let fa = dG._12
728- let fb = dG._13
727+ let fc = dG._12
728+ let fd = dG._13
729729 let dE = toBigInt(value(dA.payments[0]).amount)
730730 let dF = toBigInt(value(dA.payments[1]).amount)
731731 let da = cT(dE, dF, toBigInt(0))
732732 if ((da == da))
733733 then {
734734 let dJ = invoke(az, "emit", [cJ], nil)
735735 if ((dJ == dJ))
736736 then {
737737 let dK = {
738738 let dL = dJ
739739 if ($isInstanceOf(dL, "Address"))
740740 then {
741741 let dM = dL
742742 invoke(dM, "emit", [cJ], nil)
743743 }
744744 else unit
745745 }
746746 if ((dK == dK))
747747 then {
748- let fc = if ((cK > 0))
749- then invoke(aY, "put", nil, [AttachedPayment(fa, cK)])
748+ let fe = if ((cK > 0))
749+ then invoke(aY, "put", nil, [AttachedPayment(fc, cK)])
750750 else nil
751- if ((fc == fc))
751+ if ((fe == fe))
752752 then {
753- let fd = if ((cL > 0))
754- then invoke(aY, "put", nil, [AttachedPayment(fb, cL)])
753+ let ff = if ((cL > 0))
754+ then invoke(aY, "put", nil, [AttachedPayment(fd, cL)])
755755 else nil
756- if ((fd == fd))
756+ if ((ff == ff))
757757 then {
758- let fe = if (eZ)
758+ let fg = if (fb)
759759 then {
760- let ff = invoke(aX, "stake", nil, [AttachedPayment(bO, cJ)])
761- if ((ff == ff))
760+ let fh = invoke(aX, "stake", nil, [AttachedPayment(bO, cJ)])
761+ if ((fh == fh))
762762 then nil
763763 else throw("Strict value is not equal to itself.")
764764 }
765765 else [ScriptTransfer(dA.caller, cJ, bO)]
766- let fg = db(0, 0, 0)
767- if ((fg == fg))
766+ let fi = db(0, 0, 0)
767+ if ((fi == fi))
768768 then {
769- let cS = fg._2
770- let fh = fg._1
771- let fi = df(da, cS)
772- if ((fi == fi))
773- then ((cf ++ fe) ++ fh)
769+ let cS = fi._2
770+ let fj = fi._1
771+ let fk = df(da, cS)
772+ if ((fk == fk))
773+ then ((cf ++ fg) ++ fj)
774774 else throw("Strict value is not equal to itself.")
775775 }
776776 else throw("Strict value is not equal to itself.")
777777 }
778778 else throw("Strict value is not equal to itself.")
779779 }
780780 else throw("Strict value is not equal to itself.")
781781 }
782782 else throw("Strict value is not equal to itself.")
783783 }
784784 else throw("Strict value is not equal to itself.")
785785 }
786786 else throw("Strict value is not equal to itself.")
787787 }
788788
789789
790790
791791 @Callable(dA)
792-func putForFree (fj) = if ((0 > fj))
792+func putForFree (fl) = if ((0 > fl))
793793 then throw("Invalid value passed")
794794 else {
795- let dG = dD(dA, fj, false)
795+ let dG = dD(dA, fl, false)
796796 let cf = dG._9
797797 let dE = toBigInt(value(dA.payments[0]).amount)
798798 let dF = toBigInt(value(dA.payments[1]).amount)
799799 let da = cT(dE, dF, toBigInt(0))
800800 if ((da == da))
801801 then {
802- let fk = db(0, 0, 0)
803- let fh = fk._1
804- let cS = fk._2
805- let fi = df(da, cS)
806- if ((fi == fi))
807- then (cf ++ fh)
802+ let fm = db(0, 0, 0)
803+ let fj = fm._1
804+ let cS = fm._2
805+ let fk = df(da, cS)
806+ if ((fk == fk))
807+ then (cf ++ fj)
808808 else throw("Strict value is not equal to itself.")
809809 }
810810 else throw("Strict value is not equal to itself.")
811811 }
812812
813813
814814
815815 @Callable(dA)
816-func putOneTkn (fl,fm) = {
817- let fn = {
816+func putOneTkn (fn,fo) = {
817+ let fp = {
818818 let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
819819 if ($isInstanceOf(aC, "Boolean"))
820820 then aC
821821 else throw(($getType(aC) + " couldn't be cast to Boolean"))
822822 }
823- let fo = if (if (if (aE())
823+ let fq = if (if (if (aE())
824824 then true
825825 else (aQ == i))
826826 then true
827827 else (aQ == k))
828828 then true
829- else fn
830- let eu = [if (if (!(fo))
829+ else fp
830+ let ew = [if (if (!(fq))
831831 then true
832- else eP(dA))
832+ else eR(dA))
833833 then true
834834 else aw("put operation is blocked by admin"), if ((size(dA.payments) == 1))
835835 then true
836836 else aw("exactly 1 payment are expected")]
837- if ((eu == eu))
837+ if ((ew == ew))
838838 then {
839- let fp = dA.payments[0]
840- let dR = fp.assetId
841- let dQ = fp.amount
839+ let fr = dA.payments[0]
840+ let dR = fr.assetId
841+ let dQ = fr.amount
842842 let da = if ((dR == aS))
843843 then cT(toBigInt(dQ), toBigInt(0), toBigInt(0))
844844 else if ((dR == aT))
845845 then cT(toBigInt(0), toBigInt(dQ), toBigInt(0))
846846 else aw("payment asset is not supported")
847847 if ((da == da))
848848 then {
849849 let O = dA.caller
850850 let P = dA.transactionId
851- let fq = dP(dQ, dR, O, P)
852- if ((fq == fq))
851+ let fs = dP(dQ, dR, O, P)
852+ if ((fs == fs))
853853 then {
854- let dV = fq._5
855- let fr = fq._4
856- let dO = fq._3
857- let cM = fq._2
858- let fs = fq._1
859- let ft = if (if ((fl > 0))
860- then (fl > fs)
854+ let dV = fs._5
855+ let ft = fs._4
856+ let dO = fs._3
857+ let cM = fs._2
858+ let fu = fs._1
859+ let fv = if (if ((fn > 0))
860+ then (fn > fu)
861861 else false)
862- then aw(makeString(["amount to receive is less than ", toString(fl)], ""))
863- else fs
864- let dJ = dH(ft)
862+ then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
863+ else fu
864+ let dJ = dH(fv)
865865 if ((dJ == dJ))
866866 then {
867- let fe = if (fm)
867+ let fg = if (fo)
868868 then {
869- let fu = invoke(aX, "stake", nil, [AttachedPayment(aR, ft)])
870- if ((fu == fu))
869+ let fw = invoke(aX, "stake", nil, [AttachedPayment(aR, fv)])
870+ if ((fw == fw))
871871 then nil
872872 else throw("Strict value is not equal to itself.")
873873 }
874- else [ScriptTransfer(dA.caller, ft, aR)]
875- let fv = if ((dO > 0))
874+ else [ScriptTransfer(dA.caller, fv, aR)]
875+ let fx = if ((dO > 0))
876876 then [ScriptTransfer(aA, dO, dR)]
877877 else nil
878- let fw = if ((this == aA))
878+ let fy = if ((this == aA))
879879 then $Tuple2(0, 0)
880880 else if (dV)
881881 then $Tuple2(-(dO), 0)
882882 else $Tuple2(0, -(dO))
883- let dc = fw._1
884- let dd = fw._2
885- let fx = db(dc, dd, 0)
886- let fh = fx._1
887- let cS = fx._2
883+ let dc = fy._1
884+ let dd = fy._2
885+ let fz = db(dc, dd, 0)
886+ let fj = fz._1
887+ let cS = fz._2
888888 let dm = value(getString(W))
889- let fi = df(da, cS)
890- if ((fi == fi))
891- then $Tuple2((((cM ++ fe) ++ fv) ++ fh), ft)
889+ let fk = df(da, cS)
890+ if ((fk == fk))
891+ then $Tuple2((((cM ++ fg) ++ fx) ++ fj), fv)
892892 else throw("Strict value is not equal to itself.")
893893 }
894894 else throw("Strict value is not equal to itself.")
895895 }
896896 else throw("Strict value is not equal to itself.")
897897 }
898898 else throw("Strict value is not equal to itself.")
899899 }
900900 else throw("Strict value is not equal to itself.")
901901 }
902902
903903
904904
905905 @Callable(dA)
906906 func putOneTknREADONLY (dR,dQ) = {
907- let fy = dP(dQ, aJ(dR), unit, unit)
908- let fs = fy._1
909- let cM = fy._2
910- let dO = fy._3
911- let fr = fy._4
912- let dV = fy._5
913- $Tuple2(nil, $Tuple3(fs, dO, fr))
907+ let fA = dP(dQ, aJ(dR), unit, unit)
908+ let fu = fA._1
909+ let cM = fA._2
910+ let dO = fA._3
911+ let ft = fA._4
912+ let dV = fA._5
913+ $Tuple2(nil, $Tuple3(fu, dO, ft))
914914 }
915915
916916
917917
918918 @Callable(dA)
919-func getOneTkn (fz,fl) = {
920- let fn = {
919+func getOneTkn (fB,fn) = {
920+ let fp = {
921921 let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
922922 if ($isInstanceOf(aC, "Boolean"))
923923 then aC
924924 else throw(($getType(aC) + " couldn't be cast to Boolean"))
925925 }
926- let fA = if (if (aE())
926+ let fC = if (if (aE())
927927 then true
928928 else (aQ == k))
929929 then true
930- else fn
931- let eu = [if (if (!(fA))
930+ else fp
931+ let ew = [if (if (!(fC))
932932 then true
933- else eP(dA))
933+ else eR(dA))
934934 then true
935935 else aw("get operation is blocked by admin"), if ((size(dA.payments) == 1))
936936 then true
937937 else aw("exactly 1 payment are expected")]
938- if ((eu == eu))
938+ if ((ew == ew))
939939 then {
940- let et = aJ(fz)
941- let fp = dA.payments[0]
942- let dR = fp.assetId
943- let ed = fp.amount
940+ let ev = aJ(fB)
941+ let fr = dA.payments[0]
942+ let dR = fr.assetId
943+ let ed = fr.amount
944944 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
945945 if ((da == da))
946946 then {
947947 let O = dA.caller
948948 let P = dA.transactionId
949- let fB = es(et, ed, dR, O, P)
950- if ((fB == fB))
949+ let fD = eu(ev, ed, dR, O, P)
950+ if ((fD == fD))
951951 then {
952- let ev = fB._5
953- let fr = fB._4
954- let dO = fB._3
955- let cM = fB._2
956- let fC = fB._1
957- let dI = if (if ((fl > 0))
958- then (fl > fC)
952+ let ex = fD._5
953+ let ft = fD._4
954+ let dO = fD._3
955+ let cM = fD._2
956+ let fE = fD._1
957+ let dI = if (if ((fn > 0))
958+ then (fn > fE)
959959 else false)
960- then aw(makeString(["amount to receive is less than ", toString(fl)], ""))
961- else fC
962- let fD = invoke(az, "burn", [ed], [AttachedPayment(dR, ed)])
963- if ((fD == fD))
960+ then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
961+ else fE
962+ let fF = invoke(az, "burn", [ed], [AttachedPayment(dR, ed)])
963+ if ((fF == fF))
964964 then {
965- let fE = [ScriptTransfer(O, dI, et)]
966- let fv = if ((dO > 0))
967- then [ScriptTransfer(aA, dO, et)]
965+ let fG = [ScriptTransfer(O, dI, ev)]
966+ let fx = if ((dO > 0))
967+ then [ScriptTransfer(aA, dO, ev)]
968968 else nil
969- let fF = {
970- let fG = if ((this == aA))
969+ let fH = {
970+ let fI = if ((this == aA))
971971 then 0
972972 else dO
973- if (ev)
974- then $Tuple2(-((dI + fG)), 0)
975- else $Tuple2(0, -((dI + fG)))
973+ if (ex)
974+ then $Tuple2(-((dI + fI)), 0)
975+ else $Tuple2(0, -((dI + fI)))
976976 }
977- let dc = fF._1
978- let dd = fF._2
979- let fH = db(dc, dd, 0)
980- let fh = fH._1
981- let cS = fH._2
982- let fi = df(da, cS)
983- if ((fi == fi))
984- then $Tuple2((((cM ++ fE) ++ fv) ++ fh), dI)
977+ let dc = fH._1
978+ let dd = fH._2
979+ let fJ = db(dc, dd, 0)
980+ let fj = fJ._1
981+ let cS = fJ._2
982+ let fk = df(da, cS)
983+ if ((fk == fk))
984+ then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
985985 else throw("Strict value is not equal to itself.")
986986 }
987987 else throw("Strict value is not equal to itself.")
988988 }
989989 else throw("Strict value is not equal to itself.")
990990 }
991991 else throw("Strict value is not equal to itself.")
992992 }
993993 else throw("Strict value is not equal to itself.")
994994 }
995995
996996
997997
998998 @Callable(dA)
999-func getOneTknREADONLY (et,ed) = {
1000- let fI = es(aJ(et), ed, aR, unit, unit)
1001- let fC = fI._1
1002- let cM = fI._2
1003- let dO = fI._3
1004- let fr = fI._4
1005- let ev = fI._5
1006- $Tuple2(nil, $Tuple3(fC, dO, fr))
999+func getOneTknREADONLY (ev,ed) = {
1000+ let fK = eu(aJ(ev), ed, aR, unit, unit)
1001+ let fE = fK._1
1002+ let cM = fK._2
1003+ let dO = fK._3
1004+ let ft = fK._4
1005+ let ex = fK._5
1006+ $Tuple2(nil, $Tuple3(fE, dO, ft))
10071007 }
10081008
10091009
10101010
10111011 @Callable(dA)
1012-func unstakeAndGetOneTkn (fJ,fz,fl) = {
1013- let fn = {
1012+func unstakeAndGetOneTkn (fL,fB,fn) = {
1013+ let fp = {
10141014 let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
10151015 if ($isInstanceOf(aC, "Boolean"))
10161016 then aC
10171017 else throw(($getType(aC) + " couldn't be cast to Boolean"))
10181018 }
1019- let fA = if (if (aE())
1019+ let fC = if (if (aE())
10201020 then true
10211021 else (aQ == k))
10221022 then true
1023- else fn
1024- let eu = [if (if (!(fA))
1023+ else fp
1024+ let ew = [if (if (!(fC))
10251025 then true
1026- else eP(dA))
1026+ else eR(dA))
10271027 then true
10281028 else aw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
10291029 then true
10301030 else aw("no payments are expected")]
1031- if ((eu == eu))
1031+ if ((ew == ew))
10321032 then {
1033- let et = aJ(fz)
1033+ let ev = aJ(fB)
10341034 let O = dA.caller
10351035 let P = dA.transactionId
10361036 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
10371037 if ((da == da))
10381038 then {
1039- let fK = invoke(aX, "unstake", [toBase58String(aR), fJ], nil)
1040- if ((fK == fK))
1039+ let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1040+ if ((fM == fM))
10411041 then {
1042- let fL = es(et, fJ, aR, O, P)
1043- if ((fL == fL))
1042+ let fN = eu(ev, fL, aR, O, P)
1043+ if ((fN == fN))
10441044 then {
1045- let ev = fL._5
1046- let fr = fL._4
1047- let dO = fL._3
1048- let cM = fL._2
1049- let fC = fL._1
1050- let dI = if (if ((fl > 0))
1051- then (fl > fC)
1045+ let ex = fN._5
1046+ let ft = fN._4
1047+ let dO = fN._3
1048+ let cM = fN._2
1049+ let fE = fN._1
1050+ let dI = if (if ((fn > 0))
1051+ then (fn > fE)
10521052 else false)
1053- then aw(makeString(["amount to receive is less than ", toString(fl)], ""))
1054- else fC
1055- let fD = invoke(az, "burn", [fJ], [AttachedPayment(aR, fJ)])
1056- if ((fD == fD))
1053+ then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
1054+ else fE
1055+ let fF = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1056+ if ((fF == fF))
10571057 then {
1058- let fE = [ScriptTransfer(dA.caller, dI, et)]
1059- let fv = if ((dO > 0))
1060- then [ScriptTransfer(aA, dO, et)]
1058+ let fG = [ScriptTransfer(dA.caller, dI, ev)]
1059+ let fx = if ((dO > 0))
1060+ then [ScriptTransfer(aA, dO, ev)]
10611061 else nil
1062- let fM = {
1063- let fG = if ((this == aA))
1062+ let fO = {
1063+ let fI = if ((this == aA))
10641064 then 0
10651065 else dO
1066- if (ev)
1067- then $Tuple2(-((dI + fG)), 0)
1068- else $Tuple2(0, -((dI + fG)))
1066+ if (ex)
1067+ then $Tuple2(-((dI + fI)), 0)
1068+ else $Tuple2(0, -((dI + fI)))
10691069 }
1070- let dc = fM._1
1071- let dd = fM._2
1072- let fN = db(dc, dd, 0)
1073- let fh = fN._1
1074- let cS = fN._2
1075- let fi = df(da, cS)
1076- if ((fi == fi))
1077- then $Tuple2((((cM ++ fE) ++ fv) ++ fh), dI)
1070+ let dc = fO._1
1071+ let dd = fO._2
1072+ let fP = db(dc, dd, 0)
1073+ let fj = fP._1
1074+ let cS = fP._2
1075+ let fk = df(da, cS)
1076+ if ((fk == fk))
1077+ then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
10781078 else throw("Strict value is not equal to itself.")
10791079 }
10801080 else throw("Strict value is not equal to itself.")
10811081 }
10821082 else throw("Strict value is not equal to itself.")
10831083 }
10841084 else throw("Strict value is not equal to itself.")
10851085 }
10861086 else throw("Strict value is not equal to itself.")
10871087 }
10881088 else throw("Strict value is not equal to itself.")
10891089 }
10901090
10911091
10921092
10931093 @Callable(dA)
10941094 func get () = {
10951095 let cx = dz(dA)
1096- let fO = cx._1
1096+ let fQ = cx._1
10971097 let ce = cx._2
10981098 let dC = cx._3
10991099 let bM = cx._4
11001100 let cf = cx._5
11011101 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
11021102 if ((da == da))
11031103 then {
1104- let fP = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1105- if ((fP == fP))
1104+ let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1105+ if ((fR == fR))
11061106 then {
1107- let fQ = db(-(fO), -(ce), 0)
1108- let fh = fQ._1
1109- let cS = fQ._2
1110- let fi = df(da, cS)
1111- if ((fi == fi))
1112- then (cf ++ fh)
1107+ let fS = db(-(fQ), -(ce), 0)
1108+ let fj = fS._1
1109+ let cS = fS._2
1110+ let fk = df(da, cS)
1111+ if ((fk == fk))
1112+ then (cf ++ fj)
11131113 else throw("Strict value is not equal to itself.")
11141114 }
11151115 else throw("Strict value is not equal to itself.")
11161116 }
11171117 else throw("Strict value is not equal to itself.")
11181118 }
11191119
11201120
11211121
11221122 @Callable(dA)
1123-func getNoLess (fR,fS) = {
1123+func getNoLess (fT,fU) = {
11241124 let cx = dz(dA)
11251125 let cd = cx._1
11261126 let ce = cx._2
11271127 let dC = cx._3
11281128 let bM = cx._4
11291129 let cf = cx._5
1130- if ((fR > cd))
1131- then throw(((("noLessThenAmtAsset failed: " + toString(cd)) + " < ") + toString(fR)))
1132- else if ((fS > ce))
1133- then throw(((("noLessThenPriceAsset failed: " + toString(ce)) + " < ") + toString(fS)))
1130+ if ((fT > cd))
1131+ then throw(((("noLessThenAmtAsset failed: " + toString(cd)) + " < ") + toString(fT)))
1132+ else if ((fU > ce))
1133+ then throw(((("noLessThenPriceAsset failed: " + toString(ce)) + " < ") + toString(fU)))
11341134 else {
11351135 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
11361136 if ((da == da))
11371137 then {
1138- let fP = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1139- if ((fP == fP))
1138+ let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1139+ if ((fR == fR))
11401140 then {
1141- let fT = db(-(cd), -(ce), 0)
1142- let fh = fT._1
1143- let cS = fT._2
1144- let fi = df(da, cS)
1145- if ((fi == fi))
1146- then (cf ++ fh)
1141+ let fV = db(-(cd), -(ce), 0)
1142+ let fj = fV._1
1143+ let cS = fV._2
1144+ let fk = df(da, cS)
1145+ if ((fk == fk))
1146+ then (cf ++ fj)
11471147 else throw("Strict value is not equal to itself.")
11481148 }
11491149 else throw("Strict value is not equal to itself.")
11501150 }
11511151 else throw("Strict value is not equal to itself.")
11521152 }
11531153 }
11541154
11551155
11561156
11571157 @Callable(dA)
11581158 func unstakeAndGet (dI) = {
1159- let fU = if ((size(dA.payments) != 0))
1159+ let fW = if ((size(dA.payments) != 0))
11601160 then throw("No payments are expected")
11611161 else true
1162- if ((fU == fU))
1162+ if ((fW == fW))
11631163 then {
11641164 let bD = aG()
11651165 let bO = fromBase58String(bD[n])
11661166 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
11671167 if ((da == da))
11681168 then {
1169- let fK = invoke(aX, "unstake", [toBase58String(bO), dI], nil)
1170- if ((fK == fK))
1169+ let fM = invoke(aX, "unstake", [toBase58String(bO), dI], nil)
1170+ if ((fM == fM))
11711171 then {
11721172 let cx = bK(toBase58String(dA.transactionId), toBase58String(bO), dI, dA.caller)
11731173 let cd = cx._1
11741174 let ce = cx._2
11751175 let bR = parseIntValue(cx._9)
11761176 let cf = cx._10
1177- let fV = if (if (aE())
1177+ let fX = if (if (aE())
11781178 then true
11791179 else (bR == k))
11801180 then throw(("Get operation is blocked by admin. Status = " + toString(bR)))
11811181 else true
1182- if ((fV == fV))
1182+ if ((fX == fX))
11831183 then {
1184- let fP = invoke(az, "burn", [dI], [AttachedPayment(bO, dI)])
1185- if ((fP == fP))
1184+ let fR = invoke(az, "burn", [dI], [AttachedPayment(bO, dI)])
1185+ if ((fR == fR))
11861186 then {
1187- let fW = db(-(cd), -(ce), 0)
1188- let fh = fW._1
1189- let cS = fW._2
1190- let fi = df(da, cS)
1191- if ((fi == fi))
1192- then (cf ++ fh)
1187+ let fY = db(-(cd), -(ce), 0)
1188+ let fj = fY._1
1189+ let cS = fY._2
1190+ let fk = df(da, cS)
1191+ if ((fk == fk))
1192+ then (cf ++ fj)
11931193 else throw("Strict value is not equal to itself.")
11941194 }
11951195 else throw("Strict value is not equal to itself.")
11961196 }
11971197 else throw("Strict value is not equal to itself.")
11981198 }
11991199 else throw("Strict value is not equal to itself.")
12001200 }
12011201 else throw("Strict value is not equal to itself.")
12021202 }
12031203 else throw("Strict value is not equal to itself.")
12041204 }
12051205
12061206
12071207
12081208 @Callable(dA)
1209-func unstakeAndGetNoLess (fJ,fX,fS) = {
1210- let fA = if (aE())
1209+func unstakeAndGetNoLess (fL,fZ,fU) = {
1210+ let fC = if (aE())
12111211 then true
12121212 else (aQ == k)
1213- let eu = [if (!(fA))
1213+ let ew = [if (!(fC))
12141214 then true
12151215 else throw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
12161216 then true
12171217 else throw("no payments are expected")]
1218- if ((eu == eu))
1218+ if ((ew == ew))
12191219 then {
12201220 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
12211221 if ((da == da))
12221222 then {
1223- let fK = invoke(aX, "unstake", [toBase58String(aR), fJ], nil)
1224- if ((fK == fK))
1223+ let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1224+ if ((fM == fM))
12251225 then {
1226- let cx = bK(toBase58String(dA.transactionId), toBase58String(aR), fJ, dA.caller)
1226+ let cx = bK(toBase58String(dA.transactionId), toBase58String(aR), fL, dA.caller)
12271227 let cd = cx._1
12281228 let ce = cx._2
12291229 let cf = cx._10
1230- let fY = [if ((cd >= fX))
1230+ let ga = [if ((cd >= fZ))
12311231 then true
1232- else throw(makeString(["amount asset amount to receive is less than ", toString(fX)], "")), if ((ce >= fS))
1232+ else throw(makeString(["amount asset amount to receive is less than ", toString(fZ)], "")), if ((ce >= fU))
12331233 then true
1234- else throw(makeString(["price asset amount to receive is less than ", toString(fS)], ""))]
1235- if ((fY == fY))
1234+ else throw(makeString(["price asset amount to receive is less than ", toString(fU)], ""))]
1235+ if ((ga == ga))
12361236 then {
1237- let fP = invoke(az, "burn", [fJ], [AttachedPayment(aR, fJ)])
1238- if ((fP == fP))
1237+ let fR = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1238+ if ((fR == fR))
12391239 then {
1240- let fZ = db(-(cd), -(ce), 0)
1241- let fh = fZ._1
1242- let cS = fZ._2
1243- let fi = df(da, cS)
1244- if ((fi == fi))
1245- then (cf ++ fh)
1240+ let gb = db(-(cd), -(ce), 0)
1241+ let fj = gb._1
1242+ let cS = gb._2
1243+ let fk = df(da, cS)
1244+ if ((fk == fk))
1245+ then (cf ++ fj)
12461246 else throw("Strict value is not equal to itself.")
12471247 }
12481248 else throw("Strict value is not equal to itself.")
12491249 }
12501250 else throw("Strict value is not equal to itself.")
12511251 }
12521252 else throw("Strict value is not equal to itself.")
12531253 }
12541254 else throw("Strict value is not equal to itself.")
12551255 }
12561256 else throw("Strict value is not equal to itself.")
12571257 }
12581258
12591259
12601260
12611261 @Callable(dA)
1262-func activate (ga,gb) = if ((toString(dA.caller) != toString(az)))
1262+func activate (gc,gd) = if ((toString(dA.caller) != toString(az)))
12631263 then throw("permissions denied")
1264- else $Tuple2([StringEntry(R(), ga), StringEntry(S(), gb)], "success")
1264+ else $Tuple2([StringEntry(R(), gc), StringEntry(S(), gd)], "success")
12651265
12661266
12671267
12681268 @Callable(dA)
12691269 func refreshKLp () = {
1270- let gc = valueOrElse(getInteger(X), 0)
1271- let gd = if (((height - gc) >= aa))
1270+ let ge = valueOrElse(getInteger(X), 0)
1271+ let gf = if (((height - ge) >= aa))
12721272 then unit
12731273 else aw(makeString([toString(aa), " blocks have not passed since the previous call"], ""))
1274- if ((gd == gd))
1274+ if ((gf == gf))
12751275 then {
12761276 let dm = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, W), "0")), ay("invalid kLp"))
1277- let ge = db(0, 0, 0)
1278- let gf = ge._1
1279- let cS = ge._2
1277+ let gg = db(0, 0, 0)
1278+ let gh = gg._1
1279+ let cS = gg._2
12801280 let de = if ((dm != cS))
1281- then gf
1281+ then gh
12821282 else aw("nothing to refresh")
12831283 $Tuple2(de, toString(cS))
12841284 }
12851285 else throw("Strict value is not equal to itself.")
12861286 }
12871287
12881288
12891289
12901290 @Callable(dA)
12911291 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aG())
12921292
12931293
12941294
12951295 @Callable(dA)
12961296 func getAccBalanceWrapperREADONLY (bp) = $Tuple2(nil, bo(bp))
12971297
12981298
12991299
13001300 @Callable(dA)
13011301 func calcPricesWrapperREADONLY (bx,by,bC) = {
1302- let gg = bB(bx, by, bC)
1303- $Tuple2(nil, [toString(gg[0]), toString(gg[1]), toString(gg[2])])
1302+ let gi = bB(bx, by, bC)
1303+ $Tuple2(nil, [toString(gi[0]), toString(gi[1]), toString(gi[2])])
13041304 }
13051305
13061306
13071307
13081308 @Callable(dA)
13091309 func toX18WrapperREADONLY (x,y) = $Tuple2(nil, toString(w(x, y)))
13101310
13111311
13121312
13131313 @Callable(dA)
13141314 func fromX18WrapperREADONLY (B,C) = $Tuple2(nil, A(parseBigIntValue(B), C))
13151315
13161316
13171317
13181318 @Callable(dA)
13191319 func calcPriceBigIntWrapperREADONLY (br,bs) = $Tuple2(nil, toString(bq(parseBigIntValue(br), parseBigIntValue(bs))))
13201320
13211321
13221322
13231323 @Callable(dA)
13241324 func estimatePutOperationWrapperREADONLY (bL,ch,ci,cj,ck,cl,O,cm,cn) = $Tuple2(nil, cg(bL, ch, ci, cj, ck, cl, O, cm, cn))
13251325
13261326
13271327
13281328 @Callable(dA)
13291329 func estimateGetOperationWrapperREADONLY (bL,bM,bN,O) = {
13301330 let cx = bK(bL, bM, bN, addressFromStringValue(O))
13311331 $Tuple2(nil, $Tuple10(cx._1, cx._2, cx._3, cx._4, cx._5, cx._6, cx._7, toString(cx._8), cx._9, cx._10))
13321332 }
13331333
13341334
13351335
13361336 @Callable(dA)
13371337 func statsREADONLY () = {
13381338 let bD = aG()
13391339 let bO = fromBase58String(bD[n])
1340- let gh = bD[o]
1341- let gi = bD[p]
1340+ let gj = bD[o]
1341+ let gk = bD[p]
13421342 let cq = bD[s]
13431343 let cr = bD[t]
13441344 let bE = parseIntValue(bD[q])
13451345 let bF = parseIntValue(bD[r])
1346- let gj = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1347- let gk = bo(gh)
1348- let gl = bo(gi)
1349- let gm = if ((gj == 0))
1346+ let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1347+ let gm = bo(gj)
1348+ let gn = bo(gk)
1349+ let go = if ((gl == 0))
13501350 then [c, c, c]
1351- else bB(gk, gl, gj)
1351+ else bB(gm, gn, gl)
13521352 let bY = 0
1353- let gn = A(gm[1], a)
1354- let go = A(gm[2], a)
1355- let gp = value(getInteger(az, aj(toString(this))))
1356- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gk), toString(gl), toString(gj), toString(bY), toString(gn), toString(go), toString(gp)], h))
1353+ let gp = A(go[1], a)
1354+ let gq = A(go[2], a)
1355+ let gr = value(getInteger(az, aj(toString(this))))
1356+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gm), toString(gn), toString(gl), toString(bY), toString(gp), toString(gq), toString(gr)], h))
13571357 }
13581358
13591359
13601360
13611361 @Callable(dA)
13621362 func evaluatePutByAmountAssetREADONLY (ci) = {
13631363 let bD = aG()
13641364 let bO = fromBase58String(bD[n])
13651365 let co = bD[o]
13661366 let bP = fromBase58String(co)
13671367 let cp = bD[p]
13681368 let bQ = fromBase58String(cp)
13691369 let bE = parseIntValue(bD[q])
13701370 let bF = parseIntValue(bD[r])
13711371 let bR = bD[m]
1372- let gj = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1373- let gk = bo(co)
1374- let gl = bo(cp)
1375- let bz = w(gk, bE)
1376- let bA = w(gl, bF)
1377- let bX = if ((gj == 0))
1372+ let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1373+ let gm = bo(co)
1374+ let gn = bo(cp)
1375+ let bz = w(gm, bE)
1376+ let bA = w(gn, bF)
1377+ let bX = if ((gl == 0))
13781378 then c
13791379 else bq(bA, bz)
13801380 let cu = w(ci, bE)
13811381 let cv = fraction(cu, bX, b)
13821382 let ck = A(cv, bF)
13831383 let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
13841384 let cF = dG._1
1385- let gq = dG._3
1385+ let gs = dG._3
13861386 let bT = dG._4
13871387 let bV = dG._5
13881388 let bS = dG._6
13891389 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cF), toString(A(bX, a)), toString(bT), toString(bV), toString(bS), bR, toString(ci), toString(ck)], h))
13901390 }
13911391
13921392
13931393
13941394 @Callable(dA)
13951395 func evaluatePutByPriceAssetREADONLY (ck) = {
13961396 let bD = aG()
13971397 let bO = fromBase58String(bD[n])
13981398 let co = bD[o]
13991399 let bP = fromBase58String(co)
14001400 let cp = bD[p]
14011401 let bQ = fromBase58String(cp)
14021402 let bE = parseIntValue(bD[q])
14031403 let bF = parseIntValue(bD[r])
14041404 let bR = bD[m]
1405- let gj = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1406- let gr = bo(co)
1407- let gs = bo(cp)
1408- let gt = w(gr, bE)
1409- let gu = w(gs, bF)
1410- let bX = if ((gj == 0))
1405+ let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1406+ let gt = bo(co)
1407+ let gu = bo(cp)
1408+ let gv = w(gt, bE)
1409+ let gw = w(gu, bF)
1410+ let bX = if ((gl == 0))
14111411 then c
1412- else bq(gu, gt)
1412+ else bq(gw, gv)
14131413 let cv = w(ck, bF)
14141414 let cu = fraction(cv, b, bX)
14151415 let ci = A(cu, bE)
14161416 let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
14171417 let cF = dG._1
1418- let gq = dG._3
1418+ let gs = dG._3
14191419 let bT = dG._4
14201420 let bV = dG._5
14211421 let bS = dG._6
14221422 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cF), toString(A(bX, a)), toString(bT), toString(bV), toString(bS), bR, toString(ci), toString(ck)], h))
14231423 }
14241424
14251425
14261426
14271427 @Callable(dA)
1428-func evaluateGetREADONLY (gv,gw) = {
1429- let cx = bK("", gv, gw, this)
1428+func evaluateGetREADONLY (gx,gy) = {
1429+ let cx = bK("", gx, gy, this)
14301430 let cd = cx._1
14311431 let ce = cx._2
14321432 let bT = cx._5
14331433 let bV = cx._6
14341434 let bS = cx._7
14351435 let bY = cx._8
14361436 let bR = parseIntValue(cx._9)
14371437 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cd), toString(ce), toString(bT), toString(bV), toString(bS), toString(bY), toString(bR)], h))
14381438 }
14391439
14401440
1441-@Verifier(gx)
1442-func gy () = {
1443- let gz = {
1444- let dL = eM()
1441+@Verifier(gz)
1442+func gA () = {
1443+ let gB = {
1444+ let dL = eO()
14451445 if ($isInstanceOf(dL, "ByteVector"))
14461446 then {
1447- let eQ = dL
1448- eQ
1447+ let eS = dL
1448+ eS
14491449 }
14501450 else if ($isInstanceOf(dL, "Unit"))
1451- then gx.senderPublicKey
1451+ then gz.senderPublicKey
14521452 else throw("Match error")
14531453 }
1454- let dL = gx
1454+ let dL = gz
14551455 if ($isInstanceOf(dL, "Order"))
14561456 then {
14571457 let di = dL
1458- let gA = aF()
1459- let gB = dh(di)
1460- let ao = gB._1
1461- let ap = gB._2
1458+ let gC = aF()
1459+ let gD = dh(di)
1460+ let ao = gD._1
1461+ let ap = gD._2
14621462 let aq = sigVerify(di.bodyBytes, di.proofs[0], di.senderPublicKey)
1463- let ar = sigVerify(di.bodyBytes, di.proofs[1], gA)
1463+ let ar = sigVerify(di.bodyBytes, di.proofs[1], gC)
14641464 if (if (if (ao)
14651465 then aq
14661466 else false)
14671467 then ar
14681468 else false)
14691469 then true
14701470 else an(ao, ap, aq, ar)
14711471 }
14721472 else if ($isInstanceOf(dL, "SetScriptTransaction"))
14731473 then {
1474- let eN = dL
1475- let gC = blake2b256(value(eN.script))
1476- let gD = fromBase64String(value(getString(az, al())))
1477- let gE = scriptHash(this)
1478- if (if ((gD == gC))
1479- then (gE != gC)
1474+ let eP = dL
1475+ let gE = blake2b256(value(eP.script))
1476+ let gF = fromBase64String(value(getString(az, al())))
1477+ let gG = scriptHash(this)
1478+ if (if ((gF == gE))
1479+ then (gG != gE)
14801480 else false)
14811481 then true
1482- else sigVerify(gx.bodyBytes, gx.proofs[0], gz)
1482+ else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
14831483 }
1484- else sigVerify(gx.bodyBytes, gx.proofs[0], gz)
1484+ else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
14851485 }
14861486

github/deemru/w8io/873ac7e 
348.61 ms