tx · AyVgAYzdoTgVnR2C3TYctnskQZY4KHjjJ6uTDdNzgt4v

3PLFZ6T6AhuzZ9SMoFpHBx91oFyy68a3GCt:  -0.01400000 Waves

2019.10.17 16:50 [1754256] smart account 3PLFZ6T6AhuzZ9SMoFpHBx91oFyy68a3GCt > SELF 0.00000000 Waves

{ "type": 13, "id": "AyVgAYzdoTgVnR2C3TYctnskQZY4KHjjJ6uTDdNzgt4v", "fee": 1400000, "feeAssetId": null, "timestamp": 1571320212273, "version": 1, "sender": "3PLFZ6T6AhuzZ9SMoFpHBx91oFyy68a3GCt", "senderPublicKey": "Asi3vKEqgmq2AuW1fky6nxPgx65gB8esHy3DGsubEbkw", "proofs": [ "BrTfRnjmZoxDznz3BY3R2s8GKwTdDLu5jxN7NNnGHHLNJ4sQRu8dT3oPsj2rGJGTZ7VmLCiZU9v2jL5xKM1F2Wf" ], "script": "base64:AAIDAAAAAAAAAF4IARIECgIICBIFCgMICAgSBAoCCAgSBAoCCAgSBAoCCAgSBAoCCAgSAwoBCBIHCgUIAQEBCBIECgIICBIECgIICBIDCgEIEgYKBAgBCAgSAwoBCBIECgIICBIDCgEIAAAAYQAAAAAETk9ORQIAAAAEbm9uZQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABAAAAA2tleQQAAAADbnVtBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABQAAAANudW0BAAAAC2dldFN0ckJ5S2V5AAAAAQAAAANrZXkEAAAAA3N0cgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQUAAAADc3RyAQAAABJnZXRLZXlXaGl0ZWxpc3RSZWYAAAABAAAAB2FjY291bnQJAAEsAAAAAgIAAAAHd2xfcmVmXwUAAAAHYWNjb3VudAEAAAAVZ2V0S2V5V2hpdGVsaXN0U3RhdHVzAAAAAQAAAAdhY2NvdW50CQABLAAAAAICAAAAB3dsX3N0c18FAAAAB2FjY291bnQBAAAADWdldEtleUJhbGFuY2UAAAABAAAAB2FjY291bnQJAAEsAAAAAgIAAAAIYmFsYW5jZV8FAAAAB2FjY291bnQBAAAAEmdldEtleVdoaXRlbGlzdEJpbwAAAAEAAAAHYWNjb3VudAkAASwAAAACAgAAAAd3bF9iaW9fBQAAAAdhY2NvdW50AQAAABRnZXRLZXlXaGl0ZWxpc3RCbG9jawAAAAEAAAAHYWNjb3VudAkAASwAAAACAgAAAAd3bF9ibGtfBQAAAAdhY2NvdW50AQAAABBnZXRLZXlJdGVtQXV0aG9yAAAAAQAAAARpdGVtCQABLAAAAAICAAAAB2F1dGhvcl8FAAAABGl0ZW0BAAAAD2dldEtleUl0ZW1CbG9jawAAAAEAAAAEaXRlbQkAASwAAAACAgAAAAZibG9ja18FAAAABGl0ZW0BAAAAGmdldEtleUl0ZW1Wb3RpbmdFeHBpcmF0aW9uAAAAAQAAAARpdGVtCQABLAAAAAICAAAAEWV4cGlyYXRpb25fYmxvY2tfBQAAAARpdGVtAQAAAA5nZXRLZXlJdGVtQmFuawAAAAEAAAAEaXRlbQkAASwAAAACAgAAAAViYW5rXwUAAAAEaXRlbQEAAAAQZ2V0S2V5SXRlbVN0YXR1cwAAAAEAAAAEaXRlbQkAASwAAAACAgAAAAdzdGF0dXNfBQAAAARpdGVtAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEAAAAEaXRlbQkAASwAAAACAgAAAAlkYXRhanNvbl8FAAAABGl0ZW0BAAAAEWdldEtleUNvbnRlc3REYXRhAAAAAQAAAARpdGVtCQABLAAAAAICAAAAEWNvbnRlc3RfZGF0YWpzb25fBQAAAARpdGVtAQAAABlnZXRLZXlJdGVtQ3Jvd2RFeHBpcmF0aW9uAAAAAQAAAARpdGVtCQABLAAAAAICAAAAD2V4cGlyYXRpb25fb25lXwUAAAAEaXRlbQEAAAAZZ2V0S2V5SXRlbVdoYWxlRXhwaXJhdGlvbgAAAAEAAAAEaXRlbQkAASwAAAACAgAAAA9leHBpcmF0aW9uX3R3b18FAAAABGl0ZW0BAAAAEmdldEtleUl0ZW1OQ29tbWl0cwAAAAEAAAAEaXRlbQkAASwAAAACAgAAAAluY29tbWl0c18FAAAABGl0ZW0BAAAAF2dldEtleUl0ZW1BY2NSZXBvcnREYXRhAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAB3JlcG9ydF8FAAAABGl0ZW0CAAAAAV8FAAAAB2FjY291bnQBAAAAE2dldEtleUl0ZW1BY2NDb21taXQAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAHY29tbWl0XwUAAAAEaXRlbQIAAAABXwUAAAAHYWNjb3VudAEAAAATZ2V0S2V5SXRlbUFjY1JldmVhbAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAdyZXZlYWxfBQAAAARpdGVtAgAAAAFfBQAAAAdhY2NvdW50AQAAABJnZXRLZXlJdGVtVm90ZXNZZXMAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAIY250X3llc18FAAAABGl0ZW0BAAAAEWdldEtleUl0ZW1Wb3Rlc05vAAAAAQAAAARpdGVtCQABLAAAAAICAAAAB2NudF9ub18FAAAABGl0ZW0BAAAAEmdldEtleUl0ZW1BY2NGaW5hbAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAZmaW5hbF8FAAAABGl0ZW0CAAAAAV8FAAAAB2FjY291bnQBAAAAFmdldEtleUl0ZW1GdW5kUG9zaXRpdmUAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAOcG9zaXRpdmVfZnVuZF8FAAAABGl0ZW0BAAAAFmdldEtleUl0ZW1GdW5kTmVnYXRpdmUAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAObmVnYXRpdmVfZnVuZF8FAAAABGl0ZW0BAAAAGWdldEtleUl0ZW1BY2NGdW5kUG9zaXRpdmUAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkAASwAAAACCQABLAAAAAIJAQAAABZnZXRLZXlJdGVtRnVuZFBvc2l0aXZlAAAAAQUAAAAEaXRlbQIAAAABXwUAAAAHYWNjb3VudAEAAAAZZ2V0S2V5SXRlbUFjY0Z1bmROZWdhdGl2ZQAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQABLAAAAAIJAAEsAAAAAgkBAAAAFmdldEtleUl0ZW1GdW5kTmVnYXRpdmUAAAABBQAAAARpdGVtAgAAAAFfBQAAAAdhY2NvdW50AQAAABdnZXRLZXlJdGVtQWNjUmV2aWV3c0NudAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxyZXZpZXdzX2NudF8FAAAABGl0ZW0CAAAAAV8FAAAAB2FjY291bnQBAAAAE2dldEtleUl0ZW1BY2NSZXZpZXcAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAHcmV2aWV3XwUAAAAEaXRlbQIAAAABXwUAAAAHYWNjb3VudAEAAAASZ2V0S2V5VHJhbnNmZXJMaW5rAAAAAQAAAARoYXNoCQABLAAAAAICAAAADnRyYW5zZmVyX2xpbmtfBQAAAARoYXNoAQAAABdnZXRLZXlJdGVtQWNjUmV2aWV3VGV4dAAAAAMAAAAEaXRlbQAAAAdhY2NvdW50AAAAA2NudAkAASwAAAACCQABLAAAAAIJAQAAABNnZXRLZXlJdGVtQWNjUmV2aWV3AAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAIAAAAJX3RleHRfaWQ6BQAAAANjbnQBAAAAF2dldEtleUl0ZW1BY2NSZXZpZXdNb2RlAAAAAwAAAARpdGVtAAAAB2FjY291bnQAAAADY250CQABLAAAAAIJAAEsAAAAAgkBAAAAE2dldEtleUl0ZW1BY2NSZXZpZXcAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AgAAAAlfbW9kZV9pZDoFAAAAA2NudAEAAAAXZ2V0S2V5SXRlbUFjY1Jldmlld1RpZXIAAAADAAAABGl0ZW0AAAAHYWNjb3VudAAAAANjbnQJAAEsAAAAAgkAASwAAAACCQEAAAATZ2V0S2V5SXRlbUFjY1JldmlldwAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQCAAAACV90aWVyX2lkOgUAAAADY250AQAAABtnZXRLZXlJdGVtQWNjVm90ZVJldmlld1RleHQAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkAASwAAAACCQEAAAATZ2V0S2V5SXRlbUFjY1JldmlldwAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQCAAAAC192b3RlcmV2aWV3AQAAABxnZXRLZXlJdGVtQWNjV2hhbGVSZXZpZXdUZXh0AAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkBAAAAE2dldEtleUl0ZW1BY2NSZXZpZXcAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AgAAAAxfd2hhbGVyZXZpZXcBAAAAFmdldEtleUl0ZW1CdXlvdXRBbW91bnQAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAOYnV5b3V0X2Ftb3VudF8FAAAABGl0ZW0BAAAAFWdldEtleUl0ZW1BY2NXaW5uaW5ncwAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAl3aW5uaW5nc18FAAAABGl0ZW0CAAAAAV8FAAAAB2FjY291bnQBAAAAFWdldEtleUZyZWVJbnZpdGVDb3VudAAAAAACAAAAEWZyZWVfaW52aXRlX2NvdW50AQAAABVnZXRLZXlGcmVlSW52aXRlQmxvY2sAAAAAAgAAABFmcmVlX2ludml0ZV9ibG9jawEAAAAUZ2V0VmFsdWVXaGl0ZWxpc3RSZWYAAAABAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlXaGl0ZWxpc3RSZWYAAAABBQAAAAdhY2NvdW50AQAAABdnZXRWYWx1ZVdoaXRlbGlzdFN0YXR1cwAAAAEAAAAHYWNjb3VudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAFWdldEtleVdoaXRlbGlzdFN0YXR1cwAAAAEFAAAAB2FjY291bnQBAAAAD2dldFZhbHVlQmFsYW5jZQAAAAEAAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAADWdldEtleUJhbGFuY2UAAAABBQAAAAdhY2NvdW50AQAAABRnZXRWYWx1ZVdoaXRlbGlzdEJpbwAAAAEAAAAHYWNjb3VudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleVdoaXRlbGlzdEJpbwAAAAEFAAAAB2FjY291bnQBAAAAFmdldFZhbHVlV2hpdGVsaXN0QmxvY2sAAAABAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABRnZXRLZXlXaGl0ZWxpc3RCbG9jawAAAAEFAAAAB2FjY291bnQBAAAAEmdldFZhbHVlSXRlbUF1dGhvcgAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEGdldEtleUl0ZW1BdXRob3IAAAABBQAAAARpdGVtAQAAABFnZXRWYWx1ZUl0ZW1CbG9jawAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAD2dldEtleUl0ZW1CbG9jawAAAAEFAAAABGl0ZW0BAAAAHGdldFZhbHVlSXRlbVZvdGluZ0V4cGlyYXRpb24AAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABpnZXRLZXlJdGVtVm90aW5nRXhwaXJhdGlvbgAAAAEFAAAABGl0ZW0BAAAAEGdldFZhbHVlSXRlbUJhbmsAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAAA5nZXRLZXlJdGVtQmFuawAAAAEFAAAABGl0ZW0BAAAAEmdldFZhbHVlSXRlbVN0YXR1cwAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtAQAAABBnZXRWYWx1ZUl0ZW1EYXRhAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABBQAAAARpdGVtAQAAABtnZXRWYWx1ZUl0ZW1Dcm93ZEV4cGlyYXRpb24AAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABlnZXRLZXlJdGVtQ3Jvd2RFeHBpcmF0aW9uAAAAAQUAAAAEaXRlbQEAAAAbZ2V0VmFsdWVJdGVtV2hhbGVFeHBpcmF0aW9uAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAZZ2V0S2V5SXRlbVdoYWxlRXhwaXJhdGlvbgAAAAEFAAAABGl0ZW0BAAAAFGdldFZhbHVlSXRlbU5Db21taXRzAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbU5Db21taXRzAAAAAQUAAAAEaXRlbQEAAAAVZ2V0VmFsdWVJdGVtQWNjQ29tbWl0AAAAAgAAAARpdGVtAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABNnZXRLZXlJdGVtQWNjQ29tbWl0AAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAEAAAAVZ2V0VmFsdWVJdGVtQWNjUmV2ZWFsAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABNnZXRLZXlJdGVtQWNjUmV2ZWFsAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAEAAAAUZ2V0VmFsdWVJdGVtVm90ZXNZZXMAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABJnZXRLZXlJdGVtVm90ZXNZZXMAAAABBQAAAARpdGVtAQAAABNnZXRWYWx1ZUl0ZW1Wb3Rlc05vAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAARZ2V0S2V5SXRlbVZvdGVzTm8AAAABBQAAAARpdGVtAQAAABRnZXRWYWx1ZUl0ZW1BY2NGaW5hbAAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAASZ2V0S2V5SXRlbUFjY0ZpbmFsAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAEAAAAYZ2V0VmFsdWVJdGVtRnVuZFBvc2l0aXZlAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAWZ2V0S2V5SXRlbUZ1bmRQb3NpdGl2ZQAAAAEFAAAABGl0ZW0BAAAAGGdldFZhbHVlSXRlbUZ1bmROZWdhdGl2ZQAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldEtleUl0ZW1GdW5kTmVnYXRpdmUAAAABBQAAAARpdGVtAQAAABtnZXRWYWx1ZUl0ZW1BY2NGdW5kUG9zaXRpdmUAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGWdldEtleUl0ZW1BY2NGdW5kUG9zaXRpdmUAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AQAAABtnZXRWYWx1ZUl0ZW1BY2NGdW5kTmVnYXRpdmUAAAACAAAABGl0ZW0AAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGWdldEtleUl0ZW1BY2NGdW5kTmVnYXRpdmUAAAACBQAAAARpdGVtBQAAAAdhY2NvdW50AQAAABlnZXRWYWx1ZUl0ZW1BY2NSZXZpZXdzQ250AAAAAgAAAARpdGVtAAAAB2FjY291bnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABdnZXRLZXlJdGVtQWNjUmV2aWV3c0NudAAAAAIFAAAABGl0ZW0FAAAAB2FjY291bnQBAAAAGWdldFZhbHVlSXRlbUFjY1Jldmlld1RleHQAAAADAAAABGl0ZW0AAAAHYWNjb3VudAAAAANjbnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABdnZXRLZXlJdGVtQWNjUmV2aWV3VGV4dAAAAAMFAAAABGl0ZW0FAAAAB2FjY291bnQFAAAAA2NudAEAAAAZZ2V0VmFsdWVJdGVtQWNjUmV2aWV3TW9kZQAAAAMAAAAEaXRlbQAAAAdhY2NvdW50AAAAA2NudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAF2dldEtleUl0ZW1BY2NSZXZpZXdNb2RlAAAAAwUAAAAEaXRlbQUAAAAHYWNjb3VudAUAAAADY250AQAAABlnZXRWYWx1ZUl0ZW1BY2NSZXZpZXdUaWVyAAAAAwAAAARpdGVtAAAAB2FjY291bnQAAAADY250CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAXZ2V0S2V5SXRlbUFjY1Jldmlld1RpZXIAAAADBQAAAARpdGVtBQAAAAdhY2NvdW50BQAAAANjbnQBAAAAGGdldFZhbHVlSXRlbUJ1eW91dEFtb3VudAAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldEtleUl0ZW1CdXlvdXRBbW91bnQAAAABBQAAAARpdGVtAQAAABdnZXRWYWx1ZUl0ZW1BY2NXaW5uaW5ncwAAAAIAAAAEaXRlbQAAAAdhY2NvdW50CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5SXRlbUFjY1dpbm5pbmdzAAAAAgUAAAAEaXRlbQUAAAAHYWNjb3VudAAAAAALV0hJVEVMSVNURUQCAAAACnJlZ2lzdGVyZWQAAAAAB0lOVklURUQCAAAAB2ludml0ZWQAAAAABVdIQUxFAgAAAAV3aGFsZQAAAAALU1BFTkRJTlZJVEUCAAAADHNwZW5kX2ludml0ZQAAAAAGQ09NTUlUAgAAAA12b3RpbmdfY29tbWl0AAAAAAZSRVZFQUwCAAAADXZvdGluZ19yZXZlYWwAAAAACEZFQVRVUkVEAgAAAAhmZWF0dXJlZAAAAAAIREVMSVNURUQCAAAACGRlbGlzdGVkAAAAAAdDQVNIT1VUAgAAAAdjYXNob3V0AAAAAAZCVVlPVVQCAAAABmJ1eW91dAAAAAAIRklOSVNIRUQCAAAACGZpbmlzaGVkAAAAAAdDTEFJTUVEAgAAAAdjbGFpbWVkAAAAAAhQT1NJVElWRQIAAAAIcG9zaXRpdmUAAAAACE5FR0FUSVZFAgAAAAhuZWdhdGl2ZQAAAAAHR0VORVNJUwIAAAAjM1A4RnZ5MXlEd05IdlZyYWJlNGVrNWI5ZEF3eEZqREtWN1IAAAAABUFETUlOAgAAACMzUDlORHh0OVk2ZVBmTTloa1F5c2dTdmJISnZpaHI1NloxOAAAAAAETEFCUwIAAAAjM1AzTVVDdkpqdmlKYXhNVWU3NDNMVmV6M3FUaGJMN1U4dVAAAAAABlZPVEVSUwAAAAAAAAAAAwAAAAAGUVVPUlVNAAAAAAAAAAACAAAAAAVUSUVSUwkABEwAAAACCQAAaAAAAAIAAAAAAAAAAAMAAAAAAAX14QAJAARMAAAAAgkAAGgAAAACAAAAAAAAAAAKAAAAAAAF9eEACQAETAAAAAIJAABoAAAAAgAAAAAAAAAAZAAAAAAABfXhAAkABEwAAAACCQAAaAAAAAIAAAAAAAAAASwAAAAAAAX14QAJAARMAAAAAgkAAGgAAAACAAAAAAAAAAPoAAAAAAAF9eEABQAAAANuaWwAAAAAB1ZPVEVCRVQJAABoAAAAAgAAAAAAAAAAAQAAAAAABfXhAAAAAAALQkxPQ0tTSU5EQVkAAAAAAAAABaAAAAAACk1VTFRJUExJRVIAAAAAAAAAAJYAAAAADU1BWEZSRUVJTlZJVEUAAAAAAAAAA+gAAAAACUlOVklURUZFRQAAAAAAAA27oAAAAAAKQURESVRFTUZFRQAAAAAAAA9CQAAAAAAPZnJlZUludml0ZUNvdW50CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5RnJlZUludml0ZUNvdW50AAAAAAAAAAAPZnJlZUludml0ZUJsb2NrCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0S2V5RnJlZUludml0ZUJsb2NrAAAAAAAAAA8AAAABaQEAAAAKaW52aXRldXNlcgAAAAIAAAAKbmV3YWNjb3VudAAAAARkYXRhBAAAAAdhY2NvdW50CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAACW5ld3N0YXR1cwkBAAAAF2dldFZhbHVlV2hpdGVsaXN0U3RhdHVzAAAAAQUAAAAKbmV3YWNjb3VudAQAAAAKY3VycnN0YXR1cwkBAAAAF2dldFZhbHVlV2hpdGVsaXN0U3RhdHVzAAAAAQUAAAAHYWNjb3VudAMDCQAAAAAAAAIFAAAACW5ld3N0YXR1cwUAAAALV0hJVEVMSVNURUQGCQAAAAAAAAIFAAAACW5ld3N0YXR1cwUAAAAFV0hBTEUJAAACAAAAAQIAAAAgVXNlciBoYXMgYWxyZWFkeSBiZWVuIHJlZ2lzdGVyZWQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAAWkAAAAKZmVlQXNzZXRJZAkAAAIAAAABAgAAAA1pbnZhbGlkIGFzc2V0AwkAAGYAAAACCAUAAAABaQAAAANmZWUFAAAACUlOVklURUZFRQkAAAIAAAABAgAAAAxmZWUgbW9yZSBtYXgDAwMJAQAAAAIhPQAAAAIFAAAACmN1cnJzdGF0dXMFAAAAC1dISVRFTElTVEVECQEAAAACIT0AAAACBQAAAAdhY2NvdW50BQAAAAdHRU5FU0lTBwkBAAAAAiE9AAAAAgUAAAAKY3VycnN0YXR1cwUAAAAFV0hBTEUHCQAAAgAAAAEJAAEsAAAAAgIAAAAsWW91ciBhY2NvdW50IHNob3VsZCBiZSB3aGl0ZWxpc3RlZC4gc3RhdHVzOiAFAAAACmN1cnJzdGF0dXMJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5V2hpdGVsaXN0UmVmAAAAAQUAAAAKbmV3YWNjb3VudAUAAAAHYWNjb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldEtleVdoaXRlbGlzdEJpbwAAAAEFAAAACm5ld2FjY291bnQFAAAABGRhdGEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlXaGl0ZWxpc3RTdGF0dXMAAAABBQAAAApuZXdhY2NvdW50BQAAAAdJTlZJVEVECQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5RnJlZUludml0ZUJsb2NrAAAAAAMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAA9mcmVlSW52aXRlQmxvY2sJAABkAAAAAgUAAAAGaGVpZ2h0BQAAAAtCTE9DS1NJTkRBWQUAAAAPZnJlZUludml0ZUJsb2NrCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5RnJlZUludml0ZUNvdW50AAAAAAMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAA9mcmVlSW52aXRlQmxvY2sFAAAADU1BWEZSRUVJTlZJVEUJAABlAAAAAgUAAAAPZnJlZUludml0ZUNvdW50AAAAAAAAAAABBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhY2NvdW50AwMJAAAAAAAAAgkBAAAADHdhdmVzQmFsYW5jZQAAAAEJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAHYWNjb3VudAAAAAAAAAAAAAMJAABmAAAAAgUAAAAPZnJlZUludml0ZUNvdW50AAAAAAAAAAAABgkAAGYAAAACBQAAAAZoZWlnaHQFAAAAD2ZyZWVJbnZpdGVCbG9jawcIBQAAAAFpAAAAA2ZlZQAAAAAAAAAAAAUAAAAEdW5pdAUAAAADbmlsAAAAAWkBAAAADHNpZ251cGJ5bGluawAAAAMAAAAEaGFzaAAAAARkYXRhAAAABHR5cGUEAAAAB2FjY291bnQJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAGc3RhdHVzCQEAAAAXZ2V0VmFsdWVXaGl0ZWxpc3RTdGF0dXMAAAABBQAAAARoYXNoAwkBAAAAAiE9AAAAAgUAAAAGc3RhdHVzBQAAAAdJTlZJVEVECQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAChSZWZlcnJhbCBpbnZpdGUgbmVlZGVkLiBDdXJyZW50IHN0YXR1czogBQAAAAZzdGF0dXMCAAAABiwga2V5OgkBAAAAFWdldEtleVdoaXRlbGlzdFN0YXR1cwAAAAEFAAAABGhhc2gCAAAACiwgYWNjb3VudDoFAAAABGhhc2gDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAAWkAAAAKZmVlQXNzZXRJZAkAAAIAAAABAgAAAA1pbnZhbGlkIGFzc2V0AwkAAGYAAAACCAUAAAABaQAAAANmZWUFAAAACUlOVklURUZFRQkAAAIAAAABAgAAAAxmZWUgbW9yZSBtYXgJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5V2hpdGVsaXN0QmlvAAAAAQUAAAAHYWNjb3VudAUAAAAEZGF0YQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFGdldEtleVdoaXRlbGlzdEJsb2NrAAAAAQUAAAAHYWNjb3VudAUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5V2hpdGVsaXN0U3RhdHVzAAAAAQUAAAAHYWNjb3VudAMJAAAAAAAAAgUAAAAEdHlwZQUAAAAFV0hBTEUFAAAABVdIQUxFBQAAAAtXSElURUxJU1RFRAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldEtleVdoaXRlbGlzdFJlZgAAAAEFAAAAB2FjY291bnQJAQAAABRnZXRWYWx1ZVdoaXRlbGlzdFJlZgAAAAEFAAAABGhhc2gJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlGcmVlSW52aXRlQmxvY2sAAAAAAwkAAGYAAAACBQAAAAZoZWlnaHQFAAAAD2ZyZWVJbnZpdGVCbG9jawkAAGQAAAACBQAAAAZoZWlnaHQFAAAAC0JMT0NLU0lOREFZBQAAAA9mcmVlSW52aXRlQmxvY2sJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlGcmVlSW52aXRlQ291bnQAAAAAAwkAAGYAAAACBQAAAAZoZWlnaHQFAAAAD2ZyZWVJbnZpdGVCbG9jawUAAAANTUFYRlJFRUlOVklURQkAAGUAAAACBQAAAA9mcmVlSW52aXRlQ291bnQAAAAAAAAAAAEFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FjY291bnQDAwkAAAAAAAACCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhY2NvdW50AAAAAAAAAAAAAwkAAGYAAAACBQAAAA9mcmVlSW52aXRlQ291bnQAAAAAAAAAAAAGCQAAZgAAAAIFAAAABmhlaWdodAUAAAAPZnJlZUludml0ZUJsb2NrBwgFAAAAAWkAAAADZmVlAAAAAAAAAAAABQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAGc2lnbnVwAAAAAgAAAARkYXRhAAAABHR5cGUEAAAAB2FjY291bnQJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAGc3RhdHVzCQEAAAAXZ2V0VmFsdWVXaGl0ZWxpc3RTdGF0dXMAAAABBQAAAAdhY2NvdW50AwkAAAAAAAACBQAAAAZzdGF0dXMFAAAABE5PTkUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAKFJlZmVycmFsIGludml0ZSBuZWVkZWQuIEN1cnJlbnQgc3RhdHVzOiAFAAAABnN0YXR1cwIAAAAGLCBrZXk6CQEAAAAVZ2V0S2V5V2hpdGVsaXN0U3RhdHVzAAAAAQUAAAAHYWNjb3VudAIAAAAKLCBhY2NvdW50OgUAAAAHYWNjb3VudAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldEtleVdoaXRlbGlzdEJpbwAAAAEFAAAAB2FjY291bnQFAAAABGRhdGEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABRnZXRLZXlXaGl0ZWxpc3RCbG9jawAAAAEFAAAAB2FjY291bnQFAAAABmhlaWdodAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFWdldEtleVdoaXRlbGlzdFN0YXR1cwAAAAEFAAAAB2FjY291bnQDCQAAAAAAAAIFAAAABHR5cGUFAAAABVdIQUxFBQAAAAVXSEFMRQUAAAALV0hJVEVMSVNURUQFAAAAA25pbAAAAAFpAQAAAAp1c2VydXBkYXRlAAAAAgAAAARkYXRhAAAABHR5cGUEAAAAB2FjY291bnQJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAGc3RhdHVzCQEAAAAXZ2V0VmFsdWVXaGl0ZWxpc3RTdGF0dXMAAAABBQAAAAdhY2NvdW50AwkAAAAAAAACBQAAAAZzdGF0dXMFAAAABE5PTkUJAAACAAAAAQIAAAAPdXNlciBub3Qgc2lnbnVwAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAFpAAAACmZlZUFzc2V0SWQJAAACAAAAAQIAAAANaW52YWxpZCBhc3NldAMJAABmAAAAAggFAAAAAWkAAAADZmVlBQAAAAlJTlZJVEVGRUUJAAACAAAAAQIAAAAMZmVlIG1vcmUgbWF4CQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEmdldEtleVdoaXRlbGlzdEJpbwAAAAEFAAAAB2FjY291bnQFAAAABGRhdGEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlXaGl0ZWxpc3RTdGF0dXMAAAABBQAAAAdhY2NvdW50AwkAAAAAAAACBQAAAAR0eXBlBQAAAAVXSEFMRQUAAAAFV0hBTEUFAAAAC1dISVRFTElTVEVECQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5RnJlZUludml0ZUJsb2NrAAAAAAMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAA9mcmVlSW52aXRlQmxvY2sJAABkAAAAAgUAAAAGaGVpZ2h0BQAAAAtCTE9DS1NJTkRBWQUAAAAPZnJlZUludml0ZUJsb2NrCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5RnJlZUludml0ZUNvdW50AAAAAAMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAA9mcmVlSW52aXRlQmxvY2sFAAAADU1BWEZSRUVJTlZJVEUJAABlAAAAAgUAAAAPZnJlZUludml0ZUNvdW50AAAAAAAAAAABBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhY2NvdW50AwMJAAAAAAAAAgkBAAAADHdhdmVzQmFsYW5jZQAAAAEJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAHYWNjb3VudAAAAAAAAAAAAAMJAABmAAAAAgUAAAAPZnJlZUludml0ZUNvdW50AAAAAAAAAAAABgkAAGYAAAACBQAAAAZoZWlnaHQFAAAAD2ZyZWVJbnZpdGVCbG9jawcIBQAAAAFpAAAAA2ZlZQAAAAAAAAAAAAUAAAAEdW5pdAUAAAADbmlsAAAAAWkBAAAACnByb2p1cGRhdGUAAAACAAAABGl0ZW0AAAAEZGF0YQQAAAAHYWNjb3VudAkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAwkBAAAAAiE9AAAAAgkBAAAAEmdldFZhbHVlSXRlbUF1dGhvcgAAAAEFAAAABGl0ZW0FAAAAB2FjY291bnQJAAACAAAAAQIAAAARWW91J3JlIG5vdCBhdXRob3IDCQAAZgAAAAIIBQAAAAFpAAAAA2ZlZQUAAAAJSU5WSVRFRkVFCQAAAgAAAAECAAAADGZlZSBtb3JlIG1heAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEFAAAABGl0ZW0FAAAABGRhdGEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlGcmVlSW52aXRlQmxvY2sAAAAAAwkAAGYAAAACBQAAAAZoZWlnaHQFAAAAD2ZyZWVJbnZpdGVCbG9jawkAAGQAAAACBQAAAAZoZWlnaHQFAAAAC0JMT0NLU0lOREFZBQAAAA9mcmVlSW52aXRlQmxvY2sJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRLZXlGcmVlSW52aXRlQ291bnQAAAAAAwkAAGYAAAACBQAAAAZoZWlnaHQFAAAAD2ZyZWVJbnZpdGVCbG9jawUAAAANTUFYRlJFRUlOVklURQkAAGUAAAACBQAAAA9mcmVlSW52aXRlQ291bnQAAAAAAAAAAAEFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAB2FjY291bnQDAwkAAAAAAAACCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhY2NvdW50AAAAAAAAAAAAAwkAAGYAAAACBQAAAA9mcmVlSW52aXRlQ291bnQAAAAAAAAAAAAGCQAAZgAAAAIFAAAABmhlaWdodAUAAAAPZnJlZUludml0ZUJsb2NrBwgFAAAAAWkAAAADZmVlAAAAAAAAAAAABQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAASY29udGVzdEFkZE9yVXBkYXRlAAAAAgAAAARpdGVtAAAABGRhdGEEAAAAB2FjY291bnQJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwMJAQAAAAIhPQAAAAIFAAAAB2FjY291bnQFAAAABUFETUlOCQAAAgAAAAECAAAAEFlvdSdyZSBub3QgYWRtaW4JAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABFnZXRLZXlDb250ZXN0RGF0YQAAAAEFAAAABGl0ZW0FAAAABGRhdGEFAAAAA25pbAAAAAFpAQAAAAh3aXRoZHJhdwAAAAEAAAAHYWRkcmVzcwQAAAAGYW1vdW50CQEAAAAPZ2V0VmFsdWVCYWxhbmNlAAAAAQUAAAAHYWRkcmVzcwMJAABnAAAAAgAAAAAAAAAAAAUAAAAGYW1vdW50CQAAAgAAAAECAAAAEk5vdCBlbm91Z2ggYmFsYW5jZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA1nZXRLZXlCYWxhbmNlAAAAAQUAAAAHYWRkcmVzcwAAAAAAAAAAAAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAHYWRkcmVzcwUAAAAGYW1vdW50BQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAHYWRkaXRlbQAAAAUAAAAEaXRlbQAAAAlleHBWb3RpbmcAAAAIZXhwQ3Jvd2QAAAAIZXhwV2hhbGUAAAAEZGF0YQQAAAAHYWNjb3VudAkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAFpAAAACmZlZUFzc2V0SWQJAAACAAAAAQIAAAANaW52YWxpZCBhc3NldAMJAABmAAAAAggFAAAAAWkAAAADZmVlBQAAAAlJTlZJVEVGRUUJAAACAAAAAQIAAAAMZmVlIG1vcmUgbWF4AwkBAAAAASEAAAABAwMJAABmAAAAAgUAAAAJZXhwVm90aW5nAAAAAAAAAAACCQAAZgAAAAIFAAAACGV4cENyb3dkBQAAAAlleHBWb3RpbmcHCQAAZgAAAAIFAAAACGV4cFdoYWxlBQAAAAhleHBDcm93ZAcJAAACAAAAAQIAAAAZSW5jb3JyZWN0IHRpbWUgcGFyYW1ldGVycwMJAQAAAAIhPQAAAAIJAQAAABJnZXRWYWx1ZUl0ZW1BdXRob3IAAAABBQAAAARpdGVtBQAAAAROT05FCQAAAgAAAAECAAAAEkl0ZW0gYWxyZWFkeSBleGlzdAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABBnZXRLZXlJdGVtQXV0aG9yAAAAAQUAAAAEaXRlbQUAAAAHYWNjb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldEtleUl0ZW1CbG9jawAAAAEFAAAABGl0ZW0FAAAABmhlaWdodAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAGmdldEtleUl0ZW1Wb3RpbmdFeHBpcmF0aW9uAAAAAQUAAAAEaXRlbQkAAGQAAAACBQAAAAZoZWlnaHQFAAAACWV4cFZvdGluZwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtBQAAAAhGRUFUVVJFRAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAADmdldEtleUl0ZW1EYXRhAAAAAQUAAAAEaXRlbQUAAAAEZGF0YQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAGWdldEtleUl0ZW1Dcm93ZEV4cGlyYXRpb24AAAABBQAAAARpdGVtCQAAZAAAAAIFAAAABmhlaWdodAUAAAAIZXhwQ3Jvd2QJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABlnZXRLZXlJdGVtV2hhbGVFeHBpcmF0aW9uAAAAAQUAAAAEaXRlbQkAAGQAAAACBQAAAAZoZWlnaHQFAAAACGV4cFdoYWxlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5RnJlZUludml0ZUJsb2NrAAAAAAMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAA9mcmVlSW52aXRlQmxvY2sJAABkAAAAAgUAAAAGaGVpZ2h0BQAAAAtCTE9DS1NJTkRBWQUAAAAPZnJlZUludml0ZUJsb2NrCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0S2V5RnJlZUludml0ZUNvdW50AAAAAAMJAABmAAAAAgUAAAAGaGVpZ2h0BQAAAA9mcmVlSW52aXRlQmxvY2sFAAAADU1BWEZSRUVJTlZJVEUJAABlAAAAAgUAAAAPZnJlZUludml0ZUNvdW50AAAAAAAAAAABBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhY2NvdW50AwMJAAAAAAAAAgkBAAAADHdhdmVzQmFsYW5jZQAAAAEJAQAAABxAZXh0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", "chainId": 87, "height": 1754256, "spentComplexity": 0 } View: original | compacted Prev: 4owCu6KSTqvoNhPoWU6pSTNT96tW41DJd98YpYidHTar Next: none Diff:
OldNewDifferences
279279
280280 let aY = 900000
281281
282-let aZ = b(V())
282+let aZ = 1000000
283283
284-let ba = b(W())
284+let ba = b(V())
285285
286-@Callable(bb)
287-func inviteuser (bc,bd) = {
288- let j = toBase58String(bb.caller.bytes)
289- let be = Y(bc)
290- let bf = Y(j)
291- if (if ((be == aA))
286+let bb = b(W())
287+
288+@Callable(bc)
289+func inviteuser (bd,be) = {
290+ let j = toBase58String(bc.caller.bytes)
291+ let bf = Y(bd)
292+ let bg = Y(j)
293+ if (if ((bf == aA))
292294 then true
293- else (be == aC))
295+ else (bf == aC))
294296 then throw("User has already been registered")
295- else if ((bb.fee > aY))
296- then throw("fee more max")
297- else if (if (if ((bf != aA))
298- then (j != aO)
299- else false)
300- then (bf != aC)
301- else false)
302- then throw(("Your account should be whitelisted. status: " + bf))
303- else ScriptResult(WriteSet([DataEntry(i(bc), j), DataEntry(m(bc), bd), DataEntry(k(bc), aB), DataEntry(W(), if ((height > ba))
297+ else if (isDefined(bc.feeAssetId))
298+ then throw("invalid asset")
299+ else if ((bc.fee > aY))
300+ then throw("fee more max")
301+ else if (if (if ((bg != aA))
302+ then (j != aO)
303+ else false)
304+ then (bg != aC)
305+ else false)
306+ then throw(("Your account should be whitelisted. status: " + bg))
307+ else ScriptResult(WriteSet([DataEntry(i(bd), j), DataEntry(m(bd), be), DataEntry(k(bd), aB), DataEntry(W(), if ((height > bb))
308+ then (height + aV)
309+ else bb), DataEntry(V(), if ((height > bb))
310+ then aX
311+ else (ba - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
312+ then if ((ba > 0))
313+ then true
314+ else (height > bb)
315+ else false)
316+ then bc.fee
317+ else 0, unit)]))
318+ }
319+
320+
321+
322+@Callable(bc)
323+func signupbylink (M,be,bh) = {
324+ let j = toBase58String(bc.caller.bytes)
325+ let bi = Y(M)
326+ if ((bi != aB))
327+ then throw(((((("Referral invite needed. Current status: " + bi) + ", key:") + k(M)) + ", account:") + M))
328+ else if (isDefined(bc.feeAssetId))
329+ then throw("invalid asset")
330+ else if ((bc.fee > aY))
331+ then throw("fee more max")
332+ else ScriptResult(WriteSet([DataEntry(m(j), be), DataEntry(n(j), height), DataEntry(k(j), if ((bh == aC))
333+ then aC
334+ else aA), DataEntry(i(j), X(M)), DataEntry(W(), if ((height > bb))
304335 then (height + aV)
305- else ba), DataEntry(V(), if ((height > ba))
336+ else bb), DataEntry(V(), if ((height > bb))
306337 then aX
307- else (aZ - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
308- then if ((aZ > 0))
338+ else (ba - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
339+ then if ((ba > 0))
309340 then true
310- else (height > ba)
341+ else (height > bb)
311342 else false)
312- then bb.fee
343+ then bc.fee
313344 else 0, unit)]))
314345 }
315346
316347
317348
318-@Callable(bb)
319-func signupbylink (M,bd,bg) = {
320- let j = toBase58String(bb.caller.bytes)
321- let bh = Y(M)
322- if ((bh != aB))
323- then throw(((((("Referral invite needed. Current status: " + bh) + ", key:") + k(M)) + ", account:") + M))
324- else if ((bb.fee > aY))
325- then throw("fee more max")
326- else ScriptResult(WriteSet([DataEntry(m(j), bd), DataEntry(n(j), height), DataEntry(k(j), if ((bg == aC))
327- then aC
328- else aA), DataEntry(i(j), X(M)), DataEntry(W(), if ((height > ba))
329- then (height + aV)
330- else ba), DataEntry(V(), if ((height > ba))
331- then aX
332- else (aZ - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
333- then if ((aZ > 0))
334- then true
335- else (height > ba)
336- else false)
337- then bb.fee
338- else 0, unit)]))
339- }
340-
341-
342-
343-@Callable(bb)
344-func signup (bd,bg) = {
345- let j = toBase58String(bb.caller.bytes)
346- let bh = Y(j)
347- if ((bh == a))
348- then throw(((((("Referral invite needed. Current status: " + bh) + ", key:") + k(j)) + ", account:") + j))
349- else WriteSet([DataEntry(m(j), bd), DataEntry(n(j), height), DataEntry(k(j), if ((bg == aC))
349+@Callable(bc)
350+func signup (be,bh) = {
351+ let j = toBase58String(bc.caller.bytes)
352+ let bi = Y(j)
353+ if ((bi == a))
354+ then throw(((((("Referral invite needed. Current status: " + bi) + ", key:") + k(j)) + ", account:") + j))
355+ else WriteSet([DataEntry(m(j), be), DataEntry(n(j), height), DataEntry(k(j), if ((bh == aC))
350356 then aC
351357 else aA)])
352358 }
353359
354360
355361
356-@Callable(bb)
357-func userupdate (bd,bg) = {
358- let j = toBase58String(bb.caller.bytes)
359- if ((m(j) == a))
362+@Callable(bc)
363+func userupdate (be,bh) = {
364+ let j = toBase58String(bc.caller.bytes)
365+ let bi = Y(j)
366+ if ((bi == a))
360367 then throw("user not signup")
361- else if ((bb.fee > aY))
368+ else if (isDefined(bc.feeAssetId))
369+ then throw("invalid asset")
370+ else if ((bc.fee > aY))
371+ then throw("fee more max")
372+ else ScriptResult(WriteSet([DataEntry(m(j), be), DataEntry(k(j), if ((bh == aC))
373+ then aC
374+ else aA), DataEntry(W(), if ((height > bb))
375+ then (height + aV)
376+ else bb), DataEntry(V(), if ((height > bb))
377+ then aX
378+ else (ba - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
379+ then if ((ba > 0))
380+ then true
381+ else (height > bb)
382+ else false)
383+ then bc.fee
384+ else 0, unit)]))
385+ }
386+
387+
388+
389+@Callable(bc)
390+func projupdate (p,be) = {
391+ let j = toBase58String(bc.caller.bytes)
392+ if ((ac(p) != j))
393+ then throw("You're not author")
394+ else if ((bc.fee > aY))
362395 then throw("fee more max")
363- else ScriptResult(WriteSet([DataEntry(m(j), bd), DataEntry(k(j), if ((bg == aC))
364- then aC
365- else aA), DataEntry(W(), if ((height > ba))
396+ else ScriptResult(WriteSet([DataEntry(u(p), be), DataEntry(W(), if ((height > bb))
366397 then (height + aV)
367- else ba), DataEntry(V(), if ((height > ba))
398+ else bb), DataEntry(V(), if ((height > bb))
368399 then aX
369- else (aZ - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
370- then if ((aZ > 0))
400+ else (ba - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
401+ then if ((ba > 0))
371402 then true
372- else (height > ba)
403+ else (height > bb)
373404 else false)
374- then bb.fee
405+ then bc.fee
375406 else 0, unit)]))
376407 }
377408
378409
379410
380-@Callable(bb)
381-func projupdate (p,bd) = {
382- let j = toBase58String(bb.caller.bytes)
383- if ((ac(p) != j))
384- then throw("You're not author")
385- else if ((bb.fee > aY))
386- then throw("fee more max")
387- else ScriptResult(WriteSet([DataEntry(u(p), bd), DataEntry(W(), if ((height > ba))
388- then (height + aV)
389- else ba), DataEntry(V(), if ((height > ba))
390- then aX
391- else (aZ - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
392- then if ((aZ > 0))
393- then true
394- else (height > ba)
395- else false)
396- then bb.fee
397- else 0, unit)]))
411+@Callable(bc)
412+func contestAddOrUpdate (p,be) = {
413+ let j = toBase58String(bc.caller.bytes)
414+ if ((j != aP))
415+ then throw("You're not admin")
416+ else WriteSet([DataEntry(v(p), be)])
398417 }
399418
400419
401420
402-@Callable(bb)
403-func contestAddOrUpdate (p,bd) = {
404- let j = toBase58String(bb.caller.bytes)
405- if ((j != aP))
406- then throw("You're not admin")
407- else WriteSet([DataEntry(v(p), bd)])
421+@Callable(bc)
422+func withdraw (bj) = {
423+ let bk = Z(bj)
424+ if ((0 >= bk))
425+ then throw("Not enough balance")
426+ else ScriptResult(WriteSet([DataEntry(l(bj), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(bj), bk, unit)]))
408427 }
409428
410429
411430
412-@Callable(bb)
413-func withdraw (bi) = {
414- let bj = Z(bi)
415- if ((0 >= bj))
416- then throw("Not enough balance")
417- else ScriptResult(WriteSet([DataEntry(l(bi), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(bi), bj, unit)]))
418- }
419-
420-
421-
422-@Callable(bb)
423-func additem (p,bk,bl,bm,bd) = {
424- let j = toBase58String(bb.caller.bytes)
425- let bn = extract(bb.payment)
426- if (isDefined(bn.assetId))
427- then throw("can use waves only at the moment")
428- else if ((bb.fee > aY))
431+@Callable(bc)
432+func additem (p,bl,bm,bn,be) = {
433+ let j = toBase58String(bc.caller.bytes)
434+ if (isDefined(bc.feeAssetId))
435+ then throw("invalid asset")
436+ else if ((bc.fee > aY))
429437 then throw("fee more max")
430- else if (!(if (if ((bk > 2))
431- then (bl > bk)
438+ else if (!(if (if ((bl > 2))
439+ then (bm > bl)
432440 else false)
433- then (bm > bl)
441+ then (bn > bm)
434442 else false))
435443 then throw("Incorrect time parameters")
436444 else if ((ac(p) != a))
437445 then throw("Item already exist")
438- else ScriptResult(WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + bk)), DataEntry(t(p), aG), DataEntry(u(p), bd), DataEntry(w(p), (height + bl)), DataEntry(x(p), (height + bm)), DataEntry(W(), if ((height > ba))
446+ else ScriptResult(WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + bl)), DataEntry(t(p), aG), DataEntry(u(p), be), DataEntry(w(p), (height + bm)), DataEntry(x(p), (height + bn)), DataEntry(W(), if ((height > bb))
439447 then (height + aV)
440- else ba), DataEntry(V(), if ((height > ba))
448+ else bb), DataEntry(V(), if ((height > bb))
441449 then aX
442- else (aZ - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
443- then if ((aZ > 0))
450+ else (ba - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
451+ then if ((ba > 0))
444452 then true
445- else (height > ba)
453+ else (height > bb)
446454 else false)
447- then bb.fee
455+ then bc.fee
448456 else 0, unit)]))
449457 }
450458
451459
452460
453-@Callable(bb)
454-func reportProject (p,bd) = {
455- let j = toBase58String(bb.caller.bytes)
456- WriteSet([DataEntry(z(p, j), bd)])
461+@Callable(bc)
462+func reportProject (p,be) = {
463+ let j = toBase58String(bc.caller.bytes)
464+ WriteSet([DataEntry(z(p, j), be)])
457465 }
458466
459467
460468
461-@Callable(bb)
469+@Callable(bc)
462470 func labsdonate (p,bo) = {
463- let j = toBase58String(bb.caller.bytes)
464- let bn = extract(bb.payment)
465- if (isDefined(bn.assetId))
471+ let j = toBase58String(bc.caller.bytes)
472+ let bp = extract(bc.payment)
473+ if (isDefined(bp.assetId))
466474 then throw("can use waves only at the moment")
467475 else if ((j != aQ))
468476 then throw("labs donation is allowed only for waves labs")
470478 then throw("Investement has already done")
471479 else {
472480 let O = (au(p, j) + 1)
473- let bp = (aq(p) + bn.amount)
474- WriteSet([DataEntry(J(p, j), O), DataEntry(H(p, j), (as(p, j) + bn.amount)), DataEntry(F(p), bp), DataEntry(N(p, j, toString(O)), bo), DataEntry(P(p, j, toString(O)), aM), DataEntry(Q(p, j, toString(O)), 5), DataEntry(l(ac(p)), (Z(ac(p)) + bn.amount)), DataEntry(t(p), aI)])
481+ let bq = (aq(p) + bp.amount)
482+ WriteSet([DataEntry(J(p, j), O), DataEntry(H(p, j), (as(p, j) + bp.amount)), DataEntry(F(p), bq), DataEntry(N(p, j, toString(O)), bo), DataEntry(P(p, j, toString(O)), aM), DataEntry(Q(p, j, toString(O)), 5), DataEntry(l(ac(p)), (Z(ac(p)) + bp.amount)), DataEntry(t(p), aI)])
475483 }
476484 }
477485
478486
479487
480-@Callable(bb)
488+@Callable(bc)
481489 func changeStatus (p) = {
482- let j = toBase58String(bb.caller.bytes)
490+ let j = toBase58String(bc.caller.bytes)
483491 if ((j != aQ))
484492 then throw("labs change is allowed only for waves labs")
485493 else WriteSet([DataEntry(t(p), aI)])
487495
488496
489497
490-@Callable(bb)
491-func donate (p,bq,br,bo) = {
492- let j = toBase58String(bb.caller.bytes)
493- let bn = extract(bb.payment)
494- if (isDefined(bn.assetId))
498+@Callable(bc)
499+func donate (p,br,bs,bo) = {
500+ let j = toBase58String(bc.caller.bytes)
501+ let bp = extract(bc.payment)
502+ if (isDefined(bp.assetId))
495503 then throw("can use waves only at the moment")
496504 else {
497505 let O = (au(p, j) + 1)
498- let bs = (ar(p) + ((if ((br == aN))
506+ let bt = (ar(p) + ((if ((bs == aN))
499507 then 1
500- else 0) * bn.amount))
501- let bp = (aq(p) + ((if ((br == aM))
508+ else 0) * bp.amount))
509+ let bq = (aq(p) + ((if ((bs == aM))
502510 then 1
503- else 0) * bn.amount))
511+ else 0) * bp.amount))
504512 if ((ag(p) != aG))
505513 then throw("The project hasn't accepted by community")
506514 else if ((height >= ai(p)))
507515 then throw("The time for crowdfunding has expired")
508- else if ((bs >= bp))
516+ else if ((bt >= bq))
509517 then throw("Negative fund can't be higher than positive fund")
510- else if (if ((br != aM))
511- then (br != aN)
518+ else if (if ((bs != aM))
519+ then (bs != aN)
512520 else false)
513521 then throw("Wrong mode parameter")
514522 else if ((ac(p) == j))
515523 then throw("Can't donate own project")
516- else if ((bn.amount != aT[(bq - 1)]))
517- then throw(("The payment must be equal to tier amount: " + toString(aT[(bq - 1)])))
518- else WriteSet([DataEntry(J(p, j), O), DataEntry(H(p, j), (as(p, j) + ((if ((br == aM))
524+ else if ((bp.amount != aT[(br - 1)]))
525+ then throw(("The payment must be equal to tier amount: " + toString(aT[(br - 1)])))
526+ else WriteSet([DataEntry(J(p, j), O), DataEntry(H(p, j), (as(p, j) + ((if ((bs == aM))
519527 then 1
520- else 0) * bn.amount))), DataEntry(I(p, j), (at(p, j) + ((if ((br == aN))
528+ else 0) * bp.amount))), DataEntry(I(p, j), (at(p, j) + ((if ((bs == aN))
521529 then 1
522- else 0) * bn.amount))), DataEntry(F(p), bp), DataEntry(G(p), bs), DataEntry(N(p, j, toString(O)), bo), DataEntry(P(p, j, toString(O)), br), DataEntry(Q(p, j, toString(O)), bq)])
530+ else 0) * bp.amount))), DataEntry(F(p), bq), DataEntry(G(p), bt), DataEntry(N(p, j, toString(O)), bo), DataEntry(P(p, j, toString(O)), bs), DataEntry(Q(p, j, toString(O)), br)])
523531 }
524532 }
525533
526534
527535
528-@Callable(bb)
536+@Callable(bc)
529537 func whale (p) = {
530- let j = toBase58String(bb.caller.bytes)
531- let bn = extract(bb.payment)
532- if (isDefined(bn.assetId))
538+ let j = toBase58String(bc.caller.bytes)
539+ let bp = extract(bc.payment)
540+ if (isDefined(bp.assetId))
533541 then throw("can use waves only at the moment")
534542 else if ((j != aQ))
535543 then throw("labs donation is allowed only for waves labs")
541549 then throw("The time for grant has expired")
542550 else if ((ag(p) == aJ))
543551 then throw("Investement has already done")
544- else if ((bn.amount != ((aq(p) * aW) / 100)))
552+ else if ((bp.amount != ((aq(p) * aW) / 100)))
545553 then throw((("Investement must be more than " + toString(aW)) + "% of supportes funds"))
546- else WriteSet([DataEntry(t(p), aJ), DataEntry(l(ac(p)), (Z(ac(p)) + aq(p))), DataEntry(T(p), bn.amount), DataEntry(E(p, ac(p)), aL)])
554+ else WriteSet([DataEntry(t(p), aJ), DataEntry(l(ac(p)), (Z(ac(p)) + aq(p))), DataEntry(T(p), bp.amount), DataEntry(E(p, ac(p)), aL)])
547555 }
548556
549557
550558
551-@Callable(bb)
559+@Callable(bc)
552560 func claimwinnings (p,j) = {
553- let bh = ag(p)
554- let bt = if ((bh == aJ))
561+ let bi = ag(p)
562+ let bu = if ((bi == aJ))
555563 then 1
556564 else 0
557- let bu = if ((bh != aJ))
565+ let bv = if ((bi != aJ))
558566 then 1
559567 else 0
560- let bv = (aq(p) - as(p, aQ))
561- let bw = ar(p)
562- let bx = (((bt * (as(p, j) * 100)) / (if ((0 >= bv))
568+ let bw = (aq(p) - as(p, aQ))
569+ let bx = ar(p)
570+ let by = (((bu * (as(p, j) * 100)) / (if ((0 >= bw))
563571 then 1
564- else bv)) + ((bu * (at(p, j) * 100)) / (if ((0 >= bw))
572+ else bw)) + ((bv * (at(p, j) * 100)) / (if ((0 >= bx))
565573 then 1
566- else bw)))
567- let by = ((bw * aW) / 100)
568- let bz = ((bt * ((bx * bw) / 100)) + (bu * ((bx * (if ((bv > by))
569- then by
570- else bv)) / 100)))
571- let bA = (bt * ((as(p, j) * aW) / 100))
572- let bB = ((bu * (if ((ac(p) == j))
574+ else bx)))
575+ let bz = ((bx * aW) / 100)
576+ let bA = ((bu * ((by * bx) / 100)) + (bv * ((by * (if ((bw > bz))
577+ then bz
578+ else bw)) / 100)))
579+ let bB = (bu * ((as(p, j) * aW) / 100))
580+ let bC = ((bv * (if ((ac(p) == j))
573581 then 1
574- else 0)) * (if ((bv > by))
575- then (bv - by)
582+ else 0)) * (if ((bw > bz))
583+ then (bw - bz)
576584 else 0))
577- if ((toString(bb.caller) != aQ))
585+ if ((toString(bc.caller) != aQ))
578586 then throw("caller error")
579- else if ((bh == aH))
587+ else if ((bi == aH))
580588 then throw("The project hasn't accepted by community")
581589 else if ((j == aQ))
582590 then throw("account error")
583591 else if ((ap(p, j) == aL))
584592 then throw("Status is claimed")
585- else if (if (if ((bA == 0))
586- then (bz == 0)
593+ else if (if (if ((bB == 0))
594+ then (bA == 0)
587595 else false)
588- then (bB == 0)
596+ then (bC == 0)
589597 else false)
590598 then throw("The share equals zero")
591- else if (if ((bh != aJ))
599+ else if (if ((bi != aJ))
592600 then (aj(p) >= height)
593601 else false)
594602 then throw("The time for grant has not expired yet")
595- else if ((0 >= (bv + bw)))
603+ else if ((0 >= (bw + bx)))
596604 then throw("The campaign wasn't active")
597- else WriteSet([DataEntry(l(j), (((Z(j) + bz) + bA) + bB)), DataEntry(E(p, j), aL)])
605+ else WriteSet([DataEntry(l(j), (((Z(j) + bA) + bB) + bC)), DataEntry(E(p, j), aL)])
598606 }
599607
600608
601609
602-@Callable(bb)
610+@Callable(bc)
603611 func transfer (j) = {
604- let bn = extract(bb.payment)
605- if (isDefined(bn.assetId))
612+ let bp = extract(bc.payment)
613+ if (isDefined(bp.assetId))
606614 then throw("can use waves only at the moment")
607- else TransferSet([ScriptTransfer(addressFromStringValue(j), bn.amount, unit)])
615+ else TransferSet([ScriptTransfer(addressFromStringValue(j), bp.amount, unit)])
608616 }
609617
610618
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "none"
55
66 func b (c) = {
77 let d = {
88 let e = getInteger(this, c)
99 if ($isInstanceOf(e, "Int"))
1010 then {
1111 let f = e
1212 f
1313 }
1414 else 0
1515 }
1616 d
1717 }
1818
1919
2020 func g (c) = {
2121 let h = {
2222 let e = getString(this, c)
2323 if ($isInstanceOf(e, "String"))
2424 then {
2525 let f = e
2626 f
2727 }
2828 else a
2929 }
3030 h
3131 }
3232
3333
3434 func i (j) = ("wl_ref_" + j)
3535
3636
3737 func k (j) = ("wl_sts_" + j)
3838
3939
4040 func l (j) = ("balance_" + j)
4141
4242
4343 func m (j) = ("wl_bio_" + j)
4444
4545
4646 func n (j) = ("wl_blk_" + j)
4747
4848
4949 func o (p) = ("author_" + p)
5050
5151
5252 func q (p) = ("block_" + p)
5353
5454
5555 func r (p) = ("expiration_block_" + p)
5656
5757
5858 func s (p) = ("bank_" + p)
5959
6060
6161 func t (p) = ("status_" + p)
6262
6363
6464 func u (p) = ("datajson_" + p)
6565
6666
6767 func v (p) = ("contest_datajson_" + p)
6868
6969
7070 func w (p) = ("expiration_one_" + p)
7171
7272
7373 func x (p) = ("expiration_two_" + p)
7474
7575
7676 func y (p) = ("ncommits_" + p)
7777
7878
7979 func z (p,j) = ((("report_" + p) + "_") + j)
8080
8181
8282 func A (p,j) = ((("commit_" + p) + "_") + j)
8383
8484
8585 func B (p,j) = ((("reveal_" + p) + "_") + j)
8686
8787
8888 func C (p) = ("cnt_yes_" + p)
8989
9090
9191 func D (p) = ("cnt_no_" + p)
9292
9393
9494 func E (p,j) = ((("final_" + p) + "_") + j)
9595
9696
9797 func F (p) = ("positive_fund_" + p)
9898
9999
100100 func G (p) = ("negative_fund_" + p)
101101
102102
103103 func H (p,j) = ((F(p) + "_") + j)
104104
105105
106106 func I (p,j) = ((G(p) + "_") + j)
107107
108108
109109 func J (p,j) = ((("reviews_cnt_" + p) + "_") + j)
110110
111111
112112 func K (p,j) = ((("review_" + p) + "_") + j)
113113
114114
115115 func L (M) = ("transfer_link_" + M)
116116
117117
118118 func N (p,j,O) = ((K(p, j) + "_text_id:") + O)
119119
120120
121121 func P (p,j,O) = ((K(p, j) + "_mode_id:") + O)
122122
123123
124124 func Q (p,j,O) = ((K(p, j) + "_tier_id:") + O)
125125
126126
127127 func R (p,j) = (K(p, j) + "_votereview")
128128
129129
130130 func S (p,j) = (K(p, j) + "_whalereview")
131131
132132
133133 func T (p) = ("buyout_amount_" + p)
134134
135135
136136 func U (p,j) = ((("winnings_" + p) + "_") + j)
137137
138138
139139 func V () = "free_invite_count"
140140
141141
142142 func W () = "free_invite_block"
143143
144144
145145 func X (j) = g(i(j))
146146
147147
148148 func Y (j) = g(k(j))
149149
150150
151151 func Z (j) = b(l(j))
152152
153153
154154 func aa (j) = g(m(j))
155155
156156
157157 func ab (j) = g(n(j))
158158
159159
160160 func ac (p) = g(o(p))
161161
162162
163163 func ad (p) = b(q(p))
164164
165165
166166 func ae (p) = b(r(p))
167167
168168
169169 func af (p) = b(s(p))
170170
171171
172172 func ag (p) = g(t(p))
173173
174174
175175 func ah (p) = g(u(p))
176176
177177
178178 func ai (p) = b(w(p))
179179
180180
181181 func aj (p) = b(x(p))
182182
183183
184184 func ak (p) = b(y(p))
185185
186186
187187 func al (p,j) = g(A(p, j))
188188
189189
190190 func am (p,j) = g(B(p, j))
191191
192192
193193 func an (p) = b(C(p))
194194
195195
196196 func ao (p) = b(D(p))
197197
198198
199199 func ap (p,j) = g(E(p, j))
200200
201201
202202 func aq (p) = b(F(p))
203203
204204
205205 func ar (p) = b(G(p))
206206
207207
208208 func as (p,j) = b(H(p, j))
209209
210210
211211 func at (p,j) = b(I(p, j))
212212
213213
214214 func au (p,j) = b(J(p, j))
215215
216216
217217 func av (p,j,O) = g(N(p, j, O))
218218
219219
220220 func aw (p,j,O) = g(P(p, j, O))
221221
222222
223223 func ax (p,j,O) = b(Q(p, j, O))
224224
225225
226226 func ay (p) = b(T(p))
227227
228228
229229 func az (p,j) = b(U(p, j))
230230
231231
232232 let aA = "registered"
233233
234234 let aB = "invited"
235235
236236 let aC = "whale"
237237
238238 let aD = "spend_invite"
239239
240240 let aE = "voting_commit"
241241
242242 let aF = "voting_reveal"
243243
244244 let aG = "featured"
245245
246246 let aH = "delisted"
247247
248248 let aI = "cashout"
249249
250250 let aJ = "buyout"
251251
252252 let aK = "finished"
253253
254254 let aL = "claimed"
255255
256256 let aM = "positive"
257257
258258 let aN = "negative"
259259
260260 let aO = "3P8Fvy1yDwNHvVrabe4ek5b9dAwxFjDKV7R"
261261
262262 let aP = "3P9NDxt9Y6ePfM9hkQysgSvbHJvihr56Z18"
263263
264264 let aQ = "3P3MUCvJjviJaxMUe743LVez3qThbL7U8uP"
265265
266266 let aR = 3
267267
268268 let aS = 2
269269
270270 let aT = [(3 * 100000000), (10 * 100000000), (100 * 100000000), (300 * 100000000), (1000 * 100000000)]
271271
272272 let aU = (1 * 100000000)
273273
274274 let aV = 1440
275275
276276 let aW = 150
277277
278278 let aX = 1000
279279
280280 let aY = 900000
281281
282-let aZ = b(V())
282+let aZ = 1000000
283283
284-let ba = b(W())
284+let ba = b(V())
285285
286-@Callable(bb)
287-func inviteuser (bc,bd) = {
288- let j = toBase58String(bb.caller.bytes)
289- let be = Y(bc)
290- let bf = Y(j)
291- if (if ((be == aA))
286+let bb = b(W())
287+
288+@Callable(bc)
289+func inviteuser (bd,be) = {
290+ let j = toBase58String(bc.caller.bytes)
291+ let bf = Y(bd)
292+ let bg = Y(j)
293+ if (if ((bf == aA))
292294 then true
293- else (be == aC))
295+ else (bf == aC))
294296 then throw("User has already been registered")
295- else if ((bb.fee > aY))
296- then throw("fee more max")
297- else if (if (if ((bf != aA))
298- then (j != aO)
299- else false)
300- then (bf != aC)
301- else false)
302- then throw(("Your account should be whitelisted. status: " + bf))
303- else ScriptResult(WriteSet([DataEntry(i(bc), j), DataEntry(m(bc), bd), DataEntry(k(bc), aB), DataEntry(W(), if ((height > ba))
297+ else if (isDefined(bc.feeAssetId))
298+ then throw("invalid asset")
299+ else if ((bc.fee > aY))
300+ then throw("fee more max")
301+ else if (if (if ((bg != aA))
302+ then (j != aO)
303+ else false)
304+ then (bg != aC)
305+ else false)
306+ then throw(("Your account should be whitelisted. status: " + bg))
307+ else ScriptResult(WriteSet([DataEntry(i(bd), j), DataEntry(m(bd), be), DataEntry(k(bd), aB), DataEntry(W(), if ((height > bb))
308+ then (height + aV)
309+ else bb), DataEntry(V(), if ((height > bb))
310+ then aX
311+ else (ba - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
312+ then if ((ba > 0))
313+ then true
314+ else (height > bb)
315+ else false)
316+ then bc.fee
317+ else 0, unit)]))
318+ }
319+
320+
321+
322+@Callable(bc)
323+func signupbylink (M,be,bh) = {
324+ let j = toBase58String(bc.caller.bytes)
325+ let bi = Y(M)
326+ if ((bi != aB))
327+ then throw(((((("Referral invite needed. Current status: " + bi) + ", key:") + k(M)) + ", account:") + M))
328+ else if (isDefined(bc.feeAssetId))
329+ then throw("invalid asset")
330+ else if ((bc.fee > aY))
331+ then throw("fee more max")
332+ else ScriptResult(WriteSet([DataEntry(m(j), be), DataEntry(n(j), height), DataEntry(k(j), if ((bh == aC))
333+ then aC
334+ else aA), DataEntry(i(j), X(M)), DataEntry(W(), if ((height > bb))
304335 then (height + aV)
305- else ba), DataEntry(V(), if ((height > ba))
336+ else bb), DataEntry(V(), if ((height > bb))
306337 then aX
307- else (aZ - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
308- then if ((aZ > 0))
338+ else (ba - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
339+ then if ((ba > 0))
309340 then true
310- else (height > ba)
341+ else (height > bb)
311342 else false)
312- then bb.fee
343+ then bc.fee
313344 else 0, unit)]))
314345 }
315346
316347
317348
318-@Callable(bb)
319-func signupbylink (M,bd,bg) = {
320- let j = toBase58String(bb.caller.bytes)
321- let bh = Y(M)
322- if ((bh != aB))
323- then throw(((((("Referral invite needed. Current status: " + bh) + ", key:") + k(M)) + ", account:") + M))
324- else if ((bb.fee > aY))
325- then throw("fee more max")
326- else ScriptResult(WriteSet([DataEntry(m(j), bd), DataEntry(n(j), height), DataEntry(k(j), if ((bg == aC))
327- then aC
328- else aA), DataEntry(i(j), X(M)), DataEntry(W(), if ((height > ba))
329- then (height + aV)
330- else ba), DataEntry(V(), if ((height > ba))
331- then aX
332- else (aZ - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
333- then if ((aZ > 0))
334- then true
335- else (height > ba)
336- else false)
337- then bb.fee
338- else 0, unit)]))
339- }
340-
341-
342-
343-@Callable(bb)
344-func signup (bd,bg) = {
345- let j = toBase58String(bb.caller.bytes)
346- let bh = Y(j)
347- if ((bh == a))
348- then throw(((((("Referral invite needed. Current status: " + bh) + ", key:") + k(j)) + ", account:") + j))
349- else WriteSet([DataEntry(m(j), bd), DataEntry(n(j), height), DataEntry(k(j), if ((bg == aC))
349+@Callable(bc)
350+func signup (be,bh) = {
351+ let j = toBase58String(bc.caller.bytes)
352+ let bi = Y(j)
353+ if ((bi == a))
354+ then throw(((((("Referral invite needed. Current status: " + bi) + ", key:") + k(j)) + ", account:") + j))
355+ else WriteSet([DataEntry(m(j), be), DataEntry(n(j), height), DataEntry(k(j), if ((bh == aC))
350356 then aC
351357 else aA)])
352358 }
353359
354360
355361
356-@Callable(bb)
357-func userupdate (bd,bg) = {
358- let j = toBase58String(bb.caller.bytes)
359- if ((m(j) == a))
362+@Callable(bc)
363+func userupdate (be,bh) = {
364+ let j = toBase58String(bc.caller.bytes)
365+ let bi = Y(j)
366+ if ((bi == a))
360367 then throw("user not signup")
361- else if ((bb.fee > aY))
368+ else if (isDefined(bc.feeAssetId))
369+ then throw("invalid asset")
370+ else if ((bc.fee > aY))
371+ then throw("fee more max")
372+ else ScriptResult(WriteSet([DataEntry(m(j), be), DataEntry(k(j), if ((bh == aC))
373+ then aC
374+ else aA), DataEntry(W(), if ((height > bb))
375+ then (height + aV)
376+ else bb), DataEntry(V(), if ((height > bb))
377+ then aX
378+ else (ba - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
379+ then if ((ba > 0))
380+ then true
381+ else (height > bb)
382+ else false)
383+ then bc.fee
384+ else 0, unit)]))
385+ }
386+
387+
388+
389+@Callable(bc)
390+func projupdate (p,be) = {
391+ let j = toBase58String(bc.caller.bytes)
392+ if ((ac(p) != j))
393+ then throw("You're not author")
394+ else if ((bc.fee > aY))
362395 then throw("fee more max")
363- else ScriptResult(WriteSet([DataEntry(m(j), bd), DataEntry(k(j), if ((bg == aC))
364- then aC
365- else aA), DataEntry(W(), if ((height > ba))
396+ else ScriptResult(WriteSet([DataEntry(u(p), be), DataEntry(W(), if ((height > bb))
366397 then (height + aV)
367- else ba), DataEntry(V(), if ((height > ba))
398+ else bb), DataEntry(V(), if ((height > bb))
368399 then aX
369- else (aZ - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
370- then if ((aZ > 0))
400+ else (ba - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
401+ then if ((ba > 0))
371402 then true
372- else (height > ba)
403+ else (height > bb)
373404 else false)
374- then bb.fee
405+ then bc.fee
375406 else 0, unit)]))
376407 }
377408
378409
379410
380-@Callable(bb)
381-func projupdate (p,bd) = {
382- let j = toBase58String(bb.caller.bytes)
383- if ((ac(p) != j))
384- then throw("You're not author")
385- else if ((bb.fee > aY))
386- then throw("fee more max")
387- else ScriptResult(WriteSet([DataEntry(u(p), bd), DataEntry(W(), if ((height > ba))
388- then (height + aV)
389- else ba), DataEntry(V(), if ((height > ba))
390- then aX
391- else (aZ - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
392- then if ((aZ > 0))
393- then true
394- else (height > ba)
395- else false)
396- then bb.fee
397- else 0, unit)]))
411+@Callable(bc)
412+func contestAddOrUpdate (p,be) = {
413+ let j = toBase58String(bc.caller.bytes)
414+ if ((j != aP))
415+ then throw("You're not admin")
416+ else WriteSet([DataEntry(v(p), be)])
398417 }
399418
400419
401420
402-@Callable(bb)
403-func contestAddOrUpdate (p,bd) = {
404- let j = toBase58String(bb.caller.bytes)
405- if ((j != aP))
406- then throw("You're not admin")
407- else WriteSet([DataEntry(v(p), bd)])
421+@Callable(bc)
422+func withdraw (bj) = {
423+ let bk = Z(bj)
424+ if ((0 >= bk))
425+ then throw("Not enough balance")
426+ else ScriptResult(WriteSet([DataEntry(l(bj), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(bj), bk, unit)]))
408427 }
409428
410429
411430
412-@Callable(bb)
413-func withdraw (bi) = {
414- let bj = Z(bi)
415- if ((0 >= bj))
416- then throw("Not enough balance")
417- else ScriptResult(WriteSet([DataEntry(l(bi), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(bi), bj, unit)]))
418- }
419-
420-
421-
422-@Callable(bb)
423-func additem (p,bk,bl,bm,bd) = {
424- let j = toBase58String(bb.caller.bytes)
425- let bn = extract(bb.payment)
426- if (isDefined(bn.assetId))
427- then throw("can use waves only at the moment")
428- else if ((bb.fee > aY))
431+@Callable(bc)
432+func additem (p,bl,bm,bn,be) = {
433+ let j = toBase58String(bc.caller.bytes)
434+ if (isDefined(bc.feeAssetId))
435+ then throw("invalid asset")
436+ else if ((bc.fee > aY))
429437 then throw("fee more max")
430- else if (!(if (if ((bk > 2))
431- then (bl > bk)
438+ else if (!(if (if ((bl > 2))
439+ then (bm > bl)
432440 else false)
433- then (bm > bl)
441+ then (bn > bm)
434442 else false))
435443 then throw("Incorrect time parameters")
436444 else if ((ac(p) != a))
437445 then throw("Item already exist")
438- else ScriptResult(WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + bk)), DataEntry(t(p), aG), DataEntry(u(p), bd), DataEntry(w(p), (height + bl)), DataEntry(x(p), (height + bm)), DataEntry(W(), if ((height > ba))
446+ else ScriptResult(WriteSet([DataEntry(o(p), j), DataEntry(q(p), height), DataEntry(r(p), (height + bl)), DataEntry(t(p), aG), DataEntry(u(p), be), DataEntry(w(p), (height + bm)), DataEntry(x(p), (height + bn)), DataEntry(W(), if ((height > bb))
439447 then (height + aV)
440- else ba), DataEntry(V(), if ((height > ba))
448+ else bb), DataEntry(V(), if ((height > bb))
441449 then aX
442- else (aZ - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
443- then if ((aZ > 0))
450+ else (ba - 1))]), TransferSet([ScriptTransfer(addressFromStringValue(j), if (if ((wavesBalance(addressFromStringValue(j)) == 0))
451+ then if ((ba > 0))
444452 then true
445- else (height > ba)
453+ else (height > bb)
446454 else false)
447- then bb.fee
455+ then bc.fee
448456 else 0, unit)]))
449457 }
450458
451459
452460
453-@Callable(bb)
454-func reportProject (p,bd) = {
455- let j = toBase58String(bb.caller.bytes)
456- WriteSet([DataEntry(z(p, j), bd)])
461+@Callable(bc)
462+func reportProject (p,be) = {
463+ let j = toBase58String(bc.caller.bytes)
464+ WriteSet([DataEntry(z(p, j), be)])
457465 }
458466
459467
460468
461-@Callable(bb)
469+@Callable(bc)
462470 func labsdonate (p,bo) = {
463- let j = toBase58String(bb.caller.bytes)
464- let bn = extract(bb.payment)
465- if (isDefined(bn.assetId))
471+ let j = toBase58String(bc.caller.bytes)
472+ let bp = extract(bc.payment)
473+ if (isDefined(bp.assetId))
466474 then throw("can use waves only at the moment")
467475 else if ((j != aQ))
468476 then throw("labs donation is allowed only for waves labs")
469477 else if ((ag(p) != aJ))
470478 then throw("Investement has already done")
471479 else {
472480 let O = (au(p, j) + 1)
473- let bp = (aq(p) + bn.amount)
474- WriteSet([DataEntry(J(p, j), O), DataEntry(H(p, j), (as(p, j) + bn.amount)), DataEntry(F(p), bp), DataEntry(N(p, j, toString(O)), bo), DataEntry(P(p, j, toString(O)), aM), DataEntry(Q(p, j, toString(O)), 5), DataEntry(l(ac(p)), (Z(ac(p)) + bn.amount)), DataEntry(t(p), aI)])
481+ let bq = (aq(p) + bp.amount)
482+ WriteSet([DataEntry(J(p, j), O), DataEntry(H(p, j), (as(p, j) + bp.amount)), DataEntry(F(p), bq), DataEntry(N(p, j, toString(O)), bo), DataEntry(P(p, j, toString(O)), aM), DataEntry(Q(p, j, toString(O)), 5), DataEntry(l(ac(p)), (Z(ac(p)) + bp.amount)), DataEntry(t(p), aI)])
475483 }
476484 }
477485
478486
479487
480-@Callable(bb)
488+@Callable(bc)
481489 func changeStatus (p) = {
482- let j = toBase58String(bb.caller.bytes)
490+ let j = toBase58String(bc.caller.bytes)
483491 if ((j != aQ))
484492 then throw("labs change is allowed only for waves labs")
485493 else WriteSet([DataEntry(t(p), aI)])
486494 }
487495
488496
489497
490-@Callable(bb)
491-func donate (p,bq,br,bo) = {
492- let j = toBase58String(bb.caller.bytes)
493- let bn = extract(bb.payment)
494- if (isDefined(bn.assetId))
498+@Callable(bc)
499+func donate (p,br,bs,bo) = {
500+ let j = toBase58String(bc.caller.bytes)
501+ let bp = extract(bc.payment)
502+ if (isDefined(bp.assetId))
495503 then throw("can use waves only at the moment")
496504 else {
497505 let O = (au(p, j) + 1)
498- let bs = (ar(p) + ((if ((br == aN))
506+ let bt = (ar(p) + ((if ((bs == aN))
499507 then 1
500- else 0) * bn.amount))
501- let bp = (aq(p) + ((if ((br == aM))
508+ else 0) * bp.amount))
509+ let bq = (aq(p) + ((if ((bs == aM))
502510 then 1
503- else 0) * bn.amount))
511+ else 0) * bp.amount))
504512 if ((ag(p) != aG))
505513 then throw("The project hasn't accepted by community")
506514 else if ((height >= ai(p)))
507515 then throw("The time for crowdfunding has expired")
508- else if ((bs >= bp))
516+ else if ((bt >= bq))
509517 then throw("Negative fund can't be higher than positive fund")
510- else if (if ((br != aM))
511- then (br != aN)
518+ else if (if ((bs != aM))
519+ then (bs != aN)
512520 else false)
513521 then throw("Wrong mode parameter")
514522 else if ((ac(p) == j))
515523 then throw("Can't donate own project")
516- else if ((bn.amount != aT[(bq - 1)]))
517- then throw(("The payment must be equal to tier amount: " + toString(aT[(bq - 1)])))
518- else WriteSet([DataEntry(J(p, j), O), DataEntry(H(p, j), (as(p, j) + ((if ((br == aM))
524+ else if ((bp.amount != aT[(br - 1)]))
525+ then throw(("The payment must be equal to tier amount: " + toString(aT[(br - 1)])))
526+ else WriteSet([DataEntry(J(p, j), O), DataEntry(H(p, j), (as(p, j) + ((if ((bs == aM))
519527 then 1
520- else 0) * bn.amount))), DataEntry(I(p, j), (at(p, j) + ((if ((br == aN))
528+ else 0) * bp.amount))), DataEntry(I(p, j), (at(p, j) + ((if ((bs == aN))
521529 then 1
522- else 0) * bn.amount))), DataEntry(F(p), bp), DataEntry(G(p), bs), DataEntry(N(p, j, toString(O)), bo), DataEntry(P(p, j, toString(O)), br), DataEntry(Q(p, j, toString(O)), bq)])
530+ else 0) * bp.amount))), DataEntry(F(p), bq), DataEntry(G(p), bt), DataEntry(N(p, j, toString(O)), bo), DataEntry(P(p, j, toString(O)), bs), DataEntry(Q(p, j, toString(O)), br)])
523531 }
524532 }
525533
526534
527535
528-@Callable(bb)
536+@Callable(bc)
529537 func whale (p) = {
530- let j = toBase58String(bb.caller.bytes)
531- let bn = extract(bb.payment)
532- if (isDefined(bn.assetId))
538+ let j = toBase58String(bc.caller.bytes)
539+ let bp = extract(bc.payment)
540+ if (isDefined(bp.assetId))
533541 then throw("can use waves only at the moment")
534542 else if ((j != aQ))
535543 then throw("labs donation is allowed only for waves labs")
536544 else if ((ag(p) != aG))
537545 then throw("The project hasn't accepted by community")
538546 else if ((ai(p) > height))
539547 then throw("The time for crowdfunding has not expired yet")
540548 else if ((height > aj(p)))
541549 then throw("The time for grant has expired")
542550 else if ((ag(p) == aJ))
543551 then throw("Investement has already done")
544- else if ((bn.amount != ((aq(p) * aW) / 100)))
552+ else if ((bp.amount != ((aq(p) * aW) / 100)))
545553 then throw((("Investement must be more than " + toString(aW)) + "% of supportes funds"))
546- else WriteSet([DataEntry(t(p), aJ), DataEntry(l(ac(p)), (Z(ac(p)) + aq(p))), DataEntry(T(p), bn.amount), DataEntry(E(p, ac(p)), aL)])
554+ else WriteSet([DataEntry(t(p), aJ), DataEntry(l(ac(p)), (Z(ac(p)) + aq(p))), DataEntry(T(p), bp.amount), DataEntry(E(p, ac(p)), aL)])
547555 }
548556
549557
550558
551-@Callable(bb)
559+@Callable(bc)
552560 func claimwinnings (p,j) = {
553- let bh = ag(p)
554- let bt = if ((bh == aJ))
561+ let bi = ag(p)
562+ let bu = if ((bi == aJ))
555563 then 1
556564 else 0
557- let bu = if ((bh != aJ))
565+ let bv = if ((bi != aJ))
558566 then 1
559567 else 0
560- let bv = (aq(p) - as(p, aQ))
561- let bw = ar(p)
562- let bx = (((bt * (as(p, j) * 100)) / (if ((0 >= bv))
568+ let bw = (aq(p) - as(p, aQ))
569+ let bx = ar(p)
570+ let by = (((bu * (as(p, j) * 100)) / (if ((0 >= bw))
563571 then 1
564- else bv)) + ((bu * (at(p, j) * 100)) / (if ((0 >= bw))
572+ else bw)) + ((bv * (at(p, j) * 100)) / (if ((0 >= bx))
565573 then 1
566- else bw)))
567- let by = ((bw * aW) / 100)
568- let bz = ((bt * ((bx * bw) / 100)) + (bu * ((bx * (if ((bv > by))
569- then by
570- else bv)) / 100)))
571- let bA = (bt * ((as(p, j) * aW) / 100))
572- let bB = ((bu * (if ((ac(p) == j))
574+ else bx)))
575+ let bz = ((bx * aW) / 100)
576+ let bA = ((bu * ((by * bx) / 100)) + (bv * ((by * (if ((bw > bz))
577+ then bz
578+ else bw)) / 100)))
579+ let bB = (bu * ((as(p, j) * aW) / 100))
580+ let bC = ((bv * (if ((ac(p) == j))
573581 then 1
574- else 0)) * (if ((bv > by))
575- then (bv - by)
582+ else 0)) * (if ((bw > bz))
583+ then (bw - bz)
576584 else 0))
577- if ((toString(bb.caller) != aQ))
585+ if ((toString(bc.caller) != aQ))
578586 then throw("caller error")
579- else if ((bh == aH))
587+ else if ((bi == aH))
580588 then throw("The project hasn't accepted by community")
581589 else if ((j == aQ))
582590 then throw("account error")
583591 else if ((ap(p, j) == aL))
584592 then throw("Status is claimed")
585- else if (if (if ((bA == 0))
586- then (bz == 0)
593+ else if (if (if ((bB == 0))
594+ then (bA == 0)
587595 else false)
588- then (bB == 0)
596+ then (bC == 0)
589597 else false)
590598 then throw("The share equals zero")
591- else if (if ((bh != aJ))
599+ else if (if ((bi != aJ))
592600 then (aj(p) >= height)
593601 else false)
594602 then throw("The time for grant has not expired yet")
595- else if ((0 >= (bv + bw)))
603+ else if ((0 >= (bw + bx)))
596604 then throw("The campaign wasn't active")
597- else WriteSet([DataEntry(l(j), (((Z(j) + bz) + bA) + bB)), DataEntry(E(p, j), aL)])
605+ else WriteSet([DataEntry(l(j), (((Z(j) + bA) + bB) + bC)), DataEntry(E(p, j), aL)])
598606 }
599607
600608
601609
602-@Callable(bb)
610+@Callable(bc)
603611 func transfer (j) = {
604- let bn = extract(bb.payment)
605- if (isDefined(bn.assetId))
612+ let bp = extract(bc.payment)
613+ if (isDefined(bp.assetId))
606614 then throw("can use waves only at the moment")
607- else TransferSet([ScriptTransfer(addressFromStringValue(j), bn.amount, unit)])
615+ else TransferSet([ScriptTransfer(addressFromStringValue(j), bp.amount, unit)])
608616 }
609617
610618

github/deemru/w8io/3ef1775 
183.14 ms