tx · 5Lj4xDo3LTXdfCyCUJVTgtzYjcj7PrPBnHzuU7tW4oKE

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.03100000 Waves

2023.12.29 12:35 [2907878] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "5Lj4xDo3LTXdfCyCUJVTgtzYjcj7PrPBnHzuU7tW4oKE", "fee": 3100000, "feeAssetId": null, "timestamp": 1703842501751, "version": 2, "chainId": 84, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "4h5idpuxQqxPWmNs5qsMTuzMSaZBpSnrDnBbDALJTnKRKTwBRd5CNaYLBq47aecL7iGdTj8PJdiCNNiSvCDf9HFx" ], "script": "base64:BgLuMQgCEgASBAoCCAgSBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEYEgoKCAgICAgIAQgIEgQKAggBEgMKAQESAwoBARIECgIIARIGCgQICAgIEgQKAggIEgQKAggIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIIgZTQ0FMRTgiBU1VTFQ4IgZNVUxUMTIiB1NDQUxFMTgiBk1VTFQxOCIOUE9PTFdFSUdIVE1VTFQiDkdXWHZpcnR1YWxQT09MIgxsYWJlbFBvb2xzTHAiDWRlZmF1bHRTcHJlYWQiC3dhdmVzU3RyaW5nIhBjb250cmFjdEZpbGVuYW1lIhFkZWNpbWFsc011bHRQcmljZSIDU0VQIgVFTVBUWSIKUG9vbEFjdGl2ZSIPUG9vbFB1dERpc2FibGVkIhNQb29sTWF0Y2hlckRpc2FibGVkIgxQb29sU2h1dGRvd24iEmlkeEludGVybmFsQXNzZXRJZCIPaWR4UmVzdXRBY3Rpb25zIiBpZHhJZkFzc2V0SWRDYWxjdWxhdGlvblBlcmZvcm1lZCIOaWR4UG9vbEFkZHJlc3MiDWlkeFBvb2xTdGF0dXMiEGlkeFBvb2xMUEFzc2V0SWQiDWlkeEFtdEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIOaWR4QW10QXNzZXREY20iEGlkeFByaWNlQXNzZXREY20iDmlkeElBbXRBc3NldElkIhBpZHhJUHJpY2VBc3NldElkIg1pZHhMUEFzc2V0RGNtIgtpZHhQb29sVHlwZSITcG9vbExhYmVsV3hFbWlzc2lvbiIPdmFsaWRQb29sTGFiZWxzIgd3cmFwRXJyIgNtc2ciCHRocm93RXJyIhZrZXlBbGxvd2VkTHBTY3JpcHRIYXNoIhxrZXlBbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoIgxzd2FwQ29udHJhY3QiEGtleUZhY3RvcnlDb25maWciD2tleUxwVG9rZW5zTGlzdCIRa2V5UG9vbFNjcmlwdEhhc2giDWtleU1hdGNoZXJQdWIiGGtleUxlZ2FjeUZhY3RvcnlDb250cmFjdCIOa2V5TGVnYWN5UG9vbHMiE2tleU1hbmFnZXJQdWJsaWNLZXkiFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MiD2tleUFkbWluUHViS2V5cyIWa2V5QXNzZXRzU3RvcmVDb250cmFjdCIZa2V5Vm90aW5nRW1pc3Npb25Db250cmFjdCIUa2V5VXNlclBvb2xzQ29udHJhY3QiDmtleVByaWNlQXNzZXRzIhBrZXlQcmljZURlY2ltYWxzIhNrZXlBbGxQb29sc1NodXRkb3duIhZrZXlOZXh0SW50ZXJuYWxBc3NldElkIg9rZXlQb29sVG9XZWlnaHQiC3Bvb2xBZGRyZXNzIhZrZXlQb29sVG9XZWlnaHRIaXN0b3J5IgNudW0iH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQiEWludGVybmFsQmFzZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiDWtleVBvb2xDb25maWciE2Ftb3VudEFzc2V0SW50ZXJuYWwiEnByaWNlQXNzZXRJbnRlcm5hbCIha2V5UG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg5hc3NldHNJbnRlcm5hbCILJHQwMzg3ODM5NDAiJWtleUFsbFBvb2xzT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiE2tleVBvb2xTd2FwRGlzYWJsZWQiCyR0MDQyMzI0Mjk0IhdrZXlBbGxQb29sc1N3YXBEaXNhYmxlZCIda2V5TWFwcGluZ0xwQXNzZXRUb1Bvb2xBc3NldHMiCmxwQXNzZXRTdHIiHWtleU1hcHBpbmdQb29sQXNzZXRzVG9McGFzc2V0IhhpbnRlcm5hbEFtb3VudEFzc2V0SWRTdHIiF2ludGVybmFsUHJpY2VBc3NldElkU3RyIg1rZXlQb29sU3ByZWFkIilrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cyITcG9vbENvbnRyYWN0QWRkcmVzcyIpa2V5TWFwcGluZ1Bvb2xBc3NldHNUb1Bvb2xDb250cmFjdEFkZHJlc3MiH2tleU1hcHBpbmdQb29sQ29udHJhY3RUb0xQQXNzZXQiKmtleU1hcHBpbmdQb29sTFBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcyINa2V5V3hFbWlzc2lvbiINYW1vdW50QXNzZXRJZCIMcHJpY2VBc3NldElkIghrZXlJbkZlZSIPa2V5SW5GZWVEZWZhdWx0IgprZXlTd2FwRmVlIglrZXlPdXRGZWUiEGtleU91dEZlZURlZmF1bHQiHGtleVBvb2xBc3NldERlZmF1bHRNaW5BbW91bnQiFmtleVBvb2xBc3NldHNNaW5BbW91bnQiB2Fzc2V0SWQiFmtleVNraXBPcmRlclZhbGlkYXRpb24iEWtleUNoYW5nZUFtcERlbGF5IhFrZXlDaGFuZ2VBbXBEZWx0YSISa2V5Q2hhbmdlQW1wVGFyZ2V0IhVrZXlTV2F2ZXNQcm94eUFkZHJlc3MiEGtleVNXYXZlc0Fzc2V0SWQiF2tleVN0YWtpbmdQcm9maXRBZGRyZXNzIg5rZXlMZWFzZWRSYXRpbyIVa2V5TGVhc2VkUmF0aW9EZWZhdWx0IhdrZXlMZWFzZWRSYXRpb1RvbGVyYW5jZSINa2V5TWluQmFsYW5jZSIUa2V5TWluQmFsYW5jZURlZmF1bHQiFWtleUFkZHJlc3NXaGl0ZWxpc3RlZCIHYWRkcmVzcyIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiEGdldEJvb2xlYW5PckZhaWwiDGdldEludE9yRmFpbCIMcGFyc2VBc3NldElkIgVpbnB1dCIcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcyIHJG1hdGNoMCIBcyIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiB2Zyb21YMTgiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0IhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIUSWR4RmFjdG9yeUNmZ0Rhb0RhcHAiGklkeEZhY3RvcnlDZmdNYXJrZXRpbmdEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCIWSWR4RmFjdG9yeUNmZ0JpcmRzRGFwcCIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgpmYWN0b3J5Q2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIg5nZXRQcmljZUFzc2V0cyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCITbWFuYWdlclZhdWx0QWRkcmVzcyIVcGVybWlzc2lvbkRlbmllZEVycm9yIgl0ZXN0RXJyb3IiCG11c3RUaGlzIgFpIgttdXN0TWFuYWdlciICcGsiEGRhdGFGYWN0b3J5Q2ZnVjMiDnN0YWtpbmdBZGRyZXNzIg9ib29zdGluZ0FkZHJlc3MiC2lkb0NvbnRyYWN0Igx0ZWFtQ29udHJhY3QiEGVtaXNzaW9uQ29udHJhY3QiDHJlc3RDb250cmFjdCIQc2xpcHBhZ2VDb250cmFjdCILZGFvQ29udHJhY3QiEW1hcmtldGluZ0NvbnRyYWN0IhJnd3hSZXdhcmRzQ29udHJhY3QiDWJpcmRzQ29udHJhY3QiDmRhdGFGYWN0b3J5Q2ZnIgtkYXRhUG9vbENmZyIKcG9vbFN0YXR1cyIJbHBBc3NldElkIg5hbW91bnRBc3NldFN0ciINcHJpY2VBc3NldFN0ciITYW1vdW50QXNzZXREZWNpbWFscyIScHJpY2VBc3NldERlY2ltYWxzIhVhbW91bnRBc3NldEludGVybmFsSWQiFHByaWNlQXNzZXRJbnRlcm5hbElkIg9scEFzc2V0RGVjaW1hbHMiCHBvb2xUeXBlIhVkYXRhTWFwcGluZ1Bvb2xBc3NldHMiFmludGVybmFsQW1vdW50QXNzZXRTdHIiFWludGVybmFsUHJpY2VBc3NldFN0ciINZ2V0UG9vbENvbmZpZyIKcG9vbEFzc2V0cyIaZ2V0SW50ZXJuYWxBc3NldElkT3JDcmVhdGUiCmFzc2V0SWRTdHIiC2luY3JlbWVudG9yIg9pbnRlcm5hbEFzc2V0SWQiGGN1cnJlbnRJbmRleE9mSW50ZXJuYWxJZCIGcmVzdWx0IhJuZXdJbnRlcm5hbEFzc2V0SWQiCW11c3RBZG1pbiIIYWRtaW5QS3MiCWlzTWFuYWdlciIWaW50T3JEZWZhdWx0T3JGYWxsYmFjayIKa2V5RGVmYXVsdCINdmFsdWVGYWxsYmFjayIScG9vbEV4aXN0c0ludGVybmFsIgRhbUFzIgRwckFzIgNjZmciCmNmZ1JldmVyc2UiBmV4aXN0cyIcZ2V0QXNzZXRzRGF0YUZyb21Qb29sQWRkcmVzcyIOZ2V0UG9vbENyZWF0b3IiDSR0MDE2MTAzMTYyNDAiEXVzZXJQb29sc0NvbnRyYWN0Igtwb29sQ3JlYXRvciIRZ2V0QWRkcmVzc0JhbGFuY2UiDWFkZHJlc3NTdHJpbmciDWFzc2V0SWRTdHJpbmciC2lzUG9vbEVtcHR5Ig0kdDAxNjgxNTE2OTUyIg0kdDAxNzI2NzE3NTcxIgFyIgckbWF0Y2gxIgJyZCIKaXNMZWFzYWJsZSILbGVhc2VkUmF0aW8iCm1pbkJhbGFuY2UiAWIiAmJkIg0kdDAxNzgzNzE4MDYxIgxwcm94eUFkZHJlc3MiDHByb3h5QXNzZXRJZCIMcHJveHlSYXRlTXVsIhRzdGFraW5nUHJvZml0QWRkcmVzcyIGYXNzZXQxIgZhc3NldDIiCWFzc2V0TnVtMSIJYXNzZXROdW0yIgJlZSIDcmVzIgJscCIPc3Rha2luZ0NvbnRyYWN0IhBib29zdGluZ0NvbnRyYWN0IhBzbHBpcGFnZUNvbnRyYWN0Ig1wcmljZURlY2ltYWxzIgtjaGVja0NhbGxlciIQbWF0aGNoZXJQdWI1OFN0ciIKbWF0aGNlclB1YiIVbGVnYWN5RmFjdG9yeUNvbnRyYWN0IgtsZWdhY3lQb29scyITYXNzZXRzU3RvcmVDb250cmFjdCIWdm90aW5nRW1pc3Npb25Db250cmFjdCILcHJpY2VBc3NldHMiBWNoZWtzIgxhZG1pblB1YktleXMiC2xwQXNzZXROYW1lIgxscEFzc2V0RGVzY3IiCnBvb2xXZWlnaHQiBGxvZ28iF2ludGVybmFsQW1vdW50QXNzZXREYXRhIhVpbnRlcm5hbEFtb3VudEFzc2V0SWQiFmludGVybmFsUHJpY2VBc3NldERhdGEiFGludGVybmFsUHJpY2VBc3NldElkIhVwb29sQWNjb3VudFNjcmlwdEhhc2giHGV0aGFsb25Qb29sQWNjb3VudFNjcmlwdEhhc2giCnBvb2xFeGlzdHMiD3Bvb2xDb25maWdWYWx1ZSIUYW1vdW50QXNzZXRzRGVjaW1hbHMiE3ByaWNlQXNzZXRzRGVjaW1hbHMiEmxwQXNzZXRJc3N1ZUFjdGlvbiIMbHBBc3NldElkU3RyIhhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQiGGNyZWF0ZU9yVXBkYXRlTHBBc3NldEludiISYWRkUG9vbHNMcExhYmVsSW52IgpzZXRMb2dvSW52IhBhZGRBc3NldHNMaW5rSW52IhtpbmNyZWFzZUFzc2V0UG9vbHNOdW1iZXJJbnYiCW5ld1N0YXR1cyIKcG9vbENvbmZpZyIKbHBBc3NldERjbSIMYW1vdW50VG9FbWl0IgZjYWxsZXIiDG9yaWdpbkNhbGxlciIQbHBBc3NldFJlcXVlc3RlZCIHbHBBc3NldCIMYW1vdW50VG9CdXJuIgdwYXltZW50Ig1wYXltZW50QW1vdW50Ig9pbkFtb3VudEFzc2V0SWQiGmxwQXNzZXRSZXF1ZXN0ZWRGb3JCdXJuaW5nIgVzaGFyZSINcG9vbFdlaWdodEtleSIMZ3d4V2VpZ2h0S2V5Iglnd3hXZWlnaHQiDXBvb2xXZWlnaHROZXciEW9uTW9kaWZ5V2VpZ2h0SW52IhVnd3hWaXJ0dWFsUG9vbEFjdGlvbnMiFHBvb2xXZWlnaHRIaXN0b3J5S2V5Ihdwb29sV2VpZ2h0SGlzdG9yeU9yVW5pdCIYcG9vbFdlaWdodEhpc3RvcnlBY3Rpb25zIg5idGNQb29sQWRkcmVzcyIOZXRoUG9vbEFkZHJlc3MiEWV0aEJ0Y1Bvb2xBZGRyZXNzIhN1c2RjVXNkdFBvb2xBZGRyZXNzIg9ldGhCdGNXZWlnaHROZXciEXVzZGNVc2R0V2VpZ2h0TmV3Ig93ZWlnaHREZWNyZW1lbnQiC3N0YWtpbmdEYXBwIg1nd3hSZXdhcmREYXBwIgxidGNXZWlnaHRLRVkiDGV0aFdlaWdodEtFWSIPZXRoQnRjV2VpZ2h0S0VZIhF1c2RjVXNkdFdlaWdodEtFWSIJYnRjV2VpZ2h0IglldGhXZWlnaHQiDGJ0Y1dlaWdodE5ldyIMZXRoV2VpZ2h0TmV3Ig9idGNMcEFzc2V0SWRTdHIiD2V0aExwQXNzZXRJZFN0ciISZXRoQnRjTHBBc3NldElkU3RyIhR1c2RjVXNkdExwQXNzZXRJZFN0ciIRb25Nb2RpZnlXZWlnaHRCdGMiEW9uTW9kaWZ5V2VpZ2h0RXRoIhRvbk1vZGlmeVdlaWdodEV0aEJ0YyIWb25Nb2RpZnlXZWlnaHRVc2RjVXNkdCIJaGF2ZUxhYmVsIhRjaGVja1ByaWNlQXNzZXRzU2l6ZSICY2IiA2FjYyIKcHJpY2VBc3NldCIHYWN0aW9ucyICJGwiAiRzIgUkYWNjMCIFJGYwXzEiAiRhIgIkaSIFJGYwXzIiHnBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIiYWxsUG9vbHNPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIQcG9vbFN3YXBEaXNhYmxlZCIUYWxsUG9vbHNTd2FwRGlzYWJsZWQiA2ZlZSIOcG9vbEFkZHJlc3NTdHIiCWZlZU9wdGlvbiIFcGFydHMiB3Bvb2xGZWUiC3Byb3RvY29sRmVlIhBhbW91bnRBc3NldElkU3RyIg9wcmljZUFzc2V0SWRTdHIiG2Ftb3VudEFzc2V0SW50ZXJuYWxJZE9wdGlvbiIacHJpY2VBc3NldEludGVybmFsSWRPcHRpb24iGXBvb2xDb250cmFjdEFkZHJlc3NPcHRpb24iD2xwQXNzZXRJZE9wdGlvbiIIcG9vbEluZm8iBWRlbGF5IgVkZWx0YSIGdGFyZ2V0IgZ3ZWlnaHQiC2NoZWNrV2VpZ2h0IgtjaGVja1N0YXR1cyINJHQwNDA5MTY0MTA1MyIPdXNlclBvb2xzSW52b2tlIhR2b3RpbmdFbWlzc2lvbkludm9rZSIRYXNzZXRzU3RvcmVJbnZva2UiCmFtdEFzc2V0SWQiDXBvb2xMcEJhbGFuY2UiEmFjY0FtdEFzc2V0QmFsYW5jZSIBQCIUYWNjUHJpY2VBc3NldEJhbGFuY2UiBXByaWNlIhVhc3NldE1pbkFtb3VudERlZmF1bHQiFGFtb3VudEFzc2V0TWluQW1vdW50IhNwcmljZUFzc2V0TWluQW1vdW50IhJhbW91bnRBc3NldEJhbGFuY2UiEXByaWNlQXNzZXRCYWxhbmNlIhZhbW91bnRBc3NldEJhbGFuY2VJc09rIhVwcmljZUFzc2V0QmFsYW5jZUlzT2siC2JhbGFuY2VJc09rIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXmFAQABYQAIAAFiAIDC1y8AAWMAgKCUpY0dAAFkABIAAWUJALYCAQCAgJC7utat8A0AAWYFAWIAAWcCDkdXWHZpcnR1YWxQT09MAAFoAghQT09MU19MUAABaQCAiXoAAWoCBVdBVkVTAAFrAg9mYWN0b3J5X3YyLnJpZGUAAWwJAGgCCQBoAgBkAOgHAOgHAAFtAgJfXwABbgIAAAFvAAEAAXAAAgABcQADAAFyAAQAAXMAAQABdAACAAF1AAMAAXYAAQABdwACAAF4AAMAAXkABAABegAFAAFBAAYAAUIABwABQwAIAAFEAAkAAUUACgABRgALAAFHAgtXWF9FTUlTU0lPTgABSAkAzAgCBQFHBQNuaWwBAUkBAUoJALkJAgkAzAgCBQFrCQDMCAICAjogCQDMCAIFAUoFA25pbAIAAQFLAQFKCQACAQkBAUkBBQFKAQFMAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gBAU0AAh0lc19fYWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAEBTgACECVzX19zd2FwQ29udHJhY3QBAU8AAhElc19fZmFjdG9yeUNvbmZpZwEBUAACECVzX19scFRva2Vuc0xpc3QBAVEAAhYlcyVzX19wb29sX19zY3JpcHRIYXNoAQFSAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQFTAAIZJXNfX2xlZ2FjeUZhY3RvcnlDb250cmFjdAEBVAACDyVzX19sZWdhY3lQb29scwEBVQACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFWAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBAVcAAhAlc19fYWRtaW5QdWJLZXlzAQFYAAIXJXNfX2Fzc2V0c1N0b3JlQ29udHJhY3QBAVkAAholc19fdm90aW5nRW1pc3Npb25Db250cmFjdAEBWgACFSVzX191c2VyUG9vbHNDb250cmFjdAECYWEACQC5CQIJAMwIAgICJXMJAMwIAgILcHJpY2VBc3NldHMFA25pbAUBbQECYWIAAhElc19fcHJpY2VEZWNpbWFscwECYWMAAgwlc19fc2h1dGRvd24BAmFkAAIXJXNfX25leHRJbnRlcm5hbEFzc2V0SWQBAmFlAQJhZgkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFmAQJhZwICYWYCYWgJAKwCAgkArAICCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYWYCAl9fCQCkAwEFAmFoAQJhaQECYWoJAKwCAgIoJXMlcyVkX19tYXBwaW5nc19faW50ZXJuYWwyYmFzZUFzc2V0SWRfXwkApAMBBQJhagECYWsBAmFsCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFsAQJhbQICYW4CYW8JAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFuAgJfXwUCYW8CCF9fY29uZmlnAQJhcAECYXEEAmFyBQJhcQQCYW4IBQJhcgJfMQQCYW8IBQJhcgJfMgkAuQkCCQDMCAICBiVkJWQlcwkAzAgCCQCkAwEFAmFuCQDMCAIJAKQDAQUCYW8JAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBbQECYXMACQC5CQIJAMwIAgICJXMJAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBbQECYXQBAmFxBAJhdQUCYXEEAmFuCAUCYXUCXzEEAmFvCAUCYXUCXzIJALkJAgkAzAgCAgYlZCVkJXMJAMwIAgkApAMBBQJhbgkAzAgCCQCkAwEFAmFvCQDMCAICDHN3YXBEaXNhYmxlZAUDbmlsBQFtAQJhdgAJALkJAgkAzAgCAgIlcwkAzAgCAgxzd2FwRGlzYWJsZWQFA25pbAUBbQECYXcBAmF4CQCsAgIJAKwCAgIIJXMlcyVzX18FAmF4AhhfX21hcHBpbmdzX19scEFzc2V0MlBvb2wBAmF5AgJhegJhQQkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fBQJhegICX18FAmFBAh5fX21hcHBpbmdzX19Qb29sQXNzZXRzMkxwQXNzZXQBAmFCAQJhZgkArAICAg4lcyVzX19zcHJlYWRfXwUCYWYBAmFDAQJhRAkArAICCQCsAgICCCVzJXMlc19fBQJhRAIjX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MlBvb2xBc3NldHMBAmFFAgJhegJhQQkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fCQCkAwEFAmF6AgJfXwkApAMBBQJhQQIjX19tYXBwaW5nc19fcG9vbEFzc2V0czJQb29sQ29udHJhY3QBAmFGAQJhRAkArAICCQCsAgICCCVzJXMlc19fBQJhRAIgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAmFHAQJheAkArAICCQCsAgICCCVzJXMlc19fBQJheAIgX19tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QBAmFIAgJhSQJhSgkArAICCQCsAgIJAKwCAgIUJXMlcyVzX193eEVtaXNzaW9uX18FAmFJAgJfXwUCYUoBAmFLAQJhZgkArAICAg0lcyVzX19pbkZlZV9fBQJhZgECYUwAAhAlc19faW5GZWVEZWZhdWx0AQJhTQECYWYJAKwCAgIPJXMlc19fc3dhcEZlZV9fBQJhZgECYU4BAmFmCQCsAgICDiVzJXNfX291dEZlZV9fBQJhZgECYU8AAhElc19fb3V0RmVlRGVmYXVsdAECYVAACQC5CQIJAMwIAgICJXMJAMwIAgIZcG9vbEFzc2V0RGVmYXVsdE1pbkFtb3VudAUDbmlsBQFtAQJhUQECYVIJALkJAgkAzAgCAgQlcyVzCQDMCAICEnBvb2xBc3NldE1pbkFtb3VudAkAzAgCBQJhUgUDbmlsBQFtAQJhUwECYWYJAKwCAgIbJXMlc19fc2tpcE9yZGVyVmFsaWRhdGlvbl9fBQJhZgECYVQBAmFmCQCsAgICFiVzJXNfX2NoYW5nZUFtcERlbGF5X18FAmFmAQJhVQECYWYJAKwCAgIWJXMlc19fY2hhbmdlQW1wRGVsdGFfXwUCYWYBAmFWAQJhZgkArAICAhclcyVzX19jaGFuZ2VBbXBUYXJnZXRfXwUCYWYBAmFXAAIWJXNfX3NXYXZlc1Byb3h5QWRkcmVzcwECYVgAAhElc19fc1dhdmVzQXNzZXRJZAECYVkAAhglc19fc3Rha2luZ1Byb2ZpdEFkZHJlc3MBAmFaAgJhZgJhUgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgtsZWFzZWRSYXRpbwkAzAgCBQJhZgkAzAgCBQJhUgUDbmlsBQFtAQJiYQECYVIJALkJAgkAzAgCAgQlcyVzCQDMCAICEmxlYXNlZFJhdGlvRGVmYXVsdAkAzAgCBQJhUgUDbmlsBQFtAQJiYgICYWYCYVIJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIUbGVhc2VkUmF0aW9Ub2xlcmFuY2UJAMwIAgUCYWYJAMwIAgUCYVIFA25pbAUBbQECYmMCAmFmAmFSCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCm1pbkJhbGFuY2UJAMwIAgUCYWYJAMwIAgUCYVIFA25pbAUBbQECYmQBAmFSCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhFtaW5CYWxhbmNlRGVmYXVsdAkAzAgCBQJhUgUDbmlsBQFtAQJiZQECYmYJALkJAgkAzAgCAgQlcyVzCQDMCAICC3doaXRlbGlzdGVkCQDMCAIJAKUIAQUCYmYFA25pbAUBbQECYmcBAmJoCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUCYmgJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJiaAECYmkBAmJoCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJsIAgUEdGhpcwUCYmgJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJiaAECYmoBAmJoCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUCYmgJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJiaAECYmsBAmJsAwkAAAIFAmJsBQFqBQR1bml0CQDZBAEFAmJsAQJibQAEAmJuCQCiCAEJAQFWAAMJAAECBQJibgIGU3RyaW5nBAJibwUCYm4JARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmJvBQR0aGlzAQJicAICYnECYnIJALwCAwkAtgIBBQJicQUBZQkAtgIBBQJicgECYnMCAmJ0AmJ1CQCgAwEJALwCAwUCYnQJALYCAQUCYnUFAWUAAmJ2AAEAAmJ3AAIAAmJ4AAMAAmJ5AAQAAmJ6AAUAAmJBAAYAAmJCAAcAAmJDAAgAAmJEAAkAAmJFAAoAAmJGAAsBAmJHAQJiSAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJiSAUCYncBAmJJAQJiSAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJiSAUCYnoBAmJKAQJiSAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJiSAUCYnYBAmJLAQJiSAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJiSAUCYkUBAmJMAAQCYm4JAKIIAQkBAmFhAAMJAAECBQJibgIGU3RyaW5nBAJibwUCYm4DCQAAAgkAsQIBBQJibwAABQNuaWwJALwJAgUCYm8FAW0FA25pbAECYk0ABAJiTgkBAmJtAAQCYm4JAJ0IAgUCYk4JAQFVAAMJAAECBQJibgIGU3RyaW5nBAJibwUCYm4JANkEAQUCYm8DCQABAgUCYm4CBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgACYk8JAQFLAQIRUGVybWlzc2lvbiBkZW5pZWQAAmJQCQEBSwECD1Rlc3QgZXJyb3IgaGVyZQECYlEBAmJSAwkAAAIIBQJiUgZjYWxsZXIFBHRoaXMGBQJiTwECYlMBAmJSBAJibgkBAmJNAAMJAAECBQJibgIKQnl0ZVZlY3RvcgQCYlQFAmJuAwkAAAIIBQJiUg9jYWxsZXJQdWJsaWNLZXkFAmJUBgUCYk8DCQABAgUCYm4CBFVuaXQJAQJiUQEFAmJSCQACAQILTWF0Y2ggZXJyb3IBAmJVCwJiVgJiVwJiWAJiWQJiWgJjYQJjYgJjYwJjZAJjZQJjZgkAuQkCCQDMCAICFiVzJXMlcyVzJXMlcyVzJXMlcyVzJXMJAMwIAgUCYlYJAMwIAgUCYlcJAMwIAgUCYlgJAMwIAgUCYlkJAMwIAgUCYloJAMwIAgUCY2EJAMwIAgUCY2IJAMwIAgUCY2MJAMwIAgUCY2QJAMwIAgUCY2UJAMwIAgUCY2YFA25pbAUBbQECY2cHAmJWAmJXAmJYAmJZAmJaAmNhAmNiCQC5CQIJAMwIAgIMJXMlcyVzJXMlcyVzCQDMCAIFAmJWCQDMCAIFAmJXCQDMCAIFAmJYCQDMCAIFAmJZCQDMCAIFAmJaCQDMCAIFAmNhCQDMCAIFAmNiBQNuaWwFAW0BAmNoCwJhZgJjaQJjagJjawJjbAJjbQJjbgJjbwJjcAJjcQJjcgkAuQkCCQDMCAICFiVzJWQlcyVzJXMlZCVkJWQlZCVkJXMJAMwIAgUCYWYJAMwIAgUCY2kJAMwIAgUCY2oJAMwIAgUCY2sJAMwIAgUCY2wJAMwIAgkApAMBBQJjbQkAzAgCCQCkAwEFAmNuCQDMCAIJAKQDAQUCY28JAMwIAgkApAMBBQJjcAkAzAgCCQCkAwEFAmNxCQDMCAIFAmNyBQNuaWwFAW0BAmNzAgJjdAJjdQkAuQkCCQDMCAICBCVkJWQJAMwIAgkApAMBBQJjdAkAzAgCCQCkAwEFAmN1BQNuaWwFAW0BAmN2AQJhZgQCY3cJALUJAgkBAmJnAQkBAmFDAQUCYWYFAW0EAmFuCQCRAwIFAmN3AAEEAmFvCQCRAwIFAmN3AAIJALUJAgkBAmJnAQkBAmFtAgUCYW4FAmFvBQFtAQJjeAICY3kCY3oEAmNBCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhawEFAmN5AAAEAmNCCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhZAAAAAQCY0MDCQAAAgUCY0EAAAQCY0QJAGQCBQJjQgUCY3oJAJUKAwUCY0QJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZAAFAmNECQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWsBBQJjeQUCY0QJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFpAQUCY0QFAmN5BQNuaWwGCQCVCgMFAmNBBQNuaWwHBQJjQwECY0UBAmJSBAJjRgkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEJAQFXAAUBbgUBbQMJAQ9jb250YWluc0VsZW1lbnQCBQJjRgkA2AQBCAUCYlIPY2FsbGVyUHVibGljS2V5BgQCY0cJAQJiUwEFAmJSAwkAAAIFAmNHBQJjRwYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmNIAwJiaAJjSQJjSgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJiaAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJjSQUCY0oBAmNLAgJhSQJhSgQCYW4JAJ8IAQkBAmFrAQUCYUkEAmFvCQCfCAEJAQJhawEFAmFKAwMJAAACBQJhbgUEdW5pdAYJAAACBQJhbwUEdW5pdAcEAmNMCQCkAwEJAQV2YWx1ZQEFAmFuBAJjTQkApAMBCQEFdmFsdWUBBQJhbwQCY04JAKIIAQkBAmFtAgUCY0wFAmNNBAJjTwkAoggBCQECYW0CBQJjTQUCY0wEAmNQAwkBAiE9AgUCY04FBHVuaXQGCQECIT0CBQJjTwUEdW5pdAUCY1ABAmNRAQJhRAQCY3cEAmJuCQCiCAEJAQJhQwEFAmFEAwkAAQIFAmJuAgZTdHJpbmcEAmJvBQJibgkAtQkCBQJibwUBbQkBAUsBCQC5CQIJAMwIAgUCYUQJAMwIAgIRcG9vbCBpcyBub3QgZm91bmQFA25pbAIBIAQCYW4JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjdwABBAJhbwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmN3AAIEAmFJCQERQGV4dHJOYXRpdmUoMTA1OCkBCQECYWkBBQJhbgQCYUoJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQJhaQEFAmFvBAJjagkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAmFGAQUCYUQJAJcKBQUCYUkFAmFKBQJjagUCYW4FAmFvAQJjUgECYUQEAmNTCQECY1EBBQJhRAQCYUkIBQJjUwJfMQQCYUoIBQJjUwJfMgQCY2oIBQJjUwJfMwQCYW4IBQJjUwJfNAQCYW8IBQJjUwJfNQQCY1QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFaAAQCY1UJAPwHBAUCY1QCFmdldFBvb2xDcmVhdG9yUkVBRE9OTFkJAMwIAgUCYUkJAMwIAgUCYUoFA25pbAUDbmlsBQJjVQECY1YCAmNXAmNYBAJiZgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY1cDCQAAAgUCY1gCBVdBVkVTCAkA7wcBBQJiZgdyZWd1bGFyBAJhUgkA2QQBBQJjWAkA8AcCBQJiZgUCYVIBAmNZAQJhRAQCY1oJAQJjUQEFAmFEBAJhSQgFAmNaAl8xBAJhSggFAmNaAl8yBAJjaggFAmNaAl8zBAJhbggFAmNaAl80BAJhbwgFAmNaAl81AwkAAAIJAQJjVgIFAmFEBQJhSQAACQAAAgkBAmNWAgUCYUQFAmFKAAAHJQJiUgEXZ2V0U3dhcENvbnRyYWN0UkVBRE9OTFkACQCUCgIFA25pbAkBAmJnAQkBAU4AAmJSARpnZXRQb29sTGVhc2VDb25maWdSRUFET05MWQICYWYCYVIEAmRhBAJibgkAmggCBQR0aGlzCQECYVoCBQJhZgUCYVIDCQABAgUCYm4CA0ludAQCZGIFAmJuCQCUCgIGCQCXAwEJAMwIAgBkCQDMCAIJAJYDAQkAzAgCAAAJAMwIAgUCZGIFA25pbAUDbmlsBAJkYwkAmggCBQR0aGlzCQECYmEBBQJhUgMJAAECBQJkYwIDSW50BAJkZAUCZGMJAJQKAgYJAJcDAQkAzAgCAGQJAMwIAgkAlgMBCQDMCAIAAAkAzAgCBQJkZAUDbmlsBQNuaWwJAJQKAgcAAAQCZGUIBQJkYQJfMQQCZGYIBQJkYQJfMgQCZGcEAmJuCQCaCAIFBHRoaXMJAQJiYwIFAmFmBQJhUgMJAAECBQJibgIDSW50BAJkaAUCYm4JAJYDAQkAzAgCAAAJAMwIAgUCZGgFA25pbAQCZGMJAJoIAgUEdGhpcwkBAmJkAQUCYVIDCQABAgUCZGMCA0ludAQCZGkFAmRjCQCWAwEJAMwIAgAACQDMCAIFAmRpBQNuaWwAAAQCZGoDCQAAAgUCYVICBVdBVkVTCQCVCgMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAmFXAAIACQCdCAIFBHRoaXMJAQt2YWx1ZU9yRWxzZQIJAQJhWAACAAUBYwkAlQoDAgACAAAABAJkawgFAmRqAl8xBAJkbAgFAmRqAl8yBAJkbQgFAmRqAl8zBAJkbgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYVkAAgAJAJQKAgUDbmlsCQCZCgcFAmRlBQJkZgUCZGcFAmRrBQJkbAUCZG0FAmRuAmJSASBnZXRMcEFzc2V0RnJvbVBvb2xBc3NldHNSRUFET05MWQICZG8CZHADAwkAAAIFAmRvAiw4TFFXOGY3UDVkNVBaTTdHdFpFQmdhcVJQR1N6UzNEZlB1aVhyVVJKNEFKUwkAAAIFAmRwAgVXQVZFUwcJAJQKAgUDbmlsBQR1bml0BAJkcQkBBXZhbHVlAQkAmggCBQR0aGlzCQECYWsBBQJkbwQCZHIJAQV2YWx1ZQEJAJoIAgUEdGhpcwkBAmFrAQUCZHAEAmRzCQCdCAIFBHRoaXMJAQJheQIJAKQDAQUCZHEJAKQDAQUCZHIEAmR0AwkAAAIFAmRzBQR1bml0BQR1bml0CQCwAgIJAQV2YWx1ZQEFAmRzAAQJAJQKAgUDbmlsBQJkdAJiUgEhZ2V0UG9vbEFkZHJlc3NGcm9tTHBBc3NldFJFQURPTkxZAQJkdQkAlAoCBQNuaWwJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAmFHAQUCZHUCAAJiUgELY29uc3RydWN0b3IIAmR2AmR3AmJYAmJZAmJaAmNhAmR4AmR5BAJkegkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFPAAkBAmNnBwUCZHYFAmR3BQJiWAUCYlkFAmJaBQJjYQUCZHgJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYgAFAmR5BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBDWNvbnN0cnVjdG9yVjIBAmRBBAJkegkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6BAJkQgkApwgBCQDZBAEFAmRBAwkAAAIFAmRCBQJkQgkAzAgCCQELU3RyaW5nRW50cnkCCQEBUgAFAmRBBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBDWNvbnN0cnVjdG9yVjMEAmNjAmNkAmNlAmNmBAJkegkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6BAJiSAkAtQkCCQECYmcBCQEBTwAFAW0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8ACQECYlULCQCRAwIFAmJIAAEJAJEDAgUCYkgAAgkAkQMCBQJiSAADCQCRAwIFAmJIAAQJAJEDAgUCYkgABQkAkQMCBQJiSAAGCQCRAwIFAmJIAAcFAmNjBQJjZAUCY2UFAmNmBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBDWNvbnN0cnVjdG9yVjQCAmRDAmREBAJkegkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFTAAUCZEMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVQACQC5CQIFAmREBQFtBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBDWNvbnN0cnVjdG9yVjUBAmRFBAJkegkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFYAAUCZEUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgENY29uc3RydWN0b3JWNgICZEYCZEcEAmRICQDMCAIJAQJiUwEFAmJSCQDMCAIDCQECIT0CCQCmCAEFAmRGBQR1bml0BgIoaW52YWxpZCB2b3RpbmcgZW1pc3Npb24gY29udHJhY3QgYWRkcmVzcwUDbmlsAwkAAAIFAmRIBQJkSAkAzAgCCQELU3RyaW5nRW50cnkCCQEBWQAFAmRGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYQAJALkJAgUCZEcFAW0FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgEJc2V0QWRtaW5zAQJkSQQCZHoJAQJiUwEFAmJSAwkAAAIFAmR6BQJkegkAzAgCCQELU3RyaW5nRW50cnkCCQEBVwAJALkJAgUCZEkFAW0FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgEPYWN0aXZhdGVOZXdQb29sCAJhZgJjawJjbAJkSgJkSwJkTAJjcgJkTQQCZHoJAQJjRQEFAmJSAwkAAAIFAmR6BQJkegMJAQlpc0RlZmluZWQBCQCiCAEJAQJhQwEFAmFmCQEBSwEJAKwCAgkArAICAg1Qb29sIGFkZHJlc3MgBQJhZgIUIGFscmVhZHkgcmVnaXN0ZXJlZC4EAmROCQECY3gCBQJjawABBAJkTwgFAmROAl8xBAJkUAkBAmN4AgUCY2wDCAUCZE4CXzMAAgABBAJkUQgFAmRQAl8xBAJkUgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDxBwEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFmCQCsAgICKU5vIHNjcmlwdCBoYXMgYmVlbiBmb3VuZCBvbiBwb29sIGFjY291bnQgBQJhZgQCZFMJARFAZXh0ck5hdGl2ZSgxMDU3KQEJAQFRAAQCZFQJAQJjSwIFAmNrBQJjbAMFAmRUCQEBSwEJAKwCAgkArAICCQCsAgIJAKwCAgIFUG9vbCAFAmNrAgEvBQJjbAIcIGhhcyBhbHJlYWR5IGJlZW4gYWN0aXZhdGVkLgQCZFUJAQV2YWx1ZQEJAJ0IAgUEdGhpcwkBAmFtAgkApAMBBQJkTwkApAMBBQJkUQQCZFYDCQAAAgUCY2sCBVdBVkVTBQFsCQBsBgAKAAAICQEFdmFsdWUBCQDsBwEJANkEAQUCY2sIZGVjaW1hbHMAAAAABQRET1dOBAJkVwMJAAACBQJjbAIFV0FWRVMFAWwJAGwGAAoAAAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQJjbAhkZWNpbWFscwAAAAAFBERPV04EAmRYCQDCCAUFAmRKBQJkSwABAAgGBAJjagkAuAgBBQJkWAQCZFkJANgEAQUCY2oEAmRaCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFmAghhY3RpdmF0ZQkAzAgCBQJjawkAzAgCBQJjbAUDbmlsBQNuaWwDCQAAAgUCZFoFAmRaAwkBAiE9AgUCZFoCB3N1Y2Nlc3MJAQFLAQIjUG9vbCBpbml0aWFsaXNhdGlvbiBlcnJvciBoYXBwZW5lZC4EAmRFCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYmcBCQEBWAAEAmVhCQD8BwQFAmRFAg5jcmVhdGVPclVwZGF0ZQkAzAgCBQJkWQkAzAgCBQJkSgkAzAgCBwUDbmlsBQNuaWwDCQAAAgUCZWEFAmVhBAJlYgkA/AcEBQJkRQIIYWRkTGFiZWwJAMwIAgUCZFkJAMwIAgUBaAUDbmlsBQNuaWwDCQAAAgUCZWIFAmViBAJlYwkA/AcEBQJkRQIHc2V0TG9nbwkAzAgCBQJkWQkAzAgCBQJkTQUDbmlsBQNuaWwDCQAAAgUCZWMFAmVjBAJlZAkA/AcEBQJkRQINYWRkQXNzZXRzTGluawkAzAgCBQJjawkAzAgCBQJjbAkAzAgCBQJkWQUDbmlsBQNuaWwDCQAAAgUCZWQFAmVkBAJlZQkA/AcEBQJkRQIYaW5jcmVhc2VBc3NldFBvb2xzTnVtYmVyCQDMCAIFAmNrBQNuaWwFA25pbAMJAAACBQJlZQUCZWUJAJQKAgkAzggCCQDOCAIIBQJkTgJfMggFAmRQAl8yCQDMCAIFAmRYCQDMCAIJAQRCdXJuAgUCY2oAAQkAzAgCCQELU3RyaW5nRW50cnkCCQECYW0CCQCkAwEFAmRPCQCkAwEFAmRRCQECY2gLBQJhZgkApAMBBQFvBQJkWQUCY2sFAmNsBQJkVgUCZFcFAmRPBQJkUQUBbAUCY3IJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF3AQUCZFkJAQJjcwIFAmRPBQJkUQkAzAgCCQELU3RyaW5nRW50cnkCCQECYXkCCQCkAwEFAmRPCQCkAwEFAmRRCQCsAgICBCVzX18FAmRZCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhQwEFAmFmCQECY3MCBQJkTwUCZFEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFFAgUCZE8FAmRRBQJhZgkAzAgCCQELU3RyaW5nRW50cnkCCQECYUcBBQJkWQUCYWYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFGAQUCYWYFAmRZCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWUBBQJhZgUCZEwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhQgEFAmFmBQFpBQNuaWwFAmRZCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJSAQptYW5hZ2VQb29sAgJhZgJlZgQCZHoJAQJiUwEFAmJSAwkAAAIFAmR6BQJkegQCZWcJAQJjdgEFAmFmBAJjaQkAkQMCBQJlZwUBdwQCZFkJAJEDAgUCZWcFAXgEAmNrCQCRAwIFAmVnBQF5BAJjbAkAkQMCBQJlZwUBegQCZFYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBQQQCZFcJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBQgQCZE8JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBQwQCZFEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBRAQCZWgJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBRQQCY3IJAJEDAgUCZWcFAUYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFtAgkApAMBBQJkTwkApAMBBQJkUQkBAmNoCwUCYWYJAKQDAQUCZWYFAmRZBQJjawUCY2wFAmRWBQJkVwUCZE8FAmRRBQJlaAUCY3IFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgEEZW1pdAECZWkEAmVqCAUCYlIGY2FsbGVyBAJlawgFAmJSDG9yaWdpbkNhbGxlcgQCZWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQECYUYBCQClCAEFAmVqAh1JbnZhbGlkIExQIGFkZHJlc3MgY2FsbGVkIG1lLgQCZW0JANkEAQUCZWwEAmRECQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBAVQABQFuBQFtBAJkQwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQFTAAIoTGVnYWN5IGZhY3RvcnkgY29udHJhY3QgZG9lcyBub3QgZXhpc3RzLgMJAGcCAAAFAmVpBQNuaWwDCQEPY29udGFpbnNFbGVtZW50AgUCZEQJAKUIAQUCZWoJAJQKAgUDbmlsBQJkQwkAlAoCCQDMCAIJAQdSZWlzc3VlAwUCZW0FAmVpBgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCYlIGY2FsbGVyBQJlaQUCZW0FA25pbAIHc3VjY2VzcwJiUgEEYnVybgECZW4EAmVqCAUCYlIGY2FsbGVyBAJlawgFAmJSDG9yaWdpbkNhbGxlcgQCZW8JAQV2YWx1ZQEJAJEDAggFAmJSCHBheW1lbnRzAAAEAmVwCQEFdmFsdWUBCAUCZW8GYW1vdW50BAJlcQkA2AQBCQEFdmFsdWUBCAUCZW8HYXNzZXRJZAQCZXIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQECYUYBCQClCAEFAmVqAh1JbnZhbGlkIExQIGFkZHJlc3MgY2FsbGVkIG1lLgMJAQIhPQIFAmVxBQJlcgkBAUsBAhVJbnZhbGlkIGFzc2V0IHBhc3NlZC4DCQECIT0CBQJlbgUCZXAJAQFLAQIWSW52YWxpZCBhbW91bnQgcGFzc2VkLgQCZW0JANkEAQUCZXIJAJQKAgkAzAgCCQEEQnVybgIFAmVtBQJlbgUDbmlsAgdzdWNjZXNzAmJSAQxtb2RpZnlXZWlnaHQCAmNqAmVzBAJkegMJAAACCQDYBAEICAUCYlIGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQFZAAIABgkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6BAJhRAkBAmJnAQkBAmFHAQUCY2oEAmV0CQECYWUBBQJhRAQCZXUJAQJhZQEFAWcEAmV2CQELdmFsdWVPckVsc2UCCQCfCAEFAmV1AAAEAmRMCQELdmFsdWVPckVsc2UCCQCfCAEFAmV0AAAEAmV3BQJlcwQCYkgJALUJAgkBAmJnAQkBAU8ABQFtBAJkdgkBAmJKAQUCYkgEAmV4CQD8BwQFAmR2Ag5vbk1vZGlmeVdlaWdodAkAzAgCBQJjagkAzAgCBQJhRAUDbmlsBQNuaWwDCQAAAgUCZXgFAmV4BAJleQMJAAACBQJldgAABQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIFAmV1AAAFA25pbAQCZXoJAQJhZwIFAmFEAAAEAmVBCQCfCAEFAmV6BAJlQgMJAAACBQJlQQUEdW5pdAUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEFAmV6BQNuaWwJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJldAUCZXcFA25pbAUCZXkFAmVCCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJSAQ1tb2RpZnlXZWlnaHRzBAJlQwJlRAJlRQJlRgQCZHoJAQJiUwEFAmJSAwkAAAIFAmR6BQJkegQCZUcJAGkCCQBoAgAFBQFmAGQEAmVICQBpAgkAaAIABQUBZgBkBAJlSQkAaQIJAGgCAAUFAWYAZAQCYkgJALUJAgkBAmJnAQkBAU8ABQFtBAJlSgkBAmJKAQUCYkgEAmVLCQECYksBBQJiSAQCZUwJAQJhZQEFAmVDBAJlTQkBAmFlAQUCZUQEAmVOCQECYWUBBQJlRQQCZU8JAQJhZQEFAmVGBAJlUAkBAmJqAQUCZUwEAmVRCQECYmoBBQJlTQQCZVIJAGUCBQJlUAUCZUkEAmVTCQBlAgUCZVEFAmVJAwkAZwIAAAUCZVIJAQFLAQkArAICAhZpbnZhbGlkIGJ0Y1dlaWdodE5ldzogCQCkAwEFAmVSAwkAZwIAAAUCZVMJAQFLAQkArAICAhZpbnZhbGlkIGV0aFdlaWdodE5ldzogCQCkAwEFAmVTBAJlVAkBAmJnAQkBAmFGAQUCZUMEAmVVCQECYmcBCQECYUYBBQJlRAQCZVYJAQJiZwEJAQJhRgEFAmVFBAJlVwkBAmJnAQkBAmFGAQUCZUYEAmVYCQD8BwQFAmVKAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJlVAkAzAgCBQJlQwUDbmlsBQNuaWwDCQAAAgUCZVgFAmVYBAJlWQkA/AcEBQJlSgIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZVUJAMwIAgUCZUQFA25pbAUDbmlsAwkAAAIFAmVZBQJlWQQCZVoJAPwHBAUCZUoCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmVWCQDMCAIFAmVFBQNuaWwFA25pbAMJAAACBQJlWgUCZVoEAmZhCQD8BwQFAmVKAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJlVwkAzAgCBQJlRgUDbmlsBQNuaWwDCQAAAgUCZmEFAmZhCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlTAUCZVIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmVNBQJlUwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZU4FAmVHCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlTwUCZUgJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZwIFAmVDAAAFAmVQCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWcCBQJlRAAABQJlUQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFnAgUCZUUAAAUCZUcJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZwIFAmVGAAAFAmVIBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBGGNoZWNrV3hFbWlzc2lvblBvb2xMYWJlbAICYUkCYUoEAmZiBAJibgkAoAgBCQECYUgCBQJhSQUCYUoDCQABAgUCYm4CB0Jvb2xlYW4EAmRoBQJibgUCZGgHCQCUCgIFA25pbAUCZmICYlIBFnNldFd4RW1pc3Npb25Qb29sTGFiZWwCAmFJAmFKBAJkegkBAmNFAQUCYlIDCQAAAgUCZHoFAmR6CQCUCgIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQJhSAIFAmFJBQJhSgYFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgEZZGVsZXRlV3hFbWlzc2lvblBvb2xMYWJlbAICYUkCYUoEAmR6AwkAAAIIBQJiUgZjYWxsZXIFBHRoaXMGCQECY0UBBQJiUgMJAAACBQJkegUCZHoJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQECYUgCBQJhSQUCYUoFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgESb25WZXJpZmljYXRpb25Mb3NzAQJhUgQCZHoDCQAAAgkA2AQBCAgFAmJSBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEBWAACAAYJAQJiUwEFAmJSAwkAAAIFAmR6BQJkegQCZEcJAQJiTAAEAmZjAwkAZgIJAJADAQUCZEcAAAYJAQFLAQIUaW52YWxpZCBwcmljZSBhc3NldHMDCQAAAgUCZmMFAmZjCgECZmQCAmZlAmZmBAJkYgkA/AcEBQR0aGlzAhlkZWxldGVXeEVtaXNzaW9uUG9vbExhYmVsCQDMCAIFAmFSCQDMCAIFAmZmBQNuaWwFA25pbAMJAAACBQJkYgUCZGIFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAmZnCgACZmgFAmRHCgACZmkJAJADAQUCZmgKAAJmagUEdW5pdAoBAmZrAgJmbAJmbQMJAGcCBQJmbQUCZmkFAmZsCQECZmQCBQJmbAkAkQMCBQJmaAUCZm0KAQJmbgICZmwCZm0DCQBnAgUCZm0FAmZpBQJmbAkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEzCQECZm4CCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCBQJmagAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0DCQAAAgUCZmcFAmZnCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgEoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQECYWYEAmVnCQECY3YBBQJhZgQCYXEJAJQKAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVnBQFDCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWcFAUQEAmZvCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhcAEFAmFxBwQCZnAJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBAmFzAAcJAJQKAgUDbmlsAwUCZnAGBQJmbwJiUgEaaXNQb29sU3dhcERpc2FibGVkUkVBRE9OTFkBAmFmBAJlZwkBAmN2AQUCYWYEAmFxCQCUCgIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBQwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVnBQFEBAJmcQkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYXQBBQJhcQcEAmZyCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhdgAHCQCUCgIFA25pbAMFAmZyBgUCZnECYlIBEGdldEluRmVlUkVBRE9OTFkBAmFmBAJmcwkBAmNIAwkBAmFLAQUCYWYJAQJhTAAAAAkAlAoCBQNuaWwFAmZzAmJSARFnZXRPdXRGZWVSRUFET05MWQECYWYEAmZzCQECY0gDCQECYU4BBQJhZgkBAmFPAAkAawMACgUBYgCQTgkAlAoCBQNuaWwFAmZzAmJSARJnZXRTd2FwRmVlUkVBRE9OTFkBAmZ0BAJmdQQCYm4JAJ0IAgUEdGhpcwkBAmFNAQUCZnQDCQABAgUCYm4CBlN0cmluZwQCYm8FAmJuBAJmdgkAtQkCBQJibwUBbQQCZncJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJmdgABBAJmeAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmZ2AAIJAJQKAgUCZncFAmZ4AwkAAQIFAmJuAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IJAJQKAgUDbmlsBQJmdQJiUgEQcG9vbEluZm9SRUFET05MWQICZnkCZnoEAmZBCQCaCAIFBHRoaXMJAQJhawEFAmZ5BAJmQgkAmggCBQR0aGlzCQECYWsBBQJmegQCZkMJAJ0IAgUEdGhpcwkBAmFFAgkBBXZhbHVlAQUCZkEJAQV2YWx1ZQEFAmZCBAJmRAkAnQgCBQR0aGlzCQECYUYBCQEFdmFsdWUBBQJmQwQCZFQDAwkBCWlzRGVmaW5lZAEFAmZBCQEJaXNEZWZpbmVkAQUCZkIHCQEJaXNEZWZpbmVkAQUCZkMHBAJmRQMFAmRUCQCUCgIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEFAmZDCQECYmsBCQEFdmFsdWUBBQJmRAUEdW5pdAkAlAoCBQNuaWwFAmZFAmJSARVnZXRQb29sU3RhdHVzUkVBRE9OTFkBAmFmBAJjdwkAtQkCCQECYmcBCQECYUMBBQJhZgUBbQQCYW4JAJEDAgUCY3cAAQQCYW8JAJEDAgUCY3cAAgQCY04JALUJAgkBAmJnAQkBAmFtAgUCYW4FAmFvBQFtCQCUCgIFA25pbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNOBQF3AmJSARVnZXRQb29sQ29uZmlnUkVBRE9OTFkBAmFmBAJjdwkAtQkCCQECYmcBCQECYUMBBQJhZgUBbQQCYW4JAJEDAgUCY3cAAQQCYW8JAJEDAgUCY3cAAgQCY04JALUJAgkBAmJnAQkBAmFtAgUCYW4FAmFvBQFtCQCUCgIFA25pbAUCY04CYlIBIGdldFBvb2xDb25maWdCeUxwQXNzZXRJZFJFQURPTkxZAQJkWQQCY3cJALUJAgkBAmJnAQkBAmF3AQUCZFkFAW0EAmFuCQCRAwIFAmN3AAEEAmFvCQCRAwIFAmN3AAIEAmNOCQC1CQIJAQJiZwEJAQJhbQIFAmFuBQJhbwUBbQkAlAoCBQNuaWwFAmNOAmJSARJwb29sRXhpc3RzUkVBRE9OTFkCAmFJAmFKCQCUCgIFA25pbAkBAmNLAgUCYUkFAmFKAmJSARtza2lwT3JkZXJWYWxpZGF0aW9uUkVBRE9OTFkBAmFmCQCUCgIFA25pbAkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYVMBBQJhZgcCYlIBGmdldENoYW5nZUFtcENvbmZpZ1JFQURPTkxZAQJhZgQCZkYJARFAZXh0ck5hdGl2ZSgxMDU1KQEJAQJhVAEFAmFmBAJmRwkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAmFVAQUCYWYEAmZICQERQGV4dHJOYXRpdmUoMTA1NSkBCQECYVYBBQJhZgkAlAoCBQNuaWwJAMwIAgUCZkYJAMwIAgUCZkcJAMwIAgUCZkgFA25pbAJiUgEVZ2V0UG9vbFdlaWdodFJFQURPTkxZAQJjagQCYWYJAQJiZwEJAQJhRwEFAmNqBAJmSQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYWUBBQJhZgAACQCUCgIFA25pbAUCZkkCYlIBCmRlbGV0ZVBvb2wBAmFEBAJlZwkBAmN2AQUCYUQEAmR6AwkAAAIJAKUIAQgFAmJSBmNhbGxlcgkBAmNSAQUCYUQDCQECY1kBBQJhRAYJAQFLAQIRUG9vbCBpcyBub3QgZW1wdHkJAQJiUwEFAmJSAwkAAAIFAmR6BQJkegQCZkoDCQAAAgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYWUBBQJhRAAAAAAGCQEBSwECF1Bvb2wgd2VpZ2h0IGlzIG5vdCBaZXJvAwkAAAIFAmZKBQJmSgQCZksDCQAAAgkAkQMCBQJlZwUBdwkApAMBBQFyBgkBAUsBAhlQb29sIG11c3QgYmUgU0hVVERPV04gKDQpAwkAAAIFAmZLBQJmSwQCZkwJAQJjUQEFAmFEBAJhSQgFAmZMAl8xBAJhSggFAmZMAl8yBAJjaggFAmZMAl8zBAJhbggFAmZMAl80BAJhbwgFAmZMAl81BAJjVAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAVoABAJmTQkA/AcEBQJjVAIKZGVsZXRlUG9vbAkAzAgCBQJhSQkAzAgCBQJhSgUDbmlsBQNuaWwDCQAAAgUCZk0FAmZNBAJkRgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAVkABAJmTgkA/AcEBQJkRgIKZGVsZXRlUG9vbAkAzAgCBQJhSQkAzAgCBQJhSgUDbmlsBQNuaWwDCQAAAgUCZk4FAmZOBAJkRQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAVgABAJmTwkA/AcEBQJkRQIKZGVsZXRlUG9vbAkAzAgCBQJhSQkAzAgCBQJhSgUDbmlsBQNuaWwDCQAAAgUCZk8FAmZPCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRgEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhQwEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJheQIJAKQDAQUCYW4JAKQDAQUCYW8JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFFAgUCYW4FAmFvCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhbQIJAKQDAQUCYW4JAKQDAQUCYW8JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmF3AQUCY2oJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFHAQUCY2oJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFIAgUCYUkFAmFKCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhZQEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhQgEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhSwEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhTgEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhUwEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhVAEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhVQEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhVgEFAmFEBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBCGdldFByaWNlAQJmdAQCYWYJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmZ0BAJjTgkBAmN2AQUCZnQEAmNqCQDZBAEJAJEDAgUCY04FAXgEAmZQCQCRAwIFAmNOBQF5BAJhSgkAkQMCBQJjTgUBegQCZlEICQEFdmFsdWUBCQDsBwEFAmNqCHF1YW50aXR5BAJmUgoAAmZTCQD8BwQFAmFmAhxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZCQDMCAIFAmZQBQNuaWwFA25pbAMJAAECBQJmUwIDSW50BQJmUwkAAgEJAKwCAgkAAwEFAmZTAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEAmZUCgACZlMJAPwHBAUCYWYCHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkJAMwIAgUCYUoFA25pbAUDbmlsAwkAAQIFAmZTAgNJbnQFAmZTCQACAQkArAICCQADAQUCZlMCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCZlUDCQAAAgUCZlEAAAAACgACZlMJAJEDAgoAAmZTCQD8BwQFAmFmAhljYWxjUHJpY2VzV3JhcHBlclJFQURPTkxZCQDMCAIFAmZSCQDMCAIFAmZUCQDMCAIFAmZRBQNuaWwFA25pbAMJAAECBQJmUwIJTGlzdFtBbnldBQJmUwkAAgEJAKwCAgkAAwEFAmZTAh4gY291bGRuJ3QgYmUgY2FzdCB0byBMaXN0W0FueV0AAAMJAAECBQJmUwIGU3RyaW5nBQJmUwkAAgEJAKwCAgkAAwEFAmZTAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcJAJQKAgUDbmlsBQJmVQJiUgEMY2hlY2tCYWxhbmNlAQJkWQQCZnQJAQJiZwEJAQJhRwEFAmRZBAJhZgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCZnQEAmNOCQECY3YBBQJmdAQCZnkJAJEDAgUCY04FAXkEAmZ6CQCRAwIFAmNOBQF6BAJmVgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkBAmFQAAQCZlcJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFRAQUCZnkFAmZWBAJmWAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYVEBBQJmegUCZlYEAmZZCgACZlMJAPwHBAUCYWYCHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkJAMwIAgUCZnkFA25pbAUDbmlsAwkAAQIFAmZTAgNJbnQFAmZTCQACAQkArAICCQADAQUCZlMCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCZloKAAJmUwkA/AcEBQJhZgIcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQkAzAgCBQJmegUDbmlsBQNuaWwDCQABAgUCZlMCA0ludAUCZlMJAAIBCQCsAgIJAAMBBQJmUwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAJnYQkAZwIFAmZZCQBpAgUCZlcAAgQCZ2IJAGcCBQJmWgkAaQIFAmZYAAIEAmdjAwUCZ2EFAmdiBwkAlAoCBQNuaWwFAmdjAQJnZAECZ2UABAJnZgQCYm4JAQJiTQADCQABAgUCYm4CCkJ5dGVWZWN0b3IEAmJUBQJibgUCYlQDCQABAgUCYm4CBFVuaXQIBQJnZA9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCZ2QJYm9keUJ5dGVzCQCRAwIIBQJnZAZwcm9vZnMAAAUCZ2YJ4F1K", "height": 2907878, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 35rUGfn1R78jjc21XERgUQDh6soDDA6moYL7bZJdJZ6J Next: 6BSd8JiJrFHfk31qb713HJUFZd3Cz1XRBBuPMcGxUTfC Diff:
OldNewDifferences
896896
897897 @Callable(bR)
898898 func deleteWxEmissionPoolLabel (aI,aJ) = {
899- let dz = if (if ((toString(bR.caller) == getStringValue(this, Y())))
900- then true
901- else (bR.caller == this))
899+ let dz = if ((bR.caller == this))
902900 then true
903901 else cE(bR)
904902 if ((dz == dz))
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
211211 func aP () = makeString(["%s", "poolAssetDefaultMinAmount"], m)
212212
213213
214214 func aQ (aR) = makeString(["%s%s", "poolAssetMinAmount", aR], m)
215215
216216
217217 func aS (af) = ("%s%s__skipOrderValidation__" + af)
218218
219219
220220 func aT (af) = ("%s%s__changeAmpDelay__" + af)
221221
222222
223223 func aU (af) = ("%s%s__changeAmpDelta__" + af)
224224
225225
226226 func aV (af) = ("%s%s__changeAmpTarget__" + af)
227227
228228
229229 func aW () = "%s__sWavesProxyAddress"
230230
231231
232232 func aX () = "%s__sWavesAssetId"
233233
234234
235235 func aY () = "%s__stakingProfitAddress"
236236
237237
238238 func aZ (af,aR) = makeString(["%s%s%s", "leasedRatio", af, aR], m)
239239
240240
241241 func ba (aR) = makeString(["%s%s", "leasedRatioDefault", aR], m)
242242
243243
244244 func bb (af,aR) = makeString(["%s%s%s", "leasedRatioTolerance", af, aR], m)
245245
246246
247247 func bc (af,aR) = makeString(["%s%s%s", "minBalance", af, aR], m)
248248
249249
250250 func bd (aR) = makeString(["%s%s", "minBalanceDefault", aR], m)
251251
252252
253253 func be (bf) = makeString(["%s%s", "whitelisted", toString(bf)], m)
254254
255255
256256 func bg (bh) = valueOrErrorMessage(getString(this, bh), ("No data for this.key=" + bh))
257257
258258
259259 func bi (bh) = valueOrErrorMessage(getBoolean(this, bh), ("No data for this.key=" + bh))
260260
261261
262262 func bj (bh) = valueOrErrorMessage(getInteger(this, bh), ("No data for this.key=" + bh))
263263
264264
265265 func bk (bl) = if ((bl == j))
266266 then unit
267267 else fromBase58String(bl)
268268
269269
270270 func bm () = {
271271 let bn = getString(V())
272272 if ($isInstanceOf(bn, "String"))
273273 then {
274274 let bo = bn
275275 addressFromStringValue(bo)
276276 }
277277 else this
278278 }
279279
280280
281281 func bp (bq,br) = fraction(toBigInt(bq), e, toBigInt(br))
282282
283283
284284 func bs (bt,bu) = toInt(fraction(bt, toBigInt(bu), e))
285285
286286
287287 let bv = 1
288288
289289 let bw = 2
290290
291291 let bx = 3
292292
293293 let by = 4
294294
295295 let bz = 5
296296
297297 let bA = 6
298298
299299 let bB = 7
300300
301301 let bC = 8
302302
303303 let bD = 9
304304
305305 let bE = 10
306306
307307 let bF = 11
308308
309309 func bG (bH) = addressFromStringValue(bH[bw])
310310
311311
312312 func bI (bH) = addressFromStringValue(bH[bz])
313313
314314
315315 func bJ (bH) = addressFromStringValue(bH[bv])
316316
317317
318318 func bK (bH) = addressFromStringValue(bH[bE])
319319
320320
321321 func bL () = {
322322 let bn = getString(aa())
323323 if ($isInstanceOf(bn, "String"))
324324 then {
325325 let bo = bn
326326 if ((size(bo) == 0))
327327 then nil
328328 else split_4C(bo, m)
329329 }
330330 else nil
331331 }
332332
333333
334334 func bM () = {
335335 let bN = bm()
336336 let bn = getString(bN, U())
337337 if ($isInstanceOf(bn, "String"))
338338 then {
339339 let bo = bn
340340 fromBase58String(bo)
341341 }
342342 else if ($isInstanceOf(bn, "Unit"))
343343 then unit
344344 else throw("Match error")
345345 }
346346
347347
348348 let bO = K("Permission denied")
349349
350350 let bP = K("Test error here")
351351
352352 func bQ (bR) = if ((bR.caller == this))
353353 then true
354354 else bO
355355
356356
357357 func bS (bR) = {
358358 let bn = bM()
359359 if ($isInstanceOf(bn, "ByteVector"))
360360 then {
361361 let bT = bn
362362 if ((bR.callerPublicKey == bT))
363363 then true
364364 else bO
365365 }
366366 else if ($isInstanceOf(bn, "Unit"))
367367 then bQ(bR)
368368 else throw("Match error")
369369 }
370370
371371
372372 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)
373373
374374
375375 func cg (bV,bW,bX,bY,bZ,ca,cb) = makeString(["%s%s%s%s%s%s", bV, bW, bX, bY, bZ, ca, cb], m)
376376
377377
378378 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)
379379
380380
381381 func cs (ct,cu) = makeString(["%d%d", toString(ct), toString(cu)], m)
382382
383383
384384 func cv (af) = {
385385 let cw = split(bg(aC(af)), m)
386386 let an = cw[1]
387387 let ao = cw[2]
388388 split(bg(am(an, ao)), m)
389389 }
390390
391391
392392 func cx (cy,cz) = {
393393 let cA = valueOrElse(getInteger(this, ak(cy)), 0)
394394 let cB = valueOrElse(getInteger(this, ad()), 0)
395395 let cC = if ((cA == 0))
396396 then {
397397 let cD = (cB + cz)
398398 $Tuple3(cD, [IntegerEntry(ad(), cD), IntegerEntry(ak(cy), cD), StringEntry(ai(cD), cy)], true)
399399 }
400400 else $Tuple3(cA, nil, false)
401401 cC
402402 }
403403
404404
405405 func cE (bR) = {
406406 let cF = split(valueOrElse(getString(W()), n), m)
407407 if (containsElement(cF, toBase58String(bR.callerPublicKey)))
408408 then true
409409 else {
410410 let cG = bS(bR)
411411 if ((cG == cG))
412412 then true
413413 else throw("Strict value is not equal to itself.")
414414 }
415415 }
416416
417417
418418 func cH (bh,cI,cJ) = valueOrElse(getInteger(this, bh), valueOrElse(getInteger(this, cI), cJ))
419419
420420
421421 func cK (aI,aJ) = {
422422 let an = getInteger(ak(aI))
423423 let ao = getInteger(ak(aJ))
424424 if (if ((an == unit))
425425 then true
426426 else (ao == unit))
427427 then false
428428 else {
429429 let cL = toString(value(an))
430430 let cM = toString(value(ao))
431431 let cN = getString(am(cL, cM))
432432 let cO = getString(am(cM, cL))
433433 let cP = if ((cN != unit))
434434 then true
435435 else (cO != unit)
436436 cP
437437 }
438438 }
439439
440440
441441 func cQ (aD) = {
442442 let cw = {
443443 let bn = getString(aC(aD))
444444 if ($isInstanceOf(bn, "String"))
445445 then {
446446 let bo = bn
447447 split(bo, m)
448448 }
449449 else K(makeString([aD, "pool is not found"], " "))
450450 }
451451 let an = parseIntValue(cw[1])
452452 let ao = parseIntValue(cw[2])
453453 let aI = getStringValue(ai(an))
454454 let aJ = getStringValue(ai(ao))
455455 let cj = getStringValue(aF(aD))
456456 $Tuple5(aI, aJ, cj, an, ao)
457457 }
458458
459459
460460 func cR (aD) = {
461461 let cS = cQ(aD)
462462 let aI = cS._1
463463 let aJ = cS._2
464464 let cj = cS._3
465465 let an = cS._4
466466 let ao = cS._5
467467 let cT = addressFromStringValue(getStringValue(Z()))
468468 let cU = invoke(cT, "getPoolCreatorREADONLY", [aI, aJ], nil)
469469 cU
470470 }
471471
472472
473473 func cV (cW,cX) = {
474474 let bf = addressFromStringValue(cW)
475475 if ((cX == "WAVES"))
476476 then wavesBalance(bf).regular
477477 else {
478478 let aR = fromBase58String(cX)
479479 assetBalance(bf, aR)
480480 }
481481 }
482482
483483
484484 func cY (aD) = {
485485 let cZ = cQ(aD)
486486 let aI = cZ._1
487487 let aJ = cZ._2
488488 let cj = cZ._3
489489 let an = cZ._4
490490 let ao = cZ._5
491491 if ((cV(aD, aI) == 0))
492492 then (cV(aD, aJ) == 0)
493493 else false
494494 }
495495
496496
497497 @Callable(bR)
498498 func getSwapContractREADONLY () = $Tuple2(nil, bg(N()))
499499
500500
501501
502502 @Callable(bR)
503503 func getPoolLeaseConfigREADONLY (af,aR) = {
504504 let da = {
505505 let bn = getInteger(this, aZ(af, aR))
506506 if ($isInstanceOf(bn, "Int"))
507507 then {
508508 let db = bn
509509 $Tuple2(true, min([100, max([0, db])]))
510510 }
511511 else {
512512 let dc = getInteger(this, ba(aR))
513513 if ($isInstanceOf(dc, "Int"))
514514 then {
515515 let dd = dc
516516 $Tuple2(true, min([100, max([0, dd])]))
517517 }
518518 else $Tuple2(false, 0)
519519 }
520520 }
521521 let de = da._1
522522 let df = da._2
523523 let dg = {
524524 let bn = getInteger(this, bc(af, aR))
525525 if ($isInstanceOf(bn, "Int"))
526526 then {
527527 let dh = bn
528528 max([0, dh])
529529 }
530530 else {
531531 let dc = getInteger(this, bd(aR))
532532 if ($isInstanceOf(dc, "Int"))
533533 then {
534534 let di = dc
535535 max([0, di])
536536 }
537537 else 0
538538 }
539539 }
540540 let dj = if ((aR == "WAVES"))
541541 then $Tuple3(valueOrElse(getString(this, aW()), ""), getString(this, valueOrElse(aX(), "")), c)
542542 else $Tuple3("", "", 0)
543543 let dk = dj._1
544544 let dl = dj._2
545545 let dm = dj._3
546546 let dn = valueOrElse(getString(this, aY()), "")
547547 $Tuple2(nil, $Tuple7(de, df, dg, dk, dl, dm, dn))
548548 }
549549
550550
551551
552552 @Callable(bR)
553553 func getLpAssetFromPoolAssetsREADONLY (do,dp) = if (if ((do == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
554554 then (dp == "WAVES")
555555 else false)
556556 then $Tuple2(nil, unit)
557557 else {
558558 let dq = value(getInteger(this, ak(do)))
559559 let dr = value(getInteger(this, ak(dp)))
560560 let ds = getString(this, ay(toString(dq), toString(dr)))
561561 let dt = if ((ds == unit))
562562 then unit
563563 else drop(value(ds), 4)
564564 $Tuple2(nil, dt)
565565 }
566566
567567
568568
569569 @Callable(bR)
570570 func getPoolAddressFromLpAssetREADONLY (du) = $Tuple2(nil, valueOrElse(getString(this, aG(du)), ""))
571571
572572
573573
574574 @Callable(bR)
575575 func constructor (dv,dw,bX,bY,bZ,ca,dx,dy) = {
576576 let dz = bS(bR)
577577 if ((dz == dz))
578578 then [StringEntry(O(), cg(dv, dw, bX, bY, bZ, ca, dx)), IntegerEntry(ab(), dy)]
579579 else throw("Strict value is not equal to itself.")
580580 }
581581
582582
583583
584584 @Callable(bR)
585585 func constructorV2 (dA) = {
586586 let dz = bS(bR)
587587 if ((dz == dz))
588588 then {
589589 let dB = addressFromPublicKey(fromBase58String(dA))
590590 if ((dB == dB))
591591 then [StringEntry(R(), dA)]
592592 else throw("Strict value is not equal to itself.")
593593 }
594594 else throw("Strict value is not equal to itself.")
595595 }
596596
597597
598598
599599 @Callable(bR)
600600 func constructorV3 (cc,cd,ce,cf) = {
601601 let dz = bS(bR)
602602 if ((dz == dz))
603603 then {
604604 let bH = split(bg(O()), m)
605605 [StringEntry(O(), bU(bH[1], bH[2], bH[3], bH[4], bH[5], bH[6], bH[7], cc, cd, ce, cf))]
606606 }
607607 else throw("Strict value is not equal to itself.")
608608 }
609609
610610
611611
612612 @Callable(bR)
613613 func constructorV4 (dC,dD) = {
614614 let dz = bS(bR)
615615 if ((dz == dz))
616616 then [StringEntry(S(), dC), StringEntry(T(), makeString(dD, m))]
617617 else throw("Strict value is not equal to itself.")
618618 }
619619
620620
621621
622622 @Callable(bR)
623623 func constructorV5 (dE) = {
624624 let dz = bS(bR)
625625 if ((dz == dz))
626626 then [StringEntry(X(), dE)]
627627 else throw("Strict value is not equal to itself.")
628628 }
629629
630630
631631
632632 @Callable(bR)
633633 func constructorV6 (dF,dG) = {
634634 let dH = [bS(bR), if ((addressFromString(dF) != unit))
635635 then true
636636 else "invalid voting emission contract address"]
637637 if ((dH == dH))
638638 then [StringEntry(Y(), dF), StringEntry(aa(), makeString(dG, m))]
639639 else throw("Strict value is not equal to itself.")
640640 }
641641
642642
643643
644644 @Callable(bR)
645645 func setAdmins (dI) = {
646646 let dz = bS(bR)
647647 if ((dz == dz))
648648 then [StringEntry(W(), makeString(dI, m))]
649649 else throw("Strict value is not equal to itself.")
650650 }
651651
652652
653653
654654 @Callable(bR)
655655 func activateNewPool (af,ck,cl,dJ,dK,dL,cr,dM) = {
656656 let dz = cE(bR)
657657 if ((dz == dz))
658658 then if (isDefined(getString(aC(af))))
659659 then K((("Pool address " + af) + " already registered."))
660660 else {
661661 let dN = cx(ck, 1)
662662 let dO = dN._1
663663 let dP = cx(cl, if (dN._3)
664664 then 2
665665 else 1)
666666 let dQ = dP._1
667667 let dR = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
668668 let dS = getBinaryValue(Q())
669669 let dT = cK(ck, cl)
670670 if (dT)
671671 then K((((("Pool " + ck) + "/") + cl) + " has already been activated."))
672672 else {
673673 let dU = value(getString(this, am(toString(dO), toString(dQ))))
674674 let dV = if ((ck == "WAVES"))
675675 then l
676676 else pow(10, 0, value(assetInfo(fromBase58String(ck))).decimals, 0, 0, DOWN)
677677 let dW = if ((cl == "WAVES"))
678678 then l
679679 else pow(10, 0, value(assetInfo(fromBase58String(cl))).decimals, 0, 0, DOWN)
680680 let dX = Issue(dJ, dK, 1, 8, true)
681681 let cj = calculateAssetId(dX)
682682 let dY = toBase58String(cj)
683683 let dZ = invoke(addressFromStringValue(af), "activate", [ck, cl], nil)
684684 if ((dZ == dZ))
685685 then if ((dZ != "success"))
686686 then K("Pool initialisation error happened.")
687687 else {
688688 let dE = addressFromStringValue(bg(X()))
689689 let ea = invoke(dE, "createOrUpdate", [dY, dJ, false], nil)
690690 if ((ea == ea))
691691 then {
692692 let eb = invoke(dE, "addLabel", [dY, h], nil)
693693 if ((eb == eb))
694694 then {
695695 let ec = invoke(dE, "setLogo", [dY, dM], nil)
696696 if ((ec == ec))
697697 then {
698698 let ed = invoke(dE, "addAssetsLink", [ck, cl, dY], nil)
699699 if ((ed == ed))
700700 then {
701701 let ee = invoke(dE, "increaseAssetPoolsNumber", [ck], nil)
702702 if ((ee == ee))
703703 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)
704704 else throw("Strict value is not equal to itself.")
705705 }
706706 else throw("Strict value is not equal to itself.")
707707 }
708708 else throw("Strict value is not equal to itself.")
709709 }
710710 else throw("Strict value is not equal to itself.")
711711 }
712712 else throw("Strict value is not equal to itself.")
713713 }
714714 else throw("Strict value is not equal to itself.")
715715 }
716716 }
717717 else throw("Strict value is not equal to itself.")
718718 }
719719
720720
721721
722722 @Callable(bR)
723723 func managePool (af,ef) = {
724724 let dz = bS(bR)
725725 if ((dz == dz))
726726 then {
727727 let eg = cv(af)
728728 let ci = eg[w]
729729 let dY = eg[x]
730730 let ck = eg[y]
731731 let cl = eg[z]
732732 let dV = parseIntValue(eg[A])
733733 let dW = parseIntValue(eg[B])
734734 let dO = parseIntValue(eg[C])
735735 let dQ = parseIntValue(eg[D])
736736 let eh = parseIntValue(eg[E])
737737 let cr = eg[F]
738738 [StringEntry(am(toString(dO), toString(dQ)), ch(af, toString(ef), dY, ck, cl, dV, dW, dO, dQ, eh, cr))]
739739 }
740740 else throw("Strict value is not equal to itself.")
741741 }
742742
743743
744744
745745 @Callable(bR)
746746 func emit (ei) = {
747747 let ej = bR.caller
748748 let ek = bR.originCaller
749749 let el = valueOrErrorMessage(getString(aF(toString(ej))), "Invalid LP address called me.")
750750 let em = fromBase58String(el)
751751 let dD = split(valueOrElse(getString(T()), n), m)
752752 let dC = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
753753 if ((0 >= ei))
754754 then nil
755755 else if (containsElement(dD, toString(ej)))
756756 then $Tuple2(nil, dC)
757757 else $Tuple2([Reissue(em, ei, true), ScriptTransfer(bR.caller, ei, em)], "success")
758758 }
759759
760760
761761
762762 @Callable(bR)
763763 func burn (en) = {
764764 let ej = bR.caller
765765 let ek = bR.originCaller
766766 let eo = value(bR.payments[0])
767767 let ep = value(eo.amount)
768768 let eq = toBase58String(value(eo.assetId))
769769 let er = valueOrErrorMessage(getString(aF(toString(ej))), "Invalid LP address called me.")
770770 if ((eq != er))
771771 then K("Invalid asset passed.")
772772 else if ((en != ep))
773773 then K("Invalid amount passed.")
774774 else {
775775 let em = fromBase58String(er)
776776 $Tuple2([Burn(em, en)], "success")
777777 }
778778 }
779779
780780
781781
782782 @Callable(bR)
783783 func modifyWeight (cj,es) = {
784784 let dz = if ((toBase58String(bR.caller.bytes) == valueOrElse(getString(this, Y()), "")))
785785 then true
786786 else bS(bR)
787787 if ((dz == dz))
788788 then {
789789 let aD = bg(aG(cj))
790790 let et = ae(aD)
791791 let eu = ae(g)
792792 let ev = valueOrElse(getInteger(eu), 0)
793793 let dL = valueOrElse(getInteger(et), 0)
794794 let ew = es
795795 let bH = split(bg(O()), m)
796796 let dv = bJ(bH)
797797 let ex = invoke(dv, "onModifyWeight", [cj, aD], nil)
798798 if ((ex == ex))
799799 then {
800800 let ey = if ((ev == 0))
801801 then nil
802802 else [IntegerEntry(eu, 0)]
803803 let ez = ag(aD, 0)
804804 let eA = getInteger(ez)
805805 let eB = if ((eA == unit))
806806 then nil
807807 else [DeleteEntry(ez)]
808808 (([IntegerEntry(et, ew)] ++ ey) ++ eB)
809809 }
810810 else throw("Strict value is not equal to itself.")
811811 }
812812 else throw("Strict value is not equal to itself.")
813813 }
814814
815815
816816
817817 @Callable(bR)
818818 func modifyWeights (eC,eD,eE,eF) = {
819819 let dz = bS(bR)
820820 if ((dz == dz))
821821 then {
822822 let eG = ((5 * f) / 100)
823823 let eH = ((5 * f) / 100)
824824 let eI = ((5 * f) / 100)
825825 let bH = split(bg(O()), m)
826826 let eJ = bJ(bH)
827827 let eK = bK(bH)
828828 let eL = ae(eC)
829829 let eM = ae(eD)
830830 let eN = ae(eE)
831831 let eO = ae(eF)
832832 let eP = bj(eL)
833833 let eQ = bj(eM)
834834 let eR = (eP - eI)
835835 let eS = (eQ - eI)
836836 if ((0 >= eR))
837837 then K(("invalid btcWeightNew: " + toString(eR)))
838838 else if ((0 >= eS))
839839 then K(("invalid ethWeightNew: " + toString(eS)))
840840 else {
841841 let eT = bg(aF(eC))
842842 let eU = bg(aF(eD))
843843 let eV = bg(aF(eE))
844844 let eW = bg(aF(eF))
845845 let eX = invoke(eJ, "onModifyWeight", [eT, eC], nil)
846846 if ((eX == eX))
847847 then {
848848 let eY = invoke(eJ, "onModifyWeight", [eU, eD], nil)
849849 if ((eY == eY))
850850 then {
851851 let eZ = invoke(eJ, "onModifyWeight", [eV, eE], nil)
852852 if ((eZ == eZ))
853853 then {
854854 let fa = invoke(eJ, "onModifyWeight", [eW, eF], nil)
855855 if ((fa == fa))
856856 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)]
857857 else throw("Strict value is not equal to itself.")
858858 }
859859 else throw("Strict value is not equal to itself.")
860860 }
861861 else throw("Strict value is not equal to itself.")
862862 }
863863 else throw("Strict value is not equal to itself.")
864864 }
865865 }
866866 else throw("Strict value is not equal to itself.")
867867 }
868868
869869
870870
871871 @Callable(bR)
872872 func checkWxEmissionPoolLabel (aI,aJ) = {
873873 let fb = {
874874 let bn = getBoolean(aH(aI, aJ))
875875 if ($isInstanceOf(bn, "Boolean"))
876876 then {
877877 let dh = bn
878878 dh
879879 }
880880 else false
881881 }
882882 $Tuple2(nil, fb)
883883 }
884884
885885
886886
887887 @Callable(bR)
888888 func setWxEmissionPoolLabel (aI,aJ) = {
889889 let dz = cE(bR)
890890 if ((dz == dz))
891891 then $Tuple2([BooleanEntry(aH(aI, aJ), true)], unit)
892892 else throw("Strict value is not equal to itself.")
893893 }
894894
895895
896896
897897 @Callable(bR)
898898 func deleteWxEmissionPoolLabel (aI,aJ) = {
899- let dz = if (if ((toString(bR.caller) == getStringValue(this, Y())))
900- then true
901- else (bR.caller == this))
899+ let dz = if ((bR.caller == this))
902900 then true
903901 else cE(bR)
904902 if ((dz == dz))
905903 then $Tuple2([DeleteEntry(aH(aI, aJ))], unit)
906904 else throw("Strict value is not equal to itself.")
907905 }
908906
909907
910908
911909 @Callable(bR)
912910 func onVerificationLoss (aR) = {
913911 let dz = if ((toBase58String(bR.caller.bytes) == valueOrElse(getString(this, X()), "")))
914912 then true
915913 else bS(bR)
916914 if ((dz == dz))
917915 then {
918916 let dG = bL()
919917 let fc = if ((size(dG) > 0))
920918 then true
921919 else K("invalid price assets")
922920 if ((fc == fc))
923921 then {
924922 func fd (fe,ff) = {
925923 let db = invoke(this, "deleteWxEmissionPoolLabel", [aR, ff], nil)
926924 if ((db == db))
927925 then unit
928926 else throw("Strict value is not equal to itself.")
929927 }
930928
931929 let fg = {
932930 let fh = dG
933931 let fi = size(fh)
934932 let fj = unit
935933 func fk (fl,fm) = if ((fm >= fi))
936934 then fl
937935 else fd(fl, fh[fm])
938936
939937 func fn (fl,fm) = if ((fm >= fi))
940938 then fl
941939 else throw("List size exceeds 13")
942940
943941 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)
944942 }
945943 if ((fg == fg))
946944 then $Tuple2(nil, unit)
947945 else throw("Strict value is not equal to itself.")
948946 }
949947 else throw("Strict value is not equal to itself.")
950948 }
951949 else throw("Strict value is not equal to itself.")
952950 }
953951
954952
955953
956954 @Callable(bR)
957955 func isPoolOneTokenOperationsDisabledREADONLY (af) = {
958956 let eg = cv(af)
959957 let aq = $Tuple2(parseIntValue(eg[C]), parseIntValue(eg[D]))
960958 let fo = valueOrElse(getBoolean(ap(aq)), false)
961959 let fp = valueOrElse(getBoolean(as()), false)
962960 $Tuple2(nil, if (fp)
963961 then true
964962 else fo)
965963 }
966964
967965
968966
969967 @Callable(bR)
970968 func isPoolSwapDisabledREADONLY (af) = {
971969 let eg = cv(af)
972970 let aq = $Tuple2(parseIntValue(eg[C]), parseIntValue(eg[D]))
973971 let fq = valueOrElse(getBoolean(at(aq)), false)
974972 let fr = valueOrElse(getBoolean(av()), false)
975973 $Tuple2(nil, if (fr)
976974 then true
977975 else fq)
978976 }
979977
980978
981979
982980 @Callable(bR)
983981 func getInFeeREADONLY (af) = {
984982 let fs = cH(aK(af), aL(), 0)
985983 $Tuple2(nil, fs)
986984 }
987985
988986
989987
990988 @Callable(bR)
991989 func getOutFeeREADONLY (af) = {
992990 let fs = cH(aN(af), aO(), fraction(10, b, 10000))
993991 $Tuple2(nil, fs)
994992 }
995993
996994
997995
998996 @Callable(bR)
999997 func getSwapFeeREADONLY (ft) = {
1000998 let fu = {
1001999 let bn = getString(this, aM(ft))
10021000 if ($isInstanceOf(bn, "String"))
10031001 then {
10041002 let bo = bn
10051003 let fv = split(bo, m)
10061004 let fw = parseIntValue(fv[1])
10071005 let fx = parseIntValue(fv[2])
10081006 $Tuple2(fw, fx)
10091007 }
10101008 else if ($isInstanceOf(bn, "Unit"))
10111009 then unit
10121010 else throw("Match error")
10131011 }
10141012 $Tuple2(nil, fu)
10151013 }
10161014
10171015
10181016
10191017 @Callable(bR)
10201018 func poolInfoREADONLY (fy,fz) = {
10211019 let fA = getInteger(this, ak(fy))
10221020 let fB = getInteger(this, ak(fz))
10231021 let fC = getString(this, aE(value(fA), value(fB)))
10241022 let fD = getString(this, aF(value(fC)))
10251023 let dT = if (if (isDefined(fA))
10261024 then isDefined(fB)
10271025 else false)
10281026 then isDefined(fC)
10291027 else false
10301028 let fE = if (dT)
10311029 then $Tuple2(addressFromStringValue(value(fC)), bk(value(fD)))
10321030 else unit
10331031 $Tuple2(nil, fE)
10341032 }
10351033
10361034
10371035
10381036 @Callable(bR)
10391037 func getPoolStatusREADONLY (af) = {
10401038 let cw = split(bg(aC(af)), m)
10411039 let an = cw[1]
10421040 let ao = cw[2]
10431041 let cN = split(bg(am(an, ao)), m)
10441042 $Tuple2(nil, parseIntValue(cN[w]))
10451043 }
10461044
10471045
10481046
10491047 @Callable(bR)
10501048 func getPoolConfigREADONLY (af) = {
10511049 let cw = split(bg(aC(af)), m)
10521050 let an = cw[1]
10531051 let ao = cw[2]
10541052 let cN = split(bg(am(an, ao)), m)
10551053 $Tuple2(nil, cN)
10561054 }
10571055
10581056
10591057
10601058 @Callable(bR)
10611059 func getPoolConfigByLpAssetIdREADONLY (dY) = {
10621060 let cw = split(bg(aw(dY)), m)
10631061 let an = cw[1]
10641062 let ao = cw[2]
10651063 let cN = split(bg(am(an, ao)), m)
10661064 $Tuple2(nil, cN)
10671065 }
10681066
10691067
10701068
10711069 @Callable(bR)
10721070 func poolExistsREADONLY (aI,aJ) = $Tuple2(nil, cK(aI, aJ))
10731071
10741072
10751073
10761074 @Callable(bR)
10771075 func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aS(af)), false))
10781076
10791077
10801078
10811079 @Callable(bR)
10821080 func getChangeAmpConfigREADONLY (af) = {
10831081 let fF = getIntegerValue(aT(af))
10841082 let fG = getIntegerValue(aU(af))
10851083 let fH = getIntegerValue(aV(af))
10861084 $Tuple2(nil, [fF, fG, fH])
10871085 }
10881086
10891087
10901088
10911089 @Callable(bR)
10921090 func getPoolWeightREADONLY (cj) = {
10931091 let af = bg(aG(cj))
10941092 let fI = valueOrElse(getInteger(ae(af)), 0)
10951093 $Tuple2(nil, fI)
10961094 }
10971095
10981096
10991097
11001098 @Callable(bR)
11011099 func deletePool (aD) = {
11021100 let eg = cv(aD)
11031101 let dz = if ((toString(bR.caller) == cR(aD)))
11041102 then if (cY(aD))
11051103 then true
11061104 else K("Pool is not empty")
11071105 else bS(bR)
11081106 if ((dz == dz))
11091107 then {
11101108 let fJ = if ((valueOrElse(getInteger(ae(aD)), 0) == 0))
11111109 then true
11121110 else K("Pool weight is not Zero")
11131111 if ((fJ == fJ))
11141112 then {
11151113 let fK = if ((eg[w] == toString(r)))
11161114 then true
11171115 else K("Pool must be SHUTDOWN (4)")
11181116 if ((fK == fK))
11191117 then {
11201118 let fL = cQ(aD)
11211119 let aI = fL._1
11221120 let aJ = fL._2
11231121 let cj = fL._3
11241122 let an = fL._4
11251123 let ao = fL._5
11261124 let cT = addressFromStringValue(getStringValue(Z()))
11271125 let fM = invoke(cT, "deletePool", [aI, aJ], nil)
11281126 if ((fM == fM))
11291127 then {
11301128 let dF = addressFromStringValue(getStringValue(Y()))
11311129 let fN = invoke(dF, "deletePool", [aI, aJ], nil)
11321130 if ((fN == fN))
11331131 then {
11341132 let dE = addressFromStringValue(getStringValue(X()))
11351133 let fO = invoke(dE, "deletePool", [aI, aJ], nil)
11361134 if ((fO == fO))
11371135 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))]
11381136 else throw("Strict value is not equal to itself.")
11391137 }
11401138 else throw("Strict value is not equal to itself.")
11411139 }
11421140 else throw("Strict value is not equal to itself.")
11431141 }
11441142 else throw("Strict value is not equal to itself.")
11451143 }
11461144 else throw("Strict value is not equal to itself.")
11471145 }
11481146 else throw("Strict value is not equal to itself.")
11491147 }
11501148
11511149
11521150
11531151 @Callable(bR)
11541152 func getPrice (ft) = {
11551153 let af = addressFromStringValue(ft)
11561154 let cN = cv(ft)
11571155 let cj = fromBase58String(cN[x])
11581156 let fP = cN[y]
11591157 let aJ = cN[z]
11601158 let fQ = value(assetInfo(cj)).quantity
11611159 let fR = {
11621160 let fS = invoke(af, "getAccBalanceWrapperREADONLY", [fP], nil)
11631161 if ($isInstanceOf(fS, "Int"))
11641162 then fS
11651163 else throw(($getType(fS) + " couldn't be cast to Int"))
11661164 }
11671165 let fT = {
11681166 let fS = invoke(af, "getAccBalanceWrapperREADONLY", [aJ], nil)
11691167 if ($isInstanceOf(fS, "Int"))
11701168 then fS
11711169 else throw(($getType(fS) + " couldn't be cast to Int"))
11721170 }
11731171 let fU = if ((fQ == 0))
11741172 then 0
11751173 else {
11761174 let fS = ({
11771175 let fS = invoke(af, "calcPricesWrapperREADONLY", [fR, fT, fQ], nil)
11781176 if ($isInstanceOf(fS, "List[Any]"))
11791177 then fS
11801178 else throw(($getType(fS) + " couldn't be cast to List[Any]"))
11811179 })[0]
11821180 if ($isInstanceOf(fS, "String"))
11831181 then fS
11841182 else throw(($getType(fS) + " couldn't be cast to String"))
11851183 }
11861184 $Tuple2(nil, fU)
11871185 }
11881186
11891187
11901188
11911189 @Callable(bR)
11921190 func checkBalance (dY) = {
11931191 let ft = bg(aG(dY))
11941192 let af = addressFromStringValue(ft)
11951193 let cN = cv(ft)
11961194 let fy = cN[y]
11971195 let fz = cN[z]
11981196 let fV = getIntegerValue(this, aP())
11991197 let fW = valueOrElse(getInteger(this, aQ(fy)), fV)
12001198 let fX = valueOrElse(getInteger(this, aQ(fz)), fV)
12011199 let fY = {
12021200 let fS = invoke(af, "getAccBalanceWrapperREADONLY", [fy], nil)
12031201 if ($isInstanceOf(fS, "Int"))
12041202 then fS
12051203 else throw(($getType(fS) + " couldn't be cast to Int"))
12061204 }
12071205 let fZ = {
12081206 let fS = invoke(af, "getAccBalanceWrapperREADONLY", [fz], nil)
12091207 if ($isInstanceOf(fS, "Int"))
12101208 then fS
12111209 else throw(($getType(fS) + " couldn't be cast to Int"))
12121210 }
12131211 let ga = (fY >= (fW / 2))
12141212 let gb = (fZ >= (fX / 2))
12151213 let gc = if (ga)
12161214 then gb
12171215 else false
12181216 $Tuple2(nil, gc)
12191217 }
12201218
12211219
12221220 @Verifier(gd)
12231221 func ge () = {
12241222 let gf = {
12251223 let bn = bM()
12261224 if ($isInstanceOf(bn, "ByteVector"))
12271225 then {
12281226 let bT = bn
12291227 bT
12301228 }
12311229 else if ($isInstanceOf(bn, "Unit"))
12321230 then gd.senderPublicKey
12331231 else throw("Match error")
12341232 }
12351233 sigVerify(gd.bodyBytes, gd.proofs[0], gf)
12361234 }
12371235

github/deemru/w8io/fabc49c 
122.57 ms