tx · 9Vj57iaXogm2YaS7bA1ubq4gshnarRjgUi943n5k2y7H

3MrbnZkriTBZhRqS45L1VfCrden6Erpa7To:  -0.01400000 Waves

2021.12.15 15:08 [1835357] smart account 3MrbnZkriTBZhRqS45L1VfCrden6Erpa7To > SELF 0.00000000 Waves

{ "type": 13, "id": "9Vj57iaXogm2YaS7bA1ubq4gshnarRjgUi943n5k2y7H", "fee": 1400000, "feeAssetId": null, "timestamp": 1639570177665, "version": 1, "sender": "3MrbnZkriTBZhRqS45L1VfCrden6Erpa7To", "senderPublicKey": "63obiHRgG6hmZ9wxY6Lve4XmWN3XBCrDahV6tZwhsJEY", "proofs": [ "5b9dhM4nW14JadUnAFdXvs7gEjkvQDkE2vpy87UGq1djHRpNrGGjZKWtmV6pNxs1CFDvX6uMoeyCtqdS9FiCFBK8" ], "script": "base64:AAIFAAAAAAAAADwIAhIKCggICAgICAgIARIDCgEIEgYKBAgICAgSCQoHCAgICAgBCBIECgIIARIDCgEBEgMKAQESBAoCCAgAAABFAAAAAAZTQ0FMRTgAAAAAAAAAAAgAAAAABU1VTFQ4AAAAAAAF9eEAAAAAAAdTQ0FMRTE4AAAAAAAAAAASAAAAAAZNVUxUMTgJAAE2AAAAAQAN4Lazp2QAAAAAAAAOUE9PTFdFSUdIVE1VTFQFAAAABU1VTFQ4AAAAAA5HV1h2aXJ0dWFsUE9PTAIAAAAOR1dYdmlydHVhbFBPT0wAAAAAEWRlY2ltYWxzTXVsdFByaWNlCQAAaAAAAAIJAABoAAAAAgAAAAAAAAAAZAAAAAAAAAAD6AAAAAAAAAAD6AAAAAADU0VQAgAAAAJfXwAAAAAKUG9vbEFjdGl2ZQAAAAAAAAAAAQAAAAAPUG9vbFB1dERpc2FibGVkAAAAAAAAAAACAAAAABNQb29sTWF0Y2hlckRpc2FibGVkAAAAAAAAAAADAAAAAAxQb29sU2h1dGRvd24AAAAAAAAAAAQAAAAAEmlkeEludGVybmFsQXNzZXRJZAAAAAAAAAAAAQAAAAAPaWR4UmVzdXRBY3Rpb25zAAAAAAAAAAACAAAAACBpZHhJZkFzc2V0SWRDYWxjdWxhdGlvblBlcmZvcm1lZAAAAAAAAAAAAwAAAAAOaWR4UG9vbEFkZHJlc3MAAAAAAAAAAAEAAAAADWlkeFBvb2xTdGF0dXMAAAAAAAAAAAIAAAAAEGlkeFBvb2xMUEFzc2V0SWQAAAAAAAAAAAMAAAAADWlkeEFtdEFzc2V0SWQAAAAAAAAAAAQAAAAAD2lkeFByaWNlQXNzZXRJZAAAAAAAAAAABQAAAAAOaWR4QW10QXNzZXREY20AAAAAAAAAAAYAAAAAEGlkeFByaWNlQXNzZXREY20AAAAAAAAAAAcAAAAADmlkeElBbXRBc3NldElkAAAAAAAAAAAIAAAAABBpZHhJUHJpY2VBc3NldElkAAAAAAAAAAAJAAAAAA1pZHhMUEFzc2V0RGNtAAAAAAAAAAAKAAAAAAtpZHhQb29sVHlwZQAAAAAAAAAACwEAAAAQa2V5RmFjdG9yeUNvbmZpZwAAAAACAAAAESVzX19mYWN0b3J5Q29uZmlnAQAAAA9rZXlMcFRva2Vuc0xpc3QAAAAAAgAAABAlc19fbHBUb2tlbnNMaXN0AQAAABFrZXlQb29sU2NyaXB0SGFzaAAAAAACAAAAFiVzJXNfX3Bvb2xfX3NjcmlwdEhhc2gBAAAADWtleU1hdGNoZXJQdWIAAAAAAgAAABglcyVzX19tYXRjaGVyX19wdWJsaWNLZXkBAAAAEGtleVByaWNlRGVjaW1hbHMAAAAAAgAAABElc19fcHJpY2VEZWNpbWFscwEAAAATa2V5QWxsUG9vbHNTaHV0ZG93bgAAAAACAAAADCVzX19zaHV0ZG93bgEAAAAWa2V5TmV4dEludGVybmFsQXNzZXRJZAAAAAACAAAAFyVzX19uZXh0SW50ZXJuYWxBc3NldElkAQAAAA9rZXlQb29sVG9XZWlnaHQAAAABAAAAC3Bvb2xBZGRyZXNzCQABLAAAAAICAAAAEiVzJXNfX3Bvb2xXZWlnaHRfXwUAAAALcG9vbEFkZHJlc3MBAAAAFmtleVBvb2xUb1dlaWdodEhpc3RvcnkAAAACAAAAC3Bvb2xBZGRyZXNzAAAAA251bQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAASJXMlc19fcG9vbFdlaWdodF9fBQAAAAtwb29sQWRkcmVzcwIAAAACX18JAAGkAAAAAQUAAAADbnVtAQAAAB9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkAAAAAQAAABFpbnRlcm5hbEJhc2VBc3NldAkAASwAAAACAgAAACglcyVzJWRfX21hcHBpbmdzX19pbnRlcm5hbDJiYXNlQXNzZXRJZF9fCQABpAAAAAEFAAAAEWludGVybmFsQmFzZUFzc2V0AQAAAB9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkAAAAAQAAAAxiYXNlQXNzZXRTdHIJAAEsAAAAAgIAAAAoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUAAAAMYmFzZUFzc2V0U3RyAQAAAA1rZXlQb29sQ29uZmlnAAAAAgAAABNhbW91bnRBc3NldEludGVybmFsAAAAEnByaWNlQXNzZXRJbnRlcm5hbAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAglZCVkJXNfXwUAAAATYW1vdW50QXNzZXRJbnRlcm5hbAIAAAACX18FAAAAEnByaWNlQXNzZXRJbnRlcm5hbAIAAAAIX19jb25maWcBAAAAHWtleU1hcHBpbmdMcEFzc2V0VG9Qb29sQXNzZXRzAAAAAQAAAApscEFzc2V0U3RyCQABLAAAAAIJAAEsAAAAAgIAAAAIJXMlcyVzX18FAAAACmxwQXNzZXRTdHICAAAAGF9fbWFwcGluZ3NfX2xwQXNzZXQyUG9vbAEAAAAda2V5TWFwcGluZ1Bvb2xBc3NldHNUb0xwYXNzZXQAAAACAAAAGGludGVybmFsQW1vdW50QXNzZXRJZFN0cgAAABdpbnRlcm5hbFByaWNlQXNzZXRJZFN0cgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAolZCVkJXMlc19fBQAAABhpbnRlcm5hbEFtb3VudEFzc2V0SWRTdHICAAAAAl9fBQAAABdpbnRlcm5hbFByaWNlQXNzZXRJZFN0cgIAAAAeX19tYXBwaW5nc19fUG9vbEFzc2V0czJMcEFzc2V0AQAAAClrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cwAAAAEAAAATcG9vbENvbnRyYWN0QWRkcmVzcwkAASwAAAACCQABLAAAAAICAAAACCVzJXMlc19fBQAAABNwb29sQ29udHJhY3RBZGRyZXNzAgAAACNfX21hcHBpbmdzX19wb29sQ29udHJhY3QyUG9vbEFzc2V0cwEAAAApa2V5TWFwcGluZ1Bvb2xBc3NldHNUb1Bvb2xDb250cmFjdEFkZHJlc3MAAAACAAAAGGludGVybmFsQW1vdW50QXNzZXRJZFN0cgAAABdpbnRlcm5hbFByaWNlQXNzZXRJZFN0cgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAolZCVkJXMlc19fCQABpAAAAAEFAAAAGGludGVybmFsQW1vdW50QXNzZXRJZFN0cgIAAAACX18JAAGkAAAAAQUAAAAXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHICAAAAI19fbWFwcGluZ3NfX3Bvb2xBc3NldHMyUG9vbENvbnRyYWN0AQAAAB5rZXlNYXBwaW5nUG9vbENvbnRyYWNUb0xQQXNzZXQAAAABAAAAE3Bvb2xDb250cmFjdEFkZHJlc3MJAAEsAAAAAgkAASwAAAACAgAAAAglcyVzJXNfXwUAAAATcG9vbENvbnRyYWN0QWRkcmVzcwIAAAAgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAAAAKmtleU1hcHBpbmdQb29sTFBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwAAAAEAAAAKbHBBc3NldFN0cgkAASwAAAACCQABLAAAAAICAAAACCVzJXMlc19fBQAAAApscEFzc2V0U3RyAgAAACBfX21hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkJAAEsAAAAAgIAAAAVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQAAAANrZXkBAAAAEGdldEJvb2xlYW5PckZhaWwAAAABAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQkAASwAAAACAgAAABVObyBkYXRhIGZvciB0aGlzLmtleT0FAAAAA2tleQEAAAAMZ2V0SW50T3JGYWlsAAAAAQAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkJAAEsAAAAAgIAAAAVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQAAAANrZXkAAAAAGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcAAAAAAAAAAAAQAAAAAZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcAAAAAAAAAAAAgAAAAAUSWR4RmFjdG9yeUNmZ0lkb0RhcHAAAAAAAAAAAAMAAAAAFUlkeEZhY3RvcnlDZmdUZWFtRGFwcAAAAAAAAAAABAAAAAAZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcAAAAAAAAAAABQAAAAAVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwAAAAAAAAAAAGAAAAABlJZHhGYWN0b3J5Q2ZnU2xpcHBhZ2VEYXBwAAAAAAAAAAAHAAAAABRJZHhGYWN0b3J5Q2ZnRGFvRGFwcAAAAAAAAAAACAAAAAAaSWR4RmFjdG9yeUNmZ01hcmtldGluZ0RhcHAAAAAAAAAAAAkAAAAAGklkeEZhY3RvcnlDZmdHd3hSZXdhcmREYXBwAAAAAAAAAAAKAAAAABZJZHhGYWN0b3J5Q2ZnQmlyZHNEYXBwAAAAAAAAAAALAQAAABhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwAAAABAAAACmZhY3RvcnlDZmcJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAAGRAAAAAgUAAAAKZmFjdG9yeUNmZwUAAAAZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcAEAAAAYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsAAAAAQAAAApmYWN0b3J5Q2ZnCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABkQAAAAIFAAAACmZhY3RvcnlDZmcFAAAAGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHABAAAAF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsAAAAAQAAAApmYWN0b3J5Q2ZnCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABkQAAAAIFAAAACmZhY3RvcnlDZmcFAAAAGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcAEAAAAZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbAAAAAEAAAAKZmFjdG9yeUNmZwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkAAZEAAAACBQAAAApmYWN0b3J5Q2ZnBQAAABpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcAEAAAAQZGF0YUZhY3RvcnlDZmdWMwAAAAsAAAAOc3Rha2luZ0FkZHJlc3MAAAAPYm9vc3RpbmdBZGRyZXNzAAAAC2lkb0NvbnRyYWN0AAAADHRlYW1Db250cmFjdAAAABBlbWlzc2lvbkNvbnRyYWN0AAAADHJlc3RDb250cmFjdAAAABBzbGlwcGFnZUNvbnRyYWN0AAAAC2Rhb0NvbnRyYWN0AAAAEW1hcmtldGluZ0NvbnRyYWN0AAAAEmd3eFJld2FyZHNDb250cmFjdAAAAA1iaXJkc0NvbnRyYWN0CQAEuQAAAAIJAARMAAAAAgIAAAAWJXMlcyVzJXMlcyVzJXMlcyVzJXMlcwkABEwAAAACBQAAAA5zdGFraW5nQWRkcmVzcwkABEwAAAACBQAAAA9ib29zdGluZ0FkZHJlc3MJAARMAAAAAgUAAAALaWRvQ29udHJhY3QJAARMAAAAAgUAAAAMdGVhbUNvbnRyYWN0CQAETAAAAAIFAAAAEGVtaXNzaW9uQ29udHJhY3QJAARMAAAAAgUAAAAMcmVzdENvbnRyYWN0CQAETAAAAAIFAAAAEHNsaXBwYWdlQ29udHJhY3QJAARMAAAAAgUAAAALZGFvQ29udHJhY3QJAARMAAAAAgUAAAARbWFya2V0aW5nQ29udHJhY3QJAARMAAAAAgUAAAASZ3d4UmV3YXJkc0NvbnRyYWN0CQAETAAAAAIFAAAADWJpcmRzQ29udHJhY3QFAAAAA25pbAUAAAADU0VQAQAAAA5kYXRhRmFjdG9yeUNmZwAAAAcAAAAOc3Rha2luZ0FkZHJlc3MAAAAPYm9vc3RpbmdBZGRyZXNzAAAAC2lkb0NvbnRyYWN0AAAADHRlYW1Db250cmFjdAAAABBlbWlzc2lvbkNvbnRyYWN0AAAADHJlc3RDb250cmFjdAAAABBzbGlwcGFnZUNvbnRyYWN0CQAEuQAAAAIJAARMAAAAAgIAAAAMJXMlcyVzJXMlcyVzCQAETAAAAAIFAAAADnN0YWtpbmdBZGRyZXNzCQAETAAAAAIFAAAAD2Jvb3N0aW5nQWRkcmVzcwkABEwAAAACBQAAAAtpZG9Db250cmFjdAkABEwAAAACBQAAAAx0ZWFtQ29udHJhY3QJAARMAAAAAgUAAAAQZW1pc3Npb25Db250cmFjdAkABEwAAAACBQAAAAxyZXN0Q29udHJhY3QJAARMAAAAAgUAAAAQc2xpcHBhZ2VDb250cmFjdAUAAAADbmlsBQAAAANTRVABAAAAC2RhdGFQb29sQ2ZnAAAACwAAAAtwb29sQWRkcmVzcwAAAApwb29sU3RhdHVzAAAACWxwQXNzZXRJZAAAAA5hbW91bnRBc3NldFN0cgAAAA1wcmljZUFzc2V0U3RyAAAAE2Ftb3VudEFzc2V0RGVjaW1hbHMAAAAScHJpY2VBc3NldERlY2ltYWxzAAAAFWFtb3VudEFzc2V0SW50ZXJuYWxJZAAAABRwcmljZUFzc2V0SW50ZXJuYWxJZAAAAA9scEFzc2V0RGVjaW1hbHMAAAAIcG9vbFR5cGUJAAS5AAAAAgkABEwAAAACAgAAABYlcyVkJXMlcyVzJWQlZCVkJWQlZCVzCQAETAAAAAIFAAAAC3Bvb2xBZGRyZXNzCQAETAAAAAIFAAAACnBvb2xTdGF0dXMJAARMAAAAAgUAAAAJbHBBc3NldElkCQAETAAAAAIFAAAADmFtb3VudEFzc2V0U3RyCQAETAAAAAIFAAAADXByaWNlQXNzZXRTdHIJAARMAAAAAgkAAaQAAAABBQAAABNhbW91bnRBc3NldERlY2ltYWxzCQAETAAAAAIJAAGkAAAAAQUAAAAScHJpY2VBc3NldERlY2ltYWxzCQAETAAAAAIJAAGkAAAAAQUAAAAVYW1vdW50QXNzZXRJbnRlcm5hbElkCQAETAAAAAIJAAGkAAAAAQUAAAAUcHJpY2VBc3NldEludGVybmFsSWQJAARMAAAAAgkAAaQAAAABBQAAAA9scEFzc2V0RGVjaW1hbHMJAARMAAAAAgUAAAAIcG9vbFR5cGUFAAAAA25pbAUAAAADU0VQAQAAABVkYXRhTWFwcGluZ1Bvb2xBc3NldHMAAAACAAAAFmludGVybmFsQW1vdW50QXNzZXRTdHIAAAAVaW50ZXJuYWxQcmljZUFzc2V0U3RyCQAEuQAAAAIJAARMAAAAAgIAAAAEJWQlZAkABEwAAAACCQABpAAAAAEFAAAAFmludGVybmFsQW1vdW50QXNzZXRTdHIJAARMAAAAAgkAAaQAAAABBQAAABVpbnRlcm5hbFByaWNlQXNzZXRTdHIFAAAAA25pbAUAAAADU0VQAQAAAA1nZXRQb29sQ29uZmlnAAAAAQAAAAtwb29sQWRkcmVzcwQAAAAKcG9vbEFzc2V0cwkABLUAAAACCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQkBAAAAKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzAAAAAQUAAAALcG9vbEFkZHJlc3MFAAAAA1NFUAQAAAATYW1vdW50QXNzZXRJbnRlcm5hbAkAAZEAAAACBQAAAApwb29sQXNzZXRzAAAAAAAAAAABBAAAABJwcmljZUFzc2V0SW50ZXJuYWwJAAGRAAAAAgUAAAAKcG9vbEFzc2V0cwAAAAAAAAAAAgkABLUAAAACCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQkBAAAADWtleVBvb2xDb25maWcAAAACBQAAABNhbW91bnRBc3NldEludGVybmFsBQAAABJwcmljZUFzc2V0SW50ZXJuYWwFAAAAA1NFUAEAAAAaZ2V0SW50ZXJuYWxBc3NldElkT3JDcmVhdGUAAAACAAAACmFzc2V0SWRTdHIAAAALaW5jcmVtZW50b3IEAAAAD2ludGVybmFsQXNzZXRJZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZAAAAAEFAAAACmFzc2V0SWRTdHIAAAAAAAAAAAAEAAAAGGN1cnJlbnRJbmRleE9mSW50ZXJuYWxJZAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQEAAAAWa2V5TmV4dEludGVybmFsQXNzZXRJZAAAAAAAAAAAAAAAAAAEAAAABnJlc3VsdAMJAAAAAAAAAgUAAAAPaW50ZXJuYWxBc3NldElkAAAAAAAAAAAABAAAABJuZXdJbnRlcm5hbEFzc2V0SWQJAABkAAAAAgUAAAAYY3VycmVudEluZGV4T2ZJbnRlcm5hbElkBQAAAAtpbmNyZW1lbnRvcgkABRUAAAADBQAAABJuZXdJbnRlcm5hbEFzc2V0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABZrZXlOZXh0SW50ZXJuYWxBc3NldElkAAAAAAUAAAASbmV3SW50ZXJuYWxBc3NldElkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZAAAAAEFAAAACmFzc2V0SWRTdHIFAAAAEm5ld0ludGVybmFsQXNzZXRJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAfa2V5TWFwcGluZ3NJbnRlcm5hbDJiYXNlQXNzZXRJZAAAAAEFAAAAEm5ld0ludGVybmFsQXNzZXRJZAUAAAAKYXNzZXRJZFN0cgUAAAADbmlsBgkABRUAAAADBQAAAA9pbnRlcm5hbEFzc2V0SWQFAAAAA25pbAcFAAAABnJlc3VsdAEAAAAXY3JlYXRlTHBUb2tlbnNMaXN0RW50cnkAAAABAAAACm5ld0xwVG9rZW4EAAAACGxwVG9rZW5zCQAEHQAAAAIFAAAABHRoaXMJAQAAAA9rZXlMcFRva2Vuc0xpc3QAAAAAAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAACGxwVG9rZW5zCQABLAAAAAIJAAEsAAAAAgkBAAAABXZhbHVlAAAAAQUAAAAIbHBUb2tlbnMFAAAAA1NFUAUAAAAKbmV3THBUb2tlbgUAAAAKbmV3THBUb2tlbgAAAAgAAAABaQEAAAALY29uc3RydWN0b3IAAAAIAAAAD3N0YWtpbmdDb250cmFjdAAAABBib29zdGluZ0NvbnRyYWN0AAAAC2lkb0NvbnRyYWN0AAAADHRlYW1Db250cmFjdAAAABBlbWlzc2lvbkNvbnRyYWN0AAAADHJlc3RDb250cmFjdAAAABBzbHBpcGFnZUNvbnRyYWN0AAAADXByaWNlRGVjaW1hbHMDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAScGVybWlzc2lvbnMgZGVuaWVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBrZXlGYWN0b3J5Q29uZmlnAAAAAAkBAAAADmRhdGFGYWN0b3J5Q2ZnAAAABwUAAAAPc3Rha2luZ0NvbnRyYWN0BQAAABBib29zdGluZ0NvbnRyYWN0BQAAAAtpZG9Db250cmFjdAUAAAAMdGVhbUNvbnRyYWN0BQAAABBlbWlzc2lvbkNvbnRyYWN0BQAAAAxyZXN0Q29udHJhY3QFAAAAEHNscGlwYWdlQ29udHJhY3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABBrZXlQcmljZURlY2ltYWxzAAAAAAUAAAANcHJpY2VEZWNpbWFscwUAAAADbmlsAAAAAWkBAAAADWNvbnN0cnVjdG9yVjIAAAABAAAAEG1hdGhjaGVyUHViNThTdHIDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAScGVybWlzc2lvbnMgZGVuaWVkBAAAAAptYXRoY2VyUHViCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAAEG1hdGhjaGVyUHViNThTdHIDCQAAAAAAAAIFAAAACm1hdGhjZXJQdWIFAAAACm1hdGhjZXJQdWIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADWtleU1hdGNoZXJQdWIAAAAABQAAABBtYXRoY2hlclB1YjU4U3RyBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAADWNvbnN0cnVjdG9yVjMAAAAEAAAAC2Rhb0NvbnRyYWN0AAAAEW1hcmtldGluZ0NvbnRyYWN0AAAAEmd3eFJld2FyZHNDb250cmFjdAAAAA1iaXJkc0NvbnRyYWN0AwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAAEnBlcm1pc3Npb25zIGRlbmllZAQAAAAKZmFjdG9yeUNmZwkABLUAAAACCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQkBAAAAEGtleUZhY3RvcnlDb25maWcAAAAABQAAAANTRVAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUZhY3RvcnlDb25maWcAAAAACQEAAAAQZGF0YUZhY3RvcnlDZmdWMwAAAAsJAAGRAAAAAgUAAAAKZmFjdG9yeUNmZwAAAAAAAAAAAQkAAZEAAAACBQAAAApmYWN0b3J5Q2ZnAAAAAAAAAAACCQABkQAAAAIFAAAACmZhY3RvcnlDZmcAAAAAAAAAAAMJAAGRAAAAAgUAAAAKZmFjdG9yeUNmZwAAAAAAAAAABAkAAZEAAAACBQAAAApmYWN0b3J5Q2ZnAAAAAAAAAAAFCQABkQAAAAIFAAAACmZhY3RvcnlDZmcAAAAAAAAAAAYJAAGRAAAAAgUAAAAKZmFjdG9yeUNmZwAAAAAAAAAABwUAAAALZGFvQ29udHJhY3QFAAAAEW1hcmtldGluZ0NvbnRyYWN0BQAAABJnd3hSZXdhcmRzQ29udHJhY3QFAAAADWJpcmRzQ29udHJhY3QFAAAAA25pbAAAAAFpAQAAAA9hY3RpdmF0ZU5ld1Bvb2wAAAAHAAAAC3Bvb2xBZGRyZXNzAAAADmFtb3VudEFzc2V0U3RyAAAADXByaWNlQXNzZXRTdHIAAAALbHBBc3NldE5hbWUAAAAMbHBBc3NldERlc2NyAAAACnBvb2xXZWlnaHQAAAAIcG9vbFR5cGUDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAScGVybWlzc2lvbnMgZGVuaWVkAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQiAAAAAQkBAAAAKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzAAAAAQUAAAALcG9vbEFkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAADVBvb2wgYWRkcmVzcyAFAAAAC3Bvb2xBZGRyZXNzAgAAABQgYWxyZWFkeSByZWdpc3RlcmVkLgQAAAAXaW50ZXJuYWxBbW91bnRBc3NldERhdGEJAQAAABpnZXRJbnRlcm5hbEFzc2V0SWRPckNyZWF0ZQAAAAIFAAAADmFtb3VudEFzc2V0U3RyAAAAAAAAAAABBAAAABVpbnRlcm5hbEFtb3VudEFzc2V0SWQIBQAAABdpbnRlcm5hbEFtb3VudEFzc2V0RGF0YQAAAAJfMQQAAAAWaW50ZXJuYWxQcmljZUFzc2V0RGF0YQkBAAAAGmdldEludGVybmFsQXNzZXRJZE9yQ3JlYXRlAAAAAgUAAAANcHJpY2VBc3NldFN0cgMIBQAAABdpbnRlcm5hbEFtb3VudEFzc2V0RGF0YQAAAAJfMwAAAAAAAAAAAgAAAAAAAAAAAQQAAAAUaW50ZXJuYWxQcmljZUFzc2V0SWQIBQAAABZpbnRlcm5hbFByaWNlQXNzZXREYXRhAAAAAl8xBAAAABVwb29sQWNjb3VudFNjcmlwdEhhc2gJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkAA/EAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAtwb29sQWRkcmVzcwkAASwAAAACAgAAAClObyBzY3JpcHQgaGFzIGJlZW4gZm91bmQgb24gcG9vbCBhY2NvdW50IAUAAAALcG9vbEFkZHJlc3MEAAAAHGV0aGFsb25Qb29sQWNjb3VudFNjcmlwdEhhc2gJAQAAABFAZXh0ck5hdGl2ZSgxMDU3KQAAAAEJAQAAABFrZXlQb29sU2NyaXB0SGFzaAAAAAAEAAAACnBvb2xDb25maWcJAAQdAAAAAgUAAAAEdGhpcwkBAAAADWtleVBvb2xDb25maWcAAAACCQABpAAAAAEFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAkAAaQAAAABBQAAABRpbnRlcm5hbFByaWNlQXNzZXRJZAMJAQAAAAlpc0RlZmluZWQAAAABBQAAAApwb29sQ29uZmlnCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAFUG9vbCAFAAAADmFtb3VudEFzc2V0U3RyAgAAAAEvBQAAAA1wcmljZUFzc2V0U3RyAgAAABwgaGFzIGFscmVhZHkgYmVlbiBhY3RpdmF0ZWQuBAAAAA9wb29sQ29uZmlnVmFsdWUJAQAAAAV2YWx1ZQAAAAEJAAQdAAAAAgUAAAAEdGhpcwkBAAAADWtleVBvb2xDb25maWcAAAACCQABpAAAAAEFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAkAAaQAAAABBQAAABRpbnRlcm5hbFByaWNlQXNzZXRJZAQAAAAUYW1vdW50QXNzZXRzRGVjaW1hbHMDCQAAAAAAAAIFAAAADmFtb3VudEFzc2V0U3RyAgAAAAVXQVZFUwUAAAARZGVjaW1hbHNNdWx0UHJpY2UJAABsAAAABgAAAAAAAAAACgAAAAAAAAAAAAgJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQkAAlkAAAABBQAAAA5hbW91bnRBc3NldFN0cgAAAAhkZWNpbWFscwAAAAAAAAAAAAAAAAAAAAAAAAUAAAAERE9XTgQAAAATcHJpY2VBc3NldHNEZWNpbWFscwMJAAAAAAAAAgUAAAANcHJpY2VBc3NldFN0cgIAAAAFV0FWRVMFAAAAEWRlY2ltYWxzTXVsdFByaWNlCQAAbAAAAAYAAAAAAAAAAAoAAAAAAAAAAAAICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEJAAJZAAAAAQUAAAANcHJpY2VBc3NldFN0cgAAAAhkZWNpbWFscwAAAAAAAAAAAAAAAAAAAAAAAAUAAAAERE9XTgQAAAASbHBBc3NldElzc3VlQWN0aW9uCQAEQgAAAAUFAAAAC2xwQXNzZXROYW1lBQAAAAxscEFzc2V0RGVzY3IAAAAAAAAAAAEAAAAAAAAAAAgGBAAAAAlscEFzc2V0SWQJAAQ4AAAAAQUAAAASbHBBc3NldElzc3VlQWN0aW9uBAAAAAxscEFzc2V0SWRTdHIJAAJYAAAAAQUAAAAJbHBBc3NldElkBAAAABhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQJAAP8AAAABAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAALcG9vbEFkZHJlc3MCAAAACGFjdGl2YXRlCQAETAAAAAIFAAAADmFtb3VudEFzc2V0U3RyCQAETAAAAAIFAAAADXByaWNlQXNzZXRTdHIFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAABhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQFAAAAGHBvb2xBY3RpdmF0ZUludm9rZVJlc3VsdAMJAQAAAAIhPQAAAAIFAAAAGHBvb2xBY3RpdmF0ZUludm9rZVJlc3VsdAIAAAAHc3VjY2VzcwkAAAIAAAABAgAAACNQb29sIGluaXRpYWxpc2F0aW9uIGVycm9yIGhhcHBlbmVkLgkABRQAAAACCQAETgAAAAIJAAROAAAAAggFAAAAF2ludGVybmFsQW1vdW50QXNzZXREYXRhAAAAAl8yCAUAAAAWaW50ZXJuYWxQcmljZUFzc2V0RGF0YQAAAAJfMgkABEwAAAACBQAAABJscEFzc2V0SXNzdWVBY3Rpb24JAARMAAAAAgkBAAAABEJ1cm4AAAACBQAAAAlscEFzc2V0SWQAAAAAAAAAAAEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADWtleVBvb2xDb25maWcAAAACCQABpAAAAAEFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAkAAaQAAAABBQAAABRpbnRlcm5hbFByaWNlQXNzZXRJZAkBAAAAC2RhdGFQb29sQ2ZnAAAACwUAAAALcG9vbEFkZHJlc3MJAAGkAAAAAQUAAAAKUG9vbEFjdGl2ZQUAAAAMbHBBc3NldElkU3RyBQAAAA5hbW91bnRBc3NldFN0cgUAAAANcHJpY2VBc3NldFN0cgUAAAAUYW1vdW50QXNzZXRzRGVjaW1hbHMFAAAAE3ByaWNlQXNzZXRzRGVjaW1hbHMFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAUAAAAUaW50ZXJuYWxQcmljZUFzc2V0SWQFAAAAEWRlY2ltYWxzTXVsdFByaWNlBQAAAAhwb29sVHlwZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAda2V5TWFwcGluZ0xwQXNzZXRUb1Bvb2xBc3NldHMAAAABBQAAAAxscEFzc2V0SWRTdHIJAQAAABVkYXRhTWFwcGluZ1Bvb2xBc3NldHMAAAACBQAAABVpbnRlcm5hbEFtb3VudEFzc2V0SWQFAAAAFGludGVybmFsUHJpY2VBc3NldElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAB1rZXlNYXBwaW5nUG9vbEFzc2V0c1RvTHBhc3NldAAAAAIJAAGkAAAAAQUAAAAVaW50ZXJuYWxBbW91bnRBc3NldElkCQABpAAAAAEFAAAAFGludGVybmFsUHJpY2VBc3NldElkCQABLAAAAAICAAAABCVzX18FAAAADGxwQXNzZXRJZFN0cgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAApa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMAAAABBQAAAAtwb29sQWRkcmVzcwkBAAAAFWRhdGFNYXBwaW5nUG9vbEFzc2V0cwAAAAIFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAUAAAAUaW50ZXJuYWxQcmljZUFzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAKWtleU1hcHBpbmdQb29sQXNzZXRzVG9Qb29sQ29udHJhY3RBZGRyZXNzAAAAAgUAAAAVaW50ZXJuYWxBbW91bnRBc3NldElkBQAAABRpbnRlcm5hbFByaWNlQXNzZXRJZAUAAAALcG9vbEFkZHJlc3MJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAKmtleU1hcHBpbmdQb29sTFBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwAAAAEFAAAADGxwQXNzZXRJZFN0cgUAAAALcG9vbEFkZHJlc3MJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAHmtleU1hcHBpbmdQb29sQ29udHJhY1RvTFBBc3NldAAAAAEFAAAAC3Bvb2xBZGRyZXNzBQAAAAxscEFzc2V0SWRTdHIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA9rZXlQb29sVG9XZWlnaHQAAAABBQAAAAtwb29sQWRkcmVzcwUAAAAKcG9vbFdlaWdodAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPa2V5THBUb2tlbnNMaXN0AAAAAAkBAAAAF2NyZWF0ZUxwVG9rZW5zTGlzdEVudHJ5AAAAAQUAAAAMbHBBc3NldElkU3RyBQAAAANuaWwCAAAAB3N1Y2Nlc3MJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAACm1hbmFnZVBvb2wAAAACAAAAC3Bvb2xBZGRyZXNzAAAACW5ld1N0YXR1cwMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAABJwZXJtaXNzaW9ucyBkZW5pZWQEAAAACnBvb2xDb25maWcJAQAAAA1nZXRQb29sQ29uZmlnAAAAAQUAAAALcG9vbEFkZHJlc3MEAAAACnBvb2xTdGF0dXMJAAGRAAAAAgUAAAAKcG9vbENvbmZpZwUAAAANaWR4UG9vbFN0YXR1cwQAAAAMbHBBc3NldElkU3RyCQABkQAAAAIFAAAACnBvb2xDb25maWcFAAAAEGlkeFBvb2xMUEFzc2V0SWQEAAAADmFtb3VudEFzc2V0U3RyCQABkQAAAAIFAAAACnBvb2xDb25maWcFAAAADWlkeEFtdEFzc2V0SWQEAAAADXByaWNlQXNzZXRTdHIJAAGRAAAAAgUAAAAKcG9vbENvbmZpZwUAAAAPaWR4UHJpY2VBc3NldElkBAAAABRhbW91bnRBc3NldHNEZWNpbWFscwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACnBvb2xDb25maWcFAAAADmlkeEFtdEFzc2V0RGNtBAAAABNwcmljZUFzc2V0c0RlY2ltYWxzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAKcG9vbENvbmZpZwUAAAAQaWR4UHJpY2VBc3NldERjbQQAAAAVaW50ZXJuYWxBbW91bnRBc3NldElkCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAKcG9vbENvbmZpZwUAAAAOaWR4SUFtdEFzc2V0SWQEAAAAFGludGVybmFsUHJpY2VBc3NldElkCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAKcG9vbENvbmZpZwUAAAAQaWR4SVByaWNlQXNzZXRJZAQAAAAKbHBBc3NldERjbQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACnBvb2xDb25maWcFAAAADWlkeExQQXNzZXREY20EAAAACHBvb2xUeXBlCQABkQAAAAIFAAAACnBvb2xDb25maWcFAAAAC2lkeFBvb2xUeXBlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA1rZXlQb29sQ29uZmlnAAAAAgkAAaQAAAABBQAAABVpbnRlcm5hbEFtb3VudEFzc2V0SWQJAAGkAAAAAQUAAAAUaW50ZXJuYWxQcmljZUFzc2V0SWQJAQAAAAtkYXRhUG9vbENmZwAAAAsFAAAAC3Bvb2xBZGRyZXNzCQABpAAAAAEFAAAACW5ld1N0YXR1cwUAAAAMbHBBc3NldElkU3RyBQAAAA5hbW91bnRBc3NldFN0cgUAAAANcHJpY2VBc3NldFN0cgUAAAAUYW1vdW50QXNzZXRzRGVjaW1hbHMFAAAAE3ByaWNlQXNzZXRzRGVjaW1hbHMFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAUAAAAUaW50ZXJuYWxQcmljZUFzc2V0SWQFAAAACmxwQXNzZXREY20FAAAACHBvb2xUeXBlBQAAAANuaWwAAAABaQEAAAAEZW1pdAAAAAEAAAAMYW1vdW50VG9FbWl0BAAAAAZjYWxsZXIIBQAAAAFpAAAABmNhbGxlcgQAAAAMb3JpZ2luQ2FsbGVyCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIEAAAAEGxwQXNzZXRSZXF1ZXN0ZWQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCIAAAABCQEAAAAea2V5TWFwcGluZ1Bvb2xDb250cmFjVG9MUEFzc2V0AAAAAQkABCUAAAABBQAAAAZjYWxsZXICAAAAHUludmFsaWQgTFAgYWRkcmVzcyBjYWxsZWQgbWUuBAAAAAdscEFzc2V0CQACWQAAAAEFAAAAEGxwQXNzZXRSZXF1ZXN0ZWQDCQAAZgAAAAIFAAAADGFtb3VudFRvRW1pdAAAAAAAAAAAAAkABRQAAAACCQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwUAAAAHbHBBc3NldAUAAAAMYW1vdW50VG9FbWl0BgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADGFtb3VudFRvRW1pdAUAAAAHbHBBc3NldAUAAAADbmlsAgAAAAdzdWNjZXNzBQAAAANuaWwAAAABaQEAAAAEYnVybgAAAAEAAAAMYW1vdW50VG9CdXJuBAAAAAZjYWxsZXIIBQAAAAFpAAAABmNhbGxlcgQAAAAMb3JpZ2luQ2FsbGVyCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIEAAAAB3BheW1lbnQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAADXBheW1lbnRBbW91bnQJAQAAAAV2YWx1ZQAAAAEIBQAAAAdwYXltZW50AAAABmFtb3VudAQAAAAPaW5BbW91bnRBc3NldElkCQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQEAAAAGmxwQXNzZXRSZXF1ZXN0ZWRGb3JCdXJuaW5nCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQiAAAAAQkBAAAAHmtleU1hcHBpbmdQb29sQ29udHJhY1RvTFBBc3NldAAAAAEJAAQlAAAAAQUAAAAGY2FsbGVyAgAAAB1JbnZhbGlkIExQIGFkZHJlc3MgY2FsbGVkIG1lLgMJAQAAAAIhPQAAAAIFAAAAD2luQW1vdW50QXNzZXRJZAUAAAAabHBBc3NldFJlcXVlc3RlZEZvckJ1cm5pbmcJAAACAAAAAQIAAAAVSW52YWxpZCBhc3NldCBwYXNzZWQuAwkBAAAAAiE9AAAAAgUAAAAMYW1vdW50VG9CdXJuBQAAAA1wYXltZW50QW1vdW50CQAAAgAAAAECAAAAFkludmFsaWQgYW1vdW50IHBhc3NlZC4EAAAAB2xwQXNzZXQJAAJZAAAAAQUAAAAabHBBc3NldFJlcXVlc3RlZEZvckJ1cm5pbmcJAAUUAAAAAgkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAAB2xwQXNzZXQFAAAADGFtb3VudFRvQnVybgUAAAADbmlsAgAAAAdzdWNjZXNzAAAAAWkBAAAADW1vZGlmeVdlaWdodHMAAAACAAAADmJ0Y1Bvb2xBZGRyZXNzAAAADmV0aFBvb2xBZGRyZXNzBAAAAAxnd3hXZWlnaHROZXcJAABpAAAAAgkAAGgAAAACAAAAAAAAAAAFBQAAAA5QT09MV0VJR0hUTVVMVAAAAAAAAAAAZAQAAAAPd2VpZ2h0RGVjcmVtZW50CQAAaQAAAAIJAABoAAAAAgAAAAAAAAAAGQUAAAAOUE9PTFdFSUdIVE1VTFQAAAAAAAAAA+gEAAAABmNhbGxlcggFAAAAAWkAAAAGY2FsbGVyAwkBAAAAAiE9AAAAAgUAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAAEnBlcm1pc3Npb25zIGRlbmllZAQAAAAKZmFjdG9yeUNmZwkABLUAAAACCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQkBAAAAEGtleUZhY3RvcnlDb25maWcAAAAABQAAAANTRVAEAAAAC3N0YWtpbmdEYXBwCQEAAAAXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwAAAABBQAAAApmYWN0b3J5Q2ZnBAAAAA1nd3hSZXdhcmREYXBwCQEAAAAZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbAAAAAEFAAAACmZhY3RvcnlDZmcEAAAADGJ0Y1dlaWdodEtFWQkBAAAAD2tleVBvb2xUb1dlaWdodAAAAAEFAAAADmJ0Y1Bvb2xBZGRyZXNzBAAAAAxldGhXZWlnaHRLRVkJAQAAAA9rZXlQb29sVG9XZWlnaHQAAAABBQAAAA5ldGhQb29sQWRkcmVzcwQAAAAMZ3d4V2VpZ2h0S0VZCQEAAAAPa2V5UG9vbFRvV2VpZ2h0AAAAAQUAAAAOR1dYdmlydHVhbFBPT0wEAAAACWJ0Y1dlaWdodAkBAAAADGdldEludE9yRmFpbAAAAAEFAAAADGJ0Y1dlaWdodEtFWQQAAAAJZXRoV2VpZ2h0CQEAAAAMZ2V0SW50T3JGYWlsAAAAAQUAAAAMZXRoV2VpZ2h0S0VZBAAAAAxidGNXZWlnaHROZXcJAABlAAAAAgUAAAAJYnRjV2VpZ2h0BQAAAA93ZWlnaHREZWNyZW1lbnQEAAAADGV0aFdlaWdodE5ldwkAAGUAAAACBQAAAAlldGhXZWlnaHQFAAAAD3dlaWdodERlY3JlbWVudAMJAABnAAAAAgAAAAAAAAAAAAUAAAAMYnRjV2VpZ2h0TmV3CQAAAgAAAAEJAAEsAAAAAgIAAAAWaW52YWxpZCBidGNXZWlnaHROZXc6IAkAAaQAAAABBQAAAAxidGNXZWlnaHROZXcDCQAAZwAAAAIAAAAAAAAAAAAFAAAADGV0aFdlaWdodE5ldwkAAAIAAAABCQABLAAAAAICAAAAFmludmFsaWQgZXRoV2VpZ2h0TmV3OiAJAAGkAAAAAQUAAAAMZXRoV2VpZ2h0TmV3BAAAAA9idGNMcEFzc2V0SWRTdHIJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABCQEAAAAea2V5TWFwcGluZ1Bvb2xDb250cmFjVG9MUEFzc2V0AAAAAQUAAAAOYnRjUG9vbEFkZHJlc3MEAAAAD2V0aExwQXNzZXRJZFN0cgkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEJAQAAAB5rZXlNYXBwaW5nUG9vbENvbnRyYWNUb0xQQXNzZXQAAAABBQAAAA5ldGhQb29sQWRkcmVzcwQAAAARb25Nb2RpZnlXZWlnaHRCdGMJAAP8AAAABAUAAAALc3Rha2luZ0RhcHACAAAADm9uTW9kaWZ5V2VpZ2h0CQAETAAAAAIFAAAAD2J0Y0xwQXNzZXRJZFN0cgkABEwAAAACBQAAAA5idGNQb29sQWRkcmVzcwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAEW9uTW9kaWZ5V2VpZ2h0QnRjBQAAABFvbk1vZGlmeVdlaWdodEJ0YwQAAAARb25Nb2RpZnlXZWlnaHRFdGgJAAP8AAAABAUAAAALc3Rha2luZ0RhcHACAAAADm9uTW9kaWZ5V2VpZ2h0CQAETAAAAAIFAAAAD2V0aExwQXNzZXRJZFN0cgkABEwAAAACBQAAAA5ldGhQb29sQWRkcmVzcwUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAEW9uTW9kaWZ5V2VpZ2h0RXRoBQAAABFvbk1vZGlmeVdlaWdodEV0aAQAAAAVb25FbWlzc2lvbkZvckd3eFN0YXJ0CQAD/AAAAAQFAAAADWd3eFJld2FyZERhcHACAAAAFW9uRW1pc3Npb25Gb3JHd3hTdGFydAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAFW9uRW1pc3Npb25Gb3JHd3hTdGFydAUAAAAVb25FbWlzc2lvbkZvckd3eFN0YXJ0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxidGNXZWlnaHRLRVkFAAAADGJ0Y1dlaWdodE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMZXRoV2VpZ2h0S0VZBQAAAAxldGhXZWlnaHROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADGd3eFdlaWdodEtFWQUAAAAMZ3d4V2VpZ2h0TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAWa2V5UG9vbFRvV2VpZ2h0SGlzdG9yeQAAAAIFAAAADmJ0Y1Bvb2xBZGRyZXNzAAAAAAAAAAAABQAAAAlidGNXZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABZrZXlQb29sVG9XZWlnaHRIaXN0b3J5AAAAAgUAAAAOZXRoUG9vbEFkZHJlc3MAAAAAAAAAAAAFAAAACWV0aFdlaWdodAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmW2Rr7", "chainId": 84, "height": 1835357, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8WFBieHcRr21kB1ioqqwE2obgnVzABf49rxtQuu1rAz3 Next: H9Cf4CHaWjbN78PHYb1od6pdEbE5bMMhVHxaxWF5HvLU Diff:
OldNewDifferences
7777 func H (I) = ("%s%s__poolWeight__" + I)
7878
7979
80-func J (K) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(K))
80+func J (I,K) = ((("%s%s__poolWeight__" + I) + "__") + toString(K))
8181
8282
83-func L (M) = ("%s%s%s__mappings__baseAsset2internalId__" + M)
83+func L (M) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(M))
8484
8585
86-func N (O,P) = (((("%d%d%s__" + O) + "__") + P) + "__config")
86+func N (O) = ("%s%s%s__mappings__baseAsset2internalId__" + O)
8787
8888
89-func Q (R) = (("%s%s%s__" + R) + "__mappings__lpAsset2Pool")
89+func P (Q,R) = (((("%d%d%s__" + Q) + "__") + R) + "__config")
9090
9191
92-func S (T,U) = (((("%d%d%s%s__" + T) + "__") + U) + "__mappings__PoolAssets2LpAsset")
92+func S (T) = (("%s%s%s__" + T) + "__mappings__lpAsset2Pool")
9393
9494
95-func V (W) = (("%s%s%s__" + W) + "__mappings__poolContract2PoolAssets")
95+func U (V,W) = (((("%d%d%s%s__" + V) + "__") + W) + "__mappings__PoolAssets2LpAsset")
9696
9797
98-func X (T,U) = (((("%d%d%s%s__" + toString(T)) + "__") + toString(U)) + "__mappings__poolAssets2PoolContract")
98+func X (Y) = (("%s%s%s__" + Y) + "__mappings__poolContract2PoolAssets")
9999
100100
101-func Y (W) = (("%s%s%s__" + W) + "__mappings__poolContract2LpAsset")
101+func Z (V,W) = (((("%d%d%s%s__" + toString(V)) + "__") + toString(W)) + "__mappings__poolAssets2PoolContract")
102102
103103
104-func Z (R) = (("%s%s%s__" + R) + "__mappings__lpAsset2PoolContract")
104+func aa (Y) = (("%s%s%s__" + Y) + "__mappings__poolContract2LpAsset")
105105
106106
107-func aa (ab) = valueOrErrorMessage(getString(this, ab), ("No data for this.key=" + ab))
107+func ab (T) = (("%s%s%s__" + T) + "__mappings__lpAsset2PoolContract")
108108
109109
110-func ac (ab) = valueOrErrorMessage(getBoolean(this, ab), ("No data for this.key=" + ab))
110+func ac (ad) = valueOrErrorMessage(getString(this, ad), ("No data for this.key=" + ad))
111111
112112
113-func ad (ab) = valueOrErrorMessage(getInteger(this, ab), ("No data for this.key=" + ab))
113+func ae (ad) = valueOrErrorMessage(getBoolean(this, ad), ("No data for this.key=" + ad))
114114
115115
116-let ae = 1
117-
118-let af = 2
119-
120-let ag = 3
121-
122-let ah = 4
123-
124-let ai = 5
125-
126-let aj = 6
127-
128-let ak = 7
129-
130-let al = 8
131-
132-let am = 9
133-
134-let an = 10
135-
136-let ao = 11
137-
138-func ap (aq) = addressFromStringValue(aq[af])
116+func af (ad) = valueOrErrorMessage(getInteger(this, ad), ("No data for this.key=" + ad))
139117
140118
141-func ar (aq) = addressFromStringValue(aq[ai])
119+let ag = 1
120+
121+let ah = 2
122+
123+let ai = 3
124+
125+let aj = 4
126+
127+let ak = 5
128+
129+let al = 6
130+
131+let am = 7
132+
133+let an = 8
134+
135+let ao = 9
136+
137+let ap = 10
138+
139+let aq = 11
140+
141+func ar (as) = addressFromStringValue(as[ah])
142142
143143
144-func as (aq) = addressFromStringValue(aq[ae])
144+func at (as) = addressFromStringValue(as[ak])
145145
146146
147-func at (aq) = addressFromStringValue(aq[an])
147+func au (as) = addressFromStringValue(as[ag])
148148
149149
150-func au (av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", av, aw, ax, ay, az, aA, aB, aC, aD, aE, aF], h)
150+func av (as) = addressFromStringValue(as[ap])
151151
152152
153-func aG (av,aw,ax,ay,az,aA,aB) = makeString(["%s%s%s%s%s%s", av, aw, ax, ay, az, aA, aB], h)
153+func aw (ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", ax, ay, az, aA, aB, aC, aD, aE, aF, aG, aH], h)
154154
155155
156-func aH (I,aI,aJ,aK,aL,aM,aN,aO,aP,aQ,aR) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", I, aI, aJ, aK, aL, toString(aM), toString(aN), toString(aO), toString(aP), toString(aQ), aR], h)
156+func aI (ax,ay,az,aA,aB,aC,aD) = makeString(["%s%s%s%s%s%s", ax, ay, az, aA, aB, aC, aD], h)
157157
158158
159-func aS (aT,aU) = makeString(["%d%d", toString(aT), toString(aU)], h)
159+func aJ (I,aK,aL,aM,aN,aO,aP,aQ,aR,aS,aT) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", I, aK, aL, aM, aN, toString(aO), toString(aP), toString(aQ), toString(aR), toString(aS), aT], h)
160160
161161
162-func aV (I) = {
163- let aW = split(aa(V(I)), h)
164- let O = aW[1]
165- let P = aW[2]
166- split(aa(N(O, P)), h)
162+func aU (aV,aW) = makeString(["%d%d", toString(aV), toString(aW)], h)
163+
164+
165+func aX (I) = {
166+ let aY = split(ac(X(I)), h)
167+ let Q = aY[1]
168+ let R = aY[2]
169+ split(ac(P(Q, R)), h)
167170 }
168171
169172
170-func aX (aY,aZ) = {
171- let ba = valueOrElse(getInteger(this, L(aY)), 0)
172- let bb = valueOrElse(getInteger(this, G()), 0)
173- let bc = if ((ba == 0))
173+func aZ (ba,bb) = {
174+ let bc = valueOrElse(getInteger(this, N(ba)), 0)
175+ let bd = valueOrElse(getInteger(this, G()), 0)
176+ let be = if ((bc == 0))
174177 then {
175- let bd = (bb + aZ)
176- $Tuple3(bd, [IntegerEntry(G(), bd), IntegerEntry(L(aY), bd), StringEntry(J(bd), aY)], true)
178+ let bf = (bd + bb)
179+ $Tuple3(bf, [IntegerEntry(G(), bf), IntegerEntry(N(ba), bf), StringEntry(L(bf), ba)], true)
177180 }
178- else $Tuple3(ba, nil, false)
179- bc
181+ else $Tuple3(bc, nil, false)
182+ be
180183 }
181184
182185
183-func be (bf) = {
184- let bg = getString(this, B())
185- if (isDefined(bg))
186- then ((value(bg) + h) + bf)
187- else bf
186+func bg (bh) = {
187+ let bi = getString(this, B())
188+ if (isDefined(bi))
189+ then ((value(bi) + h) + bh)
190+ else bh
188191 }
189192
190193
191-@Callable(bh)
192-func constructor (bi,bj,ax,ay,az,aA,bk,bl) = if ((bh.caller != this))
194+@Callable(bj)
195+func constructor (bk,bl,az,aA,aB,aC,bm,bn) = if ((bj.caller != this))
193196 then throw("permissions denied")
194- else [StringEntry(A(), aG(bi, bj, ax, ay, az, aA, bk)), IntegerEntry(E(), bl)]
197+ else [StringEntry(A(), aI(bk, bl, az, aA, aB, aC, bm)), IntegerEntry(E(), bn)]
195198
196199
197200
198-@Callable(bh)
199-func constructorV2 (bm) = if ((bh.caller != this))
201+@Callable(bj)
202+func constructorV2 (bo) = if ((bj.caller != this))
200203 then throw("permissions denied")
201204 else {
202- let bn = addressFromPublicKey(fromBase58String(bm))
203- if ((bn == bn))
204- then [StringEntry(D(), bm)]
205+ let bp = addressFromPublicKey(fromBase58String(bo))
206+ if ((bp == bp))
207+ then [StringEntry(D(), bo)]
205208 else throw("Strict value is not equal to itself.")
206209 }
207210
208211
209212
210-@Callable(bh)
211-func constructorV3 (aC,aD,aE,aF) = if ((bh.caller != this))
213+@Callable(bj)
214+func constructorV3 (aE,aF,aG,aH) = if ((bj.caller != this))
212215 then throw("permissions denied")
213216 else {
214- let aq = split(aa(A()), h)
215-[StringEntry(A(), au(aq[1], aq[2], aq[3], aq[4], aq[5], aq[6], aq[7], aC, aD, aE, aF))]
217+ let as = split(ac(A()), h)
218+[StringEntry(A(), aw(as[1], as[2], as[3], as[4], as[5], as[6], as[7], aE, aF, aG, aH))]
216219 }
217220
218221
219222
220-@Callable(bh)
221-func activateNewPool (I,aK,aL,bo,bp,bq,aR) = if ((bh.caller != this))
223+@Callable(bj)
224+func activateNewPool (I,aM,aN,bq,br,bs,aT) = if ((bj.caller != this))
222225 then throw("permissions denied")
223- else if (isDefined(getString(V(I))))
226+ else if (isDefined(getString(X(I))))
224227 then throw((("Pool address " + I) + " already registered."))
225228 else {
226- let br = aX(aK, 1)
227- let bs = br._1
228- let bt = aX(aL, if (br._3)
229+ let bt = aZ(aM, 1)
230+ let bu = bt._1
231+ let bv = aZ(aN, if (bt._3)
229232 then 2
230233 else 1)
231- let bu = bt._1
232- let bv = valueOrErrorMessage(scriptHash(addressFromStringValue(I)), ("No script has been found on pool account " + I))
233- let bw = getBinaryValue(C())
234- let bx = getString(this, N(toString(bs), toString(bu)))
235- if (isDefined(bx))
236- then throw((((("Pool " + aK) + "/") + aL) + " has already been activated."))
234+ let bw = bv._1
235+ let bx = valueOrErrorMessage(scriptHash(addressFromStringValue(I)), ("No script has been found on pool account " + I))
236+ let by = getBinaryValue(C())
237+ let bz = getString(this, P(toString(bu), toString(bw)))
238+ if (isDefined(bz))
239+ then throw((((("Pool " + aM) + "/") + aN) + " has already been activated."))
237240 else {
238- let by = value(getString(this, N(toString(bs), toString(bu))))
239- let bz = if ((aK == "WAVES"))
241+ let bA = value(getString(this, P(toString(bu), toString(bw))))
242+ let bB = if ((aM == "WAVES"))
240243 then g
241- else pow(10, 0, value(assetInfo(fromBase58String(aK))).decimals, 0, 0, DOWN)
242- let bA = if ((aL == "WAVES"))
244+ else pow(10, 0, value(assetInfo(fromBase58String(aM))).decimals, 0, 0, DOWN)
245+ let bC = if ((aN == "WAVES"))
243246 then g
244- else pow(10, 0, value(assetInfo(fromBase58String(aL))).decimals, 0, 0, DOWN)
245- let bB = Issue(bo, bp, 1, 8, true)
246- let aJ = calculateAssetId(bB)
247- let bC = toBase58String(aJ)
248- let bD = invoke(addressFromStringValue(I), "activate", [aK, aL], nil)
249- if ((bD == bD))
250- then if ((bD != "success"))
247+ else pow(10, 0, value(assetInfo(fromBase58String(aN))).decimals, 0, 0, DOWN)
248+ let bD = Issue(bq, br, 1, 8, true)
249+ let aL = calculateAssetId(bD)
250+ let bE = toBase58String(aL)
251+ let bF = invoke(addressFromStringValue(I), "activate", [aM, aN], nil)
252+ if ((bF == bF))
253+ then if ((bF != "success"))
251254 then throw("Pool initialisation error happened.")
252- else $Tuple2(((br._2 ++ bt._2) ++ [bB, Burn(aJ, 1), StringEntry(N(toString(bs), toString(bu)), aH(I, toString(i), bC, aK, aL, bz, bA, bs, bu, g, aR)), StringEntry(Q(bC), aS(bs, bu)), StringEntry(S(toString(bs), toString(bu)), ("%s__" + bC)), StringEntry(V(I), aS(bs, bu)), StringEntry(X(bs, bu), I), StringEntry(Z(bC), I), StringEntry(Y(I), bC), IntegerEntry(H(I), bq), StringEntry(B(), be(bC))]), "success")
255+ else $Tuple2(((bt._2 ++ bv._2) ++ [bD, Burn(aL, 1), StringEntry(P(toString(bu), toString(bw)), aJ(I, toString(i), bE, aM, aN, bB, bC, bu, bw, g, aT)), StringEntry(S(bE), aU(bu, bw)), StringEntry(U(toString(bu), toString(bw)), ("%s__" + bE)), StringEntry(X(I), aU(bu, bw)), StringEntry(Z(bu, bw), I), StringEntry(ab(bE), I), StringEntry(aa(I), bE), IntegerEntry(H(I), bs), StringEntry(B(), bg(bE))]), "success")
253256 else throw("Strict value is not equal to itself.")
254257 }
255258 }
256259
257260
258261
259-@Callable(bh)
260-func managePool (I,bE) = if ((bh.caller != this))
262+@Callable(bj)
263+func managePool (I,bG) = if ((bj.caller != this))
261264 then throw("permissions denied")
262265 else {
263- let bx = aV(I)
264- let aI = bx[q]
265- let bC = bx[r]
266- let aK = bx[s]
267- let aL = bx[t]
268- let bz = parseIntValue(bx[u])
269- let bA = parseIntValue(bx[v])
270- let bs = parseIntValue(bx[w])
271- let bu = parseIntValue(bx[x])
272- let bF = parseIntValue(bx[y])
273- let aR = bx[z]
274-[StringEntry(N(toString(bs), toString(bu)), aH(I, toString(bE), bC, aK, aL, bz, bA, bs, bu, bF, aR))]
266+ let bz = aX(I)
267+ let aK = bz[q]
268+ let bE = bz[r]
269+ let aM = bz[s]
270+ let aN = bz[t]
271+ let bB = parseIntValue(bz[u])
272+ let bC = parseIntValue(bz[v])
273+ let bu = parseIntValue(bz[w])
274+ let bw = parseIntValue(bz[x])
275+ let bH = parseIntValue(bz[y])
276+ let aT = bz[z]
277+[StringEntry(P(toString(bu), toString(bw)), aJ(I, toString(bG), bE, aM, aN, bB, bC, bu, bw, bH, aT))]
275278 }
276279
277280
278281
279-@Callable(bh)
280-func emit (bG) = {
281- let bH = bh.caller
282- let bI = bh.originCaller
283- let bJ = valueOrErrorMessage(getString(Y(toString(bH))), "Invalid LP address called me.")
284- let bK = fromBase58String(bJ)
285- if ((bG > 0))
286- then $Tuple2([Reissue(bK, bG, true), ScriptTransfer(bh.caller, bG, bK)], "success")
282+@Callable(bj)
283+func emit (bI) = {
284+ let bJ = bj.caller
285+ let bK = bj.originCaller
286+ let bL = valueOrErrorMessage(getString(aa(toString(bJ))), "Invalid LP address called me.")
287+ let bM = fromBase58String(bL)
288+ if ((bI > 0))
289+ then $Tuple2([Reissue(bM, bI, true), ScriptTransfer(bj.caller, bI, bM)], "success")
287290 else nil
288291 }
289292
290293
291294
292-@Callable(bh)
293-func burn (bL) = {
294- let bH = bh.caller
295- let bI = bh.originCaller
296- let bM = value(bh.payments[0])
297- let bN = value(bM.amount)
298- let bO = toBase58String(value(bM.assetId))
299- let bP = valueOrErrorMessage(getString(Y(toString(bH))), "Invalid LP address called me.")
300- if ((bO != bP))
295+@Callable(bj)
296+func burn (bN) = {
297+ let bJ = bj.caller
298+ let bK = bj.originCaller
299+ let bO = value(bj.payments[0])
300+ let bP = value(bO.amount)
301+ let bQ = toBase58String(value(bO.assetId))
302+ let bR = valueOrErrorMessage(getString(aa(toString(bJ))), "Invalid LP address called me.")
303+ if ((bQ != bR))
301304 then throw("Invalid asset passed.")
302- else if ((bL != bN))
305+ else if ((bN != bP))
303306 then throw("Invalid amount passed.")
304307 else {
305- let bK = fromBase58String(bP)
306- $Tuple2([Burn(bK, bL)], "success")
308+ let bM = fromBase58String(bR)
309+ $Tuple2([Burn(bM, bN)], "success")
307310 }
308311 }
309312
310313
311314
312-@Callable(bh)
313-func modifyWeights (bQ,bR) = {
314- let bS = ((5 * e) / 100)
315- let bT = ((25 * e) / 1000)
316- let bH = bh.caller
317- if ((bH != this))
315+@Callable(bj)
316+func modifyWeights (bS,bT) = {
317+ let bU = ((5 * e) / 100)
318+ let bV = ((25 * e) / 1000)
319+ let bJ = bj.caller
320+ if ((bJ != this))
318321 then throw("permissions denied")
319322 else {
320- let aq = split(aa(A()), h)
321- let bU = as(aq)
322- let bV = at(aq)
323- let bW = H(bQ)
324- let bX = H(bR)
325- let bY = H(f)
326- let bZ = (ad(bW) - bT)
327- let ca = (ad(bX) - bT)
328- if ((0 >= bZ))
329- then throw(("invalid btcWeightNew: " + toString(bZ)))
330- else if ((0 >= ca))
331- then throw(("invalid ethWeightNew: " + toString(ca)))
323+ let as = split(ac(A()), h)
324+ let bW = au(as)
325+ let bX = av(as)
326+ let bY = H(bS)
327+ let bZ = H(bT)
328+ let ca = H(f)
329+ let cb = af(bY)
330+ let cc = af(bZ)
331+ let cd = (cb - bV)
332+ let ce = (cc - bV)
333+ if ((0 >= cd))
334+ then throw(("invalid btcWeightNew: " + toString(cd)))
335+ else if ((0 >= ce))
336+ then throw(("invalid ethWeightNew: " + toString(ce)))
332337 else {
333- let cb = aa(Y(bQ))
334- let cc = aa(Y(bR))
335- let cd = invoke(bU, "onModifyWeight", [cb, bQ], nil)
336- if ((cd == cd))
338+ let cf = ac(aa(bS))
339+ let cg = ac(aa(bT))
340+ let ch = invoke(bW, "onModifyWeight", [cf, bS], nil)
341+ if ((ch == ch))
337342 then {
338- let ce = invoke(bU, "onModifyWeight", [cc, bR], nil)
339- if ((ce == ce))
343+ let ci = invoke(bW, "onModifyWeight", [cg, bT], nil)
344+ if ((ci == ci))
340345 then {
341- let cf = invoke(bV, "onEmissionForGwxStart", nil, nil)
342- if ((cf == cf))
343- then [IntegerEntry(bW, bZ), IntegerEntry(bX, ca), IntegerEntry(bY, bS)]
346+ let cj = invoke(bX, "onEmissionForGwxStart", nil, nil)
347+ if ((cj == cj))
348+ then [IntegerEntry(bY, cd), IntegerEntry(bZ, ce), IntegerEntry(ca, bU), IntegerEntry(J(bS, 0), cb), IntegerEntry(J(bT, 0), cc)]
344349 else throw("Strict value is not equal to itself.")
345350 }
346351 else throw("Strict value is not equal to itself.")
351356 }
352357
353358
354-@Verifier(cg)
355-func ch () = sigVerify(cg.bodyBytes, cg.proofs[0], cg.senderPublicKey)
359+@Verifier(ck)
360+func cl () = sigVerify(ck.bodyBytes, ck.proofs[0], ck.senderPublicKey)
356361
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = b
1313
1414 let f = "GWXvirtualPOOL"
1515
1616 let g = ((100 * 1000) * 1000)
1717
1818 let h = "__"
1919
2020 let i = 1
2121
2222 let j = 2
2323
2424 let k = 3
2525
2626 let l = 4
2727
2828 let m = 1
2929
3030 let n = 2
3131
3232 let o = 3
3333
3434 let p = 1
3535
3636 let q = 2
3737
3838 let r = 3
3939
4040 let s = 4
4141
4242 let t = 5
4343
4444 let u = 6
4545
4646 let v = 7
4747
4848 let w = 8
4949
5050 let x = 9
5151
5252 let y = 10
5353
5454 let z = 11
5555
5656 func A () = "%s__factoryConfig"
5757
5858
5959 func B () = "%s__lpTokensList"
6060
6161
6262 func C () = "%s%s__pool__scriptHash"
6363
6464
6565 func D () = "%s%s__matcher__publicKey"
6666
6767
6868 func E () = "%s__priceDecimals"
6969
7070
7171 func F () = "%s__shutdown"
7272
7373
7474 func G () = "%s__nextInternalAssetId"
7575
7676
7777 func H (I) = ("%s%s__poolWeight__" + I)
7878
7979
80-func J (K) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(K))
80+func J (I,K) = ((("%s%s__poolWeight__" + I) + "__") + toString(K))
8181
8282
83-func L (M) = ("%s%s%s__mappings__baseAsset2internalId__" + M)
83+func L (M) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(M))
8484
8585
86-func N (O,P) = (((("%d%d%s__" + O) + "__") + P) + "__config")
86+func N (O) = ("%s%s%s__mappings__baseAsset2internalId__" + O)
8787
8888
89-func Q (R) = (("%s%s%s__" + R) + "__mappings__lpAsset2Pool")
89+func P (Q,R) = (((("%d%d%s__" + Q) + "__") + R) + "__config")
9090
9191
92-func S (T,U) = (((("%d%d%s%s__" + T) + "__") + U) + "__mappings__PoolAssets2LpAsset")
92+func S (T) = (("%s%s%s__" + T) + "__mappings__lpAsset2Pool")
9393
9494
95-func V (W) = (("%s%s%s__" + W) + "__mappings__poolContract2PoolAssets")
95+func U (V,W) = (((("%d%d%s%s__" + V) + "__") + W) + "__mappings__PoolAssets2LpAsset")
9696
9797
98-func X (T,U) = (((("%d%d%s%s__" + toString(T)) + "__") + toString(U)) + "__mappings__poolAssets2PoolContract")
98+func X (Y) = (("%s%s%s__" + Y) + "__mappings__poolContract2PoolAssets")
9999
100100
101-func Y (W) = (("%s%s%s__" + W) + "__mappings__poolContract2LpAsset")
101+func Z (V,W) = (((("%d%d%s%s__" + toString(V)) + "__") + toString(W)) + "__mappings__poolAssets2PoolContract")
102102
103103
104-func Z (R) = (("%s%s%s__" + R) + "__mappings__lpAsset2PoolContract")
104+func aa (Y) = (("%s%s%s__" + Y) + "__mappings__poolContract2LpAsset")
105105
106106
107-func aa (ab) = valueOrErrorMessage(getString(this, ab), ("No data for this.key=" + ab))
107+func ab (T) = (("%s%s%s__" + T) + "__mappings__lpAsset2PoolContract")
108108
109109
110-func ac (ab) = valueOrErrorMessage(getBoolean(this, ab), ("No data for this.key=" + ab))
110+func ac (ad) = valueOrErrorMessage(getString(this, ad), ("No data for this.key=" + ad))
111111
112112
113-func ad (ab) = valueOrErrorMessage(getInteger(this, ab), ("No data for this.key=" + ab))
113+func ae (ad) = valueOrErrorMessage(getBoolean(this, ad), ("No data for this.key=" + ad))
114114
115115
116-let ae = 1
117-
118-let af = 2
119-
120-let ag = 3
121-
122-let ah = 4
123-
124-let ai = 5
125-
126-let aj = 6
127-
128-let ak = 7
129-
130-let al = 8
131-
132-let am = 9
133-
134-let an = 10
135-
136-let ao = 11
137-
138-func ap (aq) = addressFromStringValue(aq[af])
116+func af (ad) = valueOrErrorMessage(getInteger(this, ad), ("No data for this.key=" + ad))
139117
140118
141-func ar (aq) = addressFromStringValue(aq[ai])
119+let ag = 1
120+
121+let ah = 2
122+
123+let ai = 3
124+
125+let aj = 4
126+
127+let ak = 5
128+
129+let al = 6
130+
131+let am = 7
132+
133+let an = 8
134+
135+let ao = 9
136+
137+let ap = 10
138+
139+let aq = 11
140+
141+func ar (as) = addressFromStringValue(as[ah])
142142
143143
144-func as (aq) = addressFromStringValue(aq[ae])
144+func at (as) = addressFromStringValue(as[ak])
145145
146146
147-func at (aq) = addressFromStringValue(aq[an])
147+func au (as) = addressFromStringValue(as[ag])
148148
149149
150-func au (av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", av, aw, ax, ay, az, aA, aB, aC, aD, aE, aF], h)
150+func av (as) = addressFromStringValue(as[ap])
151151
152152
153-func aG (av,aw,ax,ay,az,aA,aB) = makeString(["%s%s%s%s%s%s", av, aw, ax, ay, az, aA, aB], h)
153+func aw (ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", ax, ay, az, aA, aB, aC, aD, aE, aF, aG, aH], h)
154154
155155
156-func aH (I,aI,aJ,aK,aL,aM,aN,aO,aP,aQ,aR) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", I, aI, aJ, aK, aL, toString(aM), toString(aN), toString(aO), toString(aP), toString(aQ), aR], h)
156+func aI (ax,ay,az,aA,aB,aC,aD) = makeString(["%s%s%s%s%s%s", ax, ay, az, aA, aB, aC, aD], h)
157157
158158
159-func aS (aT,aU) = makeString(["%d%d", toString(aT), toString(aU)], h)
159+func aJ (I,aK,aL,aM,aN,aO,aP,aQ,aR,aS,aT) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", I, aK, aL, aM, aN, toString(aO), toString(aP), toString(aQ), toString(aR), toString(aS), aT], h)
160160
161161
162-func aV (I) = {
163- let aW = split(aa(V(I)), h)
164- let O = aW[1]
165- let P = aW[2]
166- split(aa(N(O, P)), h)
162+func aU (aV,aW) = makeString(["%d%d", toString(aV), toString(aW)], h)
163+
164+
165+func aX (I) = {
166+ let aY = split(ac(X(I)), h)
167+ let Q = aY[1]
168+ let R = aY[2]
169+ split(ac(P(Q, R)), h)
167170 }
168171
169172
170-func aX (aY,aZ) = {
171- let ba = valueOrElse(getInteger(this, L(aY)), 0)
172- let bb = valueOrElse(getInteger(this, G()), 0)
173- let bc = if ((ba == 0))
173+func aZ (ba,bb) = {
174+ let bc = valueOrElse(getInteger(this, N(ba)), 0)
175+ let bd = valueOrElse(getInteger(this, G()), 0)
176+ let be = if ((bc == 0))
174177 then {
175- let bd = (bb + aZ)
176- $Tuple3(bd, [IntegerEntry(G(), bd), IntegerEntry(L(aY), bd), StringEntry(J(bd), aY)], true)
178+ let bf = (bd + bb)
179+ $Tuple3(bf, [IntegerEntry(G(), bf), IntegerEntry(N(ba), bf), StringEntry(L(bf), ba)], true)
177180 }
178- else $Tuple3(ba, nil, false)
179- bc
181+ else $Tuple3(bc, nil, false)
182+ be
180183 }
181184
182185
183-func be (bf) = {
184- let bg = getString(this, B())
185- if (isDefined(bg))
186- then ((value(bg) + h) + bf)
187- else bf
186+func bg (bh) = {
187+ let bi = getString(this, B())
188+ if (isDefined(bi))
189+ then ((value(bi) + h) + bh)
190+ else bh
188191 }
189192
190193
191-@Callable(bh)
192-func constructor (bi,bj,ax,ay,az,aA,bk,bl) = if ((bh.caller != this))
194+@Callable(bj)
195+func constructor (bk,bl,az,aA,aB,aC,bm,bn) = if ((bj.caller != this))
193196 then throw("permissions denied")
194- else [StringEntry(A(), aG(bi, bj, ax, ay, az, aA, bk)), IntegerEntry(E(), bl)]
197+ else [StringEntry(A(), aI(bk, bl, az, aA, aB, aC, bm)), IntegerEntry(E(), bn)]
195198
196199
197200
198-@Callable(bh)
199-func constructorV2 (bm) = if ((bh.caller != this))
201+@Callable(bj)
202+func constructorV2 (bo) = if ((bj.caller != this))
200203 then throw("permissions denied")
201204 else {
202- let bn = addressFromPublicKey(fromBase58String(bm))
203- if ((bn == bn))
204- then [StringEntry(D(), bm)]
205+ let bp = addressFromPublicKey(fromBase58String(bo))
206+ if ((bp == bp))
207+ then [StringEntry(D(), bo)]
205208 else throw("Strict value is not equal to itself.")
206209 }
207210
208211
209212
210-@Callable(bh)
211-func constructorV3 (aC,aD,aE,aF) = if ((bh.caller != this))
213+@Callable(bj)
214+func constructorV3 (aE,aF,aG,aH) = if ((bj.caller != this))
212215 then throw("permissions denied")
213216 else {
214- let aq = split(aa(A()), h)
215-[StringEntry(A(), au(aq[1], aq[2], aq[3], aq[4], aq[5], aq[6], aq[7], aC, aD, aE, aF))]
217+ let as = split(ac(A()), h)
218+[StringEntry(A(), aw(as[1], as[2], as[3], as[4], as[5], as[6], as[7], aE, aF, aG, aH))]
216219 }
217220
218221
219222
220-@Callable(bh)
221-func activateNewPool (I,aK,aL,bo,bp,bq,aR) = if ((bh.caller != this))
223+@Callable(bj)
224+func activateNewPool (I,aM,aN,bq,br,bs,aT) = if ((bj.caller != this))
222225 then throw("permissions denied")
223- else if (isDefined(getString(V(I))))
226+ else if (isDefined(getString(X(I))))
224227 then throw((("Pool address " + I) + " already registered."))
225228 else {
226- let br = aX(aK, 1)
227- let bs = br._1
228- let bt = aX(aL, if (br._3)
229+ let bt = aZ(aM, 1)
230+ let bu = bt._1
231+ let bv = aZ(aN, if (bt._3)
229232 then 2
230233 else 1)
231- let bu = bt._1
232- let bv = valueOrErrorMessage(scriptHash(addressFromStringValue(I)), ("No script has been found on pool account " + I))
233- let bw = getBinaryValue(C())
234- let bx = getString(this, N(toString(bs), toString(bu)))
235- if (isDefined(bx))
236- then throw((((("Pool " + aK) + "/") + aL) + " has already been activated."))
234+ let bw = bv._1
235+ let bx = valueOrErrorMessage(scriptHash(addressFromStringValue(I)), ("No script has been found on pool account " + I))
236+ let by = getBinaryValue(C())
237+ let bz = getString(this, P(toString(bu), toString(bw)))
238+ if (isDefined(bz))
239+ then throw((((("Pool " + aM) + "/") + aN) + " has already been activated."))
237240 else {
238- let by = value(getString(this, N(toString(bs), toString(bu))))
239- let bz = if ((aK == "WAVES"))
241+ let bA = value(getString(this, P(toString(bu), toString(bw))))
242+ let bB = if ((aM == "WAVES"))
240243 then g
241- else pow(10, 0, value(assetInfo(fromBase58String(aK))).decimals, 0, 0, DOWN)
242- let bA = if ((aL == "WAVES"))
244+ else pow(10, 0, value(assetInfo(fromBase58String(aM))).decimals, 0, 0, DOWN)
245+ let bC = if ((aN == "WAVES"))
243246 then g
244- else pow(10, 0, value(assetInfo(fromBase58String(aL))).decimals, 0, 0, DOWN)
245- let bB = Issue(bo, bp, 1, 8, true)
246- let aJ = calculateAssetId(bB)
247- let bC = toBase58String(aJ)
248- let bD = invoke(addressFromStringValue(I), "activate", [aK, aL], nil)
249- if ((bD == bD))
250- then if ((bD != "success"))
247+ else pow(10, 0, value(assetInfo(fromBase58String(aN))).decimals, 0, 0, DOWN)
248+ let bD = Issue(bq, br, 1, 8, true)
249+ let aL = calculateAssetId(bD)
250+ let bE = toBase58String(aL)
251+ let bF = invoke(addressFromStringValue(I), "activate", [aM, aN], nil)
252+ if ((bF == bF))
253+ then if ((bF != "success"))
251254 then throw("Pool initialisation error happened.")
252- else $Tuple2(((br._2 ++ bt._2) ++ [bB, Burn(aJ, 1), StringEntry(N(toString(bs), toString(bu)), aH(I, toString(i), bC, aK, aL, bz, bA, bs, bu, g, aR)), StringEntry(Q(bC), aS(bs, bu)), StringEntry(S(toString(bs), toString(bu)), ("%s__" + bC)), StringEntry(V(I), aS(bs, bu)), StringEntry(X(bs, bu), I), StringEntry(Z(bC), I), StringEntry(Y(I), bC), IntegerEntry(H(I), bq), StringEntry(B(), be(bC))]), "success")
255+ else $Tuple2(((bt._2 ++ bv._2) ++ [bD, Burn(aL, 1), StringEntry(P(toString(bu), toString(bw)), aJ(I, toString(i), bE, aM, aN, bB, bC, bu, bw, g, aT)), StringEntry(S(bE), aU(bu, bw)), StringEntry(U(toString(bu), toString(bw)), ("%s__" + bE)), StringEntry(X(I), aU(bu, bw)), StringEntry(Z(bu, bw), I), StringEntry(ab(bE), I), StringEntry(aa(I), bE), IntegerEntry(H(I), bs), StringEntry(B(), bg(bE))]), "success")
253256 else throw("Strict value is not equal to itself.")
254257 }
255258 }
256259
257260
258261
259-@Callable(bh)
260-func managePool (I,bE) = if ((bh.caller != this))
262+@Callable(bj)
263+func managePool (I,bG) = if ((bj.caller != this))
261264 then throw("permissions denied")
262265 else {
263- let bx = aV(I)
264- let aI = bx[q]
265- let bC = bx[r]
266- let aK = bx[s]
267- let aL = bx[t]
268- let bz = parseIntValue(bx[u])
269- let bA = parseIntValue(bx[v])
270- let bs = parseIntValue(bx[w])
271- let bu = parseIntValue(bx[x])
272- let bF = parseIntValue(bx[y])
273- let aR = bx[z]
274-[StringEntry(N(toString(bs), toString(bu)), aH(I, toString(bE), bC, aK, aL, bz, bA, bs, bu, bF, aR))]
266+ let bz = aX(I)
267+ let aK = bz[q]
268+ let bE = bz[r]
269+ let aM = bz[s]
270+ let aN = bz[t]
271+ let bB = parseIntValue(bz[u])
272+ let bC = parseIntValue(bz[v])
273+ let bu = parseIntValue(bz[w])
274+ let bw = parseIntValue(bz[x])
275+ let bH = parseIntValue(bz[y])
276+ let aT = bz[z]
277+[StringEntry(P(toString(bu), toString(bw)), aJ(I, toString(bG), bE, aM, aN, bB, bC, bu, bw, bH, aT))]
275278 }
276279
277280
278281
279-@Callable(bh)
280-func emit (bG) = {
281- let bH = bh.caller
282- let bI = bh.originCaller
283- let bJ = valueOrErrorMessage(getString(Y(toString(bH))), "Invalid LP address called me.")
284- let bK = fromBase58String(bJ)
285- if ((bG > 0))
286- then $Tuple2([Reissue(bK, bG, true), ScriptTransfer(bh.caller, bG, bK)], "success")
282+@Callable(bj)
283+func emit (bI) = {
284+ let bJ = bj.caller
285+ let bK = bj.originCaller
286+ let bL = valueOrErrorMessage(getString(aa(toString(bJ))), "Invalid LP address called me.")
287+ let bM = fromBase58String(bL)
288+ if ((bI > 0))
289+ then $Tuple2([Reissue(bM, bI, true), ScriptTransfer(bj.caller, bI, bM)], "success")
287290 else nil
288291 }
289292
290293
291294
292-@Callable(bh)
293-func burn (bL) = {
294- let bH = bh.caller
295- let bI = bh.originCaller
296- let bM = value(bh.payments[0])
297- let bN = value(bM.amount)
298- let bO = toBase58String(value(bM.assetId))
299- let bP = valueOrErrorMessage(getString(Y(toString(bH))), "Invalid LP address called me.")
300- if ((bO != bP))
295+@Callable(bj)
296+func burn (bN) = {
297+ let bJ = bj.caller
298+ let bK = bj.originCaller
299+ let bO = value(bj.payments[0])
300+ let bP = value(bO.amount)
301+ let bQ = toBase58String(value(bO.assetId))
302+ let bR = valueOrErrorMessage(getString(aa(toString(bJ))), "Invalid LP address called me.")
303+ if ((bQ != bR))
301304 then throw("Invalid asset passed.")
302- else if ((bL != bN))
305+ else if ((bN != bP))
303306 then throw("Invalid amount passed.")
304307 else {
305- let bK = fromBase58String(bP)
306- $Tuple2([Burn(bK, bL)], "success")
308+ let bM = fromBase58String(bR)
309+ $Tuple2([Burn(bM, bN)], "success")
307310 }
308311 }
309312
310313
311314
312-@Callable(bh)
313-func modifyWeights (bQ,bR) = {
314- let bS = ((5 * e) / 100)
315- let bT = ((25 * e) / 1000)
316- let bH = bh.caller
317- if ((bH != this))
315+@Callable(bj)
316+func modifyWeights (bS,bT) = {
317+ let bU = ((5 * e) / 100)
318+ let bV = ((25 * e) / 1000)
319+ let bJ = bj.caller
320+ if ((bJ != this))
318321 then throw("permissions denied")
319322 else {
320- let aq = split(aa(A()), h)
321- let bU = as(aq)
322- let bV = at(aq)
323- let bW = H(bQ)
324- let bX = H(bR)
325- let bY = H(f)
326- let bZ = (ad(bW) - bT)
327- let ca = (ad(bX) - bT)
328- if ((0 >= bZ))
329- then throw(("invalid btcWeightNew: " + toString(bZ)))
330- else if ((0 >= ca))
331- then throw(("invalid ethWeightNew: " + toString(ca)))
323+ let as = split(ac(A()), h)
324+ let bW = au(as)
325+ let bX = av(as)
326+ let bY = H(bS)
327+ let bZ = H(bT)
328+ let ca = H(f)
329+ let cb = af(bY)
330+ let cc = af(bZ)
331+ let cd = (cb - bV)
332+ let ce = (cc - bV)
333+ if ((0 >= cd))
334+ then throw(("invalid btcWeightNew: " + toString(cd)))
335+ else if ((0 >= ce))
336+ then throw(("invalid ethWeightNew: " + toString(ce)))
332337 else {
333- let cb = aa(Y(bQ))
334- let cc = aa(Y(bR))
335- let cd = invoke(bU, "onModifyWeight", [cb, bQ], nil)
336- if ((cd == cd))
338+ let cf = ac(aa(bS))
339+ let cg = ac(aa(bT))
340+ let ch = invoke(bW, "onModifyWeight", [cf, bS], nil)
341+ if ((ch == ch))
337342 then {
338- let ce = invoke(bU, "onModifyWeight", [cc, bR], nil)
339- if ((ce == ce))
343+ let ci = invoke(bW, "onModifyWeight", [cg, bT], nil)
344+ if ((ci == ci))
340345 then {
341- let cf = invoke(bV, "onEmissionForGwxStart", nil, nil)
342- if ((cf == cf))
343- then [IntegerEntry(bW, bZ), IntegerEntry(bX, ca), IntegerEntry(bY, bS)]
346+ let cj = invoke(bX, "onEmissionForGwxStart", nil, nil)
347+ if ((cj == cj))
348+ then [IntegerEntry(bY, cd), IntegerEntry(bZ, ce), IntegerEntry(ca, bU), IntegerEntry(J(bS, 0), cb), IntegerEntry(J(bT, 0), cc)]
344349 else throw("Strict value is not equal to itself.")
345350 }
346351 else throw("Strict value is not equal to itself.")
347352 }
348353 else throw("Strict value is not equal to itself.")
349354 }
350355 }
351356 }
352357
353358
354-@Verifier(cg)
355-func ch () = sigVerify(cg.bodyBytes, cg.proofs[0], cg.senderPublicKey)
359+@Verifier(ck)
360+func cl () = sigVerify(ck.bodyBytes, ck.proofs[0], ck.senderPublicKey)
356361

github/deemru/w8io/026f985 
131.55 ms