tx · 9jiCiTPCb6XA7GDduEtBDC5qmpYJDhsZBfADeFkdnDBW

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.03100000 Waves

2023.12.26 15:48 [2903734] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "9jiCiTPCb6XA7GDduEtBDC5qmpYJDhsZBfADeFkdnDBW", "fee": 3100000, "feeAssetId": null, "timestamp": 1703594921500, "version": 2, "chainId": 84, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "MG71gh9VveVvmYANuNa8RC2e6Pg5ZmeRZscTGVEY5AP2o7QsReBCf5CjsHbkpYHQ4agqRgFwgGBSRfeEwXEA3bJ" ], "script": "base64:BgLuMQgCEgASBAoCCAgSBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEYEgoKCAgICAgIAQgIEgQKAggBEgMKAQESAwoBARIECgIIARIGCgQICAgIEgQKAggIEgQKAggIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIIgZTQ0FMRTgiBU1VTFQ4IgZNVUxUMTIiB1NDQUxFMTgiBk1VTFQxOCIOUE9PTFdFSUdIVE1VTFQiDkdXWHZpcnR1YWxQT09MIgxsYWJlbFBvb2xzTHAiDWRlZmF1bHRTcHJlYWQiC3dhdmVzU3RyaW5nIhBjb250cmFjdEZpbGVuYW1lIhFkZWNpbWFsc011bHRQcmljZSIDU0VQIgVFTVBUWSIKUG9vbEFjdGl2ZSIPUG9vbFB1dERpc2FibGVkIhNQb29sTWF0Y2hlckRpc2FibGVkIgxQb29sU2h1dGRvd24iEmlkeEludGVybmFsQXNzZXRJZCIPaWR4UmVzdXRBY3Rpb25zIiBpZHhJZkFzc2V0SWRDYWxjdWxhdGlvblBlcmZvcm1lZCIOaWR4UG9vbEFkZHJlc3MiDWlkeFBvb2xTdGF0dXMiEGlkeFBvb2xMUEFzc2V0SWQiDWlkeEFtdEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIOaWR4QW10QXNzZXREY20iEGlkeFByaWNlQXNzZXREY20iDmlkeElBbXRBc3NldElkIhBpZHhJUHJpY2VBc3NldElkIg1pZHhMUEFzc2V0RGNtIgtpZHhQb29sVHlwZSITcG9vbExhYmVsV3hFbWlzc2lvbiIPdmFsaWRQb29sTGFiZWxzIgd3cmFwRXJyIgNtc2ciCHRocm93RXJyIhZrZXlBbGxvd2VkTHBTY3JpcHRIYXNoIhxrZXlBbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoIgxzd2FwQ29udHJhY3QiEGtleUZhY3RvcnlDb25maWciD2tleUxwVG9rZW5zTGlzdCIRa2V5UG9vbFNjcmlwdEhhc2giDWtleU1hdGNoZXJQdWIiGGtleUxlZ2FjeUZhY3RvcnlDb250cmFjdCIOa2V5TGVnYWN5UG9vbHMiE2tleU1hbmFnZXJQdWJsaWNLZXkiFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MiD2tleUFkbWluUHViS2V5cyIWa2V5QXNzZXRzU3RvcmVDb250cmFjdCIZa2V5Vm90aW5nRW1pc3Npb25Db250cmFjdCIUa2V5VXNlclBvb2xzQ29udHJhY3QiDmtleVByaWNlQXNzZXRzIhBrZXlQcmljZURlY2ltYWxzIhNrZXlBbGxQb29sc1NodXRkb3duIhZrZXlOZXh0SW50ZXJuYWxBc3NldElkIg9rZXlQb29sVG9XZWlnaHQiC3Bvb2xBZGRyZXNzIhZrZXlQb29sVG9XZWlnaHRIaXN0b3J5IgNudW0iH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQiEWludGVybmFsQmFzZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiDWtleVBvb2xDb25maWciE2Ftb3VudEFzc2V0SW50ZXJuYWwiEnByaWNlQXNzZXRJbnRlcm5hbCIha2V5UG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg5hc3NldHNJbnRlcm5hbCILJHQwMzg3ODM5NDAiJWtleUFsbFBvb2xzT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiE2tleVBvb2xTd2FwRGlzYWJsZWQiCyR0MDQyMzI0Mjk0IhdrZXlBbGxQb29sc1N3YXBEaXNhYmxlZCIda2V5TWFwcGluZ0xwQXNzZXRUb1Bvb2xBc3NldHMiCmxwQXNzZXRTdHIiHWtleU1hcHBpbmdQb29sQXNzZXRzVG9McGFzc2V0IhhpbnRlcm5hbEFtb3VudEFzc2V0SWRTdHIiF2ludGVybmFsUHJpY2VBc3NldElkU3RyIg1rZXlQb29sU3ByZWFkIilrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cyITcG9vbENvbnRyYWN0QWRkcmVzcyIpa2V5TWFwcGluZ1Bvb2xBc3NldHNUb1Bvb2xDb250cmFjdEFkZHJlc3MiH2tleU1hcHBpbmdQb29sQ29udHJhY3RUb0xQQXNzZXQiKmtleU1hcHBpbmdQb29sTFBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcyINa2V5V3hFbWlzc2lvbiINYW1vdW50QXNzZXRJZCIMcHJpY2VBc3NldElkIghrZXlJbkZlZSIPa2V5SW5GZWVEZWZhdWx0IgprZXlTd2FwRmVlIglrZXlPdXRGZWUiEGtleU91dEZlZURlZmF1bHQiHGtleVBvb2xBc3NldERlZmF1bHRNaW5BbW91bnQiFmtleVBvb2xBc3NldHNNaW5BbW91bnQiB2Fzc2V0SWQiFmtleVNraXBPcmRlclZhbGlkYXRpb24iEWtleUNoYW5nZUFtcERlbGF5IhFrZXlDaGFuZ2VBbXBEZWx0YSISa2V5Q2hhbmdlQW1wVGFyZ2V0IhVrZXlTV2F2ZXNQcm94eUFkZHJlc3MiEGtleVNXYXZlc0Fzc2V0SWQiF2tleVN0YWtpbmdQcm9maXRBZGRyZXNzIg5rZXlMZWFzZWRSYXRpbyIVa2V5TGVhc2VkUmF0aW9EZWZhdWx0IhdrZXlMZWFzZWRSYXRpb1RvbGVyYW5jZSINa2V5TWluQmFsYW5jZSIUa2V5TWluQmFsYW5jZURlZmF1bHQiFWtleUFkZHJlc3NXaGl0ZWxpc3RlZCIHYWRkcmVzcyIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiEGdldEJvb2xlYW5PckZhaWwiDGdldEludE9yRmFpbCIMcGFyc2VBc3NldElkIgVpbnB1dCIcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcyIHJG1hdGNoMCIBcyIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiB2Zyb21YMTgiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0IhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIUSWR4RmFjdG9yeUNmZ0Rhb0RhcHAiGklkeEZhY3RvcnlDZmdNYXJrZXRpbmdEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCIWSWR4RmFjdG9yeUNmZ0JpcmRzRGFwcCIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgpmYWN0b3J5Q2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIg5nZXRQcmljZUFzc2V0cyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCITbWFuYWdlclZhdWx0QWRkcmVzcyIVcGVybWlzc2lvbkRlbmllZEVycm9yIgl0ZXN0RXJyb3IiCG11c3RUaGlzIgFpIgttdXN0TWFuYWdlciICcGsiEGRhdGFGYWN0b3J5Q2ZnVjMiDnN0YWtpbmdBZGRyZXNzIg9ib29zdGluZ0FkZHJlc3MiC2lkb0NvbnRyYWN0Igx0ZWFtQ29udHJhY3QiEGVtaXNzaW9uQ29udHJhY3QiDHJlc3RDb250cmFjdCIQc2xpcHBhZ2VDb250cmFjdCILZGFvQ29udHJhY3QiEW1hcmtldGluZ0NvbnRyYWN0IhJnd3hSZXdhcmRzQ29udHJhY3QiDWJpcmRzQ29udHJhY3QiDmRhdGFGYWN0b3J5Q2ZnIgtkYXRhUG9vbENmZyIKcG9vbFN0YXR1cyIJbHBBc3NldElkIg5hbW91bnRBc3NldFN0ciINcHJpY2VBc3NldFN0ciITYW1vdW50QXNzZXREZWNpbWFscyIScHJpY2VBc3NldERlY2ltYWxzIhVhbW91bnRBc3NldEludGVybmFsSWQiFHByaWNlQXNzZXRJbnRlcm5hbElkIg9scEFzc2V0RGVjaW1hbHMiCHBvb2xUeXBlIhVkYXRhTWFwcGluZ1Bvb2xBc3NldHMiFmludGVybmFsQW1vdW50QXNzZXRTdHIiFWludGVybmFsUHJpY2VBc3NldFN0ciINZ2V0UG9vbENvbmZpZyIKcG9vbEFzc2V0cyIaZ2V0SW50ZXJuYWxBc3NldElkT3JDcmVhdGUiCmFzc2V0SWRTdHIiC2luY3JlbWVudG9yIg9pbnRlcm5hbEFzc2V0SWQiGGN1cnJlbnRJbmRleE9mSW50ZXJuYWxJZCIGcmVzdWx0IhJuZXdJbnRlcm5hbEFzc2V0SWQiCW11c3RBZG1pbiIIYWRtaW5QS3MiCWlzTWFuYWdlciIWaW50T3JEZWZhdWx0T3JGYWxsYmFjayIKa2V5RGVmYXVsdCINdmFsdWVGYWxsYmFjayIScG9vbEV4aXN0c0ludGVybmFsIgRhbUFzIgRwckFzIgNjZmciCmNmZ1JldmVyc2UiBmV4aXN0cyIcZ2V0QXNzZXRzRGF0YUZyb21Qb29sQWRkcmVzcyIOZ2V0UG9vbENyZWF0b3IiDSR0MDE2MTAzMTYyNDAiEXVzZXJQb29sc0NvbnRyYWN0Igtwb29sQ3JlYXRvciIRZ2V0QWRkcmVzc0JhbGFuY2UiDWFkZHJlc3NTdHJpbmciDWFzc2V0SWRTdHJpbmciC2lzUG9vbEVtcHR5Ig0kdDAxNjgxNTE2OTUyIg0kdDAxNzI2NzE3NTcxIgFyIgckbWF0Y2gxIgJyZCIKaXNMZWFzYWJsZSILbGVhc2VkUmF0aW8iCm1pbkJhbGFuY2UiAWIiAmJkIg0kdDAxNzgzNzE4MDYxIgxwcm94eUFkZHJlc3MiDHByb3h5QXNzZXRJZCIMcHJveHlSYXRlTXVsIhRzdGFraW5nUHJvZml0QWRkcmVzcyIGYXNzZXQxIgZhc3NldDIiCWFzc2V0TnVtMSIJYXNzZXROdW0yIgJlZSIDcmVzIgJscCIPc3Rha2luZ0NvbnRyYWN0IhBib29zdGluZ0NvbnRyYWN0IhBzbHBpcGFnZUNvbnRyYWN0Ig1wcmljZURlY2ltYWxzIgtjaGVja0NhbGxlciIQbWF0aGNoZXJQdWI1OFN0ciIKbWF0aGNlclB1YiIVbGVnYWN5RmFjdG9yeUNvbnRyYWN0IgtsZWdhY3lQb29scyITYXNzZXRzU3RvcmVDb250cmFjdCIWdm90aW5nRW1pc3Npb25Db250cmFjdCILcHJpY2VBc3NldHMiBWNoZWtzIgxhZG1pblB1YktleXMiC2xwQXNzZXROYW1lIgxscEFzc2V0RGVzY3IiCnBvb2xXZWlnaHQiBGxvZ28iF2ludGVybmFsQW1vdW50QXNzZXREYXRhIhVpbnRlcm5hbEFtb3VudEFzc2V0SWQiFmludGVybmFsUHJpY2VBc3NldERhdGEiFGludGVybmFsUHJpY2VBc3NldElkIhVwb29sQWNjb3VudFNjcmlwdEhhc2giHGV0aGFsb25Qb29sQWNjb3VudFNjcmlwdEhhc2giCnBvb2xFeGlzdHMiD3Bvb2xDb25maWdWYWx1ZSIUYW1vdW50QXNzZXRzRGVjaW1hbHMiE3ByaWNlQXNzZXRzRGVjaW1hbHMiEmxwQXNzZXRJc3N1ZUFjdGlvbiIMbHBBc3NldElkU3RyIhhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQiGGNyZWF0ZU9yVXBkYXRlTHBBc3NldEludiISYWRkUG9vbHNMcExhYmVsSW52IgpzZXRMb2dvSW52IhBhZGRBc3NldHNMaW5rSW52IhtpbmNyZWFzZUFzc2V0UG9vbHNOdW1iZXJJbnYiCW5ld1N0YXR1cyIKcG9vbENvbmZpZyIKbHBBc3NldERjbSIMYW1vdW50VG9FbWl0IgZjYWxsZXIiDG9yaWdpbkNhbGxlciIQbHBBc3NldFJlcXVlc3RlZCIHbHBBc3NldCIMYW1vdW50VG9CdXJuIgdwYXltZW50Ig1wYXltZW50QW1vdW50Ig9pbkFtb3VudEFzc2V0SWQiGmxwQXNzZXRSZXF1ZXN0ZWRGb3JCdXJuaW5nIgVzaGFyZSINcG9vbFdlaWdodEtleSIMZ3d4V2VpZ2h0S2V5Iglnd3hXZWlnaHQiDXBvb2xXZWlnaHROZXciEW9uTW9kaWZ5V2VpZ2h0SW52IhVnd3hWaXJ0dWFsUG9vbEFjdGlvbnMiFHBvb2xXZWlnaHRIaXN0b3J5S2V5Ihdwb29sV2VpZ2h0SGlzdG9yeU9yVW5pdCIYcG9vbFdlaWdodEhpc3RvcnlBY3Rpb25zIg5idGNQb29sQWRkcmVzcyIOZXRoUG9vbEFkZHJlc3MiEWV0aEJ0Y1Bvb2xBZGRyZXNzIhN1c2RjVXNkdFBvb2xBZGRyZXNzIg9ldGhCdGNXZWlnaHROZXciEXVzZGNVc2R0V2VpZ2h0TmV3Ig93ZWlnaHREZWNyZW1lbnQiC3N0YWtpbmdEYXBwIg1nd3hSZXdhcmREYXBwIgxidGNXZWlnaHRLRVkiDGV0aFdlaWdodEtFWSIPZXRoQnRjV2VpZ2h0S0VZIhF1c2RjVXNkdFdlaWdodEtFWSIJYnRjV2VpZ2h0IglldGhXZWlnaHQiDGJ0Y1dlaWdodE5ldyIMZXRoV2VpZ2h0TmV3Ig9idGNMcEFzc2V0SWRTdHIiD2V0aExwQXNzZXRJZFN0ciISZXRoQnRjTHBBc3NldElkU3RyIhR1c2RjVXNkdExwQXNzZXRJZFN0ciIRb25Nb2RpZnlXZWlnaHRCdGMiEW9uTW9kaWZ5V2VpZ2h0RXRoIhRvbk1vZGlmeVdlaWdodEV0aEJ0YyIWb25Nb2RpZnlXZWlnaHRVc2RjVXNkdCIJaGF2ZUxhYmVsIhRjaGVja1ByaWNlQXNzZXRzU2l6ZSICY2IiA2FjYyIKcHJpY2VBc3NldCIHYWN0aW9ucyICJGwiAiRzIgUkYWNjMCIFJGYwXzEiAiRhIgIkaSIFJGYwXzIiHnBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIiYWxsUG9vbHNPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIQcG9vbFN3YXBEaXNhYmxlZCIUYWxsUG9vbHNTd2FwRGlzYWJsZWQiA2ZlZSIOcG9vbEFkZHJlc3NTdHIiCWZlZU9wdGlvbiIFcGFydHMiB3Bvb2xGZWUiC3Byb3RvY29sRmVlIhBhbW91bnRBc3NldElkU3RyIg9wcmljZUFzc2V0SWRTdHIiG2Ftb3VudEFzc2V0SW50ZXJuYWxJZE9wdGlvbiIacHJpY2VBc3NldEludGVybmFsSWRPcHRpb24iGXBvb2xDb250cmFjdEFkZHJlc3NPcHRpb24iD2xwQXNzZXRJZE9wdGlvbiIIcG9vbEluZm8iBWRlbGF5IgVkZWx0YSIGdGFyZ2V0IgZ3ZWlnaHQiC2NoZWNrV2VpZ2h0IgtjaGVja1N0YXR1cyINJHQwNDA5MTY0MTA1MyIPdXNlclBvb2xzSW52b2tlIhR2b3RpbmdFbWlzc2lvbkludm9rZSIRYXNzZXRzU3RvcmVJbnZva2UiCmFtdEFzc2V0SWQiDXBvb2xMcEJhbGFuY2UiEmFjY0FtdEFzc2V0QmFsYW5jZSIBQCIUYWNjUHJpY2VBc3NldEJhbGFuY2UiBXByaWNlIhVhc3NldE1pbkFtb3VudERlZmF1bHQiFGFtb3VudEFzc2V0TWluQW1vdW50IhNwcmljZUFzc2V0TWluQW1vdW50IhJhbW91bnRBc3NldEJhbGFuY2UiEXByaWNlQXNzZXRCYWxhbmNlIhZhbW91bnRBc3NldEJhbGFuY2VJc09rIhVwcmljZUFzc2V0QmFsYW5jZUlzT2siC2JhbGFuY2VJc09rIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXmFAQABYQAIAAFiAIDC1y8AAWMAgKCUpY0dAAFkABIAAWUJALYCAQCAgJC7utat8A0AAWYFAWIAAWcCDkdXWHZpcnR1YWxQT09MAAFoAghQT09MU19MUAABaQCAiXoAAWoCBVdBVkVTAAFrAg9mYWN0b3J5X3YyLnJpZGUAAWwJAGgCCQBoAgBkAOgHAOgHAAFtAgJfXwABbgIAAAFvAAEAAXAAAgABcQADAAFyAAQAAXMAAQABdAACAAF1AAMAAXYAAQABdwACAAF4AAMAAXkABAABegAFAAFBAAYAAUIABwABQwAIAAFEAAkAAUUACgABRgALAAFHAgtXWF9FTUlTU0lPTgABSAkAzAgCBQFHBQNuaWwBAUkBAUoJALkJAgkAzAgCBQFrCQDMCAICAjogCQDMCAIFAUoFA25pbAIAAQFLAQFKCQACAQkBAUkBBQFKAQFMAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gBAU0AAh0lc19fYWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAEBTgACECVzX19zd2FwQ29udHJhY3QBAU8AAhElc19fZmFjdG9yeUNvbmZpZwEBUAACECVzX19scFRva2Vuc0xpc3QBAVEAAhYlcyVzX19wb29sX19zY3JpcHRIYXNoAQFSAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQFTAAIZJXNfX2xlZ2FjeUZhY3RvcnlDb250cmFjdAEBVAACDyVzX19sZWdhY3lQb29scwEBVQACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFWAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBAVcAAhAlc19fYWRtaW5QdWJLZXlzAQFYAAIXJXNfX2Fzc2V0c1N0b3JlQ29udHJhY3QBAVkAAholc19fdm90aW5nRW1pc3Npb25Db250cmFjdAEBWgACFSVzX191c2VyUG9vbHNDb250cmFjdAECYWEACQC5CQIJAMwIAgICJXMJAMwIAgILcHJpY2VBc3NldHMFA25pbAUBbQECYWIAAhElc19fcHJpY2VEZWNpbWFscwECYWMAAgwlc19fc2h1dGRvd24BAmFkAAIXJXNfX25leHRJbnRlcm5hbEFzc2V0SWQBAmFlAQJhZgkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFmAQJhZwICYWYCYWgJAKwCAgkArAICCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYWYCAl9fCQCkAwEFAmFoAQJhaQECYWoJAKwCAgIoJXMlcyVkX19tYXBwaW5nc19faW50ZXJuYWwyYmFzZUFzc2V0SWRfXwkApAMBBQJhagECYWsBAmFsCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFsAQJhbQICYW4CYW8JAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFuAgJfXwUCYW8CCF9fY29uZmlnAQJhcAECYXEEAmFyBQJhcQQCYW4IBQJhcgJfMQQCYW8IBQJhcgJfMgkAuQkCCQDMCAICBiVkJWQlcwkAzAgCCQCkAwEFAmFuCQDMCAIJAKQDAQUCYW8JAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBbQECYXMACQC5CQIJAMwIAgICJXMJAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBbQECYXQBAmFxBAJhdQUCYXEEAmFuCAUCYXUCXzEEAmFvCAUCYXUCXzIJALkJAgkAzAgCAgYlZCVkJXMJAMwIAgkApAMBBQJhbgkAzAgCCQCkAwEFAmFvCQDMCAICDHN3YXBEaXNhYmxlZAUDbmlsBQFtAQJhdgAJALkJAgkAzAgCAgIlcwkAzAgCAgxzd2FwRGlzYWJsZWQFA25pbAUBbQECYXcBAmF4CQCsAgIJAKwCAgIIJXMlcyVzX18FAmF4AhhfX21hcHBpbmdzX19scEFzc2V0MlBvb2wBAmF5AgJhegJhQQkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fBQJhegICX18FAmFBAh5fX21hcHBpbmdzX19Qb29sQXNzZXRzMkxwQXNzZXQBAmFCAQJhZgkArAICAg4lcyVzX19zcHJlYWRfXwUCYWYBAmFDAQJhRAkArAICCQCsAgICCCVzJXMlc19fBQJhRAIjX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MlBvb2xBc3NldHMBAmFFAgJhegJhQQkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fCQCkAwEFAmF6AgJfXwkApAMBBQJhQQIjX19tYXBwaW5nc19fcG9vbEFzc2V0czJQb29sQ29udHJhY3QBAmFGAQJhRAkArAICCQCsAgICCCVzJXMlc19fBQJhRAIgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAmFHAQJheAkArAICCQCsAgICCCVzJXMlc19fBQJheAIgX19tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QBAmFIAgJhSQJhSgkArAICCQCsAgIJAKwCAgIUJXMlcyVzX193eEVtaXNzaW9uX18FAmFJAgJfXwUCYUoBAmFLAQJhZgkArAICAg0lcyVzX19pbkZlZV9fBQJhZgECYUwAAhAlc19faW5GZWVEZWZhdWx0AQJhTQECYWYJAKwCAgIPJXMlc19fc3dhcEZlZV9fBQJhZgECYU4BAmFmCQCsAgICDiVzJXNfX291dEZlZV9fBQJhZgECYU8AAhElc19fb3V0RmVlRGVmYXVsdAECYVAACQC5CQIJAMwIAgICJXMJAMwIAgIZcG9vbEFzc2V0RGVmYXVsdE1pbkFtb3VudAUDbmlsBQFtAQJhUQECYVIJALkJAgkAzAgCAgQlcyVzCQDMCAICEnBvb2xBc3NldE1pbkFtb3VudAkAzAgCBQJhUgUDbmlsBQFtAQJhUwECYWYJAKwCAgIbJXMlc19fc2tpcE9yZGVyVmFsaWRhdGlvbl9fBQJhZgECYVQBAmFmCQCsAgICFiVzJXNfX2NoYW5nZUFtcERlbGF5X18FAmFmAQJhVQECYWYJAKwCAgIWJXMlc19fY2hhbmdlQW1wRGVsdGFfXwUCYWYBAmFWAQJhZgkArAICAhclcyVzX19jaGFuZ2VBbXBUYXJnZXRfXwUCYWYBAmFXAAIWJXNfX3NXYXZlc1Byb3h5QWRkcmVzcwECYVgAAhElc19fc1dhdmVzQXNzZXRJZAECYVkAAhglc19fc3Rha2luZ1Byb2ZpdEFkZHJlc3MBAmFaAgJhZgJhUgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgtsZWFzZWRSYXRpbwkAzAgCBQJhZgkAzAgCBQJhUgUDbmlsBQFtAQJiYQECYVIJALkJAgkAzAgCAgQlcyVzCQDMCAICEmxlYXNlZFJhdGlvRGVmYXVsdAkAzAgCBQJhUgUDbmlsBQFtAQJiYgICYWYCYVIJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIUbGVhc2VkUmF0aW9Ub2xlcmFuY2UJAMwIAgUCYWYJAMwIAgUCYVIFA25pbAUBbQECYmMCAmFmAmFSCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCm1pbkJhbGFuY2UJAMwIAgUCYWYJAMwIAgUCYVIFA25pbAUBbQECYmQBAmFSCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhFtaW5CYWxhbmNlRGVmYXVsdAkAzAgCBQJhUgUDbmlsBQFtAQJiZQECYmYJALkJAgkAzAgCAgQlcyVzCQDMCAICC3doaXRlbGlzdGVkCQDMCAIJAKUIAQUCYmYFA25pbAUBbQECYmcBAmJoCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUCYmgJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJiaAECYmkBAmJoCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJsIAgUEdGhpcwUCYmgJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJiaAECYmoBAmJoCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUCYmgJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJiaAECYmsBAmJsAwkAAAIFAmJsBQFqBQR1bml0CQDZBAEFAmJsAQJibQAEAmJuCQCiCAEJAQFWAAMJAAECBQJibgIGU3RyaW5nBAJibwUCYm4JARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmJvBQR0aGlzAQJicAICYnECYnIJALwCAwkAtgIBBQJicQUBZQkAtgIBBQJicgECYnMCAmJ0AmJ1CQCgAwEJALwCAwUCYnQJALYCAQUCYnUFAWUAAmJ2AAEAAmJ3AAIAAmJ4AAMAAmJ5AAQAAmJ6AAUAAmJBAAYAAmJCAAcAAmJDAAgAAmJEAAkAAmJFAAoAAmJGAAsBAmJHAQJiSAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJiSAUCYncBAmJJAQJiSAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJiSAUCYnoBAmJKAQJiSAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJiSAUCYnYBAmJLAQJiSAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJiSAUCYkUBAmJMAAQCYm4JAKIIAQkBAmFhAAMJAAECBQJibgIGU3RyaW5nBAJibwUCYm4DCQAAAgkAsQIBBQJibwAABQNuaWwJALwJAgUCYm8FAW0FA25pbAECYk0ABAJiTgkBAmJtAAQCYm4JAJ0IAgUCYk4JAQFVAAMJAAECBQJibgIGU3RyaW5nBAJibwUCYm4JANkEAQUCYm8DCQABAgUCYm4CBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgACYk8JAQFLAQIRUGVybWlzc2lvbiBkZW5pZWQAAmJQCQEBSwECD1Rlc3QgZXJyb3IgaGVyZQECYlEBAmJSAwkAAAIIBQJiUgZjYWxsZXIFBHRoaXMGBQJiTwECYlMBAmJSBAJibgkBAmJNAAMJAAECBQJibgIKQnl0ZVZlY3RvcgQCYlQFAmJuAwkAAAIIBQJiUg9jYWxsZXJQdWJsaWNLZXkFAmJUBgUCYk8DCQABAgUCYm4CBFVuaXQJAQJiUQEFAmJSCQACAQILTWF0Y2ggZXJyb3IBAmJVCwJiVgJiVwJiWAJiWQJiWgJjYQJjYgJjYwJjZAJjZQJjZgkAuQkCCQDMCAICFiVzJXMlcyVzJXMlcyVzJXMlcyVzJXMJAMwIAgUCYlYJAMwIAgUCYlcJAMwIAgUCYlgJAMwIAgUCYlkJAMwIAgUCYloJAMwIAgUCY2EJAMwIAgUCY2IJAMwIAgUCY2MJAMwIAgUCY2QJAMwIAgUCY2UJAMwIAgUCY2YFA25pbAUBbQECY2cHAmJWAmJXAmJYAmJZAmJaAmNhAmNiCQC5CQIJAMwIAgIMJXMlcyVzJXMlcyVzCQDMCAIFAmJWCQDMCAIFAmJXCQDMCAIFAmJYCQDMCAIFAmJZCQDMCAIFAmJaCQDMCAIFAmNhCQDMCAIFAmNiBQNuaWwFAW0BAmNoCwJhZgJjaQJjagJjawJjbAJjbQJjbgJjbwJjcAJjcQJjcgkAuQkCCQDMCAICFiVzJWQlcyVzJXMlZCVkJWQlZCVkJXMJAMwIAgUCYWYJAMwIAgUCY2kJAMwIAgUCY2oJAMwIAgUCY2sJAMwIAgUCY2wJAMwIAgkApAMBBQJjbQkAzAgCCQCkAwEFAmNuCQDMCAIJAKQDAQUCY28JAMwIAgkApAMBBQJjcAkAzAgCCQCkAwEFAmNxCQDMCAIFAmNyBQNuaWwFAW0BAmNzAgJjdAJjdQkAuQkCCQDMCAICBCVkJWQJAMwIAgkApAMBBQJjdAkAzAgCCQCkAwEFAmN1BQNuaWwFAW0BAmN2AQJhZgQCY3cJALUJAgkBAmJnAQkBAmFDAQUCYWYFAW0EAmFuCQCRAwIFAmN3AAEEAmFvCQCRAwIFAmN3AAIJALUJAgkBAmJnAQkBAmFtAgUCYW4FAmFvBQFtAQJjeAICY3kCY3oEAmNBCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhawEFAmN5AAAEAmNCCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhZAAAAAQCY0MDCQAAAgUCY0EAAAQCY0QJAGQCBQJjQgUCY3oJAJUKAwUCY0QJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZAAFAmNECQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWsBBQJjeQUCY0QJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFpAQUCY0QFAmN5BQNuaWwGCQCVCgMFAmNBBQNuaWwHBQJjQwECY0UBAmJSBAJjRgkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEJAQFXAAUBbgUBbQMJAQ9jb250YWluc0VsZW1lbnQCBQJjRgkA2AQBCAUCYlIPY2FsbGVyUHVibGljS2V5BgQCY0cJAQJiUwEFAmJSAwkAAAIFAmNHBQJjRwYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmNIAwJiaAJjSQJjSgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJiaAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJjSQUCY0oBAmNLAgJhSQJhSgQCYW4JAJ8IAQkBAmFrAQUCYUkEAmFvCQCfCAEJAQJhawEFAmFKAwMJAAACBQJhbgUEdW5pdAYJAAACBQJhbwUEdW5pdAcEAmNMCQCkAwEJAQV2YWx1ZQEFAmFuBAJjTQkApAMBCQEFdmFsdWUBBQJhbwQCY04JAKIIAQkBAmFtAgUCY0wFAmNNBAJjTwkAoggBCQECYW0CBQJjTQUCY0wEAmNQAwkBAiE9AgUCY04FBHVuaXQGCQECIT0CBQJjTwUEdW5pdAUCY1ABAmNRAQJhRAQCY3cEAmJuCQCiCAEJAQJhQwEFAmFEAwkAAQIFAmJuAgZTdHJpbmcEAmJvBQJibgkAtQkCBQJibwUBbQkBAUsBCQC5CQIJAMwIAgUCYUQJAMwIAgIRcG9vbCBpcyBub3QgZm91bmQFA25pbAIBIAQCYW4JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjdwABBAJhbwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmN3AAIEAmFJCQERQGV4dHJOYXRpdmUoMTA1OCkBCQECYWkBBQJhbgQCYUoJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQJhaQEFAmFvBAJjagkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAmFGAQUCYUQJAJcKBQUCYUkFAmFKBQJjagUCYW4FAmFvAQJjUgECYUQEAmNTCQECY1EBBQJhRAQCYUkIBQJjUwJfMQQCYUoIBQJjUwJfMgQCY2oIBQJjUwJfMwQCYW4IBQJjUwJfNAQCYW8IBQJjUwJfNQQCY1QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFaAAQCY1UJAPwHBAUCY1QCFmdldFBvb2xDcmVhdG9yUkVBRE9OTFkJAMwIAgUCYUkJAMwIAgUCYUoFA25pbAUDbmlsBQJjVQECY1YCAmNXAmNYBAJiZgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY1cDCQAAAgUCY1gCBVdBVkVTCAkA7wcBBQJiZgdyZWd1bGFyBAJhUgkA2QQBBQJjWAkA8AcCBQJiZgUCYVIBAmNZAQJhRAQCY1oJAQJjUQEFAmFEBAJhSQgFAmNaAl8xBAJhSggFAmNaAl8yBAJjaggFAmNaAl8zBAJhbggFAmNaAl80BAJhbwgFAmNaAl81AwkAAAIJAQJjVgIFAmFEBQJhSQAACQAAAgkBAmNWAgUCYUQFAmFKAAAHJQJiUgEXZ2V0U3dhcENvbnRyYWN0UkVBRE9OTFkACQCUCgIFA25pbAkBAmJnAQkBAU4AAmJSARpnZXRQb29sTGVhc2VDb25maWdSRUFET05MWQICYWYCYVIEAmRhBAJibgkAmggCBQR0aGlzCQECYVoCBQJhZgUCYVIDCQABAgUCYm4CA0ludAQCZGIFAmJuCQCUCgIGCQCXAwEJAMwIAgBkCQDMCAIJAJYDAQkAzAgCAAAJAMwIAgUCZGIFA25pbAUDbmlsBAJkYwkAmggCBQR0aGlzCQECYmEBBQJhUgMJAAECBQJkYwIDSW50BAJkZAUCZGMJAJQKAgYJAJcDAQkAzAgCAGQJAMwIAgkAlgMBCQDMCAIAAAkAzAgCBQJkZAUDbmlsBQNuaWwJAJQKAgcAAAQCZGUIBQJkYQJfMQQCZGYIBQJkYQJfMgQCZGcEAmJuCQCaCAIFBHRoaXMJAQJiYwIFAmFmBQJhUgMJAAECBQJibgIDSW50BAJkaAUCYm4JAJYDAQkAzAgCAAAJAMwIAgUCZGgFA25pbAQCZGMJAJoIAgUEdGhpcwkBAmJkAQUCYVIDCQABAgUCZGMCA0ludAQCZGkFAmRjCQCWAwEJAMwIAgAACQDMCAIFAmRpBQNuaWwAAAQCZGoDCQAAAgUCYVICBVdBVkVTCQCVCgMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAmFXAAIACQCdCAIFBHRoaXMJAQt2YWx1ZU9yRWxzZQIJAQJhWAACAAUBYwkAlQoDAgACAAAABAJkawgFAmRqAl8xBAJkbAgFAmRqAl8yBAJkbQgFAmRqAl8zBAJkbgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYVkAAgAJAJQKAgUDbmlsCQCZCgcFAmRlBQJkZgUCZGcFAmRrBQJkbAUCZG0FAmRuAmJSASBnZXRMcEFzc2V0RnJvbVBvb2xBc3NldHNSRUFET05MWQICZG8CZHADAwkAAAIFAmRvAiw4TFFXOGY3UDVkNVBaTTdHdFpFQmdhcVJQR1N6UzNEZlB1aVhyVVJKNEFKUwkAAAIFAmRwAgVXQVZFUwcJAJQKAgUDbmlsBQR1bml0BAJkcQkBBXZhbHVlAQkAmggCBQR0aGlzCQECYWsBBQJkbwQCZHIJAQV2YWx1ZQEJAJoIAgUEdGhpcwkBAmFrAQUCZHAEAmRzCQCdCAIFBHRoaXMJAQJheQIJAKQDAQUCZHEJAKQDAQUCZHIEAmR0AwkAAAIFAmRzBQR1bml0BQR1bml0CQCwAgIJAQV2YWx1ZQEFAmRzAAQJAJQKAgUDbmlsBQJkdAJiUgEhZ2V0UG9vbEFkZHJlc3NGcm9tTHBBc3NldFJFQURPTkxZAQJkdQkAlAoCBQNuaWwJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAmFHAQUCZHUCAAJiUgELY29uc3RydWN0b3IIAmR2AmR3AmJYAmJZAmJaAmNhAmR4AmR5BAJkegkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFPAAkBAmNnBwUCZHYFAmR3BQJiWAUCYlkFAmJaBQJjYQUCZHgJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYgAFAmR5BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBDWNvbnN0cnVjdG9yVjIBAmRBBAJkegkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6BAJkQgkApwgBCQDZBAEFAmRBAwkAAAIFAmRCBQJkQgkAzAgCCQELU3RyaW5nRW50cnkCCQEBUgAFAmRBBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBDWNvbnN0cnVjdG9yVjMEAmNjAmNkAmNlAmNmBAJkegkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6BAJiSAkAtQkCCQECYmcBCQEBTwAFAW0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8ACQECYlULCQCRAwIFAmJIAAEJAJEDAgUCYkgAAgkAkQMCBQJiSAADCQCRAwIFAmJIAAQJAJEDAgUCYkgABQkAkQMCBQJiSAAGCQCRAwIFAmJIAAcFAmNjBQJjZAUCY2UFAmNmBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBDWNvbnN0cnVjdG9yVjQCAmRDAmREBAJkegkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFTAAUCZEMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVQACQC5CQIFAmREBQFtBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBDWNvbnN0cnVjdG9yVjUBAmRFBAJkegkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFYAAUCZEUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgENY29uc3RydWN0b3JWNgICZEYCZEcEAmRICQDMCAIJAQJiUwEFAmJSCQDMCAIDCQECIT0CCQCmCAEFAmRGBQR1bml0BgIoaW52YWxpZCB2b3RpbmcgZW1pc3Npb24gY29udHJhY3QgYWRkcmVzcwUDbmlsAwkAAAIFAmRIBQJkSAkAzAgCCQELU3RyaW5nRW50cnkCCQEBWQAFAmRGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYQAJALkJAgUCZEcFAW0FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgEJc2V0QWRtaW5zAQJkSQQCZHoJAQJiUwEFAmJSAwkAAAIFAmR6BQJkegkAzAgCCQELU3RyaW5nRW50cnkCCQEBVwAJALkJAgUCZEkFAW0FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgEPYWN0aXZhdGVOZXdQb29sCAJhZgJjawJjbAJkSgJkSwJkTAJjcgJkTQQCZHoJAQJjRQEFAmJSAwkAAAIFAmR6BQJkegMJAQlpc0RlZmluZWQBCQCiCAEJAQJhQwEFAmFmCQEBSwEJAKwCAgkArAICAg1Qb29sIGFkZHJlc3MgBQJhZgIUIGFscmVhZHkgcmVnaXN0ZXJlZC4EAmROCQECY3gCBQJjawABBAJkTwgFAmROAl8xBAJkUAkBAmN4AgUCY2wDCAUCZE4CXzMAAgABBAJkUQgFAmRQAl8xBAJkUgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDxBwEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFmCQCsAgICKU5vIHNjcmlwdCBoYXMgYmVlbiBmb3VuZCBvbiBwb29sIGFjY291bnQgBQJhZgQCZFMJARFAZXh0ck5hdGl2ZSgxMDU3KQEJAQFRAAQCZFQJAQJjSwIFAmNrBQJjbAMFAmRUCQEBSwEJAKwCAgkArAICCQCsAgIJAKwCAgIFUG9vbCAFAmNrAgEvBQJjbAIcIGhhcyBhbHJlYWR5IGJlZW4gYWN0aXZhdGVkLgQCZFUJAQV2YWx1ZQEJAJ0IAgUEdGhpcwkBAmFtAgkApAMBBQJkTwkApAMBBQJkUQQCZFYDCQAAAgUCY2sCBVdBVkVTBQFsCQBsBgAKAAAICQEFdmFsdWUBCQDsBwEJANkEAQUCY2sIZGVjaW1hbHMAAAAABQRET1dOBAJkVwMJAAACBQJjbAIFV0FWRVMFAWwJAGwGAAoAAAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQJjbAhkZWNpbWFscwAAAAAFBERPV04EAmRYCQDCCAUFAmRKBQJkSwABAAgGBAJjagkAuAgBBQJkWAQCZFkJANgEAQUCY2oEAmRaCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFmAghhY3RpdmF0ZQkAzAgCBQJjawkAzAgCBQJjbAUDbmlsBQNuaWwDCQAAAgUCZFoFAmRaAwkBAiE9AgUCZFoCB3N1Y2Nlc3MJAQFLAQIjUG9vbCBpbml0aWFsaXNhdGlvbiBlcnJvciBoYXBwZW5lZC4EAmRFCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYmcBCQEBWAAEAmVhCQD8BwQFAmRFAg5jcmVhdGVPclVwZGF0ZQkAzAgCBQJkWQkAzAgCBQJkSgkAzAgCBwUDbmlsBQNuaWwDCQAAAgUCZWEFAmVhBAJlYgkA/AcEBQJkRQIIYWRkTGFiZWwJAMwIAgUCZFkJAMwIAgUBaAUDbmlsBQNuaWwDCQAAAgUCZWIFAmViBAJlYwkA/AcEBQJkRQIHc2V0TG9nbwkAzAgCBQJkWQkAzAgCBQJkTQUDbmlsBQNuaWwDCQAAAgUCZWMFAmVjBAJlZAkA/AcEBQJkRQINYWRkQXNzZXRzTGluawkAzAgCBQJjawkAzAgCBQJjbAkAzAgCBQJkWQUDbmlsBQNuaWwDCQAAAgUCZWQFAmVkBAJlZQkA/AcEBQJkRQIYaW5jcmVhc2VBc3NldFBvb2xzTnVtYmVyCQDMCAIFAmNrBQNuaWwFA25pbAMJAAACBQJlZQUCZWUJAJQKAgkAzggCCQDOCAIIBQJkTgJfMggFAmRQAl8yCQDMCAIFAmRYCQDMCAIJAQRCdXJuAgUCY2oAAQkAzAgCCQELU3RyaW5nRW50cnkCCQECYW0CCQCkAwEFAmRPCQCkAwEFAmRRCQECY2gLBQJhZgkApAMBBQFvBQJkWQUCY2sFAmNsBQJkVgUCZFcFAmRPBQJkUQUBbAUCY3IJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF3AQUCZFkJAQJjcwIFAmRPBQJkUQkAzAgCCQELU3RyaW5nRW50cnkCCQECYXkCCQCkAwEFAmRPCQCkAwEFAmRRCQCsAgICBCVzX18FAmRZCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhQwEFAmFmCQECY3MCBQJkTwUCZFEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFFAgUCZE8FAmRRBQJhZgkAzAgCCQELU3RyaW5nRW50cnkCCQECYUcBBQJkWQUCYWYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFGAQUCYWYFAmRZCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWUBBQJhZgUCZEwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhQgEFAmFmBQFpBQNuaWwFAmRZCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJSAQptYW5hZ2VQb29sAgJhZgJlZgQCZHoJAQJiUwEFAmJSAwkAAAIFAmR6BQJkegQCZWcJAQJjdgEFAmFmBAJjaQkAkQMCBQJlZwUBdwQCZFkJAJEDAgUCZWcFAXgEAmNrCQCRAwIFAmVnBQF5BAJjbAkAkQMCBQJlZwUBegQCZFYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBQQQCZFcJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBQgQCZE8JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBQwQCZFEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBRAQCZWgJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBRQQCY3IJAJEDAgUCZWcFAUYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFtAgkApAMBBQJkTwkApAMBBQJkUQkBAmNoCwUCYWYJAKQDAQUCZWYFAmRZBQJjawUCY2wFAmRWBQJkVwUCZE8FAmRRBQJlaAUCY3IFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgEEZW1pdAECZWkEAmVqCAUCYlIGY2FsbGVyBAJlawgFAmJSDG9yaWdpbkNhbGxlcgQCZWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQECYUYBCQClCAEFAmVqAh1JbnZhbGlkIExQIGFkZHJlc3MgY2FsbGVkIG1lLgQCZW0JANkEAQUCZWwEAmRECQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBAVQABQFuBQFtBAJkQwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQFTAAIoTGVnYWN5IGZhY3RvcnkgY29udHJhY3QgZG9lcyBub3QgZXhpc3RzLgMJAGcCAAAFAmVpBQNuaWwDCQEPY29udGFpbnNFbGVtZW50AgUCZEQJAKUIAQUCZWoJAJQKAgUDbmlsBQJkQwkAlAoCCQDMCAIJAQdSZWlzc3VlAwUCZW0FAmVpBgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCYlIGY2FsbGVyBQJlaQUCZW0FA25pbAIHc3VjY2VzcwJiUgEEYnVybgECZW4EAmVqCAUCYlIGY2FsbGVyBAJlawgFAmJSDG9yaWdpbkNhbGxlcgQCZW8JAQV2YWx1ZQEJAJEDAggFAmJSCHBheW1lbnRzAAAEAmVwCQEFdmFsdWUBCAUCZW8GYW1vdW50BAJlcQkA2AQBCQEFdmFsdWUBCAUCZW8HYXNzZXRJZAQCZXIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQECYUYBCQClCAEFAmVqAh1JbnZhbGlkIExQIGFkZHJlc3MgY2FsbGVkIG1lLgMJAQIhPQIFAmVxBQJlcgkBAUsBAhVJbnZhbGlkIGFzc2V0IHBhc3NlZC4DCQECIT0CBQJlbgUCZXAJAQFLAQIWSW52YWxpZCBhbW91bnQgcGFzc2VkLgQCZW0JANkEAQUCZXIJAJQKAgkAzAgCCQEEQnVybgIFAmVtBQJlbgUDbmlsAgdzdWNjZXNzAmJSAQxtb2RpZnlXZWlnaHQCAmNqAmVzBAJkegMJAAACCQDYBAEICAUCYlIGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQFZAAIABgkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6BAJhRAkBAmJnAQkBAmFHAQUCY2oEAmV0CQECYWUBBQJhRAQCZXUJAQJhZQEFAWcEAmV2CQELdmFsdWVPckVsc2UCCQCfCAEFAmV1AAAEAmRMCQELdmFsdWVPckVsc2UCCQCfCAEFAmV0AAAEAmV3BQJlcwQCYkgJALUJAgkBAmJnAQkBAU8ABQFtBAJkdgkBAmJKAQUCYkgEAmV4CQD8BwQFAmR2Ag5vbk1vZGlmeVdlaWdodAkAzAgCBQJjagkAzAgCBQJhRAUDbmlsBQNuaWwDCQAAAgUCZXgFAmV4BAJleQMJAAACBQJldgAABQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIFAmV1AAAFA25pbAQCZXoJAQJhZwIFAmFEAAAEAmVBCQCfCAEFAmV6BAJlQgMJAAACBQJlQQUEdW5pdAUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEFAmV6BQNuaWwJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJldAUCZXcFA25pbAUCZXkFAmVCCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJSAQ1tb2RpZnlXZWlnaHRzBAJlQwJlRAJlRQJlRgQCZHoJAQJiUwEFAmJSAwkAAAIFAmR6BQJkegQCZUcJAGkCCQBoAgAFBQFmAGQEAmVICQBpAgkAaAIABQUBZgBkBAJlSQkAaQIJAGgCAAUFAWYAZAQCYkgJALUJAgkBAmJnAQkBAU8ABQFtBAJlSgkBAmJKAQUCYkgEAmVLCQECYksBBQJiSAQCZUwJAQJhZQEFAmVDBAJlTQkBAmFlAQUCZUQEAmVOCQECYWUBBQJlRQQCZU8JAQJhZQEFAmVGBAJlUAkBAmJqAQUCZUwEAmVRCQECYmoBBQJlTQQCZVIJAGUCBQJlUAUCZUkEAmVTCQBlAgUCZVEFAmVJAwkAZwIAAAUCZVIJAQFLAQkArAICAhZpbnZhbGlkIGJ0Y1dlaWdodE5ldzogCQCkAwEFAmVSAwkAZwIAAAUCZVMJAQFLAQkArAICAhZpbnZhbGlkIGV0aFdlaWdodE5ldzogCQCkAwEFAmVTBAJlVAkBAmJnAQkBAmFGAQUCZUMEAmVVCQECYmcBCQECYUYBBQJlRAQCZVYJAQJiZwEJAQJhRgEFAmVFBAJlVwkBAmJnAQkBAmFGAQUCZUYEAmVYCQD8BwQFAmVKAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJlVAkAzAgCBQJlQwUDbmlsBQNuaWwDCQAAAgUCZVgFAmVYBAJlWQkA/AcEBQJlSgIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZVUJAMwIAgUCZUQFA25pbAUDbmlsAwkAAAIFAmVZBQJlWQQCZVoJAPwHBAUCZUoCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmVWCQDMCAIFAmVFBQNuaWwFA25pbAMJAAACBQJlWgUCZVoEAmZhCQD8BwQFAmVKAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJlVwkAzAgCBQJlRgUDbmlsBQNuaWwDCQAAAgUCZmEFAmZhCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlTAUCZVIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmVNBQJlUwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZU4FAmVHCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlTwUCZUgJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZwIFAmVDAAAFAmVQCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWcCBQJlRAAABQJlUQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFnAgUCZUUAAAUCZUcJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZwIFAmVGAAAFAmVIBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBGGNoZWNrV3hFbWlzc2lvblBvb2xMYWJlbAICYUkCYUoEAmZiBAJibgkAoAgBCQECYUgCBQJhSQUCYUoDCQABAgUCYm4CB0Jvb2xlYW4EAmRoBQJibgUCZGgHCQCUCgIFA25pbAUCZmICYlIBFnNldFd4RW1pc3Npb25Qb29sTGFiZWwCAmFJAmFKBAJkegkBAmNFAQUCYlIDCQAAAgUCZHoFAmR6CQCUCgIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQJhSAIFAmFJBQJhSgYFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgEZZGVsZXRlV3hFbWlzc2lvblBvb2xMYWJlbAICYUkCYUoEAmR6AwkAAAIIBQJiUgZjYWxsZXIFBHRoaXMGCQECY0UBBQJiUgMJAAACBQJkegUCZHoJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQECYUgCBQJhSQUCYUoFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgESb25WZXJpZmljYXRpb25Mb3NzAQJhUgQCZHoDCQAAAgkA2AQBCAgFAmJSBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEBWAACAAYJAQJiUwEFAmJSAwkAAAIFAmR6BQJkegQCZEcJAQJiTAAEAmZjAwkAZgIJAJADAQUCZEcAAAYJAQFLAQIUaW52YWxpZCBwcmljZSBhc3NldHMDCQAAAgUCZmMFAmZjCgECZmQCAmZlAmZmBAJkYgkA/AcEBQR0aGlzAhlkZWxldGVXeEVtaXNzaW9uUG9vbExhYmVsCQDMCAIFAmFSCQDMCAIFAmZmBQNuaWwFA25pbAMJAAACBQJkYgUCZGIFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAmZnCgACZmgFAmRHCgACZmkJAJADAQUCZmgKAAJmagUEdW5pdAoBAmZrAgJmbAJmbQMJAGcCBQJmbQUCZmkFAmZsCQECZmQCBQJmbAkAkQMCBQJmaAUCZm0KAQJmbgICZmwCZm0DCQBnAgUCZm0FAmZpBQJmbAkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEzCQECZm4CCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCBQJmagAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0DCQAAAgUCZmcFAmZnCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgEoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQECYWYEAmVnCQECY3YBBQJhZgQCYXEJAJQKAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVnBQFDCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWcFAUQEAmZvCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhcAEFAmFxBwQCZnAJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBAmFzAAcJAJQKAgUDbmlsAwUCZnAGBQJmbwJiUgEaaXNQb29sU3dhcERpc2FibGVkUkVBRE9OTFkBAmFmBAJlZwkBAmN2AQUCYWYEAmFxCQCUCgIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBQwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVnBQFEBAJmcQkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYXQBBQJhcQcEAmZyCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhdgAHCQCUCgIFA25pbAMFAmZyBgUCZnECYlIBEGdldEluRmVlUkVBRE9OTFkBAmFmBAJmcwkBAmNIAwkBAmFLAQUCYWYJAQJhTAAAAAkAlAoCBQNuaWwFAmZzAmJSARFnZXRPdXRGZWVSRUFET05MWQECYWYEAmZzCQECY0gDCQECYU4BBQJhZgkBAmFPAAkAawMACgUBYgCQTgkAlAoCBQNuaWwFAmZzAmJSARJnZXRTd2FwRmVlUkVBRE9OTFkBAmZ0BAJmdQQCYm4JAJ0IAgUEdGhpcwkBAmFNAQUCZnQDCQABAgUCYm4CBlN0cmluZwQCYm8FAmJuBAJmdgkAtQkCBQJibwUBbQQCZncJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJmdgABBAJmeAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmZ2AAIJAJQKAgUCZncFAmZ4AwkAAQIFAmJuAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IJAJQKAgUDbmlsBQJmdQJiUgEQcG9vbEluZm9SRUFET05MWQICZnkCZnoEAmZBCQCaCAIFBHRoaXMJAQJhawEFAmZ5BAJmQgkAmggCBQR0aGlzCQECYWsBBQJmegQCZkMJAJ0IAgUEdGhpcwkBAmFFAgkBBXZhbHVlAQUCZkEJAQV2YWx1ZQEFAmZCBAJmRAkAnQgCBQR0aGlzCQECYUYBCQEFdmFsdWUBBQJmQwQCZFQDAwkBCWlzRGVmaW5lZAEFAmZBCQEJaXNEZWZpbmVkAQUCZkIHCQEJaXNEZWZpbmVkAQUCZkMHBAJmRQMFAmRUCQCUCgIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEFAmZDCQECYmsBCQEFdmFsdWUBBQJmRAUEdW5pdAkAlAoCBQNuaWwFAmZFAmJSARVnZXRQb29sU3RhdHVzUkVBRE9OTFkBAmFmBAJjdwkAtQkCCQECYmcBCQECYUMBBQJhZgUBbQQCYW4JAJEDAgUCY3cAAQQCYW8JAJEDAgUCY3cAAgQCY04JALUJAgkBAmJnAQkBAmFtAgUCYW4FAmFvBQFtCQCUCgIFA25pbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNOBQF3AmJSARVnZXRQb29sQ29uZmlnUkVBRE9OTFkBAmFmBAJjdwkAtQkCCQECYmcBCQECYUMBBQJhZgUBbQQCYW4JAJEDAgUCY3cAAQQCYW8JAJEDAgUCY3cAAgQCY04JALUJAgkBAmJnAQkBAmFtAgUCYW4FAmFvBQFtCQCUCgIFA25pbAUCY04CYlIBIGdldFBvb2xDb25maWdCeUxwQXNzZXRJZFJFQURPTkxZAQJkWQQCY3cJALUJAgkBAmJnAQkBAmF3AQUCZFkFAW0EAmFuCQCRAwIFAmN3AAEEAmFvCQCRAwIFAmN3AAIEAmNOCQC1CQIJAQJiZwEJAQJhbQIFAmFuBQJhbwUBbQkAlAoCBQNuaWwFAmNOAmJSARJwb29sRXhpc3RzUkVBRE9OTFkCAmFJAmFKCQCUCgIFA25pbAkBAmNLAgUCYUkFAmFKAmJSARtza2lwT3JkZXJWYWxpZGF0aW9uUkVBRE9OTFkBAmFmCQCUCgIFA25pbAkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYVMBBQJhZgcCYlIBGmdldENoYW5nZUFtcENvbmZpZ1JFQURPTkxZAQJhZgQCZkYJARFAZXh0ck5hdGl2ZSgxMDU1KQEJAQJhVAEFAmFmBAJmRwkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAmFVAQUCYWYEAmZICQERQGV4dHJOYXRpdmUoMTA1NSkBCQECYVYBBQJhZgkAlAoCBQNuaWwJAMwIAgUCZkYJAMwIAgUCZkcJAMwIAgUCZkgFA25pbAJiUgEVZ2V0UG9vbFdlaWdodFJFQURPTkxZAQJjagQCYWYJAQJiZwEJAQJhRwEFAmNqBAJmSQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYWUBBQJhZgAACQCUCgIFA25pbAUCZkkCYlIBCmRlbGV0ZVBvb2wBAmFEBAJlZwkBAmN2AQUCYUQEAmR6AwkAAAIJAKUIAQgFAmJSBmNhbGxlcgkBAmNSAQUCYUQDCQECY1kBBQJhRAYJAQFLAQIRUG9vbCBpcyBub3QgZW1wdHkJAQJiUwEFAmJSAwkAAAIFAmR6BQJkegQCZkoDCQAAAgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYWUBBQJhRAAAAAAGCQEBSwECF1Bvb2wgd2VpZ2h0IGlzIG5vdCBaZXJvAwkAAAIFAmZKBQJmSgQCZksDCQAAAgkAkQMCBQJlZwUBdwkApAMBBQFyBgkBAUsBAhlQb29sIG11c3QgYmUgU0hVVERPV04gKDQpAwkAAAIFAmZLBQJmSwQCZkwJAQJjUQEFAmFEBAJhSQgFAmZMAl8xBAJhSggFAmZMAl8yBAJjaggFAmZMAl8zBAJhbggFAmZMAl80BAJhbwgFAmZMAl81BAJjVAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAVoABAJmTQkA/AcEBQJjVAIKZGVsZXRlUG9vbAkAzAgCBQJhSQkAzAgCBQJhSgUDbmlsBQNuaWwDCQAAAgUCZk0FAmZNBAJkRgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAVkABAJmTgkA/AcEBQJkRgIKZGVsZXRlUG9vbAkAzAgCBQJhSQkAzAgCBQJhSgUDbmlsBQNuaWwDCQAAAgUCZk4FAmZOBAJkRQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAVgABAJmTwkA/AcEBQJkRQIKZGVsZXRlUG9vbAkAzAgCBQJhSQkAzAgCBQJhSgUDbmlsBQNuaWwDCQAAAgUCZk8FAmZPCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRgEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhQwEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJheQIJAKQDAQUCYW4JAKQDAQUCYW8JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFFAgUCYW4FAmFvCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhbQIJAKQDAQUCYW4JAKQDAQUCYW8JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmF3AQUCY2oJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFHAQUCY2oJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFIAgUCYUkFAmFKCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhZQEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhQgEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhSwEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhTgEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhUwEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhVAEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhVQEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhVgEFAmFEBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBCGdldFByaWNlAQJmdAQCYWYJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmZ0BAJjTgkBAmN2AQUCZnQEAmNqCQDZBAEJAJEDAgUCY04FAXgEAmZQCQCRAwIFAmNOBQF5BAJhSgkAkQMCBQJjTgUBegQCZlEICQEFdmFsdWUBCQDsBwEFAmNqCHF1YW50aXR5BAJmUgoAAmZTCQD8BwQFAmFmAhxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZCQDMCAIFAmZQBQNuaWwFA25pbAMJAAECBQJmUwIDSW50BQJmUwkAAgEJAKwCAgkAAwEFAmZTAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEAmZUCgACZlMJAPwHBAUCYWYCHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkJAMwIAgUCYUoFA25pbAUDbmlsAwkAAQIFAmZTAgNJbnQFAmZTCQACAQkArAICCQADAQUCZlMCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCZlUDCQAAAgUCZlEAAAAACgACZlMJAJEDAgoAAmZTCQD8BwQFAmFmAhljYWxjUHJpY2VzV3JhcHBlclJFQURPTkxZCQDMCAIFAmZSCQDMCAIFAmZUCQDMCAIFAmZRBQNuaWwFA25pbAMJAAECBQJmUwIJTGlzdFtBbnldBQJmUwkAAgEJAKwCAgkAAwEFAmZTAh4gY291bGRuJ3QgYmUgY2FzdCB0byBMaXN0W0FueV0AAAMJAAECBQJmUwIGU3RyaW5nBQJmUwkAAgEJAKwCAgkAAwEFAmZTAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcJAJQKAgUDbmlsBQJmVQJiUgEMY2hlY2tCYWxhbmNlAQJkWQQCZnQJAQJiZwEJAQJhRwEFAmRZBAJhZgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCZnQEAmNOCQECY3YBBQJmdAQCZnkJAJEDAgUCY04FAXkEAmZ6CQCRAwIFAmNOBQF6BAJmVgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkBAmFQAAQCZlcJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFRAQUCZnkFAmZWBAJmWAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYVEBBQJmegUCZlYEAmZZCgACZlMJAPwHBAUCYWYCHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkJAMwIAgUCZnkFA25pbAUDbmlsAwkAAQIFAmZTAgNJbnQFAmZTCQACAQkArAICCQADAQUCZlMCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCZloKAAJmUwkA/AcEBQJhZgIcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQkAzAgCBQJmegUDbmlsBQNuaWwDCQABAgUCZlMCA0ludAUCZlMJAAIBCQCsAgIJAAMBBQJmUwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAJnYQkAZwIFAmZZCQBpAgUCZlcAAgQCZ2IJAGcCBQJmWgkAaQIFAmZYAAIEAmdjAwUCZ2EFAmdiBwkAlAoCBQNuaWwFAmdjAQJnZAECZ2UABAJnZgQCYm4JAQJiTQADCQABAgUCYm4CCkJ5dGVWZWN0b3IEAmJUBQJibgUCYlQDCQABAgUCYm4CBFVuaXQIBQJnZA9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCZ2QJYm9keUJ5dGVzCQCRAwIIBQJnZAZwcm9vZnMAAAUCZ2YJ4F1K", "height": 2903734, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7DBVuw4UfF3pgGQCZK2ARjoddUJfDZwXsaBcMqYbVSfj Next: 35rUGfn1R78jjc21XERgUQDh6soDDA6moYL7bZJdJZ6J Diff:
OldNewDifferences
208208 func aO () = "%s__outFeeDefault"
209209
210210
211-func aP (af) = ("%s%s__skipOrderValidation__" + af)
211+func aP () = makeString(["%s", "poolAssetDefaultMinAmount"], m)
212212
213213
214-func aQ (af) = ("%s%s__changeAmpDelay__" + af)
214+func aQ (aR) = makeString(["%s%s", "poolAssetMinAmount", aR], m)
215215
216216
217-func aR (af) = ("%s%s__changeAmpDelta__" + af)
217+func aS (af) = ("%s%s__skipOrderValidation__" + af)
218218
219219
220-func aS (af) = ("%s%s__changeAmpTarget__" + af)
220+func aT (af) = ("%s%s__changeAmpDelay__" + af)
221221
222222
223-func aT () = "%s__sWavesProxyAddress"
223+func aU (af) = ("%s%s__changeAmpDelta__" + af)
224224
225225
226-func aU () = "%s__sWavesAssetId"
226+func aV (af) = ("%s%s__changeAmpTarget__" + af)
227227
228228
229-func aV () = "%s__stakingProfitAddress"
229+func aW () = "%s__sWavesProxyAddress"
230230
231231
232-func aW (af,aX) = makeString(["%s%s%s", "leasedRatio", af, aX], m)
232+func aX () = "%s__sWavesAssetId"
233233
234234
235-func aY (aX) = makeString(["%s%s", "leasedRatioDefault", aX], m)
235+func aY () = "%s__stakingProfitAddress"
236236
237237
238-func aZ (af,aX) = makeString(["%s%s%s", "leasedRatioTolerance", af, aX], m)
238+func aZ (af,aR) = makeString(["%s%s%s", "leasedRatio", af, aR], m)
239239
240240
241-func ba (af,aX) = makeString(["%s%s%s", "minBalance", af, aX], m)
241+func ba (aR) = makeString(["%s%s", "leasedRatioDefault", aR], m)
242242
243243
244-func bb (aX) = makeString(["%s%s", "minBalanceDefault", aX], m)
244+func bb (af,aR) = makeString(["%s%s%s", "leasedRatioTolerance", af, aR], m)
245245
246246
247-func bc (bd) = makeString(["%s%s", "whitelisted", toString(bd)], m)
247+func bc (af,aR) = makeString(["%s%s%s", "minBalance", af, aR], m)
248248
249249
250-func be (bf) = valueOrErrorMessage(getString(this, bf), ("No data for this.key=" + bf))
250+func bd (aR) = makeString(["%s%s", "minBalanceDefault", aR], m)
251251
252252
253-func bg (bf) = valueOrErrorMessage(getBoolean(this, bf), ("No data for this.key=" + bf))
253+func be (bf) = makeString(["%s%s", "whitelisted", toString(bf)], m)
254254
255255
256-func bh (bf) = valueOrErrorMessage(getInteger(this, bf), ("No data for this.key=" + bf))
256+func bg (bh) = valueOrErrorMessage(getString(this, bh), ("No data for this.key=" + bh))
257257
258258
259-func bi (bj) = if ((bj == j))
260- then unit
261- else fromBase58String(bj)
259+func bi (bh) = valueOrErrorMessage(getBoolean(this, bh), ("No data for this.key=" + bh))
262260
263261
264-func bk () = {
265- let bl = getString(V())
266- if ($isInstanceOf(bl, "String"))
262+func bj (bh) = valueOrErrorMessage(getInteger(this, bh), ("No data for this.key=" + bh))
263+
264+
265+func bk (bl) = if ((bl == j))
266+ then unit
267+ else fromBase58String(bl)
268+
269+
270+func bm () = {
271+ let bn = getString(V())
272+ if ($isInstanceOf(bn, "String"))
267273 then {
268- let bm = bl
269- addressFromStringValue(bm)
274+ let bo = bn
275+ addressFromStringValue(bo)
270276 }
271277 else this
272278 }
273279
274280
275-func bn (bo,bp) = fraction(toBigInt(bo), e, toBigInt(bp))
281+func bp (bq,br) = fraction(toBigInt(bq), e, toBigInt(br))
276282
277283
278-func bq (br,bs) = toInt(fraction(br, toBigInt(bs), e))
284+func bs (bt,bu) = toInt(fraction(bt, toBigInt(bu), e))
279285
280286
281-let bt = 1
287+let bv = 1
282288
283-let bu = 2
289+let bw = 2
284290
285-let bv = 3
291+let bx = 3
286292
287-let bw = 4
293+let by = 4
288294
289-let bx = 5
295+let bz = 5
290296
291-let by = 6
297+let bA = 6
292298
293-let bz = 7
299+let bB = 7
294300
295-let bA = 8
301+let bC = 8
296302
297-let bB = 9
303+let bD = 9
298304
299-let bC = 10
305+let bE = 10
300306
301-let bD = 11
307+let bF = 11
302308
303-func bE (bF) = addressFromStringValue(bF[bu])
309+func bG (bH) = addressFromStringValue(bH[bw])
304310
305311
306-func bG (bF) = addressFromStringValue(bF[bx])
312+func bI (bH) = addressFromStringValue(bH[bz])
307313
308314
309-func bH (bF) = addressFromStringValue(bF[bt])
315+func bJ (bH) = addressFromStringValue(bH[bv])
310316
311317
312-func bI (bF) = addressFromStringValue(bF[bC])
318+func bK (bH) = addressFromStringValue(bH[bE])
313319
314320
315-func bJ () = {
316- let bl = getString(aa())
317- if ($isInstanceOf(bl, "String"))
321+func bL () = {
322+ let bn = getString(aa())
323+ if ($isInstanceOf(bn, "String"))
318324 then {
319- let bm = bl
320- if ((size(bm) == 0))
325+ let bo = bn
326+ if ((size(bo) == 0))
321327 then nil
322- else split_4C(bm, m)
328+ else split_4C(bo, m)
323329 }
324330 else nil
325331 }
326332
327333
328-func bK () = {
329- let bL = bk()
330- let bl = getString(bL, U())
331- if ($isInstanceOf(bl, "String"))
334+func bM () = {
335+ let bN = bm()
336+ let bn = getString(bN, U())
337+ if ($isInstanceOf(bn, "String"))
332338 then {
333- let bm = bl
334- fromBase58String(bm)
339+ let bo = bn
340+ fromBase58String(bo)
335341 }
336- else if ($isInstanceOf(bl, "Unit"))
342+ else if ($isInstanceOf(bn, "Unit"))
337343 then unit
338344 else throw("Match error")
339345 }
340346
341347
342-let bM = K("Permission denied")
348+let bO = K("Permission denied")
343349
344-let bN = K("Test error here")
350+let bP = K("Test error here")
345351
346-func bO (bP) = if ((bP.caller == this))
352+func bQ (bR) = if ((bR.caller == this))
347353 then true
348- else bM
354+ else bO
349355
350356
351-func bQ (bP) = {
352- let bl = bK()
353- if ($isInstanceOf(bl, "ByteVector"))
357+func bS (bR) = {
358+ let bn = bM()
359+ if ($isInstanceOf(bn, "ByteVector"))
354360 then {
355- let bR = bl
356- if ((bP.callerPublicKey == bR))
361+ let bT = bn
362+ if ((bR.callerPublicKey == bT))
357363 then true
358- else bM
364+ else bO
359365 }
360- else if ($isInstanceOf(bl, "Unit"))
361- then bO(bP)
366+ else if ($isInstanceOf(bn, "Unit"))
367+ then bQ(bR)
362368 else throw("Match error")
363369 }
364370
365371
366-func bS (bT,bU,bV,bW,bX,bY,bZ,ca,cb,cc,cd) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bT, bU, bV, bW, bX, bY, bZ, ca, cb, cc, cd], m)
372+func bU (bV,bW,bX,bY,bZ,ca,cb,cc,cd,ce,cf) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bV, bW, bX, bY, bZ, ca, cb, cc, cd, ce, cf], m)
367373
368374
369-func ce (bT,bU,bV,bW,bX,bY,bZ) = makeString(["%s%s%s%s%s%s", bT, bU, bV, bW, bX, bY, bZ], m)
375+func cg (bV,bW,bX,bY,bZ,ca,cb) = makeString(["%s%s%s%s%s%s", bV, bW, bX, bY, bZ, ca, cb], m)
370376
371377
372-func cf (af,cg,ch,ci,cj,ck,cl,cm,cn,co,cp) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, cg, ch, ci, cj, toString(ck), toString(cl), toString(cm), toString(cn), toString(co), cp], m)
378+func ch (af,ci,cj,ck,cl,cm,cn,co,cp,cq,cr) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, ci, cj, ck, cl, toString(cm), toString(cn), toString(co), toString(cp), toString(cq), cr], m)
373379
374380
375-func cq (cr,cs) = makeString(["%d%d", toString(cr), toString(cs)], m)
381+func cs (ct,cu) = makeString(["%d%d", toString(ct), toString(cu)], m)
376382
377383
378-func ct (af) = {
379- let cu = split(be(aC(af)), m)
380- let an = cu[1]
381- let ao = cu[2]
382- split(be(am(an, ao)), m)
384+func cv (af) = {
385+ let cw = split(bg(aC(af)), m)
386+ let an = cw[1]
387+ let ao = cw[2]
388+ split(bg(am(an, ao)), m)
383389 }
384390
385391
386-func cv (cw,cx) = {
387- let cy = valueOrElse(getInteger(this, ak(cw)), 0)
388- let cz = valueOrElse(getInteger(this, ad()), 0)
389- let cA = if ((cy == 0))
392+func cx (cy,cz) = {
393+ let cA = valueOrElse(getInteger(this, ak(cy)), 0)
394+ let cB = valueOrElse(getInteger(this, ad()), 0)
395+ let cC = if ((cA == 0))
390396 then {
391- let cB = (cz + cx)
392- $Tuple3(cB, [IntegerEntry(ad(), cB), IntegerEntry(ak(cw), cB), StringEntry(ai(cB), cw)], true)
397+ let cD = (cB + cz)
398+ $Tuple3(cD, [IntegerEntry(ad(), cD), IntegerEntry(ak(cy), cD), StringEntry(ai(cD), cy)], true)
393399 }
394- else $Tuple3(cy, nil, false)
395- cA
400+ else $Tuple3(cA, nil, false)
401+ cC
396402 }
397403
398404
399-func cC (bP) = {
400- let cD = split(valueOrElse(getString(W()), n), m)
401- if (containsElement(cD, toBase58String(bP.callerPublicKey)))
405+func cE (bR) = {
406+ let cF = split(valueOrElse(getString(W()), n), m)
407+ if (containsElement(cF, toBase58String(bR.callerPublicKey)))
402408 then true
403409 else {
404- let cE = bQ(bP)
405- if ((cE == cE))
410+ let cG = bS(bR)
411+ if ((cG == cG))
406412 then true
407413 else throw("Strict value is not equal to itself.")
408414 }
409415 }
410416
411417
412-func cF (bf,cG,cH) = valueOrElse(getInteger(this, bf), valueOrElse(getInteger(this, cG), cH))
418+func cH (bh,cI,cJ) = valueOrElse(getInteger(this, bh), valueOrElse(getInteger(this, cI), cJ))
413419
414420
415-func cI (aI,aJ) = {
421+func cK (aI,aJ) = {
416422 let an = getInteger(ak(aI))
417423 let ao = getInteger(ak(aJ))
418424 if (if ((an == unit))
420426 else (ao == unit))
421427 then false
422428 else {
423- let cJ = toString(value(an))
424- let cK = toString(value(ao))
425- let cL = getString(am(cJ, cK))
426- let cM = getString(am(cK, cJ))
427- let cN = if ((cL != unit))
429+ let cL = toString(value(an))
430+ let cM = toString(value(ao))
431+ let cN = getString(am(cL, cM))
432+ let cO = getString(am(cM, cL))
433+ let cP = if ((cN != unit))
428434 then true
429- else (cM != unit)
430- cN
435+ else (cO != unit)
436+ cP
431437 }
432438 }
433439
434440
435-func cO (aD) = {
436- let cu = {
437- let bl = getString(aC(aD))
438- if ($isInstanceOf(bl, "String"))
441+func cQ (aD) = {
442+ let cw = {
443+ let bn = getString(aC(aD))
444+ if ($isInstanceOf(bn, "String"))
439445 then {
440- let bm = bl
441- split(bm, m)
446+ let bo = bn
447+ split(bo, m)
442448 }
443449 else K(makeString([aD, "pool is not found"], " "))
444450 }
445- let an = parseIntValue(cu[1])
446- let ao = parseIntValue(cu[2])
451+ let an = parseIntValue(cw[1])
452+ let ao = parseIntValue(cw[2])
447453 let aI = getStringValue(ai(an))
448454 let aJ = getStringValue(ai(ao))
449- let ch = getStringValue(aF(aD))
450- $Tuple5(aI, aJ, ch, an, ao)
455+ let cj = getStringValue(aF(aD))
456+ $Tuple5(aI, aJ, cj, an, ao)
451457 }
452458
453459
454-func cP (aD) = {
455- let cQ = cO(aD)
456- let aI = cQ._1
457- let aJ = cQ._2
458- let ch = cQ._3
459- let an = cQ._4
460- let ao = cQ._5
461- let cR = addressFromStringValue(getStringValue(Z()))
462- let cS = invoke(cR, "getPoolCreatorREADONLY", [aI, aJ], nil)
463- cS
460+func cR (aD) = {
461+ let cS = cQ(aD)
462+ let aI = cS._1
463+ let aJ = cS._2
464+ let cj = cS._3
465+ let an = cS._4
466+ let ao = cS._5
467+ let cT = addressFromStringValue(getStringValue(Z()))
468+ let cU = invoke(cT, "getPoolCreatorREADONLY", [aI, aJ], nil)
469+ cU
464470 }
465471
466472
467-func cT (cU,cV) = {
468- let bd = addressFromStringValue(cU)
469- if ((cV == "WAVES"))
470- then wavesBalance(bd).regular
473+func cV (cW,cX) = {
474+ let bf = addressFromStringValue(cW)
475+ if ((cX == "WAVES"))
476+ then wavesBalance(bf).regular
471477 else {
472- let aX = fromBase58String(cV)
473- assetBalance(bd, aX)
478+ let aR = fromBase58String(cX)
479+ assetBalance(bf, aR)
474480 }
475481 }
476482
477483
478-func cW (aD) = {
479- let cX = cO(aD)
480- let aI = cX._1
481- let aJ = cX._2
482- let ch = cX._3
483- let an = cX._4
484- let ao = cX._5
485- if ((cT(aD, aI) == 0))
486- then (cT(aD, aJ) == 0)
484+func cY (aD) = {
485+ let cZ = cQ(aD)
486+ let aI = cZ._1
487+ let aJ = cZ._2
488+ let cj = cZ._3
489+ let an = cZ._4
490+ let ao = cZ._5
491+ if ((cV(aD, aI) == 0))
492+ then (cV(aD, aJ) == 0)
487493 else false
488494 }
489495
490496
491-@Callable(bP)
492-func getSwapContractREADONLY () = $Tuple2(nil, be(N()))
497+@Callable(bR)
498+func getSwapContractREADONLY () = $Tuple2(nil, bg(N()))
493499
494500
495501
496-@Callable(bP)
497-func getPoolLeaseConfigREADONLY (af,aX) = {
498- let cY = {
499- let bl = getInteger(this, aW(af, aX))
500- if ($isInstanceOf(bl, "Int"))
502+@Callable(bR)
503+func getPoolLeaseConfigREADONLY (af,aR) = {
504+ let da = {
505+ let bn = getInteger(this, aZ(af, aR))
506+ if ($isInstanceOf(bn, "Int"))
501507 then {
502- let cZ = bl
503- $Tuple2(true, min([100, max([0, cZ])]))
508+ let db = bn
509+ $Tuple2(true, min([100, max([0, db])]))
504510 }
505511 else {
506- let da = getInteger(this, aY(aX))
507- if ($isInstanceOf(da, "Int"))
512+ let dc = getInteger(this, ba(aR))
513+ if ($isInstanceOf(dc, "Int"))
508514 then {
509- let db = da
510- $Tuple2(true, min([100, max([0, db])]))
515+ let dd = dc
516+ $Tuple2(true, min([100, max([0, dd])]))
511517 }
512518 else $Tuple2(false, 0)
513519 }
514520 }
515- let dc = cY._1
516- let dd = cY._2
517- let de = {
518- let bl = getInteger(this, ba(af, aX))
519- if ($isInstanceOf(bl, "Int"))
521+ let de = da._1
522+ let df = da._2
523+ let dg = {
524+ let bn = getInteger(this, bc(af, aR))
525+ if ($isInstanceOf(bn, "Int"))
520526 then {
521- let df = bl
522- max([0, df])
527+ let dh = bn
528+ max([0, dh])
523529 }
524530 else {
525- let da = getInteger(this, bb(aX))
526- if ($isInstanceOf(da, "Int"))
531+ let dc = getInteger(this, bd(aR))
532+ if ($isInstanceOf(dc, "Int"))
527533 then {
528- let dg = da
529- max([0, dg])
534+ let di = dc
535+ max([0, di])
530536 }
531537 else 0
532538 }
533539 }
534- let dh = if ((aX == "WAVES"))
535- then $Tuple3(valueOrElse(getString(this, aT()), ""), getString(this, valueOrElse(aU(), "")), c)
540+ let dj = if ((aR == "WAVES"))
541+ then $Tuple3(valueOrElse(getString(this, aW()), ""), getString(this, valueOrElse(aX(), "")), c)
536542 else $Tuple3("", "", 0)
537- let di = dh._1
538- let dj = dh._2
539- let dk = dh._3
540- let dl = valueOrElse(getString(this, aV()), "")
541- $Tuple2(nil, $Tuple7(dc, dd, de, di, dj, dk, dl))
543+ let dk = dj._1
544+ let dl = dj._2
545+ let dm = dj._3
546+ let dn = valueOrElse(getString(this, aY()), "")
547+ $Tuple2(nil, $Tuple7(de, df, dg, dk, dl, dm, dn))
542548 }
543549
544550
545551
546-@Callable(bP)
547-func getLpAssetFromPoolAssetsREADONLY (dm,dn) = if (if ((dm == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
548- then (dn == "WAVES")
552+@Callable(bR)
553+func getLpAssetFromPoolAssetsREADONLY (do,dp) = if (if ((do == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
554+ then (dp == "WAVES")
549555 else false)
550556 then $Tuple2(nil, unit)
551557 else {
552- let do = value(getInteger(this, ak(dm)))
553- let dp = value(getInteger(this, ak(dn)))
554- let dq = getString(this, ay(toString(do), toString(dp)))
555- let dr = if ((dq == unit))
558+ let dq = value(getInteger(this, ak(do)))
559+ let dr = value(getInteger(this, ak(dp)))
560+ let ds = getString(this, ay(toString(dq), toString(dr)))
561+ let dt = if ((ds == unit))
556562 then unit
557- else drop(value(dq), 4)
558- $Tuple2(nil, dr)
563+ else drop(value(ds), 4)
564+ $Tuple2(nil, dt)
559565 }
560566
561567
562568
563-@Callable(bP)
564-func getPoolAddressFromLpAssetREADONLY (ds) = $Tuple2(nil, valueOrElse(getString(this, aG(ds)), ""))
569+@Callable(bR)
570+func getPoolAddressFromLpAssetREADONLY (du) = $Tuple2(nil, valueOrElse(getString(this, aG(du)), ""))
565571
566572
567573
568-@Callable(bP)
569-func constructor (dt,du,bV,bW,bX,bY,dv,dw) = {
570- let dx = bQ(bP)
571- if ((dx == dx))
572- then [StringEntry(O(), ce(dt, du, bV, bW, bX, bY, dv)), IntegerEntry(ab(), dw)]
574+@Callable(bR)
575+func constructor (dv,dw,bX,bY,bZ,ca,dx,dy) = {
576+ let dz = bS(bR)
577+ if ((dz == dz))
578+ then [StringEntry(O(), cg(dv, dw, bX, bY, bZ, ca, dx)), IntegerEntry(ab(), dy)]
573579 else throw("Strict value is not equal to itself.")
574580 }
575581
576582
577583
578-@Callable(bP)
579-func constructorV2 (dy) = {
580- let dx = bQ(bP)
581- if ((dx == dx))
584+@Callable(bR)
585+func constructorV2 (dA) = {
586+ let dz = bS(bR)
587+ if ((dz == dz))
582588 then {
583- let dz = addressFromPublicKey(fromBase58String(dy))
584- if ((dz == dz))
585- then [StringEntry(R(), dy)]
589+ let dB = addressFromPublicKey(fromBase58String(dA))
590+ if ((dB == dB))
591+ then [StringEntry(R(), dA)]
586592 else throw("Strict value is not equal to itself.")
587593 }
588594 else throw("Strict value is not equal to itself.")
590596
591597
592598
593-@Callable(bP)
594-func constructorV3 (ca,cb,cc,cd) = {
595- let dx = bQ(bP)
596- if ((dx == dx))
599+@Callable(bR)
600+func constructorV3 (cc,cd,ce,cf) = {
601+ let dz = bS(bR)
602+ if ((dz == dz))
597603 then {
598- let bF = split(be(O()), m)
599-[StringEntry(O(), bS(bF[1], bF[2], bF[3], bF[4], bF[5], bF[6], bF[7], ca, cb, cc, cd))]
604+ let bH = split(bg(O()), m)
605+[StringEntry(O(), bU(bH[1], bH[2], bH[3], bH[4], bH[5], bH[6], bH[7], cc, cd, ce, cf))]
600606 }
601607 else throw("Strict value is not equal to itself.")
602608 }
603609
604610
605611
606-@Callable(bP)
607-func constructorV4 (dA,dB) = {
608- let dx = bQ(bP)
609- if ((dx == dx))
610- then [StringEntry(S(), dA), StringEntry(T(), makeString(dB, m))]
612+@Callable(bR)
613+func constructorV4 (dC,dD) = {
614+ let dz = bS(bR)
615+ if ((dz == dz))
616+ then [StringEntry(S(), dC), StringEntry(T(), makeString(dD, m))]
611617 else throw("Strict value is not equal to itself.")
612618 }
613619
614620
615621
616-@Callable(bP)
617-func constructorV5 (dC) = {
618- let dx = bQ(bP)
619- if ((dx == dx))
620- then [StringEntry(X(), dC)]
622+@Callable(bR)
623+func constructorV5 (dE) = {
624+ let dz = bS(bR)
625+ if ((dz == dz))
626+ then [StringEntry(X(), dE)]
621627 else throw("Strict value is not equal to itself.")
622628 }
623629
624630
625631
626-@Callable(bP)
627-func constructorV6 (dD,dE) = {
628- let dF = [bQ(bP), if ((addressFromString(dD) != unit))
632+@Callable(bR)
633+func constructorV6 (dF,dG) = {
634+ let dH = [bS(bR), if ((addressFromString(dF) != unit))
629635 then true
630636 else "invalid voting emission contract address"]
631- if ((dF == dF))
632- then [StringEntry(Y(), dD), StringEntry(aa(), makeString(dE, m))]
637+ if ((dH == dH))
638+ then [StringEntry(Y(), dF), StringEntry(aa(), makeString(dG, m))]
633639 else throw("Strict value is not equal to itself.")
634640 }
635641
636642
637643
638-@Callable(bP)
639-func setAdmins (dG) = {
640- let dx = bQ(bP)
641- if ((dx == dx))
642- then [StringEntry(W(), makeString(dG, m))]
644+@Callable(bR)
645+func setAdmins (dI) = {
646+ let dz = bS(bR)
647+ if ((dz == dz))
648+ then [StringEntry(W(), makeString(dI, m))]
643649 else throw("Strict value is not equal to itself.")
644650 }
645651
646652
647653
648-@Callable(bP)
649-func activateNewPool (af,ci,cj,dH,dI,dJ,cp,dK) = {
650- let dx = cC(bP)
651- if ((dx == dx))
654+@Callable(bR)
655+func activateNewPool (af,ck,cl,dJ,dK,dL,cr,dM) = {
656+ let dz = cE(bR)
657+ if ((dz == dz))
652658 then if (isDefined(getString(aC(af))))
653659 then K((("Pool address " + af) + " already registered."))
654660 else {
655- let dL = cv(ci, 1)
656- let dM = dL._1
657- let dN = cv(cj, if (dL._3)
661+ let dN = cx(ck, 1)
662+ let dO = dN._1
663+ let dP = cx(cl, if (dN._3)
658664 then 2
659665 else 1)
660- let dO = dN._1
661- let dP = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
662- let dQ = getBinaryValue(Q())
663- let dR = cI(ci, cj)
664- if (dR)
665- then K((((("Pool " + ci) + "/") + cj) + " has already been activated."))
666+ let dQ = dP._1
667+ let dR = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
668+ let dS = getBinaryValue(Q())
669+ let dT = cK(ck, cl)
670+ if (dT)
671+ then K((((("Pool " + ck) + "/") + cl) + " has already been activated."))
666672 else {
667- let dS = value(getString(this, am(toString(dM), toString(dO))))
668- let dT = if ((ci == "WAVES"))
673+ let dU = value(getString(this, am(toString(dO), toString(dQ))))
674+ let dV = if ((ck == "WAVES"))
669675 then l
670- else pow(10, 0, value(assetInfo(fromBase58String(ci))).decimals, 0, 0, DOWN)
671- let dU = if ((cj == "WAVES"))
676+ else pow(10, 0, value(assetInfo(fromBase58String(ck))).decimals, 0, 0, DOWN)
677+ let dW = if ((cl == "WAVES"))
672678 then l
673- else pow(10, 0, value(assetInfo(fromBase58String(cj))).decimals, 0, 0, DOWN)
674- let dV = Issue(dH, dI, 1, 8, true)
675- let ch = calculateAssetId(dV)
676- let dW = toBase58String(ch)
677- let dX = invoke(addressFromStringValue(af), "activate", [ci, cj], nil)
678- if ((dX == dX))
679- then if ((dX != "success"))
679+ else pow(10, 0, value(assetInfo(fromBase58String(cl))).decimals, 0, 0, DOWN)
680+ let dX = Issue(dJ, dK, 1, 8, true)
681+ let cj = calculateAssetId(dX)
682+ let dY = toBase58String(cj)
683+ let dZ = invoke(addressFromStringValue(af), "activate", [ck, cl], nil)
684+ if ((dZ == dZ))
685+ then if ((dZ != "success"))
680686 then K("Pool initialisation error happened.")
681687 else {
682- let dC = addressFromStringValue(be(X()))
683- let dY = invoke(dC, "createOrUpdate", [dW, dH, false], nil)
684- if ((dY == dY))
688+ let dE = addressFromStringValue(bg(X()))
689+ let ea = invoke(dE, "createOrUpdate", [dY, dJ, false], nil)
690+ if ((ea == ea))
685691 then {
686- let dZ = invoke(dC, "addLabel", [dW, h], nil)
687- if ((dZ == dZ))
692+ let eb = invoke(dE, "addLabel", [dY, h], nil)
693+ if ((eb == eb))
688694 then {
689- let ea = invoke(dC, "setLogo", [dW, dK], nil)
690- if ((ea == ea))
695+ let ec = invoke(dE, "setLogo", [dY, dM], nil)
696+ if ((ec == ec))
691697 then {
692- let eb = invoke(dC, "addAssetsLink", [ci, cj, dW], nil)
693- if ((eb == eb))
698+ let ed = invoke(dE, "addAssetsLink", [ck, cl, dY], nil)
699+ if ((ed == ed))
694700 then {
695- let ec = invoke(dC, "increaseAssetPoolsNumber", [ci], nil)
696- if ((ec == ec))
697- then $Tuple2(((dL._2 ++ dN._2) ++ [dV, Burn(ch, 1), StringEntry(am(toString(dM), toString(dO)), cf(af, toString(o), dW, ci, cj, dT, dU, dM, dO, l, cp)), StringEntry(aw(dW), cq(dM, dO)), StringEntry(ay(toString(dM), toString(dO)), ("%s__" + dW)), StringEntry(aC(af), cq(dM, dO)), StringEntry(aE(dM, dO), af), StringEntry(aG(dW), af), StringEntry(aF(af), dW), IntegerEntry(ae(af), dJ), IntegerEntry(aB(af), i)]), dW)
701+ let ee = invoke(dE, "increaseAssetPoolsNumber", [ck], nil)
702+ if ((ee == ee))
703+ then $Tuple2(((dN._2 ++ dP._2) ++ [dX, Burn(cj, 1), StringEntry(am(toString(dO), toString(dQ)), ch(af, toString(o), dY, ck, cl, dV, dW, dO, dQ, l, cr)), StringEntry(aw(dY), cs(dO, dQ)), StringEntry(ay(toString(dO), toString(dQ)), ("%s__" + dY)), StringEntry(aC(af), cs(dO, dQ)), StringEntry(aE(dO, dQ), af), StringEntry(aG(dY), af), StringEntry(aF(af), dY), IntegerEntry(ae(af), dL), IntegerEntry(aB(af), i)]), dY)
698704 else throw("Strict value is not equal to itself.")
699705 }
700706 else throw("Strict value is not equal to itself.")
713719
714720
715721
716-@Callable(bP)
717-func managePool (af,ed) = {
718- let dx = bQ(bP)
719- if ((dx == dx))
722+@Callable(bR)
723+func managePool (af,ef) = {
724+ let dz = bS(bR)
725+ if ((dz == dz))
720726 then {
721- let ee = ct(af)
722- let cg = ee[w]
723- let dW = ee[x]
724- let ci = ee[y]
725- let cj = ee[z]
726- let dT = parseIntValue(ee[A])
727- let dU = parseIntValue(ee[B])
728- let dM = parseIntValue(ee[C])
729- let dO = parseIntValue(ee[D])
730- let ef = parseIntValue(ee[E])
731- let cp = ee[F]
732-[StringEntry(am(toString(dM), toString(dO)), cf(af, toString(ed), dW, ci, cj, dT, dU, dM, dO, ef, cp))]
727+ let eg = cv(af)
728+ let ci = eg[w]
729+ let dY = eg[x]
730+ let ck = eg[y]
731+ let cl = eg[z]
732+ let dV = parseIntValue(eg[A])
733+ let dW = parseIntValue(eg[B])
734+ let dO = parseIntValue(eg[C])
735+ let dQ = parseIntValue(eg[D])
736+ let eh = parseIntValue(eg[E])
737+ let cr = eg[F]
738+[StringEntry(am(toString(dO), toString(dQ)), ch(af, toString(ef), dY, ck, cl, dV, dW, dO, dQ, eh, cr))]
733739 }
734740 else throw("Strict value is not equal to itself.")
735741 }
736742
737743
738744
739-@Callable(bP)
740-func emit (eg) = {
741- let eh = bP.caller
742- let ei = bP.originCaller
743- let ej = valueOrErrorMessage(getString(aF(toString(eh))), "Invalid LP address called me.")
744- let ek = fromBase58String(ej)
745- let dB = split(valueOrElse(getString(T()), n), m)
746- let dA = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
747- if ((0 >= eg))
745+@Callable(bR)
746+func emit (ei) = {
747+ let ej = bR.caller
748+ let ek = bR.originCaller
749+ let el = valueOrErrorMessage(getString(aF(toString(ej))), "Invalid LP address called me.")
750+ let em = fromBase58String(el)
751+ let dD = split(valueOrElse(getString(T()), n), m)
752+ let dC = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
753+ if ((0 >= ei))
748754 then nil
749- else if (containsElement(dB, toString(eh)))
750- then $Tuple2(nil, dA)
751- else $Tuple2([Reissue(ek, eg, true), ScriptTransfer(bP.caller, eg, ek)], "success")
755+ else if (containsElement(dD, toString(ej)))
756+ then $Tuple2(nil, dC)
757+ else $Tuple2([Reissue(em, ei, true), ScriptTransfer(bR.caller, ei, em)], "success")
752758 }
753759
754760
755761
756-@Callable(bP)
757-func burn (el) = {
758- let eh = bP.caller
759- let ei = bP.originCaller
760- let em = value(bP.payments[0])
761- let en = value(em.amount)
762- let eo = toBase58String(value(em.assetId))
763- let ep = valueOrErrorMessage(getString(aF(toString(eh))), "Invalid LP address called me.")
764- if ((eo != ep))
762+@Callable(bR)
763+func burn (en) = {
764+ let ej = bR.caller
765+ let ek = bR.originCaller
766+ let eo = value(bR.payments[0])
767+ let ep = value(eo.amount)
768+ let eq = toBase58String(value(eo.assetId))
769+ let er = valueOrErrorMessage(getString(aF(toString(ej))), "Invalid LP address called me.")
770+ if ((eq != er))
765771 then K("Invalid asset passed.")
766- else if ((el != en))
772+ else if ((en != ep))
767773 then K("Invalid amount passed.")
768774 else {
769- let ek = fromBase58String(ep)
770- $Tuple2([Burn(ek, el)], "success")
775+ let em = fromBase58String(er)
776+ $Tuple2([Burn(em, en)], "success")
771777 }
772778 }
773779
774780
775781
776-@Callable(bP)
777-func modifyWeight (ch,eq) = {
778- let dx = if ((toBase58String(bP.caller.bytes) == valueOrElse(getString(this, Y()), "")))
782+@Callable(bR)
783+func modifyWeight (cj,es) = {
784+ let dz = if ((toBase58String(bR.caller.bytes) == valueOrElse(getString(this, Y()), "")))
779785 then true
780- else bQ(bP)
781- if ((dx == dx))
786+ else bS(bR)
787+ if ((dz == dz))
782788 then {
783- let aD = be(aG(ch))
784- let er = ae(aD)
785- let es = ae(g)
786- let et = valueOrElse(getInteger(es), 0)
787- let dJ = valueOrElse(getInteger(er), 0)
788- let eu = eq
789- let bF = split(be(O()), m)
790- let dt = bH(bF)
791- let ev = invoke(dt, "onModifyWeight", [ch, aD], nil)
792- if ((ev == ev))
789+ let aD = bg(aG(cj))
790+ let et = ae(aD)
791+ let eu = ae(g)
792+ let ev = valueOrElse(getInteger(eu), 0)
793+ let dL = valueOrElse(getInteger(et), 0)
794+ let ew = es
795+ let bH = split(bg(O()), m)
796+ let dv = bJ(bH)
797+ let ex = invoke(dv, "onModifyWeight", [cj, aD], nil)
798+ if ((ex == ex))
793799 then {
794- let ew = if ((et == 0))
800+ let ey = if ((ev == 0))
795801 then nil
796- else [IntegerEntry(es, 0)]
797- let ex = ag(aD, 0)
798- let ey = getInteger(ex)
799- let ez = if ((ey == unit))
802+ else [IntegerEntry(eu, 0)]
803+ let ez = ag(aD, 0)
804+ let eA = getInteger(ez)
805+ let eB = if ((eA == unit))
800806 then nil
801- else [DeleteEntry(ex)]
802- (([IntegerEntry(er, eu)] ++ ew) ++ ez)
807+ else [DeleteEntry(ez)]
808+ (([IntegerEntry(et, ew)] ++ ey) ++ eB)
803809 }
804810 else throw("Strict value is not equal to itself.")
805811 }
808814
809815
810816
811-@Callable(bP)
812-func modifyWeights (eA,eB,eC,eD) = {
813- let dx = bQ(bP)
814- if ((dx == dx))
817+@Callable(bR)
818+func modifyWeights (eC,eD,eE,eF) = {
819+ let dz = bS(bR)
820+ if ((dz == dz))
815821 then {
816- let eE = ((5 * f) / 100)
817- let eF = ((5 * f) / 100)
818822 let eG = ((5 * f) / 100)
819- let bF = split(be(O()), m)
820- let eH = bH(bF)
821- let eI = bI(bF)
822- let eJ = ae(eA)
823- let eK = ae(eB)
823+ let eH = ((5 * f) / 100)
824+ let eI = ((5 * f) / 100)
825+ let bH = split(bg(O()), m)
826+ let eJ = bJ(bH)
827+ let eK = bK(bH)
824828 let eL = ae(eC)
825829 let eM = ae(eD)
826- let eN = bh(eJ)
827- let eO = bh(eK)
828- let eP = (eN - eG)
829- let eQ = (eO - eG)
830- if ((0 >= eP))
831- then K(("invalid btcWeightNew: " + toString(eP)))
832- else if ((0 >= eQ))
833- then K(("invalid ethWeightNew: " + toString(eQ)))
830+ let eN = ae(eE)
831+ let eO = ae(eF)
832+ let eP = bj(eL)
833+ let eQ = bj(eM)
834+ let eR = (eP - eI)
835+ let eS = (eQ - eI)
836+ if ((0 >= eR))
837+ then K(("invalid btcWeightNew: " + toString(eR)))
838+ else if ((0 >= eS))
839+ then K(("invalid ethWeightNew: " + toString(eS)))
834840 else {
835- let eR = be(aF(eA))
836- let eS = be(aF(eB))
837- let eT = be(aF(eC))
838- let eU = be(aF(eD))
839- let eV = invoke(eH, "onModifyWeight", [eR, eA], nil)
840- if ((eV == eV))
841+ let eT = bg(aF(eC))
842+ let eU = bg(aF(eD))
843+ let eV = bg(aF(eE))
844+ let eW = bg(aF(eF))
845+ let eX = invoke(eJ, "onModifyWeight", [eT, eC], nil)
846+ if ((eX == eX))
841847 then {
842- let eW = invoke(eH, "onModifyWeight", [eS, eB], nil)
843- if ((eW == eW))
848+ let eY = invoke(eJ, "onModifyWeight", [eU, eD], nil)
849+ if ((eY == eY))
844850 then {
845- let eX = invoke(eH, "onModifyWeight", [eT, eC], nil)
846- if ((eX == eX))
851+ let eZ = invoke(eJ, "onModifyWeight", [eV, eE], nil)
852+ if ((eZ == eZ))
847853 then {
848- let eY = invoke(eH, "onModifyWeight", [eU, eD], nil)
849- if ((eY == eY))
850- then [IntegerEntry(eJ, eP), IntegerEntry(eK, eQ), IntegerEntry(eL, eE), IntegerEntry(eM, eF), IntegerEntry(ag(eA, 0), eN), IntegerEntry(ag(eB, 0), eO), IntegerEntry(ag(eC, 0), eE), IntegerEntry(ag(eD, 0), eF)]
854+ let fa = invoke(eJ, "onModifyWeight", [eW, eF], nil)
855+ if ((fa == fa))
856+ then [IntegerEntry(eL, eR), IntegerEntry(eM, eS), IntegerEntry(eN, eG), IntegerEntry(eO, eH), IntegerEntry(ag(eC, 0), eP), IntegerEntry(ag(eD, 0), eQ), IntegerEntry(ag(eE, 0), eG), IntegerEntry(ag(eF, 0), eH)]
851857 else throw("Strict value is not equal to itself.")
852858 }
853859 else throw("Strict value is not equal to itself.")
862868
863869
864870
865-@Callable(bP)
871+@Callable(bR)
866872 func checkWxEmissionPoolLabel (aI,aJ) = {
867- let eZ = {
868- let bl = getBoolean(aH(aI, aJ))
869- if ($isInstanceOf(bl, "Boolean"))
873+ let fb = {
874+ let bn = getBoolean(aH(aI, aJ))
875+ if ($isInstanceOf(bn, "Boolean"))
870876 then {
871- let df = bl
872- df
877+ let dh = bn
878+ dh
873879 }
874880 else false
875881 }
876- $Tuple2(nil, eZ)
882+ $Tuple2(nil, fb)
877883 }
878884
879885
880886
881-@Callable(bP)
887+@Callable(bR)
882888 func setWxEmissionPoolLabel (aI,aJ) = {
883- let dx = cC(bP)
884- if ((dx == dx))
889+ let dz = cE(bR)
890+ if ((dz == dz))
885891 then $Tuple2([BooleanEntry(aH(aI, aJ), true)], unit)
886892 else throw("Strict value is not equal to itself.")
887893 }
888894
889895
890896
891-@Callable(bP)
897+@Callable(bR)
892898 func deleteWxEmissionPoolLabel (aI,aJ) = {
893- let dx = if ((bP.caller == this))
899+ let dz = if ((bR.caller == this))
894900 then true
895- else cC(bP)
896- if ((dx == dx))
901+ else cE(bR)
902+ if ((dz == dz))
897903 then $Tuple2([DeleteEntry(aH(aI, aJ))], unit)
898904 else throw("Strict value is not equal to itself.")
899905 }
900906
901907
902908
903-@Callable(bP)
904-func onVerificationLoss (aX) = {
905- let dx = if ((toBase58String(bP.caller.bytes) == valueOrElse(getString(this, X()), "")))
909+@Callable(bR)
910+func onVerificationLoss (aR) = {
911+ let dz = if ((toBase58String(bR.caller.bytes) == valueOrElse(getString(this, X()), "")))
906912 then true
907- else bQ(bP)
908- if ((dx == dx))
913+ else bS(bR)
914+ if ((dz == dz))
909915 then {
910- let dE = bJ()
911- let fa = if ((size(dE) > 0))
916+ let dG = bL()
917+ let fc = if ((size(dG) > 0))
912918 then true
913919 else K("invalid price assets")
914- if ((fa == fa))
920+ if ((fc == fc))
915921 then {
916- func fb (fc,fd) = {
917- let cZ = invoke(this, "deleteWxEmissionPoolLabel", [aX, fd], nil)
918- if ((cZ == cZ))
922+ func fd (fe,ff) = {
923+ let db = invoke(this, "deleteWxEmissionPoolLabel", [aR, ff], nil)
924+ if ((db == db))
919925 then unit
920926 else throw("Strict value is not equal to itself.")
921927 }
922928
923- let fe = {
924- let ff = dE
925- let fg = size(ff)
926- let fh = unit
927- func fi (fj,fk) = if ((fk >= fg))
928- then fj
929- else fb(fj, ff[fk])
929+ let fg = {
930+ let fh = dG
931+ let fi = size(fh)
932+ let fj = unit
933+ func fk (fl,fm) = if ((fm >= fi))
934+ then fl
935+ else fd(fl, fh[fm])
930936
931- func fl (fj,fk) = if ((fk >= fg))
932- then fj
937+ func fn (fl,fm) = if ((fm >= fi))
938+ then fl
933939 else throw("List size exceeds 13")
934940
935- fl(fi(fi(fi(fi(fi(fi(fi(fi(fi(fi(fi(fi(fi(fh, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
941+ fn(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fj, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
936942 }
937- if ((fe == fe))
943+ if ((fg == fg))
938944 then $Tuple2(nil, unit)
939945 else throw("Strict value is not equal to itself.")
940946 }
945951
946952
947953
948-@Callable(bP)
954+@Callable(bR)
949955 func isPoolOneTokenOperationsDisabledREADONLY (af) = {
950- let ee = ct(af)
951- let aq = $Tuple2(parseIntValue(ee[C]), parseIntValue(ee[D]))
952- let fm = valueOrElse(getBoolean(ap(aq)), false)
953- let fn = valueOrElse(getBoolean(as()), false)
954- $Tuple2(nil, if (fn)
955- then true
956- else fm)
957- }
958-
959-
960-
961-@Callable(bP)
962-func isPoolSwapDisabledREADONLY (af) = {
963- let ee = ct(af)
964- let aq = $Tuple2(parseIntValue(ee[C]), parseIntValue(ee[D]))
965- let fo = valueOrElse(getBoolean(at(aq)), false)
966- let fp = valueOrElse(getBoolean(av()), false)
956+ let eg = cv(af)
957+ let aq = $Tuple2(parseIntValue(eg[C]), parseIntValue(eg[D]))
958+ let fo = valueOrElse(getBoolean(ap(aq)), false)
959+ let fp = valueOrElse(getBoolean(as()), false)
967960 $Tuple2(nil, if (fp)
968961 then true
969962 else fo)
971964
972965
973966
974-@Callable(bP)
975-func getInFeeREADONLY (af) = {
976- let fq = cF(aK(af), aL(), 0)
977- $Tuple2(nil, fq)
967+@Callable(bR)
968+func isPoolSwapDisabledREADONLY (af) = {
969+ let eg = cv(af)
970+ let aq = $Tuple2(parseIntValue(eg[C]), parseIntValue(eg[D]))
971+ let fq = valueOrElse(getBoolean(at(aq)), false)
972+ let fr = valueOrElse(getBoolean(av()), false)
973+ $Tuple2(nil, if (fr)
974+ then true
975+ else fq)
978976 }
979977
980978
981979
982-@Callable(bP)
983-func getOutFeeREADONLY (af) = {
984- let fq = cF(aN(af), aO(), fraction(10, b, 10000))
985- $Tuple2(nil, fq)
986- }
987-
988-
989-
990-@Callable(bP)
991-func getSwapFeeREADONLY (fr) = {
992- let fs = {
993- let bl = getString(this, aM(fr))
994- if ($isInstanceOf(bl, "String"))
995- then {
996- let bm = bl
997- let ft = split(bm, m)
998- let fu = parseIntValue(ft[1])
999- let fv = parseIntValue(ft[2])
1000- $Tuple2(fu, fv)
1001- }
1002- else if ($isInstanceOf(bl, "Unit"))
1003- then unit
1004- else throw("Match error")
1005- }
980+@Callable(bR)
981+func getInFeeREADONLY (af) = {
982+ let fs = cH(aK(af), aL(), 0)
1006983 $Tuple2(nil, fs)
1007984 }
1008985
1009986
1010987
1011-@Callable(bP)
1012-func poolInfoREADONLY (fw,fx) = {
1013- let fy = getInteger(this, ak(fw))
1014- let fz = getInteger(this, ak(fx))
1015- let fA = getString(this, aE(value(fy), value(fz)))
1016- let fB = getString(this, aF(value(fA)))
1017- let dR = if (if (isDefined(fy))
1018- then isDefined(fz)
1019- else false)
1020- then isDefined(fA)
1021- else false
1022- let fC = if (dR)
1023- then $Tuple2(addressFromStringValue(value(fA)), bi(value(fB)))
1024- else unit
1025- $Tuple2(nil, fC)
988+@Callable(bR)
989+func getOutFeeREADONLY (af) = {
990+ let fs = cH(aN(af), aO(), fraction(10, b, 10000))
991+ $Tuple2(nil, fs)
1026992 }
1027993
1028994
1029995
1030-@Callable(bP)
1031-func getPoolStatusREADONLY (af) = {
1032- let cu = split(be(aC(af)), m)
1033- let an = cu[1]
1034- let ao = cu[2]
1035- let cL = split(be(am(an, ao)), m)
1036- $Tuple2(nil, parseIntValue(cL[w]))
996+@Callable(bR)
997+func getSwapFeeREADONLY (ft) = {
998+ let fu = {
999+ let bn = getString(this, aM(ft))
1000+ if ($isInstanceOf(bn, "String"))
1001+ then {
1002+ let bo = bn
1003+ let fv = split(bo, m)
1004+ let fw = parseIntValue(fv[1])
1005+ let fx = parseIntValue(fv[2])
1006+ $Tuple2(fw, fx)
1007+ }
1008+ else if ($isInstanceOf(bn, "Unit"))
1009+ then unit
1010+ else throw("Match error")
1011+ }
1012+ $Tuple2(nil, fu)
10371013 }
10381014
10391015
10401016
1041-@Callable(bP)
1042-func getPoolConfigREADONLY (af) = {
1043- let cu = split(be(aC(af)), m)
1044- let an = cu[1]
1045- let ao = cu[2]
1046- let cL = split(be(am(an, ao)), m)
1047- $Tuple2(nil, cL)
1017+@Callable(bR)
1018+func poolInfoREADONLY (fy,fz) = {
1019+ let fA = getInteger(this, ak(fy))
1020+ let fB = getInteger(this, ak(fz))
1021+ let fC = getString(this, aE(value(fA), value(fB)))
1022+ let fD = getString(this, aF(value(fC)))
1023+ let dT = if (if (isDefined(fA))
1024+ then isDefined(fB)
1025+ else false)
1026+ then isDefined(fC)
1027+ else false
1028+ let fE = if (dT)
1029+ then $Tuple2(addressFromStringValue(value(fC)), bk(value(fD)))
1030+ else unit
1031+ $Tuple2(nil, fE)
10481032 }
10491033
10501034
10511035
1052-@Callable(bP)
1053-func getPoolConfigByLpAssetIdREADONLY (dW) = {
1054- let cu = split(be(aw(dW)), m)
1055- let an = cu[1]
1056- let ao = cu[2]
1057- let cL = split(be(am(an, ao)), m)
1058- $Tuple2(nil, cL)
1036+@Callable(bR)
1037+func getPoolStatusREADONLY (af) = {
1038+ let cw = split(bg(aC(af)), m)
1039+ let an = cw[1]
1040+ let ao = cw[2]
1041+ let cN = split(bg(am(an, ao)), m)
1042+ $Tuple2(nil, parseIntValue(cN[w]))
10591043 }
10601044
10611045
10621046
1063-@Callable(bP)
1064-func poolExistsREADONLY (aI,aJ) = $Tuple2(nil, cI(aI, aJ))
1065-
1066-
1067-
1068-@Callable(bP)
1069-func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aP(af)), false))
1070-
1071-
1072-
1073-@Callable(bP)
1074-func getChangeAmpConfigREADONLY (af) = {
1075- let fD = getIntegerValue(aQ(af))
1076- let fE = getIntegerValue(aR(af))
1077- let fF = getIntegerValue(aS(af))
1078- $Tuple2(nil, [fD, fE, fF])
1047+@Callable(bR)
1048+func getPoolConfigREADONLY (af) = {
1049+ let cw = split(bg(aC(af)), m)
1050+ let an = cw[1]
1051+ let ao = cw[2]
1052+ let cN = split(bg(am(an, ao)), m)
1053+ $Tuple2(nil, cN)
10791054 }
10801055
10811056
10821057
1083-@Callable(bP)
1084-func getPoolWeightREADONLY (ch) = {
1085- let af = be(aG(ch))
1086- let fG = valueOrElse(getInteger(ae(af)), 0)
1087- $Tuple2(nil, fG)
1058+@Callable(bR)
1059+func getPoolConfigByLpAssetIdREADONLY (dY) = {
1060+ let cw = split(bg(aw(dY)), m)
1061+ let an = cw[1]
1062+ let ao = cw[2]
1063+ let cN = split(bg(am(an, ao)), m)
1064+ $Tuple2(nil, cN)
10881065 }
10891066
10901067
10911068
1092-@Callable(bP)
1069+@Callable(bR)
1070+func poolExistsREADONLY (aI,aJ) = $Tuple2(nil, cK(aI, aJ))
1071+
1072+
1073+
1074+@Callable(bR)
1075+func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aS(af)), false))
1076+
1077+
1078+
1079+@Callable(bR)
1080+func getChangeAmpConfigREADONLY (af) = {
1081+ let fF = getIntegerValue(aT(af))
1082+ let fG = getIntegerValue(aU(af))
1083+ let fH = getIntegerValue(aV(af))
1084+ $Tuple2(nil, [fF, fG, fH])
1085+ }
1086+
1087+
1088+
1089+@Callable(bR)
1090+func getPoolWeightREADONLY (cj) = {
1091+ let af = bg(aG(cj))
1092+ let fI = valueOrElse(getInteger(ae(af)), 0)
1093+ $Tuple2(nil, fI)
1094+ }
1095+
1096+
1097+
1098+@Callable(bR)
10931099 func deletePool (aD) = {
1094- let ee = ct(aD)
1095- let dx = if ((toString(bP.caller) == cP(aD)))
1096- then if (cW(aD))
1100+ let eg = cv(aD)
1101+ let dz = if ((toString(bR.caller) == cR(aD)))
1102+ then if (cY(aD))
10971103 then true
10981104 else K("Pool is not empty")
1099- else bQ(bP)
1100- if ((dx == dx))
1105+ else bS(bR)
1106+ if ((dz == dz))
11011107 then {
1102- let fH = if ((valueOrElse(getInteger(ae(aD)), 0) == 0))
1108+ let fJ = if ((valueOrElse(getInteger(ae(aD)), 0) == 0))
11031109 then true
11041110 else K("Pool weight is not Zero")
1105- if ((fH == fH))
1111+ if ((fJ == fJ))
11061112 then {
1107- let fI = if ((ee[w] == toString(r)))
1113+ let fK = if ((eg[w] == toString(r)))
11081114 then true
11091115 else K("Pool must be SHUTDOWN (4)")
1110- if ((fI == fI))
1116+ if ((fK == fK))
11111117 then {
1112- let fJ = cO(aD)
1113- let aI = fJ._1
1114- let aJ = fJ._2
1115- let ch = fJ._3
1116- let an = fJ._4
1117- let ao = fJ._5
1118- let cR = addressFromStringValue(getStringValue(Z()))
1119- let fK = invoke(cR, "deletePool", [aI, aJ], nil)
1120- if ((fK == fK))
1118+ let fL = cQ(aD)
1119+ let aI = fL._1
1120+ let aJ = fL._2
1121+ let cj = fL._3
1122+ let an = fL._4
1123+ let ao = fL._5
1124+ let cT = addressFromStringValue(getStringValue(Z()))
1125+ let fM = invoke(cT, "deletePool", [aI, aJ], nil)
1126+ if ((fM == fM))
11211127 then {
1122- let dD = addressFromStringValue(getStringValue(Y()))
1123- let fL = invoke(dD, "deletePool", [aI, aJ], nil)
1124- if ((fL == fL))
1128+ let dF = addressFromStringValue(getStringValue(Y()))
1129+ let fN = invoke(dF, "deletePool", [aI, aJ], nil)
1130+ if ((fN == fN))
11251131 then {
1126- let dC = addressFromStringValue(getStringValue(X()))
1127- let fM = invoke(dC, "deletePool", [aI, aJ], nil)
1128- if ((fM == fM))
1129- then [DeleteEntry(aF(aD)), DeleteEntry(aC(aD)), DeleteEntry(ay(toString(an), toString(ao))), DeleteEntry(aE(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(aw(ch)), DeleteEntry(aG(ch)), DeleteEntry(aH(aI, aJ)), DeleteEntry(ae(aD)), DeleteEntry(aB(aD)), DeleteEntry(aK(aD)), DeleteEntry(aN(aD)), DeleteEntry(aP(aD)), DeleteEntry(aQ(aD)), DeleteEntry(aR(aD)), DeleteEntry(aS(aD))]
1132+ let dE = addressFromStringValue(getStringValue(X()))
1133+ let fO = invoke(dE, "deletePool", [aI, aJ], nil)
1134+ if ((fO == fO))
1135+ then [DeleteEntry(aF(aD)), DeleteEntry(aC(aD)), DeleteEntry(ay(toString(an), toString(ao))), DeleteEntry(aE(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(aw(cj)), DeleteEntry(aG(cj)), DeleteEntry(aH(aI, aJ)), DeleteEntry(ae(aD)), DeleteEntry(aB(aD)), DeleteEntry(aK(aD)), DeleteEntry(aN(aD)), DeleteEntry(aS(aD)), DeleteEntry(aT(aD)), DeleteEntry(aU(aD)), DeleteEntry(aV(aD))]
11301136 else throw("Strict value is not equal to itself.")
11311137 }
11321138 else throw("Strict value is not equal to itself.")
11421148
11431149
11441150
1145-@Callable(bP)
1146-func getPrice (fr) = {
1147- let af = addressFromStringValue(fr)
1148- let cL = ct(fr)
1149- let ch = fromBase58String(cL[x])
1150- let fN = cL[y]
1151- let aJ = cL[z]
1152- let fO = value(assetInfo(ch)).quantity
1153- let fP = {
1154- let fQ = invoke(af, "getAccBalanceWrapperREADONLY", [fN], nil)
1155- if ($isInstanceOf(fQ, "Int"))
1156- then fQ
1157- else throw(($getType(fQ) + " couldn't be cast to Int"))
1151+@Callable(bR)
1152+func getPrice (ft) = {
1153+ let af = addressFromStringValue(ft)
1154+ let cN = cv(ft)
1155+ let cj = fromBase58String(cN[x])
1156+ let fP = cN[y]
1157+ let aJ = cN[z]
1158+ let fQ = value(assetInfo(cj)).quantity
1159+ let fR = {
1160+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [fP], nil)
1161+ if ($isInstanceOf(fS, "Int"))
1162+ then fS
1163+ else throw(($getType(fS) + " couldn't be cast to Int"))
11581164 }
1159- let fR = {
1160- let fQ = invoke(af, "getAccBalanceWrapperREADONLY", [aJ], nil)
1161- if ($isInstanceOf(fQ, "Int"))
1162- then fQ
1163- else throw(($getType(fQ) + " couldn't be cast to Int"))
1165+ let fT = {
1166+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [aJ], nil)
1167+ if ($isInstanceOf(fS, "Int"))
1168+ then fS
1169+ else throw(($getType(fS) + " couldn't be cast to Int"))
11641170 }
1165- let fS = if ((fO == 0))
1171+ let fU = if ((fQ == 0))
11661172 then 0
11671173 else {
1168- let fQ = ({
1169- let fQ = invoke(af, "calcPricesWrapperREADONLY", [fP, fR, fO], nil)
1170- if ($isInstanceOf(fQ, "List[Any]"))
1171- then fQ
1172- else throw(($getType(fQ) + " couldn't be cast to List[Any]"))
1174+ let fS = ({
1175+ let fS = invoke(af, "calcPricesWrapperREADONLY", [fR, fT, fQ], nil)
1176+ if ($isInstanceOf(fS, "List[Any]"))
1177+ then fS
1178+ else throw(($getType(fS) + " couldn't be cast to List[Any]"))
11731179 })[0]
1174- if ($isInstanceOf(fQ, "String"))
1175- then fQ
1176- else throw(($getType(fQ) + " couldn't be cast to String"))
1180+ if ($isInstanceOf(fS, "String"))
1181+ then fS
1182+ else throw(($getType(fS) + " couldn't be cast to String"))
11771183 }
1178- $Tuple2(nil, fS)
1184+ $Tuple2(nil, fU)
11791185 }
11801186
11811187
1182-@Verifier(fT)
1183-func fU () = {
1184- let fV = {
1185- let bl = bK()
1186- if ($isInstanceOf(bl, "ByteVector"))
1188+
1189+@Callable(bR)
1190+func checkBalance (dY) = {
1191+ let ft = bg(aG(dY))
1192+ let af = addressFromStringValue(ft)
1193+ let cN = cv(ft)
1194+ let fy = cN[y]
1195+ let fz = cN[z]
1196+ let fV = getIntegerValue(this, aP())
1197+ let fW = valueOrElse(getInteger(this, aQ(fy)), fV)
1198+ let fX = valueOrElse(getInteger(this, aQ(fz)), fV)
1199+ let fY = {
1200+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [fy], nil)
1201+ if ($isInstanceOf(fS, "Int"))
1202+ then fS
1203+ else throw(($getType(fS) + " couldn't be cast to Int"))
1204+ }
1205+ let fZ = {
1206+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [fz], nil)
1207+ if ($isInstanceOf(fS, "Int"))
1208+ then fS
1209+ else throw(($getType(fS) + " couldn't be cast to Int"))
1210+ }
1211+ let ga = (fY >= (fW / 2))
1212+ let gb = (fZ >= (fX / 2))
1213+ let gc = if (ga)
1214+ then gb
1215+ else false
1216+ $Tuple2(nil, gc)
1217+ }
1218+
1219+
1220+@Verifier(gd)
1221+func ge () = {
1222+ let gf = {
1223+ let bn = bM()
1224+ if ($isInstanceOf(bn, "ByteVector"))
11871225 then {
1188- let bR = bl
1189- bR
1226+ let bT = bn
1227+ bT
11901228 }
1191- else if ($isInstanceOf(bl, "Unit"))
1192- then fT.senderPublicKey
1229+ else if ($isInstanceOf(bn, "Unit"))
1230+ then gd.senderPublicKey
11931231 else throw("Match error")
11941232 }
1195- sigVerify(fT.bodyBytes, fT.proofs[0], fV)
1233+ sigVerify(gd.bodyBytes, gd.proofs[0], gf)
11961234 }
11971235
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = 1000000000000
99
1010 let d = 18
1111
1212 let e = toBigInt(1000000000000000000)
1313
1414 let f = b
1515
1616 let g = "GWXvirtualPOOL"
1717
1818 let h = "POOLS_LP"
1919
2020 let i = 2000000
2121
2222 let j = "WAVES"
2323
2424 let k = "factory_v2.ride"
2525
2626 let l = ((100 * 1000) * 1000)
2727
2828 let m = "__"
2929
3030 let n = ""
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 1
4141
4242 let t = 2
4343
4444 let u = 3
4545
4646 let v = 1
4747
4848 let w = 2
4949
5050 let x = 3
5151
5252 let y = 4
5353
5454 let z = 5
5555
5656 let A = 6
5757
5858 let B = 7
5959
6060 let C = 8
6161
6262 let D = 9
6363
6464 let E = 10
6565
6666 let F = 11
6767
6868 let G = "WX_EMISSION"
6969
7070 let H = [G]
7171
7272 func I (J) = makeString([k, ": ", J], "")
7373
7474
7575 func K (J) = throw(I(J))
7676
7777
7878 func L () = "%s__allowedLpScriptHash"
7979
8080
8181 func M () = "%s__allowedLpStableScriptHash"
8282
8383
8484 func N () = "%s__swapContract"
8585
8686
8787 func O () = "%s__factoryConfig"
8888
8989
9090 func P () = "%s__lpTokensList"
9191
9292
9393 func Q () = "%s%s__pool__scriptHash"
9494
9595
9696 func R () = "%s%s__matcher__publicKey"
9797
9898
9999 func S () = "%s__legacyFactoryContract"
100100
101101
102102 func T () = "%s__legacyPools"
103103
104104
105105 func U () = "%s__managerPublicKey"
106106
107107
108108 func V () = "%s__managerVaultAddress"
109109
110110
111111 func W () = "%s__adminPubKeys"
112112
113113
114114 func X () = "%s__assetsStoreContract"
115115
116116
117117 func Y () = "%s__votingEmissionContract"
118118
119119
120120 func Z () = "%s__userPoolsContract"
121121
122122
123123 func aa () = makeString(["%s", "priceAssets"], m)
124124
125125
126126 func ab () = "%s__priceDecimals"
127127
128128
129129 func ac () = "%s__shutdown"
130130
131131
132132 func ad () = "%s__nextInternalAssetId"
133133
134134
135135 func ae (af) = ("%s%s__poolWeight__" + af)
136136
137137
138138 func ag (af,ah) = ((("%s%s__poolWeight__" + af) + "__") + toString(ah))
139139
140140
141141 func ai (aj) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(aj))
142142
143143
144144 func ak (al) = ("%s%s%s__mappings__baseAsset2internalId__" + al)
145145
146146
147147 func am (an,ao) = (((("%d%d%s__" + an) + "__") + ao) + "__config")
148148
149149
150150 func ap (aq) = {
151151 let ar = aq
152152 let an = ar._1
153153 let ao = ar._2
154154 makeString(["%d%d%s", toString(an), toString(ao), "oneTokenOperationsDisabled"], m)
155155 }
156156
157157
158158 func as () = makeString(["%s", "oneTokenOperationsDisabled"], m)
159159
160160
161161 func at (aq) = {
162162 let au = aq
163163 let an = au._1
164164 let ao = au._2
165165 makeString(["%d%d%s", toString(an), toString(ao), "swapDisabled"], m)
166166 }
167167
168168
169169 func av () = makeString(["%s", "swapDisabled"], m)
170170
171171
172172 func aw (ax) = (("%s%s%s__" + ax) + "__mappings__lpAsset2Pool")
173173
174174
175175 func ay (az,aA) = (((("%d%d%s%s__" + az) + "__") + aA) + "__mappings__PoolAssets2LpAsset")
176176
177177
178178 func aB (af) = ("%s%s__spread__" + af)
179179
180180
181181 func aC (aD) = (("%s%s%s__" + aD) + "__mappings__poolContract2PoolAssets")
182182
183183
184184 func aE (az,aA) = (((("%d%d%s%s__" + toString(az)) + "__") + toString(aA)) + "__mappings__poolAssets2PoolContract")
185185
186186
187187 func aF (aD) = (("%s%s%s__" + aD) + "__mappings__poolContract2LpAsset")
188188
189189
190190 func aG (ax) = (("%s%s%s__" + ax) + "__mappings__lpAsset2PoolContract")
191191
192192
193193 func aH (aI,aJ) = ((("%s%s%s__wxEmission__" + aI) + "__") + aJ)
194194
195195
196196 func aK (af) = ("%s%s__inFee__" + af)
197197
198198
199199 func aL () = "%s__inFeeDefault"
200200
201201
202202 func aM (af) = ("%s%s__swapFee__" + af)
203203
204204
205205 func aN (af) = ("%s%s__outFee__" + af)
206206
207207
208208 func aO () = "%s__outFeeDefault"
209209
210210
211-func aP (af) = ("%s%s__skipOrderValidation__" + af)
211+func aP () = makeString(["%s", "poolAssetDefaultMinAmount"], m)
212212
213213
214-func aQ (af) = ("%s%s__changeAmpDelay__" + af)
214+func aQ (aR) = makeString(["%s%s", "poolAssetMinAmount", aR], m)
215215
216216
217-func aR (af) = ("%s%s__changeAmpDelta__" + af)
217+func aS (af) = ("%s%s__skipOrderValidation__" + af)
218218
219219
220-func aS (af) = ("%s%s__changeAmpTarget__" + af)
220+func aT (af) = ("%s%s__changeAmpDelay__" + af)
221221
222222
223-func aT () = "%s__sWavesProxyAddress"
223+func aU (af) = ("%s%s__changeAmpDelta__" + af)
224224
225225
226-func aU () = "%s__sWavesAssetId"
226+func aV (af) = ("%s%s__changeAmpTarget__" + af)
227227
228228
229-func aV () = "%s__stakingProfitAddress"
229+func aW () = "%s__sWavesProxyAddress"
230230
231231
232-func aW (af,aX) = makeString(["%s%s%s", "leasedRatio", af, aX], m)
232+func aX () = "%s__sWavesAssetId"
233233
234234
235-func aY (aX) = makeString(["%s%s", "leasedRatioDefault", aX], m)
235+func aY () = "%s__stakingProfitAddress"
236236
237237
238-func aZ (af,aX) = makeString(["%s%s%s", "leasedRatioTolerance", af, aX], m)
238+func aZ (af,aR) = makeString(["%s%s%s", "leasedRatio", af, aR], m)
239239
240240
241-func ba (af,aX) = makeString(["%s%s%s", "minBalance", af, aX], m)
241+func ba (aR) = makeString(["%s%s", "leasedRatioDefault", aR], m)
242242
243243
244-func bb (aX) = makeString(["%s%s", "minBalanceDefault", aX], m)
244+func bb (af,aR) = makeString(["%s%s%s", "leasedRatioTolerance", af, aR], m)
245245
246246
247-func bc (bd) = makeString(["%s%s", "whitelisted", toString(bd)], m)
247+func bc (af,aR) = makeString(["%s%s%s", "minBalance", af, aR], m)
248248
249249
250-func be (bf) = valueOrErrorMessage(getString(this, bf), ("No data for this.key=" + bf))
250+func bd (aR) = makeString(["%s%s", "minBalanceDefault", aR], m)
251251
252252
253-func bg (bf) = valueOrErrorMessage(getBoolean(this, bf), ("No data for this.key=" + bf))
253+func be (bf) = makeString(["%s%s", "whitelisted", toString(bf)], m)
254254
255255
256-func bh (bf) = valueOrErrorMessage(getInteger(this, bf), ("No data for this.key=" + bf))
256+func bg (bh) = valueOrErrorMessage(getString(this, bh), ("No data for this.key=" + bh))
257257
258258
259-func bi (bj) = if ((bj == j))
260- then unit
261- else fromBase58String(bj)
259+func bi (bh) = valueOrErrorMessage(getBoolean(this, bh), ("No data for this.key=" + bh))
262260
263261
264-func bk () = {
265- let bl = getString(V())
266- if ($isInstanceOf(bl, "String"))
262+func bj (bh) = valueOrErrorMessage(getInteger(this, bh), ("No data for this.key=" + bh))
263+
264+
265+func bk (bl) = if ((bl == j))
266+ then unit
267+ else fromBase58String(bl)
268+
269+
270+func bm () = {
271+ let bn = getString(V())
272+ if ($isInstanceOf(bn, "String"))
267273 then {
268- let bm = bl
269- addressFromStringValue(bm)
274+ let bo = bn
275+ addressFromStringValue(bo)
270276 }
271277 else this
272278 }
273279
274280
275-func bn (bo,bp) = fraction(toBigInt(bo), e, toBigInt(bp))
281+func bp (bq,br) = fraction(toBigInt(bq), e, toBigInt(br))
276282
277283
278-func bq (br,bs) = toInt(fraction(br, toBigInt(bs), e))
284+func bs (bt,bu) = toInt(fraction(bt, toBigInt(bu), e))
279285
280286
281-let bt = 1
287+let bv = 1
282288
283-let bu = 2
289+let bw = 2
284290
285-let bv = 3
291+let bx = 3
286292
287-let bw = 4
293+let by = 4
288294
289-let bx = 5
295+let bz = 5
290296
291-let by = 6
297+let bA = 6
292298
293-let bz = 7
299+let bB = 7
294300
295-let bA = 8
301+let bC = 8
296302
297-let bB = 9
303+let bD = 9
298304
299-let bC = 10
305+let bE = 10
300306
301-let bD = 11
307+let bF = 11
302308
303-func bE (bF) = addressFromStringValue(bF[bu])
309+func bG (bH) = addressFromStringValue(bH[bw])
304310
305311
306-func bG (bF) = addressFromStringValue(bF[bx])
312+func bI (bH) = addressFromStringValue(bH[bz])
307313
308314
309-func bH (bF) = addressFromStringValue(bF[bt])
315+func bJ (bH) = addressFromStringValue(bH[bv])
310316
311317
312-func bI (bF) = addressFromStringValue(bF[bC])
318+func bK (bH) = addressFromStringValue(bH[bE])
313319
314320
315-func bJ () = {
316- let bl = getString(aa())
317- if ($isInstanceOf(bl, "String"))
321+func bL () = {
322+ let bn = getString(aa())
323+ if ($isInstanceOf(bn, "String"))
318324 then {
319- let bm = bl
320- if ((size(bm) == 0))
325+ let bo = bn
326+ if ((size(bo) == 0))
321327 then nil
322- else split_4C(bm, m)
328+ else split_4C(bo, m)
323329 }
324330 else nil
325331 }
326332
327333
328-func bK () = {
329- let bL = bk()
330- let bl = getString(bL, U())
331- if ($isInstanceOf(bl, "String"))
334+func bM () = {
335+ let bN = bm()
336+ let bn = getString(bN, U())
337+ if ($isInstanceOf(bn, "String"))
332338 then {
333- let bm = bl
334- fromBase58String(bm)
339+ let bo = bn
340+ fromBase58String(bo)
335341 }
336- else if ($isInstanceOf(bl, "Unit"))
342+ else if ($isInstanceOf(bn, "Unit"))
337343 then unit
338344 else throw("Match error")
339345 }
340346
341347
342-let bM = K("Permission denied")
348+let bO = K("Permission denied")
343349
344-let bN = K("Test error here")
350+let bP = K("Test error here")
345351
346-func bO (bP) = if ((bP.caller == this))
352+func bQ (bR) = if ((bR.caller == this))
347353 then true
348- else bM
354+ else bO
349355
350356
351-func bQ (bP) = {
352- let bl = bK()
353- if ($isInstanceOf(bl, "ByteVector"))
357+func bS (bR) = {
358+ let bn = bM()
359+ if ($isInstanceOf(bn, "ByteVector"))
354360 then {
355- let bR = bl
356- if ((bP.callerPublicKey == bR))
361+ let bT = bn
362+ if ((bR.callerPublicKey == bT))
357363 then true
358- else bM
364+ else bO
359365 }
360- else if ($isInstanceOf(bl, "Unit"))
361- then bO(bP)
366+ else if ($isInstanceOf(bn, "Unit"))
367+ then bQ(bR)
362368 else throw("Match error")
363369 }
364370
365371
366-func bS (bT,bU,bV,bW,bX,bY,bZ,ca,cb,cc,cd) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bT, bU, bV, bW, bX, bY, bZ, ca, cb, cc, cd], m)
372+func bU (bV,bW,bX,bY,bZ,ca,cb,cc,cd,ce,cf) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bV, bW, bX, bY, bZ, ca, cb, cc, cd, ce, cf], m)
367373
368374
369-func ce (bT,bU,bV,bW,bX,bY,bZ) = makeString(["%s%s%s%s%s%s", bT, bU, bV, bW, bX, bY, bZ], m)
375+func cg (bV,bW,bX,bY,bZ,ca,cb) = makeString(["%s%s%s%s%s%s", bV, bW, bX, bY, bZ, ca, cb], m)
370376
371377
372-func cf (af,cg,ch,ci,cj,ck,cl,cm,cn,co,cp) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, cg, ch, ci, cj, toString(ck), toString(cl), toString(cm), toString(cn), toString(co), cp], m)
378+func ch (af,ci,cj,ck,cl,cm,cn,co,cp,cq,cr) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, ci, cj, ck, cl, toString(cm), toString(cn), toString(co), toString(cp), toString(cq), cr], m)
373379
374380
375-func cq (cr,cs) = makeString(["%d%d", toString(cr), toString(cs)], m)
381+func cs (ct,cu) = makeString(["%d%d", toString(ct), toString(cu)], m)
376382
377383
378-func ct (af) = {
379- let cu = split(be(aC(af)), m)
380- let an = cu[1]
381- let ao = cu[2]
382- split(be(am(an, ao)), m)
384+func cv (af) = {
385+ let cw = split(bg(aC(af)), m)
386+ let an = cw[1]
387+ let ao = cw[2]
388+ split(bg(am(an, ao)), m)
383389 }
384390
385391
386-func cv (cw,cx) = {
387- let cy = valueOrElse(getInteger(this, ak(cw)), 0)
388- let cz = valueOrElse(getInteger(this, ad()), 0)
389- let cA = if ((cy == 0))
392+func cx (cy,cz) = {
393+ let cA = valueOrElse(getInteger(this, ak(cy)), 0)
394+ let cB = valueOrElse(getInteger(this, ad()), 0)
395+ let cC = if ((cA == 0))
390396 then {
391- let cB = (cz + cx)
392- $Tuple3(cB, [IntegerEntry(ad(), cB), IntegerEntry(ak(cw), cB), StringEntry(ai(cB), cw)], true)
397+ let cD = (cB + cz)
398+ $Tuple3(cD, [IntegerEntry(ad(), cD), IntegerEntry(ak(cy), cD), StringEntry(ai(cD), cy)], true)
393399 }
394- else $Tuple3(cy, nil, false)
395- cA
400+ else $Tuple3(cA, nil, false)
401+ cC
396402 }
397403
398404
399-func cC (bP) = {
400- let cD = split(valueOrElse(getString(W()), n), m)
401- if (containsElement(cD, toBase58String(bP.callerPublicKey)))
405+func cE (bR) = {
406+ let cF = split(valueOrElse(getString(W()), n), m)
407+ if (containsElement(cF, toBase58String(bR.callerPublicKey)))
402408 then true
403409 else {
404- let cE = bQ(bP)
405- if ((cE == cE))
410+ let cG = bS(bR)
411+ if ((cG == cG))
406412 then true
407413 else throw("Strict value is not equal to itself.")
408414 }
409415 }
410416
411417
412-func cF (bf,cG,cH) = valueOrElse(getInteger(this, bf), valueOrElse(getInteger(this, cG), cH))
418+func cH (bh,cI,cJ) = valueOrElse(getInteger(this, bh), valueOrElse(getInteger(this, cI), cJ))
413419
414420
415-func cI (aI,aJ) = {
421+func cK (aI,aJ) = {
416422 let an = getInteger(ak(aI))
417423 let ao = getInteger(ak(aJ))
418424 if (if ((an == unit))
419425 then true
420426 else (ao == unit))
421427 then false
422428 else {
423- let cJ = toString(value(an))
424- let cK = toString(value(ao))
425- let cL = getString(am(cJ, cK))
426- let cM = getString(am(cK, cJ))
427- let cN = if ((cL != unit))
429+ let cL = toString(value(an))
430+ let cM = toString(value(ao))
431+ let cN = getString(am(cL, cM))
432+ let cO = getString(am(cM, cL))
433+ let cP = if ((cN != unit))
428434 then true
429- else (cM != unit)
430- cN
435+ else (cO != unit)
436+ cP
431437 }
432438 }
433439
434440
435-func cO (aD) = {
436- let cu = {
437- let bl = getString(aC(aD))
438- if ($isInstanceOf(bl, "String"))
441+func cQ (aD) = {
442+ let cw = {
443+ let bn = getString(aC(aD))
444+ if ($isInstanceOf(bn, "String"))
439445 then {
440- let bm = bl
441- split(bm, m)
446+ let bo = bn
447+ split(bo, m)
442448 }
443449 else K(makeString([aD, "pool is not found"], " "))
444450 }
445- let an = parseIntValue(cu[1])
446- let ao = parseIntValue(cu[2])
451+ let an = parseIntValue(cw[1])
452+ let ao = parseIntValue(cw[2])
447453 let aI = getStringValue(ai(an))
448454 let aJ = getStringValue(ai(ao))
449- let ch = getStringValue(aF(aD))
450- $Tuple5(aI, aJ, ch, an, ao)
455+ let cj = getStringValue(aF(aD))
456+ $Tuple5(aI, aJ, cj, an, ao)
451457 }
452458
453459
454-func cP (aD) = {
455- let cQ = cO(aD)
456- let aI = cQ._1
457- let aJ = cQ._2
458- let ch = cQ._3
459- let an = cQ._4
460- let ao = cQ._5
461- let cR = addressFromStringValue(getStringValue(Z()))
462- let cS = invoke(cR, "getPoolCreatorREADONLY", [aI, aJ], nil)
463- cS
460+func cR (aD) = {
461+ let cS = cQ(aD)
462+ let aI = cS._1
463+ let aJ = cS._2
464+ let cj = cS._3
465+ let an = cS._4
466+ let ao = cS._5
467+ let cT = addressFromStringValue(getStringValue(Z()))
468+ let cU = invoke(cT, "getPoolCreatorREADONLY", [aI, aJ], nil)
469+ cU
464470 }
465471
466472
467-func cT (cU,cV) = {
468- let bd = addressFromStringValue(cU)
469- if ((cV == "WAVES"))
470- then wavesBalance(bd).regular
473+func cV (cW,cX) = {
474+ let bf = addressFromStringValue(cW)
475+ if ((cX == "WAVES"))
476+ then wavesBalance(bf).regular
471477 else {
472- let aX = fromBase58String(cV)
473- assetBalance(bd, aX)
478+ let aR = fromBase58String(cX)
479+ assetBalance(bf, aR)
474480 }
475481 }
476482
477483
478-func cW (aD) = {
479- let cX = cO(aD)
480- let aI = cX._1
481- let aJ = cX._2
482- let ch = cX._3
483- let an = cX._4
484- let ao = cX._5
485- if ((cT(aD, aI) == 0))
486- then (cT(aD, aJ) == 0)
484+func cY (aD) = {
485+ let cZ = cQ(aD)
486+ let aI = cZ._1
487+ let aJ = cZ._2
488+ let cj = cZ._3
489+ let an = cZ._4
490+ let ao = cZ._5
491+ if ((cV(aD, aI) == 0))
492+ then (cV(aD, aJ) == 0)
487493 else false
488494 }
489495
490496
491-@Callable(bP)
492-func getSwapContractREADONLY () = $Tuple2(nil, be(N()))
497+@Callable(bR)
498+func getSwapContractREADONLY () = $Tuple2(nil, bg(N()))
493499
494500
495501
496-@Callable(bP)
497-func getPoolLeaseConfigREADONLY (af,aX) = {
498- let cY = {
499- let bl = getInteger(this, aW(af, aX))
500- if ($isInstanceOf(bl, "Int"))
502+@Callable(bR)
503+func getPoolLeaseConfigREADONLY (af,aR) = {
504+ let da = {
505+ let bn = getInteger(this, aZ(af, aR))
506+ if ($isInstanceOf(bn, "Int"))
501507 then {
502- let cZ = bl
503- $Tuple2(true, min([100, max([0, cZ])]))
508+ let db = bn
509+ $Tuple2(true, min([100, max([0, db])]))
504510 }
505511 else {
506- let da = getInteger(this, aY(aX))
507- if ($isInstanceOf(da, "Int"))
512+ let dc = getInteger(this, ba(aR))
513+ if ($isInstanceOf(dc, "Int"))
508514 then {
509- let db = da
510- $Tuple2(true, min([100, max([0, db])]))
515+ let dd = dc
516+ $Tuple2(true, min([100, max([0, dd])]))
511517 }
512518 else $Tuple2(false, 0)
513519 }
514520 }
515- let dc = cY._1
516- let dd = cY._2
517- let de = {
518- let bl = getInteger(this, ba(af, aX))
519- if ($isInstanceOf(bl, "Int"))
521+ let de = da._1
522+ let df = da._2
523+ let dg = {
524+ let bn = getInteger(this, bc(af, aR))
525+ if ($isInstanceOf(bn, "Int"))
520526 then {
521- let df = bl
522- max([0, df])
527+ let dh = bn
528+ max([0, dh])
523529 }
524530 else {
525- let da = getInteger(this, bb(aX))
526- if ($isInstanceOf(da, "Int"))
531+ let dc = getInteger(this, bd(aR))
532+ if ($isInstanceOf(dc, "Int"))
527533 then {
528- let dg = da
529- max([0, dg])
534+ let di = dc
535+ max([0, di])
530536 }
531537 else 0
532538 }
533539 }
534- let dh = if ((aX == "WAVES"))
535- then $Tuple3(valueOrElse(getString(this, aT()), ""), getString(this, valueOrElse(aU(), "")), c)
540+ let dj = if ((aR == "WAVES"))
541+ then $Tuple3(valueOrElse(getString(this, aW()), ""), getString(this, valueOrElse(aX(), "")), c)
536542 else $Tuple3("", "", 0)
537- let di = dh._1
538- let dj = dh._2
539- let dk = dh._3
540- let dl = valueOrElse(getString(this, aV()), "")
541- $Tuple2(nil, $Tuple7(dc, dd, de, di, dj, dk, dl))
543+ let dk = dj._1
544+ let dl = dj._2
545+ let dm = dj._3
546+ let dn = valueOrElse(getString(this, aY()), "")
547+ $Tuple2(nil, $Tuple7(de, df, dg, dk, dl, dm, dn))
542548 }
543549
544550
545551
546-@Callable(bP)
547-func getLpAssetFromPoolAssetsREADONLY (dm,dn) = if (if ((dm == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
548- then (dn == "WAVES")
552+@Callable(bR)
553+func getLpAssetFromPoolAssetsREADONLY (do,dp) = if (if ((do == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
554+ then (dp == "WAVES")
549555 else false)
550556 then $Tuple2(nil, unit)
551557 else {
552- let do = value(getInteger(this, ak(dm)))
553- let dp = value(getInteger(this, ak(dn)))
554- let dq = getString(this, ay(toString(do), toString(dp)))
555- let dr = if ((dq == unit))
558+ let dq = value(getInteger(this, ak(do)))
559+ let dr = value(getInteger(this, ak(dp)))
560+ let ds = getString(this, ay(toString(dq), toString(dr)))
561+ let dt = if ((ds == unit))
556562 then unit
557- else drop(value(dq), 4)
558- $Tuple2(nil, dr)
563+ else drop(value(ds), 4)
564+ $Tuple2(nil, dt)
559565 }
560566
561567
562568
563-@Callable(bP)
564-func getPoolAddressFromLpAssetREADONLY (ds) = $Tuple2(nil, valueOrElse(getString(this, aG(ds)), ""))
569+@Callable(bR)
570+func getPoolAddressFromLpAssetREADONLY (du) = $Tuple2(nil, valueOrElse(getString(this, aG(du)), ""))
565571
566572
567573
568-@Callable(bP)
569-func constructor (dt,du,bV,bW,bX,bY,dv,dw) = {
570- let dx = bQ(bP)
571- if ((dx == dx))
572- then [StringEntry(O(), ce(dt, du, bV, bW, bX, bY, dv)), IntegerEntry(ab(), dw)]
574+@Callable(bR)
575+func constructor (dv,dw,bX,bY,bZ,ca,dx,dy) = {
576+ let dz = bS(bR)
577+ if ((dz == dz))
578+ then [StringEntry(O(), cg(dv, dw, bX, bY, bZ, ca, dx)), IntegerEntry(ab(), dy)]
573579 else throw("Strict value is not equal to itself.")
574580 }
575581
576582
577583
578-@Callable(bP)
579-func constructorV2 (dy) = {
580- let dx = bQ(bP)
581- if ((dx == dx))
584+@Callable(bR)
585+func constructorV2 (dA) = {
586+ let dz = bS(bR)
587+ if ((dz == dz))
582588 then {
583- let dz = addressFromPublicKey(fromBase58String(dy))
584- if ((dz == dz))
585- then [StringEntry(R(), dy)]
589+ let dB = addressFromPublicKey(fromBase58String(dA))
590+ if ((dB == dB))
591+ then [StringEntry(R(), dA)]
586592 else throw("Strict value is not equal to itself.")
587593 }
588594 else throw("Strict value is not equal to itself.")
589595 }
590596
591597
592598
593-@Callable(bP)
594-func constructorV3 (ca,cb,cc,cd) = {
595- let dx = bQ(bP)
596- if ((dx == dx))
599+@Callable(bR)
600+func constructorV3 (cc,cd,ce,cf) = {
601+ let dz = bS(bR)
602+ if ((dz == dz))
597603 then {
598- let bF = split(be(O()), m)
599-[StringEntry(O(), bS(bF[1], bF[2], bF[3], bF[4], bF[5], bF[6], bF[7], ca, cb, cc, cd))]
604+ let bH = split(bg(O()), m)
605+[StringEntry(O(), bU(bH[1], bH[2], bH[3], bH[4], bH[5], bH[6], bH[7], cc, cd, ce, cf))]
600606 }
601607 else throw("Strict value is not equal to itself.")
602608 }
603609
604610
605611
606-@Callable(bP)
607-func constructorV4 (dA,dB) = {
608- let dx = bQ(bP)
609- if ((dx == dx))
610- then [StringEntry(S(), dA), StringEntry(T(), makeString(dB, m))]
612+@Callable(bR)
613+func constructorV4 (dC,dD) = {
614+ let dz = bS(bR)
615+ if ((dz == dz))
616+ then [StringEntry(S(), dC), StringEntry(T(), makeString(dD, m))]
611617 else throw("Strict value is not equal to itself.")
612618 }
613619
614620
615621
616-@Callable(bP)
617-func constructorV5 (dC) = {
618- let dx = bQ(bP)
619- if ((dx == dx))
620- then [StringEntry(X(), dC)]
622+@Callable(bR)
623+func constructorV5 (dE) = {
624+ let dz = bS(bR)
625+ if ((dz == dz))
626+ then [StringEntry(X(), dE)]
621627 else throw("Strict value is not equal to itself.")
622628 }
623629
624630
625631
626-@Callable(bP)
627-func constructorV6 (dD,dE) = {
628- let dF = [bQ(bP), if ((addressFromString(dD) != unit))
632+@Callable(bR)
633+func constructorV6 (dF,dG) = {
634+ let dH = [bS(bR), if ((addressFromString(dF) != unit))
629635 then true
630636 else "invalid voting emission contract address"]
631- if ((dF == dF))
632- then [StringEntry(Y(), dD), StringEntry(aa(), makeString(dE, m))]
637+ if ((dH == dH))
638+ then [StringEntry(Y(), dF), StringEntry(aa(), makeString(dG, m))]
633639 else throw("Strict value is not equal to itself.")
634640 }
635641
636642
637643
638-@Callable(bP)
639-func setAdmins (dG) = {
640- let dx = bQ(bP)
641- if ((dx == dx))
642- then [StringEntry(W(), makeString(dG, m))]
644+@Callable(bR)
645+func setAdmins (dI) = {
646+ let dz = bS(bR)
647+ if ((dz == dz))
648+ then [StringEntry(W(), makeString(dI, m))]
643649 else throw("Strict value is not equal to itself.")
644650 }
645651
646652
647653
648-@Callable(bP)
649-func activateNewPool (af,ci,cj,dH,dI,dJ,cp,dK) = {
650- let dx = cC(bP)
651- if ((dx == dx))
654+@Callable(bR)
655+func activateNewPool (af,ck,cl,dJ,dK,dL,cr,dM) = {
656+ let dz = cE(bR)
657+ if ((dz == dz))
652658 then if (isDefined(getString(aC(af))))
653659 then K((("Pool address " + af) + " already registered."))
654660 else {
655- let dL = cv(ci, 1)
656- let dM = dL._1
657- let dN = cv(cj, if (dL._3)
661+ let dN = cx(ck, 1)
662+ let dO = dN._1
663+ let dP = cx(cl, if (dN._3)
658664 then 2
659665 else 1)
660- let dO = dN._1
661- let dP = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
662- let dQ = getBinaryValue(Q())
663- let dR = cI(ci, cj)
664- if (dR)
665- then K((((("Pool " + ci) + "/") + cj) + " has already been activated."))
666+ let dQ = dP._1
667+ let dR = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
668+ let dS = getBinaryValue(Q())
669+ let dT = cK(ck, cl)
670+ if (dT)
671+ then K((((("Pool " + ck) + "/") + cl) + " has already been activated."))
666672 else {
667- let dS = value(getString(this, am(toString(dM), toString(dO))))
668- let dT = if ((ci == "WAVES"))
673+ let dU = value(getString(this, am(toString(dO), toString(dQ))))
674+ let dV = if ((ck == "WAVES"))
669675 then l
670- else pow(10, 0, value(assetInfo(fromBase58String(ci))).decimals, 0, 0, DOWN)
671- let dU = if ((cj == "WAVES"))
676+ else pow(10, 0, value(assetInfo(fromBase58String(ck))).decimals, 0, 0, DOWN)
677+ let dW = if ((cl == "WAVES"))
672678 then l
673- else pow(10, 0, value(assetInfo(fromBase58String(cj))).decimals, 0, 0, DOWN)
674- let dV = Issue(dH, dI, 1, 8, true)
675- let ch = calculateAssetId(dV)
676- let dW = toBase58String(ch)
677- let dX = invoke(addressFromStringValue(af), "activate", [ci, cj], nil)
678- if ((dX == dX))
679- then if ((dX != "success"))
679+ else pow(10, 0, value(assetInfo(fromBase58String(cl))).decimals, 0, 0, DOWN)
680+ let dX = Issue(dJ, dK, 1, 8, true)
681+ let cj = calculateAssetId(dX)
682+ let dY = toBase58String(cj)
683+ let dZ = invoke(addressFromStringValue(af), "activate", [ck, cl], nil)
684+ if ((dZ == dZ))
685+ then if ((dZ != "success"))
680686 then K("Pool initialisation error happened.")
681687 else {
682- let dC = addressFromStringValue(be(X()))
683- let dY = invoke(dC, "createOrUpdate", [dW, dH, false], nil)
684- if ((dY == dY))
688+ let dE = addressFromStringValue(bg(X()))
689+ let ea = invoke(dE, "createOrUpdate", [dY, dJ, false], nil)
690+ if ((ea == ea))
685691 then {
686- let dZ = invoke(dC, "addLabel", [dW, h], nil)
687- if ((dZ == dZ))
692+ let eb = invoke(dE, "addLabel", [dY, h], nil)
693+ if ((eb == eb))
688694 then {
689- let ea = invoke(dC, "setLogo", [dW, dK], nil)
690- if ((ea == ea))
695+ let ec = invoke(dE, "setLogo", [dY, dM], nil)
696+ if ((ec == ec))
691697 then {
692- let eb = invoke(dC, "addAssetsLink", [ci, cj, dW], nil)
693- if ((eb == eb))
698+ let ed = invoke(dE, "addAssetsLink", [ck, cl, dY], nil)
699+ if ((ed == ed))
694700 then {
695- let ec = invoke(dC, "increaseAssetPoolsNumber", [ci], nil)
696- if ((ec == ec))
697- then $Tuple2(((dL._2 ++ dN._2) ++ [dV, Burn(ch, 1), StringEntry(am(toString(dM), toString(dO)), cf(af, toString(o), dW, ci, cj, dT, dU, dM, dO, l, cp)), StringEntry(aw(dW), cq(dM, dO)), StringEntry(ay(toString(dM), toString(dO)), ("%s__" + dW)), StringEntry(aC(af), cq(dM, dO)), StringEntry(aE(dM, dO), af), StringEntry(aG(dW), af), StringEntry(aF(af), dW), IntegerEntry(ae(af), dJ), IntegerEntry(aB(af), i)]), dW)
701+ let ee = invoke(dE, "increaseAssetPoolsNumber", [ck], nil)
702+ if ((ee == ee))
703+ then $Tuple2(((dN._2 ++ dP._2) ++ [dX, Burn(cj, 1), StringEntry(am(toString(dO), toString(dQ)), ch(af, toString(o), dY, ck, cl, dV, dW, dO, dQ, l, cr)), StringEntry(aw(dY), cs(dO, dQ)), StringEntry(ay(toString(dO), toString(dQ)), ("%s__" + dY)), StringEntry(aC(af), cs(dO, dQ)), StringEntry(aE(dO, dQ), af), StringEntry(aG(dY), af), StringEntry(aF(af), dY), IntegerEntry(ae(af), dL), IntegerEntry(aB(af), i)]), dY)
698704 else throw("Strict value is not equal to itself.")
699705 }
700706 else throw("Strict value is not equal to itself.")
701707 }
702708 else throw("Strict value is not equal to itself.")
703709 }
704710 else throw("Strict value is not equal to itself.")
705711 }
706712 else throw("Strict value is not equal to itself.")
707713 }
708714 else throw("Strict value is not equal to itself.")
709715 }
710716 }
711717 else throw("Strict value is not equal to itself.")
712718 }
713719
714720
715721
716-@Callable(bP)
717-func managePool (af,ed) = {
718- let dx = bQ(bP)
719- if ((dx == dx))
722+@Callable(bR)
723+func managePool (af,ef) = {
724+ let dz = bS(bR)
725+ if ((dz == dz))
720726 then {
721- let ee = ct(af)
722- let cg = ee[w]
723- let dW = ee[x]
724- let ci = ee[y]
725- let cj = ee[z]
726- let dT = parseIntValue(ee[A])
727- let dU = parseIntValue(ee[B])
728- let dM = parseIntValue(ee[C])
729- let dO = parseIntValue(ee[D])
730- let ef = parseIntValue(ee[E])
731- let cp = ee[F]
732-[StringEntry(am(toString(dM), toString(dO)), cf(af, toString(ed), dW, ci, cj, dT, dU, dM, dO, ef, cp))]
727+ let eg = cv(af)
728+ let ci = eg[w]
729+ let dY = eg[x]
730+ let ck = eg[y]
731+ let cl = eg[z]
732+ let dV = parseIntValue(eg[A])
733+ let dW = parseIntValue(eg[B])
734+ let dO = parseIntValue(eg[C])
735+ let dQ = parseIntValue(eg[D])
736+ let eh = parseIntValue(eg[E])
737+ let cr = eg[F]
738+[StringEntry(am(toString(dO), toString(dQ)), ch(af, toString(ef), dY, ck, cl, dV, dW, dO, dQ, eh, cr))]
733739 }
734740 else throw("Strict value is not equal to itself.")
735741 }
736742
737743
738744
739-@Callable(bP)
740-func emit (eg) = {
741- let eh = bP.caller
742- let ei = bP.originCaller
743- let ej = valueOrErrorMessage(getString(aF(toString(eh))), "Invalid LP address called me.")
744- let ek = fromBase58String(ej)
745- let dB = split(valueOrElse(getString(T()), n), m)
746- let dA = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
747- if ((0 >= eg))
745+@Callable(bR)
746+func emit (ei) = {
747+ let ej = bR.caller
748+ let ek = bR.originCaller
749+ let el = valueOrErrorMessage(getString(aF(toString(ej))), "Invalid LP address called me.")
750+ let em = fromBase58String(el)
751+ let dD = split(valueOrElse(getString(T()), n), m)
752+ let dC = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
753+ if ((0 >= ei))
748754 then nil
749- else if (containsElement(dB, toString(eh)))
750- then $Tuple2(nil, dA)
751- else $Tuple2([Reissue(ek, eg, true), ScriptTransfer(bP.caller, eg, ek)], "success")
755+ else if (containsElement(dD, toString(ej)))
756+ then $Tuple2(nil, dC)
757+ else $Tuple2([Reissue(em, ei, true), ScriptTransfer(bR.caller, ei, em)], "success")
752758 }
753759
754760
755761
756-@Callable(bP)
757-func burn (el) = {
758- let eh = bP.caller
759- let ei = bP.originCaller
760- let em = value(bP.payments[0])
761- let en = value(em.amount)
762- let eo = toBase58String(value(em.assetId))
763- let ep = valueOrErrorMessage(getString(aF(toString(eh))), "Invalid LP address called me.")
764- if ((eo != ep))
762+@Callable(bR)
763+func burn (en) = {
764+ let ej = bR.caller
765+ let ek = bR.originCaller
766+ let eo = value(bR.payments[0])
767+ let ep = value(eo.amount)
768+ let eq = toBase58String(value(eo.assetId))
769+ let er = valueOrErrorMessage(getString(aF(toString(ej))), "Invalid LP address called me.")
770+ if ((eq != er))
765771 then K("Invalid asset passed.")
766- else if ((el != en))
772+ else if ((en != ep))
767773 then K("Invalid amount passed.")
768774 else {
769- let ek = fromBase58String(ep)
770- $Tuple2([Burn(ek, el)], "success")
775+ let em = fromBase58String(er)
776+ $Tuple2([Burn(em, en)], "success")
771777 }
772778 }
773779
774780
775781
776-@Callable(bP)
777-func modifyWeight (ch,eq) = {
778- let dx = if ((toBase58String(bP.caller.bytes) == valueOrElse(getString(this, Y()), "")))
782+@Callable(bR)
783+func modifyWeight (cj,es) = {
784+ let dz = if ((toBase58String(bR.caller.bytes) == valueOrElse(getString(this, Y()), "")))
779785 then true
780- else bQ(bP)
781- if ((dx == dx))
786+ else bS(bR)
787+ if ((dz == dz))
782788 then {
783- let aD = be(aG(ch))
784- let er = ae(aD)
785- let es = ae(g)
786- let et = valueOrElse(getInteger(es), 0)
787- let dJ = valueOrElse(getInteger(er), 0)
788- let eu = eq
789- let bF = split(be(O()), m)
790- let dt = bH(bF)
791- let ev = invoke(dt, "onModifyWeight", [ch, aD], nil)
792- if ((ev == ev))
789+ let aD = bg(aG(cj))
790+ let et = ae(aD)
791+ let eu = ae(g)
792+ let ev = valueOrElse(getInteger(eu), 0)
793+ let dL = valueOrElse(getInteger(et), 0)
794+ let ew = es
795+ let bH = split(bg(O()), m)
796+ let dv = bJ(bH)
797+ let ex = invoke(dv, "onModifyWeight", [cj, aD], nil)
798+ if ((ex == ex))
793799 then {
794- let ew = if ((et == 0))
800+ let ey = if ((ev == 0))
795801 then nil
796- else [IntegerEntry(es, 0)]
797- let ex = ag(aD, 0)
798- let ey = getInteger(ex)
799- let ez = if ((ey == unit))
802+ else [IntegerEntry(eu, 0)]
803+ let ez = ag(aD, 0)
804+ let eA = getInteger(ez)
805+ let eB = if ((eA == unit))
800806 then nil
801- else [DeleteEntry(ex)]
802- (([IntegerEntry(er, eu)] ++ ew) ++ ez)
807+ else [DeleteEntry(ez)]
808+ (([IntegerEntry(et, ew)] ++ ey) ++ eB)
803809 }
804810 else throw("Strict value is not equal to itself.")
805811 }
806812 else throw("Strict value is not equal to itself.")
807813 }
808814
809815
810816
811-@Callable(bP)
812-func modifyWeights (eA,eB,eC,eD) = {
813- let dx = bQ(bP)
814- if ((dx == dx))
817+@Callable(bR)
818+func modifyWeights (eC,eD,eE,eF) = {
819+ let dz = bS(bR)
820+ if ((dz == dz))
815821 then {
816- let eE = ((5 * f) / 100)
817- let eF = ((5 * f) / 100)
818822 let eG = ((5 * f) / 100)
819- let bF = split(be(O()), m)
820- let eH = bH(bF)
821- let eI = bI(bF)
822- let eJ = ae(eA)
823- let eK = ae(eB)
823+ let eH = ((5 * f) / 100)
824+ let eI = ((5 * f) / 100)
825+ let bH = split(bg(O()), m)
826+ let eJ = bJ(bH)
827+ let eK = bK(bH)
824828 let eL = ae(eC)
825829 let eM = ae(eD)
826- let eN = bh(eJ)
827- let eO = bh(eK)
828- let eP = (eN - eG)
829- let eQ = (eO - eG)
830- if ((0 >= eP))
831- then K(("invalid btcWeightNew: " + toString(eP)))
832- else if ((0 >= eQ))
833- then K(("invalid ethWeightNew: " + toString(eQ)))
830+ let eN = ae(eE)
831+ let eO = ae(eF)
832+ let eP = bj(eL)
833+ let eQ = bj(eM)
834+ let eR = (eP - eI)
835+ let eS = (eQ - eI)
836+ if ((0 >= eR))
837+ then K(("invalid btcWeightNew: " + toString(eR)))
838+ else if ((0 >= eS))
839+ then K(("invalid ethWeightNew: " + toString(eS)))
834840 else {
835- let eR = be(aF(eA))
836- let eS = be(aF(eB))
837- let eT = be(aF(eC))
838- let eU = be(aF(eD))
839- let eV = invoke(eH, "onModifyWeight", [eR, eA], nil)
840- if ((eV == eV))
841+ let eT = bg(aF(eC))
842+ let eU = bg(aF(eD))
843+ let eV = bg(aF(eE))
844+ let eW = bg(aF(eF))
845+ let eX = invoke(eJ, "onModifyWeight", [eT, eC], nil)
846+ if ((eX == eX))
841847 then {
842- let eW = invoke(eH, "onModifyWeight", [eS, eB], nil)
843- if ((eW == eW))
848+ let eY = invoke(eJ, "onModifyWeight", [eU, eD], nil)
849+ if ((eY == eY))
844850 then {
845- let eX = invoke(eH, "onModifyWeight", [eT, eC], nil)
846- if ((eX == eX))
851+ let eZ = invoke(eJ, "onModifyWeight", [eV, eE], nil)
852+ if ((eZ == eZ))
847853 then {
848- let eY = invoke(eH, "onModifyWeight", [eU, eD], nil)
849- if ((eY == eY))
850- then [IntegerEntry(eJ, eP), IntegerEntry(eK, eQ), IntegerEntry(eL, eE), IntegerEntry(eM, eF), IntegerEntry(ag(eA, 0), eN), IntegerEntry(ag(eB, 0), eO), IntegerEntry(ag(eC, 0), eE), IntegerEntry(ag(eD, 0), eF)]
854+ let fa = invoke(eJ, "onModifyWeight", [eW, eF], nil)
855+ if ((fa == fa))
856+ then [IntegerEntry(eL, eR), IntegerEntry(eM, eS), IntegerEntry(eN, eG), IntegerEntry(eO, eH), IntegerEntry(ag(eC, 0), eP), IntegerEntry(ag(eD, 0), eQ), IntegerEntry(ag(eE, 0), eG), IntegerEntry(ag(eF, 0), eH)]
851857 else throw("Strict value is not equal to itself.")
852858 }
853859 else throw("Strict value is not equal to itself.")
854860 }
855861 else throw("Strict value is not equal to itself.")
856862 }
857863 else throw("Strict value is not equal to itself.")
858864 }
859865 }
860866 else throw("Strict value is not equal to itself.")
861867 }
862868
863869
864870
865-@Callable(bP)
871+@Callable(bR)
866872 func checkWxEmissionPoolLabel (aI,aJ) = {
867- let eZ = {
868- let bl = getBoolean(aH(aI, aJ))
869- if ($isInstanceOf(bl, "Boolean"))
873+ let fb = {
874+ let bn = getBoolean(aH(aI, aJ))
875+ if ($isInstanceOf(bn, "Boolean"))
870876 then {
871- let df = bl
872- df
877+ let dh = bn
878+ dh
873879 }
874880 else false
875881 }
876- $Tuple2(nil, eZ)
882+ $Tuple2(nil, fb)
877883 }
878884
879885
880886
881-@Callable(bP)
887+@Callable(bR)
882888 func setWxEmissionPoolLabel (aI,aJ) = {
883- let dx = cC(bP)
884- if ((dx == dx))
889+ let dz = cE(bR)
890+ if ((dz == dz))
885891 then $Tuple2([BooleanEntry(aH(aI, aJ), true)], unit)
886892 else throw("Strict value is not equal to itself.")
887893 }
888894
889895
890896
891-@Callable(bP)
897+@Callable(bR)
892898 func deleteWxEmissionPoolLabel (aI,aJ) = {
893- let dx = if ((bP.caller == this))
899+ let dz = if ((bR.caller == this))
894900 then true
895- else cC(bP)
896- if ((dx == dx))
901+ else cE(bR)
902+ if ((dz == dz))
897903 then $Tuple2([DeleteEntry(aH(aI, aJ))], unit)
898904 else throw("Strict value is not equal to itself.")
899905 }
900906
901907
902908
903-@Callable(bP)
904-func onVerificationLoss (aX) = {
905- let dx = if ((toBase58String(bP.caller.bytes) == valueOrElse(getString(this, X()), "")))
909+@Callable(bR)
910+func onVerificationLoss (aR) = {
911+ let dz = if ((toBase58String(bR.caller.bytes) == valueOrElse(getString(this, X()), "")))
906912 then true
907- else bQ(bP)
908- if ((dx == dx))
913+ else bS(bR)
914+ if ((dz == dz))
909915 then {
910- let dE = bJ()
911- let fa = if ((size(dE) > 0))
916+ let dG = bL()
917+ let fc = if ((size(dG) > 0))
912918 then true
913919 else K("invalid price assets")
914- if ((fa == fa))
920+ if ((fc == fc))
915921 then {
916- func fb (fc,fd) = {
917- let cZ = invoke(this, "deleteWxEmissionPoolLabel", [aX, fd], nil)
918- if ((cZ == cZ))
922+ func fd (fe,ff) = {
923+ let db = invoke(this, "deleteWxEmissionPoolLabel", [aR, ff], nil)
924+ if ((db == db))
919925 then unit
920926 else throw("Strict value is not equal to itself.")
921927 }
922928
923- let fe = {
924- let ff = dE
925- let fg = size(ff)
926- let fh = unit
927- func fi (fj,fk) = if ((fk >= fg))
928- then fj
929- else fb(fj, ff[fk])
929+ let fg = {
930+ let fh = dG
931+ let fi = size(fh)
932+ let fj = unit
933+ func fk (fl,fm) = if ((fm >= fi))
934+ then fl
935+ else fd(fl, fh[fm])
930936
931- func fl (fj,fk) = if ((fk >= fg))
932- then fj
937+ func fn (fl,fm) = if ((fm >= fi))
938+ then fl
933939 else throw("List size exceeds 13")
934940
935- fl(fi(fi(fi(fi(fi(fi(fi(fi(fi(fi(fi(fi(fi(fh, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
941+ fn(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fj, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
936942 }
937- if ((fe == fe))
943+ if ((fg == fg))
938944 then $Tuple2(nil, unit)
939945 else throw("Strict value is not equal to itself.")
940946 }
941947 else throw("Strict value is not equal to itself.")
942948 }
943949 else throw("Strict value is not equal to itself.")
944950 }
945951
946952
947953
948-@Callable(bP)
954+@Callable(bR)
949955 func isPoolOneTokenOperationsDisabledREADONLY (af) = {
950- let ee = ct(af)
951- let aq = $Tuple2(parseIntValue(ee[C]), parseIntValue(ee[D]))
952- let fm = valueOrElse(getBoolean(ap(aq)), false)
953- let fn = valueOrElse(getBoolean(as()), false)
954- $Tuple2(nil, if (fn)
955- then true
956- else fm)
957- }
958-
959-
960-
961-@Callable(bP)
962-func isPoolSwapDisabledREADONLY (af) = {
963- let ee = ct(af)
964- let aq = $Tuple2(parseIntValue(ee[C]), parseIntValue(ee[D]))
965- let fo = valueOrElse(getBoolean(at(aq)), false)
966- let fp = valueOrElse(getBoolean(av()), false)
956+ let eg = cv(af)
957+ let aq = $Tuple2(parseIntValue(eg[C]), parseIntValue(eg[D]))
958+ let fo = valueOrElse(getBoolean(ap(aq)), false)
959+ let fp = valueOrElse(getBoolean(as()), false)
967960 $Tuple2(nil, if (fp)
968961 then true
969962 else fo)
970963 }
971964
972965
973966
974-@Callable(bP)
975-func getInFeeREADONLY (af) = {
976- let fq = cF(aK(af), aL(), 0)
977- $Tuple2(nil, fq)
967+@Callable(bR)
968+func isPoolSwapDisabledREADONLY (af) = {
969+ let eg = cv(af)
970+ let aq = $Tuple2(parseIntValue(eg[C]), parseIntValue(eg[D]))
971+ let fq = valueOrElse(getBoolean(at(aq)), false)
972+ let fr = valueOrElse(getBoolean(av()), false)
973+ $Tuple2(nil, if (fr)
974+ then true
975+ else fq)
978976 }
979977
980978
981979
982-@Callable(bP)
983-func getOutFeeREADONLY (af) = {
984- let fq = cF(aN(af), aO(), fraction(10, b, 10000))
985- $Tuple2(nil, fq)
986- }
987-
988-
989-
990-@Callable(bP)
991-func getSwapFeeREADONLY (fr) = {
992- let fs = {
993- let bl = getString(this, aM(fr))
994- if ($isInstanceOf(bl, "String"))
995- then {
996- let bm = bl
997- let ft = split(bm, m)
998- let fu = parseIntValue(ft[1])
999- let fv = parseIntValue(ft[2])
1000- $Tuple2(fu, fv)
1001- }
1002- else if ($isInstanceOf(bl, "Unit"))
1003- then unit
1004- else throw("Match error")
1005- }
980+@Callable(bR)
981+func getInFeeREADONLY (af) = {
982+ let fs = cH(aK(af), aL(), 0)
1006983 $Tuple2(nil, fs)
1007984 }
1008985
1009986
1010987
1011-@Callable(bP)
1012-func poolInfoREADONLY (fw,fx) = {
1013- let fy = getInteger(this, ak(fw))
1014- let fz = getInteger(this, ak(fx))
1015- let fA = getString(this, aE(value(fy), value(fz)))
1016- let fB = getString(this, aF(value(fA)))
1017- let dR = if (if (isDefined(fy))
1018- then isDefined(fz)
1019- else false)
1020- then isDefined(fA)
1021- else false
1022- let fC = if (dR)
1023- then $Tuple2(addressFromStringValue(value(fA)), bi(value(fB)))
1024- else unit
1025- $Tuple2(nil, fC)
988+@Callable(bR)
989+func getOutFeeREADONLY (af) = {
990+ let fs = cH(aN(af), aO(), fraction(10, b, 10000))
991+ $Tuple2(nil, fs)
1026992 }
1027993
1028994
1029995
1030-@Callable(bP)
1031-func getPoolStatusREADONLY (af) = {
1032- let cu = split(be(aC(af)), m)
1033- let an = cu[1]
1034- let ao = cu[2]
1035- let cL = split(be(am(an, ao)), m)
1036- $Tuple2(nil, parseIntValue(cL[w]))
996+@Callable(bR)
997+func getSwapFeeREADONLY (ft) = {
998+ let fu = {
999+ let bn = getString(this, aM(ft))
1000+ if ($isInstanceOf(bn, "String"))
1001+ then {
1002+ let bo = bn
1003+ let fv = split(bo, m)
1004+ let fw = parseIntValue(fv[1])
1005+ let fx = parseIntValue(fv[2])
1006+ $Tuple2(fw, fx)
1007+ }
1008+ else if ($isInstanceOf(bn, "Unit"))
1009+ then unit
1010+ else throw("Match error")
1011+ }
1012+ $Tuple2(nil, fu)
10371013 }
10381014
10391015
10401016
1041-@Callable(bP)
1042-func getPoolConfigREADONLY (af) = {
1043- let cu = split(be(aC(af)), m)
1044- let an = cu[1]
1045- let ao = cu[2]
1046- let cL = split(be(am(an, ao)), m)
1047- $Tuple2(nil, cL)
1017+@Callable(bR)
1018+func poolInfoREADONLY (fy,fz) = {
1019+ let fA = getInteger(this, ak(fy))
1020+ let fB = getInteger(this, ak(fz))
1021+ let fC = getString(this, aE(value(fA), value(fB)))
1022+ let fD = getString(this, aF(value(fC)))
1023+ let dT = if (if (isDefined(fA))
1024+ then isDefined(fB)
1025+ else false)
1026+ then isDefined(fC)
1027+ else false
1028+ let fE = if (dT)
1029+ then $Tuple2(addressFromStringValue(value(fC)), bk(value(fD)))
1030+ else unit
1031+ $Tuple2(nil, fE)
10481032 }
10491033
10501034
10511035
1052-@Callable(bP)
1053-func getPoolConfigByLpAssetIdREADONLY (dW) = {
1054- let cu = split(be(aw(dW)), m)
1055- let an = cu[1]
1056- let ao = cu[2]
1057- let cL = split(be(am(an, ao)), m)
1058- $Tuple2(nil, cL)
1036+@Callable(bR)
1037+func getPoolStatusREADONLY (af) = {
1038+ let cw = split(bg(aC(af)), m)
1039+ let an = cw[1]
1040+ let ao = cw[2]
1041+ let cN = split(bg(am(an, ao)), m)
1042+ $Tuple2(nil, parseIntValue(cN[w]))
10591043 }
10601044
10611045
10621046
1063-@Callable(bP)
1064-func poolExistsREADONLY (aI,aJ) = $Tuple2(nil, cI(aI, aJ))
1065-
1066-
1067-
1068-@Callable(bP)
1069-func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aP(af)), false))
1070-
1071-
1072-
1073-@Callable(bP)
1074-func getChangeAmpConfigREADONLY (af) = {
1075- let fD = getIntegerValue(aQ(af))
1076- let fE = getIntegerValue(aR(af))
1077- let fF = getIntegerValue(aS(af))
1078- $Tuple2(nil, [fD, fE, fF])
1047+@Callable(bR)
1048+func getPoolConfigREADONLY (af) = {
1049+ let cw = split(bg(aC(af)), m)
1050+ let an = cw[1]
1051+ let ao = cw[2]
1052+ let cN = split(bg(am(an, ao)), m)
1053+ $Tuple2(nil, cN)
10791054 }
10801055
10811056
10821057
1083-@Callable(bP)
1084-func getPoolWeightREADONLY (ch) = {
1085- let af = be(aG(ch))
1086- let fG = valueOrElse(getInteger(ae(af)), 0)
1087- $Tuple2(nil, fG)
1058+@Callable(bR)
1059+func getPoolConfigByLpAssetIdREADONLY (dY) = {
1060+ let cw = split(bg(aw(dY)), m)
1061+ let an = cw[1]
1062+ let ao = cw[2]
1063+ let cN = split(bg(am(an, ao)), m)
1064+ $Tuple2(nil, cN)
10881065 }
10891066
10901067
10911068
1092-@Callable(bP)
1069+@Callable(bR)
1070+func poolExistsREADONLY (aI,aJ) = $Tuple2(nil, cK(aI, aJ))
1071+
1072+
1073+
1074+@Callable(bR)
1075+func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aS(af)), false))
1076+
1077+
1078+
1079+@Callable(bR)
1080+func getChangeAmpConfigREADONLY (af) = {
1081+ let fF = getIntegerValue(aT(af))
1082+ let fG = getIntegerValue(aU(af))
1083+ let fH = getIntegerValue(aV(af))
1084+ $Tuple2(nil, [fF, fG, fH])
1085+ }
1086+
1087+
1088+
1089+@Callable(bR)
1090+func getPoolWeightREADONLY (cj) = {
1091+ let af = bg(aG(cj))
1092+ let fI = valueOrElse(getInteger(ae(af)), 0)
1093+ $Tuple2(nil, fI)
1094+ }
1095+
1096+
1097+
1098+@Callable(bR)
10931099 func deletePool (aD) = {
1094- let ee = ct(aD)
1095- let dx = if ((toString(bP.caller) == cP(aD)))
1096- then if (cW(aD))
1100+ let eg = cv(aD)
1101+ let dz = if ((toString(bR.caller) == cR(aD)))
1102+ then if (cY(aD))
10971103 then true
10981104 else K("Pool is not empty")
1099- else bQ(bP)
1100- if ((dx == dx))
1105+ else bS(bR)
1106+ if ((dz == dz))
11011107 then {
1102- let fH = if ((valueOrElse(getInteger(ae(aD)), 0) == 0))
1108+ let fJ = if ((valueOrElse(getInteger(ae(aD)), 0) == 0))
11031109 then true
11041110 else K("Pool weight is not Zero")
1105- if ((fH == fH))
1111+ if ((fJ == fJ))
11061112 then {
1107- let fI = if ((ee[w] == toString(r)))
1113+ let fK = if ((eg[w] == toString(r)))
11081114 then true
11091115 else K("Pool must be SHUTDOWN (4)")
1110- if ((fI == fI))
1116+ if ((fK == fK))
11111117 then {
1112- let fJ = cO(aD)
1113- let aI = fJ._1
1114- let aJ = fJ._2
1115- let ch = fJ._3
1116- let an = fJ._4
1117- let ao = fJ._5
1118- let cR = addressFromStringValue(getStringValue(Z()))
1119- let fK = invoke(cR, "deletePool", [aI, aJ], nil)
1120- if ((fK == fK))
1118+ let fL = cQ(aD)
1119+ let aI = fL._1
1120+ let aJ = fL._2
1121+ let cj = fL._3
1122+ let an = fL._4
1123+ let ao = fL._5
1124+ let cT = addressFromStringValue(getStringValue(Z()))
1125+ let fM = invoke(cT, "deletePool", [aI, aJ], nil)
1126+ if ((fM == fM))
11211127 then {
1122- let dD = addressFromStringValue(getStringValue(Y()))
1123- let fL = invoke(dD, "deletePool", [aI, aJ], nil)
1124- if ((fL == fL))
1128+ let dF = addressFromStringValue(getStringValue(Y()))
1129+ let fN = invoke(dF, "deletePool", [aI, aJ], nil)
1130+ if ((fN == fN))
11251131 then {
1126- let dC = addressFromStringValue(getStringValue(X()))
1127- let fM = invoke(dC, "deletePool", [aI, aJ], nil)
1128- if ((fM == fM))
1129- then [DeleteEntry(aF(aD)), DeleteEntry(aC(aD)), DeleteEntry(ay(toString(an), toString(ao))), DeleteEntry(aE(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(aw(ch)), DeleteEntry(aG(ch)), DeleteEntry(aH(aI, aJ)), DeleteEntry(ae(aD)), DeleteEntry(aB(aD)), DeleteEntry(aK(aD)), DeleteEntry(aN(aD)), DeleteEntry(aP(aD)), DeleteEntry(aQ(aD)), DeleteEntry(aR(aD)), DeleteEntry(aS(aD))]
1132+ let dE = addressFromStringValue(getStringValue(X()))
1133+ let fO = invoke(dE, "deletePool", [aI, aJ], nil)
1134+ if ((fO == fO))
1135+ then [DeleteEntry(aF(aD)), DeleteEntry(aC(aD)), DeleteEntry(ay(toString(an), toString(ao))), DeleteEntry(aE(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(aw(cj)), DeleteEntry(aG(cj)), DeleteEntry(aH(aI, aJ)), DeleteEntry(ae(aD)), DeleteEntry(aB(aD)), DeleteEntry(aK(aD)), DeleteEntry(aN(aD)), DeleteEntry(aS(aD)), DeleteEntry(aT(aD)), DeleteEntry(aU(aD)), DeleteEntry(aV(aD))]
11301136 else throw("Strict value is not equal to itself.")
11311137 }
11321138 else throw("Strict value is not equal to itself.")
11331139 }
11341140 else throw("Strict value is not equal to itself.")
11351141 }
11361142 else throw("Strict value is not equal to itself.")
11371143 }
11381144 else throw("Strict value is not equal to itself.")
11391145 }
11401146 else throw("Strict value is not equal to itself.")
11411147 }
11421148
11431149
11441150
1145-@Callable(bP)
1146-func getPrice (fr) = {
1147- let af = addressFromStringValue(fr)
1148- let cL = ct(fr)
1149- let ch = fromBase58String(cL[x])
1150- let fN = cL[y]
1151- let aJ = cL[z]
1152- let fO = value(assetInfo(ch)).quantity
1153- let fP = {
1154- let fQ = invoke(af, "getAccBalanceWrapperREADONLY", [fN], nil)
1155- if ($isInstanceOf(fQ, "Int"))
1156- then fQ
1157- else throw(($getType(fQ) + " couldn't be cast to Int"))
1151+@Callable(bR)
1152+func getPrice (ft) = {
1153+ let af = addressFromStringValue(ft)
1154+ let cN = cv(ft)
1155+ let cj = fromBase58String(cN[x])
1156+ let fP = cN[y]
1157+ let aJ = cN[z]
1158+ let fQ = value(assetInfo(cj)).quantity
1159+ let fR = {
1160+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [fP], nil)
1161+ if ($isInstanceOf(fS, "Int"))
1162+ then fS
1163+ else throw(($getType(fS) + " couldn't be cast to Int"))
11581164 }
1159- let fR = {
1160- let fQ = invoke(af, "getAccBalanceWrapperREADONLY", [aJ], nil)
1161- if ($isInstanceOf(fQ, "Int"))
1162- then fQ
1163- else throw(($getType(fQ) + " couldn't be cast to Int"))
1165+ let fT = {
1166+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [aJ], nil)
1167+ if ($isInstanceOf(fS, "Int"))
1168+ then fS
1169+ else throw(($getType(fS) + " couldn't be cast to Int"))
11641170 }
1165- let fS = if ((fO == 0))
1171+ let fU = if ((fQ == 0))
11661172 then 0
11671173 else {
1168- let fQ = ({
1169- let fQ = invoke(af, "calcPricesWrapperREADONLY", [fP, fR, fO], nil)
1170- if ($isInstanceOf(fQ, "List[Any]"))
1171- then fQ
1172- else throw(($getType(fQ) + " couldn't be cast to List[Any]"))
1174+ let fS = ({
1175+ let fS = invoke(af, "calcPricesWrapperREADONLY", [fR, fT, fQ], nil)
1176+ if ($isInstanceOf(fS, "List[Any]"))
1177+ then fS
1178+ else throw(($getType(fS) + " couldn't be cast to List[Any]"))
11731179 })[0]
1174- if ($isInstanceOf(fQ, "String"))
1175- then fQ
1176- else throw(($getType(fQ) + " couldn't be cast to String"))
1180+ if ($isInstanceOf(fS, "String"))
1181+ then fS
1182+ else throw(($getType(fS) + " couldn't be cast to String"))
11771183 }
1178- $Tuple2(nil, fS)
1184+ $Tuple2(nil, fU)
11791185 }
11801186
11811187
1182-@Verifier(fT)
1183-func fU () = {
1184- let fV = {
1185- let bl = bK()
1186- if ($isInstanceOf(bl, "ByteVector"))
1188+
1189+@Callable(bR)
1190+func checkBalance (dY) = {
1191+ let ft = bg(aG(dY))
1192+ let af = addressFromStringValue(ft)
1193+ let cN = cv(ft)
1194+ let fy = cN[y]
1195+ let fz = cN[z]
1196+ let fV = getIntegerValue(this, aP())
1197+ let fW = valueOrElse(getInteger(this, aQ(fy)), fV)
1198+ let fX = valueOrElse(getInteger(this, aQ(fz)), fV)
1199+ let fY = {
1200+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [fy], nil)
1201+ if ($isInstanceOf(fS, "Int"))
1202+ then fS
1203+ else throw(($getType(fS) + " couldn't be cast to Int"))
1204+ }
1205+ let fZ = {
1206+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [fz], nil)
1207+ if ($isInstanceOf(fS, "Int"))
1208+ then fS
1209+ else throw(($getType(fS) + " couldn't be cast to Int"))
1210+ }
1211+ let ga = (fY >= (fW / 2))
1212+ let gb = (fZ >= (fX / 2))
1213+ let gc = if (ga)
1214+ then gb
1215+ else false
1216+ $Tuple2(nil, gc)
1217+ }
1218+
1219+
1220+@Verifier(gd)
1221+func ge () = {
1222+ let gf = {
1223+ let bn = bM()
1224+ if ($isInstanceOf(bn, "ByteVector"))
11871225 then {
1188- let bR = bl
1189- bR
1226+ let bT = bn
1227+ bT
11901228 }
1191- else if ($isInstanceOf(bl, "Unit"))
1192- then fT.senderPublicKey
1229+ else if ($isInstanceOf(bn, "Unit"))
1230+ then gd.senderPublicKey
11931231 else throw("Match error")
11941232 }
1195- sigVerify(fT.bodyBytes, fT.proofs[0], fV)
1233+ sigVerify(gd.bodyBytes, gd.proofs[0], gf)
11961234 }
11971235

github/deemru/w8io/169f3d6 
347.35 ms