tx · 3RsvnpSXrxUTQXz6JCuPhV11WC9bPYMkikq2eAzFCiEA

3N17JMn4WESkhCSrcEwdADBZFAe8uiuvCGQ:  -0.01400000 Waves

2021.10.09 01:11 [1737874] smart account 3N17JMn4WESkhCSrcEwdADBZFAe8uiuvCGQ > SELF 0.00000000 Waves

{ "type": 13, "id": "3RsvnpSXrxUTQXz6JCuPhV11WC9bPYMkikq2eAzFCiEA", "fee": 1400000, "feeAssetId": null, "timestamp": 1633731076129, "version": 2, "chainId": 84, "sender": "3N17JMn4WESkhCSrcEwdADBZFAe8uiuvCGQ", "senderPublicKey": "BMLuSYJ8rvQD55waCoKpzCBhJAbY8s9pp4V5ZgxuzCBD", "proofs": [ "5Cx3wbregivmHQDUidvzjbQLZdYLDww19H9UbNqMck93dASSfjrbnjjLNbJjq4SPGqE6Hq1gpdc455BLjJfPRhu8" ], "script": "base64:AAIEAAAAAAAAABoIAhIAEgASABIAEgASABIAEgASABIAEgASAAAAABIAAAAAA0E0QQEAAAAgcmq6+6Wxr2yowtuRELQMbFaAM1flDMDSVcM9IpA14LUAAAAAB1dlZWswVFMAAAABeyJO4UAAAAAABHdlZWsAAAAAACQMhAAAAAAACXBhdXNldGltZQAAAAAAANu6AAAAAAALY3VycmVudHdlZWsJAABkAAAAAgkAAGkAAAACCQAAZQAAAAIIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAAAdXZWVrMFRTBQAAAAR3ZWVrAAAAAAAAAAABAAAAAAdzdHJ3ZWVrCQABpAAAAAEFAAAAC2N1cnJlbnR3ZWVrAAAAAA5UU1VwdG9QYXN0V2VlawkAAGQAAAACBQAAAAdXZWVrMFRTCQAAaAAAAAIJAABlAAAAAgUAAAALY3VycmVudHdlZWsAAAAAAAAAAAEFAAAABHdlZWsAAAAAD3ZvdGluZ3BhdXNldGltZQkAAGQAAAACBQAAAA5UU1VwdG9QYXN0V2VlawUAAAAJcGF1c2V0aW1lAAAAAANtc2cCAAAAJDxoMT5Zb3UgVm90ZWQgU3VjY2Vzc2Z1bGx5ITwvaDE+PGJyPgAAAAAJcHltdGVycm9yAgAAADBEQXBwIE5lZWQgMC4wMDAxIEE0QSBUb2tlbiBhcyBBdHRhY2ggcGF5bWVudFsxXS4AAAAAC21pbmJhbGVycm9yAgAAAFxNaW4uIDEgQTRBIHJlcXVpcmVkIG9uIFlvdXIgQWRkcmVzcyB0byBWb3RlLiBQbGVhc2UgTWludCBvciBob2xkIG1pbi4gMSBBNEEgb24gdGhpcyBBZGRyZXNzLgAAAAAIYXNzZXRlcnIJAAEsAAAAAgkAASwAAAACAgAAACZJbmNvcnJlY3QgYXNzZXQgYXR0YWNoLCBwbGVhc2UgYXR0YWNoIAkAAlgAAAABBQAAAANBNEECAAAADiBBc3NldElEIE9ubHkuAAAAAAltaW5hbXRlcnICAAAAJ1BsZWFzZSBBdHRhY2ggRXhhY3QgMC4wMDAxIEE0QSBUbyBWb3RlLgAAAAAHdm90ZUVycgkAASwAAAACCQABLAAAAAICAAAAGlZvdGluZyBpcyBwYXVzZWQgZm9yIE5leHQgCQABpAAAAAEJAABpAAAAAgkAAGUAAAACBQAAAA92b3RpbmdwYXVzZXRpbWUIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wAAAAAAAAAOpgAgAAAAggTWludXRlcwAAAAAERlRUWAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAAApUb3RhbF9UeG5zAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAAAAAACXRvdGFsdHhucwkAAGQAAAACBQAAAARGVFRYAAAAAAAAAAABAAAAAApGVFRYb2Z3ZWVrBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAAAAAAEVFRPVwkAAGQAAAACBQAAAApGVFRYb2Z3ZWVrAAAAAAAAAAABAAAADAAAAAFpAQAAAAlDaGFpbmxpbmsAAAAABAAAAAdWb3RlQXN0AgAAAAlDaGFpbmxpbmsEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABBQAAAAlweW10ZXJyb3IEAAAABnB1YmtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAhhc3NldGJhbAkAA/AAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAA0E0QQQAAAAERlVXVgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRXVk8JAABkAAAAAgUAAAAERlVXVgAAAAAAAAAAAQQAAAAFVVdWRkEEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAZVVFdWRkEJAABkAAAAAgUAAAAFVVdWRkEAAAAAAAAAAAEEAAAABEZVVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFVc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFVUVk8JAABkAAAAAgUAAAAERlVWTwAAAAAAAAAAAQQAAAAFRlVWRkEEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAXVXNlcl9Ub3RhbF9Bc3NldF9Wb3Rlc18FAAAABnB1YmtleQIAAAABXwUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAVVVFZGQQkAAGQAAAACBQAAAAVGVVZGQQAAAAAAAAAAAQQAAAAERlRWTwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARBVFZPCQAAZAAAAAIFAAAABEZUVk8AAAAAAAAAAAEEAAAABFdGVFYEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEV0FUVgkAAGQAAAACBQAAAARXRlRWAAAAAAAAAAABAwkAAGYAAAACAAAAAAAF9eEABQAAAAhhc3NldGJhbAkAAAIAAAABBQAAAAttaW5iYWxlcnJvcgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAADQTRBCQAAAgAAAAEFAAAACGFzc2V0ZXJyAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAZhbW91bnQAAAAAAAAAJxAJAAACAAAAAQUAAAAJbWluYW10ZXJyAwkAAGYAAAACBQAAAA92b3RpbmdwYXVzZXRpbWUIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAEFAAAAB3ZvdGVFcnIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClRvdGFsX1R4bnMFAAAACXRvdGFsdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAAtfVG90YWxfVHhucwUAAAAEVFRPVwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAATQ3VycmVudF9Wb3RpbmdfV2VlawUAAAALY3VycmVudHdlZWsJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAMVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0BQAAAARBVFZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAANX1RvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEV0FUVgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABFVc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAARVVFZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkFAAAABVVUV1ZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AgAAAAEtBQAAAAdWb3RlQXN0BQAAAAZVVFdWRkEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QFAAAABVVUVkZBCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UFAAAAA21zZwUAAAADbmlsAAAAAWkBAAAABERlbnQAAAAABAAAAAdWb3RlQXN0AgAAAAREZW50BAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAFpAQAAAAVTdXNoaQAAAAAEAAAAB1ZvdGVBc3QCAAAABVN1c2hpBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAFpAQAAAAhDb21wb3VuZAAAAAAEAAAAB1ZvdGVBc3QCAAAACENvbXBvdW5kBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAFpAQAAAAVIYXZlbgAAAAAEAAAAB1ZvdGVBc3QCAAAABUhhdmVuBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAFpAQAAAAtQaXJhdGVDaGFpbgAAAAAEAAAAB1ZvdGVBc3QCAAAAC1BpcmF0ZUNoYWluBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAFpAQAAAAZNb25lcm8AAAAABAAAAAdWb3RlQXN0AgAAAAZNb25lcm8EAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABBQAAAAlweW10ZXJyb3IEAAAABnB1YmtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAhhc3NldGJhbAkAA/AAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAA0E0QQQAAAAERlVXVgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRXVk8JAABkAAAAAgUAAAAERlVXVgAAAAAAAAAAAQQAAAAFVVdWRkEEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAZVVFdWRkEJAABkAAAAAgUAAAAFVVdWRkEAAAAAAAAAAAEEAAAABEZVVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFVc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFVUVk8JAABkAAAAAgUAAAAERlVWTwAAAAAAAAAAAQQAAAAFRlVWRkEEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAXVXNlcl9Ub3RhbF9Bc3NldF9Wb3Rlc18FAAAABnB1YmtleQIAAAABXwUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAVVVFZGQQkAAGQAAAACBQAAAAVGVVZGQQAAAAAAAAAAAQQAAAAERlRWTwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARBVFZPCQAAZAAAAAIFAAAABEZUVk8AAAAAAAAAAAEEAAAABFdGVFYEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEV0FUVgkAAGQAAAACBQAAAARXRlRWAAAAAAAAAAABAwkAAGYAAAACAAAAAAAF9eEABQAAAAhhc3NldGJhbAkAAAIAAAABBQAAAAttaW5iYWxlcnJvcgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAADQTRBCQAAAgAAAAEFAAAACGFzc2V0ZXJyAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAZhbW91bnQAAAAAAAAAJxAJAAACAAAAAQUAAAAJbWluYW10ZXJyAwkAAGYAAAACBQAAAA92b3RpbmdwYXVzZXRpbWUIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAEFAAAAB3ZvdGVFcnIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClRvdGFsX1R4bnMFAAAACXRvdGFsdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAAtfVG90YWxfVHhucwUAAAAEVFRPVwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAATQ3VycmVudF9Wb3RpbmdfV2VlawUAAAALY3VycmVudHdlZWsJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAMVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0BQAAAARBVFZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAANX1RvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEV0FUVgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABFVc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAARVVFZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkFAAAABVVUV1ZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AgAAAAEtBQAAAAdWb3RlQXN0BQAAAAZVVFdWRkEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QFAAAABVVUVkZBCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UFAAAAA21zZwUAAAADbmlsAAAAAWkBAAAABFBSQ1kAAAAABAAAAAdWb3RlQXN0AgAAAAdQcml2YWN5BAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAFpAQAAAANCVEMAAAAABAAAAAdWb3RlQXN0AgAAAAdCaXRjb2luBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAFpAQAAAANMVEMAAAAABAAAAAdWb3RlQXN0AgAAAAhMaXRlY29pbgQAAAADcG10AwkAAAAAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAEFAAAACXB5bXRlcnJvcgQAAAAGcHVia2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAACGFzc2V0YmFsCQAD8AAAAAIJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQUAAAADQTRBBAAAAARGVVdWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAVVVFdWTwkAAGQAAAACBQAAAARGVVdWAAAAAAAAAAABBAAAAAVVV1ZGQQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AgAAAAEtBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABlVUV1ZGQQkAAGQAAAACBQAAAAVVV1ZGQQAAAAAAAAAAAQQAAAAERlVWTwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAEVVzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEVVRWTwkAAGQAAAACBQAAAARGVVZPAAAAAAAAAAABBAAAAAVGVVZGQQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUVkZBCQAAZAAAAAIFAAAABUZVVkZBAAAAAAAAAAABBAAAAARGVFZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAMVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABEFUVk8JAABkAAAAAgUAAAAERlRWTwAAAAAAAAAAAQQAAAAEV0ZUVgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAANX1RvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARXQVRWCQAAZAAAAAIFAAAABFdGVFYAAAAAAAAAAAEDCQAAZgAAAAIAAAAAAAX14QAFAAAACGFzc2V0YmFsCQAAAgAAAAEFAAAAC21pbmJhbGVycm9yAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAdhc3NldElkBQAAAANBNEEJAAACAAAAAQUAAAAIYXNzZXRlcnIDCQEAAAACIT0AAAACCAUAAAADcG10AAAABmFtb3VudAAAAAAAAAAnEAkAAAIAAAABBQAAAAltaW5hbXRlcnIDCQAAZgAAAAIFAAAAD3ZvdGluZ3BhdXNldGltZQgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAACAAAAAQUAAAAHdm90ZUVycgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAKVG90YWxfVHhucwUAAAAJdG90YWx0eG5zCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAC19Ub3RhbF9UeG5zBQAAAARUVE9XCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABNDdXJyZW50X1ZvdGluZ19XZWVrBQAAAAtjdXJyZW50d2VlawkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABEFUVk8JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0BQAAAARXQVRWCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAEVVzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkFAAAABFVUVk8JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAFVVRXVk8JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QFAAAABlVUV1ZGQQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAXVXNlcl9Ub3RhbF9Bc3NldF9Wb3Rlc18FAAAABnB1YmtleQIAAAABXwUAAAAHVm90ZUFzdAUAAAAFVVRWRkEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAHbWVzc2FnZQUAAAADbXNnBQAAAANuaWwAAAABaQEAAAAEREFTSAAAAAAEAAAAB1ZvdGVBc3QCAAAABERhc2gEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABBQAAAAlweW10ZXJyb3IEAAAABnB1YmtleQkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAhhc3NldGJhbAkAA/AAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAA0E0QQQAAAAERlVXVgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRXVk8JAABkAAAAAgUAAAAERlVXVgAAAAAAAAAAAQQAAAAFVVdWRkEEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAZVVFdWRkEJAABkAAAAAgUAAAAFVVdWRkEAAAAAAAAAAAEEAAAABEZVVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFVc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFVUVk8JAABkAAAAAgUAAAAERlVWTwAAAAAAAAAAAQQAAAAFRlVWRkEEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAXVXNlcl9Ub3RhbF9Bc3NldF9Wb3Rlc18FAAAABnB1YmtleQIAAAABXwUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAVVVFZGQQkAAGQAAAACBQAAAAVGVVZGQQAAAAAAAAAAAQQAAAAERlRWTwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARBVFZPCQAAZAAAAAIFAAAABEZUVk8AAAAAAAAAAAEEAAAABFdGVFYEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEV0FUVgkAAGQAAAACBQAAAARXRlRWAAAAAAAAAAABAwkAAGYAAAACAAAAAAAF9eEABQAAAAhhc3NldGJhbAkAAAIAAAABBQAAAAttaW5iYWxlcnJvcgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAADQTRBCQAAAgAAAAEFAAAACGFzc2V0ZXJyAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAZhbW91bnQAAAAAAAAAJxAJAAACAAAAAQUAAAAJbWluYW10ZXJyAwkAAGYAAAACBQAAAA92b3RpbmdwYXVzZXRpbWUIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAEFAAAAB3ZvdGVFcnIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClRvdGFsX1R4bnMFAAAACXRvdGFsdHhucwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAAtfVG90YWxfVHhucwUAAAAEVFRPVwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAATQ3VycmVudF9Wb3RpbmdfV2VlawUAAAALY3VycmVudHdlZWsJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAMVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0BQAAAARBVFZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAANX1RvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEV0FUVgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABFVc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAARVVFZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkFAAAABVVUV1ZPCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AgAAAAEtBQAAAAdWb3RlQXN0BQAAAAZVVFdWRkEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QFAAAABVVUVkZBCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAICAAAAB21lc3NhZ2UFAAAAA21zZwUAAAADbmlsAAAAAWkBAAAAA0JDSAAAAAAEAAAAB1ZvdGVBc3QCAAAAC0JpdGNvaW5DYXNoBAAAAANwbXQDCQAAAAAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAJAAACAAAAAQUAAAAJcHltdGVycm9yBAAAAAZwdWJrZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAIYXNzZXRiYWwJAAPwAAAAAgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BQAAAANBNEEEAAAABEZVV1YEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABVVUV1ZPCQAAZAAAAAIFAAAABEZVV1YAAAAAAAAAAAEEAAAABVVXVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAASX1VzZXJfVG90YWxfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAS0FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAGVVRXVkZBCQAAZAAAAAIFAAAABVVXVkZBAAAAAAAAAAABBAAAAARGVVZPBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAARVVFZPCQAAZAAAAAIFAAAABEZVVk8AAAAAAAAAAAEEAAAABUZVVkZBBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAF1VzZXJfVG90YWxfQXNzZXRfVm90ZXNfBQAAAAZwdWJrZXkCAAAAAV8FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAFVVRWRkEJAABkAAAAAgUAAAAFRlVWRkEAAAAAAAAAAAEEAAAABEZUVk8EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAxUb3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAEQVRWTwkAAGQAAAACBQAAAARGVFZPAAAAAAAAAAABBAAAAARXRlRWBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAAA1fVG90YWxfVm90ZXNfBQAAAAdWb3RlQXN0AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAABFdBVFYJAABkAAAAAgUAAAAEV0ZUVgAAAAAAAAAAAQMJAABmAAAAAgAAAAAABfXhAAUAAAAIYXNzZXRiYWwJAAACAAAAAQUAAAALbWluYmFsZXJyb3IDCQEAAAACIT0AAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAA0E0QQkAAAIAAAABBQAAAAhhc3NldGVycgMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50AAAAAAAAACcQCQAAAgAAAAEFAAAACW1pbmFtdGVycgMJAABmAAAAAgUAAAAPdm90aW5ncGF1c2V0aW1lCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABBQAAAAd2b3RlRXJyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9UeG5zBQAAAAl0b3RhbHR4bnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAHc3Ryd2VlawIAAAALX1RvdGFsX1R4bnMFAAAABFRUT1cJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE0N1cnJlbnRfVm90aW5nX1dlZWsFAAAAC2N1cnJlbnR3ZWVrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX1ZvdGVzXwUAAAAHVm90ZUFzdAUAAAAEQVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAADV9Ub3RhbF9Wb3Rlc18FAAAAB1ZvdGVBc3QFAAAABFdBVFYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAARVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQUAAAAEVVRWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAB3N0cndlZWsCAAAAEl9Vc2VyX1RvdGFsX1ZvdGVzXwUAAAAGcHVia2V5BQAAAAVVVFdWTwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdzdHJ3ZWVrAgAAABJfVXNlcl9Ub3RhbF9Wb3Rlc18FAAAABnB1YmtleQIAAAABLQUAAAAHVm90ZUFzdAUAAAAGVVRXVkZBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABdVc2VyX1RvdGFsX0Fzc2V0X1ZvdGVzXwUAAAAGcHVia2V5AgAAAAFfBQAAAAdWb3RlQXN0BQAAAAVVVFZGQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACAgAAAAdtZXNzYWdlBQAAAANtc2cFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5+/c1fw==", "height": 1737874, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3CyTgfTSq4jXkpZoi98f7Ku3naXpdwmxcFb1LwPHmWVJ Next: FTGctiZfB5i9VDtrwxGZN9tjSupJGbAAqxdYPikeJaVQ Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let A4AAssetID = base58'8hdsVCxPBVEmVUZyyX8Sd98Z9hU7Fny26W96sjKiTw8g'
4+let A4A = base58'8hdsVCxPBVEmVUZyyX8Sd98Z9hU7Fny26W96sjKiTw8g'
55
66 let Week0TS = 1628368200000
77
99
1010 let pausetime = 14400000
1111
12-let currentrunningweek = (((lastBlock.timestamp - Week0TS) / week) + 1)
12+let currentweek = (((lastBlock.timestamp - Week0TS) / week) + 1)
1313
14-let TSUptoPastWeek = (Week0TS + ((currentrunningweek - 1) * week))
14+let strweek = toString(currentweek)
15+
16+let TSUptoPastWeek = (Week0TS + ((currentweek - 1) * week))
1517
1618 let votingpausetime = (TSUptoPastWeek + pausetime)
1719
18-let message = "<h1>You Voted Successfully!</h1><br>"
20+let msg = "<h1>You Voted Successfully!</h1><br>"
1921
20-let attachpymterror = "Weekly Vote Need 0.0001 A4A Token as Attached payment[1]."
22+let pymterror = "DApp Need 0.0001 A4A Token as Attach payment[1]."
2123
22-let minbalerror = "Minimum 1 A4A is required on Your Address to Vote. Please Mint or hold minimum 1 A4A on this Address."
24+let minbalerror = "Min. 1 A4A required on Your Address to Vote. Please Mint or hold min. 1 A4A on this Address."
2325
24-let asseterr = (("Incorrect asset attached, please attach " + toBase58String(A4AAssetID)) + " AssetID Only.")
26+let asseterr = (("Incorrect asset attach, please attach " + toBase58String(A4A)) + " AssetID Only.")
2527
2628 let minamterr = "Please Attach Exact 0.0001 A4A To Vote."
2729
28-let fetchtotaltxns = match getInteger(this, "Total_Txns") {
30+let voteErr = (("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes")
31+
32+let FTTX = match getInteger(this, "Total_Txns") {
2933 case a: Int =>
3034 a
3135 case _ =>
3236 0
3337 }
3438
35-let totaltxns = (fetchtotaltxns + 1)
39+let totaltxns = (FTTX + 1)
3640
37-let fetchtotaltxnsofweek = match getInteger(this, (toString(currentrunningweek) + "_Total_Txns")) {
41+let FTTXofweek = match getInteger(this, (strweek + "_Total_Txns")) {
3842 case a: Int =>
3943 a
4044 case _ =>
4145 0
4246 }
4347
44-let totaltxnsofweek = (fetchtotaltxnsofweek + 1)
48+let TTOW = (FTTXofweek + 1)
4549
4650 @Callable(i)
4751 func Chainlink () = {
48- let FavouriteAsset = "Chainlink"
52+ let VoteAst = "Chainlink"
4953 let pmt = if ((size(i.payments) == 1))
5054 then i.payments[0]
51- else throw(attachpymterror)
52- let currentKey = toBase58String(i.caller.bytes)
53- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
54- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
55+ else throw(pymterror)
56+ let pubkey = toBase58String(i.caller.bytes)
57+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
58+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
5559 case a: Int =>
5660 a
5761 case _ =>
5862 0
5963 }
60- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
61- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
64+ let UTWVO = (FUWV + 1)
65+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
6266 case a: Int =>
6367 a
6468 case _ =>
6569 0
6670 }
67- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
68- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
71+ let UTWVFA = (UWVFA + 1)
72+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
6973 case a: Int =>
7074 a
7175 case _ =>
7276 0
7377 }
74- let usertotalvotes = (fetchuservotes + 1)
75- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
78+ let UTVO = (FUVO + 1)
79+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
7680 case a: Int =>
7781 a
7882 case _ =>
7983 0
8084 }
81- let usertotalvotesforasset = (fetchuservotesforasset + 1)
82- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
85+ let UTVFA = (FUVFA + 1)
86+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
8387 case a: Int =>
8488 a
8589 case _ =>
8690 0
8791 }
88- let assettotalvotes = (fetchtotalvotes + 1)
89- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
92+ let ATVO = (FTVO + 1)
93+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
9094 case a: Int =>
9195 a
9296 case _ =>
9397 0
9498 }
95- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
96- if ((100000000 > checkassetbal))
99+ let WATV = (WFTV + 1)
100+ if ((100000000 > assetbal))
97101 then throw(minbalerror)
98- else if ((pmt.assetId != A4AAssetID))
102+ else if ((pmt.assetId != A4A))
99103 then throw(asseterr)
100104 else if ((pmt.amount != 10000))
101105 then throw(minamterr)
102106 else if ((votingpausetime > lastBlock.timestamp))
103- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
104- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
107+ then throw(voteErr)
108+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
105109 }
106110
107111
108112
109113 @Callable(i)
110114 func Dent () = {
111- let FavouriteAsset = "Dent"
115+ let VoteAst = "Dent"
112116 let pmt = if ((size(i.payments) == 1))
113117 then i.payments[0]
114- else throw(attachpymterror)
115- let currentKey = toBase58String(i.caller.bytes)
116- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
117- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
118+ else throw(pymterror)
119+ let pubkey = toBase58String(i.caller.bytes)
120+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
121+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
118122 case a: Int =>
119123 a
120124 case _ =>
121125 0
122126 }
123- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
124- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
127+ let UTWVO = (FUWV + 1)
128+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
125129 case a: Int =>
126130 a
127131 case _ =>
128132 0
129133 }
130- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
131- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
134+ let UTWVFA = (UWVFA + 1)
135+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
132136 case a: Int =>
133137 a
134138 case _ =>
135139 0
136140 }
137- let usertotalvotes = (fetchuservotes + 1)
138- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
141+ let UTVO = (FUVO + 1)
142+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
139143 case a: Int =>
140144 a
141145 case _ =>
142146 0
143147 }
144- let usertotalvotesforasset = (fetchuservotesforasset + 1)
145- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
148+ let UTVFA = (FUVFA + 1)
149+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
146150 case a: Int =>
147151 a
148152 case _ =>
149153 0
150154 }
151- let assettotalvotes = (fetchtotalvotes + 1)
152- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
155+ let ATVO = (FTVO + 1)
156+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
153157 case a: Int =>
154158 a
155159 case _ =>
156160 0
157161 }
158- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
159- if ((100000000 > checkassetbal))
162+ let WATV = (WFTV + 1)
163+ if ((100000000 > assetbal))
160164 then throw(minbalerror)
161- else if ((pmt.assetId != A4AAssetID))
165+ else if ((pmt.assetId != A4A))
162166 then throw(asseterr)
163167 else if ((pmt.amount != 10000))
164168 then throw(minamterr)
165169 else if ((votingpausetime > lastBlock.timestamp))
166- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
167- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
170+ then throw(voteErr)
171+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
168172 }
169173
170174
171175
172176 @Callable(i)
173177 func Sushi () = {
174- let FavouriteAsset = "Sushi"
178+ let VoteAst = "Sushi"
175179 let pmt = if ((size(i.payments) == 1))
176180 then i.payments[0]
177- else throw(attachpymterror)
178- let currentKey = toBase58String(i.caller.bytes)
179- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
180- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
181+ else throw(pymterror)
182+ let pubkey = toBase58String(i.caller.bytes)
183+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
184+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
181185 case a: Int =>
182186 a
183187 case _ =>
184188 0
185189 }
186- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
187- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
190+ let UTWVO = (FUWV + 1)
191+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
188192 case a: Int =>
189193 a
190194 case _ =>
191195 0
192196 }
193- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
194- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
197+ let UTWVFA = (UWVFA + 1)
198+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
195199 case a: Int =>
196200 a
197201 case _ =>
198202 0
199203 }
200- let usertotalvotes = (fetchuservotes + 1)
201- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
204+ let UTVO = (FUVO + 1)
205+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
202206 case a: Int =>
203207 a
204208 case _ =>
205209 0
206210 }
207- let usertotalvotesforasset = (fetchuservotesforasset + 1)
208- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
211+ let UTVFA = (FUVFA + 1)
212+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
209213 case a: Int =>
210214 a
211215 case _ =>
212216 0
213217 }
214- let assettotalvotes = (fetchtotalvotes + 1)
215- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
218+ let ATVO = (FTVO + 1)
219+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
216220 case a: Int =>
217221 a
218222 case _ =>
219223 0
220224 }
221- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
222- if ((100000000 > checkassetbal))
225+ let WATV = (WFTV + 1)
226+ if ((100000000 > assetbal))
223227 then throw(minbalerror)
224- else if ((pmt.assetId != A4AAssetID))
228+ else if ((pmt.assetId != A4A))
225229 then throw(asseterr)
226230 else if ((pmt.amount != 10000))
227231 then throw(minamterr)
228232 else if ((votingpausetime > lastBlock.timestamp))
229- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
230- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
233+ then throw(voteErr)
234+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
231235 }
232236
233237
234238
235239 @Callable(i)
236240 func Compound () = {
237- let FavouriteAsset = "Compound"
241+ let VoteAst = "Compound"
238242 let pmt = if ((size(i.payments) == 1))
239243 then i.payments[0]
240- else throw(attachpymterror)
241- let currentKey = toBase58String(i.caller.bytes)
242- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
243- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
244+ else throw(pymterror)
245+ let pubkey = toBase58String(i.caller.bytes)
246+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
247+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
244248 case a: Int =>
245249 a
246250 case _ =>
247251 0
248252 }
249- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
250- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
253+ let UTWVO = (FUWV + 1)
254+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
251255 case a: Int =>
252256 a
253257 case _ =>
254258 0
255259 }
256- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
257- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
260+ let UTWVFA = (UWVFA + 1)
261+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
258262 case a: Int =>
259263 a
260264 case _ =>
261265 0
262266 }
263- let usertotalvotes = (fetchuservotes + 1)
264- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
267+ let UTVO = (FUVO + 1)
268+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
265269 case a: Int =>
266270 a
267271 case _ =>
268272 0
269273 }
270- let usertotalvotesforasset = (fetchuservotesforasset + 1)
271- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
274+ let UTVFA = (FUVFA + 1)
275+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
272276 case a: Int =>
273277 a
274278 case _ =>
275279 0
276280 }
277- let assettotalvotes = (fetchtotalvotes + 1)
278- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
281+ let ATVO = (FTVO + 1)
282+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
279283 case a: Int =>
280284 a
281285 case _ =>
282286 0
283287 }
284- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
285- if ((100000000 > checkassetbal))
288+ let WATV = (WFTV + 1)
289+ if ((100000000 > assetbal))
286290 then throw(minbalerror)
287- else if ((pmt.assetId != A4AAssetID))
291+ else if ((pmt.assetId != A4A))
288292 then throw(asseterr)
289293 else if ((pmt.amount != 10000))
290294 then throw(minamterr)
291295 else if ((votingpausetime > lastBlock.timestamp))
292- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
293- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
296+ then throw(voteErr)
297+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
294298 }
295299
296300
297301
298302 @Callable(i)
299303 func Haven () = {
300- let FavouriteAsset = "Haven"
304+ let VoteAst = "Haven"
301305 let pmt = if ((size(i.payments) == 1))
302306 then i.payments[0]
303- else throw(attachpymterror)
304- let currentKey = toBase58String(i.caller.bytes)
305- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
306- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
307+ else throw(pymterror)
308+ let pubkey = toBase58String(i.caller.bytes)
309+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
310+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
307311 case a: Int =>
308312 a
309313 case _ =>
310314 0
311315 }
312- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
313- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
316+ let UTWVO = (FUWV + 1)
317+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
314318 case a: Int =>
315319 a
316320 case _ =>
317321 0
318322 }
319- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
320- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
323+ let UTWVFA = (UWVFA + 1)
324+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
321325 case a: Int =>
322326 a
323327 case _ =>
324328 0
325329 }
326- let usertotalvotes = (fetchuservotes + 1)
327- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
330+ let UTVO = (FUVO + 1)
331+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
328332 case a: Int =>
329333 a
330334 case _ =>
331335 0
332336 }
333- let usertotalvotesforasset = (fetchuservotesforasset + 1)
334- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
337+ let UTVFA = (FUVFA + 1)
338+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
335339 case a: Int =>
336340 a
337341 case _ =>
338342 0
339343 }
340- let assettotalvotes = (fetchtotalvotes + 1)
341- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
344+ let ATVO = (FTVO + 1)
345+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
342346 case a: Int =>
343347 a
344348 case _ =>
345349 0
346350 }
347- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
348- if ((100000000 > checkassetbal))
351+ let WATV = (WFTV + 1)
352+ if ((100000000 > assetbal))
349353 then throw(minbalerror)
350- else if ((pmt.assetId != A4AAssetID))
354+ else if ((pmt.assetId != A4A))
351355 then throw(asseterr)
352356 else if ((pmt.amount != 10000))
353357 then throw(minamterr)
354358 else if ((votingpausetime > lastBlock.timestamp))
355- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
356- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
359+ then throw(voteErr)
360+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
357361 }
358362
359363
360364
361365 @Callable(i)
362366 func PirateChain () = {
363- let FavouriteAsset = "PirateChain"
367+ let VoteAst = "PirateChain"
364368 let pmt = if ((size(i.payments) == 1))
365369 then i.payments[0]
366- else throw(attachpymterror)
367- let currentKey = toBase58String(i.caller.bytes)
368- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
369- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
370+ else throw(pymterror)
371+ let pubkey = toBase58String(i.caller.bytes)
372+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
373+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
370374 case a: Int =>
371375 a
372376 case _ =>
373377 0
374378 }
375- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
376- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
379+ let UTWVO = (FUWV + 1)
380+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
377381 case a: Int =>
378382 a
379383 case _ =>
380384 0
381385 }
382- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
383- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
386+ let UTWVFA = (UWVFA + 1)
387+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
384388 case a: Int =>
385389 a
386390 case _ =>
387391 0
388392 }
389- let usertotalvotes = (fetchuservotes + 1)
390- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
393+ let UTVO = (FUVO + 1)
394+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
391395 case a: Int =>
392396 a
393397 case _ =>
394398 0
395399 }
396- let usertotalvotesforasset = (fetchuservotesforasset + 1)
397- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
400+ let UTVFA = (FUVFA + 1)
401+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
398402 case a: Int =>
399403 a
400404 case _ =>
401405 0
402406 }
403- let assettotalvotes = (fetchtotalvotes + 1)
404- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
407+ let ATVO = (FTVO + 1)
408+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
405409 case a: Int =>
406410 a
407411 case _ =>
408412 0
409413 }
410- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
411- if ((100000000 > checkassetbal))
414+ let WATV = (WFTV + 1)
415+ if ((100000000 > assetbal))
412416 then throw(minbalerror)
413- else if ((pmt.assetId != A4AAssetID))
417+ else if ((pmt.assetId != A4A))
414418 then throw(asseterr)
415419 else if ((pmt.amount != 10000))
416420 then throw(minamterr)
417421 else if ((votingpausetime > lastBlock.timestamp))
418- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
419- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
422+ then throw(voteErr)
423+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
420424 }
421425
422426
423427
424428 @Callable(i)
425429 func Monero () = {
426- let FavouriteAsset = "Monero"
430+ let VoteAst = "Monero"
427431 let pmt = if ((size(i.payments) == 1))
428432 then i.payments[0]
429- else throw(attachpymterror)
430- let currentKey = toBase58String(i.caller.bytes)
431- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
432- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
433+ else throw(pymterror)
434+ let pubkey = toBase58String(i.caller.bytes)
435+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
436+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
433437 case a: Int =>
434438 a
435439 case _ =>
436440 0
437441 }
438- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
439- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
442+ let UTWVO = (FUWV + 1)
443+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
440444 case a: Int =>
441445 a
442446 case _ =>
443447 0
444448 }
445- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
446- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
449+ let UTWVFA = (UWVFA + 1)
450+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
447451 case a: Int =>
448452 a
449453 case _ =>
450454 0
451455 }
452- let usertotalvotes = (fetchuservotes + 1)
453- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
456+ let UTVO = (FUVO + 1)
457+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
454458 case a: Int =>
455459 a
456460 case _ =>
457461 0
458462 }
459- let usertotalvotesforasset = (fetchuservotesforasset + 1)
460- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
463+ let UTVFA = (FUVFA + 1)
464+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
461465 case a: Int =>
462466 a
463467 case _ =>
464468 0
465469 }
466- let assettotalvotes = (fetchtotalvotes + 1)
467- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
470+ let ATVO = (FTVO + 1)
471+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
468472 case a: Int =>
469473 a
470474 case _ =>
471475 0
472476 }
473- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
474- if ((100000000 > checkassetbal))
477+ let WATV = (WFTV + 1)
478+ if ((100000000 > assetbal))
475479 then throw(minbalerror)
476- else if ((pmt.assetId != A4AAssetID))
480+ else if ((pmt.assetId != A4A))
477481 then throw(asseterr)
478482 else if ((pmt.amount != 10000))
479483 then throw(minamterr)
480484 else if ((votingpausetime > lastBlock.timestamp))
481- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
482- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
485+ then throw(voteErr)
486+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
483487 }
484488
485489
486490
487491 @Callable(i)
488492 func PRCY () = {
489- let FavouriteAsset = "Privacy"
493+ let VoteAst = "Privacy"
490494 let pmt = if ((size(i.payments) == 1))
491495 then i.payments[0]
492- else throw(attachpymterror)
493- let currentKey = toBase58String(i.caller.bytes)
494- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
495- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
496+ else throw(pymterror)
497+ let pubkey = toBase58String(i.caller.bytes)
498+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
499+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
496500 case a: Int =>
497501 a
498502 case _ =>
499503 0
500504 }
501- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
502- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
505+ let UTWVO = (FUWV + 1)
506+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
503507 case a: Int =>
504508 a
505509 case _ =>
506510 0
507511 }
508- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
509- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
512+ let UTWVFA = (UWVFA + 1)
513+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
510514 case a: Int =>
511515 a
512516 case _ =>
513517 0
514518 }
515- let usertotalvotes = (fetchuservotes + 1)
516- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
519+ let UTVO = (FUVO + 1)
520+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
517521 case a: Int =>
518522 a
519523 case _ =>
520524 0
521525 }
522- let usertotalvotesforasset = (fetchuservotesforasset + 1)
523- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
526+ let UTVFA = (FUVFA + 1)
527+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
524528 case a: Int =>
525529 a
526530 case _ =>
527531 0
528532 }
529- let assettotalvotes = (fetchtotalvotes + 1)
530- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
533+ let ATVO = (FTVO + 1)
534+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
531535 case a: Int =>
532536 a
533537 case _ =>
534538 0
535539 }
536- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
537- if ((100000000 > checkassetbal))
540+ let WATV = (WFTV + 1)
541+ if ((100000000 > assetbal))
538542 then throw(minbalerror)
539- else if ((pmt.assetId != A4AAssetID))
543+ else if ((pmt.assetId != A4A))
540544 then throw(asseterr)
541545 else if ((pmt.amount != 10000))
542546 then throw(minamterr)
543547 else if ((votingpausetime > lastBlock.timestamp))
544- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
545- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
548+ then throw(voteErr)
549+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
550+ }
551+
552+
553+
554+@Callable(i)
555+func BTC () = {
556+ let VoteAst = "Bitcoin"
557+ let pmt = if ((size(i.payments) == 1))
558+ then i.payments[0]
559+ else throw(pymterror)
560+ let pubkey = toBase58String(i.caller.bytes)
561+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
562+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
563+ case a: Int =>
564+ a
565+ case _ =>
566+ 0
567+ }
568+ let UTWVO = (FUWV + 1)
569+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
570+ case a: Int =>
571+ a
572+ case _ =>
573+ 0
574+ }
575+ let UTWVFA = (UWVFA + 1)
576+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
577+ case a: Int =>
578+ a
579+ case _ =>
580+ 0
581+ }
582+ let UTVO = (FUVO + 1)
583+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
584+ case a: Int =>
585+ a
586+ case _ =>
587+ 0
588+ }
589+ let UTVFA = (FUVFA + 1)
590+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
591+ case a: Int =>
592+ a
593+ case _ =>
594+ 0
595+ }
596+ let ATVO = (FTVO + 1)
597+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
598+ case a: Int =>
599+ a
600+ case _ =>
601+ 0
602+ }
603+ let WATV = (WFTV + 1)
604+ if ((100000000 > assetbal))
605+ then throw(minbalerror)
606+ else if ((pmt.assetId != A4A))
607+ then throw(asseterr)
608+ else if ((pmt.amount != 10000))
609+ then throw(minamterr)
610+ else if ((votingpausetime > lastBlock.timestamp))
611+ then throw(voteErr)
612+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
613+ }
614+
615+
616+
617+@Callable(i)
618+func LTC () = {
619+ let VoteAst = "Litecoin"
620+ let pmt = if ((size(i.payments) == 1))
621+ then i.payments[0]
622+ else throw(pymterror)
623+ let pubkey = toBase58String(i.caller.bytes)
624+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
625+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
626+ case a: Int =>
627+ a
628+ case _ =>
629+ 0
630+ }
631+ let UTWVO = (FUWV + 1)
632+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
633+ case a: Int =>
634+ a
635+ case _ =>
636+ 0
637+ }
638+ let UTWVFA = (UWVFA + 1)
639+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
640+ case a: Int =>
641+ a
642+ case _ =>
643+ 0
644+ }
645+ let UTVO = (FUVO + 1)
646+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
647+ case a: Int =>
648+ a
649+ case _ =>
650+ 0
651+ }
652+ let UTVFA = (FUVFA + 1)
653+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
654+ case a: Int =>
655+ a
656+ case _ =>
657+ 0
658+ }
659+ let ATVO = (FTVO + 1)
660+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
661+ case a: Int =>
662+ a
663+ case _ =>
664+ 0
665+ }
666+ let WATV = (WFTV + 1)
667+ if ((100000000 > assetbal))
668+ then throw(minbalerror)
669+ else if ((pmt.assetId != A4A))
670+ then throw(asseterr)
671+ else if ((pmt.amount != 10000))
672+ then throw(minamterr)
673+ else if ((votingpausetime > lastBlock.timestamp))
674+ then throw(voteErr)
675+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
676+ }
677+
678+
679+
680+@Callable(i)
681+func DASH () = {
682+ let VoteAst = "Dash"
683+ let pmt = if ((size(i.payments) == 1))
684+ then i.payments[0]
685+ else throw(pymterror)
686+ let pubkey = toBase58String(i.caller.bytes)
687+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
688+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
689+ case a: Int =>
690+ a
691+ case _ =>
692+ 0
693+ }
694+ let UTWVO = (FUWV + 1)
695+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
696+ case a: Int =>
697+ a
698+ case _ =>
699+ 0
700+ }
701+ let UTWVFA = (UWVFA + 1)
702+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
703+ case a: Int =>
704+ a
705+ case _ =>
706+ 0
707+ }
708+ let UTVO = (FUVO + 1)
709+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
710+ case a: Int =>
711+ a
712+ case _ =>
713+ 0
714+ }
715+ let UTVFA = (FUVFA + 1)
716+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
717+ case a: Int =>
718+ a
719+ case _ =>
720+ 0
721+ }
722+ let ATVO = (FTVO + 1)
723+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
724+ case a: Int =>
725+ a
726+ case _ =>
727+ 0
728+ }
729+ let WATV = (WFTV + 1)
730+ if ((100000000 > assetbal))
731+ then throw(minbalerror)
732+ else if ((pmt.assetId != A4A))
733+ then throw(asseterr)
734+ else if ((pmt.amount != 10000))
735+ then throw(minamterr)
736+ else if ((votingpausetime > lastBlock.timestamp))
737+ then throw(voteErr)
738+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
739+ }
740+
741+
742+
743+@Callable(i)
744+func BCH () = {
745+ let VoteAst = "BitcoinCash"
746+ let pmt = if ((size(i.payments) == 1))
747+ then i.payments[0]
748+ else throw(pymterror)
749+ let pubkey = toBase58String(i.caller.bytes)
750+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
751+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
752+ case a: Int =>
753+ a
754+ case _ =>
755+ 0
756+ }
757+ let UTWVO = (FUWV + 1)
758+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
759+ case a: Int =>
760+ a
761+ case _ =>
762+ 0
763+ }
764+ let UTWVFA = (UWVFA + 1)
765+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
766+ case a: Int =>
767+ a
768+ case _ =>
769+ 0
770+ }
771+ let UTVO = (FUVO + 1)
772+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
773+ case a: Int =>
774+ a
775+ case _ =>
776+ 0
777+ }
778+ let UTVFA = (FUVFA + 1)
779+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
780+ case a: Int =>
781+ a
782+ case _ =>
783+ 0
784+ }
785+ let ATVO = (FTVO + 1)
786+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
787+ case a: Int =>
788+ a
789+ case _ =>
790+ 0
791+ }
792+ let WATV = (WFTV + 1)
793+ if ((100000000 > assetbal))
794+ then throw(minbalerror)
795+ else if ((pmt.assetId != A4A))
796+ then throw(asseterr)
797+ else if ((pmt.amount != 10000))
798+ then throw(minamterr)
799+ else if ((votingpausetime > lastBlock.timestamp))
800+ then throw(voteErr)
801+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
546802 }
547803
548804
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let A4AAssetID = base58'8hdsVCxPBVEmVUZyyX8Sd98Z9hU7Fny26W96sjKiTw8g'
4+let A4A = base58'8hdsVCxPBVEmVUZyyX8Sd98Z9hU7Fny26W96sjKiTw8g'
55
66 let Week0TS = 1628368200000
77
88 let week = 604800000
99
1010 let pausetime = 14400000
1111
12-let currentrunningweek = (((lastBlock.timestamp - Week0TS) / week) + 1)
12+let currentweek = (((lastBlock.timestamp - Week0TS) / week) + 1)
1313
14-let TSUptoPastWeek = (Week0TS + ((currentrunningweek - 1) * week))
14+let strweek = toString(currentweek)
15+
16+let TSUptoPastWeek = (Week0TS + ((currentweek - 1) * week))
1517
1618 let votingpausetime = (TSUptoPastWeek + pausetime)
1719
18-let message = "<h1>You Voted Successfully!</h1><br>"
20+let msg = "<h1>You Voted Successfully!</h1><br>"
1921
20-let attachpymterror = "Weekly Vote Need 0.0001 A4A Token as Attached payment[1]."
22+let pymterror = "DApp Need 0.0001 A4A Token as Attach payment[1]."
2123
22-let minbalerror = "Minimum 1 A4A is required on Your Address to Vote. Please Mint or hold minimum 1 A4A on this Address."
24+let minbalerror = "Min. 1 A4A required on Your Address to Vote. Please Mint or hold min. 1 A4A on this Address."
2325
24-let asseterr = (("Incorrect asset attached, please attach " + toBase58String(A4AAssetID)) + " AssetID Only.")
26+let asseterr = (("Incorrect asset attach, please attach " + toBase58String(A4A)) + " AssetID Only.")
2527
2628 let minamterr = "Please Attach Exact 0.0001 A4A To Vote."
2729
28-let fetchtotaltxns = match getInteger(this, "Total_Txns") {
30+let voteErr = (("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes")
31+
32+let FTTX = match getInteger(this, "Total_Txns") {
2933 case a: Int =>
3034 a
3135 case _ =>
3236 0
3337 }
3438
35-let totaltxns = (fetchtotaltxns + 1)
39+let totaltxns = (FTTX + 1)
3640
37-let fetchtotaltxnsofweek = match getInteger(this, (toString(currentrunningweek) + "_Total_Txns")) {
41+let FTTXofweek = match getInteger(this, (strweek + "_Total_Txns")) {
3842 case a: Int =>
3943 a
4044 case _ =>
4145 0
4246 }
4347
44-let totaltxnsofweek = (fetchtotaltxnsofweek + 1)
48+let TTOW = (FTTXofweek + 1)
4549
4650 @Callable(i)
4751 func Chainlink () = {
48- let FavouriteAsset = "Chainlink"
52+ let VoteAst = "Chainlink"
4953 let pmt = if ((size(i.payments) == 1))
5054 then i.payments[0]
51- else throw(attachpymterror)
52- let currentKey = toBase58String(i.caller.bytes)
53- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
54- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
55+ else throw(pymterror)
56+ let pubkey = toBase58String(i.caller.bytes)
57+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
58+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
5559 case a: Int =>
5660 a
5761 case _ =>
5862 0
5963 }
60- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
61- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
64+ let UTWVO = (FUWV + 1)
65+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
6266 case a: Int =>
6367 a
6468 case _ =>
6569 0
6670 }
67- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
68- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
71+ let UTWVFA = (UWVFA + 1)
72+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
6973 case a: Int =>
7074 a
7175 case _ =>
7276 0
7377 }
74- let usertotalvotes = (fetchuservotes + 1)
75- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
78+ let UTVO = (FUVO + 1)
79+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
7680 case a: Int =>
7781 a
7882 case _ =>
7983 0
8084 }
81- let usertotalvotesforasset = (fetchuservotesforasset + 1)
82- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
85+ let UTVFA = (FUVFA + 1)
86+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
8387 case a: Int =>
8488 a
8589 case _ =>
8690 0
8791 }
88- let assettotalvotes = (fetchtotalvotes + 1)
89- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
92+ let ATVO = (FTVO + 1)
93+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
9094 case a: Int =>
9195 a
9296 case _ =>
9397 0
9498 }
95- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
96- if ((100000000 > checkassetbal))
99+ let WATV = (WFTV + 1)
100+ if ((100000000 > assetbal))
97101 then throw(minbalerror)
98- else if ((pmt.assetId != A4AAssetID))
102+ else if ((pmt.assetId != A4A))
99103 then throw(asseterr)
100104 else if ((pmt.amount != 10000))
101105 then throw(minamterr)
102106 else if ((votingpausetime > lastBlock.timestamp))
103- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
104- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
107+ then throw(voteErr)
108+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
105109 }
106110
107111
108112
109113 @Callable(i)
110114 func Dent () = {
111- let FavouriteAsset = "Dent"
115+ let VoteAst = "Dent"
112116 let pmt = if ((size(i.payments) == 1))
113117 then i.payments[0]
114- else throw(attachpymterror)
115- let currentKey = toBase58String(i.caller.bytes)
116- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
117- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
118+ else throw(pymterror)
119+ let pubkey = toBase58String(i.caller.bytes)
120+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
121+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
118122 case a: Int =>
119123 a
120124 case _ =>
121125 0
122126 }
123- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
124- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
127+ let UTWVO = (FUWV + 1)
128+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
125129 case a: Int =>
126130 a
127131 case _ =>
128132 0
129133 }
130- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
131- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
134+ let UTWVFA = (UWVFA + 1)
135+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
132136 case a: Int =>
133137 a
134138 case _ =>
135139 0
136140 }
137- let usertotalvotes = (fetchuservotes + 1)
138- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
141+ let UTVO = (FUVO + 1)
142+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
139143 case a: Int =>
140144 a
141145 case _ =>
142146 0
143147 }
144- let usertotalvotesforasset = (fetchuservotesforasset + 1)
145- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
148+ let UTVFA = (FUVFA + 1)
149+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
146150 case a: Int =>
147151 a
148152 case _ =>
149153 0
150154 }
151- let assettotalvotes = (fetchtotalvotes + 1)
152- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
155+ let ATVO = (FTVO + 1)
156+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
153157 case a: Int =>
154158 a
155159 case _ =>
156160 0
157161 }
158- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
159- if ((100000000 > checkassetbal))
162+ let WATV = (WFTV + 1)
163+ if ((100000000 > assetbal))
160164 then throw(minbalerror)
161- else if ((pmt.assetId != A4AAssetID))
165+ else if ((pmt.assetId != A4A))
162166 then throw(asseterr)
163167 else if ((pmt.amount != 10000))
164168 then throw(minamterr)
165169 else if ((votingpausetime > lastBlock.timestamp))
166- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
167- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
170+ then throw(voteErr)
171+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
168172 }
169173
170174
171175
172176 @Callable(i)
173177 func Sushi () = {
174- let FavouriteAsset = "Sushi"
178+ let VoteAst = "Sushi"
175179 let pmt = if ((size(i.payments) == 1))
176180 then i.payments[0]
177- else throw(attachpymterror)
178- let currentKey = toBase58String(i.caller.bytes)
179- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
180- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
181+ else throw(pymterror)
182+ let pubkey = toBase58String(i.caller.bytes)
183+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
184+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
181185 case a: Int =>
182186 a
183187 case _ =>
184188 0
185189 }
186- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
187- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
190+ let UTWVO = (FUWV + 1)
191+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
188192 case a: Int =>
189193 a
190194 case _ =>
191195 0
192196 }
193- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
194- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
197+ let UTWVFA = (UWVFA + 1)
198+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
195199 case a: Int =>
196200 a
197201 case _ =>
198202 0
199203 }
200- let usertotalvotes = (fetchuservotes + 1)
201- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
204+ let UTVO = (FUVO + 1)
205+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
202206 case a: Int =>
203207 a
204208 case _ =>
205209 0
206210 }
207- let usertotalvotesforasset = (fetchuservotesforasset + 1)
208- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
211+ let UTVFA = (FUVFA + 1)
212+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
209213 case a: Int =>
210214 a
211215 case _ =>
212216 0
213217 }
214- let assettotalvotes = (fetchtotalvotes + 1)
215- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
218+ let ATVO = (FTVO + 1)
219+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
216220 case a: Int =>
217221 a
218222 case _ =>
219223 0
220224 }
221- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
222- if ((100000000 > checkassetbal))
225+ let WATV = (WFTV + 1)
226+ if ((100000000 > assetbal))
223227 then throw(minbalerror)
224- else if ((pmt.assetId != A4AAssetID))
228+ else if ((pmt.assetId != A4A))
225229 then throw(asseterr)
226230 else if ((pmt.amount != 10000))
227231 then throw(minamterr)
228232 else if ((votingpausetime > lastBlock.timestamp))
229- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
230- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
233+ then throw(voteErr)
234+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
231235 }
232236
233237
234238
235239 @Callable(i)
236240 func Compound () = {
237- let FavouriteAsset = "Compound"
241+ let VoteAst = "Compound"
238242 let pmt = if ((size(i.payments) == 1))
239243 then i.payments[0]
240- else throw(attachpymterror)
241- let currentKey = toBase58String(i.caller.bytes)
242- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
243- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
244+ else throw(pymterror)
245+ let pubkey = toBase58String(i.caller.bytes)
246+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
247+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
244248 case a: Int =>
245249 a
246250 case _ =>
247251 0
248252 }
249- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
250- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
253+ let UTWVO = (FUWV + 1)
254+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
251255 case a: Int =>
252256 a
253257 case _ =>
254258 0
255259 }
256- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
257- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
260+ let UTWVFA = (UWVFA + 1)
261+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
258262 case a: Int =>
259263 a
260264 case _ =>
261265 0
262266 }
263- let usertotalvotes = (fetchuservotes + 1)
264- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
267+ let UTVO = (FUVO + 1)
268+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
265269 case a: Int =>
266270 a
267271 case _ =>
268272 0
269273 }
270- let usertotalvotesforasset = (fetchuservotesforasset + 1)
271- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
274+ let UTVFA = (FUVFA + 1)
275+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
272276 case a: Int =>
273277 a
274278 case _ =>
275279 0
276280 }
277- let assettotalvotes = (fetchtotalvotes + 1)
278- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
281+ let ATVO = (FTVO + 1)
282+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
279283 case a: Int =>
280284 a
281285 case _ =>
282286 0
283287 }
284- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
285- if ((100000000 > checkassetbal))
288+ let WATV = (WFTV + 1)
289+ if ((100000000 > assetbal))
286290 then throw(minbalerror)
287- else if ((pmt.assetId != A4AAssetID))
291+ else if ((pmt.assetId != A4A))
288292 then throw(asseterr)
289293 else if ((pmt.amount != 10000))
290294 then throw(minamterr)
291295 else if ((votingpausetime > lastBlock.timestamp))
292- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
293- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
296+ then throw(voteErr)
297+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
294298 }
295299
296300
297301
298302 @Callable(i)
299303 func Haven () = {
300- let FavouriteAsset = "Haven"
304+ let VoteAst = "Haven"
301305 let pmt = if ((size(i.payments) == 1))
302306 then i.payments[0]
303- else throw(attachpymterror)
304- let currentKey = toBase58String(i.caller.bytes)
305- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
306- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
307+ else throw(pymterror)
308+ let pubkey = toBase58String(i.caller.bytes)
309+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
310+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
307311 case a: Int =>
308312 a
309313 case _ =>
310314 0
311315 }
312- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
313- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
316+ let UTWVO = (FUWV + 1)
317+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
314318 case a: Int =>
315319 a
316320 case _ =>
317321 0
318322 }
319- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
320- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
323+ let UTWVFA = (UWVFA + 1)
324+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
321325 case a: Int =>
322326 a
323327 case _ =>
324328 0
325329 }
326- let usertotalvotes = (fetchuservotes + 1)
327- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
330+ let UTVO = (FUVO + 1)
331+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
328332 case a: Int =>
329333 a
330334 case _ =>
331335 0
332336 }
333- let usertotalvotesforasset = (fetchuservotesforasset + 1)
334- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
337+ let UTVFA = (FUVFA + 1)
338+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
335339 case a: Int =>
336340 a
337341 case _ =>
338342 0
339343 }
340- let assettotalvotes = (fetchtotalvotes + 1)
341- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
344+ let ATVO = (FTVO + 1)
345+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
342346 case a: Int =>
343347 a
344348 case _ =>
345349 0
346350 }
347- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
348- if ((100000000 > checkassetbal))
351+ let WATV = (WFTV + 1)
352+ if ((100000000 > assetbal))
349353 then throw(minbalerror)
350- else if ((pmt.assetId != A4AAssetID))
354+ else if ((pmt.assetId != A4A))
351355 then throw(asseterr)
352356 else if ((pmt.amount != 10000))
353357 then throw(minamterr)
354358 else if ((votingpausetime > lastBlock.timestamp))
355- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
356- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
359+ then throw(voteErr)
360+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
357361 }
358362
359363
360364
361365 @Callable(i)
362366 func PirateChain () = {
363- let FavouriteAsset = "PirateChain"
367+ let VoteAst = "PirateChain"
364368 let pmt = if ((size(i.payments) == 1))
365369 then i.payments[0]
366- else throw(attachpymterror)
367- let currentKey = toBase58String(i.caller.bytes)
368- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
369- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
370+ else throw(pymterror)
371+ let pubkey = toBase58String(i.caller.bytes)
372+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
373+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
370374 case a: Int =>
371375 a
372376 case _ =>
373377 0
374378 }
375- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
376- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
379+ let UTWVO = (FUWV + 1)
380+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
377381 case a: Int =>
378382 a
379383 case _ =>
380384 0
381385 }
382- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
383- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
386+ let UTWVFA = (UWVFA + 1)
387+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
384388 case a: Int =>
385389 a
386390 case _ =>
387391 0
388392 }
389- let usertotalvotes = (fetchuservotes + 1)
390- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
393+ let UTVO = (FUVO + 1)
394+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
391395 case a: Int =>
392396 a
393397 case _ =>
394398 0
395399 }
396- let usertotalvotesforasset = (fetchuservotesforasset + 1)
397- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
400+ let UTVFA = (FUVFA + 1)
401+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
398402 case a: Int =>
399403 a
400404 case _ =>
401405 0
402406 }
403- let assettotalvotes = (fetchtotalvotes + 1)
404- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
407+ let ATVO = (FTVO + 1)
408+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
405409 case a: Int =>
406410 a
407411 case _ =>
408412 0
409413 }
410- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
411- if ((100000000 > checkassetbal))
414+ let WATV = (WFTV + 1)
415+ if ((100000000 > assetbal))
412416 then throw(minbalerror)
413- else if ((pmt.assetId != A4AAssetID))
417+ else if ((pmt.assetId != A4A))
414418 then throw(asseterr)
415419 else if ((pmt.amount != 10000))
416420 then throw(minamterr)
417421 else if ((votingpausetime > lastBlock.timestamp))
418- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
419- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
422+ then throw(voteErr)
423+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
420424 }
421425
422426
423427
424428 @Callable(i)
425429 func Monero () = {
426- let FavouriteAsset = "Monero"
430+ let VoteAst = "Monero"
427431 let pmt = if ((size(i.payments) == 1))
428432 then i.payments[0]
429- else throw(attachpymterror)
430- let currentKey = toBase58String(i.caller.bytes)
431- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
432- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
433+ else throw(pymterror)
434+ let pubkey = toBase58String(i.caller.bytes)
435+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
436+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
433437 case a: Int =>
434438 a
435439 case _ =>
436440 0
437441 }
438- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
439- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
442+ let UTWVO = (FUWV + 1)
443+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
440444 case a: Int =>
441445 a
442446 case _ =>
443447 0
444448 }
445- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
446- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
449+ let UTWVFA = (UWVFA + 1)
450+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
447451 case a: Int =>
448452 a
449453 case _ =>
450454 0
451455 }
452- let usertotalvotes = (fetchuservotes + 1)
453- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
456+ let UTVO = (FUVO + 1)
457+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
454458 case a: Int =>
455459 a
456460 case _ =>
457461 0
458462 }
459- let usertotalvotesforasset = (fetchuservotesforasset + 1)
460- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
463+ let UTVFA = (FUVFA + 1)
464+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
461465 case a: Int =>
462466 a
463467 case _ =>
464468 0
465469 }
466- let assettotalvotes = (fetchtotalvotes + 1)
467- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
470+ let ATVO = (FTVO + 1)
471+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
468472 case a: Int =>
469473 a
470474 case _ =>
471475 0
472476 }
473- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
474- if ((100000000 > checkassetbal))
477+ let WATV = (WFTV + 1)
478+ if ((100000000 > assetbal))
475479 then throw(minbalerror)
476- else if ((pmt.assetId != A4AAssetID))
480+ else if ((pmt.assetId != A4A))
477481 then throw(asseterr)
478482 else if ((pmt.amount != 10000))
479483 then throw(minamterr)
480484 else if ((votingpausetime > lastBlock.timestamp))
481- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
482- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
485+ then throw(voteErr)
486+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
483487 }
484488
485489
486490
487491 @Callable(i)
488492 func PRCY () = {
489- let FavouriteAsset = "Privacy"
493+ let VoteAst = "Privacy"
490494 let pmt = if ((size(i.payments) == 1))
491495 then i.payments[0]
492- else throw(attachpymterror)
493- let currentKey = toBase58String(i.caller.bytes)
494- let checkassetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4AAssetID)
495- let fetchuserweeklyvotes = match getInteger(this, ((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey)) {
496+ else throw(pymterror)
497+ let pubkey = toBase58String(i.caller.bytes)
498+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
499+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
496500 case a: Int =>
497501 a
498502 case _ =>
499503 0
500504 }
501- let usertotalweeklyvotes = (fetchuserweeklyvotes + 1)
502- let fetchuserweeklyvotesforasset = match getInteger(this, ((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset)) {
505+ let UTWVO = (FUWV + 1)
506+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
503507 case a: Int =>
504508 a
505509 case _ =>
506510 0
507511 }
508- let usertotalweeklyvotesforasset = (fetchuserweeklyvotesforasset + 1)
509- let fetchuservotes = match getInteger(this, ("User_Total_Votes_" + currentKey)) {
512+ let UTWVFA = (UWVFA + 1)
513+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
510514 case a: Int =>
511515 a
512516 case _ =>
513517 0
514518 }
515- let usertotalvotes = (fetchuservotes + 1)
516- let fetchuservotesforasset = match getInteger(this, ((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset)) {
519+ let UTVO = (FUVO + 1)
520+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
517521 case a: Int =>
518522 a
519523 case _ =>
520524 0
521525 }
522- let usertotalvotesforasset = (fetchuservotesforasset + 1)
523- let fetchtotalvotes = match getInteger(this, ("Total_Votes_" + FavouriteAsset)) {
526+ let UTVFA = (FUVFA + 1)
527+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
524528 case a: Int =>
525529 a
526530 case _ =>
527531 0
528532 }
529- let assettotalvotes = (fetchtotalvotes + 1)
530- let weeklyfetchtotalvotes = match getInteger(this, ((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset)) {
533+ let ATVO = (FTVO + 1)
534+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
531535 case a: Int =>
532536 a
533537 case _ =>
534538 0
535539 }
536- let weeklyassettotalvotes = (weeklyfetchtotalvotes + 1)
537- if ((100000000 > checkassetbal))
540+ let WATV = (WFTV + 1)
541+ if ((100000000 > assetbal))
538542 then throw(minbalerror)
539- else if ((pmt.assetId != A4AAssetID))
543+ else if ((pmt.assetId != A4A))
540544 then throw(asseterr)
541545 else if ((pmt.amount != 10000))
542546 then throw(minamterr)
543547 else if ((votingpausetime > lastBlock.timestamp))
544- then throw((("Voting is paused for Next " + toString(((votingpausetime - lastBlock.timestamp) / 60000))) + " Minutes"))
545- else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((toString(currentrunningweek) + "_Total_Txns"), totaltxnsofweek), IntegerEntry("Current_Voting_Week", currentrunningweek), IntegerEntry(("Total_Votes_" + FavouriteAsset), assettotalvotes), IntegerEntry(((toString(currentrunningweek) + "_Total_Votes_") + FavouriteAsset), weeklyassettotalvotes), IntegerEntry(("User_Total_Votes_" + currentKey), usertotalvotes), IntegerEntry(((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey), usertotalweeklyvotes), IntegerEntry(((((toString(currentrunningweek) + "_User_Total_Votes_") + currentKey) + "-") + FavouriteAsset), usertotalweeklyvotesforasset), IntegerEntry(((("User_Total_Asset_Votes_" + currentKey) + "_") + FavouriteAsset), usertotalvotesforasset), StringEntry("message", message)]
548+ then throw(voteErr)
549+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
550+ }
551+
552+
553+
554+@Callable(i)
555+func BTC () = {
556+ let VoteAst = "Bitcoin"
557+ let pmt = if ((size(i.payments) == 1))
558+ then i.payments[0]
559+ else throw(pymterror)
560+ let pubkey = toBase58String(i.caller.bytes)
561+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
562+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
563+ case a: Int =>
564+ a
565+ case _ =>
566+ 0
567+ }
568+ let UTWVO = (FUWV + 1)
569+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
570+ case a: Int =>
571+ a
572+ case _ =>
573+ 0
574+ }
575+ let UTWVFA = (UWVFA + 1)
576+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
577+ case a: Int =>
578+ a
579+ case _ =>
580+ 0
581+ }
582+ let UTVO = (FUVO + 1)
583+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
584+ case a: Int =>
585+ a
586+ case _ =>
587+ 0
588+ }
589+ let UTVFA = (FUVFA + 1)
590+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
591+ case a: Int =>
592+ a
593+ case _ =>
594+ 0
595+ }
596+ let ATVO = (FTVO + 1)
597+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
598+ case a: Int =>
599+ a
600+ case _ =>
601+ 0
602+ }
603+ let WATV = (WFTV + 1)
604+ if ((100000000 > assetbal))
605+ then throw(minbalerror)
606+ else if ((pmt.assetId != A4A))
607+ then throw(asseterr)
608+ else if ((pmt.amount != 10000))
609+ then throw(minamterr)
610+ else if ((votingpausetime > lastBlock.timestamp))
611+ then throw(voteErr)
612+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
613+ }
614+
615+
616+
617+@Callable(i)
618+func LTC () = {
619+ let VoteAst = "Litecoin"
620+ let pmt = if ((size(i.payments) == 1))
621+ then i.payments[0]
622+ else throw(pymterror)
623+ let pubkey = toBase58String(i.caller.bytes)
624+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
625+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
626+ case a: Int =>
627+ a
628+ case _ =>
629+ 0
630+ }
631+ let UTWVO = (FUWV + 1)
632+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
633+ case a: Int =>
634+ a
635+ case _ =>
636+ 0
637+ }
638+ let UTWVFA = (UWVFA + 1)
639+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
640+ case a: Int =>
641+ a
642+ case _ =>
643+ 0
644+ }
645+ let UTVO = (FUVO + 1)
646+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
647+ case a: Int =>
648+ a
649+ case _ =>
650+ 0
651+ }
652+ let UTVFA = (FUVFA + 1)
653+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
654+ case a: Int =>
655+ a
656+ case _ =>
657+ 0
658+ }
659+ let ATVO = (FTVO + 1)
660+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
661+ case a: Int =>
662+ a
663+ case _ =>
664+ 0
665+ }
666+ let WATV = (WFTV + 1)
667+ if ((100000000 > assetbal))
668+ then throw(minbalerror)
669+ else if ((pmt.assetId != A4A))
670+ then throw(asseterr)
671+ else if ((pmt.amount != 10000))
672+ then throw(minamterr)
673+ else if ((votingpausetime > lastBlock.timestamp))
674+ then throw(voteErr)
675+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
676+ }
677+
678+
679+
680+@Callable(i)
681+func DASH () = {
682+ let VoteAst = "Dash"
683+ let pmt = if ((size(i.payments) == 1))
684+ then i.payments[0]
685+ else throw(pymterror)
686+ let pubkey = toBase58String(i.caller.bytes)
687+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
688+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
689+ case a: Int =>
690+ a
691+ case _ =>
692+ 0
693+ }
694+ let UTWVO = (FUWV + 1)
695+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
696+ case a: Int =>
697+ a
698+ case _ =>
699+ 0
700+ }
701+ let UTWVFA = (UWVFA + 1)
702+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
703+ case a: Int =>
704+ a
705+ case _ =>
706+ 0
707+ }
708+ let UTVO = (FUVO + 1)
709+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
710+ case a: Int =>
711+ a
712+ case _ =>
713+ 0
714+ }
715+ let UTVFA = (FUVFA + 1)
716+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
717+ case a: Int =>
718+ a
719+ case _ =>
720+ 0
721+ }
722+ let ATVO = (FTVO + 1)
723+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
724+ case a: Int =>
725+ a
726+ case _ =>
727+ 0
728+ }
729+ let WATV = (WFTV + 1)
730+ if ((100000000 > assetbal))
731+ then throw(minbalerror)
732+ else if ((pmt.assetId != A4A))
733+ then throw(asseterr)
734+ else if ((pmt.amount != 10000))
735+ then throw(minamterr)
736+ else if ((votingpausetime > lastBlock.timestamp))
737+ then throw(voteErr)
738+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
739+ }
740+
741+
742+
743+@Callable(i)
744+func BCH () = {
745+ let VoteAst = "BitcoinCash"
746+ let pmt = if ((size(i.payments) == 1))
747+ then i.payments[0]
748+ else throw(pymterror)
749+ let pubkey = toBase58String(i.caller.bytes)
750+ let assetbal = assetBalance(addressFromPublicKey(i.callerPublicKey), A4A)
751+ let FUWV = match getInteger(this, ((strweek + "_User_Total_Votes_") + pubkey)) {
752+ case a: Int =>
753+ a
754+ case _ =>
755+ 0
756+ }
757+ let UTWVO = (FUWV + 1)
758+ let UWVFA = match getInteger(this, ((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst)) {
759+ case a: Int =>
760+ a
761+ case _ =>
762+ 0
763+ }
764+ let UTWVFA = (UWVFA + 1)
765+ let FUVO = match getInteger(this, ("User_Total_Votes_" + pubkey)) {
766+ case a: Int =>
767+ a
768+ case _ =>
769+ 0
770+ }
771+ let UTVO = (FUVO + 1)
772+ let FUVFA = match getInteger(this, ((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst)) {
773+ case a: Int =>
774+ a
775+ case _ =>
776+ 0
777+ }
778+ let UTVFA = (FUVFA + 1)
779+ let FTVO = match getInteger(this, ("Total_Votes_" + VoteAst)) {
780+ case a: Int =>
781+ a
782+ case _ =>
783+ 0
784+ }
785+ let ATVO = (FTVO + 1)
786+ let WFTV = match getInteger(this, ((strweek + "_Total_Votes_") + VoteAst)) {
787+ case a: Int =>
788+ a
789+ case _ =>
790+ 0
791+ }
792+ let WATV = (WFTV + 1)
793+ if ((100000000 > assetbal))
794+ then throw(minbalerror)
795+ else if ((pmt.assetId != A4A))
796+ then throw(asseterr)
797+ else if ((pmt.amount != 10000))
798+ then throw(minamterr)
799+ else if ((votingpausetime > lastBlock.timestamp))
800+ then throw(voteErr)
801+ else [IntegerEntry("Total_Txns", totaltxns), IntegerEntry((strweek + "_Total_Txns"), TTOW), IntegerEntry("Current_Voting_Week", currentweek), IntegerEntry(("Total_Votes_" + VoteAst), ATVO), IntegerEntry(((strweek + "_Total_Votes_") + VoteAst), WATV), IntegerEntry(("User_Total_Votes_" + pubkey), UTVO), IntegerEntry(((strweek + "_User_Total_Votes_") + pubkey), UTWVO), IntegerEntry(((((strweek + "_User_Total_Votes_") + pubkey) + "-") + VoteAst), UTWVFA), IntegerEntry(((("User_Total_Asset_Votes_" + pubkey) + "_") + VoteAst), UTVFA), StringEntry("message", msg)]
546802 }
547803
548804
549805 @Verifier(tx)
550806 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
551807

github/deemru/w8io/873ac7e 
232.32 ms