tx · 3taCAJ78erHombrzPNYjUPvXdHwsr5LR8dG9HQdyTnCJ 3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA: -0.03000000 Waves 2023.08.14 19:09 [2710451] smart account 3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA > SELF 0.00000000 Waves
{ "type": 13, "id": "3taCAJ78erHombrzPNYjUPvXdHwsr5LR8dG9HQdyTnCJ", "fee": 3000000, "feeAssetId": null, "timestamp": 1692029439514, "version": 2, "chainId": 84, "sender": "3N4ynz2uyA7cErymQd46zgwVJEEfXYDRXtA", "senderPublicKey": "CiRX9ubobzbD36ZwTyuBFiPnPkmzMQ7GDsF3hMoVbcVR", "proofs": [ "2qEbLhoKp1xYDECQKY312LLeDPGa7bhvp1GeMCAYuWjVMwJCqUN58XXqWs5D7BLbP35fspsKdeb1VSwtbDiEiBbU" ], "script": "base64:AAIFAAAAAAAAACEIAhIICgYBAQEBAQQSAwoBARIDCgEBEgMKAQESBAoCCAgAAAATAAAAABR0b2tlbl9pc3N1ZV9pbml0X21zZwIAAAAfQk1MIFRva2VuIENyZWF0ZWQgU3VjY2Vzc2Z1bGx5LgAAAAARdG9rZW5faXNzdWVfZXJyb3ICAAAAWlRoZSBCTUwgdG9rZW4gY291bGQgbm90IGJlIGZvdW5kLiBQbGVhc2UgdXNlIHRoZSBDcmVhdGVfQk1MIGZ1bmN0aW9uIHRvIGlzc3VlIGEgQk1MIHRva2VuLgAAAAALQk1MX1Rva2VuSUQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkAAlkAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzAgAAAAtCTUxfVG9rZW5JRAUAAAARdG9rZW5faXNzdWVfZXJyb3IAAAAAI3ByZXNhbGVfdGltZXN0YW1wX2NvbnRyb2xsZXJfcHVia2V5AQAAACDjrdey1Io21qI8AxObYBZMNWPHMCK947HpXHsKae68IwAAAAASY29udHJvbGxlcl9hZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAACNwcmVzYWxlX3RpbWVzdGFtcF9jb250cm9sbGVyX3B1YmtleQAAAAAOZXhwaXJlZHRzZXJyb3ICAAAAOFN0YXJ0IFRpbWVzdGFtcCBjYW4ndCBiZSBsZXNzIHRoYW4gbGFzdCBibG9jayBUaW1lc3RhbXAuAAAAAAd0c2Vycm9yAgAAADxFbmQgVGltZXN0YW1wIGNhbid0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byBTdGFydCBUaW1lc3RhbXAAAAAACnByaWNlZXJyb3ICAAAAJlRva2VuIFByaWNlIGNhbid0IGJlIGxlc3MgdGhhbiBvciBaZXJvAAAAAAhjYXBlcnJvcgIAAAAzU29mdCBDYXAgQW1vdW50IGNhbid0IGJlIG1vcmUgdGhhbiBIYXJkIENhcCBBbW91bnQuAAAAAAhvcmRlcm1zZwIAAAAyPGgxPlByZXNhbGUgT3JkZXIgU3VibWl0dGVkIFN1Y2Nlc3NmdWxseSE8L2gxPjxicj4AAAAAEHByZXNhbGVfaW5pdF9tc2cCAAAANzxoMT5QcmVTYWxlIFBhcmFtZXRlcnMgU3VibWl0dGVkIFN1Y2Nlc3NmdWxseSE8L2gxPjxicj4AAAAACXB5bXRlcnJvcgIAAAArREFwcCBOZWVkIFdBVkVTIFRva2VuIGFzIEF0dGFjaCBwYXltZW50WzFdLgAAAAAOb3JkZXJweW10ZXJyb3ICAAAALUF0dGFjaGVkIHBheW1lbnRbMV0gaXMgbGVzcyB0aGFuIHRva2VuIHByaWNlIAAAAAAMbGF1bmNoX2Vycm9yAgAAACZEYXBwIHdpbGwgc3RhcnQgUHJlLVNhbGUgYXQgVGltZXN0YW1wIAAAAAALbWluYmFsZXJyb3ICAAAAZk1pbmltdW0gMC4xIFdBVkVTIHJlcXVpcmVkIG9uIFlvdXIgQWRkcmVzcywgUGxlYXNlIGhvbGQgbWluLiAwLjEgV0FWRVMgb24geW91ciBBZGRyZXNzIHRvIHBsYWNlIG9yZGVyLgAAAAAPcHJlc2FsZV9lbmRfZXJyAgAAACBQcmUtU2FsZSBpcyBvdmVyIGZvciB0aGlzIFJvdW5kLgAAAAATcHJlc2FsZV9ub3RfZW5kX2VycgIAAAAkUHJlLVNhbGUgaXMgbm90IG92ZXIgZm9yIHRoaXMgUm91bmQuAAAAAApyZWZ1bmRfZXJyAgAAAHpTb2Z0Y2FwIG9yIEhhcmQgQ2FwIGFscmVhZHkgUmVhY2hlZCBvciBwcm9iYWJseSBQcmVTYWxlIHdhcyBTZXQgd2l0aCBGYWxzZSB0byBSZWZ1bmQsIHNvIG5vIFJlZnVuZCBhbGxvd2VkIGZvciB0aGlzIFJvdW5kLgAAAAAPcmVmdW5kX2luaXRfbXNnAgAAACs8aDE+UmVmdW5kIFJlY2VpdmVkIFN1Y2Nlc3NmdWxseSEuPC9oMT48YnI+AAAABQAAAAFpAQAAABRTZXRQcmVTYWxlUGFyYW1ldGVycwAAAAYAAAAXUHJlc2FsZV9TdGFydF9UaW1lU3RhbXAAAAAVUHJlc2FsZV9FbmRfVGltZVN0YW1wAAAAC1Rva2VuX1ByaWNlAAAAD1NvZnRfQ2FwX0Ftb3VudAAAAA9IYXJkX0NhcF9BbW91bnQAAAAMQWxsb3dfUmVmdW5kBAAAAAdTdGFydFRTBQAAABdQcmVzYWxlX1N0YXJ0X1RpbWVTdGFtcAQAAAAFRW5kVFMFAAAAFVByZXNhbGVfRW5kX1RpbWVTdGFtcAQAAAAScmVhZF9mdW5kaW5nX3JvdW5kBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAFUN1cnJlbnRfRnVuZGluZ19Sb3VuZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAA1jdXJyZW50X3JvdW5kCQAAZAAAAAIFAAAAEnJlYWRfZnVuZGluZ19yb3VuZAAAAAAAAAAAAQMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAASY29udHJvbGxlcl9hZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQAEJQAAAAEFAAAAEmNvbnRyb2xsZXJfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAABmAAAAAggFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAAF1ByZXNhbGVfU3RhcnRfVGltZVN0YW1wCQAAAgAAAAEFAAAADmV4cGlyZWR0c2Vycm9yAwkBAAAAAiE9AAAAAgkAATEAAAABCQABpAAAAAEFAAAAF1ByZXNhbGVfU3RhcnRfVGltZVN0YW1wAAAAAAAAAAANCQAAAgAAAAECAAAAb1N0YXJ0IFRpbWVzdGFtcCBpcyBXcm9uZy4gUGxlYXNlIEVudGVyIGEgVmFsaWQgVGltZXN0YW1wLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBUaW1lc3RhbXAgbGVzcyB0aGFuIDEzIENoYXJzLgMJAQAAAAIhPQAAAAIJAAExAAAAAQkAAaQAAAABBQAAABVQcmVzYWxlX0VuZF9UaW1lU3RhbXAAAAAAAAAAAA0JAAACAAAAAQIAAABtRW5kIFRpbWVzdGFtcCBpcyBXcm9uZy4gUGxlYXNlIEVudGVyIGEgVmFsaWQgVGltZXN0YW1wLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBUaW1lc3RhbXAgbGVzcyB0aGFuIDEzIENoYXJzLgMJAABmAAAAAgAAAAAAAAAAAQUAAAALVG9rZW5fUHJpY2UJAAACAAAAAQUAAAAKcHJpY2VlcnJvcgMJAABnAAAAAgUAAAAHU3RhcnRUUwUAAAAFRW5kVFMJAAACAAAAAQUAAAAHdHNlcnJvcgMJAABmAAAAAgUAAAAPU29mdF9DYXBfQW1vdW50BQAAAA9IYXJkX0NhcF9BbW91bnQJAAACAAAAAQUAAAAIY2FwZXJyb3IJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFUN1cnJlbnRfRnVuZGluZ19Sb3VuZAUAAAANY3VycmVudF9yb3VuZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAGF9QcmVzYWxlX1N0YXJ0X1RpbWVTdGFtcAUAAAAHU3RhcnRUUwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAFl9QcmVzYWxlX0VuZF9UaW1lU3RhbXAFAAAABUVuZFRTCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAANY3VycmVudF9yb3VuZAIAAAAMX1Rva2VuX1ByaWNlBQAAAAtUb2tlbl9QcmljZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAEF9Tb2Z0X0NhcF9BbW91bnQFAAAAD1NvZnRfQ2FwX0Ftb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAEF9IYXJkX0NhcF9BbW91bnQFAAAAD0hhcmRfQ2FwX0Ftb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAADWN1cnJlbnRfcm91bmQCAAAAEV9Jbml0aWF0ZWRfSGVpZ2h0BQAAAAZoZWlnaHQJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAAA1jdXJyZW50X3JvdW5kAgAAAA1fQWxsb3dfUmVmdW5kBQAAAAxBbGxvd19SZWZ1bmQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAAQcHJlc2FsZV9pbml0X21zZwUAAAADbmlsAAAAAWkBAAAAEVBsYWNlUHJlc2FsZU9yZGVyAAAAAQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kBAAAABZyZWFkX3JvdW5kX3Rva2VuX3ByaWNlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAADF9Ub2tlbl9QcmljZQIAAAAtVG9rZW4gUHJpY2Ugbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABNyZWFkX3JvdW5kX3N0YXJ0X3RzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAGF9QcmVzYWxlX1N0YXJ0X1RpbWVTdGFtcAIAAAAxU3RhcnQgVGltZXN0YW1wIG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAARcmVhZF9yb3VuZF9lbmRfdHMJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAWX1ByZXNhbGVfRW5kX1RpbWVTdGFtcAIAAAAvRW5kIFRpbWVzdGFtcCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFHJlYWRfU29mdF9DYXBfQW1vdW50CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEF9Tb2Z0X0NhcF9BbW91bnQCAAAAMVNvZnQgQ2FwIEFtb3VudCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFHJlYWRfSGFyZF9DYXBfQW1vdW50CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEF9IYXJkX0NhcF9BbW91bnQCAAAAMUhhcmQgQ2FwIEFtb3VudCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAEXJlYWRfQWxsb3dfUmVmdW5kCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAADV9BbGxvd19SZWZ1bmQCAAAAKVJlZnVuZCBpcyBub3Qgc2V0IGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAAAVXQVZFUwUAAAAEdW5pdAQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAABVyZWFkX2Z1bmRzX2NvbGxlY3Rpb24EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEV9GdW5kc19Db2xsZWN0aW9uAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAFnRvdGFsX2Z1bmRzX2NvbGxlY3Rpb24JAABkAAAAAgUAAAAVcmVhZF9mdW5kc19jb2xsZWN0aW9uCAUAAAADcG10AAAABmFtb3VudAQAAAAXcmVhZF9hdXRvX3dpdGhkcmF3X3R4bnMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAGV90b3RhbF9hdXRvX3dpdGhkcmF3X3R4bnMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAYdG90YWxfYXV0b193aXRoZHJhd190eG5zCQAAZAAAAAIFAAAAF3JlYWRfYXV0b193aXRoZHJhd190eG5zAAAAAAAAAAABBAAAAA9yZWFkX3RvdGFsX3R4bnMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAC190b3RhbF90eG5zAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAACnRvdGFsX3R4bnMJAABkAAAAAgUAAAAPcmVhZF90b3RhbF90eG5zAAAAAAAAAAABBAAAAB9yZWFkX3VzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAAV8FAAAACmN1cnJlbnRLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAadXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQJAABkAAAAAgUAAAAfcmVhZF91c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAgFAAAAA3BtdAAAAAZhbW91bnQEAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAABlAAAAAgUAAAAUcmVhZF9Tb2Z0X0NhcF9BbW91bnQFAAAAFnRvdGFsX2Z1bmRzX2NvbGxlY3Rpb24EAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMJAABlAAAAAgUAAAAUcmVhZF9IYXJkX0NhcF9BbW91bnQFAAAAFnRvdGFsX2Z1bmRzX2NvbGxlY3Rpb24DCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAEFAAAACXB5bXRlcnJvcgMJAABmAAAAAgUAAAAWcmVhZF9yb3VuZF90b2tlbl9wcmljZQgFAAAAA3BtdAAAAAZhbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAOb3JkZXJweW10ZXJyb3ICAAAAAVsJAAGkAAAAAQUAAAAWcmVhZF9yb3VuZF90b2tlbl9wcmljZQIAAAAHLzEwXjguXQMJAABmAAAAAgUAAAATcmVhZF9yb3VuZF9zdGFydF90cwgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAACAAAAAQkAASwAAAACBQAAAAxsYXVuY2hfZXJyb3IJAAGkAAAAAQUAAAATcmVhZF9yb3VuZF9zdGFydF90cwMJAABmAAAAAggFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAAEXJlYWRfcm91bmRfZW5kX3RzCQAAAgAAAAEFAAAAD3ByZXNhbGVfZW5kX2VycgMDCQAAZgAAAAIFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMAAAAAAAAAAAAJAABmAAAAAgUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwAAAAAAAAAAAAcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABFfRnVuZHNfQ29sbGVjdGlvbgUAAAAWdG90YWxfZnVuZHNfY29sbGVjdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAABXwUAAAAKY3VycmVudEtleQUAAAAadXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABlfdG90YWxfYXV0b193aXRoZHJhd190eG5zBQAAABdyZWFkX2F1dG9fd2l0aGRyYXdfdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAC190b3RhbF90eG5zBQAAAAp0b3RhbF90eG5zCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAXX3BlbmRpbmdfc29mdGNhcF9zdGF0dXMFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABdfcGVuZGluZ19oYXJkY2FwX3N0YXR1cwUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX3NvZnRjYXBfc3RhdHVzAgAAAAJObwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX2hhcmRjYXBfc3RhdHVzAgAAAAJObwkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAADV9BbGxvd19SZWZ1bmQFAAAAEXJlYWRfQWxsb3dfUmVmdW5kCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UFAAAACG9yZGVybXNnBQAAAANuaWwDAwMJAABnAAAAAgAAAAAAAAAAAAUAAAAWcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwkAAGYAAAACBQAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzAAAAAAAAAAAABwkAAAAAAAACBQAAABh0b3RhbF9hdXRvX3dpdGhkcmF3X3R4bnMAAAAAAAAAAAEHCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAARX0Z1bmRzX0NvbGxlY3Rpb24FAAAAFnRvdGFsX2Z1bmRzX2NvbGxlY3Rpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAAV8FAAAACmN1cnJlbnRLZXkFAAAAGnVzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAZX3RvdGFsX2F1dG9fd2l0aGRyYXdfdHhucwUAAAAYdG90YWxfYXV0b193aXRoZHJhd190eG5zCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAALX3RvdGFsX3R4bnMFAAAACnRvdGFsX3R4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABdfcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwUAAAAWcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAF19wZW5kaW5nX2hhcmRjYXBfc3RhdHVzBQAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA9fc29mdGNhcF9zdGF0dXMCAAAAA1llcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX2hhcmRjYXBfc3RhdHVzAgAAAAJObwkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAADV9BbGxvd19SZWZ1bmQHCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEmNvbnRyb2xsZXJfYWRkcmVzcwUAAAAWdG90YWxfZnVuZHNfY29sbGVjdGlvbgUAAAAEdW5pdAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAAhvcmRlcm1zZwUAAAADbmlsAwMDCQAAZwAAAAIAAAAAAAAAAAAFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAABmAAAAAgUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwAAAAAAAAAAAAcJAABmAAAAAgUAAAAYdG90YWxfYXV0b193aXRoZHJhd190eG5zAAAAAAAAAAABBwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEV9GdW5kc19Db2xsZWN0aW9uBQAAABZ0b3RhbF9mdW5kc19jb2xsZWN0aW9uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAFfBQAAAApjdXJyZW50S2V5BQAAABp1c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAGV90b3RhbF9hdXRvX3dpdGhkcmF3X3R4bnMFAAAAGHRvdGFsX2F1dG9fd2l0aGRyYXdfdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAC190b3RhbF90eG5zBQAAAAp0b3RhbF90eG5zCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAXX3BlbmRpbmdfc29mdGNhcF9zdGF0dXMFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABdfcGVuZGluZ19oYXJkY2FwX3N0YXR1cwUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX3NvZnRjYXBfc3RhdHVzAgAAAANZZXMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19oYXJkY2FwX3N0YXR1cwIAAAACTm8JAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA1fQWxsb3dfUmVmdW5kBwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABJjb250cm9sbGVyX2FkZHJlc3MIBQAAAANwbXQAAAAGYW1vdW50BQAAAAR1bml0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UFAAAACG9yZGVybXNnBQAAAANuaWwDAwMJAABnAAAAAgAAAAAAAAAAAAUAAAAWcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwkAAGcAAAACAAAAAAAAAAAABQAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzBwkAAAAAAAACBQAAABh0b3RhbF9hdXRvX3dpdGhkcmF3X3R4bnMAAAAAAAAAAAEHCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAARX0Z1bmRzX0NvbGxlY3Rpb24FAAAAFnRvdGFsX2Z1bmRzX2NvbGxlY3Rpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAAV8FAAAACmN1cnJlbnRLZXkFAAAAGnVzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAZX3RvdGFsX2F1dG9fd2l0aGRyYXdfdHhucwUAAAAYdG90YWxfYXV0b193aXRoZHJhd190eG5zCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAALX3RvdGFsX3R4bnMFAAAACnRvdGFsX3R4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABdfcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwUAAAAWcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAF19wZW5kaW5nX2hhcmRjYXBfc3RhdHVzBQAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA9fc29mdGNhcF9zdGF0dXMCAAAAA1llcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAPX2hhcmRjYXBfc3RhdHVzAgAAAANZZXMJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA1fQWxsb3dfUmVmdW5kBwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABJjb250cm9sbGVyX2FkZHJlc3MFAAAAFnRvdGFsX2Z1bmRzX2NvbGxlY3Rpb24FAAAABHVuaXQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAAIb3JkZXJtc2cFAAAAA25pbAMDAwkAAGcAAAACAAAAAAAAAAAABQAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzCQAAZwAAAAIAAAAAAAAAAAAFAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMHCQAAZgAAAAIFAAAAGHRvdGFsX2F1dG9fd2l0aGRyYXdfdHhucwAAAAAAAAAAAQcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABFfRnVuZHNfQ29sbGVjdGlvbgUAAAAWdG90YWxfZnVuZHNfY29sbGVjdGlvbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAABXwUAAAAKY3VycmVudEtleQUAAAAadXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABlfdG90YWxfYXV0b193aXRoZHJhd190eG5zBQAAABh0b3RhbF9hdXRvX3dpdGhkcmF3X3R4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAtfdG90YWxfdHhucwUAAAAKdG90YWxfdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAF19wZW5kaW5nX3NvZnRjYXBfc3RhdHVzBQAAABZwZW5kaW5nX3NvZnRjYXBfc3RhdHVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAXX3BlbmRpbmdfaGFyZGNhcF9zdGF0dXMFAAAAFnBlbmRpbmdfaGFyZGNhcF9zdGF0dXMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19zb2Z0Y2FwX3N0YXR1cwIAAAADWWVzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA9faGFyZGNhcF9zdGF0dXMCAAAAA1llcwkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAADV9BbGxvd19SZWZ1bmQHCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEmNvbnRyb2xsZXJfYWRkcmVzcwgFAAAAA3BtdAAAAAZhbW91bnQFAAAABHVuaXQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAAIb3JkZXJtc2cFAAAAA25pbAkAAAIAAAABAgAAAAZFcnJvci4AAAABaQEAAAAGUmVmdW5kAAAAAQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kBAAAAAVXQVZFUwUAAAAEdW5pdAQAAAAKY3VycmVudEtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAABVyZWFkX0luaXRpYXRlZF9IZWlnaHQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAARX0luaXRpYXRlZF9IZWlnaHQCAAAAMkluaXRpYXRlZCBIZWlnaHQgbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABZyZWFkX3JvdW5kX3Rva2VuX3ByaWNlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAADF9Ub2tlbl9QcmljZQIAAAAtVG9rZW4gUHJpY2Ugbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABNyZWFkX3JvdW5kX3N0YXJ0X3RzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAGF9QcmVzYWxlX1N0YXJ0X1RpbWVTdGFtcAIAAAAxU3RhcnQgVGltZXN0YW1wIG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAARcmVhZF9yb3VuZF9lbmRfdHMJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAWX1ByZXNhbGVfRW5kX1RpbWVTdGFtcAIAAAAvRW5kIFRpbWVzdGFtcCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFHJlYWRfU29mdF9DYXBfQW1vdW50CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEF9Tb2Z0X0NhcF9BbW91bnQCAAAAMVNvZnQgQ2FwIEFtb3VudCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFHJlYWRfSGFyZF9DYXBfQW1vdW50CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAEF9IYXJkX0NhcF9BbW91bnQCAAAAMUhhcmQgQ2FwIEFtb3VudCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAG3JlYWRfdG90YWxfZnVuZHNfY29sbGVjdGlvbgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABFfRnVuZHNfQ29sbGVjdGlvbgIAAAA4VG90YWwgRnVuZHMgQ29sbGVjdGlvbiBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAH3JlYWRfdXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAFfBQAAAApjdXJyZW50S2V5AgAAADtObyBEZXBvc2l0IHdhcyBtYWRlIGJ5IHRoaXMgQWRkcmVzcyBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAARcmVhZF9BbGxvd19SZWZ1bmQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBsAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAANX0FsbG93X1JlZnVuZAIAAAA4QWxsb3dfUmVmdW5kIGhhcyBubyBCb29sZW4gRW50cnkgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAABlAAAAAgUAAAAUcmVhZF9Tb2Z0X0NhcF9BbW91bnQFAAAAG3JlYWRfdG90YWxfZnVuZHNfY29sbGVjdGlvbgQAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwkAAGUAAAACBQAAABRyZWFkX0hhcmRfQ2FwX0Ftb3VudAUAAAAbcmVhZF90b3RhbF9mdW5kc19jb2xsZWN0aW9uBAAAAAxtaWxsaXNlY29uZHMAAAAAAAAAA+gEAAAABm1pbnV0ZQkAAGgAAAACAAAAAAAAAAA8BQAAAAxtaWxsaXNlY29uZHMEAAAAFXJvdW5kX3RpbWVfZGlmZmVyZW5jZQkAAGUAAAACBQAAABFyZWFkX3JvdW5kX2VuZF90cwUAAAATcmVhZF9yb3VuZF9zdGFydF90cwQAAAAWYWRkaXRpb25hbF9zYWZlX2Jsb2NrcwAAAAAAAAAACgQAAAASYmxvY2tzdGltZXRvbWF0dXJlCQAAZAAAAAIJAABkAAAAAgUAAAAVcmVhZF9Jbml0aWF0ZWRfSGVpZ2h0CQAAawAAAAMFAAAAFXJvdW5kX3RpbWVfZGlmZmVyZW5jZQAAAAAAAAAAAQUAAAAGbWludXRlBQAAABZhZGRpdGlvbmFsX3NhZmVfYmxvY2tzBAAAAA9wZW5kaW5nX3JlZnVuZHMJAABlAAAAAgUAAAAbcmVhZF90b3RhbF9mdW5kc19jb2xsZWN0aW9uBQAAAB9yZWFkX3VzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkAwkAAGYAAAACBQAAABJibG9ja3N0aW1ldG9tYXR1cmUIBQAAAAlsYXN0QmxvY2sAAAAGaGVpZ2h0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAE3ByZXNhbGVfbm90X2VuZF9lcnICAAAAFCBQbGVhc2UgV2FpdCBVbnRpbCB+CQABpAAAAAEFAAAAEmJsb2Nrc3RpbWV0b21hdHVyZQIAAAATIEhlaWdodCBpcyByZWFjaGVkLgMJAAAAAAAAAgUAAAARcmVhZF9BbGxvd19SZWZ1bmQHCQAAAgAAAAEFAAAACnJlZnVuZF9lcnIDCQAAAAAAAAIFAAAAH3JlYWRfdXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQAAAAAAAAAAAAJAAACAAAAAQIAAAAwUmVmdW5kIGhhcyBiZWVuIEFscmVhZHkgQ2xhaW1lZCBieSB0aGlzIEFkZHJlc3MuAwMJAABmAAAAAgUAAAAWcGVuZGluZ19zb2Z0Y2FwX3N0YXR1cwAAAAAAAAAAAAkAAGYAAAACBQAAABZwZW5kaW5nX2hhcmRjYXBfc3RhdHVzAAAAAAAAAAAABwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAApjdXJyZW50S2V5BQAAAB9yZWFkX3VzZXJfdG90YWxfZnVuZHNfZGVwb3NpdGVkBQAAAAVXQVZFUwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAABXwIAAAAOUGVuZGluZ19SZWZ1bmQFAAAAD3BlbmRpbmdfcmVmdW5kcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAABXwUAAAAKY3VycmVudEtleQAAAAAAAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAA9yZWZ1bmRfaW5pdF9tc2cFAAAAA25pbAMDCQAAZwAAAAIAAAAAAAAAAAAFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAABmAAAAAgUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwAAAAAAAAAAAAcJAAACAAAAAQIAAABnU29mdENhcCBBbHJlYWR5IFJlYWNoZWQgZm9yIHRoaXMgUm91bmQuIFBsZWFzZSBDbGljayBvbiAnQ2xhaW0gVG9rZW5zJyBGdW5jdGlvbiB0byBSZWNlaXZlIFlvdXIgVG9rZW5zLgMDCQAAZwAAAAIAAAAAAAAAAAAFAAAAFnBlbmRpbmdfc29mdGNhcF9zdGF0dXMJAABnAAAAAgAAAAAAAAAAAAUAAAAWcGVuZGluZ19oYXJkY2FwX3N0YXR1cwcJAAACAAAAAQIAAABeU29mdENhcCBhbmQgSGFyZCBBbHJlYWR5IFJlYWNoZWQgZm9yIHRoaXMgUm91bmQuIFBsZWFzZSBDbGljayBvbiBDbGFpbSB0byBSZWNlaXZlIFlvdXIgVG9rZW5zLgkAAAIAAAABAgAAABJXcm9uZyBFbnRyeSBGb3VuZC4AAAABaQEAAAAMQ2xhaW1fVG9rZW5zAAAAAQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kBAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAABXNjYWxlAAAAAAAF9eEABAAAABVyZWFkX0luaXRpYXRlZF9IZWlnaHQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAARX0luaXRpYXRlZF9IZWlnaHQCAAAAMkluaXRpYXRlZCBIZWlnaHQgbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABNyZWFkX3JvdW5kX3N0YXJ0X3RzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAGF9QcmVzYWxlX1N0YXJ0X1RpbWVTdGFtcAIAAAAxU3RhcnQgVGltZXN0YW1wIG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAARcmVhZF9yb3VuZF9lbmRfdHMJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAWX1ByZXNhbGVfRW5kX1RpbWVTdGFtcAIAAAAvRW5kIFRpbWVzdGFtcCBub3QgRm91bmQgZm9yIHRoaXMgUHJlc2FsZSBSb3VuZC4EAAAAFHJlYWRfc29mdF9jYXBfc3RhdHVzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19zb2Z0Y2FwX3N0YXR1cwIAAAAwU29mdENhcCBTdGF0dXMgbm90IEZvdW5kIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABRyZWFkX2hhcmRfY2FwX3N0YXR1cwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA9faGFyZGNhcF9zdGF0dXMCAAAAMEhhcmRDYXAgU3RhdHVzIG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAAWcmVhZF9yb3VuZF90b2tlbl9wcmljZQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAAxfVG9rZW5fUHJpY2UCAAAALVRva2VuIFByaWNlIG5vdCBGb3VuZCBmb3IgdGhpcyBQcmVzYWxlIFJvdW5kLgQAAAAfcmVhZF91c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAAV8FAAAACmN1cnJlbnRLZXkCAAAAO05vIERlcG9zaXQgd2FzIG1hZGUgYnkgdGhpcyBBZGRyZXNzIGZvciB0aGlzIFByZXNhbGUgUm91bmQuBAAAABZjYWxjdWxhdGVfdG90YWxfdG9rZW5zCQAAawAAAAMFAAAAH3JlYWRfdXNlcl90b3RhbF9mdW5kc19kZXBvc2l0ZWQFAAAABXNjYWxlBQAAABZyZWFkX3JvdW5kX3Rva2VuX3ByaWNlBAAAABh1c2VyX3Rva2Vuc19jbGFpbV9hbW91bnQJAABrAAAAAwUAAAAfcmVhZF91c2VyX3RvdGFsX2Z1bmRzX2RlcG9zaXRlZAUAAAAFc2NhbGUFAAAAFnJlYWRfcm91bmRfdG9rZW5fcHJpY2UEAAAADG1pbGxpc2Vjb25kcwAAAAAAAAAD6AQAAAAGbWludXRlCQAAaAAAAAIAAAAAAAAAADwFAAAADG1pbGxpc2Vjb25kcwQAAAAVcm91bmRfdGltZV9kaWZmZXJlbmNlCQAAZQAAAAIFAAAAEXJlYWRfcm91bmRfZW5kX3RzBQAAABNyZWFkX3JvdW5kX3N0YXJ0X3RzBAAAABZhZGRpdGlvbmFsX3NhZmVfYmxvY2tzAAAAAAAAAAAKBAAAABJibG9ja3N0aW1ldG9tYXR1cmUJAABkAAAAAgkAAGQAAAACBQAAABVyZWFkX0luaXRpYXRlZF9IZWlnaHQJAABrAAAAAwUAAAAVcm91bmRfdGltZV9kaWZmZXJlbmNlAAAAAAAAAAABBQAAAAZtaW51dGUFAAAAFmFkZGl0aW9uYWxfc2FmZV9ibG9ja3MEAAAAGXJlYWRfdG90YWxfdG9rZW5zX2NsYWltZWQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABpAAAAAEFAAAAE0VudGVyX1ByZXNhbGVfUm91bmQCAAAAD19Ub2tlbnNfQ2xhaW1lZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABR0b3RhbF90b2tlbnNfY2xhaW1lZAkAAGQAAAACBQAAABlyZWFkX3RvdGFsX3Rva2Vuc19jbGFpbWVkBQAAABh1c2VyX3Rva2Vuc19jbGFpbV9hbW91bnQEAAAAGHJlYWRfdG9rZW5fY2xhaW1fY291bnRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABhfVG9rZW5zX0NsYWltZWRfQ291bnRlcl8FAAAACmN1cnJlbnRLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAATdG90YWxfY2xhaW1fY291bnRlcgkAAGQAAAACBQAAABhyZWFkX3Rva2VuX2NsYWltX2NvdW50ZXIAAAAAAAAAAAEEAAAAFnBlbmRpbmdfdG9rZW5zX2NsYWltZWQJAABlAAAAAgUAAAAWY2FsY3VsYXRlX3RvdGFsX3Rva2VucwUAAAAYdXNlcl90b2tlbnNfY2xhaW1fYW1vdW50AwkAAGYAAAACBQAAABJibG9ja3N0aW1ldG9tYXR1cmUIBQAAAAlsYXN0QmxvY2sAAAAGaGVpZ2h0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAE3ByZXNhbGVfbm90X2VuZF9lcnICAAAAFCBQbGVhc2UgV2FpdCBVbnRpbCB+CQABpAAAAAEFAAAAEmJsb2Nrc3RpbWV0b21hdHVyZQIAAAATIEhlaWdodCBpcyByZWFjaGVkLgMJAAAAAAAAAgUAAAAUcmVhZF9zb2Z0X2NhcF9zdGF0dXMCAAAAAk5vCQAAAgAAAAECAAAARk5vIFRva2VucyBDbGFpbSxhcyBTb2Z0Q2FwIEFtb3VudCBkaWRuJ3QgcmVhY2ggbnVtYmVycyBmb3IgdGhpcyBSb3VuZC4DCQAAZgAAAAIFAAAAE3RvdGFsX2NsYWltX2NvdW50ZXIAAAAAAAAAAAEJAAACAAAAAQkAASwAAAACBQAAAApjdXJyZW50S2V5AgAAADggQWRkcmVzcyBoYXMgQWxyZWFkeSBDbGFpbWVkIHRoZWlyIFRva2VuIGZvciB0aGlzIHJvdW5kLgMDCQAAAAAAAAIFAAAAFHJlYWRfc29mdF9jYXBfc3RhdHVzAgAAAANZZXMGCQAAAAAAAAIFAAAAFHJlYWRfaGFyZF9jYXBfc3RhdHVzAgAAAANZZXMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAAA9fVG9rZW5zX0NsYWltZWQFAAAAFHRvdGFsX3Rva2Vuc19jbGFpbWVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAATRW50ZXJfUHJlc2FsZV9Sb3VuZAIAAAAYX1BlbmRpbmdfVG9rZW5zX1RvX0NsYWltBQAAABZwZW5kaW5nX3Rva2Vuc19jbGFpbWVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABNFbnRlcl9QcmVzYWxlX1JvdW5kAgAAABBfVG9rZW5zX0NsYWltZWRfBQAAAApjdXJyZW50S2V5BQAAABN0b3RhbF9jbGFpbV9jb3VudGVyCQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwUAAAALQk1MX1Rva2VuSUQFAAAAGHVzZXJfdG9rZW5zX2NsYWltX2Ftb3VudAYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAKY3VycmVudEtleQUAAAAYdXNlcl90b2tlbnNfY2xhaW1fYW1vdW50BQAAAAtCTUxfVG9rZW5JRAUAAAADbmlsCQAAAgAAAAECAAAAEldyb25nIEVudHJ5IEZvdW5kLgAAAAFpAQAAAAhNaW50X0JNTAAAAAIAAAAJVG9rZW5OYW1lAAAAEFRva2VuRGVzY3JpcHRpb24EAAAABWFzc2V0CQAEQgAAAAUFAAAACVRva2VuTmFtZQUAAAAQVG9rZW5EZXNjcmlwdGlvbgAAAAAAAAAAAQAAAAAAAAAACAYEAAAAB2Fzc2V0SWQJAAQ4AAAAAQUAAAAFYXNzZXQEAAAADHJlYWRfY291bnRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABNBc3NldF9Jc3N1ZV9Db3VudGVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAEnJlYWRfdG90YWxfY291bnRlcgkAAGQAAAACBQAAAAxyZWFkX2NvdW50ZXIAAAAAAAAAAAEDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAEmNvbnRyb2xsZXJfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABJjb250cm9sbGVyX2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQAAZgAAAAIFAAAAEnJlYWRfdG90YWxfY291bnRlcgAAAAAAAAAAAQkAAAIAAAABAgAAABlCTUwgVG9rZW4gQWxyZWFkeSBJc3N1ZWQuCQAETAAAAAIFAAAABWFzc2V0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAC0JNTF9Ub2tlbklECQACWAAAAAEFAAAAB2Fzc2V0SWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0Fzc2V0X0lzc3VlX0NvdW50ZXIFAAAAEnJlYWRfdG90YWxfY291bnRlcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAABR0b2tlbl9pc3N1ZV9pbml0X21zZwkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAAB2Fzc2V0SWQAAAAAAAAAAAEFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5G3H26g==", "height": 2710451, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: B43og6SiTYHqbisNZEPafihSV5cr3sQ9EJK58g237eiV Next: 9oaRmRm5M7ZuL47Z31MwyMuxq8ZWpy6MABWxedxe97Ld Diff:
Old | New | Differences | |
---|---|---|---|
241 | 241 | } | |
242 | 242 | let ao = (an + am) | |
243 | 243 | let ap = { | |
244 | - | let D = getInteger(this, ((toString(G) + "_Tokens_Claimed_") + O)) | |
244 | + | let D = getInteger(this, ((toString(G) + "_Tokens_Claimed_Counter_") + O)) | |
245 | 245 | if ($isInstanceOf(D, "Int")) | |
246 | 246 | then { | |
247 | 247 | let E = D |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "BML Token Created Successfully." | |
5 | 5 | ||
6 | 6 | let b = "The BML token could not be found. Please use the Create_BML function to issue a BML token." | |
7 | 7 | ||
8 | 8 | let c = valueOrErrorMessage(fromBase58String(getStringValue(this, "BML_TokenID")), b) | |
9 | 9 | ||
10 | 10 | let d = base58'GKmJ6BchUgQfwKp4mp5eX8Y9xLioYRm6e1gDfFgdAcCr' | |
11 | 11 | ||
12 | 12 | let e = addressFromPublicKey(d) | |
13 | 13 | ||
14 | 14 | let f = "Start Timestamp can't be less than last block Timestamp." | |
15 | 15 | ||
16 | 16 | let g = "End Timestamp can't be less than or equal to Start Timestamp" | |
17 | 17 | ||
18 | 18 | let h = "Token Price can't be less than or Zero" | |
19 | 19 | ||
20 | 20 | let i = "Soft Cap Amount can't be more than Hard Cap Amount." | |
21 | 21 | ||
22 | 22 | let j = "<h1>Presale Order Submitted Successfully!</h1><br>" | |
23 | 23 | ||
24 | 24 | let k = "<h1>PreSale Parameters Submitted Successfully!</h1><br>" | |
25 | 25 | ||
26 | 26 | let l = "DApp Need WAVES Token as Attach payment[1]." | |
27 | 27 | ||
28 | 28 | let m = "Attached payment[1] is less than token price " | |
29 | 29 | ||
30 | 30 | let n = "Dapp will start Pre-Sale at Timestamp " | |
31 | 31 | ||
32 | 32 | let o = "Minimum 0.1 WAVES required on Your Address, Please hold min. 0.1 WAVES on your Address to place order." | |
33 | 33 | ||
34 | 34 | let p = "Pre-Sale is over for this Round." | |
35 | 35 | ||
36 | 36 | let q = "Pre-Sale is not over for this Round." | |
37 | 37 | ||
38 | 38 | let r = "Softcap or Hard Cap already Reached or probably PreSale was Set with False to Refund, so no Refund allowed for this Round." | |
39 | 39 | ||
40 | 40 | let s = "<h1>Refund Received Successfully!.</h1><br>" | |
41 | 41 | ||
42 | 42 | @Callable(t) | |
43 | 43 | func SetPreSaleParameters (u,v,w,x,y,z) = { | |
44 | 44 | let A = u | |
45 | 45 | let B = v | |
46 | 46 | let C = { | |
47 | 47 | let D = getInteger(this, "Current_Funding_Round") | |
48 | 48 | if ($isInstanceOf(D, "Int")) | |
49 | 49 | then { | |
50 | 50 | let E = D | |
51 | 51 | E | |
52 | 52 | } | |
53 | 53 | else 0 | |
54 | 54 | } | |
55 | 55 | let F = (C + 1) | |
56 | 56 | if ((t.caller != e)) | |
57 | 57 | then throw((("This Address is not Authorized. Only " + toString(e)) + " is Authorized Address to Sign it.")) | |
58 | 58 | else if ((lastBlock.timestamp > u)) | |
59 | 59 | then throw(f) | |
60 | 60 | else if ((size(toString(u)) != 13)) | |
61 | 61 | then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.") | |
62 | 62 | else if ((size(toString(v)) != 13)) | |
63 | 63 | then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.") | |
64 | 64 | else if ((1 > w)) | |
65 | 65 | then throw(h) | |
66 | 66 | else if ((A >= B)) | |
67 | 67 | then throw(g) | |
68 | 68 | else if ((x > y)) | |
69 | 69 | then throw(i) | |
70 | 70 | else [IntegerEntry("Current_Funding_Round", F), IntegerEntry((toString(F) + "_Presale_Start_TimeStamp"), A), IntegerEntry((toString(F) + "_Presale_End_TimeStamp"), B), IntegerEntry((toString(F) + "_Token_Price"), w), IntegerEntry((toString(F) + "_Soft_Cap_Amount"), x), IntegerEntry((toString(F) + "_Hard_Cap_Amount"), y), IntegerEntry((toString(F) + "_Initiated_Height"), height), BooleanEntry((toString(F) + "_Allow_Refund"), z), StringEntry("message", k)] | |
71 | 71 | } | |
72 | 72 | ||
73 | 73 | ||
74 | 74 | ||
75 | 75 | @Callable(t) | |
76 | 76 | func PlacePresaleOrder (G) = { | |
77 | 77 | let H = valueOrErrorMessage(getInteger(this, (toString(G) + "_Token_Price")), "Token Price not Found for this Presale Round.") | |
78 | 78 | let I = valueOrErrorMessage(getInteger(this, (toString(G) + "_Presale_Start_TimeStamp")), "Start Timestamp not Found for this Presale Round.") | |
79 | 79 | let J = valueOrErrorMessage(getInteger(this, (toString(G) + "_Presale_End_TimeStamp")), "End Timestamp not Found for this Presale Round.") | |
80 | 80 | let K = valueOrErrorMessage(getInteger(this, (toString(G) + "_Soft_Cap_Amount")), "Soft Cap Amount not Found for this Presale Round.") | |
81 | 81 | let L = valueOrErrorMessage(getInteger(this, (toString(G) + "_Hard_Cap_Amount")), "Hard Cap Amount not Found for this Presale Round.") | |
82 | 82 | let M = valueOrErrorMessage(getBoolean(this, (toString(G) + "_Allow_Refund")), "Refund is not set for this Presale Round.") | |
83 | 83 | let N = unit | |
84 | 84 | let O = toBase58String(t.caller.bytes) | |
85 | 85 | let P = if ((size(t.payments) == 1)) | |
86 | 86 | then t.payments[0] | |
87 | 87 | else throw(l) | |
88 | 88 | let Q = { | |
89 | 89 | let D = getInteger(this, (toString(G) + "_Funds_Collection")) | |
90 | 90 | if ($isInstanceOf(D, "Int")) | |
91 | 91 | then { | |
92 | 92 | let E = D | |
93 | 93 | E | |
94 | 94 | } | |
95 | 95 | else 0 | |
96 | 96 | } | |
97 | 97 | let R = (Q + P.amount) | |
98 | 98 | let S = { | |
99 | 99 | let D = getInteger(this, (toString(G) + "_total_auto_withdraw_txns")) | |
100 | 100 | if ($isInstanceOf(D, "Int")) | |
101 | 101 | then { | |
102 | 102 | let E = D | |
103 | 103 | E | |
104 | 104 | } | |
105 | 105 | else 0 | |
106 | 106 | } | |
107 | 107 | let T = (S + 1) | |
108 | 108 | let U = { | |
109 | 109 | let D = getInteger(this, (toString(G) + "_total_txns")) | |
110 | 110 | if ($isInstanceOf(D, "Int")) | |
111 | 111 | then { | |
112 | 112 | let E = D | |
113 | 113 | E | |
114 | 114 | } | |
115 | 115 | else 0 | |
116 | 116 | } | |
117 | 117 | let V = (U + 1) | |
118 | 118 | let W = { | |
119 | 119 | let D = getInteger(this, ((toString(G) + "_") + O)) | |
120 | 120 | if ($isInstanceOf(D, "Int")) | |
121 | 121 | then { | |
122 | 122 | let E = D | |
123 | 123 | E | |
124 | 124 | } | |
125 | 125 | else 0 | |
126 | 126 | } | |
127 | 127 | let X = (W + P.amount) | |
128 | 128 | let Y = (K - R) | |
129 | 129 | let Z = (L - R) | |
130 | 130 | if (isDefined(P.assetId)) | |
131 | 131 | then throw(l) | |
132 | 132 | else if ((H > P.amount)) | |
133 | 133 | then throw((((m + "[") + toString(H)) + "/10^8.]")) | |
134 | 134 | else if ((I > lastBlock.timestamp)) | |
135 | 135 | then throw((n + toString(I))) | |
136 | 136 | else if ((lastBlock.timestamp > J)) | |
137 | 137 | then throw(p) | |
138 | 138 | else if (if ((Y > 0)) | |
139 | 139 | then (Z > 0) | |
140 | 140 | else false) | |
141 | 141 | then [IntegerEntry((toString(G) + "_Funds_Collection"), R), IntegerEntry(((toString(G) + "_") + O), X), IntegerEntry((toString(G) + "_total_auto_withdraw_txns"), S), IntegerEntry((toString(G) + "_total_txns"), V), IntegerEntry((toString(G) + "_pending_softcap_status"), Y), IntegerEntry((toString(G) + "_pending_hardcap_status"), Z), StringEntry((toString(G) + "_softcap_status"), "No"), StringEntry((toString(G) + "_hardcap_status"), "No"), BooleanEntry((toString(G) + "_Allow_Refund"), M), StringEntry("message", j)] | |
142 | 142 | else if (if (if ((0 >= Y)) | |
143 | 143 | then (Z > 0) | |
144 | 144 | else false) | |
145 | 145 | then (T == 1) | |
146 | 146 | else false) | |
147 | 147 | then [IntegerEntry((toString(G) + "_Funds_Collection"), R), IntegerEntry(((toString(G) + "_") + O), X), IntegerEntry((toString(G) + "_total_auto_withdraw_txns"), T), IntegerEntry((toString(G) + "_total_txns"), V), IntegerEntry((toString(G) + "_pending_softcap_status"), Y), IntegerEntry((toString(G) + "_pending_hardcap_status"), Z), StringEntry((toString(G) + "_softcap_status"), "Yes"), StringEntry((toString(G) + "_hardcap_status"), "No"), BooleanEntry((toString(G) + "_Allow_Refund"), false), ScriptTransfer(e, R, unit), StringEntry("message", j)] | |
148 | 148 | else if (if (if ((0 >= Y)) | |
149 | 149 | then (Z > 0) | |
150 | 150 | else false) | |
151 | 151 | then (T > 1) | |
152 | 152 | else false) | |
153 | 153 | then [IntegerEntry((toString(G) + "_Funds_Collection"), R), IntegerEntry(((toString(G) + "_") + O), X), IntegerEntry((toString(G) + "_total_auto_withdraw_txns"), T), IntegerEntry((toString(G) + "_total_txns"), V), IntegerEntry((toString(G) + "_pending_softcap_status"), Y), IntegerEntry((toString(G) + "_pending_hardcap_status"), Z), StringEntry((toString(G) + "_softcap_status"), "Yes"), StringEntry((toString(G) + "_hardcap_status"), "No"), BooleanEntry((toString(G) + "_Allow_Refund"), false), ScriptTransfer(e, P.amount, unit), StringEntry("message", j)] | |
154 | 154 | else if (if (if ((0 >= Y)) | |
155 | 155 | then (0 >= Z) | |
156 | 156 | else false) | |
157 | 157 | then (T == 1) | |
158 | 158 | else false) | |
159 | 159 | then [IntegerEntry((toString(G) + "_Funds_Collection"), R), IntegerEntry(((toString(G) + "_") + O), X), IntegerEntry((toString(G) + "_total_auto_withdraw_txns"), T), IntegerEntry((toString(G) + "_total_txns"), V), IntegerEntry((toString(G) + "_pending_softcap_status"), Y), IntegerEntry((toString(G) + "_pending_hardcap_status"), Z), StringEntry((toString(G) + "_softcap_status"), "Yes"), StringEntry((toString(G) + "_hardcap_status"), "Yes"), BooleanEntry((toString(G) + "_Allow_Refund"), false), ScriptTransfer(e, R, unit), StringEntry("message", j)] | |
160 | 160 | else if (if (if ((0 >= Y)) | |
161 | 161 | then (0 >= Z) | |
162 | 162 | else false) | |
163 | 163 | then (T > 1) | |
164 | 164 | else false) | |
165 | 165 | then [IntegerEntry((toString(G) + "_Funds_Collection"), R), IntegerEntry(((toString(G) + "_") + O), X), IntegerEntry((toString(G) + "_total_auto_withdraw_txns"), T), IntegerEntry((toString(G) + "_total_txns"), V), IntegerEntry((toString(G) + "_pending_softcap_status"), Y), IntegerEntry((toString(G) + "_pending_hardcap_status"), Z), StringEntry((toString(G) + "_softcap_status"), "Yes"), StringEntry((toString(G) + "_hardcap_status"), "Yes"), BooleanEntry((toString(G) + "_Allow_Refund"), false), ScriptTransfer(e, P.amount, unit), StringEntry("message", j)] | |
166 | 166 | else throw("Error.") | |
167 | 167 | } | |
168 | 168 | ||
169 | 169 | ||
170 | 170 | ||
171 | 171 | @Callable(t) | |
172 | 172 | func Refund (G) = { | |
173 | 173 | let N = unit | |
174 | 174 | let O = toBase58String(t.caller.bytes) | |
175 | 175 | let aa = valueOrErrorMessage(getInteger(this, (toString(G) + "_Initiated_Height")), "Initiated Height not Found for this Presale Round.") | |
176 | 176 | let H = valueOrErrorMessage(getInteger(this, (toString(G) + "_Token_Price")), "Token Price not Found for this Presale Round.") | |
177 | 177 | let I = valueOrErrorMessage(getInteger(this, (toString(G) + "_Presale_Start_TimeStamp")), "Start Timestamp not Found for this Presale Round.") | |
178 | 178 | let J = valueOrErrorMessage(getInteger(this, (toString(G) + "_Presale_End_TimeStamp")), "End Timestamp not Found for this Presale Round.") | |
179 | 179 | let K = valueOrErrorMessage(getInteger(this, (toString(G) + "_Soft_Cap_Amount")), "Soft Cap Amount not Found for this Presale Round.") | |
180 | 180 | let L = valueOrErrorMessage(getInteger(this, (toString(G) + "_Hard_Cap_Amount")), "Hard Cap Amount not Found for this Presale Round.") | |
181 | 181 | let ab = valueOrErrorMessage(getInteger(this, (toString(G) + "_Funds_Collection")), "Total Funds Collection not Found for this Presale Round.") | |
182 | 182 | let W = valueOrErrorMessage(getInteger(this, ((toString(G) + "_") + O)), "No Deposit was made by this Address for this Presale Round.") | |
183 | 183 | let M = valueOrErrorMessage(getBoolean(this, (toString(G) + "_Allow_Refund")), "Allow_Refund has no Boolen Entry for this Presale Round.") | |
184 | 184 | let Y = (K - ab) | |
185 | 185 | let Z = (L - ab) | |
186 | 186 | let ac = 1000 | |
187 | 187 | let ad = (60 * ac) | |
188 | 188 | let ae = (J - I) | |
189 | 189 | let af = 10 | |
190 | 190 | let ag = ((aa + fraction(ae, 1, ad)) + af) | |
191 | 191 | let ah = (ab - W) | |
192 | 192 | if ((ag > lastBlock.height)) | |
193 | 193 | then throw((((q + " Please Wait Until ~") + toString(ag)) + " Height is reached.")) | |
194 | 194 | else if ((M == false)) | |
195 | 195 | then throw(r) | |
196 | 196 | else if ((W == 0)) | |
197 | 197 | then throw("Refund has been Already Claimed by this Address.") | |
198 | 198 | else if (if ((Y > 0)) | |
199 | 199 | then (Z > 0) | |
200 | 200 | else false) | |
201 | 201 | then [ScriptTransfer(addressFromStringValue(O), W, N), IntegerEntry(((toString(G) + "_") + "Pending_Refund"), ah), IntegerEntry(((toString(G) + "_") + O), 0), StringEntry("message", s)] | |
202 | 202 | else if (if ((0 >= Y)) | |
203 | 203 | then (Z > 0) | |
204 | 204 | else false) | |
205 | 205 | then throw("SoftCap Already Reached for this Round. Please Click on 'Claim Tokens' Function to Receive Your Tokens.") | |
206 | 206 | else if (if ((0 >= Y)) | |
207 | 207 | then (0 >= Z) | |
208 | 208 | else false) | |
209 | 209 | then throw("SoftCap and Hard Already Reached for this Round. Please Click on Claim to Receive Your Tokens.") | |
210 | 210 | else throw("Wrong Entry Found.") | |
211 | 211 | } | |
212 | 212 | ||
213 | 213 | ||
214 | 214 | ||
215 | 215 | @Callable(t) | |
216 | 216 | func Claim_Tokens (G) = { | |
217 | 217 | let O = toBase58String(t.caller.bytes) | |
218 | 218 | let ai = 100000000 | |
219 | 219 | let aa = valueOrErrorMessage(getInteger(this, (toString(G) + "_Initiated_Height")), "Initiated Height not Found for this Presale Round.") | |
220 | 220 | let I = valueOrErrorMessage(getInteger(this, (toString(G) + "_Presale_Start_TimeStamp")), "Start Timestamp not Found for this Presale Round.") | |
221 | 221 | let J = valueOrErrorMessage(getInteger(this, (toString(G) + "_Presale_End_TimeStamp")), "End Timestamp not Found for this Presale Round.") | |
222 | 222 | let aj = valueOrErrorMessage(getString(this, (toString(G) + "_softcap_status")), "SoftCap Status not Found for this Presale Round.") | |
223 | 223 | let ak = valueOrErrorMessage(getString(this, (toString(G) + "_hardcap_status")), "HardCap Status not Found for this Presale Round.") | |
224 | 224 | let H = valueOrErrorMessage(getInteger(this, (toString(G) + "_Token_Price")), "Token Price not Found for this Presale Round.") | |
225 | 225 | let W = valueOrErrorMessage(getInteger(this, ((toString(G) + "_") + O)), "No Deposit was made by this Address for this Presale Round.") | |
226 | 226 | let al = fraction(W, ai, H) | |
227 | 227 | let am = fraction(W, ai, H) | |
228 | 228 | let ac = 1000 | |
229 | 229 | let ad = (60 * ac) | |
230 | 230 | let ae = (J - I) | |
231 | 231 | let af = 10 | |
232 | 232 | let ag = ((aa + fraction(ae, 1, ad)) + af) | |
233 | 233 | let an = { | |
234 | 234 | let D = getInteger(this, (toString(G) + "_Tokens_Claimed")) | |
235 | 235 | if ($isInstanceOf(D, "Int")) | |
236 | 236 | then { | |
237 | 237 | let E = D | |
238 | 238 | E | |
239 | 239 | } | |
240 | 240 | else 0 | |
241 | 241 | } | |
242 | 242 | let ao = (an + am) | |
243 | 243 | let ap = { | |
244 | - | let D = getInteger(this, ((toString(G) + "_Tokens_Claimed_") + O)) | |
244 | + | let D = getInteger(this, ((toString(G) + "_Tokens_Claimed_Counter_") + O)) | |
245 | 245 | if ($isInstanceOf(D, "Int")) | |
246 | 246 | then { | |
247 | 247 | let E = D | |
248 | 248 | E | |
249 | 249 | } | |
250 | 250 | else 0 | |
251 | 251 | } | |
252 | 252 | let aq = (ap + 1) | |
253 | 253 | let ar = (al - am) | |
254 | 254 | if ((ag > lastBlock.height)) | |
255 | 255 | then throw((((q + " Please Wait Until ~") + toString(ag)) + " Height is reached.")) | |
256 | 256 | else if ((aj == "No")) | |
257 | 257 | then throw("No Tokens Claim,as SoftCap Amount didn't reach numbers for this Round.") | |
258 | 258 | else if ((aq > 1)) | |
259 | 259 | then throw((O + " Address has Already Claimed their Token for this round.")) | |
260 | 260 | else if (if ((aj == "Yes")) | |
261 | 261 | then true | |
262 | 262 | else (ak == "Yes")) | |
263 | 263 | then [IntegerEntry((toString(G) + "_Tokens_Claimed"), ao), IntegerEntry((toString(G) + "_Pending_Tokens_To_Claim"), ar), IntegerEntry(((toString(G) + "_Tokens_Claimed_") + O), aq), Reissue(c, am, true), ScriptTransfer(addressFromStringValue(O), am, c)] | |
264 | 264 | else throw("Wrong Entry Found.") | |
265 | 265 | } | |
266 | 266 | ||
267 | 267 | ||
268 | 268 | ||
269 | 269 | @Callable(t) | |
270 | 270 | func Mint_BML (as,at) = { | |
271 | 271 | let au = Issue(as, at, 1, 8, true) | |
272 | 272 | let av = calculateAssetId(au) | |
273 | 273 | let aw = { | |
274 | 274 | let D = getInteger(this, "Asset_Issue_Counter") | |
275 | 275 | if ($isInstanceOf(D, "Int")) | |
276 | 276 | then { | |
277 | 277 | let E = D | |
278 | 278 | E | |
279 | 279 | } | |
280 | 280 | else 0 | |
281 | 281 | } | |
282 | 282 | let ax = (aw + 1) | |
283 | 283 | if ((t.caller != e)) | |
284 | 284 | then throw((("This Address is not Authorized. Only " + toString(e)) + " is Authorized Address to Sign it.")) | |
285 | 285 | else if ((ax > 1)) | |
286 | 286 | then throw("BML Token Already Issued.") | |
287 | 287 | else [au, StringEntry("BML_TokenID", toBase58String(av)), IntegerEntry("Asset_Issue_Counter", ax), StringEntry("message", a), Burn(av, 1)] | |
288 | 288 | } | |
289 | 289 | ||
290 | 290 | ||
291 | 291 | @Verifier(ay) | |
292 | 292 | func az () = sigVerify(ay.bodyBytes, ay.proofs[0], ay.senderPublicKey) | |
293 | 293 |
github/deemru/w8io/026f985 46.61 ms ◑