tx · 5t4tRB83cdfbUHn6pyHJJYCdmjTAZMaGxGXjxNYaGvWM

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.02800000 Waves

2023.08.02 12:30 [2692775] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "5t4tRB83cdfbUHn6pyHJJYCdmjTAZMaGxGXjxNYaGvWM", "fee": 2800000, "feeAssetId": null, "timestamp": 1690968635767, "version": 2, "chainId": 84, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "3ybHLy3a11VbV2nTdrGHDCcWhRiagMXnDyAGxCfC1hgsdvWFKKFuGmAthaFGHCyZRYL52nycXJgRU7SBLMciBMy9" ], "script": "base64:BgL9LQgCEgASBAoCCAgSBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEYEgoKCAgICAgIAQgIEgQKAggBEgMKAQESAwoBARIECgIIARIGCgQICAgIEgQKAggIEgQKAggIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIECgIICBIDCgEIEgMKAQgSAwoBCBIECgIICBIDCgEIEgMKAQgSAwoBCBIDCgEIIgZTQ0FMRTgiBU1VTFQ4IgZNVUxUMTIiB1NDQUxFMTgiBk1VTFQxOCIOUE9PTFdFSUdIVE1VTFQiDkdXWHZpcnR1YWxQT09MIgxsYWJlbFBvb2xzTHAiDWRlZmF1bHRTcHJlYWQiC3dhdmVzU3RyaW5nIhBjb250cmFjdEZpbGVuYW1lIhFkZWNpbWFsc011bHRQcmljZSIDU0VQIgVFTVBUWSIKUG9vbEFjdGl2ZSIPUG9vbFB1dERpc2FibGVkIhNQb29sTWF0Y2hlckRpc2FibGVkIgxQb29sU2h1dGRvd24iEmlkeEludGVybmFsQXNzZXRJZCIPaWR4UmVzdXRBY3Rpb25zIiBpZHhJZkFzc2V0SWRDYWxjdWxhdGlvblBlcmZvcm1lZCIOaWR4UG9vbEFkZHJlc3MiDWlkeFBvb2xTdGF0dXMiEGlkeFBvb2xMUEFzc2V0SWQiDWlkeEFtdEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIOaWR4QW10QXNzZXREY20iEGlkeFByaWNlQXNzZXREY20iDmlkeElBbXRBc3NldElkIhBpZHhJUHJpY2VBc3NldElkIg1pZHhMUEFzc2V0RGNtIgtpZHhQb29sVHlwZSITcG9vbExhYmVsV3hFbWlzc2lvbiIPdmFsaWRQb29sTGFiZWxzIgd3cmFwRXJyIgNtc2ciCHRocm93RXJyIhZrZXlBbGxvd2VkTHBTY3JpcHRIYXNoIhxrZXlBbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoIgxzd2FwQ29udHJhY3QiEGtleUZhY3RvcnlDb25maWciD2tleUxwVG9rZW5zTGlzdCIRa2V5UG9vbFNjcmlwdEhhc2giDWtleU1hdGNoZXJQdWIiGGtleUxlZ2FjeUZhY3RvcnlDb250cmFjdCIOa2V5TGVnYWN5UG9vbHMiE2tleU1hbmFnZXJQdWJsaWNLZXkiFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MiD2tleUFkbWluUHViS2V5cyIWa2V5QXNzZXRzU3RvcmVDb250cmFjdCIZa2V5Vm90aW5nRW1pc3Npb25Db250cmFjdCIUa2V5VXNlclBvb2xzQ29udHJhY3QiDmtleVByaWNlQXNzZXRzIhBrZXlQcmljZURlY2ltYWxzIhNrZXlBbGxQb29sc1NodXRkb3duIhZrZXlOZXh0SW50ZXJuYWxBc3NldElkIg9rZXlQb29sVG9XZWlnaHQiC3Bvb2xBZGRyZXNzIhZrZXlQb29sVG9XZWlnaHRIaXN0b3J5IgNudW0iH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQiEWludGVybmFsQmFzZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiDWtleVBvb2xDb25maWciE2Ftb3VudEFzc2V0SW50ZXJuYWwiEnByaWNlQXNzZXRJbnRlcm5hbCIha2V5UG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg5hc3NldHNJbnRlcm5hbCILJHQwMzg3ODM5NDAiJWtleUFsbFBvb2xzT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiHWtleU1hcHBpbmdMcEFzc2V0VG9Qb29sQXNzZXRzIgpscEFzc2V0U3RyIh1rZXlNYXBwaW5nUG9vbEFzc2V0c1RvTHBhc3NldCIYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyIhdpbnRlcm5hbFByaWNlQXNzZXRJZFN0ciINa2V5UG9vbFNwcmVhZCIpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMiE3Bvb2xDb250cmFjdEFkZHJlc3MiKWtleU1hcHBpbmdQb29sQXNzZXRzVG9Qb29sQ29udHJhY3RBZGRyZXNzIh9rZXlNYXBwaW5nUG9vbENvbnRyYWN0VG9MUEFzc2V0IiprZXlNYXBwaW5nUG9vbExQQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MiDWtleVd4RW1pc3Npb24iDWFtb3VudEFzc2V0SWQiDHByaWNlQXNzZXRJZCIIa2V5SW5GZWUiD2tleUluRmVlRGVmYXVsdCIKa2V5U3dhcEZlZSIJa2V5T3V0RmVlIhBrZXlPdXRGZWVEZWZhdWx0IhZrZXlTa2lwT3JkZXJWYWxpZGF0aW9uIhFrZXlDaGFuZ2VBbXBEZWxheSIRa2V5Q2hhbmdlQW1wRGVsdGEiEmtleUNoYW5nZUFtcFRhcmdldCIVa2V5U1dhdmVzUHJveHlBZGRyZXNzIhBrZXlTV2F2ZXNBc3NldElkIhdrZXlTdGFraW5nUHJvZml0QWRkcmVzcyIOa2V5TGVhc2VkUmF0aW8iB2Fzc2V0SWQiFWtleUxlYXNlZFJhdGlvRGVmYXVsdCIXa2V5TGVhc2VkUmF0aW9Ub2xlcmFuY2UiDWtleU1pbkJhbGFuY2UiFGtleU1pbkJhbGFuY2VEZWZhdWx0Ig9nZXRTdHJpbmdPckZhaWwiA2tleSIQZ2V0Qm9vbGVhbk9yRmFpbCIMZ2V0SW50T3JGYWlsIgxwYXJzZUFzc2V0SWQiBWlucHV0IhxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzIgckbWF0Y2gwIgFzIhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIUSWR4RmFjdG9yeUNmZ0Rhb0RhcHAiGklkeEZhY3RvcnlDZmdNYXJrZXRpbmdEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCIWSWR4RmFjdG9yeUNmZ0JpcmRzRGFwcCIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgpmYWN0b3J5Q2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIg5nZXRQcmljZUFzc2V0cyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCITbWFuYWdlclZhdWx0QWRkcmVzcyIVcGVybWlzc2lvbkRlbmllZEVycm9yIgl0ZXN0RXJyb3IiCG11c3RUaGlzIgFpIgttdXN0TWFuYWdlciICcGsiEGRhdGFGYWN0b3J5Q2ZnVjMiDnN0YWtpbmdBZGRyZXNzIg9ib29zdGluZ0FkZHJlc3MiC2lkb0NvbnRyYWN0Igx0ZWFtQ29udHJhY3QiEGVtaXNzaW9uQ29udHJhY3QiDHJlc3RDb250cmFjdCIQc2xpcHBhZ2VDb250cmFjdCILZGFvQ29udHJhY3QiEW1hcmtldGluZ0NvbnRyYWN0IhJnd3hSZXdhcmRzQ29udHJhY3QiDWJpcmRzQ29udHJhY3QiDmRhdGFGYWN0b3J5Q2ZnIgtkYXRhUG9vbENmZyIKcG9vbFN0YXR1cyIJbHBBc3NldElkIg5hbW91bnRBc3NldFN0ciINcHJpY2VBc3NldFN0ciITYW1vdW50QXNzZXREZWNpbWFscyIScHJpY2VBc3NldERlY2ltYWxzIhVhbW91bnRBc3NldEludGVybmFsSWQiFHByaWNlQXNzZXRJbnRlcm5hbElkIg9scEFzc2V0RGVjaW1hbHMiCHBvb2xUeXBlIhVkYXRhTWFwcGluZ1Bvb2xBc3NldHMiFmludGVybmFsQW1vdW50QXNzZXRTdHIiFWludGVybmFsUHJpY2VBc3NldFN0ciINZ2V0UG9vbENvbmZpZyIKcG9vbEFzc2V0cyIaZ2V0SW50ZXJuYWxBc3NldElkT3JDcmVhdGUiCmFzc2V0SWRTdHIiC2luY3JlbWVudG9yIg9pbnRlcm5hbEFzc2V0SWQiGGN1cnJlbnRJbmRleE9mSW50ZXJuYWxJZCIGcmVzdWx0IhJuZXdJbnRlcm5hbEFzc2V0SWQiCW11c3RBZG1pbiIIYWRtaW5QS3MiCWlzTWFuYWdlciIWaW50T3JEZWZhdWx0T3JGYWxsYmFjayIKa2V5RGVmYXVsdCINdmFsdWVGYWxsYmFjayIScG9vbEV4aXN0c0ludGVybmFsIgRhbUFzIgRwckFzIgNjZmciCmNmZ1JldmVyc2UiBmV4aXN0cyIcZ2V0QXNzZXRzRGF0YUZyb21Qb29sQWRkcmVzcyIOZ2V0UG9vbENyZWF0b3IiDSR0MDE1MjY5MTU0MDYiEXVzZXJQb29sc0NvbnRyYWN0Igtwb29sQ3JlYXRvciIRZ2V0QWRkcmVzc0JhbGFuY2UiDWFkZHJlc3NTdHJpbmciDWFzc2V0SWRTdHJpbmciB2FkZHJlc3MiC2lzUG9vbEVtcHR5Ig0kdDAxNTk4MTE2MTE4Ig0kdDAxNjQzMzE2NzM3IgFyIgckbWF0Y2gxIgJyZCIKaXNMZWFzYWJsZSILbGVhc2VkUmF0aW8iCm1pbkJhbGFuY2UiAWIiAmJkIg0kdDAxNzAwMzE3MjI3Igxwcm94eUFkZHJlc3MiDHByb3h5QXNzZXRJZCIMcHJveHlSYXRlTXVsIhRzdGFraW5nUHJvZml0QWRkcmVzcyIGYXNzZXQxIgZhc3NldDIiCWFzc2V0TnVtMSIJYXNzZXROdW0yIgJlZSIDcmVzIgJscCIPc3Rha2luZ0NvbnRyYWN0IhBib29zdGluZ0NvbnRyYWN0IhBzbHBpcGFnZUNvbnRyYWN0Ig1wcmljZURlY2ltYWxzIgtjaGVja0NhbGxlciIQbWF0aGNoZXJQdWI1OFN0ciIKbWF0aGNlclB1YiIVbGVnYWN5RmFjdG9yeUNvbnRyYWN0IgtsZWdhY3lQb29scyITYXNzZXRzU3RvcmVDb250cmFjdCIWdm90aW5nRW1pc3Npb25Db250cmFjdCILcHJpY2VBc3NldHMiBWNoZWtzIgxhZG1pblB1YktleXMiC2xwQXNzZXROYW1lIgxscEFzc2V0RGVzY3IiCnBvb2xXZWlnaHQiBGxvZ28iF2ludGVybmFsQW1vdW50QXNzZXREYXRhIhVpbnRlcm5hbEFtb3VudEFzc2V0SWQiFmludGVybmFsUHJpY2VBc3NldERhdGEiFGludGVybmFsUHJpY2VBc3NldElkIhVwb29sQWNjb3VudFNjcmlwdEhhc2giHGV0aGFsb25Qb29sQWNjb3VudFNjcmlwdEhhc2giCnBvb2xFeGlzdHMiD3Bvb2xDb25maWdWYWx1ZSIUYW1vdW50QXNzZXRzRGVjaW1hbHMiE3ByaWNlQXNzZXRzRGVjaW1hbHMiEmxwQXNzZXRJc3N1ZUFjdGlvbiIMbHBBc3NldElkU3RyIhhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQiGGNyZWF0ZU9yVXBkYXRlTHBBc3NldEludiISYWRkUG9vbHNMcExhYmVsSW52IgpzZXRMb2dvSW52IhBhZGRBc3NldHNMaW5rSW52IhtpbmNyZWFzZUFzc2V0UG9vbHNOdW1iZXJJbnYiCW5ld1N0YXR1cyIKcG9vbENvbmZpZyIKbHBBc3NldERjbSIMYW1vdW50VG9FbWl0IgZjYWxsZXIiDG9yaWdpbkNhbGxlciIQbHBBc3NldFJlcXVlc3RlZCIHbHBBc3NldCIMYW1vdW50VG9CdXJuIgdwYXltZW50Ig1wYXltZW50QW1vdW50Ig9pbkFtb3VudEFzc2V0SWQiGmxwQXNzZXRSZXF1ZXN0ZWRGb3JCdXJuaW5nIgVzaGFyZSINcG9vbFdlaWdodEtleSIMZ3d4V2VpZ2h0S2V5Iglnd3hXZWlnaHQiDXBvb2xXZWlnaHROZXciEW9uTW9kaWZ5V2VpZ2h0SW52IhVnd3hWaXJ0dWFsUG9vbEFjdGlvbnMiFHBvb2xXZWlnaHRIaXN0b3J5S2V5Ihdwb29sV2VpZ2h0SGlzdG9yeU9yVW5pdCIYcG9vbFdlaWdodEhpc3RvcnlBY3Rpb25zIg5idGNQb29sQWRkcmVzcyIOZXRoUG9vbEFkZHJlc3MiEWV0aEJ0Y1Bvb2xBZGRyZXNzIhN1c2RjVXNkdFBvb2xBZGRyZXNzIg9ldGhCdGNXZWlnaHROZXciEXVzZGNVc2R0V2VpZ2h0TmV3Ig93ZWlnaHREZWNyZW1lbnQiC3N0YWtpbmdEYXBwIg1nd3hSZXdhcmREYXBwIgxidGNXZWlnaHRLRVkiDGV0aFdlaWdodEtFWSIPZXRoQnRjV2VpZ2h0S0VZIhF1c2RjVXNkdFdlaWdodEtFWSIJYnRjV2VpZ2h0IglldGhXZWlnaHQiDGJ0Y1dlaWdodE5ldyIMZXRoV2VpZ2h0TmV3Ig9idGNMcEFzc2V0SWRTdHIiD2V0aExwQXNzZXRJZFN0ciISZXRoQnRjTHBBc3NldElkU3RyIhR1c2RjVXNkdExwQXNzZXRJZFN0ciIRb25Nb2RpZnlXZWlnaHRCdGMiEW9uTW9kaWZ5V2VpZ2h0RXRoIhRvbk1vZGlmeVdlaWdodEV0aEJ0YyIWb25Nb2RpZnlXZWlnaHRVc2RjVXNkdCIJaGF2ZUxhYmVsIhRjaGVja1ByaWNlQXNzZXRzU2l6ZSICY2IiA2FjYyIKcHJpY2VBc3NldCIHYWN0aW9ucyICJGwiAiRzIgUkYWNjMCIFJGYwXzEiAiRhIgIkaSIFJGYwXzIiHnBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIiYWxsUG9vbHNPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIDZmVlIg5wb29sQWRkcmVzc1N0ciIJZmVlT3B0aW9uIgVwYXJ0cyIHcG9vbEZlZSILcHJvdG9jb2xGZWUiEGFtb3VudEFzc2V0SWRTdHIiD3ByaWNlQXNzZXRJZFN0ciIbYW1vdW50QXNzZXRJbnRlcm5hbElkT3B0aW9uIhpwcmljZUFzc2V0SW50ZXJuYWxJZE9wdGlvbiIZcG9vbENvbnRyYWN0QWRkcmVzc09wdGlvbiIPbHBBc3NldElkT3B0aW9uIghwb29sSW5mbyIFZGVsYXkiBWRlbHRhIgZ0YXJnZXQiBndlaWdodCILY2hlY2tXZWlnaHQiC2NoZWNrU3RhdHVzIg0kdDAzOTYxNzM5NzU0Ig91c2VyUG9vbHNJbnZva2UiFHZvdGluZ0VtaXNzaW9uSW52b2tlIhFhc3NldHNTdG9yZUludm9rZSICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5fgABYQAIAAFiAIDC1y8AAWMAgKCUpY0dAAFkABIAAWUJALYCAQCAgJC7utat8A0AAWYFAWIAAWcCDkdXWHZpcnR1YWxQT09MAAFoAghQT09MU19MUAABaQCAiXoAAWoCBVdBVkVTAAFrAg9mYWN0b3J5X3YyLnJpZGUAAWwJAGgCCQBoAgBkAOgHAOgHAAFtAgJfXwABbgIAAAFvAAEAAXAAAgABcQADAAFyAAQAAXMAAQABdAACAAF1AAMAAXYAAQABdwACAAF4AAMAAXkABAABegAFAAFBAAYAAUIABwABQwAIAAFEAAkAAUUACgABRgALAAFHAgtXWF9FTUlTU0lPTgABSAkAzAgCBQFHBQNuaWwBAUkBAUoJALkJAgkAzAgCBQFrCQDMCAICAjogCQDMCAIFAUoFA25pbAIAAQFLAQFKCQACAQkBAUkBBQFKAQFMAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gBAU0AAh0lc19fYWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAEBTgACECVzX19zd2FwQ29udHJhY3QBAU8AAhElc19fZmFjdG9yeUNvbmZpZwEBUAACECVzX19scFRva2Vuc0xpc3QBAVEAAhYlcyVzX19wb29sX19zY3JpcHRIYXNoAQFSAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQFTAAIZJXNfX2xlZ2FjeUZhY3RvcnlDb250cmFjdAEBVAACDyVzX19sZWdhY3lQb29scwEBVQACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFWAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBAVcAAhAlc19fYWRtaW5QdWJLZXlzAQFYAAIXJXNfX2Fzc2V0c1N0b3JlQ29udHJhY3QBAVkAAholc19fdm90aW5nRW1pc3Npb25Db250cmFjdAEBWgACFSVzX191c2VyUG9vbHNDb250cmFjdAECYWEACQC5CQIJAMwIAgICJXMJAMwIAgILcHJpY2VBc3NldHMFA25pbAUBbQECYWIAAhElc19fcHJpY2VEZWNpbWFscwECYWMAAgwlc19fc2h1dGRvd24BAmFkAAIXJXNfX25leHRJbnRlcm5hbEFzc2V0SWQBAmFlAQJhZgkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFmAQJhZwICYWYCYWgJAKwCAgkArAICCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYWYCAl9fCQCkAwEFAmFoAQJhaQECYWoJAKwCAgIoJXMlcyVkX19tYXBwaW5nc19faW50ZXJuYWwyYmFzZUFzc2V0SWRfXwkApAMBBQJhagECYWsBAmFsCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFsAQJhbQICYW4CYW8JAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFuAgJfXwUCYW8CCF9fY29uZmlnAQJhcAECYXEEAmFyBQJhcQQCYW4IBQJhcgJfMQQCYW8IBQJhcgJfMgkAuQkCCQDMCAICBiVkJWQlcwkAzAgCCQCkAwEFAmFuCQDMCAIJAKQDAQUCYW8JAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBbQECYXMACQC5CQIJAMwIAgICJXMJAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBbQECYXQBAmF1CQCsAgIJAKwCAgIIJXMlcyVzX18FAmF1AhhfX21hcHBpbmdzX19scEFzc2V0MlBvb2wBAmF2AgJhdwJheAkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fBQJhdwICX18FAmF4Ah5fX21hcHBpbmdzX19Qb29sQXNzZXRzMkxwQXNzZXQBAmF5AQJhZgkArAICAg4lcyVzX19zcHJlYWRfXwUCYWYBAmF6AQJhQQkArAICCQCsAgICCCVzJXMlc19fBQJhQQIjX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MlBvb2xBc3NldHMBAmFCAgJhdwJheAkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fCQCkAwEFAmF3AgJfXwkApAMBBQJheAIjX19tYXBwaW5nc19fcG9vbEFzc2V0czJQb29sQ29udHJhY3QBAmFDAQJhQQkArAICCQCsAgICCCVzJXMlc19fBQJhQQIgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAmFEAQJhdQkArAICCQCsAgICCCVzJXMlc19fBQJhdQIgX19tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QBAmFFAgJhRgJhRwkArAICCQCsAgIJAKwCAgIUJXMlcyVzX193eEVtaXNzaW9uX18FAmFGAgJfXwUCYUcBAmFIAQJhZgkArAICAg0lcyVzX19pbkZlZV9fBQJhZgECYUkAAhAlc19faW5GZWVEZWZhdWx0AQJhSgECYWYJAKwCAgIPJXMlc19fc3dhcEZlZV9fBQJhZgECYUsBAmFmCQCsAgICDiVzJXNfX291dEZlZV9fBQJhZgECYUwAAhElc19fb3V0RmVlRGVmYXVsdAECYU0BAmFmCQCsAgICGyVzJXNfX3NraXBPcmRlclZhbGlkYXRpb25fXwUCYWYBAmFOAQJhZgkArAICAhYlcyVzX19jaGFuZ2VBbXBEZWxheV9fBQJhZgECYU8BAmFmCQCsAgICFiVzJXNfX2NoYW5nZUFtcERlbHRhX18FAmFmAQJhUAECYWYJAKwCAgIXJXMlc19fY2hhbmdlQW1wVGFyZ2V0X18FAmFmAQJhUQACFiVzX19zV2F2ZXNQcm94eUFkZHJlc3MBAmFSAAIRJXNfX3NXYXZlc0Fzc2V0SWQBAmFTAAIYJXNfX3N0YWtpbmdQcm9maXRBZGRyZXNzAQJhVAICYWYCYVUJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgILbGVhc2VkUmF0aW8JAMwIAgUCYWYJAMwIAgUCYVUFA25pbAUBbQECYVYBAmFVCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhJsZWFzZWRSYXRpb0RlZmF1bHQJAMwIAgUCYVUFA25pbAUBbQECYVcCAmFmAmFVCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICFGxlYXNlZFJhdGlvVG9sZXJhbmNlCQDMCAIFAmFmCQDMCAIFAmFVBQNuaWwFAW0BAmFYAgJhZgJhVQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgptaW5CYWxhbmNlCQDMCAIFAmFmCQDMCAIFAmFVBQNuaWwFAW0BAmFZAQJhVQkAuQkCCQDMCAICBCVzJXMJAMwIAgIRbWluQmFsYW5jZURlZmF1bHQJAMwIAgUCYVUFA25pbAUBbQECYVoBAmJhCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUCYmEJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJiYQECYmIBAmJhCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJsIAgUEdGhpcwUCYmEJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJiYQECYmMBAmJhCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUCYmEJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJiYQECYmQBAmJlAwkAAAIFAmJlBQFqBQR1bml0CQDZBAEFAmJlAQJiZgAEAmJnCQCiCAEJAQFWAAMJAAECBQJiZwIGU3RyaW5nBAJiaAUCYmcJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmJoBQR0aGlzAAJiaQABAAJiagACAAJiawADAAJibAAEAAJibQAFAAJibgAGAAJibwAHAAJicAAIAAJicQAJAAJicgAKAAJicwALAQJidAECYnUJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYnUFAmJqAQJidgECYnUJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYnUFAmJtAQJidwECYnUJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYnUFAmJpAQJieAECYnUJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYnUFAmJyAQJieQAEAmJnCQCiCAEJAQJhYQADCQABAgUCYmcCBlN0cmluZwQCYmgFAmJnAwkAAAIJALECAQUCYmgAAAUDbmlsCQC8CQIFAmJoBQFtBQNuaWwBAmJ6AAQCYkEJAQJiZgAEAmJnCQCdCAIFAmJBCQEBVQADCQABAgUCYmcCBlN0cmluZwQCYmgFAmJnCQDZBAEFAmJoAwkAAQIFAmJnAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAAmJCCQEBSwECEVBlcm1pc3Npb24gZGVuaWVkAAJiQwkBAUsBAg9UZXN0IGVycm9yIGhlcmUBAmJEAQJiRQMJAAACCAUCYkUGY2FsbGVyBQR0aGlzBgUCYkIBAmJGAQJiRQQCYmcJAQJiegADCQABAgUCYmcCCkJ5dGVWZWN0b3IEAmJHBQJiZwMJAAACCAUCYkUPY2FsbGVyUHVibGljS2V5BQJiRwYFAmJCAwkAAQIFAmJnAgRVbml0CQECYkQBBQJiRQkAAgECC01hdGNoIGVycm9yAQJiSAsCYkkCYkoCYksCYkwCYk0CYk4CYk8CYlACYlECYlICYlMJALkJAgkAzAgCAhYlcyVzJXMlcyVzJXMlcyVzJXMlcyVzCQDMCAIFAmJJCQDMCAIFAmJKCQDMCAIFAmJLCQDMCAIFAmJMCQDMCAIFAmJNCQDMCAIFAmJOCQDMCAIFAmJPCQDMCAIFAmJQCQDMCAIFAmJRCQDMCAIFAmJSCQDMCAIFAmJTBQNuaWwFAW0BAmJUBwJiSQJiSgJiSwJiTAJiTQJiTgJiTwkAuQkCCQDMCAICDCVzJXMlcyVzJXMlcwkAzAgCBQJiSQkAzAgCBQJiSgkAzAgCBQJiSwkAzAgCBQJiTAkAzAgCBQJiTQkAzAgCBQJiTgkAzAgCBQJiTwUDbmlsBQFtAQJiVQsCYWYCYlYCYlcCYlgCYlkCYloCY2ECY2ICY2MCY2QCY2UJALkJAgkAzAgCAhYlcyVkJXMlcyVzJWQlZCVkJWQlZCVzCQDMCAIFAmFmCQDMCAIFAmJWCQDMCAIFAmJXCQDMCAIFAmJYCQDMCAIFAmJZCQDMCAIJAKQDAQUCYloJAMwIAgkApAMBBQJjYQkAzAgCCQCkAwEFAmNiCQDMCAIJAKQDAQUCY2MJAMwIAgkApAMBBQJjZAkAzAgCBQJjZQUDbmlsBQFtAQJjZgICY2cCY2gJALkJAgkAzAgCAgQlZCVkCQDMCAIJAKQDAQUCY2cJAMwIAgkApAMBBQJjaAUDbmlsBQFtAQJjaQECYWYEAmNqCQC1CQIJAQJhWgEJAQJhegEFAmFmBQFtBAJhbgkAkQMCBQJjagABBAJhbwkAkQMCBQJjagACCQC1CQIJAQJhWgEJAQJhbQIFAmFuBQJhbwUBbQECY2sCAmNsAmNtBAJjbgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYWsBBQJjbAAABAJjbwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYWQAAAAEAmNwAwkAAAIFAmNuAAAEAmNxCQBkAgUCY28FAmNtCQCVCgMFAmNxCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWQABQJjcQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFrAQUCY2wFAmNxCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhaQEFAmNxBQJjbAUDbmlsBgkAlQoDBQJjbgUDbmlsBwUCY3ABAmNyAQJiRQQCY3MJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEBVwAFAW4FAW0DCQEPY29udGFpbnNFbGVtZW50AgUCY3MJANgEAQgFAmJFD2NhbGxlclB1YmxpY0tleQYEAmN0CQECYkYBBQJiRQMJAAACBQJjdAUCY3QGCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJjdQMCYmECY3YCY3cJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYmEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCY3YFAmN3AQJjeAICYUYCYUcEAmFuCQCfCAEJAQJhawEFAmFGBAJhbwkAnwgBCQECYWsBBQJhRwMDCQAAAgUCYW4FBHVuaXQGCQAAAgUCYW8FBHVuaXQHBAJjeQkApAMBCQEFdmFsdWUBBQJhbgQCY3oJAKQDAQkBBXZhbHVlAQUCYW8EAmNBCQCiCAEJAQJhbQIFAmN5BQJjegQCY0IJAKIIAQkBAmFtAgUCY3oFAmN5BAJjQwMJAQIhPQIFAmNBBQR1bml0BgkBAiE9AgUCY0IFBHVuaXQFAmNDAQJjRAECYUEEAmNqBAJiZwkAoggBCQECYXoBBQJhQQMJAAECBQJiZwIGU3RyaW5nBAJiaAUCYmcJALUJAgUCYmgFAW0JAQFLAQkAuQkCCQDMCAIFAmFBCQDMCAICEXBvb2wgaXMgbm90IGZvdW5kBQNuaWwCASAEAmFuCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY2oAAQQCYW8JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjagACBAJhRgkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAmFpAQUCYW4EAmFHCQERQGV4dHJOYXRpdmUoMTA1OCkBCQECYWkBBQJhbwQCYlcJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQJhQwEFAmFBCQCXCgUFAmFGBQJhRwUCYlcFAmFuBQJhbwECY0UBAmFBBAJjRgkBAmNEAQUCYUEEAmFGCAUCY0YCXzEEAmFHCAUCY0YCXzIEAmJXCAUCY0YCXzMEAmFuCAUCY0YCXzQEAmFvCAUCY0YCXzUEAmNHCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1OCkBCQEBWgAEAmNICQD8BwQFAmNHAhZnZXRQb29sQ3JlYXRvclJFQURPTkxZCQDMCAIFAmFGCQDMCAIFAmFHBQNuaWwFA25pbAUCY0gBAmNJAgJjSgJjSwQCY0wJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmNKAwkAAAIFAmNLAgVXQVZFUwgJAO8HAQUCY0wHcmVndWxhcgQCYVUJANkEAQUCY0sJAPAHAgUCY0wFAmFVAQJjTQECYUEEAmNOCQECY0QBBQJhQQQCYUYIBQJjTgJfMQQCYUcIBQJjTgJfMgQCYlcIBQJjTgJfMwQCYW4IBQJjTgJfNAQCYW8IBQJjTgJfNQMJAAACCQECY0kCBQJhQQUCYUYAAAkAAAIJAQJjSQIFAmFBBQJhRwAAByICYkUBF2dldFN3YXBDb250cmFjdFJFQURPTkxZAAkAlAoCBQNuaWwJAQJhWgEJAQFOAAJiRQEaZ2V0UG9vbExlYXNlQ29uZmlnUkVBRE9OTFkCAmFmAmFVBAJjTwQCYmcJAJoIAgUEdGhpcwkBAmFUAgUCYWYFAmFVAwkAAQIFAmJnAgNJbnQEAmNQBQJiZwkAlAoCBgkAlwMBCQDMCAIAZAkAzAgCCQCWAwEJAMwIAgAACQDMCAIFAmNQBQNuaWwFA25pbAQCY1EJAJoIAgUEdGhpcwkBAmFWAQUCYVUDCQABAgUCY1ECA0ludAQCY1IFAmNRCQCUCgIGCQCXAwEJAMwIAgBkCQDMCAIJAJYDAQkAzAgCAAAJAMwIAgUCY1IFA25pbAUDbmlsCQCUCgIHAAAEAmNTCAUCY08CXzEEAmNUCAUCY08CXzIEAmNVBAJiZwkAmggCBQR0aGlzCQECYVgCBQJhZgUCYVUDCQABAgUCYmcCA0ludAQCY1YFAmJnCQCWAwEJAMwIAgAACQDMCAIFAmNWBQNuaWwEAmNRCQCaCAIFBHRoaXMJAQJhWQEFAmFVAwkAAQIFAmNRAgNJbnQEAmNXBQJjUQkAlgMBCQDMCAIAAAkAzAgCBQJjVwUDbmlsAAAEAmNYAwkAAAIFAmFVAgVXQVZFUwkAlQoDCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQJhUQACAAkAnQgCBQR0aGlzCQELdmFsdWVPckVsc2UCCQECYVIAAgAFAWMJAJUKAwIAAgAAAAQCY1kIBQJjWAJfMQQCY1oIBQJjWAJfMgQCZGEIBQJjWAJfMwQCZGIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAmFTAAIACQCUCgIFA25pbAkAmQoHBQJjUwUCY1QFAmNVBQJjWQUCY1oFAmRhBQJkYgJiRQEgZ2V0THBBc3NldEZyb21Qb29sQXNzZXRzUkVBRE9OTFkCAmRjAmRkAwMJAAACBQJkYwIsOExRVzhmN1A1ZDVQWk03R3RaRUJnYXFSUEdTelMzRGZQdWlYclVSSjRBSlMJAAACBQJkZAIFV0FWRVMHCQCUCgIFA25pbAUEdW5pdAQCZGUJAQV2YWx1ZQEJAJoIAgUEdGhpcwkBAmFrAQUCZGMEAmRmCQEFdmFsdWUBCQCaCAIFBHRoaXMJAQJhawEFAmRkBAJkZwkAnQgCBQR0aGlzCQECYXYCCQCkAwEFAmRlCQCkAwEFAmRmBAJkaAMJAAACBQJkZwUEdW5pdAUEdW5pdAkAsAICCQEFdmFsdWUBBQJkZwAECQCUCgIFA25pbAUCZGgCYkUBIWdldFBvb2xBZGRyZXNzRnJvbUxwQXNzZXRSRUFET05MWQECZGkJAJQKAgUDbmlsCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQJhRAEFAmRpAgACYkUBC2NvbnN0cnVjdG9yCAJkagJkawJiSwJiTAJiTQJiTgJkbAJkbQQCZG4JAQJiRgEFAmJFAwkAAAIFAmRuBQJkbgkAzAgCCQELU3RyaW5nRW50cnkCCQEBTwAJAQJiVAcFAmRqBQJkawUCYksFAmJMBQJiTQUCYk4FAmRsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWIABQJkbQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJFAQ1jb25zdHJ1Y3RvclYyAQJkbwQCZG4JAQJiRgEFAmJFAwkAAAIFAmRuBQJkbgQCZHAJAKcIAQkA2QQBBQJkbwMJAAACBQJkcAUCZHAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVIABQJkbwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJFAQ1jb25zdHJ1Y3RvclYzBAJiUAJiUQJiUgJiUwQCZG4JAQJiRgEFAmJFAwkAAAIFAmRuBQJkbgQCYnUJALUJAgkBAmFaAQkBAU8ABQFtCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFPAAkBAmJICwkAkQMCBQJidQABCQCRAwIFAmJ1AAIJAJEDAgUCYnUAAwkAkQMCBQJidQAECQCRAwIFAmJ1AAUJAJEDAgUCYnUABgkAkQMCBQJidQAHBQJiUAUCYlEFAmJSBQJiUwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJFAQ1jb25zdHJ1Y3RvclY0AgJkcQJkcgQCZG4JAQJiRgEFAmJFAwkAAAIFAmRuBQJkbgkAzAgCCQELU3RyaW5nRW50cnkCCQEBUwAFAmRxCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFUAAkAuQkCBQJkcgUBbQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJFAQ1jb25zdHJ1Y3RvclY1AQJkcwQCZG4JAQJiRgEFAmJFAwkAAAIFAmRuBQJkbgkAzAgCCQELU3RyaW5nRW50cnkCCQEBWAAFAmRzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkUBDWNvbnN0cnVjdG9yVjYCAmR0AmR1BAJkdgkAzAgCCQECYkYBBQJiRQkAzAgCAwkBAiE9AgkApggBBQJkdAUEdW5pdAYCKGludmFsaWQgdm90aW5nIGVtaXNzaW9uIGNvbnRyYWN0IGFkZHJlc3MFA25pbAMJAAACBQJkdgUCZHYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVkABQJkdAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWEACQC5CQIFAmR1BQFtBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkUBCXNldEFkbWlucwECZHcEAmRuCQECYkYBBQJiRQMJAAACBQJkbgUCZG4JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVcACQC5CQIFAmR3BQFtBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkUBD2FjdGl2YXRlTmV3UG9vbAgCYWYCYlgCYlkCZHgCZHkCZHoCY2UCZEEEAmRuCQECY3IBBQJiRQMJAAACBQJkbgUCZG4DCQEJaXNEZWZpbmVkAQkAoggBCQECYXoBBQJhZgkBAUsBCQCsAgIJAKwCAgINUG9vbCBhZGRyZXNzIAUCYWYCFCBhbHJlYWR5IHJlZ2lzdGVyZWQuBAJkQgkBAmNrAgUCYlgAAQQCZEMIBQJkQgJfMQQCZEQJAQJjawIFAmJZAwgFAmRCAl8zAAIAAQQCZEUIBQJkRAJfMQQCZEYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA8QcBCQERQGV4dHJOYXRpdmUoMTA2MikBBQJhZgkArAICAilObyBzY3JpcHQgaGFzIGJlZW4gZm91bmQgb24gcG9vbCBhY2NvdW50IAUCYWYEAmRHCQERQGV4dHJOYXRpdmUoMTA1NykBCQEBUQAEAmRICQECY3gCBQJiWAUCYlkDBQJkSAkBAUsBCQCsAgIJAKwCAgkArAICCQCsAgICBVBvb2wgBQJiWAIBLwUCYlkCHCBoYXMgYWxyZWFkeSBiZWVuIGFjdGl2YXRlZC4EAmRJCQEFdmFsdWUBCQCdCAIFBHRoaXMJAQJhbQIJAKQDAQUCZEMJAKQDAQUCZEUEAmRKAwkAAAIFAmJYAgVXQVZFUwUBbAkAbAYACgAACAkBBXZhbHVlAQkA7AcBCQDZBAEFAmJYCGRlY2ltYWxzAAAAAAUERE9XTgQCZEsDCQAAAgUCYlkCBVdBVkVTBQFsCQBsBgAKAAAICQEFdmFsdWUBCQDsBwEJANkEAQUCYlkIZGVjaW1hbHMAAAAABQRET1dOBAJkTAkAwggFBQJkeAUCZHkAAQAIBgQCYlcJALgIAQUCZEwEAmRNCQDYBAEFAmJXBAJkTgkA/AcECQERQGV4dHJOYXRpdmUoMTA2MikBBQJhZgIIYWN0aXZhdGUJAMwIAgUCYlgJAMwIAgUCYlkFA25pbAUDbmlsAwkAAAIFAmROBQJkTgMJAQIhPQIFAmROAgdzdWNjZXNzCQEBSwECI1Bvb2wgaW5pdGlhbGlzYXRpb24gZXJyb3IgaGFwcGVuZWQuBAJkcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFaAQkBAVgABAJkTwkA/AcEBQJkcwIOY3JlYXRlT3JVcGRhdGUJAMwIAgUCZE0JAMwIAgUCZHgJAMwIAgcFA25pbAUDbmlsAwkAAAIFAmRPBQJkTwQCZFAJAPwHBAUCZHMCCGFkZExhYmVsCQDMCAIFAmRNCQDMCAIFAWgFA25pbAUDbmlsAwkAAAIFAmRQBQJkUAQCZFEJAPwHBAUCZHMCB3NldExvZ28JAMwIAgUCZE0JAMwIAgUCZEEFA25pbAUDbmlsAwkAAAIFAmRRBQJkUQQCZFIJAPwHBAUCZHMCDWFkZEFzc2V0c0xpbmsJAMwIAgUCYlgJAMwIAgUCYlkJAMwIAgUCZE0FA25pbAUDbmlsAwkAAAIFAmRSBQJkUgQCZFMJAPwHBAUCZHMCGGluY3JlYXNlQXNzZXRQb29sc051bWJlcgkAzAgCBQJiWAUDbmlsBQNuaWwDCQAAAgUCZFMFAmRTCQCUCgIJAM4IAgkAzggCCAUCZEICXzIIBQJkRAJfMgkAzAgCBQJkTAkAzAgCCQEEQnVybgIFAmJXAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFtAgkApAMBBQJkQwkApAMBBQJkRQkBAmJVCwUCYWYJAKQDAQUBbwUCZE0FAmJYBQJiWQUCZEoFAmRLBQJkQwUCZEUFAWwFAmNlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhdAEFAmRNCQECY2YCBQJkQwUCZEUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF2AgkApAMBBQJkQwkApAMBBQJkRQkArAICAgQlc19fBQJkTQkAzAgCCQELU3RyaW5nRW50cnkCCQECYXoBBQJhZgkBAmNmAgUCZEMFAmRFCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhQgIFAmRDBQJkRQUCYWYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFEAQUCZE0FAmFmCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhQwEFAmFmBQJkTQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFlAQUCYWYFAmR6CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYXkBBQJhZgUBaQUDbmlsBQJkTQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRQEKbWFuYWdlUG9vbAICYWYCZFQEAmRuCQECYkYBBQJiRQMJAAACBQJkbgUCZG4EAmRVCQECY2kBBQJhZgQCYlYJAJEDAgUCZFUFAXcEAmRNCQCRAwIFAmRVBQF4BAJiWAkAkQMCBQJkVQUBeQQCYlkJAJEDAgUCZFUFAXoEAmRKCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZFUFAUEEAmRLCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZFUFAUIEAmRDCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZFUFAUMEAmRFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZFUFAUQEAmRWCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZFUFAUUEAmNlCQCRAwIFAmRVBQFGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhbQIJAKQDAQUCZEMJAKQDAQUCZEUJAQJiVQsFAmFmCQCkAwEFAmRUBQJkTQUCYlgFAmJZBQJkSgUCZEsFAmRDBQJkRQUCZFYFAmNlBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkUBBGVtaXQBAmRXBAJkWAgFAmJFBmNhbGxlcgQCZFkIBQJiRQxvcmlnaW5DYWxsZXIEAmRaCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAmFDAQkApQgBBQJkWAIdSW52YWxpZCBMUCBhZGRyZXNzIGNhbGxlZCBtZS4EAmVhCQDZBAEFAmRaBAJkcgkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEJAQFUAAUBbgUBbQQCZHEJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEBUwACKExlZ2FjeSBmYWN0b3J5IGNvbnRyYWN0IGRvZXMgbm90IGV4aXN0cy4DCQBnAgAABQJkVwUDbmlsAwkBD2NvbnRhaW5zRWxlbWVudAIFAmRyCQClCAEFAmRYCQCUCgIFA25pbAUCZHEJAJQKAgkAzAgCCQEHUmVpc3N1ZQMFAmVhBQJkVwYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmJFBmNhbGxlcgUCZFcFAmVhBQNuaWwCB3N1Y2Nlc3MCYkUBBGJ1cm4BAmViBAJkWAgFAmJFBmNhbGxlcgQCZFkIBQJiRQxvcmlnaW5DYWxsZXIEAmVjCQEFdmFsdWUBCQCRAwIIBQJiRQhwYXltZW50cwAABAJlZAkBBXZhbHVlAQgFAmVjBmFtb3VudAQCZWUJANgEAQkBBXZhbHVlAQgFAmVjB2Fzc2V0SWQEAmVmCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAmFDAQkApQgBBQJkWAIdSW52YWxpZCBMUCBhZGRyZXNzIGNhbGxlZCBtZS4DCQECIT0CBQJlZQUCZWYJAQFLAQIVSW52YWxpZCBhc3NldCBwYXNzZWQuAwkBAiE9AgUCZWIFAmVkCQEBSwECFkludmFsaWQgYW1vdW50IHBhc3NlZC4EAmVhCQDZBAEFAmVmCQCUCgIJAMwIAgkBBEJ1cm4CBQJlYQUCZWIFA25pbAIHc3VjY2VzcwJiRQEMbW9kaWZ5V2VpZ2h0AgJiVwJlZwQCZG4DCQAAAgkA2AQBCAgFAmJFBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEBWQACAAYJAQJiRgEFAmJFAwkAAAIFAmRuBQJkbgQCYUEJAQJhWgEJAQJhRAEFAmJXBAJlaAkBAmFlAQUCYUEEAmVpCQECYWUBBQFnBAJlagkBC3ZhbHVlT3JFbHNlAgkAnwgBBQJlaQAABAJkegkBC3ZhbHVlT3JFbHNlAgkAnwgBBQJlaAAABAJlawUCZWcEAmJ1CQC1CQIJAQJhWgEJAQFPAAUBbQQCZGoJAQJidwEFAmJ1BAJlbAkA/AcEBQJkagIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCYlcJAMwIAgUCYUEFA25pbAUDbmlsAwkAAAIFAmVsBQJlbAQCZW0DCQAAAgUCZWoAAAUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlaQAABQNuaWwEAmVuCQECYWcCBQJhQQAABAJlbwkAnwgBBQJlbgQCZXADCQAAAgUCZW8FBHVuaXQFA25pbAkAzAgCCQELRGVsZXRlRW50cnkBBQJlbgUDbmlsCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZWgFAmVrBQNuaWwFAmVtBQJlcAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRQENbW9kaWZ5V2VpZ2h0cwQCZXECZXICZXMCZXQEAmRuCQECYkYBBQJiRQMJAAACBQJkbgUCZG4EAmV1CQBpAgkAaAIABQUBZgBkBAJldgkAaQIJAGgCAAUFAWYAZAQCZXcJAGkCCQBoAgAFBQFmAGQEAmJ1CQC1CQIJAQJhWgEJAQFPAAUBbQQCZXgJAQJidwEFAmJ1BAJleQkBAmJ4AQUCYnUEAmV6CQECYWUBBQJlcQQCZUEJAQJhZQEFAmVyBAJlQgkBAmFlAQUCZXMEAmVDCQECYWUBBQJldAQCZUQJAQJiYwEFAmV6BAJlRQkBAmJjAQUCZUEEAmVGCQBlAgUCZUQFAmV3BAJlRwkAZQIFAmVFBQJldwMJAGcCAAAFAmVGCQEBSwEJAKwCAgIWaW52YWxpZCBidGNXZWlnaHROZXc6IAkApAMBBQJlRgMJAGcCAAAFAmVHCQEBSwEJAKwCAgIWaW52YWxpZCBldGhXZWlnaHROZXc6IAkApAMBBQJlRwQCZUgJAQJhWgEJAQJhQwEFAmVxBAJlSQkBAmFaAQkBAmFDAQUCZXIEAmVKCQECYVoBCQECYUMBBQJlcwQCZUsJAQJhWgEJAQJhQwEFAmV0BAJlTAkA/AcEBQJleAIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZUgJAMwIAgUCZXEFA25pbAUDbmlsAwkAAAIFAmVMBQJlTAQCZU0JAPwHBAUCZXgCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmVJCQDMCAIFAmVyBQNuaWwFA25pbAMJAAACBQJlTQUCZU0EAmVOCQD8BwQFAmV4Ag5vbk1vZGlmeVdlaWdodAkAzAgCBQJlSgkAzAgCBQJlcwUDbmlsBQNuaWwDCQAAAgUCZU4FAmVOBAJlTwkA/AcEBQJleAIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZUsJAMwIAgUCZXQFA25pbAUDbmlsAwkAAAIFAmVPBQJlTwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZXoFAmVGCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlQQUCZUcJAMwIAgkBDEludGVnZXJFbnRyeQIFAmVCBQJldQkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZUMFAmV2CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWcCBQJlcQAABQJlRAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFnAgUCZXIAAAUCZUUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZwIFAmVzAAAFAmV1CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWcCBQJldAAABQJldgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJFARhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwCAmFGAmFHBAJlUAQCYmcJAKAIAQkBAmFFAgUCYUYFAmFHAwkAAQIFAmJnAgdCb29sZWFuBAJjVgUCYmcFAmNWBwkAlAoCBQNuaWwFAmVQAmJFARZzZXRXeEVtaXNzaW9uUG9vbExhYmVsAgJhRgJhRwQCZG4JAQJjcgEFAmJFAwkAAAIFAmRuBQJkbgkAlAoCCQDMCAIJAQxCb29sZWFuRW50cnkCCQECYUUCBQJhRgUCYUcGBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkUBGWRlbGV0ZVd4RW1pc3Npb25Qb29sTGFiZWwCAmFGAmFHBAJkbgMJAAACCAUCYkUGY2FsbGVyBQR0aGlzBgkBAmNyAQUCYkUDCQAAAgUCZG4FAmRuCQCUCgIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFFAgUCYUYFAmFHBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkUBEm9uVmVyaWZpY2F0aW9uTG9zcwECYVUEAmRuAwkAAAIJANgEAQgIBQJiRQZjYWxsZXIFYnl0ZXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAVgAAgAGCQECYkYBBQJiRQMJAAACBQJkbgUCZG4EAmR1CQECYnkABAJlUQMJAGYCCQCQAwEFAmR1AAAGCQEBSwECFGludmFsaWQgcHJpY2UgYXNzZXRzAwkAAAIFAmVRBQJlUQoBAmVSAgJlUwJlVAQCY1AJAPwHBAUEdGhpcwIZZGVsZXRlV3hFbWlzc2lvblBvb2xMYWJlbAkAzAgCBQJhVQkAzAgCBQJlVAUDbmlsBQNuaWwDCQAAAgUCY1AFAmNQBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAJlVQoAAmVWBQJkdQoAAmVXCQCQAwEFAmVWCgACZVgFBHVuaXQKAQJlWQICZVoCZmEDCQBnAgUCZmEFAmVXBQJlWgkBAmVSAgUCZVoJAJEDAgUCZVYFAmZhCgECZmICAmVaAmZhAwkAZwIFAmZhBQJlVwUCZVoJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMwkBAmZiAgkBAmVZAgkBAmVZAgkBAmVZAgkBAmVZAgkBAmVZAgkBAmVZAgkBAmVZAgkBAmVZAgkBAmVZAgkBAmVZAgkBAmVZAgkBAmVZAgkBAmVZAgUCZVgAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAwkAAAIFAmVVBQJlVQkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkUBKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkBAmFmBAJkVQkBAmNpAQUCYWYEAmFxCQCUCgIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkVQUBQwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRVBQFEBAJmYwkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYXABBQJhcQcEAmZkCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhcwAHCQCUCgIFA25pbAMFAmZkBgUCZmMCYkUBEGdldEluRmVlUkVBRE9OTFkBAmFmBAJmZQkBAmN1AwkBAmFIAQUCYWYJAQJhSQAAAAkAlAoCBQNuaWwFAmZlAmJFARFnZXRPdXRGZWVSRUFET05MWQECYWYEAmZlCQECY3UDCQECYUsBBQJhZgkBAmFMAAkAawMACgUBYgCQTgkAlAoCBQNuaWwFAmZlAmJFARJnZXRTd2FwRmVlUkVBRE9OTFkBAmZmBAJmZwQCYmcJAJ0IAgUEdGhpcwkBAmFKAQUCZmYDCQABAgUCYmcCBlN0cmluZwQCYmgFAmJnBAJmaAkAtQkCBQJiaAUBbQQCZmkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJmaAABBAJmagkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmZoAAIJAJQKAgUCZmkFAmZqAwkAAQIFAmJnAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IJAJQKAgUDbmlsBQJmZwJiRQEQcG9vbEluZm9SRUFET05MWQICZmsCZmwEAmZtCQCaCAIFBHRoaXMJAQJhawEFAmZrBAJmbgkAmggCBQR0aGlzCQECYWsBBQJmbAQCZm8JAJ0IAgUEdGhpcwkBAmFCAgkBBXZhbHVlAQUCZm0JAQV2YWx1ZQEFAmZuBAJmcAkAnQgCBQR0aGlzCQECYUMBCQEFdmFsdWUBBQJmbwQCZEgDAwkBCWlzRGVmaW5lZAEFAmZtCQEJaXNEZWZpbmVkAQUCZm4HCQEJaXNEZWZpbmVkAQUCZm8HBAJmcQMFAmRICQCUCgIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEFAmZvCQECYmQBCQEFdmFsdWUBBQJmcAUEdW5pdAkAlAoCBQNuaWwFAmZxAmJFARVnZXRQb29sU3RhdHVzUkVBRE9OTFkBAmFmBAJjagkAtQkCCQECYVoBCQECYXoBBQJhZgUBbQQCYW4JAJEDAgUCY2oAAQQCYW8JAJEDAgUCY2oAAgQCY0EJALUJAgkBAmFaAQkBAmFtAgUCYW4FAmFvBQFtCQCUCgIFA25pbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNBBQF3AmJFARVnZXRQb29sQ29uZmlnUkVBRE9OTFkBAmFmBAJjagkAtQkCCQECYVoBCQECYXoBBQJhZgUBbQQCYW4JAJEDAgUCY2oAAQQCYW8JAJEDAgUCY2oAAgQCY0EJALUJAgkBAmFaAQkBAmFtAgUCYW4FAmFvBQFtCQCUCgIFA25pbAUCY0ECYkUBIGdldFBvb2xDb25maWdCeUxwQXNzZXRJZFJFQURPTkxZAQJkTQQCY2oJALUJAgkBAmFaAQkBAmF0AQUCZE0FAW0EAmFuCQCRAwIFAmNqAAEEAmFvCQCRAwIFAmNqAAIEAmNBCQC1CQIJAQJhWgEJAQJhbQIFAmFuBQJhbwUBbQkAlAoCBQNuaWwFAmNBAmJFARJwb29sRXhpc3RzUkVBRE9OTFkCAmFGAmFHCQCUCgIFA25pbAkBAmN4AgUCYUYFAmFHAmJFARtza2lwT3JkZXJWYWxpZGF0aW9uUkVBRE9OTFkBAmFmCQCUCgIFA25pbAkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYU0BBQJhZgcCYkUBGmdldENoYW5nZUFtcENvbmZpZ1JFQURPTkxZAQJhZgQCZnIJARFAZXh0ck5hdGl2ZSgxMDU1KQEJAQJhTgEFAmFmBAJmcwkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAmFPAQUCYWYEAmZ0CQERQGV4dHJOYXRpdmUoMTA1NSkBCQECYVABBQJhZgkAlAoCBQNuaWwJAMwIAgUCZnIJAMwIAgUCZnMJAMwIAgUCZnQFA25pbAJiRQEVZ2V0UG9vbFdlaWdodFJFQURPTkxZAQJiVwQCYWYJAQJhWgEJAQJhRAEFAmJXBAJmdQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYWUBBQJhZgAACQCUCgIFA25pbAUCZnUCYkUBCmRlbGV0ZVBvb2wBAmFBBAJkVQkBAmNpAQUCYUEEAmRuAwkAAAIJAKUIAQgFAmJFBmNhbGxlcgkBAmNFAQUCYUEDCQECY00BBQJhQQYJAQFLAQIRUG9vbCBpcyBub3QgZW1wdHkJAQJiRgEFAmJFAwkAAAIFAmRuBQJkbgQCZnYDCQAAAgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYWUBBQJhQQAAAAAGCQEBSwECF1Bvb2wgd2VpZ2h0IGlzIG5vdCBaZXJvAwkAAAIFAmZ2BQJmdgQCZncDCQAAAgkAkQMCBQJkVQUBdwkApAMBBQFyBgkBAUsBAhlQb29sIG11c3QgYmUgU0hVVERPV04gKDQpAwkAAAIFAmZ3BQJmdwQCZngJAQJjRAEFAmFBBAJhRggFAmZ4Al8xBAJhRwgFAmZ4Al8yBAJiVwgFAmZ4Al8zBAJhbggFAmZ4Al80BAJhbwgFAmZ4Al81BAJjRwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAVoABAJmeQkA/AcEBQJjRwIKZGVsZXRlUG9vbAkAzAgCBQJhRgkAzAgCBQJhRwUDbmlsBQNuaWwDCQAAAgUCZnkFAmZ5BAJkdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAVkABAJmegkA/AcEBQJkdAIKZGVsZXRlUG9vbAkAzAgCBQJhRgkAzAgCBQJhRwUDbmlsBQNuaWwDCQAAAgUCZnoFAmZ6BAJkcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAVgABAJmQQkA/AcEBQJkcwIKZGVsZXRlUG9vbAkAzAgCBQJhRgkAzAgCBQJhRwUDbmlsBQNuaWwDCQAAAgUCZkEFAmZBCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhQwEFAmFBCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhegEFAmFBCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhdgIJAKQDAQUCYW4JAKQDAQUCYW8JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFCAgUCYW4FAmFvCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhbQIJAKQDAQUCYW4JAKQDAQUCYW8JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmF0AQUCYlcJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFEAQUCYlcJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFFAgUCYUYFAmFHCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhZQEFAmFBCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJheQEFAmFBCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhSAEFAmFBCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhSwEFAmFBCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhTQEFAmFBCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhTgEFAmFBCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhTwEFAmFBCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhUAEFAmFBBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmZCAQJmQwAEAmZEBAJiZwkBAmJ6AAMJAAECBQJiZwIKQnl0ZVZlY3RvcgQCYkcFAmJnBQJiRwMJAAECBQJiZwIEVW5pdAgFAmZCD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJmQglib2R5Qnl0ZXMJAJEDAggFAmZCBnByb29mcwAABQJmRIROJg4=", "height": 2692775, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CBsJMtfca1ASq6C6nftddgzYuZ24BxZbrT6o3Z7jUqpH Next: FsMwn7j7hKG8RYngfkw1ytMpHno4E3TrQRyWHAGniveX Diff:
OldNewDifferences
2121
2222 let j = "WAVES"
2323
24-let k = ((100 * 1000) * 1000)
24+let k = "factory_v2.ride"
2525
26-let l = "__"
26+let l = ((100 * 1000) * 1000)
2727
28-let m = ""
28+let m = "__"
2929
30-let n = 1
30+let n = ""
3131
32-let o = 2
32+let o = 1
3333
34-let p = 3
34+let p = 2
3535
36-let q = 4
36+let q = 3
3737
38-let r = 1
38+let r = 4
3939
40-let s = 2
40+let s = 1
4141
42-let t = 3
42+let t = 2
4343
44-let u = 1
44+let u = 3
4545
46-let v = 2
46+let v = 1
4747
48-let w = 3
48+let w = 2
4949
50-let x = 4
50+let x = 3
5151
52-let y = 5
52+let y = 4
5353
54-let z = 6
54+let z = 5
5555
56-let A = 7
56+let A = 6
5757
58-let B = 8
58+let B = 7
5959
60-let C = 9
60+let C = 8
6161
62-let D = 10
62+let D = 9
6363
64-let E = 11
64+let E = 10
6565
66-let F = "WX_EMISSION"
66+let F = 11
6767
68-let G = [F]
68+let G = "WX_EMISSION"
6969
70-func H () = "%s__allowedLpScriptHash"
70+let H = [G]
71+
72+func I (J) = makeString([k, ": ", J], "")
7173
7274
73-func I () = "%s__allowedLpStableScriptHash"
75+func K (J) = throw(I(J))
7476
7577
76-func J () = "%s__swapContract"
78+func L () = "%s__allowedLpScriptHash"
7779
7880
79-func K () = "%s__factoryConfig"
81+func M () = "%s__allowedLpStableScriptHash"
8082
8183
82-func L () = "%s__lpTokensList"
84+func N () = "%s__swapContract"
8385
8486
85-func M () = "%s%s__pool__scriptHash"
87+func O () = "%s__factoryConfig"
8688
8789
88-func N () = "%s%s__matcher__publicKey"
90+func P () = "%s__lpTokensList"
8991
9092
91-func O () = "%s__legacyFactoryContract"
93+func Q () = "%s%s__pool__scriptHash"
9294
9395
94-func P () = "%s__legacyPools"
96+func R () = "%s%s__matcher__publicKey"
9597
9698
97-func Q () = "%s__managerPublicKey"
99+func S () = "%s__legacyFactoryContract"
98100
99101
100-func R () = "%s__managerVaultAddress"
102+func T () = "%s__legacyPools"
101103
102104
103-func S () = "%s__adminPubKeys"
105+func U () = "%s__managerPublicKey"
104106
105107
106-func T () = "%s__assetsStoreContract"
108+func V () = "%s__managerVaultAddress"
107109
108110
109-func U () = "%s__votingEmissionContract"
111+func W () = "%s__adminPubKeys"
110112
111113
112-func V () = makeString(["%s", "priceAssets"], l)
114+func X () = "%s__assetsStoreContract"
113115
114116
115-func W () = "%s__priceDecimals"
117+func Y () = "%s__votingEmissionContract"
116118
117119
118-func X () = "%s__shutdown"
120+func Z () = "%s__userPoolsContract"
119121
120122
121-func Y () = "%s__nextInternalAssetId"
123+func aa () = makeString(["%s", "priceAssets"], m)
122124
123125
124-func Z (aa) = ("%s%s__poolWeight__" + aa)
126+func ab () = "%s__priceDecimals"
125127
126128
127-func ab (aa,ac) = ((("%s%s__poolWeight__" + aa) + "__") + toString(ac))
129+func ac () = "%s__shutdown"
128130
129131
130-func ad (ae) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ae))
132+func ad () = "%s__nextInternalAssetId"
131133
132134
133-func af (ag) = ("%s%s%s__mappings__baseAsset2internalId__" + ag)
135+func ae (af) = ("%s%s__poolWeight__" + af)
134136
135137
136-func ah (ai,aj) = (((("%d%d%s__" + ai) + "__") + aj) + "__config")
138+func ag (af,ah) = ((("%s%s__poolWeight__" + af) + "__") + toString(ah))
137139
138140
139-func ak (al) = {
140- let am = al
141- let ai = am._1
142- let aj = am._2
143- makeString(["%d%d%s", toString(ai), toString(aj), "oneTokenOperationsDisabled"], l)
141+func ai (aj) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(aj))
142+
143+
144+func ak (al) = ("%s%s%s__mappings__baseAsset2internalId__" + al)
145+
146+
147+func am (an,ao) = (((("%d%d%s__" + an) + "__") + ao) + "__config")
148+
149+
150+func ap (aq) = {
151+ let ar = aq
152+ let an = ar._1
153+ let ao = ar._2
154+ makeString(["%d%d%s", toString(an), toString(ao), "oneTokenOperationsDisabled"], m)
144155 }
145156
146157
147-func an () = makeString(["%s", "oneTokenOperationsDisabled"], l)
158+func as () = makeString(["%s", "oneTokenOperationsDisabled"], m)
148159
149160
150-func ao (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2Pool")
161+func at (au) = (("%s%s%s__" + au) + "__mappings__lpAsset2Pool")
151162
152163
153-func aq (ar,as) = (((("%d%d%s%s__" + ar) + "__") + as) + "__mappings__PoolAssets2LpAsset")
164+func av (aw,ax) = (((("%d%d%s%s__" + aw) + "__") + ax) + "__mappings__PoolAssets2LpAsset")
154165
155166
156-func at (aa) = ("%s%s__spread__" + aa)
167+func ay (af) = ("%s%s__spread__" + af)
157168
158169
159-func au (av) = (("%s%s%s__" + av) + "__mappings__poolContract2PoolAssets")
170+func az (aA) = (("%s%s%s__" + aA) + "__mappings__poolContract2PoolAssets")
160171
161172
162-func aw (ar,as) = (((("%d%d%s%s__" + toString(ar)) + "__") + toString(as)) + "__mappings__poolAssets2PoolContract")
173+func aB (aw,ax) = (((("%d%d%s%s__" + toString(aw)) + "__") + toString(ax)) + "__mappings__poolAssets2PoolContract")
163174
164175
165-func ax (av) = (("%s%s%s__" + av) + "__mappings__poolContract2LpAsset")
176+func aC (aA) = (("%s%s%s__" + aA) + "__mappings__poolContract2LpAsset")
166177
167178
168-func ay (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2PoolContract")
179+func aD (au) = (("%s%s%s__" + au) + "__mappings__lpAsset2PoolContract")
169180
170181
171-func az (aA,aB) = ((("%s%s%s__wxEmission__" + aA) + "__") + aB)
182+func aE (aF,aG) = ((("%s%s%s__wxEmission__" + aF) + "__") + aG)
172183
173184
174-func aC (aa) = ("%s%s__inFee__" + aa)
185+func aH (af) = ("%s%s__inFee__" + af)
175186
176187
177-func aD () = "%s__inFeeDefault"
188+func aI () = "%s__inFeeDefault"
178189
179190
180-func aE (aa) = ("%s%s__swapFee__" + aa)
191+func aJ (af) = ("%s%s__swapFee__" + af)
181192
182193
183-func aF (aa) = ("%s%s__outFee__" + aa)
194+func aK (af) = ("%s%s__outFee__" + af)
184195
185196
186-func aG () = "%s__outFeeDefault"
197+func aL () = "%s__outFeeDefault"
187198
188199
189-func aH (aa) = ("%s%s__skipOrderValidation__" + aa)
200+func aM (af) = ("%s%s__skipOrderValidation__" + af)
190201
191202
192-func aI (aa) = ("%s%s__changeAmpDelay__" + aa)
203+func aN (af) = ("%s%s__changeAmpDelay__" + af)
193204
194205
195-func aJ (aa) = ("%s%s__changeAmpDelta__" + aa)
206+func aO (af) = ("%s%s__changeAmpDelta__" + af)
196207
197208
198-func aK (aa) = ("%s%s__changeAmpTarget__" + aa)
209+func aP (af) = ("%s%s__changeAmpTarget__" + af)
199210
200211
201-func aL () = "%s__sWavesProxyAddress"
212+func aQ () = "%s__sWavesProxyAddress"
202213
203214
204-func aM () = "%s__sWavesAssetId"
215+func aR () = "%s__sWavesAssetId"
205216
206217
207-func aN () = "%s__stakingProfitAddress"
218+func aS () = "%s__stakingProfitAddress"
208219
209220
210-func aO (aa,aP) = makeString(["%s%s%s", "leasedRatio", aa, aP], l)
221+func aT (af,aU) = makeString(["%s%s%s", "leasedRatio", af, aU], m)
211222
212223
213-func aQ (aP) = makeString(["%s%s", "leasedRatioDefault", aP], l)
224+func aV (aU) = makeString(["%s%s", "leasedRatioDefault", aU], m)
214225
215226
216-func aR (aa,aP) = makeString(["%s%s%s", "leasedRatioTolerance", aa, aP], l)
227+func aW (af,aU) = makeString(["%s%s%s", "leasedRatioTolerance", af, aU], m)
217228
218229
219-func aS (aa,aP) = makeString(["%s%s%s", "minBalance", aa, aP], l)
230+func aX (af,aU) = makeString(["%s%s%s", "minBalance", af, aU], m)
220231
221232
222-func aT (aP) = makeString(["%s%s", "minBalanceDefault", aP], l)
233+func aY (aU) = makeString(["%s%s", "minBalanceDefault", aU], m)
223234
224235
225-func aU (aV) = valueOrErrorMessage(getString(this, aV), ("No data for this.key=" + aV))
236+func aZ (ba) = valueOrErrorMessage(getString(this, ba), ("No data for this.key=" + ba))
226237
227238
228-func aW (aV) = valueOrErrorMessage(getBoolean(this, aV), ("No data for this.key=" + aV))
239+func bb (ba) = valueOrErrorMessage(getBoolean(this, ba), ("No data for this.key=" + ba))
229240
230241
231-func aX (aV) = valueOrErrorMessage(getInteger(this, aV), ("No data for this.key=" + aV))
242+func bc (ba) = valueOrErrorMessage(getInteger(this, ba), ("No data for this.key=" + ba))
232243
233244
234-func aY (aZ) = if ((aZ == j))
245+func bd (be) = if ((be == j))
235246 then unit
236- else fromBase58String(aZ)
247+ else fromBase58String(be)
237248
238249
239-func ba () = {
240- let bb = getString(R())
241- if ($isInstanceOf(bb, "String"))
250+func bf () = {
251+ let bg = getString(V())
252+ if ($isInstanceOf(bg, "String"))
242253 then {
243- let bc = bb
244- addressFromStringValue(bc)
254+ let bh = bg
255+ addressFromStringValue(bh)
245256 }
246257 else this
247258 }
248259
249260
250-let bd = 1
261+let bi = 1
251262
252-let be = 2
263+let bj = 2
253264
254-let bf = 3
265+let bk = 3
255266
256-let bg = 4
267+let bl = 4
257268
258-let bh = 5
269+let bm = 5
259270
260-let bi = 6
271+let bn = 6
261272
262-let bj = 7
273+let bo = 7
263274
264-let bk = 8
275+let bp = 8
265276
266-let bl = 9
277+let bq = 9
267278
268-let bm = 10
279+let br = 10
269280
270-let bn = 11
281+let bs = 11
271282
272-func bo (bp) = addressFromStringValue(bp[be])
283+func bt (bu) = addressFromStringValue(bu[bj])
273284
274285
275-func bq (bp) = addressFromStringValue(bp[bh])
286+func bv (bu) = addressFromStringValue(bu[bm])
276287
277288
278-func br (bp) = addressFromStringValue(bp[bd])
289+func bw (bu) = addressFromStringValue(bu[bi])
279290
280291
281-func bs (bp) = addressFromStringValue(bp[bm])
292+func bx (bu) = addressFromStringValue(bu[br])
282293
283294
284-func bt () = {
285- let bb = getString(V())
286- if ($isInstanceOf(bb, "String"))
295+func by () = {
296+ let bg = getString(aa())
297+ if ($isInstanceOf(bg, "String"))
287298 then {
288- let bc = bb
289- if ((size(bc) == 0))
299+ let bh = bg
300+ if ((size(bh) == 0))
290301 then nil
291- else split_4C(bc, l)
302+ else split_4C(bh, m)
292303 }
293304 else nil
294305 }
295306
296307
297-func bu () = {
298- let bv = ba()
299- let bb = getString(bv, Q())
300- if ($isInstanceOf(bb, "String"))
308+func bz () = {
309+ let bA = bf()
310+ let bg = getString(bA, U())
311+ if ($isInstanceOf(bg, "String"))
301312 then {
302- let bc = bb
303- fromBase58String(bc)
313+ let bh = bg
314+ fromBase58String(bh)
304315 }
305- else if ($isInstanceOf(bb, "Unit"))
316+ else if ($isInstanceOf(bg, "Unit"))
306317 then unit
307318 else throw("Match error")
308319 }
309320
310321
311-let bw = throw("Permission denied")
322+let bB = K("Permission denied")
312323
313-let bx = throw("Test error here")
324+let bC = K("Test error here")
314325
315-func by (bz) = if ((bz.caller == this))
326+func bD (bE) = if ((bE.caller == this))
316327 then true
317- else bw
328+ else bB
318329
319330
320-func bA (bz) = {
321- let bb = bu()
322- if ($isInstanceOf(bb, "ByteVector"))
331+func bF (bE) = {
332+ let bg = bz()
333+ if ($isInstanceOf(bg, "ByteVector"))
323334 then {
324- let bB = bb
325- if ((bz.callerPublicKey == bB))
335+ let bG = bg
336+ if ((bE.callerPublicKey == bG))
326337 then true
327- else bw
338+ else bB
328339 }
329- else if ($isInstanceOf(bb, "Unit"))
330- then by(bz)
340+ else if ($isInstanceOf(bg, "Unit"))
341+ then bD(bE)
331342 else throw("Match error")
332343 }
333344
334345
335-func bC (bD,bE,bF,bG,bH,bI,bJ,bK,bL,bM,bN) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bD, bE, bF, bG, bH, bI, bJ, bK, bL, bM, bN], l)
346+func bH (bI,bJ,bK,bL,bM,bN,bO,bP,bQ,bR,bS) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bI, bJ, bK, bL, bM, bN, bO, bP, bQ, bR, bS], m)
336347
337348
338-func bO (bD,bE,bF,bG,bH,bI,bJ) = makeString(["%s%s%s%s%s%s", bD, bE, bF, bG, bH, bI, bJ], l)
349+func bT (bI,bJ,bK,bL,bM,bN,bO) = makeString(["%s%s%s%s%s%s", bI, bJ, bK, bL, bM, bN, bO], m)
339350
340351
341-func bP (aa,bQ,bR,bS,bT,bU,bV,bW,bX,bY,bZ) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", aa, bQ, bR, bS, bT, toString(bU), toString(bV), toString(bW), toString(bX), toString(bY), bZ], l)
352+func bU (af,bV,bW,bX,bY,bZ,ca,cb,cc,cd,ce) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, bV, bW, bX, bY, toString(bZ), toString(ca), toString(cb), toString(cc), toString(cd), ce], m)
342353
343354
344-func ca (cb,cc) = makeString(["%d%d", toString(cb), toString(cc)], l)
355+func cf (cg,ch) = makeString(["%d%d", toString(cg), toString(ch)], m)
345356
346357
347-func cd (aa) = {
348- let ce = split(aU(au(aa)), l)
349- let ai = ce[1]
350- let aj = ce[2]
351- split(aU(ah(ai, aj)), l)
358+func ci (af) = {
359+ let cj = split(aZ(az(af)), m)
360+ let an = cj[1]
361+ let ao = cj[2]
362+ split(aZ(am(an, ao)), m)
352363 }
353364
354365
355-func cf (cg,ch) = {
356- let ci = valueOrElse(getInteger(this, af(cg)), 0)
357- let cj = valueOrElse(getInteger(this, Y()), 0)
358- let ck = if ((ci == 0))
366+func ck (cl,cm) = {
367+ let cn = valueOrElse(getInteger(this, ak(cl)), 0)
368+ let co = valueOrElse(getInteger(this, ad()), 0)
369+ let cp = if ((cn == 0))
359370 then {
360- let cl = (cj + ch)
361- $Tuple3(cl, [IntegerEntry(Y(), cl), IntegerEntry(af(cg), cl), StringEntry(ad(cl), cg)], true)
371+ let cq = (co + cm)
372+ $Tuple3(cq, [IntegerEntry(ad(), cq), IntegerEntry(ak(cl), cq), StringEntry(ai(cq), cl)], true)
362373 }
363- else $Tuple3(ci, nil, false)
364- ck
374+ else $Tuple3(cn, nil, false)
375+ cp
365376 }
366377
367378
368-func cm (bz) = {
369- let cn = split(valueOrElse(getString(S()), m), l)
370- if (containsElement(cn, toBase58String(bz.callerPublicKey)))
379+func cr (bE) = {
380+ let cs = split(valueOrElse(getString(W()), n), m)
381+ if (containsElement(cs, toBase58String(bE.callerPublicKey)))
371382 then true
372383 else {
373- let co = bA(bz)
374- if ((co == co))
384+ let ct = bF(bE)
385+ if ((ct == ct))
375386 then true
376387 else throw("Strict value is not equal to itself.")
377388 }
378389 }
379390
380391
381-func cp (aV,cq,cr) = valueOrElse(getInteger(this, aV), valueOrElse(getInteger(this, cq), cr))
392+func cu (ba,cv,cw) = valueOrElse(getInteger(this, ba), valueOrElse(getInteger(this, cv), cw))
382393
383394
384-func cs (aA,aB) = {
385- let ai = getInteger(af(aA))
386- let aj = getInteger(af(aB))
387- if (if ((ai == unit))
395+func cx (aF,aG) = {
396+ let an = getInteger(ak(aF))
397+ let ao = getInteger(ak(aG))
398+ if (if ((an == unit))
388399 then true
389- else (aj == unit))
400+ else (ao == unit))
390401 then false
391402 else {
392- let ct = toString(value(ai))
393- let cu = toString(value(aj))
394- let cv = getString(ah(ct, cu))
395- let cw = getString(ah(cu, ct))
396- let cx = if ((cv != unit))
403+ let cy = toString(value(an))
404+ let cz = toString(value(ao))
405+ let cA = getString(am(cy, cz))
406+ let cB = getString(am(cz, cy))
407+ let cC = if ((cA != unit))
397408 then true
398- else (cw != unit)
399- cx
409+ else (cB != unit)
410+ cC
400411 }
401412 }
402413
403414
404-@Callable(bz)
405-func getSwapContractREADONLY () = $Tuple2(nil, aU(J()))
415+func cD (aA) = {
416+ let cj = {
417+ let bg = getString(az(aA))
418+ if ($isInstanceOf(bg, "String"))
419+ then {
420+ let bh = bg
421+ split(bh, m)
422+ }
423+ else K(makeString([aA, "pool is not found"], " "))
424+ }
425+ let an = parseIntValue(cj[1])
426+ let ao = parseIntValue(cj[2])
427+ let aF = getStringValue(ai(an))
428+ let aG = getStringValue(ai(ao))
429+ let bW = getStringValue(aC(aA))
430+ $Tuple5(aF, aG, bW, an, ao)
431+ }
432+
433+
434+func cE (aA) = {
435+ let cF = cD(aA)
436+ let aF = cF._1
437+ let aG = cF._2
438+ let bW = cF._3
439+ let an = cF._4
440+ let ao = cF._5
441+ let cG = addressFromStringValue(getStringValue(Z()))
442+ let cH = invoke(cG, "getPoolCreatorREADONLY", [aF, aG], nil)
443+ cH
444+ }
445+
446+
447+func cI (cJ,cK) = {
448+ let cL = addressFromStringValue(cJ)
449+ if ((cK == "WAVES"))
450+ then wavesBalance(cL).regular
451+ else {
452+ let aU = fromBase58String(cK)
453+ assetBalance(cL, aU)
454+ }
455+ }
456+
457+
458+func cM (aA) = {
459+ let cN = cD(aA)
460+ let aF = cN._1
461+ let aG = cN._2
462+ let bW = cN._3
463+ let an = cN._4
464+ let ao = cN._5
465+ if ((cI(aA, aF) == 0))
466+ then (cI(aA, aG) == 0)
467+ else false
468+ }
469+
470+
471+@Callable(bE)
472+func getSwapContractREADONLY () = $Tuple2(nil, aZ(N()))
406473
407474
408475
409-@Callable(bz)
410-func getPoolLeaseConfigREADONLY (aa,aP) = {
411- let cy = {
412- let bb = getInteger(this, aO(aa, aP))
413- if ($isInstanceOf(bb, "Int"))
476+@Callable(bE)
477+func getPoolLeaseConfigREADONLY (af,aU) = {
478+ let cO = {
479+ let bg = getInteger(this, aT(af, aU))
480+ if ($isInstanceOf(bg, "Int"))
414481 then {
415- let cz = bb
416- $Tuple2(true, min([100, max([0, cz])]))
482+ let cP = bg
483+ $Tuple2(true, min([100, max([0, cP])]))
417484 }
418485 else {
419- let cA = getInteger(this, aQ(aP))
420- if ($isInstanceOf(cA, "Int"))
486+ let cQ = getInteger(this, aV(aU))
487+ if ($isInstanceOf(cQ, "Int"))
421488 then {
422- let cB = cA
423- $Tuple2(true, min([100, max([0, cB])]))
489+ let cR = cQ
490+ $Tuple2(true, min([100, max([0, cR])]))
424491 }
425492 else $Tuple2(false, 0)
426493 }
427494 }
428- let cC = cy._1
429- let cD = cy._2
430- let cE = {
431- let bb = getInteger(this, aS(aa, aP))
432- if ($isInstanceOf(bb, "Int"))
495+ let cS = cO._1
496+ let cT = cO._2
497+ let cU = {
498+ let bg = getInteger(this, aX(af, aU))
499+ if ($isInstanceOf(bg, "Int"))
433500 then {
434- let cF = bb
435- max([0, cF])
501+ let cV = bg
502+ max([0, cV])
436503 }
437504 else {
438- let cA = getInteger(this, aT(aP))
439- if ($isInstanceOf(cA, "Int"))
505+ let cQ = getInteger(this, aY(aU))
506+ if ($isInstanceOf(cQ, "Int"))
440507 then {
441- let cG = cA
442- max([0, cG])
508+ let cW = cQ
509+ max([0, cW])
443510 }
444511 else 0
445512 }
446513 }
447- let cH = if ((aP == "WAVES"))
448- then $Tuple3(valueOrElse(getString(this, aL()), ""), getString(this, valueOrElse(aM(), "")), c)
514+ let cX = if ((aU == "WAVES"))
515+ then $Tuple3(valueOrElse(getString(this, aQ()), ""), getString(this, valueOrElse(aR(), "")), c)
449516 else $Tuple3("", "", 0)
450- let cI = cH._1
451- let cJ = cH._2
452- let cK = cH._3
453- let cL = valueOrElse(getString(this, aN()), "")
454- $Tuple2(nil, $Tuple7(cC, cD, cE, cI, cJ, cK, cL))
517+ let cY = cX._1
518+ let cZ = cX._2
519+ let da = cX._3
520+ let db = valueOrElse(getString(this, aS()), "")
521+ $Tuple2(nil, $Tuple7(cS, cT, cU, cY, cZ, da, db))
455522 }
456523
457524
458525
459-@Callable(bz)
460-func getLpAssetFromPoolAssetsREADONLY (cM,cN) = if (if ((cM == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
461- then (cN == "WAVES")
526+@Callable(bE)
527+func getLpAssetFromPoolAssetsREADONLY (dc,dd) = if (if ((dc == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
528+ then (dd == "WAVES")
462529 else false)
463530 then $Tuple2(nil, unit)
464531 else {
465- let cO = value(getInteger(this, af(cM)))
466- let cP = value(getInteger(this, af(cN)))
467- let cQ = getString(this, aq(toString(cO), toString(cP)))
468- let cR = if ((cQ == unit))
532+ let de = value(getInteger(this, ak(dc)))
533+ let df = value(getInteger(this, ak(dd)))
534+ let dg = getString(this, av(toString(de), toString(df)))
535+ let dh = if ((dg == unit))
469536 then unit
470- else drop(value(cQ), 4)
471- $Tuple2(nil, cR)
537+ else drop(value(dg), 4)
538+ $Tuple2(nil, dh)
472539 }
473540
474541
475542
476-@Callable(bz)
477-func getPoolAddressFromLpAssetREADONLY (cS) = $Tuple2(nil, valueOrElse(getString(this, ay(cS)), ""))
543+@Callable(bE)
544+func getPoolAddressFromLpAssetREADONLY (di) = $Tuple2(nil, valueOrElse(getString(this, aD(di)), ""))
478545
479546
480547
481-@Callable(bz)
482-func constructor (cT,cU,bF,bG,bH,bI,cV,cW) = {
483- let cX = bA(bz)
484- if ((cX == cX))
485- then [StringEntry(K(), bO(cT, cU, bF, bG, bH, bI, cV)), IntegerEntry(W(), cW)]
548+@Callable(bE)
549+func constructor (dj,dk,bK,bL,bM,bN,dl,dm) = {
550+ let dn = bF(bE)
551+ if ((dn == dn))
552+ then [StringEntry(O(), bT(dj, dk, bK, bL, bM, bN, dl)), IntegerEntry(ab(), dm)]
486553 else throw("Strict value is not equal to itself.")
487554 }
488555
489556
490557
491-@Callable(bz)
492-func constructorV2 (cY) = {
493- let cX = bA(bz)
494- if ((cX == cX))
558+@Callable(bE)
559+func constructorV2 (do) = {
560+ let dn = bF(bE)
561+ if ((dn == dn))
495562 then {
496- let cZ = addressFromPublicKey(fromBase58String(cY))
497- if ((cZ == cZ))
498- then [StringEntry(N(), cY)]
563+ let dp = addressFromPublicKey(fromBase58String(do))
564+ if ((dp == dp))
565+ then [StringEntry(R(), do)]
499566 else throw("Strict value is not equal to itself.")
500567 }
501568 else throw("Strict value is not equal to itself.")
503570
504571
505572
506-@Callable(bz)
507-func constructorV3 (bK,bL,bM,bN) = {
508- let cX = bA(bz)
509- if ((cX == cX))
573+@Callable(bE)
574+func constructorV3 (bP,bQ,bR,bS) = {
575+ let dn = bF(bE)
576+ if ((dn == dn))
510577 then {
511- let bp = split(aU(K()), l)
512-[StringEntry(K(), bC(bp[1], bp[2], bp[3], bp[4], bp[5], bp[6], bp[7], bK, bL, bM, bN))]
578+ let bu = split(aZ(O()), m)
579+[StringEntry(O(), bH(bu[1], bu[2], bu[3], bu[4], bu[5], bu[6], bu[7], bP, bQ, bR, bS))]
513580 }
514581 else throw("Strict value is not equal to itself.")
515582 }
516583
517584
518585
519-@Callable(bz)
520-func constructorV4 (da,db) = {
521- let cX = bA(bz)
522- if ((cX == cX))
523- then [StringEntry(O(), da), StringEntry(P(), makeString(db, l))]
586+@Callable(bE)
587+func constructorV4 (dq,dr) = {
588+ let dn = bF(bE)
589+ if ((dn == dn))
590+ then [StringEntry(S(), dq), StringEntry(T(), makeString(dr, m))]
524591 else throw("Strict value is not equal to itself.")
525592 }
526593
527594
528595
529-@Callable(bz)
530-func constructorV5 (dc) = {
531- let cX = bA(bz)
532- if ((cX == cX))
533- then [StringEntry(T(), dc)]
596+@Callable(bE)
597+func constructorV5 (ds) = {
598+ let dn = bF(bE)
599+ if ((dn == dn))
600+ then [StringEntry(X(), ds)]
534601 else throw("Strict value is not equal to itself.")
535602 }
536603
537604
538605
539-@Callable(bz)
540-func constructorV6 (dd,de) = {
541- let df = [bA(bz), if ((addressFromString(dd) != unit))
606+@Callable(bE)
607+func constructorV6 (dt,du) = {
608+ let dv = [bF(bE), if ((addressFromString(dt) != unit))
542609 then true
543610 else "invalid voting emission contract address"]
544- if ((df == df))
545- then [StringEntry(U(), dd), StringEntry(V(), makeString(de, l))]
611+ if ((dv == dv))
612+ then [StringEntry(Y(), dt), StringEntry(aa(), makeString(du, m))]
546613 else throw("Strict value is not equal to itself.")
547614 }
548615
549616
550617
551-@Callable(bz)
552-func setAdmins (dg) = {
553- let cX = bA(bz)
554- if ((cX == cX))
555- then [StringEntry(S(), makeString(dg, l))]
618+@Callable(bE)
619+func setAdmins (dw) = {
620+ let dn = bF(bE)
621+ if ((dn == dn))
622+ then [StringEntry(W(), makeString(dw, m))]
556623 else throw("Strict value is not equal to itself.")
557624 }
558625
559626
560627
561-@Callable(bz)
562-func activateNewPool (aa,bS,bT,dh,di,dj,bZ,dk) = {
563- let cX = cm(bz)
564- if ((cX == cX))
565- then if (isDefined(getString(au(aa))))
566- then throw((("Pool address " + aa) + " already registered."))
628+@Callable(bE)
629+func activateNewPool (af,bX,bY,dx,dy,dz,ce,dA) = {
630+ let dn = cr(bE)
631+ if ((dn == dn))
632+ then if (isDefined(getString(az(af))))
633+ then K((("Pool address " + af) + " already registered."))
567634 else {
568- let dl = cf(bS, 1)
569- let dm = dl._1
570- let dn = cf(bT, if (dl._3)
635+ let dB = ck(bX, 1)
636+ let dC = dB._1
637+ let dD = ck(bY, if (dB._3)
571638 then 2
572639 else 1)
573- let do = dn._1
574- let dp = valueOrErrorMessage(scriptHash(addressFromStringValue(aa)), ("No script has been found on pool account " + aa))
575- let dq = getBinaryValue(M())
576- let dr = cs(bS, bT)
577- if (dr)
578- then throw((((("Pool " + bS) + "/") + bT) + " has already been activated."))
640+ let dE = dD._1
641+ let dF = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
642+ let dG = getBinaryValue(Q())
643+ let dH = cx(bX, bY)
644+ if (dH)
645+ then K((((("Pool " + bX) + "/") + bY) + " has already been activated."))
579646 else {
580- let ds = value(getString(this, ah(toString(dm), toString(do))))
581- let dt = if ((bS == "WAVES"))
582- then k
583- else pow(10, 0, value(assetInfo(fromBase58String(bS))).decimals, 0, 0, DOWN)
584- let du = if ((bT == "WAVES"))
585- then k
586- else pow(10, 0, value(assetInfo(fromBase58String(bT))).decimals, 0, 0, DOWN)
587- let dv = Issue(dh, di, 1, 8, true)
588- let bR = calculateAssetId(dv)
589- let dw = toBase58String(bR)
590- let dx = invoke(addressFromStringValue(aa), "activate", [bS, bT], nil)
591- if ((dx == dx))
592- then if ((dx != "success"))
593- then throw("Pool initialisation error happened.")
647+ let dI = value(getString(this, am(toString(dC), toString(dE))))
648+ let dJ = if ((bX == "WAVES"))
649+ then l
650+ else pow(10, 0, value(assetInfo(fromBase58String(bX))).decimals, 0, 0, DOWN)
651+ let dK = if ((bY == "WAVES"))
652+ then l
653+ else pow(10, 0, value(assetInfo(fromBase58String(bY))).decimals, 0, 0, DOWN)
654+ let dL = Issue(dx, dy, 1, 8, true)
655+ let bW = calculateAssetId(dL)
656+ let dM = toBase58String(bW)
657+ let dN = invoke(addressFromStringValue(af), "activate", [bX, bY], nil)
658+ if ((dN == dN))
659+ then if ((dN != "success"))
660+ then K("Pool initialisation error happened.")
594661 else {
595- let dc = addressFromStringValue(aU(T()))
596- let dy = invoke(dc, "createOrUpdate", [dw, dh, false], nil)
597- if ((dy == dy))
662+ let ds = addressFromStringValue(aZ(X()))
663+ let dO = invoke(ds, "createOrUpdate", [dM, dx, false], nil)
664+ if ((dO == dO))
598665 then {
599- let dz = invoke(dc, "addLabel", [dw, h], nil)
600- if ((dz == dz))
666+ let dP = invoke(ds, "addLabel", [dM, h], nil)
667+ if ((dP == dP))
601668 then {
602- let dA = invoke(dc, "setLogo", [dw, dk], nil)
603- if ((dA == dA))
669+ let dQ = invoke(ds, "setLogo", [dM, dA], nil)
670+ if ((dQ == dQ))
604671 then {
605- let dB = invoke(dc, "addAssetsLink", [bS, bT, dw], nil)
606- if ((dB == dB))
672+ let dR = invoke(ds, "addAssetsLink", [bX, bY, dM], nil)
673+ if ((dR == dR))
607674 then {
608- let dC = invoke(dc, "increaseAssetPoolsNumber", [bS], nil)
609- if ((dC == dC))
610- then $Tuple2(((dl._2 ++ dn._2) ++ [dv, Burn(bR, 1), StringEntry(ah(toString(dm), toString(do)), bP(aa, toString(n), dw, bS, bT, dt, du, dm, do, k, bZ)), StringEntry(ao(dw), ca(dm, do)), StringEntry(aq(toString(dm), toString(do)), ("%s__" + dw)), StringEntry(au(aa), ca(dm, do)), StringEntry(aw(dm, do), aa), StringEntry(ay(dw), aa), StringEntry(ax(aa), dw), IntegerEntry(Z(aa), dj), IntegerEntry(at(aa), i)]), dw)
675+ let dS = invoke(ds, "increaseAssetPoolsNumber", [bX], nil)
676+ if ((dS == dS))
677+ then $Tuple2(((dB._2 ++ dD._2) ++ [dL, Burn(bW, 1), StringEntry(am(toString(dC), toString(dE)), bU(af, toString(o), dM, bX, bY, dJ, dK, dC, dE, l, ce)), StringEntry(at(dM), cf(dC, dE)), StringEntry(av(toString(dC), toString(dE)), ("%s__" + dM)), StringEntry(az(af), cf(dC, dE)), StringEntry(aB(dC, dE), af), StringEntry(aD(dM), af), StringEntry(aC(af), dM), IntegerEntry(ae(af), dz), IntegerEntry(ay(af), i)]), dM)
611678 else throw("Strict value is not equal to itself.")
612679 }
613680 else throw("Strict value is not equal to itself.")
626693
627694
628695
629-@Callable(bz)
630-func managePool (aa,dD) = {
631- let cX = bA(bz)
632- if ((cX == cX))
696+@Callable(bE)
697+func managePool (af,dT) = {
698+ let dn = bF(bE)
699+ if ((dn == dn))
633700 then {
634- let dE = cd(aa)
635- let bQ = dE[v]
636- let dw = dE[w]
637- let bS = dE[x]
638- let bT = dE[y]
639- let dt = parseIntValue(dE[z])
640- let du = parseIntValue(dE[A])
641- let dm = parseIntValue(dE[B])
642- let do = parseIntValue(dE[C])
643- let dF = parseIntValue(dE[D])
644- let bZ = dE[E]
645-[StringEntry(ah(toString(dm), toString(do)), bP(aa, toString(dD), dw, bS, bT, dt, du, dm, do, dF, bZ))]
701+ let dU = ci(af)
702+ let bV = dU[w]
703+ let dM = dU[x]
704+ let bX = dU[y]
705+ let bY = dU[z]
706+ let dJ = parseIntValue(dU[A])
707+ let dK = parseIntValue(dU[B])
708+ let dC = parseIntValue(dU[C])
709+ let dE = parseIntValue(dU[D])
710+ let dV = parseIntValue(dU[E])
711+ let ce = dU[F]
712+[StringEntry(am(toString(dC), toString(dE)), bU(af, toString(dT), dM, bX, bY, dJ, dK, dC, dE, dV, ce))]
646713 }
647714 else throw("Strict value is not equal to itself.")
648715 }
649716
650717
651718
652-@Callable(bz)
653-func emit (dG) = {
654- let dH = bz.caller
655- let dI = bz.originCaller
656- let dJ = valueOrErrorMessage(getString(ax(toString(dH))), "Invalid LP address called me.")
657- let dK = fromBase58String(dJ)
658- let db = split(valueOrElse(getString(P()), m), l)
659- let da = addressFromStringValue(valueOrErrorMessage(getString(O()), "Legacy factory contract does not exists."))
660- if ((0 >= dG))
719+@Callable(bE)
720+func emit (dW) = {
721+ let dX = bE.caller
722+ let dY = bE.originCaller
723+ let dZ = valueOrErrorMessage(getString(aC(toString(dX))), "Invalid LP address called me.")
724+ let ea = fromBase58String(dZ)
725+ let dr = split(valueOrElse(getString(T()), n), m)
726+ let dq = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
727+ if ((0 >= dW))
661728 then nil
662- else if (containsElement(db, toString(dH)))
663- then $Tuple2(nil, da)
664- else $Tuple2([Reissue(dK, dG, true), ScriptTransfer(bz.caller, dG, dK)], "success")
729+ else if (containsElement(dr, toString(dX)))
730+ then $Tuple2(nil, dq)
731+ else $Tuple2([Reissue(ea, dW, true), ScriptTransfer(bE.caller, dW, ea)], "success")
665732 }
666733
667734
668735
669-@Callable(bz)
670-func burn (dL) = {
671- let dH = bz.caller
672- let dI = bz.originCaller
673- let dM = value(bz.payments[0])
674- let dN = value(dM.amount)
675- let dO = toBase58String(value(dM.assetId))
676- let dP = valueOrErrorMessage(getString(ax(toString(dH))), "Invalid LP address called me.")
677- if ((dO != dP))
678- then throw("Invalid asset passed.")
679- else if ((dL != dN))
680- then throw("Invalid amount passed.")
736+@Callable(bE)
737+func burn (eb) = {
738+ let dX = bE.caller
739+ let dY = bE.originCaller
740+ let ec = value(bE.payments[0])
741+ let ed = value(ec.amount)
742+ let ee = toBase58String(value(ec.assetId))
743+ let ef = valueOrErrorMessage(getString(aC(toString(dX))), "Invalid LP address called me.")
744+ if ((ee != ef))
745+ then K("Invalid asset passed.")
746+ else if ((eb != ed))
747+ then K("Invalid amount passed.")
681748 else {
682- let dK = fromBase58String(dP)
683- $Tuple2([Burn(dK, dL)], "success")
749+ let ea = fromBase58String(ef)
750+ $Tuple2([Burn(ea, eb)], "success")
684751 }
685752 }
686753
687754
688755
689-@Callable(bz)
690-func modifyWeight (bR,dQ) = {
691- let cX = if ((toBase58String(bz.caller.bytes) == valueOrElse(getString(this, U()), "")))
756+@Callable(bE)
757+func modifyWeight (bW,eg) = {
758+ let dn = if ((toBase58String(bE.caller.bytes) == valueOrElse(getString(this, Y()), "")))
692759 then true
693- else bA(bz)
694- if ((cX == cX))
760+ else bF(bE)
761+ if ((dn == dn))
695762 then {
696- let av = aU(ay(bR))
697- let dR = Z(av)
698- let dS = Z(g)
699- let dT = valueOrElse(getInteger(dS), 0)
700- let dj = valueOrElse(getInteger(dR), 0)
701- let dU = dQ
702- let bp = split(aU(K()), l)
703- let cT = br(bp)
704- let dV = invoke(cT, "onModifyWeight", [bR, av], nil)
705- if ((dV == dV))
763+ let aA = aZ(aD(bW))
764+ let eh = ae(aA)
765+ let ei = ae(g)
766+ let ej = valueOrElse(getInteger(ei), 0)
767+ let dz = valueOrElse(getInteger(eh), 0)
768+ let ek = eg
769+ let bu = split(aZ(O()), m)
770+ let dj = bw(bu)
771+ let el = invoke(dj, "onModifyWeight", [bW, aA], nil)
772+ if ((el == el))
706773 then {
707- let dW = if ((dT == 0))
774+ let em = if ((ej == 0))
708775 then nil
709- else [IntegerEntry(dS, 0)]
710- let dX = ab(av, 0)
711- let dY = getInteger(dX)
712- let dZ = if ((dY == unit))
776+ else [IntegerEntry(ei, 0)]
777+ let en = ag(aA, 0)
778+ let eo = getInteger(en)
779+ let ep = if ((eo == unit))
713780 then nil
714- else [DeleteEntry(dX)]
715- (([IntegerEntry(dR, dU)] ++ dW) ++ dZ)
781+ else [DeleteEntry(en)]
782+ (([IntegerEntry(eh, ek)] ++ em) ++ ep)
716783 }
717784 else throw("Strict value is not equal to itself.")
718785 }
721788
722789
723790
724-@Callable(bz)
725-func modifyWeights (ea,eb,ec,ed) = {
726- let cX = bA(bz)
727- if ((cX == cX))
791+@Callable(bE)
792+func modifyWeights (eq,er,es,et) = {
793+ let dn = bF(bE)
794+ if ((dn == dn))
728795 then {
729- let ee = ((5 * f) / 100)
730- let ef = ((5 * f) / 100)
731- let eg = ((5 * f) / 100)
732- let bp = split(aU(K()), l)
733- let eh = br(bp)
734- let ei = bs(bp)
735- let ej = Z(ea)
736- let ek = Z(eb)
737- let el = Z(ec)
738- let em = Z(ed)
739- let en = aX(ej)
740- let eo = aX(ek)
741- let ep = (en - eg)
742- let eq = (eo - eg)
743- if ((0 >= ep))
744- then throw(("invalid btcWeightNew: " + toString(ep)))
745- else if ((0 >= eq))
746- then throw(("invalid ethWeightNew: " + toString(eq)))
796+ let eu = ((5 * f) / 100)
797+ let ev = ((5 * f) / 100)
798+ let ew = ((5 * f) / 100)
799+ let bu = split(aZ(O()), m)
800+ let ex = bw(bu)
801+ let ey = bx(bu)
802+ let ez = ae(eq)
803+ let eA = ae(er)
804+ let eB = ae(es)
805+ let eC = ae(et)
806+ let eD = bc(ez)
807+ let eE = bc(eA)
808+ let eF = (eD - ew)
809+ let eG = (eE - ew)
810+ if ((0 >= eF))
811+ then K(("invalid btcWeightNew: " + toString(eF)))
812+ else if ((0 >= eG))
813+ then K(("invalid ethWeightNew: " + toString(eG)))
747814 else {
748- let er = aU(ax(ea))
749- let es = aU(ax(eb))
750- let et = aU(ax(ec))
751- let eu = aU(ax(ed))
752- let ev = invoke(eh, "onModifyWeight", [er, ea], nil)
753- if ((ev == ev))
815+ let eH = aZ(aC(eq))
816+ let eI = aZ(aC(er))
817+ let eJ = aZ(aC(es))
818+ let eK = aZ(aC(et))
819+ let eL = invoke(ex, "onModifyWeight", [eH, eq], nil)
820+ if ((eL == eL))
754821 then {
755- let ew = invoke(eh, "onModifyWeight", [es, eb], nil)
756- if ((ew == ew))
822+ let eM = invoke(ex, "onModifyWeight", [eI, er], nil)
823+ if ((eM == eM))
757824 then {
758- let ex = invoke(eh, "onModifyWeight", [et, ec], nil)
759- if ((ex == ex))
825+ let eN = invoke(ex, "onModifyWeight", [eJ, es], nil)
826+ if ((eN == eN))
760827 then {
761- let ey = invoke(eh, "onModifyWeight", [eu, ed], nil)
762- if ((ey == ey))
763- then [IntegerEntry(ej, ep), IntegerEntry(ek, eq), IntegerEntry(el, ee), IntegerEntry(em, ef), IntegerEntry(ab(ea, 0), en), IntegerEntry(ab(eb, 0), eo), IntegerEntry(ab(ec, 0), ee), IntegerEntry(ab(ed, 0), ef)]
828+ let eO = invoke(ex, "onModifyWeight", [eK, et], nil)
829+ if ((eO == eO))
830+ then [IntegerEntry(ez, eF), IntegerEntry(eA, eG), IntegerEntry(eB, eu), IntegerEntry(eC, ev), IntegerEntry(ag(eq, 0), eD), IntegerEntry(ag(er, 0), eE), IntegerEntry(ag(es, 0), eu), IntegerEntry(ag(et, 0), ev)]
764831 else throw("Strict value is not equal to itself.")
765832 }
766833 else throw("Strict value is not equal to itself.")
775842
776843
777844
778-@Callable(bz)
779-func checkWxEmissionPoolLabel (aA,aB) = {
780- let ez = {
781- let bb = getBoolean(az(aA, aB))
782- if ($isInstanceOf(bb, "Boolean"))
845+@Callable(bE)
846+func checkWxEmissionPoolLabel (aF,aG) = {
847+ let eP = {
848+ let bg = getBoolean(aE(aF, aG))
849+ if ($isInstanceOf(bg, "Boolean"))
783850 then {
784- let cF = bb
785- cF
851+ let cV = bg
852+ cV
786853 }
787854 else false
788855 }
789- $Tuple2(nil, ez)
856+ $Tuple2(nil, eP)
790857 }
791858
792859
793860
794-@Callable(bz)
795-func setWxEmissionPoolLabel (aA,aB) = {
796- let cX = cm(bz)
797- if ((cX == cX))
798- then $Tuple2([BooleanEntry(az(aA, aB), true)], unit)
861+@Callable(bE)
862+func setWxEmissionPoolLabel (aF,aG) = {
863+ let dn = cr(bE)
864+ if ((dn == dn))
865+ then $Tuple2([BooleanEntry(aE(aF, aG), true)], unit)
799866 else throw("Strict value is not equal to itself.")
800867 }
801868
802869
803870
804-@Callable(bz)
805-func deleteWxEmissionPoolLabel (aA,aB) = {
806- let cX = if ((bz.caller == this))
871+@Callable(bE)
872+func deleteWxEmissionPoolLabel (aF,aG) = {
873+ let dn = if ((bE.caller == this))
807874 then true
808- else cm(bz)
809- if ((cX == cX))
810- then $Tuple2([DeleteEntry(az(aA, aB))], unit)
875+ else cr(bE)
876+ if ((dn == dn))
877+ then $Tuple2([DeleteEntry(aE(aF, aG))], unit)
811878 else throw("Strict value is not equal to itself.")
812879 }
813880
814881
815882
816-@Callable(bz)
817-func onVerificationLoss (aP) = {
818- let cX = if ((toBase58String(bz.caller.bytes) == valueOrElse(getString(this, T()), "")))
883+@Callable(bE)
884+func onVerificationLoss (aU) = {
885+ let dn = if ((toBase58String(bE.caller.bytes) == valueOrElse(getString(this, X()), "")))
819886 then true
820- else bA(bz)
821- if ((cX == cX))
887+ else bF(bE)
888+ if ((dn == dn))
822889 then {
823- let de = bt()
824- let eA = if ((size(de) > 0))
890+ let du = by()
891+ let eQ = if ((size(du) > 0))
825892 then true
826- else throw("invalid price assets")
827- if ((eA == eA))
893+ else K("invalid price assets")
894+ if ((eQ == eQ))
828895 then {
829- func eB (eC,eD) = {
830- let cz = invoke(this, "deleteWxEmissionPoolLabel", [aP, eD], nil)
831- if ((cz == cz))
896+ func eR (eS,eT) = {
897+ let cP = invoke(this, "deleteWxEmissionPoolLabel", [aU, eT], nil)
898+ if ((cP == cP))
832899 then unit
833900 else throw("Strict value is not equal to itself.")
834901 }
835902
836- let eE = {
837- let eF = de
838- let eG = size(eF)
839- let eH = unit
840- func eI (eJ,eK) = if ((eK >= eG))
841- then eJ
842- else eB(eJ, eF[eK])
903+ let eU = {
904+ let eV = du
905+ let eW = size(eV)
906+ let eX = unit
907+ func eY (eZ,fa) = if ((fa >= eW))
908+ then eZ
909+ else eR(eZ, eV[fa])
843910
844- func eL (eJ,eK) = if ((eK >= eG))
845- then eJ
911+ func fb (eZ,fa) = if ((fa >= eW))
912+ then eZ
846913 else throw("List size exceeds 13")
847914
848- eL(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
915+ fb(eY(eY(eY(eY(eY(eY(eY(eY(eY(eY(eY(eY(eY(eX, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
849916 }
850- if ((eE == eE))
917+ if ((eU == eU))
851918 then $Tuple2(nil, unit)
852919 else throw("Strict value is not equal to itself.")
853920 }
858925
859926
860927
861-@Callable(bz)
862-func isPoolOneTokenOperationsDisabledREADONLY (aa) = {
863- let dE = cd(aa)
864- let al = $Tuple2(parseIntValue(dE[B]), parseIntValue(dE[C]))
865- let eM = valueOrElse(getBoolean(ak(al)), false)
866- let eN = valueOrElse(getBoolean(an()), false)
867- $Tuple2(nil, if (eN)
928+@Callable(bE)
929+func isPoolOneTokenOperationsDisabledREADONLY (af) = {
930+ let dU = ci(af)
931+ let aq = $Tuple2(parseIntValue(dU[C]), parseIntValue(dU[D]))
932+ let fc = valueOrElse(getBoolean(ap(aq)), false)
933+ let fd = valueOrElse(getBoolean(as()), false)
934+ $Tuple2(nil, if (fd)
868935 then true
869- else eM)
936+ else fc)
870937 }
871938
872939
873940
874-@Callable(bz)
875-func getInFeeREADONLY (aa) = {
876- let eO = cp(aC(aa), aD(), 0)
877- $Tuple2(nil, eO)
941+@Callable(bE)
942+func getInFeeREADONLY (af) = {
943+ let fe = cu(aH(af), aI(), 0)
944+ $Tuple2(nil, fe)
878945 }
879946
880947
881948
882-@Callable(bz)
883-func getOutFeeREADONLY (aa) = {
884- let eO = cp(aF(aa), aG(), fraction(10, b, 10000))
885- $Tuple2(nil, eO)
949+@Callable(bE)
950+func getOutFeeREADONLY (af) = {
951+ let fe = cu(aK(af), aL(), fraction(10, b, 10000))
952+ $Tuple2(nil, fe)
886953 }
887954
888955
889956
890-@Callable(bz)
891-func getSwapFeeREADONLY (eP) = {
892- let eQ = {
893- let bb = getString(this, aE(eP))
894- if ($isInstanceOf(bb, "String"))
957+@Callable(bE)
958+func getSwapFeeREADONLY (ff) = {
959+ let fg = {
960+ let bg = getString(this, aJ(ff))
961+ if ($isInstanceOf(bg, "String"))
895962 then {
896- let bc = bb
897- let eR = split(bc, l)
898- let eS = parseIntValue(eR[1])
899- let eT = parseIntValue(eR[2])
900- $Tuple2(eS, eT)
963+ let bh = bg
964+ let fh = split(bh, m)
965+ let fi = parseIntValue(fh[1])
966+ let fj = parseIntValue(fh[2])
967+ $Tuple2(fi, fj)
901968 }
902- else if ($isInstanceOf(bb, "Unit"))
969+ else if ($isInstanceOf(bg, "Unit"))
903970 then unit
904971 else throw("Match error")
905972 }
906- $Tuple2(nil, eQ)
973+ $Tuple2(nil, fg)
907974 }
908975
909976
910977
911-@Callable(bz)
912-func poolInfoREADONLY (eU,eV) = {
913- let eW = getInteger(this, af(eU))
914- let eX = getInteger(this, af(eV))
915- let eY = getString(this, aw(value(eW), value(eX)))
916- let eZ = getString(this, ax(value(eY)))
917- let dr = if (if (isDefined(eW))
918- then isDefined(eX)
978+@Callable(bE)
979+func poolInfoREADONLY (fk,fl) = {
980+ let fm = getInteger(this, ak(fk))
981+ let fn = getInteger(this, ak(fl))
982+ let fo = getString(this, aB(value(fm), value(fn)))
983+ let fp = getString(this, aC(value(fo)))
984+ let dH = if (if (isDefined(fm))
985+ then isDefined(fn)
919986 else false)
920- then isDefined(eY)
987+ then isDefined(fo)
921988 else false
922- let fa = if (dr)
923- then $Tuple2(addressFromStringValue(value(eY)), aY(value(eZ)))
989+ let fq = if (dH)
990+ then $Tuple2(addressFromStringValue(value(fo)), bd(value(fp)))
924991 else unit
925- $Tuple2(nil, fa)
992+ $Tuple2(nil, fq)
926993 }
927994
928995
929996
930-@Callable(bz)
931-func getPoolStatusREADONLY (aa) = {
932- let ce = split(aU(au(aa)), l)
933- let ai = ce[1]
934- let aj = ce[2]
935- let cv = split(aU(ah(ai, aj)), l)
936- $Tuple2(nil, parseIntValue(cv[v]))
997+@Callable(bE)
998+func getPoolStatusREADONLY (af) = {
999+ let cj = split(aZ(az(af)), m)
1000+ let an = cj[1]
1001+ let ao = cj[2]
1002+ let cA = split(aZ(am(an, ao)), m)
1003+ $Tuple2(nil, parseIntValue(cA[w]))
9371004 }
9381005
9391006
9401007
941-@Callable(bz)
942-func getPoolConfigREADONLY (aa) = {
943- let ce = split(aU(au(aa)), l)
944- let ai = ce[1]
945- let aj = ce[2]
946- let cv = split(aU(ah(ai, aj)), l)
947- $Tuple2(nil, cv)
1008+@Callable(bE)
1009+func getPoolConfigREADONLY (af) = {
1010+ let cj = split(aZ(az(af)), m)
1011+ let an = cj[1]
1012+ let ao = cj[2]
1013+ let cA = split(aZ(am(an, ao)), m)
1014+ $Tuple2(nil, cA)
9481015 }
9491016
9501017
9511018
952-@Callable(bz)
953-func getPoolConfigByLpAssetIdREADONLY (dw) = {
954- let ce = split(aU(ao(dw)), l)
955- let ai = ce[1]
956- let aj = ce[2]
957- let cv = split(aU(ah(ai, aj)), l)
958- $Tuple2(nil, cv)
1019+@Callable(bE)
1020+func getPoolConfigByLpAssetIdREADONLY (dM) = {
1021+ let cj = split(aZ(at(dM)), m)
1022+ let an = cj[1]
1023+ let ao = cj[2]
1024+ let cA = split(aZ(am(an, ao)), m)
1025+ $Tuple2(nil, cA)
9591026 }
9601027
9611028
9621029
963-@Callable(bz)
964-func poolExistsREADONLY (aA,aB) = $Tuple2(nil, cs(aA, aB))
1030+@Callable(bE)
1031+func poolExistsREADONLY (aF,aG) = $Tuple2(nil, cx(aF, aG))
9651032
9661033
9671034
968-@Callable(bz)
969-func skipOrderValidationREADONLY (aa) = $Tuple2(nil, valueOrElse(getBoolean(aH(aa)), false))
1035+@Callable(bE)
1036+func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aM(af)), false))
9701037
9711038
9721039
973-@Callable(bz)
974-func getChangeAmpConfigREADONLY (aa) = {
975- let fb = getIntegerValue(aI(aa))
976- let fc = getIntegerValue(aJ(aa))
977- let fd = getIntegerValue(aK(aa))
978- $Tuple2(nil, [fb, fc, fd])
1040+@Callable(bE)
1041+func getChangeAmpConfigREADONLY (af) = {
1042+ let fr = getIntegerValue(aN(af))
1043+ let fs = getIntegerValue(aO(af))
1044+ let ft = getIntegerValue(aP(af))
1045+ $Tuple2(nil, [fr, fs, ft])
9791046 }
9801047
9811048
9821049
983-@Callable(bz)
984-func getPoolWeightREADONLY (bR) = {
985- let aa = aU(ay(bR))
986- let fe = valueOrElse(getInteger(Z(aa)), 0)
987- $Tuple2(nil, fe)
1050+@Callable(bE)
1051+func getPoolWeightREADONLY (bW) = {
1052+ let af = aZ(aD(bW))
1053+ let fu = valueOrElse(getInteger(ae(af)), 0)
1054+ $Tuple2(nil, fu)
9881055 }
9891056
9901057
991-@Verifier(ff)
992-func fg () = {
993- let fh = {
994- let bb = bu()
995- if ($isInstanceOf(bb, "ByteVector"))
1058+
1059+@Callable(bE)
1060+func deletePool (aA) = {
1061+ let dU = ci(aA)
1062+ let dn = if ((toString(bE.caller) == cE(aA)))
1063+ then if (cM(aA))
1064+ then true
1065+ else K("Pool is not empty")
1066+ else bF(bE)
1067+ if ((dn == dn))
1068+ then {
1069+ let fv = if ((valueOrElse(getInteger(ae(aA)), 0) == 0))
1070+ then true
1071+ else K("Pool weight is not Zero")
1072+ if ((fv == fv))
1073+ then {
1074+ let fw = if ((dU[w] == toString(r)))
1075+ then true
1076+ else K("Pool must be SHUTDOWN (4)")
1077+ if ((fw == fw))
1078+ then {
1079+ let fx = cD(aA)
1080+ let aF = fx._1
1081+ let aG = fx._2
1082+ let bW = fx._3
1083+ let an = fx._4
1084+ let ao = fx._5
1085+ let cG = addressFromStringValue(getStringValue(Z()))
1086+ let fy = invoke(cG, "deletePool", [aF, aG], nil)
1087+ if ((fy == fy))
1088+ then {
1089+ let dt = addressFromStringValue(getStringValue(Y()))
1090+ let fz = invoke(dt, "deletePool", [aF, aG], nil)
1091+ if ((fz == fz))
1092+ then {
1093+ let ds = addressFromStringValue(getStringValue(X()))
1094+ let fA = invoke(ds, "deletePool", [aF, aG], nil)
1095+ if ((fA == fA))
1096+ then [DeleteEntry(aC(aA)), DeleteEntry(az(aA)), DeleteEntry(av(toString(an), toString(ao))), DeleteEntry(aB(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(at(bW)), DeleteEntry(aD(bW)), DeleteEntry(aE(aF, aG)), DeleteEntry(ae(aA)), DeleteEntry(ay(aA)), DeleteEntry(aH(aA)), DeleteEntry(aK(aA)), DeleteEntry(aM(aA)), DeleteEntry(aN(aA)), DeleteEntry(aO(aA)), DeleteEntry(aP(aA))]
1097+ else throw("Strict value is not equal to itself.")
1098+ }
1099+ else throw("Strict value is not equal to itself.")
1100+ }
1101+ else throw("Strict value is not equal to itself.")
1102+ }
1103+ else throw("Strict value is not equal to itself.")
1104+ }
1105+ else throw("Strict value is not equal to itself.")
1106+ }
1107+ else throw("Strict value is not equal to itself.")
1108+ }
1109+
1110+
1111+@Verifier(fB)
1112+func fC () = {
1113+ let fD = {
1114+ let bg = bz()
1115+ if ($isInstanceOf(bg, "ByteVector"))
9961116 then {
997- let bB = bb
998- bB
1117+ let bG = bg
1118+ bG
9991119 }
1000- else if ($isInstanceOf(bb, "Unit"))
1001- then ff.senderPublicKey
1120+ else if ($isInstanceOf(bg, "Unit"))
1121+ then fB.senderPublicKey
10021122 else throw("Match error")
10031123 }
1004- sigVerify(ff.bodyBytes, ff.proofs[0], fh)
1124+ sigVerify(fB.bodyBytes, fB.proofs[0], fD)
10051125 }
10061126
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = 1000000000000
99
1010 let d = 18
1111
1212 let e = toBigInt(1000000000000000000)
1313
1414 let f = b
1515
1616 let g = "GWXvirtualPOOL"
1717
1818 let h = "POOLS_LP"
1919
2020 let i = 2000000
2121
2222 let j = "WAVES"
2323
24-let k = ((100 * 1000) * 1000)
24+let k = "factory_v2.ride"
2525
26-let l = "__"
26+let l = ((100 * 1000) * 1000)
2727
28-let m = ""
28+let m = "__"
2929
30-let n = 1
30+let n = ""
3131
32-let o = 2
32+let o = 1
3333
34-let p = 3
34+let p = 2
3535
36-let q = 4
36+let q = 3
3737
38-let r = 1
38+let r = 4
3939
40-let s = 2
40+let s = 1
4141
42-let t = 3
42+let t = 2
4343
44-let u = 1
44+let u = 3
4545
46-let v = 2
46+let v = 1
4747
48-let w = 3
48+let w = 2
4949
50-let x = 4
50+let x = 3
5151
52-let y = 5
52+let y = 4
5353
54-let z = 6
54+let z = 5
5555
56-let A = 7
56+let A = 6
5757
58-let B = 8
58+let B = 7
5959
60-let C = 9
60+let C = 8
6161
62-let D = 10
62+let D = 9
6363
64-let E = 11
64+let E = 10
6565
66-let F = "WX_EMISSION"
66+let F = 11
6767
68-let G = [F]
68+let G = "WX_EMISSION"
6969
70-func H () = "%s__allowedLpScriptHash"
70+let H = [G]
71+
72+func I (J) = makeString([k, ": ", J], "")
7173
7274
73-func I () = "%s__allowedLpStableScriptHash"
75+func K (J) = throw(I(J))
7476
7577
76-func J () = "%s__swapContract"
78+func L () = "%s__allowedLpScriptHash"
7779
7880
79-func K () = "%s__factoryConfig"
81+func M () = "%s__allowedLpStableScriptHash"
8082
8183
82-func L () = "%s__lpTokensList"
84+func N () = "%s__swapContract"
8385
8486
85-func M () = "%s%s__pool__scriptHash"
87+func O () = "%s__factoryConfig"
8688
8789
88-func N () = "%s%s__matcher__publicKey"
90+func P () = "%s__lpTokensList"
8991
9092
91-func O () = "%s__legacyFactoryContract"
93+func Q () = "%s%s__pool__scriptHash"
9294
9395
94-func P () = "%s__legacyPools"
96+func R () = "%s%s__matcher__publicKey"
9597
9698
97-func Q () = "%s__managerPublicKey"
99+func S () = "%s__legacyFactoryContract"
98100
99101
100-func R () = "%s__managerVaultAddress"
102+func T () = "%s__legacyPools"
101103
102104
103-func S () = "%s__adminPubKeys"
105+func U () = "%s__managerPublicKey"
104106
105107
106-func T () = "%s__assetsStoreContract"
108+func V () = "%s__managerVaultAddress"
107109
108110
109-func U () = "%s__votingEmissionContract"
111+func W () = "%s__adminPubKeys"
110112
111113
112-func V () = makeString(["%s", "priceAssets"], l)
114+func X () = "%s__assetsStoreContract"
113115
114116
115-func W () = "%s__priceDecimals"
117+func Y () = "%s__votingEmissionContract"
116118
117119
118-func X () = "%s__shutdown"
120+func Z () = "%s__userPoolsContract"
119121
120122
121-func Y () = "%s__nextInternalAssetId"
123+func aa () = makeString(["%s", "priceAssets"], m)
122124
123125
124-func Z (aa) = ("%s%s__poolWeight__" + aa)
126+func ab () = "%s__priceDecimals"
125127
126128
127-func ab (aa,ac) = ((("%s%s__poolWeight__" + aa) + "__") + toString(ac))
129+func ac () = "%s__shutdown"
128130
129131
130-func ad (ae) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ae))
132+func ad () = "%s__nextInternalAssetId"
131133
132134
133-func af (ag) = ("%s%s%s__mappings__baseAsset2internalId__" + ag)
135+func ae (af) = ("%s%s__poolWeight__" + af)
134136
135137
136-func ah (ai,aj) = (((("%d%d%s__" + ai) + "__") + aj) + "__config")
138+func ag (af,ah) = ((("%s%s__poolWeight__" + af) + "__") + toString(ah))
137139
138140
139-func ak (al) = {
140- let am = al
141- let ai = am._1
142- let aj = am._2
143- makeString(["%d%d%s", toString(ai), toString(aj), "oneTokenOperationsDisabled"], l)
141+func ai (aj) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(aj))
142+
143+
144+func ak (al) = ("%s%s%s__mappings__baseAsset2internalId__" + al)
145+
146+
147+func am (an,ao) = (((("%d%d%s__" + an) + "__") + ao) + "__config")
148+
149+
150+func ap (aq) = {
151+ let ar = aq
152+ let an = ar._1
153+ let ao = ar._2
154+ makeString(["%d%d%s", toString(an), toString(ao), "oneTokenOperationsDisabled"], m)
144155 }
145156
146157
147-func an () = makeString(["%s", "oneTokenOperationsDisabled"], l)
158+func as () = makeString(["%s", "oneTokenOperationsDisabled"], m)
148159
149160
150-func ao (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2Pool")
161+func at (au) = (("%s%s%s__" + au) + "__mappings__lpAsset2Pool")
151162
152163
153-func aq (ar,as) = (((("%d%d%s%s__" + ar) + "__") + as) + "__mappings__PoolAssets2LpAsset")
164+func av (aw,ax) = (((("%d%d%s%s__" + aw) + "__") + ax) + "__mappings__PoolAssets2LpAsset")
154165
155166
156-func at (aa) = ("%s%s__spread__" + aa)
167+func ay (af) = ("%s%s__spread__" + af)
157168
158169
159-func au (av) = (("%s%s%s__" + av) + "__mappings__poolContract2PoolAssets")
170+func az (aA) = (("%s%s%s__" + aA) + "__mappings__poolContract2PoolAssets")
160171
161172
162-func aw (ar,as) = (((("%d%d%s%s__" + toString(ar)) + "__") + toString(as)) + "__mappings__poolAssets2PoolContract")
173+func aB (aw,ax) = (((("%d%d%s%s__" + toString(aw)) + "__") + toString(ax)) + "__mappings__poolAssets2PoolContract")
163174
164175
165-func ax (av) = (("%s%s%s__" + av) + "__mappings__poolContract2LpAsset")
176+func aC (aA) = (("%s%s%s__" + aA) + "__mappings__poolContract2LpAsset")
166177
167178
168-func ay (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2PoolContract")
179+func aD (au) = (("%s%s%s__" + au) + "__mappings__lpAsset2PoolContract")
169180
170181
171-func az (aA,aB) = ((("%s%s%s__wxEmission__" + aA) + "__") + aB)
182+func aE (aF,aG) = ((("%s%s%s__wxEmission__" + aF) + "__") + aG)
172183
173184
174-func aC (aa) = ("%s%s__inFee__" + aa)
185+func aH (af) = ("%s%s__inFee__" + af)
175186
176187
177-func aD () = "%s__inFeeDefault"
188+func aI () = "%s__inFeeDefault"
178189
179190
180-func aE (aa) = ("%s%s__swapFee__" + aa)
191+func aJ (af) = ("%s%s__swapFee__" + af)
181192
182193
183-func aF (aa) = ("%s%s__outFee__" + aa)
194+func aK (af) = ("%s%s__outFee__" + af)
184195
185196
186-func aG () = "%s__outFeeDefault"
197+func aL () = "%s__outFeeDefault"
187198
188199
189-func aH (aa) = ("%s%s__skipOrderValidation__" + aa)
200+func aM (af) = ("%s%s__skipOrderValidation__" + af)
190201
191202
192-func aI (aa) = ("%s%s__changeAmpDelay__" + aa)
203+func aN (af) = ("%s%s__changeAmpDelay__" + af)
193204
194205
195-func aJ (aa) = ("%s%s__changeAmpDelta__" + aa)
206+func aO (af) = ("%s%s__changeAmpDelta__" + af)
196207
197208
198-func aK (aa) = ("%s%s__changeAmpTarget__" + aa)
209+func aP (af) = ("%s%s__changeAmpTarget__" + af)
199210
200211
201-func aL () = "%s__sWavesProxyAddress"
212+func aQ () = "%s__sWavesProxyAddress"
202213
203214
204-func aM () = "%s__sWavesAssetId"
215+func aR () = "%s__sWavesAssetId"
205216
206217
207-func aN () = "%s__stakingProfitAddress"
218+func aS () = "%s__stakingProfitAddress"
208219
209220
210-func aO (aa,aP) = makeString(["%s%s%s", "leasedRatio", aa, aP], l)
221+func aT (af,aU) = makeString(["%s%s%s", "leasedRatio", af, aU], m)
211222
212223
213-func aQ (aP) = makeString(["%s%s", "leasedRatioDefault", aP], l)
224+func aV (aU) = makeString(["%s%s", "leasedRatioDefault", aU], m)
214225
215226
216-func aR (aa,aP) = makeString(["%s%s%s", "leasedRatioTolerance", aa, aP], l)
227+func aW (af,aU) = makeString(["%s%s%s", "leasedRatioTolerance", af, aU], m)
217228
218229
219-func aS (aa,aP) = makeString(["%s%s%s", "minBalance", aa, aP], l)
230+func aX (af,aU) = makeString(["%s%s%s", "minBalance", af, aU], m)
220231
221232
222-func aT (aP) = makeString(["%s%s", "minBalanceDefault", aP], l)
233+func aY (aU) = makeString(["%s%s", "minBalanceDefault", aU], m)
223234
224235
225-func aU (aV) = valueOrErrorMessage(getString(this, aV), ("No data for this.key=" + aV))
236+func aZ (ba) = valueOrErrorMessage(getString(this, ba), ("No data for this.key=" + ba))
226237
227238
228-func aW (aV) = valueOrErrorMessage(getBoolean(this, aV), ("No data for this.key=" + aV))
239+func bb (ba) = valueOrErrorMessage(getBoolean(this, ba), ("No data for this.key=" + ba))
229240
230241
231-func aX (aV) = valueOrErrorMessage(getInteger(this, aV), ("No data for this.key=" + aV))
242+func bc (ba) = valueOrErrorMessage(getInteger(this, ba), ("No data for this.key=" + ba))
232243
233244
234-func aY (aZ) = if ((aZ == j))
245+func bd (be) = if ((be == j))
235246 then unit
236- else fromBase58String(aZ)
247+ else fromBase58String(be)
237248
238249
239-func ba () = {
240- let bb = getString(R())
241- if ($isInstanceOf(bb, "String"))
250+func bf () = {
251+ let bg = getString(V())
252+ if ($isInstanceOf(bg, "String"))
242253 then {
243- let bc = bb
244- addressFromStringValue(bc)
254+ let bh = bg
255+ addressFromStringValue(bh)
245256 }
246257 else this
247258 }
248259
249260
250-let bd = 1
261+let bi = 1
251262
252-let be = 2
263+let bj = 2
253264
254-let bf = 3
265+let bk = 3
255266
256-let bg = 4
267+let bl = 4
257268
258-let bh = 5
269+let bm = 5
259270
260-let bi = 6
271+let bn = 6
261272
262-let bj = 7
273+let bo = 7
263274
264-let bk = 8
275+let bp = 8
265276
266-let bl = 9
277+let bq = 9
267278
268-let bm = 10
279+let br = 10
269280
270-let bn = 11
281+let bs = 11
271282
272-func bo (bp) = addressFromStringValue(bp[be])
283+func bt (bu) = addressFromStringValue(bu[bj])
273284
274285
275-func bq (bp) = addressFromStringValue(bp[bh])
286+func bv (bu) = addressFromStringValue(bu[bm])
276287
277288
278-func br (bp) = addressFromStringValue(bp[bd])
289+func bw (bu) = addressFromStringValue(bu[bi])
279290
280291
281-func bs (bp) = addressFromStringValue(bp[bm])
292+func bx (bu) = addressFromStringValue(bu[br])
282293
283294
284-func bt () = {
285- let bb = getString(V())
286- if ($isInstanceOf(bb, "String"))
295+func by () = {
296+ let bg = getString(aa())
297+ if ($isInstanceOf(bg, "String"))
287298 then {
288- let bc = bb
289- if ((size(bc) == 0))
299+ let bh = bg
300+ if ((size(bh) == 0))
290301 then nil
291- else split_4C(bc, l)
302+ else split_4C(bh, m)
292303 }
293304 else nil
294305 }
295306
296307
297-func bu () = {
298- let bv = ba()
299- let bb = getString(bv, Q())
300- if ($isInstanceOf(bb, "String"))
308+func bz () = {
309+ let bA = bf()
310+ let bg = getString(bA, U())
311+ if ($isInstanceOf(bg, "String"))
301312 then {
302- let bc = bb
303- fromBase58String(bc)
313+ let bh = bg
314+ fromBase58String(bh)
304315 }
305- else if ($isInstanceOf(bb, "Unit"))
316+ else if ($isInstanceOf(bg, "Unit"))
306317 then unit
307318 else throw("Match error")
308319 }
309320
310321
311-let bw = throw("Permission denied")
322+let bB = K("Permission denied")
312323
313-let bx = throw("Test error here")
324+let bC = K("Test error here")
314325
315-func by (bz) = if ((bz.caller == this))
326+func bD (bE) = if ((bE.caller == this))
316327 then true
317- else bw
328+ else bB
318329
319330
320-func bA (bz) = {
321- let bb = bu()
322- if ($isInstanceOf(bb, "ByteVector"))
331+func bF (bE) = {
332+ let bg = bz()
333+ if ($isInstanceOf(bg, "ByteVector"))
323334 then {
324- let bB = bb
325- if ((bz.callerPublicKey == bB))
335+ let bG = bg
336+ if ((bE.callerPublicKey == bG))
326337 then true
327- else bw
338+ else bB
328339 }
329- else if ($isInstanceOf(bb, "Unit"))
330- then by(bz)
340+ else if ($isInstanceOf(bg, "Unit"))
341+ then bD(bE)
331342 else throw("Match error")
332343 }
333344
334345
335-func bC (bD,bE,bF,bG,bH,bI,bJ,bK,bL,bM,bN) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bD, bE, bF, bG, bH, bI, bJ, bK, bL, bM, bN], l)
346+func bH (bI,bJ,bK,bL,bM,bN,bO,bP,bQ,bR,bS) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bI, bJ, bK, bL, bM, bN, bO, bP, bQ, bR, bS], m)
336347
337348
338-func bO (bD,bE,bF,bG,bH,bI,bJ) = makeString(["%s%s%s%s%s%s", bD, bE, bF, bG, bH, bI, bJ], l)
349+func bT (bI,bJ,bK,bL,bM,bN,bO) = makeString(["%s%s%s%s%s%s", bI, bJ, bK, bL, bM, bN, bO], m)
339350
340351
341-func bP (aa,bQ,bR,bS,bT,bU,bV,bW,bX,bY,bZ) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", aa, bQ, bR, bS, bT, toString(bU), toString(bV), toString(bW), toString(bX), toString(bY), bZ], l)
352+func bU (af,bV,bW,bX,bY,bZ,ca,cb,cc,cd,ce) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, bV, bW, bX, bY, toString(bZ), toString(ca), toString(cb), toString(cc), toString(cd), ce], m)
342353
343354
344-func ca (cb,cc) = makeString(["%d%d", toString(cb), toString(cc)], l)
355+func cf (cg,ch) = makeString(["%d%d", toString(cg), toString(ch)], m)
345356
346357
347-func cd (aa) = {
348- let ce = split(aU(au(aa)), l)
349- let ai = ce[1]
350- let aj = ce[2]
351- split(aU(ah(ai, aj)), l)
358+func ci (af) = {
359+ let cj = split(aZ(az(af)), m)
360+ let an = cj[1]
361+ let ao = cj[2]
362+ split(aZ(am(an, ao)), m)
352363 }
353364
354365
355-func cf (cg,ch) = {
356- let ci = valueOrElse(getInteger(this, af(cg)), 0)
357- let cj = valueOrElse(getInteger(this, Y()), 0)
358- let ck = if ((ci == 0))
366+func ck (cl,cm) = {
367+ let cn = valueOrElse(getInteger(this, ak(cl)), 0)
368+ let co = valueOrElse(getInteger(this, ad()), 0)
369+ let cp = if ((cn == 0))
359370 then {
360- let cl = (cj + ch)
361- $Tuple3(cl, [IntegerEntry(Y(), cl), IntegerEntry(af(cg), cl), StringEntry(ad(cl), cg)], true)
371+ let cq = (co + cm)
372+ $Tuple3(cq, [IntegerEntry(ad(), cq), IntegerEntry(ak(cl), cq), StringEntry(ai(cq), cl)], true)
362373 }
363- else $Tuple3(ci, nil, false)
364- ck
374+ else $Tuple3(cn, nil, false)
375+ cp
365376 }
366377
367378
368-func cm (bz) = {
369- let cn = split(valueOrElse(getString(S()), m), l)
370- if (containsElement(cn, toBase58String(bz.callerPublicKey)))
379+func cr (bE) = {
380+ let cs = split(valueOrElse(getString(W()), n), m)
381+ if (containsElement(cs, toBase58String(bE.callerPublicKey)))
371382 then true
372383 else {
373- let co = bA(bz)
374- if ((co == co))
384+ let ct = bF(bE)
385+ if ((ct == ct))
375386 then true
376387 else throw("Strict value is not equal to itself.")
377388 }
378389 }
379390
380391
381-func cp (aV,cq,cr) = valueOrElse(getInteger(this, aV), valueOrElse(getInteger(this, cq), cr))
392+func cu (ba,cv,cw) = valueOrElse(getInteger(this, ba), valueOrElse(getInteger(this, cv), cw))
382393
383394
384-func cs (aA,aB) = {
385- let ai = getInteger(af(aA))
386- let aj = getInteger(af(aB))
387- if (if ((ai == unit))
395+func cx (aF,aG) = {
396+ let an = getInteger(ak(aF))
397+ let ao = getInteger(ak(aG))
398+ if (if ((an == unit))
388399 then true
389- else (aj == unit))
400+ else (ao == unit))
390401 then false
391402 else {
392- let ct = toString(value(ai))
393- let cu = toString(value(aj))
394- let cv = getString(ah(ct, cu))
395- let cw = getString(ah(cu, ct))
396- let cx = if ((cv != unit))
403+ let cy = toString(value(an))
404+ let cz = toString(value(ao))
405+ let cA = getString(am(cy, cz))
406+ let cB = getString(am(cz, cy))
407+ let cC = if ((cA != unit))
397408 then true
398- else (cw != unit)
399- cx
409+ else (cB != unit)
410+ cC
400411 }
401412 }
402413
403414
404-@Callable(bz)
405-func getSwapContractREADONLY () = $Tuple2(nil, aU(J()))
415+func cD (aA) = {
416+ let cj = {
417+ let bg = getString(az(aA))
418+ if ($isInstanceOf(bg, "String"))
419+ then {
420+ let bh = bg
421+ split(bh, m)
422+ }
423+ else K(makeString([aA, "pool is not found"], " "))
424+ }
425+ let an = parseIntValue(cj[1])
426+ let ao = parseIntValue(cj[2])
427+ let aF = getStringValue(ai(an))
428+ let aG = getStringValue(ai(ao))
429+ let bW = getStringValue(aC(aA))
430+ $Tuple5(aF, aG, bW, an, ao)
431+ }
432+
433+
434+func cE (aA) = {
435+ let cF = cD(aA)
436+ let aF = cF._1
437+ let aG = cF._2
438+ let bW = cF._3
439+ let an = cF._4
440+ let ao = cF._5
441+ let cG = addressFromStringValue(getStringValue(Z()))
442+ let cH = invoke(cG, "getPoolCreatorREADONLY", [aF, aG], nil)
443+ cH
444+ }
445+
446+
447+func cI (cJ,cK) = {
448+ let cL = addressFromStringValue(cJ)
449+ if ((cK == "WAVES"))
450+ then wavesBalance(cL).regular
451+ else {
452+ let aU = fromBase58String(cK)
453+ assetBalance(cL, aU)
454+ }
455+ }
456+
457+
458+func cM (aA) = {
459+ let cN = cD(aA)
460+ let aF = cN._1
461+ let aG = cN._2
462+ let bW = cN._3
463+ let an = cN._4
464+ let ao = cN._5
465+ if ((cI(aA, aF) == 0))
466+ then (cI(aA, aG) == 0)
467+ else false
468+ }
469+
470+
471+@Callable(bE)
472+func getSwapContractREADONLY () = $Tuple2(nil, aZ(N()))
406473
407474
408475
409-@Callable(bz)
410-func getPoolLeaseConfigREADONLY (aa,aP) = {
411- let cy = {
412- let bb = getInteger(this, aO(aa, aP))
413- if ($isInstanceOf(bb, "Int"))
476+@Callable(bE)
477+func getPoolLeaseConfigREADONLY (af,aU) = {
478+ let cO = {
479+ let bg = getInteger(this, aT(af, aU))
480+ if ($isInstanceOf(bg, "Int"))
414481 then {
415- let cz = bb
416- $Tuple2(true, min([100, max([0, cz])]))
482+ let cP = bg
483+ $Tuple2(true, min([100, max([0, cP])]))
417484 }
418485 else {
419- let cA = getInteger(this, aQ(aP))
420- if ($isInstanceOf(cA, "Int"))
486+ let cQ = getInteger(this, aV(aU))
487+ if ($isInstanceOf(cQ, "Int"))
421488 then {
422- let cB = cA
423- $Tuple2(true, min([100, max([0, cB])]))
489+ let cR = cQ
490+ $Tuple2(true, min([100, max([0, cR])]))
424491 }
425492 else $Tuple2(false, 0)
426493 }
427494 }
428- let cC = cy._1
429- let cD = cy._2
430- let cE = {
431- let bb = getInteger(this, aS(aa, aP))
432- if ($isInstanceOf(bb, "Int"))
495+ let cS = cO._1
496+ let cT = cO._2
497+ let cU = {
498+ let bg = getInteger(this, aX(af, aU))
499+ if ($isInstanceOf(bg, "Int"))
433500 then {
434- let cF = bb
435- max([0, cF])
501+ let cV = bg
502+ max([0, cV])
436503 }
437504 else {
438- let cA = getInteger(this, aT(aP))
439- if ($isInstanceOf(cA, "Int"))
505+ let cQ = getInteger(this, aY(aU))
506+ if ($isInstanceOf(cQ, "Int"))
440507 then {
441- let cG = cA
442- max([0, cG])
508+ let cW = cQ
509+ max([0, cW])
443510 }
444511 else 0
445512 }
446513 }
447- let cH = if ((aP == "WAVES"))
448- then $Tuple3(valueOrElse(getString(this, aL()), ""), getString(this, valueOrElse(aM(), "")), c)
514+ let cX = if ((aU == "WAVES"))
515+ then $Tuple3(valueOrElse(getString(this, aQ()), ""), getString(this, valueOrElse(aR(), "")), c)
449516 else $Tuple3("", "", 0)
450- let cI = cH._1
451- let cJ = cH._2
452- let cK = cH._3
453- let cL = valueOrElse(getString(this, aN()), "")
454- $Tuple2(nil, $Tuple7(cC, cD, cE, cI, cJ, cK, cL))
517+ let cY = cX._1
518+ let cZ = cX._2
519+ let da = cX._3
520+ let db = valueOrElse(getString(this, aS()), "")
521+ $Tuple2(nil, $Tuple7(cS, cT, cU, cY, cZ, da, db))
455522 }
456523
457524
458525
459-@Callable(bz)
460-func getLpAssetFromPoolAssetsREADONLY (cM,cN) = if (if ((cM == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
461- then (cN == "WAVES")
526+@Callable(bE)
527+func getLpAssetFromPoolAssetsREADONLY (dc,dd) = if (if ((dc == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
528+ then (dd == "WAVES")
462529 else false)
463530 then $Tuple2(nil, unit)
464531 else {
465- let cO = value(getInteger(this, af(cM)))
466- let cP = value(getInteger(this, af(cN)))
467- let cQ = getString(this, aq(toString(cO), toString(cP)))
468- let cR = if ((cQ == unit))
532+ let de = value(getInteger(this, ak(dc)))
533+ let df = value(getInteger(this, ak(dd)))
534+ let dg = getString(this, av(toString(de), toString(df)))
535+ let dh = if ((dg == unit))
469536 then unit
470- else drop(value(cQ), 4)
471- $Tuple2(nil, cR)
537+ else drop(value(dg), 4)
538+ $Tuple2(nil, dh)
472539 }
473540
474541
475542
476-@Callable(bz)
477-func getPoolAddressFromLpAssetREADONLY (cS) = $Tuple2(nil, valueOrElse(getString(this, ay(cS)), ""))
543+@Callable(bE)
544+func getPoolAddressFromLpAssetREADONLY (di) = $Tuple2(nil, valueOrElse(getString(this, aD(di)), ""))
478545
479546
480547
481-@Callable(bz)
482-func constructor (cT,cU,bF,bG,bH,bI,cV,cW) = {
483- let cX = bA(bz)
484- if ((cX == cX))
485- then [StringEntry(K(), bO(cT, cU, bF, bG, bH, bI, cV)), IntegerEntry(W(), cW)]
548+@Callable(bE)
549+func constructor (dj,dk,bK,bL,bM,bN,dl,dm) = {
550+ let dn = bF(bE)
551+ if ((dn == dn))
552+ then [StringEntry(O(), bT(dj, dk, bK, bL, bM, bN, dl)), IntegerEntry(ab(), dm)]
486553 else throw("Strict value is not equal to itself.")
487554 }
488555
489556
490557
491-@Callable(bz)
492-func constructorV2 (cY) = {
493- let cX = bA(bz)
494- if ((cX == cX))
558+@Callable(bE)
559+func constructorV2 (do) = {
560+ let dn = bF(bE)
561+ if ((dn == dn))
495562 then {
496- let cZ = addressFromPublicKey(fromBase58String(cY))
497- if ((cZ == cZ))
498- then [StringEntry(N(), cY)]
563+ let dp = addressFromPublicKey(fromBase58String(do))
564+ if ((dp == dp))
565+ then [StringEntry(R(), do)]
499566 else throw("Strict value is not equal to itself.")
500567 }
501568 else throw("Strict value is not equal to itself.")
502569 }
503570
504571
505572
506-@Callable(bz)
507-func constructorV3 (bK,bL,bM,bN) = {
508- let cX = bA(bz)
509- if ((cX == cX))
573+@Callable(bE)
574+func constructorV3 (bP,bQ,bR,bS) = {
575+ let dn = bF(bE)
576+ if ((dn == dn))
510577 then {
511- let bp = split(aU(K()), l)
512-[StringEntry(K(), bC(bp[1], bp[2], bp[3], bp[4], bp[5], bp[6], bp[7], bK, bL, bM, bN))]
578+ let bu = split(aZ(O()), m)
579+[StringEntry(O(), bH(bu[1], bu[2], bu[3], bu[4], bu[5], bu[6], bu[7], bP, bQ, bR, bS))]
513580 }
514581 else throw("Strict value is not equal to itself.")
515582 }
516583
517584
518585
519-@Callable(bz)
520-func constructorV4 (da,db) = {
521- let cX = bA(bz)
522- if ((cX == cX))
523- then [StringEntry(O(), da), StringEntry(P(), makeString(db, l))]
586+@Callable(bE)
587+func constructorV4 (dq,dr) = {
588+ let dn = bF(bE)
589+ if ((dn == dn))
590+ then [StringEntry(S(), dq), StringEntry(T(), makeString(dr, m))]
524591 else throw("Strict value is not equal to itself.")
525592 }
526593
527594
528595
529-@Callable(bz)
530-func constructorV5 (dc) = {
531- let cX = bA(bz)
532- if ((cX == cX))
533- then [StringEntry(T(), dc)]
596+@Callable(bE)
597+func constructorV5 (ds) = {
598+ let dn = bF(bE)
599+ if ((dn == dn))
600+ then [StringEntry(X(), ds)]
534601 else throw("Strict value is not equal to itself.")
535602 }
536603
537604
538605
539-@Callable(bz)
540-func constructorV6 (dd,de) = {
541- let df = [bA(bz), if ((addressFromString(dd) != unit))
606+@Callable(bE)
607+func constructorV6 (dt,du) = {
608+ let dv = [bF(bE), if ((addressFromString(dt) != unit))
542609 then true
543610 else "invalid voting emission contract address"]
544- if ((df == df))
545- then [StringEntry(U(), dd), StringEntry(V(), makeString(de, l))]
611+ if ((dv == dv))
612+ then [StringEntry(Y(), dt), StringEntry(aa(), makeString(du, m))]
546613 else throw("Strict value is not equal to itself.")
547614 }
548615
549616
550617
551-@Callable(bz)
552-func setAdmins (dg) = {
553- let cX = bA(bz)
554- if ((cX == cX))
555- then [StringEntry(S(), makeString(dg, l))]
618+@Callable(bE)
619+func setAdmins (dw) = {
620+ let dn = bF(bE)
621+ if ((dn == dn))
622+ then [StringEntry(W(), makeString(dw, m))]
556623 else throw("Strict value is not equal to itself.")
557624 }
558625
559626
560627
561-@Callable(bz)
562-func activateNewPool (aa,bS,bT,dh,di,dj,bZ,dk) = {
563- let cX = cm(bz)
564- if ((cX == cX))
565- then if (isDefined(getString(au(aa))))
566- then throw((("Pool address " + aa) + " already registered."))
628+@Callable(bE)
629+func activateNewPool (af,bX,bY,dx,dy,dz,ce,dA) = {
630+ let dn = cr(bE)
631+ if ((dn == dn))
632+ then if (isDefined(getString(az(af))))
633+ then K((("Pool address " + af) + " already registered."))
567634 else {
568- let dl = cf(bS, 1)
569- let dm = dl._1
570- let dn = cf(bT, if (dl._3)
635+ let dB = ck(bX, 1)
636+ let dC = dB._1
637+ let dD = ck(bY, if (dB._3)
571638 then 2
572639 else 1)
573- let do = dn._1
574- let dp = valueOrErrorMessage(scriptHash(addressFromStringValue(aa)), ("No script has been found on pool account " + aa))
575- let dq = getBinaryValue(M())
576- let dr = cs(bS, bT)
577- if (dr)
578- then throw((((("Pool " + bS) + "/") + bT) + " has already been activated."))
640+ let dE = dD._1
641+ let dF = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
642+ let dG = getBinaryValue(Q())
643+ let dH = cx(bX, bY)
644+ if (dH)
645+ then K((((("Pool " + bX) + "/") + bY) + " has already been activated."))
579646 else {
580- let ds = value(getString(this, ah(toString(dm), toString(do))))
581- let dt = if ((bS == "WAVES"))
582- then k
583- else pow(10, 0, value(assetInfo(fromBase58String(bS))).decimals, 0, 0, DOWN)
584- let du = if ((bT == "WAVES"))
585- then k
586- else pow(10, 0, value(assetInfo(fromBase58String(bT))).decimals, 0, 0, DOWN)
587- let dv = Issue(dh, di, 1, 8, true)
588- let bR = calculateAssetId(dv)
589- let dw = toBase58String(bR)
590- let dx = invoke(addressFromStringValue(aa), "activate", [bS, bT], nil)
591- if ((dx == dx))
592- then if ((dx != "success"))
593- then throw("Pool initialisation error happened.")
647+ let dI = value(getString(this, am(toString(dC), toString(dE))))
648+ let dJ = if ((bX == "WAVES"))
649+ then l
650+ else pow(10, 0, value(assetInfo(fromBase58String(bX))).decimals, 0, 0, DOWN)
651+ let dK = if ((bY == "WAVES"))
652+ then l
653+ else pow(10, 0, value(assetInfo(fromBase58String(bY))).decimals, 0, 0, DOWN)
654+ let dL = Issue(dx, dy, 1, 8, true)
655+ let bW = calculateAssetId(dL)
656+ let dM = toBase58String(bW)
657+ let dN = invoke(addressFromStringValue(af), "activate", [bX, bY], nil)
658+ if ((dN == dN))
659+ then if ((dN != "success"))
660+ then K("Pool initialisation error happened.")
594661 else {
595- let dc = addressFromStringValue(aU(T()))
596- let dy = invoke(dc, "createOrUpdate", [dw, dh, false], nil)
597- if ((dy == dy))
662+ let ds = addressFromStringValue(aZ(X()))
663+ let dO = invoke(ds, "createOrUpdate", [dM, dx, false], nil)
664+ if ((dO == dO))
598665 then {
599- let dz = invoke(dc, "addLabel", [dw, h], nil)
600- if ((dz == dz))
666+ let dP = invoke(ds, "addLabel", [dM, h], nil)
667+ if ((dP == dP))
601668 then {
602- let dA = invoke(dc, "setLogo", [dw, dk], nil)
603- if ((dA == dA))
669+ let dQ = invoke(ds, "setLogo", [dM, dA], nil)
670+ if ((dQ == dQ))
604671 then {
605- let dB = invoke(dc, "addAssetsLink", [bS, bT, dw], nil)
606- if ((dB == dB))
672+ let dR = invoke(ds, "addAssetsLink", [bX, bY, dM], nil)
673+ if ((dR == dR))
607674 then {
608- let dC = invoke(dc, "increaseAssetPoolsNumber", [bS], nil)
609- if ((dC == dC))
610- then $Tuple2(((dl._2 ++ dn._2) ++ [dv, Burn(bR, 1), StringEntry(ah(toString(dm), toString(do)), bP(aa, toString(n), dw, bS, bT, dt, du, dm, do, k, bZ)), StringEntry(ao(dw), ca(dm, do)), StringEntry(aq(toString(dm), toString(do)), ("%s__" + dw)), StringEntry(au(aa), ca(dm, do)), StringEntry(aw(dm, do), aa), StringEntry(ay(dw), aa), StringEntry(ax(aa), dw), IntegerEntry(Z(aa), dj), IntegerEntry(at(aa), i)]), dw)
675+ let dS = invoke(ds, "increaseAssetPoolsNumber", [bX], nil)
676+ if ((dS == dS))
677+ then $Tuple2(((dB._2 ++ dD._2) ++ [dL, Burn(bW, 1), StringEntry(am(toString(dC), toString(dE)), bU(af, toString(o), dM, bX, bY, dJ, dK, dC, dE, l, ce)), StringEntry(at(dM), cf(dC, dE)), StringEntry(av(toString(dC), toString(dE)), ("%s__" + dM)), StringEntry(az(af), cf(dC, dE)), StringEntry(aB(dC, dE), af), StringEntry(aD(dM), af), StringEntry(aC(af), dM), IntegerEntry(ae(af), dz), IntegerEntry(ay(af), i)]), dM)
611678 else throw("Strict value is not equal to itself.")
612679 }
613680 else throw("Strict value is not equal to itself.")
614681 }
615682 else throw("Strict value is not equal to itself.")
616683 }
617684 else throw("Strict value is not equal to itself.")
618685 }
619686 else throw("Strict value is not equal to itself.")
620687 }
621688 else throw("Strict value is not equal to itself.")
622689 }
623690 }
624691 else throw("Strict value is not equal to itself.")
625692 }
626693
627694
628695
629-@Callable(bz)
630-func managePool (aa,dD) = {
631- let cX = bA(bz)
632- if ((cX == cX))
696+@Callable(bE)
697+func managePool (af,dT) = {
698+ let dn = bF(bE)
699+ if ((dn == dn))
633700 then {
634- let dE = cd(aa)
635- let bQ = dE[v]
636- let dw = dE[w]
637- let bS = dE[x]
638- let bT = dE[y]
639- let dt = parseIntValue(dE[z])
640- let du = parseIntValue(dE[A])
641- let dm = parseIntValue(dE[B])
642- let do = parseIntValue(dE[C])
643- let dF = parseIntValue(dE[D])
644- let bZ = dE[E]
645-[StringEntry(ah(toString(dm), toString(do)), bP(aa, toString(dD), dw, bS, bT, dt, du, dm, do, dF, bZ))]
701+ let dU = ci(af)
702+ let bV = dU[w]
703+ let dM = dU[x]
704+ let bX = dU[y]
705+ let bY = dU[z]
706+ let dJ = parseIntValue(dU[A])
707+ let dK = parseIntValue(dU[B])
708+ let dC = parseIntValue(dU[C])
709+ let dE = parseIntValue(dU[D])
710+ let dV = parseIntValue(dU[E])
711+ let ce = dU[F]
712+[StringEntry(am(toString(dC), toString(dE)), bU(af, toString(dT), dM, bX, bY, dJ, dK, dC, dE, dV, ce))]
646713 }
647714 else throw("Strict value is not equal to itself.")
648715 }
649716
650717
651718
652-@Callable(bz)
653-func emit (dG) = {
654- let dH = bz.caller
655- let dI = bz.originCaller
656- let dJ = valueOrErrorMessage(getString(ax(toString(dH))), "Invalid LP address called me.")
657- let dK = fromBase58String(dJ)
658- let db = split(valueOrElse(getString(P()), m), l)
659- let da = addressFromStringValue(valueOrErrorMessage(getString(O()), "Legacy factory contract does not exists."))
660- if ((0 >= dG))
719+@Callable(bE)
720+func emit (dW) = {
721+ let dX = bE.caller
722+ let dY = bE.originCaller
723+ let dZ = valueOrErrorMessage(getString(aC(toString(dX))), "Invalid LP address called me.")
724+ let ea = fromBase58String(dZ)
725+ let dr = split(valueOrElse(getString(T()), n), m)
726+ let dq = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
727+ if ((0 >= dW))
661728 then nil
662- else if (containsElement(db, toString(dH)))
663- then $Tuple2(nil, da)
664- else $Tuple2([Reissue(dK, dG, true), ScriptTransfer(bz.caller, dG, dK)], "success")
729+ else if (containsElement(dr, toString(dX)))
730+ then $Tuple2(nil, dq)
731+ else $Tuple2([Reissue(ea, dW, true), ScriptTransfer(bE.caller, dW, ea)], "success")
665732 }
666733
667734
668735
669-@Callable(bz)
670-func burn (dL) = {
671- let dH = bz.caller
672- let dI = bz.originCaller
673- let dM = value(bz.payments[0])
674- let dN = value(dM.amount)
675- let dO = toBase58String(value(dM.assetId))
676- let dP = valueOrErrorMessage(getString(ax(toString(dH))), "Invalid LP address called me.")
677- if ((dO != dP))
678- then throw("Invalid asset passed.")
679- else if ((dL != dN))
680- then throw("Invalid amount passed.")
736+@Callable(bE)
737+func burn (eb) = {
738+ let dX = bE.caller
739+ let dY = bE.originCaller
740+ let ec = value(bE.payments[0])
741+ let ed = value(ec.amount)
742+ let ee = toBase58String(value(ec.assetId))
743+ let ef = valueOrErrorMessage(getString(aC(toString(dX))), "Invalid LP address called me.")
744+ if ((ee != ef))
745+ then K("Invalid asset passed.")
746+ else if ((eb != ed))
747+ then K("Invalid amount passed.")
681748 else {
682- let dK = fromBase58String(dP)
683- $Tuple2([Burn(dK, dL)], "success")
749+ let ea = fromBase58String(ef)
750+ $Tuple2([Burn(ea, eb)], "success")
684751 }
685752 }
686753
687754
688755
689-@Callable(bz)
690-func modifyWeight (bR,dQ) = {
691- let cX = if ((toBase58String(bz.caller.bytes) == valueOrElse(getString(this, U()), "")))
756+@Callable(bE)
757+func modifyWeight (bW,eg) = {
758+ let dn = if ((toBase58String(bE.caller.bytes) == valueOrElse(getString(this, Y()), "")))
692759 then true
693- else bA(bz)
694- if ((cX == cX))
760+ else bF(bE)
761+ if ((dn == dn))
695762 then {
696- let av = aU(ay(bR))
697- let dR = Z(av)
698- let dS = Z(g)
699- let dT = valueOrElse(getInteger(dS), 0)
700- let dj = valueOrElse(getInteger(dR), 0)
701- let dU = dQ
702- let bp = split(aU(K()), l)
703- let cT = br(bp)
704- let dV = invoke(cT, "onModifyWeight", [bR, av], nil)
705- if ((dV == dV))
763+ let aA = aZ(aD(bW))
764+ let eh = ae(aA)
765+ let ei = ae(g)
766+ let ej = valueOrElse(getInteger(ei), 0)
767+ let dz = valueOrElse(getInteger(eh), 0)
768+ let ek = eg
769+ let bu = split(aZ(O()), m)
770+ let dj = bw(bu)
771+ let el = invoke(dj, "onModifyWeight", [bW, aA], nil)
772+ if ((el == el))
706773 then {
707- let dW = if ((dT == 0))
774+ let em = if ((ej == 0))
708775 then nil
709- else [IntegerEntry(dS, 0)]
710- let dX = ab(av, 0)
711- let dY = getInteger(dX)
712- let dZ = if ((dY == unit))
776+ else [IntegerEntry(ei, 0)]
777+ let en = ag(aA, 0)
778+ let eo = getInteger(en)
779+ let ep = if ((eo == unit))
713780 then nil
714- else [DeleteEntry(dX)]
715- (([IntegerEntry(dR, dU)] ++ dW) ++ dZ)
781+ else [DeleteEntry(en)]
782+ (([IntegerEntry(eh, ek)] ++ em) ++ ep)
716783 }
717784 else throw("Strict value is not equal to itself.")
718785 }
719786 else throw("Strict value is not equal to itself.")
720787 }
721788
722789
723790
724-@Callable(bz)
725-func modifyWeights (ea,eb,ec,ed) = {
726- let cX = bA(bz)
727- if ((cX == cX))
791+@Callable(bE)
792+func modifyWeights (eq,er,es,et) = {
793+ let dn = bF(bE)
794+ if ((dn == dn))
728795 then {
729- let ee = ((5 * f) / 100)
730- let ef = ((5 * f) / 100)
731- let eg = ((5 * f) / 100)
732- let bp = split(aU(K()), l)
733- let eh = br(bp)
734- let ei = bs(bp)
735- let ej = Z(ea)
736- let ek = Z(eb)
737- let el = Z(ec)
738- let em = Z(ed)
739- let en = aX(ej)
740- let eo = aX(ek)
741- let ep = (en - eg)
742- let eq = (eo - eg)
743- if ((0 >= ep))
744- then throw(("invalid btcWeightNew: " + toString(ep)))
745- else if ((0 >= eq))
746- then throw(("invalid ethWeightNew: " + toString(eq)))
796+ let eu = ((5 * f) / 100)
797+ let ev = ((5 * f) / 100)
798+ let ew = ((5 * f) / 100)
799+ let bu = split(aZ(O()), m)
800+ let ex = bw(bu)
801+ let ey = bx(bu)
802+ let ez = ae(eq)
803+ let eA = ae(er)
804+ let eB = ae(es)
805+ let eC = ae(et)
806+ let eD = bc(ez)
807+ let eE = bc(eA)
808+ let eF = (eD - ew)
809+ let eG = (eE - ew)
810+ if ((0 >= eF))
811+ then K(("invalid btcWeightNew: " + toString(eF)))
812+ else if ((0 >= eG))
813+ then K(("invalid ethWeightNew: " + toString(eG)))
747814 else {
748- let er = aU(ax(ea))
749- let es = aU(ax(eb))
750- let et = aU(ax(ec))
751- let eu = aU(ax(ed))
752- let ev = invoke(eh, "onModifyWeight", [er, ea], nil)
753- if ((ev == ev))
815+ let eH = aZ(aC(eq))
816+ let eI = aZ(aC(er))
817+ let eJ = aZ(aC(es))
818+ let eK = aZ(aC(et))
819+ let eL = invoke(ex, "onModifyWeight", [eH, eq], nil)
820+ if ((eL == eL))
754821 then {
755- let ew = invoke(eh, "onModifyWeight", [es, eb], nil)
756- if ((ew == ew))
822+ let eM = invoke(ex, "onModifyWeight", [eI, er], nil)
823+ if ((eM == eM))
757824 then {
758- let ex = invoke(eh, "onModifyWeight", [et, ec], nil)
759- if ((ex == ex))
825+ let eN = invoke(ex, "onModifyWeight", [eJ, es], nil)
826+ if ((eN == eN))
760827 then {
761- let ey = invoke(eh, "onModifyWeight", [eu, ed], nil)
762- if ((ey == ey))
763- then [IntegerEntry(ej, ep), IntegerEntry(ek, eq), IntegerEntry(el, ee), IntegerEntry(em, ef), IntegerEntry(ab(ea, 0), en), IntegerEntry(ab(eb, 0), eo), IntegerEntry(ab(ec, 0), ee), IntegerEntry(ab(ed, 0), ef)]
828+ let eO = invoke(ex, "onModifyWeight", [eK, et], nil)
829+ if ((eO == eO))
830+ then [IntegerEntry(ez, eF), IntegerEntry(eA, eG), IntegerEntry(eB, eu), IntegerEntry(eC, ev), IntegerEntry(ag(eq, 0), eD), IntegerEntry(ag(er, 0), eE), IntegerEntry(ag(es, 0), eu), IntegerEntry(ag(et, 0), ev)]
764831 else throw("Strict value is not equal to itself.")
765832 }
766833 else throw("Strict value is not equal to itself.")
767834 }
768835 else throw("Strict value is not equal to itself.")
769836 }
770837 else throw("Strict value is not equal to itself.")
771838 }
772839 }
773840 else throw("Strict value is not equal to itself.")
774841 }
775842
776843
777844
778-@Callable(bz)
779-func checkWxEmissionPoolLabel (aA,aB) = {
780- let ez = {
781- let bb = getBoolean(az(aA, aB))
782- if ($isInstanceOf(bb, "Boolean"))
845+@Callable(bE)
846+func checkWxEmissionPoolLabel (aF,aG) = {
847+ let eP = {
848+ let bg = getBoolean(aE(aF, aG))
849+ if ($isInstanceOf(bg, "Boolean"))
783850 then {
784- let cF = bb
785- cF
851+ let cV = bg
852+ cV
786853 }
787854 else false
788855 }
789- $Tuple2(nil, ez)
856+ $Tuple2(nil, eP)
790857 }
791858
792859
793860
794-@Callable(bz)
795-func setWxEmissionPoolLabel (aA,aB) = {
796- let cX = cm(bz)
797- if ((cX == cX))
798- then $Tuple2([BooleanEntry(az(aA, aB), true)], unit)
861+@Callable(bE)
862+func setWxEmissionPoolLabel (aF,aG) = {
863+ let dn = cr(bE)
864+ if ((dn == dn))
865+ then $Tuple2([BooleanEntry(aE(aF, aG), true)], unit)
799866 else throw("Strict value is not equal to itself.")
800867 }
801868
802869
803870
804-@Callable(bz)
805-func deleteWxEmissionPoolLabel (aA,aB) = {
806- let cX = if ((bz.caller == this))
871+@Callable(bE)
872+func deleteWxEmissionPoolLabel (aF,aG) = {
873+ let dn = if ((bE.caller == this))
807874 then true
808- else cm(bz)
809- if ((cX == cX))
810- then $Tuple2([DeleteEntry(az(aA, aB))], unit)
875+ else cr(bE)
876+ if ((dn == dn))
877+ then $Tuple2([DeleteEntry(aE(aF, aG))], unit)
811878 else throw("Strict value is not equal to itself.")
812879 }
813880
814881
815882
816-@Callable(bz)
817-func onVerificationLoss (aP) = {
818- let cX = if ((toBase58String(bz.caller.bytes) == valueOrElse(getString(this, T()), "")))
883+@Callable(bE)
884+func onVerificationLoss (aU) = {
885+ let dn = if ((toBase58String(bE.caller.bytes) == valueOrElse(getString(this, X()), "")))
819886 then true
820- else bA(bz)
821- if ((cX == cX))
887+ else bF(bE)
888+ if ((dn == dn))
822889 then {
823- let de = bt()
824- let eA = if ((size(de) > 0))
890+ let du = by()
891+ let eQ = if ((size(du) > 0))
825892 then true
826- else throw("invalid price assets")
827- if ((eA == eA))
893+ else K("invalid price assets")
894+ if ((eQ == eQ))
828895 then {
829- func eB (eC,eD) = {
830- let cz = invoke(this, "deleteWxEmissionPoolLabel", [aP, eD], nil)
831- if ((cz == cz))
896+ func eR (eS,eT) = {
897+ let cP = invoke(this, "deleteWxEmissionPoolLabel", [aU, eT], nil)
898+ if ((cP == cP))
832899 then unit
833900 else throw("Strict value is not equal to itself.")
834901 }
835902
836- let eE = {
837- let eF = de
838- let eG = size(eF)
839- let eH = unit
840- func eI (eJ,eK) = if ((eK >= eG))
841- then eJ
842- else eB(eJ, eF[eK])
903+ let eU = {
904+ let eV = du
905+ let eW = size(eV)
906+ let eX = unit
907+ func eY (eZ,fa) = if ((fa >= eW))
908+ then eZ
909+ else eR(eZ, eV[fa])
843910
844- func eL (eJ,eK) = if ((eK >= eG))
845- then eJ
911+ func fb (eZ,fa) = if ((fa >= eW))
912+ then eZ
846913 else throw("List size exceeds 13")
847914
848- eL(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
915+ fb(eY(eY(eY(eY(eY(eY(eY(eY(eY(eY(eY(eY(eY(eX, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
849916 }
850- if ((eE == eE))
917+ if ((eU == eU))
851918 then $Tuple2(nil, unit)
852919 else throw("Strict value is not equal to itself.")
853920 }
854921 else throw("Strict value is not equal to itself.")
855922 }
856923 else throw("Strict value is not equal to itself.")
857924 }
858925
859926
860927
861-@Callable(bz)
862-func isPoolOneTokenOperationsDisabledREADONLY (aa) = {
863- let dE = cd(aa)
864- let al = $Tuple2(parseIntValue(dE[B]), parseIntValue(dE[C]))
865- let eM = valueOrElse(getBoolean(ak(al)), false)
866- let eN = valueOrElse(getBoolean(an()), false)
867- $Tuple2(nil, if (eN)
928+@Callable(bE)
929+func isPoolOneTokenOperationsDisabledREADONLY (af) = {
930+ let dU = ci(af)
931+ let aq = $Tuple2(parseIntValue(dU[C]), parseIntValue(dU[D]))
932+ let fc = valueOrElse(getBoolean(ap(aq)), false)
933+ let fd = valueOrElse(getBoolean(as()), false)
934+ $Tuple2(nil, if (fd)
868935 then true
869- else eM)
936+ else fc)
870937 }
871938
872939
873940
874-@Callable(bz)
875-func getInFeeREADONLY (aa) = {
876- let eO = cp(aC(aa), aD(), 0)
877- $Tuple2(nil, eO)
941+@Callable(bE)
942+func getInFeeREADONLY (af) = {
943+ let fe = cu(aH(af), aI(), 0)
944+ $Tuple2(nil, fe)
878945 }
879946
880947
881948
882-@Callable(bz)
883-func getOutFeeREADONLY (aa) = {
884- let eO = cp(aF(aa), aG(), fraction(10, b, 10000))
885- $Tuple2(nil, eO)
949+@Callable(bE)
950+func getOutFeeREADONLY (af) = {
951+ let fe = cu(aK(af), aL(), fraction(10, b, 10000))
952+ $Tuple2(nil, fe)
886953 }
887954
888955
889956
890-@Callable(bz)
891-func getSwapFeeREADONLY (eP) = {
892- let eQ = {
893- let bb = getString(this, aE(eP))
894- if ($isInstanceOf(bb, "String"))
957+@Callable(bE)
958+func getSwapFeeREADONLY (ff) = {
959+ let fg = {
960+ let bg = getString(this, aJ(ff))
961+ if ($isInstanceOf(bg, "String"))
895962 then {
896- let bc = bb
897- let eR = split(bc, l)
898- let eS = parseIntValue(eR[1])
899- let eT = parseIntValue(eR[2])
900- $Tuple2(eS, eT)
963+ let bh = bg
964+ let fh = split(bh, m)
965+ let fi = parseIntValue(fh[1])
966+ let fj = parseIntValue(fh[2])
967+ $Tuple2(fi, fj)
901968 }
902- else if ($isInstanceOf(bb, "Unit"))
969+ else if ($isInstanceOf(bg, "Unit"))
903970 then unit
904971 else throw("Match error")
905972 }
906- $Tuple2(nil, eQ)
973+ $Tuple2(nil, fg)
907974 }
908975
909976
910977
911-@Callable(bz)
912-func poolInfoREADONLY (eU,eV) = {
913- let eW = getInteger(this, af(eU))
914- let eX = getInteger(this, af(eV))
915- let eY = getString(this, aw(value(eW), value(eX)))
916- let eZ = getString(this, ax(value(eY)))
917- let dr = if (if (isDefined(eW))
918- then isDefined(eX)
978+@Callable(bE)
979+func poolInfoREADONLY (fk,fl) = {
980+ let fm = getInteger(this, ak(fk))
981+ let fn = getInteger(this, ak(fl))
982+ let fo = getString(this, aB(value(fm), value(fn)))
983+ let fp = getString(this, aC(value(fo)))
984+ let dH = if (if (isDefined(fm))
985+ then isDefined(fn)
919986 else false)
920- then isDefined(eY)
987+ then isDefined(fo)
921988 else false
922- let fa = if (dr)
923- then $Tuple2(addressFromStringValue(value(eY)), aY(value(eZ)))
989+ let fq = if (dH)
990+ then $Tuple2(addressFromStringValue(value(fo)), bd(value(fp)))
924991 else unit
925- $Tuple2(nil, fa)
992+ $Tuple2(nil, fq)
926993 }
927994
928995
929996
930-@Callable(bz)
931-func getPoolStatusREADONLY (aa) = {
932- let ce = split(aU(au(aa)), l)
933- let ai = ce[1]
934- let aj = ce[2]
935- let cv = split(aU(ah(ai, aj)), l)
936- $Tuple2(nil, parseIntValue(cv[v]))
997+@Callable(bE)
998+func getPoolStatusREADONLY (af) = {
999+ let cj = split(aZ(az(af)), m)
1000+ let an = cj[1]
1001+ let ao = cj[2]
1002+ let cA = split(aZ(am(an, ao)), m)
1003+ $Tuple2(nil, parseIntValue(cA[w]))
9371004 }
9381005
9391006
9401007
941-@Callable(bz)
942-func getPoolConfigREADONLY (aa) = {
943- let ce = split(aU(au(aa)), l)
944- let ai = ce[1]
945- let aj = ce[2]
946- let cv = split(aU(ah(ai, aj)), l)
947- $Tuple2(nil, cv)
1008+@Callable(bE)
1009+func getPoolConfigREADONLY (af) = {
1010+ let cj = split(aZ(az(af)), m)
1011+ let an = cj[1]
1012+ let ao = cj[2]
1013+ let cA = split(aZ(am(an, ao)), m)
1014+ $Tuple2(nil, cA)
9481015 }
9491016
9501017
9511018
952-@Callable(bz)
953-func getPoolConfigByLpAssetIdREADONLY (dw) = {
954- let ce = split(aU(ao(dw)), l)
955- let ai = ce[1]
956- let aj = ce[2]
957- let cv = split(aU(ah(ai, aj)), l)
958- $Tuple2(nil, cv)
1019+@Callable(bE)
1020+func getPoolConfigByLpAssetIdREADONLY (dM) = {
1021+ let cj = split(aZ(at(dM)), m)
1022+ let an = cj[1]
1023+ let ao = cj[2]
1024+ let cA = split(aZ(am(an, ao)), m)
1025+ $Tuple2(nil, cA)
9591026 }
9601027
9611028
9621029
963-@Callable(bz)
964-func poolExistsREADONLY (aA,aB) = $Tuple2(nil, cs(aA, aB))
1030+@Callable(bE)
1031+func poolExistsREADONLY (aF,aG) = $Tuple2(nil, cx(aF, aG))
9651032
9661033
9671034
968-@Callable(bz)
969-func skipOrderValidationREADONLY (aa) = $Tuple2(nil, valueOrElse(getBoolean(aH(aa)), false))
1035+@Callable(bE)
1036+func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aM(af)), false))
9701037
9711038
9721039
973-@Callable(bz)
974-func getChangeAmpConfigREADONLY (aa) = {
975- let fb = getIntegerValue(aI(aa))
976- let fc = getIntegerValue(aJ(aa))
977- let fd = getIntegerValue(aK(aa))
978- $Tuple2(nil, [fb, fc, fd])
1040+@Callable(bE)
1041+func getChangeAmpConfigREADONLY (af) = {
1042+ let fr = getIntegerValue(aN(af))
1043+ let fs = getIntegerValue(aO(af))
1044+ let ft = getIntegerValue(aP(af))
1045+ $Tuple2(nil, [fr, fs, ft])
9791046 }
9801047
9811048
9821049
983-@Callable(bz)
984-func getPoolWeightREADONLY (bR) = {
985- let aa = aU(ay(bR))
986- let fe = valueOrElse(getInteger(Z(aa)), 0)
987- $Tuple2(nil, fe)
1050+@Callable(bE)
1051+func getPoolWeightREADONLY (bW) = {
1052+ let af = aZ(aD(bW))
1053+ let fu = valueOrElse(getInteger(ae(af)), 0)
1054+ $Tuple2(nil, fu)
9881055 }
9891056
9901057
991-@Verifier(ff)
992-func fg () = {
993- let fh = {
994- let bb = bu()
995- if ($isInstanceOf(bb, "ByteVector"))
1058+
1059+@Callable(bE)
1060+func deletePool (aA) = {
1061+ let dU = ci(aA)
1062+ let dn = if ((toString(bE.caller) == cE(aA)))
1063+ then if (cM(aA))
1064+ then true
1065+ else K("Pool is not empty")
1066+ else bF(bE)
1067+ if ((dn == dn))
1068+ then {
1069+ let fv = if ((valueOrElse(getInteger(ae(aA)), 0) == 0))
1070+ then true
1071+ else K("Pool weight is not Zero")
1072+ if ((fv == fv))
1073+ then {
1074+ let fw = if ((dU[w] == toString(r)))
1075+ then true
1076+ else K("Pool must be SHUTDOWN (4)")
1077+ if ((fw == fw))
1078+ then {
1079+ let fx = cD(aA)
1080+ let aF = fx._1
1081+ let aG = fx._2
1082+ let bW = fx._3
1083+ let an = fx._4
1084+ let ao = fx._5
1085+ let cG = addressFromStringValue(getStringValue(Z()))
1086+ let fy = invoke(cG, "deletePool", [aF, aG], nil)
1087+ if ((fy == fy))
1088+ then {
1089+ let dt = addressFromStringValue(getStringValue(Y()))
1090+ let fz = invoke(dt, "deletePool", [aF, aG], nil)
1091+ if ((fz == fz))
1092+ then {
1093+ let ds = addressFromStringValue(getStringValue(X()))
1094+ let fA = invoke(ds, "deletePool", [aF, aG], nil)
1095+ if ((fA == fA))
1096+ then [DeleteEntry(aC(aA)), DeleteEntry(az(aA)), DeleteEntry(av(toString(an), toString(ao))), DeleteEntry(aB(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(at(bW)), DeleteEntry(aD(bW)), DeleteEntry(aE(aF, aG)), DeleteEntry(ae(aA)), DeleteEntry(ay(aA)), DeleteEntry(aH(aA)), DeleteEntry(aK(aA)), DeleteEntry(aM(aA)), DeleteEntry(aN(aA)), DeleteEntry(aO(aA)), DeleteEntry(aP(aA))]
1097+ else throw("Strict value is not equal to itself.")
1098+ }
1099+ else throw("Strict value is not equal to itself.")
1100+ }
1101+ else throw("Strict value is not equal to itself.")
1102+ }
1103+ else throw("Strict value is not equal to itself.")
1104+ }
1105+ else throw("Strict value is not equal to itself.")
1106+ }
1107+ else throw("Strict value is not equal to itself.")
1108+ }
1109+
1110+
1111+@Verifier(fB)
1112+func fC () = {
1113+ let fD = {
1114+ let bg = bz()
1115+ if ($isInstanceOf(bg, "ByteVector"))
9961116 then {
997- let bB = bb
998- bB
1117+ let bG = bg
1118+ bG
9991119 }
1000- else if ($isInstanceOf(bb, "Unit"))
1001- then ff.senderPublicKey
1120+ else if ($isInstanceOf(bg, "Unit"))
1121+ then fB.senderPublicKey
10021122 else throw("Match error")
10031123 }
1004- sigVerify(ff.bodyBytes, ff.proofs[0], fh)
1124+ sigVerify(fB.bodyBytes, fB.proofs[0], fD)
10051125 }
10061126

github/deemru/w8io/169f3d6 
453.68 ms