tx · B19w4a1oHoLB6JZkfhoP45ELhQebDusMwBTQ1cafH7rQ

3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU:  -0.01400000 Waves

2021.07.15 16:30 [1614790] smart account 3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU > SELF 0.00000000 Waves

{ "type": 13, "id": "B19w4a1oHoLB6JZkfhoP45ELhQebDusMwBTQ1cafH7rQ", "fee": 1400000, "feeAssetId": null, "timestamp": 1626355856739, "version": 2, "chainId": 84, "sender": "3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU", "senderPublicKey": "AWADFmQjf2WbDSqb24S9YZpix3VEdiBdeiJ2J2sSfQ49", "proofs": [ "4GEVcTLxhqFc2bfbXngByMfgZEaQmowg1mJ4Eio9EWCCsLxfFSPbfacPWFnAgrhxhYzHvvHhgx8gnETAdAdacaGv", "2xBbVQcaaiNsYJzgaxfUKLLi9iTkFvKahrYR6QZCjzEvCE92jVr8SVd1V1uKJ9bKvjsSudu69YA4NnTwoZ31nbTN" ], "script": "base64:AAIFAAAAAAAAABsIAhIAEgASAwoBARIAEgASBgoEGBEBARIAEgAAAABTAAAAABRhZG1pblB1YktleVN0YXJ0U3RvcAEAAAAgBM915WTQwQ9OZ7kfE2TEGg3qhCRCMX0zkF1AWAqdk0oAAAAAEWFkbWluUHViS2V5V2FsbGV0AQAAACA+d1plWlbJ/ClXM7W8DUUtysyn+IWSDjd3WPNiFVIUEgAAAAAJa2V5QWN0aXZlAgAAAAZhY3RpdmUAAAAACGtleUNhdXNlAgAAAA5zaHV0ZG93bl9jYXVzZQAAAAAPa2V5TGFzdEludGVyZXN0AgAAAA1sYXN0X2ludGVyZXN0AAAAABNrZXlVc2VyTGFzdEludGVyZXN0AgAAAA5fbGFzdF9pbnRlcmVzdAAAAAARa2V5VXNlclNXT1BMb2NrZWQCAAAADF9TV09QX2Ftb3VudAAAAAAUa2V5VXNlckdldEJhY2tIZWlnaHQCAAAADl9nZXRCYWNrSGVpZ2h0AAAAABJrZXlUb3RhbFNXT1BMb2NrZWQCAAAAEXRvdGFsX1NXT1BfYW1vdW50AAAAABJrVXNlclRvdGFsVm90ZVNXT1ACAAAAFV91c2VyX3RvdGFsX1NXT1Bfdm90ZQAAAAAXa2V5VXNlclZvdGVPcHRpb25BbW91bnQCAAAAE19TV09QX29wdGlvbl9hbW91bnQAAAAAGGtleVRvdGFsVm90ZU9wdGlvbkFtb3VudAIAAAAYdG90YWxfU1dPUF9vcHRpb25fYW1vdW50AAAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQCAAAAFF9TV09QX2NsYWltZWRfYW1vdW50AAAAABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50AgAAABlfU1dPUF9sYXN0X2NsYWltZWRfYW1vdW50AAAAAAtrZXlWb3RlTmFtZQIAAAAJdm90ZV9uYW1lAAAAAA1rZXlPcHRpb25OYW1lAgAAAAxfb3B0aW9uX25hbWUAAAAAFGtleVZvdGluZ1N0YXJ0SGVpZ2h0AgAAAAxfc3RhcnRIZWlnaHQAAAAAD2tleVZvdGVEdXJhdGlvbgIAAAAOX3ZvdGVfZHVyYXRpb24AAAAAHGtleVJld2FyZFBvb2xGcmFjdGlvbkN1cnJlbnQCAAAAHV9jdXJyZW50X3Bvb2xfZnJhY3Rpb25fcmV3YXJkAAAAAB1rZXlSZXdhcmRQb29sRnJhY3Rpb25QcmV2aW91cwIAAAAeX3ByZXZpb3VzX3Bvb2xfZnJhY3Rpb25fcmV3YXJkAAAAABVrZXlIZWlnaHRQb29sRnJhY3Rpb24CAAAAGl9wb29sX3Jld2FyZF91cGRhdGVfaGVpZ2h0AAAAAB1rZXlUb3RhbFJld2FyZFBlckJsb2NrQ3VycmVudAIAAAAedG90YWxfcmV3YXJkX3Blcl9ibG9ja19jdXJyZW50AAAAAB5rZXlUb3RhbFJld2FyZFBlckJsb2NrUHJldmlvdXMCAAAAH3RvdGFsX3Jld2FyZF9wZXJfYmxvY2tfcHJldmlvdXMAAAAAFWtleVJld2FyZFVwZGF0ZUhlaWdodAIAAAAUcmV3YXJkX3VwZGF0ZV9oZWlnaHQAAAAAJGtleVJld2FyZFVwZGF0ZUZpcnN0UGFnaW5hdGlvbkhlaWdodAIAAAAlcmV3YXJkX3VwZGF0ZV9oZWlnaHRfZmlyc3RfcGFnaW5hdGlvbgAAAAAVa2V5Tm9Wb3RpbmdGb3JOZXdQb29sAgAAAAhfdm90ZV9ubwAAAAAWa2V5WWVzVm90aW5nRm9yTmV3UG9vbAIAAAAJX3ZvdGVfeWVzAAAAABtrZXlBbW91bnRPZlZvdGluZ0Zvck5ld1Bvb2wCAAAAEW1heF9hbW91bnRfdm90aW5nAAAAABtrZXlTdGF0dXNPZlZvdGluZ0Zvck5ld1Bvb2wCAAAAB19zdGF0dXMAAAAAH2tleUhlaWdodE9mUG9vbFZvdGluZ0Zvck5ld1Bvb2wCAAAADl9maW5pc2hfaGVpZ2h0AAAAAA9hY3RpdmVWb3RlRmlyc3QCAAAAFHZvdGluZ19hY3RpdmVfY2VsbF8xAAAAABBhY3RpdmVWb3RlU2Vjb25kAgAAABR2b3RpbmdfYWN0aXZlX2NlbGxfMgAAAAAPYWN0aXZlVm90ZVRoaXJkAgAAABR2b3RpbmdfYWN0aXZlX2NlbGxfMwAAAAANa2V5VGVtcEN1clN1bQIAAAASc3VtX3Jld2FyZF9jdXJyZW50AAAAAA9rZXlBZG1pblB1YktleTECAAAAC2FkbWluX3B1Yl8xAAAAAA9rZXlBZG1pblB1YktleTICAAAAC2FkbWluX3B1Yl8yAAAAAA9rZXlBZG1pblB1YktleTMCAAAAC2FkbWluX3B1Yl8zAAAAAA9vcmFjbGVBZG1pblBvb2wJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVTpRaoekC86rvG6DuYumpJfGpiE4fNiswgBAAAAC2dldEFkbWluUHViAAAAAQAAAAtrZXlBZG1pblB1YgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAA9vcmFjbGVBZG1pblBvb2wFAAAAC2tleUFkbWluUHViAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAABnN0cmluZwUAAAAHJG1hdGNoMAkAAlkAAAABBQAAAAZzdHJpbmcEAAAAB25vdGhpbmcFAAAAByRtYXRjaDAJAAACAAAAAQIAAAAZQWRtaW4gcHVibGljIGtleSBpcyBlbXB0eQAAAAAMYWRtaW5QdWJLZXkxCQEAAAALZ2V0QWRtaW5QdWIAAAABBQAAAA9rZXlBZG1pblB1YktleTEAAAAADGFkbWluUHViS2V5MgkBAAAAC2dldEFkbWluUHViAAAAAQUAAAAPa2V5QWRtaW5QdWJLZXkyAAAAAAxhZG1pblB1YktleTMJAQAAAAtnZXRBZG1pblB1YgAAAAEFAAAAD2tleUFkbWluUHViS2V5MwAAAAAIaXNBY3RpdmUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwUAAAAJa2V5QWN0aXZlBgAAAAASZmFybWluZ1NXT1BBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFULEuCdkaN7xkyPSmpBMwL+vYh0o63mS9mAAAAABJ2b3RpbmdMaXRlQ29udHJhY3QJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVQaNn7fV6KdJ2lc/r/3JtTn+6HDaD4gyn8AAAAAEHZvdGluZ0Zvck5ld1Bvb2wJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVR2IeF5Fctzd38/oGN0UKsjLFsZGIPzS4IAAAAACWtleVNXT1BpZAIAAAAHU1dPUF9pZAAAAAAEU1dPUAkAAlkAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAABJmYXJtaW5nU1dPUEFkZHJlc3MFAAAACWtleVNXT1BpZAAAAAAKc2NhbGVWYWx1ZQAAAAAABfXhAAAAAAAOdG90YWxWb3RlU2hhcmUAAAAAAlQL5AAAAAAADGtTdGFydEhlaWdodAIAAAAMc3RhcnRfaGVpZ2h0AAAAAAtrQmFzZVBlcmlvZAIAAAALYmFzZV9wZXJpb2QAAAAADWtQZXJpb2RMZW5ndGgCAAAADXBlcmlvZF9sZW5ndGgAAAAAD2tVc2VyVG90YWxTdHJ1YwIAAAARX3VzZXJfdG90YWxfc3RydWMAAAAACmJhc2VQZXJpb2QJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAABJ2b3RpbmdMaXRlQ29udHJhY3QFAAAAC2tCYXNlUGVyaW9kAgAAACRFbXB0eSBrQmFzZVBlcmlvZCBhdCB2b3RpbmcgY29udHJhY3QAAAAAC3N0YXJ0SGVpZ2h0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0BQAAAAxrU3RhcnRIZWlnaHQCAAAAJUVtcHR5IGtTdGFydEhlaWdodCBhdCB2b3RpbmcgY29udHJhY3QAAAAADHBlcmlvZExlbmd0aAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAUAAAANa1BlcmlvZExlbmd0aAIAAAAmRW1wdHkga1BlcmlvZExlbmd0aCBhdCB2b3RpbmcgY29udHJhY3QAAAAAD2ZpcnN0QWN0aXZlVm90ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAAA9hY3RpdmVWb3RlRmlyc3QCAAAAAAAAAAAQc2Vjb25kQWN0aXZlVm90ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAABBhY3RpdmVWb3RlU2Vjb25kAgAAAAAAAAAAD3RoaXJkQWN0aXZlVm90ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAAA9hY3RpdmVWb3RlVGhpcmQCAAAAAAAAAAAQY3VyclZvdGluZ1BlcmlvZAkAAGQAAAACBQAAAApiYXNlUGVyaW9kCQAAaQAAAAIJAABlAAAAAgUAAAAGaGVpZ2h0BQAAAAtzdGFydEhlaWdodAUAAAAMcGVyaW9kTGVuZ3RoAQAAAAdzdXNwZW5kAAAAAQAAAAVjYXVzZQkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAJa2V5QWN0aXZlBwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAhrZXlDYXVzZQUAAAAFY2F1c2UFAAAAA25pbAEAAAASdGhyb3dOb3RFbm91Z2hTV09QAAAAAAkAAAIAAAABAgAAAEZOb3QgZW5vdWdoIFNXT1A6IHVzZXJTV09QTG9ja2VkIC0gdXNlclRvdGFsVm90ZUFtb3VudCA8IHZvdGVTV09QQW1vdW50AQAAABNnZXRMYXN0SW50ZXJlc3RJbmZvAAAAAAQAAAAMbGFzdEludGVyZXN0CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAD2tleUxhc3RJbnRlcmVzdAAAAAAAAAAAAAUAAAAMbGFzdEludGVyZXN0AQAAABFnZXRVc2VyU1dPUExvY2tlZAAAAAEAAAAEdXNlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAARa2V5VXNlclNXT1BMb2NrZWQAAAAAAAAAAAABAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEAAAAEdXNlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50AAAAAAAAAAAAAQAAABZnZXRVc2VyVG90YWxWb3RlQW1vdW50AAAAAQAAAAR1c2VyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAEmtVc2VyVG90YWxWb3RlU1dPUAAAAAAAAAAAAAEAAAATZ2V0VXNlckludGVyZXN0SW5mbwAAAAIAAAAEdXNlcgAAAAxsYXN0SW50ZXJlc3QEAAAADnVzZXJTV09QQW1vdW50CQEAAAARZ2V0VXNlclNXT1BMb2NrZWQAAAABBQAAAAR1c2VyBAAAABB1c2VyTGFzdEludGVyZXN0CQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BAAAABV1c2VyTGFzdEludGVyZXN0VmFsdWUEAAAAByRtYXRjaDAFAAAAEHVzZXJMYXN0SW50ZXJlc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAQdXNlckxhc3RJbnRlcmVzdAUAAAAHJG1hdGNoMAUAAAAQdXNlckxhc3RJbnRlcmVzdAUAAAAMbGFzdEludGVyZXN0CQAFFAAAAAIFAAAAFXVzZXJMYXN0SW50ZXJlc3RWYWx1ZQUAAAAOdXNlclNXT1BBbW91bnQBAAAAIGdldFVzZXJUb3RhbFZvdGVBbW91bnRGb3JPbmVQb29sAAAAAgAAAARwb29sAAAABHVzZXIEAAAABnZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAAARwb29sAP//////////BAAAAA5oZWlnaHRPZlZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sCQABLAAAAAIJAAGkAAAAAQUAAAAGdm90aW5nBQAAAB9rZXlIZWlnaHRPZlBvb2xWb3RpbmdGb3JOZXdQb29sAAAAAAAAAAAABAAAAA5zdGF0dXNPZlZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sCQABLAAAAAIJAAGkAAAAAQUAAAAGdm90aW5nBQAAABtrZXlTdGF0dXNPZlZvdGluZ0Zvck5ld1Bvb2wGBAAAAA1jdXJyZW50SGVpZ2h0BQAAAAZoZWlnaHQDCQAAZgAAAAIAAAAAAAAAAAAFAAAABnZvdGluZwAAAAAAAAAAAAMJAQAAAAEhAAAAAQUAAAAOc3RhdHVzT2ZWb3RpbmcAAAAAAAAAAAADCQAAZgAAAAIFAAAADmhlaWdodE9mVm90aW5nBQAAAA1jdXJyZW50SGVpZ2h0CQAAZAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAQdm90aW5nRm9yTmV3UG9vbAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyAgAAAAFfCQABpAAAAAEFAAAABnZvdGluZwUAAAAWa2V5WWVzVm90aW5nRm9yTmV3UG9vbAAAAAAAAAAAAAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEFAAAABHVzZXICAAAAAV8JAAGkAAAAAQUAAAAGdm90aW5nBQAAABVrZXlOb1ZvdGluZ0Zvck5ld1Bvb2wAAAAAAAAAAAAAAAAAAAAAAAABAAAAIGdldFVzZXJUb3RhbFZvdGVGb3JOZXdQb29sQW1vdW50AAAAAQAAAAR1c2VyBAAAAAxsaXN0T2ZWb3RpbmcJAARMAAAAAgkBAAAAIGdldFVzZXJUb3RhbFZvdGVBbW91bnRGb3JPbmVQb29sAAAAAgUAAAAPZmlyc3RBY3RpdmVWb3RlBQAAAAR1c2VyCQAETAAAAAIJAQAAACBnZXRVc2VyVG90YWxWb3RlQW1vdW50Rm9yT25lUG9vbAAAAAIFAAAAEHNlY29uZEFjdGl2ZVZvdGUFAAAABHVzZXIJAARMAAAAAgkBAAAAIGdldFVzZXJUb3RhbFZvdGVBbW91bnRGb3JPbmVQb29sAAAAAgUAAAAPdGhpcmRBY3RpdmVWb3RlBQAAAAR1c2VyBQAAAANuaWwJAAGWAAAAAQUAAAAMbGlzdE9mVm90aW5nAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAACQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAEmtleVRvdGFsU1dPUExvY2tlZAAAAAAAAAAAAAEAAAAPZ2V0VXNlclZvdGVJbmZvAAAAAQAAAAR1c2VyBAAAAAskdDA2MzYwNjkxMQMJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAD2tVc2VyVG90YWxTdHJ1YwQAAAAEZGF0YQkABLUAAAACCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0CQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAAPa1VzZXJUb3RhbFN0cnVjAgAAABVFbXB0eSBrVXNlclRvdGFsU3RydWMCAAAAAV8JAAUVAAAAAwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAABGRhdGEAAAAAAAAAAAAJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAARkYXRhAAAAAAAAAAABCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAEZGF0YQAAAAAAAAAAAgQAAAAOdVBvb2xUb3RhbFNXT1AJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0CQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAASa1VzZXJUb3RhbFZvdGVTV09QAAAAAAAAAAAACQAFFQAAAAMFAAAADnVQb29sVG90YWxTV09QAAAAAAAAAAAABQAAABBjdXJyVm90aW5nUGVyaW9kBAAAABF1c2VyVG90YWxWb3RlU1dPUAgFAAAACyR0MDYzNjA2OTExAAAAAl8xBAAAAAt1c2VyVW52b3RlZAgFAAAACyR0MDYzNjA2OTExAAAAAl8yBAAAABF1c2VyVW52b3RlZFBlcmlvZAgFAAAACyR0MDYzNjA2OTExAAAAAl8zBAAAABF1c2VyVW52b3RlZEFjdHVhbAMJAAAAAAAAAgUAAAARdXNlclVudm90ZWRQZXJpb2QFAAAAEGN1cnJWb3RpbmdQZXJpb2QFAAAAC3VzZXJVbnZvdGVkAAAAAAAAAAAACQAFFAAAAAIFAAAAEXVzZXJUb3RhbFZvdGVTV09QBQAAABF1c2VyVW52b3RlZEFjdHVhbAEAAAAXZ2V0VXNlclZvdGVPcHRpb25BbW91bnQAAAABAAAABHVzZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAF2tleVVzZXJWb3RlT3B0aW9uQW1vdW50AAAAAAAAAAAAAQAAABRnZXRWb3RpbmdTdGFydEhlaWdodAAAAAEAAAAIdm90ZU5hbWUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAh2b3RlTmFtZQUAAAAUa2V5Vm90aW5nU3RhcnRIZWlnaHQAAAAAAAAAAAABAAAAE2dldFBvb2xVcGRhdGVIZWlnaHQAAAABAAAABHBvb2wJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sBQAAABVrZXlIZWlnaHRQb29sRnJhY3Rpb24AAAAAAAAAAAABAAAAGGlzRGVmaW5lUG9vbFVwZGF0ZUhlaWdodAAAAAEAAAAEcG9vbAkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sBQAAABVrZXlIZWlnaHRQb29sRnJhY3Rpb24BAAAAEGdldEN1clBvb2xXZWlnaHQAAAABAAAABHBvb2wJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sBQAAABxrZXlSZXdhcmRQb29sRnJhY3Rpb25DdXJyZW50AAAAAAAAAAAAAQAAABFnZXRQcmV2UG9vbFdlaWdodAAAAAEAAAAEcG9vbAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAABHBvb2wFAAAAHWtleVJld2FyZFBvb2xGcmFjdGlvblByZXZpb3VzAAAAAAAAAAAAAQAAABNnZXRWb3RlT3B0aW9uQW1vdW50AAAAAwAAAAR1c2VyAAAACHZvdGVOYW1lAAAABm9wdGlvbgQAAAAUdXNlclZvdGVPcHRpb25BbW91bnQJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAIdm90ZU5hbWUFAAAABm9wdGlvbgkABCUAAAABBQAAAAR1c2VyBQAAABdrZXlVc2VyVm90ZU9wdGlvbkFtb3VudAQAAAAEdXZvYQQAAAAHJG1hdGNo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CQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAADSR0MDEwNDQ4MTA1MzAJAQAAABNnZXRVc2VySW50ZXJlc3RJbmZvAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAxsYXN0SW50ZXJlc3QEAAAAEHVzZXJMYXN0SW50ZXJlc3QIBQAAAA0kdDAxMDQ0ODEwNTMwAAAAAl8xBAAAAA51c2VyU1dPUExvY2tlZAgFAAAADSR0MDEwNDQ4MTA1MzAAAAACXzIEAAAAC2NsYWltQW1vdW50CQABoAAAAAEJAAE8AAAAAwkAATYAAAABBQAAAA51c2VyU1dPUExvY2tlZAkAATYAAAABCQAAZQAAAAIFAAAADGxhc3RJbnRlcmVzdAUAAAAQdXNlckxhc3RJbnRlcmVzdAkAATYAAAABBQAAAApzY2FsZVZhbHVlBAAAABF1c2VyU1dPUExvY2tlZE5ldwkAAGQAAAACCQAAZAAAAAIFAAAADnVzZXJTV09QTG9ja2VkBQAAAAlwbXRBbW91bnQFAAAAC2NsYWltQW1vdW50BAAAAA91c2VyTmV3SW50ZXJlc3QFAAAADGxhc3RJbnRlcmVzdAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAASdG90YWxTV09QTG9ja2VkTmV3CQAAZAAAAAIJAABkAAAAAgUAAAAPdG90YWxTV09QTG9ja2VkBQAAAAlwbXRBbW91bnQFAAAAC2NsYWltQW1vdW50BAAAABF1c2VyQ2xhaW1lZEFtb3VudAkBAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAABkAAAAAgUAAAARdXNlckNsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BQAAAA91c2VyTmV3SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAEWtleVVzZXJTV09QTG9ja2VkBQAAABF1c2VyU1dPUExvY2tlZE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5VG90YWxTV09QTG9ja2VkBQAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAGGtleVVzZXJTV09QQ2xhaW1lZEFtb3VudAUAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAHGtleVVzZXJTV09QTGFzdENsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50BQAAAANuaWwAAAABaQEAAAAMd2l0aGRyYXdTV09QAAAAAQAAAA53aXRoZHJhd0Ftb3VudAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAMJAABnAAAAAgAAAAAAAAAAAAUAAAAOd2l0aGRyYXdBbW91bnQJAAACAAAAAQIAAAATd2l0aGRyYXdBbW91bnQgPD0gMAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAAOdXNlclNXT1BMb2NrZWQJAQAAABFnZXRVc2VyU1dPUExvY2tlZAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAANJHQwMTE3MjMxMTc3OAkBAAAACWNsYWltQ2FsYwAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAPdXNlck5ld0ludGVyZXN0CAUAAAANJHQwMTE3MjMxMTc3OAAAAAJfMQQAAAALY2xhaW1BbW91bnQIBQAAAA0kdDAxMTcyMzExNzc4AAAAAl8yBAAAAA0kdDAxMTc4MzExODQ4CQEAAAAPZ2V0VXNlclZvdGVJbmZvAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA51c2VyVm90ZUFtb3VudAgFAAAADSR0MDExNzgzMTE4NDgAAAACXzEEAAAAEHVzZXJVbnZvdGVBbW91bnQIBQAAAA0kdDAxMTc4MzExODQ4AAAAAl8yBAAAABh1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wJAQAAACBnZXRVc2VyVG90YWxWb3RlRm9yTmV3UG9vbEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgMDAwkAAGYAAAACAAAAAAAAAAAABQAAABB1c2VyVW52b3RlQW1vdW50BgkAAGYAAAACAAAAAAAAAAAABQAAAA51c2VyVm90ZUFtb3VudAYJAABmAAAAAgAAAAAAAAAAAAUAAAAYdXNlclZvdGVBbW91bnRGb3JOZXdQb29sCQAAAgAAAAECAAAASnVzZXJVbnZvdGVBbW91bnQgPCAwIHx8IHVzZXJWb3RlQW1vdW50IDwgMCB8fCB1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wgPCAwBAAAABJhdmFpbGFibGVUb1Vuc3Rha2UJAABlAAAAAgUAAAAOdXNlclNXT1BMb2NrZWQJAAGWAAAAAQkABEwAAAACBQAAABh1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wJAARMAAAAAgkAAGQAAAACBQAAAA51c2VyVm90ZUFtb3VudAUAAAAQdXNlclVudm90ZUFtb3VudAUAAAADbmlsAwkAAGYAAAACBQAAAA53aXRoZHJhd0Ftb3VudAUAAAASYXZhaWxhYmxlVG9VbnN0YWtlCQAAAgAAAAECAAAAI3dpdGhkcmF3QW1vdW50ID4gYXZhaWxhYmxlVG9VbnN0YWtlBAAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAABlAAAAAgkAAGQAAAACBQAAAA90b3RhbFNXT1BMb2NrZWQFAAAAC2NsYWltQW1vdW50BQAAAA53aXRoZHJhd0Ftb3VudAQAAAARdXNlclNXT1BhbW91bnROZXcJAABlAAAAAgkAAGQAAAACBQAAAA51c2VyU1dPUExvY2tlZAUAAAALY2xhaW1BbW91bnQFAAAADndpdGhkcmF3QW1vdW50BAAAABF1c2VyQ2xhaW1lZEFtb3VudAkBAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAABkAAAAAgUAAAARdXNlckNsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BQAAAA91c2VyTmV3SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAEWtleVVzZXJTV09QTG9ja2VkBQAAABF1c2VyU1dPUGFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5VG90YWxTV09QTG9ja2VkBQAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAA53aXRoZHJhd0Ftb3VudAUAAAAEU1dPUAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50BQAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQFAAAAA25pbAAAAAFpAQAAABRjbGFpbUFuZFdpdGhkcmF3U1dPUAAAAAADCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQEAAAADGxhc3RJbnRlcmVzdAkBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAA0kdDAxMzIyMzEzMjc4CQEAAAAJY2xhaW1DYWxjAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA91c2VyTmV3SW50ZXJlc3QIBQAAAA0kdDAxMzIyMzEzMjc4AAAAAl8xBAAAAAtjbGFpbUFtb3VudAgFAAAADSR0MDEzMjIzMTMyNzgAAAACXzIEAAAAEXVzZXJDbGFpbWVkQW1vdW50CQEAAAAYZ2V0VXNlclNXT1BDbGFpbWVkQW1vdW50AAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkAAGQAAAACBQAAABF1c2VyQ2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQDCQAAAAAAAAIFAAAAC2NsYWltQW1vdW50AAAAAAAAAAAACQAAAgAAAAECAAAAGVlvdSBoYXZlIDAgYXZhaWxhYmxlIFNXT1AJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QFAAAAD3VzZXJOZXdJbnRlcmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50BQAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAtjbGFpbUFtb3VudAUAAAAEU1dPUAUAAAADbmlsAAAAAWkBAAAAEWNsYWltQW5kU3Rha2VTV09QAAAAAAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAAOdXNlclNXT1BMb2NrZWQJAQAAABFnZXRVc2VyU1dPUExvY2tlZAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAMbGFzdEludGVyZXN0CQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAADSR0MDE0MDU3MTQxMTIJAQAAAAljbGFpbUNhbGMAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAD3VzZXJOZXdJbnRlcmVzdAgFAAAADSR0MDE0MDU3MTQxMTIAAAACXzEEAAAAC2NsYWltQW1vdW50CAUAAAANJHQwMTQwNTcxNDExMgAAAAJfMgQAAAARdXNlclNXT1BMb2NrZWROZXcJAABkAAAAAgUAAAAOdXNlclNXT1BMb2NrZWQFAAAAC2NsYWltQW1vdW50BAAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAABkAAAAAgUAAAAPdG90YWxTV09QTG9ja2VkBQAAAAtjbGFpbUFtb3VudAQAAAARdXNlckNsYWltZWRBbW91bnQJAQAAABhnZXRVc2VyU1dPUENsYWltZWRBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAAZAAAAAIFAAAAEXVzZXJDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAMJAAAAAAAAAgUAAAALY2xhaW1BbW91bnQAAAAAAAAAAAAJAAACAAAAAQIAAAAZWW91IGhhdmUgMCBhdmFpbGFibGUgU1dPUAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAATa2V5VXNlckxhc3RJbnRlcmVzdAUAAAAPdXNlck5ld0ludGVyZXN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJrZXlUb3RhbFNXT1BMb2NrZWQFAAAAEnRvdGFsU1dPUExvY2tlZE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAARa2V5VXNlclNXT1BMb2NrZWQFAAAAEXVzZXJTV09QTG9ja2VkTmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQFAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAUAAAADbmlsAAAAAWkBAAAADXVwZGF0ZVdlaWdodHMAAAAEAAAADGN1cnJlbnRQb29scwAAAA5jdXJyZW50UmV3YXJkcwAAABJyZXdhcmRVcGRhdGVIZWlnaHQAAAAKcGFnaW5hdGlvbgMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAQAAAALYW1vdW50UG9vbHMAAAAAAAAAAAoEAAAAF3RvdGFsUmV3YXJkVXBkYXRlSGVpZ2h0CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAFWtleVJld2FyZFVwZGF0ZUhlaWdodAAAAAAAAAAAAAMJAQAAAAEhAAAAAQkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkxCQAETAAAAAIFAAAADGFkbWluUHViS2V5MgkABEwAAAACBQAAAAxhZG1pblB1YktleTMJAARMAAAAAgUAAAAUYWRtaW5QdWJLZXlTdGFydFN0b3AJAARMAAAAAgUAAAARYWRtaW5QdWJLZXlXYWxsZXQFAAAAA25pbAgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAAAgAAAAECAAAAIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgMJAABmAAAAAgkAAZAAAAABBQAAAAxjdXJyZW50UG9vbHMFAAAAC2Ftb3VudFBvb2xzCQAAAgAAAAEJAAEsAAAAAgIAAAAWTWF4IGFtb3VudCBvZiBwb29sIGlzIAkAAaQAAAABBQAAAAthbW91bnRQb29scwMJAABnAAAAAgUAAAAXdG90YWxSZXdhcmRVcGRhdGVIZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAkAAAIAAAABAgAAAC1yZXdhcmRVcGRhdGVIZWlnaHQgPD0gdG90YWxSZXdhcmRVcGRhdGVIZWlnaHQDCQAAZwAAAAIFAAAABmhlaWdodAUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0CQAAAgAAAAECAAAAHGhlaWdodCA+PSByZXdhcmRVcGRhdGVIZWlnaHQDCQAAZwAAAAIAAAAAAAAAAAAFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAkAAAIAAAABAgAAABgwID49IHJld2FyZFVwZGF0ZUhlaWdodCAKAQAAAANzdW0AAAACAAAAAWEAAAABYgkAAGQAAAACBQAAAAFhBQAAAAFiCgEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIAAAALYWNjdW11bGF0ZWQAAAAEcG9vbAQAAAAWcG9vbFJld2FyZFVwZGF0ZUhlaWdodAkBAAAAE2dldFBvb2xVcGRhdGVIZWlnaHQAAAABBQAAAARwb29sAwMJAQAAAAEhAAAAAQkBAAAAGGlzRGVmaW5lUG9vbFVwZGF0ZUhlaWdodAAAAAEFAAAABHBvb2wGAwkBAAAAAiE9AAAAAgUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0BQAAABZwb29sUmV3YXJkVXBkYXRlSGVpZ2h0CQAAAAAAAAIFAAAAFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQFAAAAF3RvdGFsUmV3YXJkVXBkYXRlSGVpZ2h0BwQAAAAKcG9vbFJld2FyZAkBAAAAEGdldEN1clBvb2xXZWlnaHQAAAABBQAAAARwb29sCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wFAAAAHWtleVJld2FyZFBvb2xGcmFjdGlvblByZXZpb3VzBQAAAApwb29sUmV3YXJkBQAAAAthY2N1bXVsYXRlZAQAAAAKcG9vbFJld2FyZAkBAAAAEWdldFByZXZQb29sV2VpZ2h0AAAAAQUAAAAEcG9vbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sBQAAAB1rZXlSZXdhcmRQb29sRnJhY3Rpb25QcmV2aW91cwUAAAAKcG9vbFJld2FyZAUAAAALYWNjdW11bGF0ZWQKAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACAAAAC2FjY3VtdWxhdGVkAAAABHBvb2wEAAAACXBvb2xJbmRleAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAxjdXJyZW50UG9vbHMFAAAABHBvb2wEAAAACnBvb2xSZXdhcmQJAAGRAAAAAgUAAAAOY3VycmVudFJld2FyZHMFAAAACXBvb2xJbmRleAMJAABmAAAAAgAAAAAAAAAAAAUAAAAKcG9vbFJld2FyZAkAAAIAAAABAgAAAA5Qb29sUmV3YXJkIDwgMAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sBQAAABxrZXlSZXdhcmRQb29sRnJhY3Rpb25DdXJyZW50BQAAAApwb29sUmV3YXJkBQAAAAthY2N1bXVsYXRlZAoBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgAAAAthY2N1bXVsYXRlZAAAAARwb29sBAAAAApwb29sSGVpZ2h0BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAEcG9vbAUAAAAVa2V5SGVpZ2h0UG9vbEZyYWN0aW9uBQAAAApwb29sSGVpZ2h0BQAAAAthY2N1bXVsYXRlZAoBAAAADGdldFN1bVJld2FyZAAAAAIAAAAKY3VyVGVtcFN1bQAAAApwYWdpbmF0aW9uAwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAAAAwkAAGYAAAACBQAAAApjdXJUZW1wU3VtBQAAAA50b3RhbFZvdGVTaGFyZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAEpzdW1SZXdhcmRQcmV2aW91cyA+IHRvdGFsVm90ZVNoYXJlIG9yIHN1bVJld2FyZEN1cnJlbnQgPiB0b3RhbFZvdGVTaGFyZSAtIAkAAaQAAAABBQAAAApwYWdpbmF0aW9uAgAAAAEgCQABpAAAAAEFAAAACmN1clRlbXBTdW0JAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5VGVtcEN1clN1bQUAAAAKY3VyVGVtcFN1bQUAAAADbmlsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAACRrZXlSZXdhcmRVcGRhdGVGaXJzdFBhZ2luYXRpb25IZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAUAAAADbmlsAwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAABBAAAABFjdXJUZW1wU3VtRnJvbUtleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA1rZXlUZW1wQ3VyU3VtAAAAAAAAAAAABAAAACZyZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAACRrZXlSZXdhcmRVcGRhdGVGaXJzdFBhZ2luYXRpb25IZWlnaHQAAAAAAAAAAAADCQAAZgAAAAIJAABkAAAAAgUAAAAKY3VyVGVtcFN1bQUAAAARY3VyVGVtcFN1bUZyb21LZXkFAAAADnRvdGFsVm90ZVNoYXJlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAASnN1bVJld2FyZFByZXZpb3VzID4gdG90YWxWb3RlU2hhcmUgb3Igc3VtUmV3YXJkQ3VycmVudCA+IHRvdGFsVm90ZVNoYXJlIC0gCQABpAAAAAEFAAAACnBhZ2luYXRpb24CAAAAASAJAAGkAAAAAQkAAGQAAAACBQAAAApjdXJUZW1wU3VtBQAAABFjdXJUZW1wU3VtRnJvbUtleQMJAQAAAAIhPQAAAAIFAAAAJnJld2FyZFVwZGF0ZUhlaWdodEZpcnN0UGFnaW5hdGlvbkVudHJ5BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQJAAACAAAAAQIAAABEY3VycmVudCByZXdhcmRVcGRhdGVIZWlnaHQgIT0gcmV3YXJkVXBkYXRlSGVpZ2h0Rmlyc3RQYWdpbmF0aW9uRW50cnkJAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5VGVtcEN1clN1bQkAAGQAAAACBQAAAApjdXJUZW1wU3VtBQAAABFjdXJUZW1wU3VtRnJvbUtleQUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAACnBhZ2luYXRpb24AAAAAAAAAAAIEAAAABmN1clN1bQkAAGQAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAADWtleVRlbXBDdXJTdW0AAAAAAAAAAAAFAAAACmN1clRlbXBTdW0EAAAAJnJld2FyZFVwZGF0ZUhlaWdodEZpcnN0UGFnaW5hdGlvbkVudHJ5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAJGtleVJld2FyZFVwZGF0ZUZpcnN0UGFnaW5hdGlvbkhlaWdodAAAAAAAAAAAAAMJAQAAAAIhPQAAAAIFAAAABmN1clN1bQUAAAAOdG90YWxWb3RlU2hhcmUJAAACAAAAAQIAAABJc3VtUmV3YXJkUHJldmlvdXMgIT0gdG90YWxWb3RlU2hhcmUgb3Igc3VtUmV3YXJkQ3VycmVudCAhPSB0b3RhbFZvdGVTaGFyZQMJAQAAAAIhPQAAAAIFAAAAJnJld2FyZFVwZGF0ZUhlaWdodEZpcnN0UGFnaW5hdGlvbkVudHJ5BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQJAAACAAAAAQIAAABEY3VycmVudCByZXdhcmRVcGRhdGVIZWlnaHQgIT0gcmV3YXJkVXBkYXRlSGVpZ2h0Rmlyc3RQYWdpbmF0aW9uRW50cnkJAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5VGVtcEN1clN1bQUAAAAGY3VyU3VtBQAAAANuaWwFAAAAA25pbAkAAAIAAAABAgAAABRJbmNvcnJlY3QgcGFnaW5hdGlvbgQAAAAWcHJldmlvdXNSZXdhcmRFbnRyeU5ldwQAAAAPJGxpc3QxODk3MzE5MDI1BQAAAAxjdXJyZW50UG9vbHMEAAAADyRzaXplMTg5NzMxOTAyNQkAAZAAAAABBQAAAA8kbGlzdDE4OTczMTkwMjUEAAAADyRhY2MwMTg5NzMxOTAyNQUAAAADbmlsAwkAAAAAAAACBQAAAA8kc2l6ZTE4OTczMTkwMjUAAAAAAAAAAAAFAAAADyRhY2MwMTg5NzMxOTAyNQQAAAAPJGFjYzExODk3MzE5MDI1CQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MwMTg5NzMxOTAyNQkAAZEAAAACBQAAAA8kbGlzdDE4OTczMTkwMjUAAAAAAAAAAAADCQAAAAAAAAIFAAAADyRzaXplMTg5NzMxOTAyNQAAAAAAAAAAAQUAAAAPJGFjYzExODk3MzE5MDI1BAAAAA8kYWNjMjE4OTczMTkwMjUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzExODk3MzE5MDI1CQABkQAAAAIFAAAADyRsaXN0MTg5NzMxOTAyNQAAAAAAAAAAAQMJAAAAAAAAAgUAAAAPJHNpemUxODk3MzE5MDI1AAAAAAAAAAACBQAAAA8kYWNjMjE4OTczMTkwMjUEAAAADyRhY2MzMTg5NzMxOTAyNQkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMjE4OTczMTkwMjUJAAGRAAAAAgUAAAAPJGxpc3QxODk3MzE5MDI1AAAAAAAAAAACAwkAAAAAAAACBQAAAA8kc2l6ZTE4OTczMTkwMjUAAAAAAAAAAAMFAAAADyRhY2MzMTg5NzMxOTAyNQQAAAAPJGFjYzQxODk3MzE5MDI1CQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MzMTg5NzMxOTAyNQkAAZEAAAACBQAAAA8kbGlzdDE4OTczMTkwMjUAAAAAAAAAAAMDCQAAAAAAAAIFAAAADyRzaXplMTg5NzMxOTAyNQAAAAAAAAAABAUAAAAPJGFjYzQxODk3MzE5MDI1BAAAAA8kYWNjNTE4OTczMTkwMjUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzQxODk3MzE5MDI1CQABkQAAAAIFAAAADyRsaXN0MTg5NzMxOTAyNQAAAAAAAAAABAMJAAAAAAAAAgUAAAAPJHNpemUxODk3MzE5MDI1AAAAAAAAAAAFBQAAAA8kYWNjNTE4OTczMTkwMjUEAAAADyRhY2M2MTg5NzMxOTAyNQkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjNTE4OTczMTkwMjUJAAGRAAAAAgUAAAAPJGxpc3QxODk3MzE5MDI1AAAAAAAAAAAFAwkAAAAAAAACBQAAAA8kc2l6ZTE4OTczMTkwMjUAAAAAAAAAAAYFAAAADyRhY2M2MTg5NzMxOTAyNQQAAAAPJGFjYzcxODk3MzE5MDI1CQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M2MTg5NzMxOTAyNQkAAZEAAAACBQAAAA8kbGlzdDE4OTczMTkwMjUAAAAAAAAAAAYDCQAAAAAAAAIFAAAADyRzaXplMTg5NzMxOTAyNQAAAAAAAAAABwUAAAAPJGFjYzcxODk3MzE5MDI1BAAAAA8kYWNjODE4OTczMTkwMjUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzcxODk3MzE5MDI1CQABkQAAAAIFAAAADyRsaXN0MTg5NzMxOTAyNQAAAAAAAAAABwMJAAAAAAAAAgUAAAAPJHNpemUxODk3MzE5MDI1AAAAAAAAAAAIBQAAAA8kYWNjODE4OTczMTkwMjUEAAAADyRhY2M5MTg5NzMxOTAyNQkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjODE4OTczMTkwMjUJAAGRAAAAAgUAAAAPJGxpc3QxODk3MzE5MDI1AAAAAAAAAAAIAwkAAAAAAAACBQAAAA8kc2l6ZTE4OTczMTkwMjUAAAAAAAAAAAkFAAAADyRhY2M5MTg5NzMxOTAyNQQAAAAQJGFjYzEwMTg5NzMxOTAyNQkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjOTE4OTczMTkwMjUJAAGRAAAAAgUAAAAPJGxpc3QxODk3MzE5MDI1AAAAAAAAAAAJAwkAAAAAAAACBQAAAA8kc2l6ZTE4OTczMTkwMjUAAAAAAAAAAAoFAAAAECRhY2MxMDE4OTczMTkwMjUEAAAAECRhY2MxMTE4OTczMTkwMjUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAQJGFjYzEwMTg5NzMxOTAyNQkAAZEAAAACBQAAAA8kbGlzdDE4OTczMTkwMjUAAAAAAAAAAAoJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZCAxMAQAAAAVY3VycmVudFJld2FyZEVudHJ5TmV3BAAAAA8kbGlzdDE5MDU4MTkxMTAFAAAADGN1cnJlbnRQb29scwQAAAAPJHNpemUxOTA1ODE5MTEwCQABkAAAAAEFAAAADyRsaXN0MTkwNTgxOTExMAQAAAAPJGFjYzAxOTA1ODE5MTEwBQAAAANuaWwDCQAAAAAAAAIFAAAADyRzaXplMTkwNTgxOTExMAAAAAAAAAAAAAUAAAAPJGFjYzAxOTA1ODE5MTEwBAAAAA8kYWNjMTE5MDU4MTkxMTAJAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMDE5MDU4MTkxMTAJAAGRAAAAAgUAAAAPJGxpc3QxOTA1ODE5MTEwAAAAAAAAAAAAAwkAAAAAAAACBQAAAA8kc2l6ZTE5MDU4MTkxMTAAAAAAAAAAAAEFAAAADyRhY2MxMTkwNTgxOTExMAQAAAAPJGFjYzIxOTA1ODE5MTEwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzExOTA1ODE5MTEwCQABkQAAAAIFAAAADyRsaXN0MTkwNTgxOTExMAAAAAAAAAAAAQMJAAAAAAAAAgUAAAAPJHNpemUxOTA1ODE5MTEwAAAAAAAAAAACBQAAAA8kYWNjMjE5MDU4MTkxMTAEAAAADyRhY2MzMTkwNTgxOTExMAkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MyMTkwNTgxOTExMAkAAZEAAAACBQAAAA8kbGlzdDE5MDU4MTkxMTAAAAAAAAAAAAIDCQAAAAAAAAIFAAAADyRzaXplMTkwNTgxOTExMAAAAAAAAAAAAwUAAAAPJGFjYzMxOTA1ODE5MTEwBAAAAA8kYWNjNDE5MDU4MTkxMTAJAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMzE5MDU4MTkxMTAJAAGRAAAAAgUAAAAPJGxpc3QxOTA1ODE5MTEwAAAAAAAAAAADAwkAAAAAAAACBQAAAA8kc2l6ZTE5MDU4MTkxMTAAAAAAAAAAAAQFAAAADyRhY2M0MTkwNTgxOTExMAQAAAAPJGFjYzUxOTA1ODE5MTEwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzQxOTA1ODE5MTEwCQABkQAAAAIFAAAADyRsaXN0MTkwNTgxOTExMAAAAAAAAAAABAMJAAAAAAAAAgUAAAAPJHNpemUxOTA1ODE5MTEwAAAAAAAAAAAFBQAAAA8kYWNjNTE5MDU4MTkxMTAEAAAADyRhY2M2MTkwNTgxOTExMAkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M1MTkwNTgxOTExMAkAAZEAAAACBQAAAA8kbGlzdDE5MDU4MTkxMTAAAAAAAAAAAAUDCQAAAAAAAAIFAAAADyRzaXplMTkwNTgxOTExMAAAAAAAAAAABgUAAAAPJGFjYzYxOTA1ODE5MTEwBAAAAA8kYWNjNzE5MDU4MTkxMTAJAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjNjE5MDU4MTkxMTAJAAGRAAAAAgUAAAAPJGxpc3QxOTA1ODE5MTEwAAAAAAAAAAAGAwkAAAAAAAACBQAAAA8kc2l6ZTE5MDU4MTkxMTAAAAAAAAAAAAcFAAAADyRhY2M3MTkwNTgxOTExMAQAAAAPJGFjYzgxOTA1ODE5MTEwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzcxOTA1ODE5MTEwCQABkQAAAAIFAAAADyRsaXN0MTkwNTgxOTExMAAAAAAAAAAABwMJAAAAAAAAAgUAAAAPJHNpemUxOTA1ODE5MTEwAAAAAAAAAAAIBQAAAA8kYWNjODE5MDU4MTkxMTAEAAAADyRhY2M5MTkwNTgxOTExMAkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M4MTkwNTgxOTExMAkAAZEAAAACBQAAAA8kbGlzdDE5MDU4MTkxMTAAAAAAAAAAAAgDCQAAAAAAAAIFAAAADyRzaXplMTkwNTgxOTExMAAAAAAAAAAACQUAAAAPJGFjYzkxOTA1ODE5MTEwBAAAABAkYWNjMTAxOTA1ODE5MTEwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzkxOTA1ODE5MTEwCQABkQAAAAIFAAAADyRsaXN0MTkwNTgxOTExMAAAAAAAAAAACQMJAAAAAAAAAgUAAAAPJHNpemUxOTA1ODE5MTEwAAAAAAAAAAAKBQAAABAkYWNjMTAxOTA1ODE5MTEwBAAAABAkYWNjMTExOTA1ODE5MTEwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAQJGFjYzEwMTkwNTgxOTExMAkAAZEAAAACBQAAAA8kbGlzdDE5MDU4MTkxMTAAAAAAAAAAAAoJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZCAxMAQAAAARaGVpZ2h0RW50cnlOZXdDdXIEAAAADyRsaXN0MTkxMzkxOTE4NAUAAAAMY3VycmVudFBvb2xzBAAAAA8kc2l6ZTE5MTM5MTkxODQJAAGQAAAAAQUAAAAPJGxpc3QxOTEzOTE5MTg0BAAAAA8kYWNjMDE5MTM5MTkxODQFAAAAA25pbAMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAABQAAAA8kYWNjMDE5MTM5MTkxODQEAAAADyRhY2MxMTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzAxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAAAAMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAABBQAAAA8kYWNjMTE5MTM5MTkxODQEAAAADyRhY2MyMTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzExOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAAAQMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAACBQAAAA8kYWNjMjE5MTM5MTkxODQEAAAADyRhY2MzMTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzIxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAAAgMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAADBQAAAA8kYWNjMzE5MTM5MTkxODQEAAAADyRhY2M0MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzMxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAAAwMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAEBQAAAA8kYWNjNDE5MTM5MTkxODQEAAAADyRhY2M1MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzQxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAABAMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAFBQAAAA8kYWNjNTE5MTM5MTkxODQEAAAADyRhY2M2MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzUxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAABQMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAGBQAAAA8kYWNjNjE5MTM5MTkxODQEAAAADyRhY2M3MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzYxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAABgMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAHBQAAAA8kYWNjNzE5MTM5MTkxODQEAAAADyRhY2M4MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzcxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAABwMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAIBQAAAA8kYWNjODE5MTM5MTkxODQEAAAADyRhY2M5MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzgxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAACAMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAJBQAAAA8kYWNjOTE5MTM5MTkxODQEAAAAECRhY2MxMDE5MTM5MTkxODQJAQAAABFjaGFuZ2VIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2M5MTkxMzkxOTE4NAkAAZEAAAACBQAAAA8kbGlzdDE5MTM5MTkxODQAAAAAAAAAAAkDCQAAAAAAAAIFAAAADyRzaXplMTkxMzkxOTE4NAAAAAAAAAAACgUAAAAQJGFjYzEwMTkxMzkxOTE4NAQAAAAQJGFjYzExMTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAQJGFjYzEwMTkxMzkxOTE4NAkAAZEAAAACBQAAAA8kbGlzdDE5MTM5MTkxODQAAAAAAAAAAAoJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZCAxMAQAAAAUc3VtUmV3YXJkQ3VycmVudFRlbXAEAAAADyRsaXN0MTkyMTgxOTI1MAUAAAAOY3VycmVudFJld2FyZHMEAAAADyRzaXplMTkyMTgxOTI1MAkAAZAAAAABBQAAAA8kbGlzdDE5MjE4MTkyNTAEAAAADyRhY2MwMTkyMTgxOTI1MAAAAAAAAAAAAAMJAAAAAAAAAgUAAAAPJHNpemUxOTIxODE5MjUwAAAAAAAAAAAABQAAAA8kYWNjMDE5MjE4MTkyNTAEAAAADyRhY2MxMTkyMTgxOTI1MAkBAAAAA3N1bQAAAAIFAAAADyRhY2MwMTkyMTgxOTI1MAkAAZEAAAACBQAAAA8kbGlzdDE5MjE4MTkyNTAAAAAAAAAAAAADCQAAAAAAAAIFAAAADyRzaXplMTkyMTgxOTI1MAAAAAAAAAAAAQUAAAAPJGFjYzExOTIxODE5MjUwBAAAAA8kYWNjMjE5MjE4MTkyNTAJAQAAAANzdW0AAAACBQAAAA8kYWNjMTE5MjE4MTkyNTAJAAGRAAAAAgUAAAAPJGxpc3QxOTIxODE5MjUwAAAAAAAAAAABAwkAAAAAAAACBQAAAA8kc2l6ZTE5MjE4MTkyNTAAAAAAAAAAAAIFAAAADyRhY2MyMTkyMTgxOTI1MAQAAAAPJGFjYzMxOTIxODE5MjUwCQEAAAADc3VtAAAAAgUAAAAPJGFjYzIxOTIxODE5MjUwCQABkQAAAAIFAAAADyRsaXN0MTkyMTgxOTI1MAAAAAAAAAAAAgMJAAAAAAAAAgUAAAAPJHNpemUxOTIxODE5MjUwAAAAAAAAAAADBQAAAA8kYWNjMzE5MjE4MTkyNTAEAAAADyRhY2M0MTkyMTgxOTI1MAkBAAAAA3N1bQAAAAIFAAAADyRhY2MzMTkyMTgxOTI1MAkAAZEAAAACBQAAAA8kbGlzdDE5MjE4MTkyNTAAAAAAAAAAAAMDCQAAAAAAAAIFAAAADyRzaXplMTkyMTgxOTI1MAAAAAAAAAAABAUAAAAPJGFjYzQxOTIxODE5MjUwBAAAAA8kYWNjNTE5MjE4MTkyNTAJAQAAAANzdW0AAAACBQAAAA8kYWNjNDE5MjE4MTkyNTAJAAGRAAAAAgUAAAAPJGxpc3QxOTIxODE5MjUwAAAAAAAAAAAEAwkAAAAAAAACBQAAAA8kc2l6ZTE5MjE4MTkyNTAAAAAAAAAAAAUFAAAADyRhY2M1MTkyMTgxOTI1MAQAAAAPJGFjYzYxOTIxODE5MjUwCQEAAAADc3VtAAAAAgUAAAAPJGFjYzUxOTIxODE5MjUwCQABkQAAAAIFAAAADyRsaXN0MTkyMTgxOTI1MAAAAAAAAAAABQMJAAAAAAAAAgUAAAAPJHNpemUxOTIxODE5MjUwAAAAAAAAAAAGBQAAAA8kYWNjNjE5MjE4MTkyNTAEAAAADyRhY2M3MTkyMTgxOTI1MAkBAAAAA3N1bQAAAAIFAAAADyRhY2M2MTkyMTgxOTI1MAkAAZEAAAACBQAAAA8kbGlzdDE5MjE4MTkyNTAAAAAAAAAAAAYDCQAAAAAAAAIFAAAADyRzaXplMTkyMTgxOTI1MAAAAAAAAAAABwUAAAAPJGFjYzcxOTIxODE5MjUwBAAAAA8kYWNjODE5MjE4MTkyNTAJAQAAAANzdW0AAAACBQAAAA8kYWNjNzE5MjE4MTkyNTAJAAGRAAAAAgUAAAAPJGxpc3QxOTIxODE5MjUwAAAAAAAAAAAHAwkAAAAAAAACBQAAAA8kc2l6ZTE5MjE4MTkyNTAAAAAAAAAAAAgFAAAADyRhY2M4MTkyMTgxOTI1MAQAAAAPJGFjYzkxOTIxODE5MjUwCQEAAAADc3VtAAAAAgUAAAAPJGFjYzgxOTIxODE5MjUwCQABkQAAAAIFAAAADyRsaXN0MTkyMTgxOTI1MAAAAAAAAAAACAMJAAAAAAAAAgUAAAAPJHNpemUxOTIxODE5MjUwAAAAAAAAAAAJBQAAAA8kYWNjOTE5MjE4MTkyNTAEAAAAECRhY2MxMDE5MjE4MTkyNTAJAQAAAANzdW0AAAACBQAAAA8kYWNjOTE5MjE4MTkyNTAJAAGRAAAAAgUAAAAPJGxpc3QxOTIxODE5MjUwAAAAAAAAAAAJAwkAAAAAAAACBQAAAA8kc2l6ZTE5MjE4MTkyNTAAAAAAAAAAAAoFAAAAECRhY2MxMDE5MjE4MTkyNTAEAAAAECRhY2MxMTE5MjE4MTkyNTAJAQAAAANzdW0AAAACBQAAABAkYWNjMTAxOTIxODE5MjUwCQABkQAAAAIFAAAADyRsaXN0MTkyMTgxOTI1MAAAAAAAAAAACgkAAAIAAAABAgAAABNMaXN0IHNpemUgZXhjZWVkIDEwBAAAAA0kdDAxOTI1NjE5MzY3CQEAAAAMZ2V0U3VtUmV3YXJkAAAAAgUAAAAUc3VtUmV3YXJkQ3VycmVudFRlbXAFAAAACnBhZ2luYXRpb24EAAAAEHN1bVJld2FyZEN1cnJlbnQIBQAAAA0kdDAxOTI1NjE5MzY3AAAAAl8xBAAAACZyZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQgFAAAADSR0MDE5MjU2MTkzNjcAAAACXzIEAAAAF3Jld2FyZFVwZGF0ZUhlaWdodEVudHJ5AwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABVrZXlSZXdhcmRVcGRhdGVIZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAUAAAADbmlsBQAAAANuaWwDCQAAZgAAAAIFAAAABmhlaWdodAUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0CQAAAgAAAAECAAAAG3Jld2FyZFVwZGF0ZUhlaWdodCA8IGhlaWdodAkABE4AAAACCQAETgAAAAIJAAROAAAAAgkABE4AAAACCQAETgAAAAIFAAAAFnByZXZpb3VzUmV3YXJkRW50cnlOZXcFAAAAFWN1cnJlbnRSZXdhcmRFbnRyeU5ldwUAAAARaGVpZ2h0RW50cnlOZXdDdXIFAAAAEHN1bVJld2FyZEN1cnJlbnQFAAAAF3Jld2FyZFVwZGF0ZUhlaWdodEVudHJ5BQAAACZyZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQAAAAFpAQAAAAhzaHV0ZG93bgAAAAADCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAEJAAEsAAAAAgIAAAAiREFwcCBpcyBhbHJlYWR5IHN1c3BlbmRlZC4gQ2F1c2U6IAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAAhrZXlDYXVzZQIAAAAadGhlIGNhdXNlIHdhc24ndCBzcGVjaWZpZWQDCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAADGFkbWluUHViS2V5MQkABEwAAAACBQAAAAxhZG1pblB1YktleTIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkzCQAETAAAAAIFAAAAFGFkbWluUHViS2V5U3RhcnRTdG9wBQAAAANuaWwIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAACFPbmx5IGFkbWluIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24JAQAAAAdzdXNwZW5kAAAAAQIAAAAPUGF1c2VkIGJ5IGFkbWluAAAAAWkBAAAACGFjdGl2YXRlAAAAAAMFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAFkRBcHAgaXMgYWxyZWFkeSBhY3RpdmUDCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAADGFkbWluUHViS2V5MQkABEwAAAACBQAAAAxhZG1pblB1YktleTIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkzCQAETAAAAAIFAAAAFGFkbWluUHViS2V5U3RhcnRTdG9wBQAAAANuaWwIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAACFPbmx5IGFkbWluIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24JAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAACWtleUFjdGl2ZQYJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAIa2V5Q2F1c2UFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAEmFkbWluUHViS2V5MVNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAxhZG1pblB1YktleTEAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEmFkbWluUHViS2V5MlNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAxhZG1pblB1YktleTIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEmFkbWluUHViS2V5M1NpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAACBQAAAAxhZG1pblB1YktleTMAAAAAAAAAAAEAAAAAAAAAAAAJAABnAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAAEmFkbWluUHViS2V5MVNpZ25lZAUAAAASYWRtaW5QdWJLZXkyU2lnbmVkBQAAABJhZG1pblB1YktleTNTaWduZWQAAAAAAAAAAALmDFZF", "height": 1614790, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: B94FsyD5gvDZhwSxP4FUuUqZgb4n1e27U8iMd6jjwVVo Next: BwCyTU8o2fdgjjK3JKMsr4fSiwtMS9JMmW5JCTn51zDC Diff:
OldNewDifferences
7575
7676 let keyAdminPubKey3 = "admin_pub_3"
7777
78-let oracleAdminPool = Address(base58'3N1cPjixuHTujhGvb5HQoFvGt4fkUG8o3KF')
78+let oracleAdminPool = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
7979
8080 func getAdminPub (keyAdminPub) = match getString(oracleAdminPool, keyAdminPub) {
8181 case string: String =>
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let adminPubKeyStartStop = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
55
66 let adminPubKeyWallet = base58'5CqqMkmtXXt35KRH9LdWA3ap6TffPvTT5SHQzYrVFbBw'
77
88 let keyActive = "active"
99
1010 let keyCause = "shutdown_cause"
1111
1212 let keyLastInterest = "last_interest"
1313
1414 let keyUserLastInterest = "_last_interest"
1515
1616 let keyUserSWOPLocked = "_SWOP_amount"
1717
1818 let keyUserGetBackHeight = "_getBackHeight"
1919
2020 let keyTotalSWOPLocked = "total_SWOP_amount"
2121
2222 let kUserTotalVoteSWOP = "_user_total_SWOP_vote"
2323
2424 let keyUserVoteOptionAmount = "_SWOP_option_amount"
2525
2626 let keyTotalVoteOptionAmount = "total_SWOP_option_amount"
2727
2828 let keyUserSWOPClaimedAmount = "_SWOP_claimed_amount"
2929
3030 let keyUserSWOPLastClaimedAmount = "_SWOP_last_claimed_amount"
3131
3232 let keyVoteName = "vote_name"
3333
3434 let keyOptionName = "_option_name"
3535
3636 let keyVotingStartHeight = "_startHeight"
3737
3838 let keyVoteDuration = "_vote_duration"
3939
4040 let keyRewardPoolFractionCurrent = "_current_pool_fraction_reward"
4141
4242 let keyRewardPoolFractionPrevious = "_previous_pool_fraction_reward"
4343
4444 let keyHeightPoolFraction = "_pool_reward_update_height"
4545
4646 let keyTotalRewardPerBlockCurrent = "total_reward_per_block_current"
4747
4848 let keyTotalRewardPerBlockPrevious = "total_reward_per_block_previous"
4949
5050 let keyRewardUpdateHeight = "reward_update_height"
5151
5252 let keyRewardUpdateFirstPaginationHeight = "reward_update_height_first_pagination"
5353
5454 let keyNoVotingForNewPool = "_vote_no"
5555
5656 let keyYesVotingForNewPool = "_vote_yes"
5757
5858 let keyAmountOfVotingForNewPool = "max_amount_voting"
5959
6060 let keyStatusOfVotingForNewPool = "_status"
6161
6262 let keyHeightOfPoolVotingForNewPool = "_finish_height"
6363
6464 let activeVoteFirst = "voting_active_cell_1"
6565
6666 let activeVoteSecond = "voting_active_cell_2"
6767
6868 let activeVoteThird = "voting_active_cell_3"
6969
7070 let keyTempCurSum = "sum_reward_current"
7171
7272 let keyAdminPubKey1 = "admin_pub_1"
7373
7474 let keyAdminPubKey2 = "admin_pub_2"
7575
7676 let keyAdminPubKey3 = "admin_pub_3"
7777
78-let oracleAdminPool = Address(base58'3N1cPjixuHTujhGvb5HQoFvGt4fkUG8o3KF')
78+let oracleAdminPool = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
7979
8080 func getAdminPub (keyAdminPub) = match getString(oracleAdminPool, keyAdminPub) {
8181 case string: String =>
8282 fromBase58String(string)
8383 case nothing =>
8484 throw("Admin public key is empty")
8585 }
8686
8787
8888 let adminPubKey1 = getAdminPub(keyAdminPubKey1)
8989
9090 let adminPubKey2 = getAdminPub(keyAdminPubKey2)
9191
9292 let adminPubKey3 = getAdminPub(keyAdminPubKey3)
9393
9494 let isActive = valueOrElse(getBoolean(this, keyActive), true)
9595
9696 let farmingSWOPAddress = Address(base58'3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT')
9797
9898 let votingLiteContract = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
9999
100100 let votingForNewPool = Address(base58'3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb')
101101
102102 let keySWOPid = "SWOP_id"
103103
104104 let SWOP = fromBase58String(getStringValue(farmingSWOPAddress, keySWOPid))
105105
106106 let scaleValue = 100000000
107107
108108 let totalVoteShare = 10000000000
109109
110110 let kStartHeight = "start_height"
111111
112112 let kBasePeriod = "base_period"
113113
114114 let kPeriodLength = "period_length"
115115
116116 let kUserTotalStruc = "_user_total_struc"
117117
118118 let basePeriod = valueOrErrorMessage(getInteger(votingLiteContract, kBasePeriod), "Empty kBasePeriod at voting contract")
119119
120120 let startHeight = valueOrErrorMessage(getInteger(votingLiteContract, kStartHeight), "Empty kStartHeight at voting contract")
121121
122122 let periodLength = valueOrErrorMessage(getInteger(votingLiteContract, kPeriodLength), "Empty kPeriodLength at voting contract")
123123
124124 let firstActiveVote = valueOrElse(getString(votingForNewPool, activeVoteFirst), "")
125125
126126 let secondActiveVote = valueOrElse(getString(votingForNewPool, activeVoteSecond), "")
127127
128128 let thirdActiveVote = valueOrElse(getString(votingForNewPool, activeVoteThird), "")
129129
130130 let currVotingPeriod = (basePeriod + ((height - startHeight) / periodLength))
131131
132132 func suspend (cause) = [BooleanEntry(keyActive, false), StringEntry(keyCause, cause)]
133133
134134
135135 func throwNotEnoughSWOP () = throw("Not enough SWOP: userSWOPLocked - userTotalVoteAmount < voteSWOPAmount")
136136
137137
138138 func getLastInterestInfo () = {
139139 let lastInterest = valueOrElse(getInteger(this, keyLastInterest), 0)
140140 lastInterest
141141 }
142142
143143
144144 func getUserSWOPLocked (user) = valueOrElse(getInteger(this, (toString(user) + keyUserSWOPLocked)), 0)
145145
146146
147147 func getUserSWOPClaimedAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserSWOPClaimedAmount)), 0)
148148
149149
150150 func getUserTotalVoteAmount (user) = valueOrElse(getInteger(votingLiteContract, (toString(user) + kUserTotalVoteSWOP)), 0)
151151
152152
153153 func getUserInterestInfo (user,lastInterest) = {
154154 let userSWOPAmount = getUserSWOPLocked(user)
155155 let userLastInterest = getInteger(this, (toString(user) + keyUserLastInterest))
156156 let userLastInterestValue = match userLastInterest {
157157 case userLastInterest: Int =>
158158 userLastInterest
159159 case _ =>
160160 lastInterest
161161 }
162162 $Tuple2(userLastInterestValue, userSWOPAmount)
163163 }
164164
165165
166166 func getUserTotalVoteAmountForOnePool (pool,user) = {
167167 let voting = valueOrElse(getInteger(votingForNewPool, pool), -1)
168168 let heightOfVoting = valueOrElse(getInteger(votingForNewPool, (toString(voting) + keyHeightOfPoolVotingForNewPool)), 0)
169169 let statusOfVoting = valueOrElse(getBoolean(votingForNewPool, (toString(voting) + keyStatusOfVotingForNewPool)), true)
170170 let currentHeight = height
171171 if ((0 > voting))
172172 then 0
173173 else if (!(statusOfVoting))
174174 then 0
175175 else if ((heightOfVoting > currentHeight))
176176 then (valueOrElse(getInteger(votingForNewPool, (((toString(user) + "_") + toString(voting)) + keyYesVotingForNewPool)), 0) + valueOrElse(getInteger(votingForNewPool, (((toString(user) + "_") + toString(voting)) + keyNoVotingForNewPool)), 0))
177177 else 0
178178 }
179179
180180
181181 func getUserTotalVoteForNewPoolAmount (user) = {
182182 let listOfVoting = [getUserTotalVoteAmountForOnePool(firstActiveVote, user), getUserTotalVoteAmountForOnePool(secondActiveVote, user), getUserTotalVoteAmountForOnePool(thirdActiveVote, user)]
183183 max(listOfVoting)
184184 }
185185
186186
187187 func getTotalSWOPLocked () = valueOrElse(getInteger(this, keyTotalSWOPLocked), 0)
188188
189189
190190 func getUserVoteInfo (user) = {
191191 let $t063606911 = if (isDefined(getString(votingLiteContract, (toString(user) + kUserTotalStruc))))
192192 then {
193193 let data = split(valueOrErrorMessage(getString(votingLiteContract, (toString(user) + kUserTotalStruc)), "Empty kUserTotalStruc"), "_")
194194 $Tuple3(parseIntValue(data[0]), parseIntValue(data[1]), parseIntValue(data[2]))
195195 }
196196 else {
197197 let uPoolTotalSWOP = valueOrElse(getInteger(votingLiteContract, (toString(user) + kUserTotalVoteSWOP)), 0)
198198 $Tuple3(uPoolTotalSWOP, 0, currVotingPeriod)
199199 }
200200 let userTotalVoteSWOP = $t063606911._1
201201 let userUnvoted = $t063606911._2
202202 let userUnvotedPeriod = $t063606911._3
203203 let userUnvotedActual = if ((userUnvotedPeriod == currVotingPeriod))
204204 then userUnvoted
205205 else 0
206206 $Tuple2(userTotalVoteSWOP, userUnvotedActual)
207207 }
208208
209209
210210 func getUserVoteOptionAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserVoteOptionAmount)), 0)
211211
212212
213213 func getVotingStartHeight (voteName) = valueOrElse(getInteger(this, (voteName + keyVotingStartHeight)), 0)
214214
215215
216216 func getPoolUpdateHeight (pool) = valueOrElse(getInteger(this, (pool + keyHeightPoolFraction)), 0)
217217
218218
219219 func isDefinePoolUpdateHeight (pool) = isDefined(getInteger(this, (pool + keyHeightPoolFraction)))
220220
221221
222222 func getCurPoolWeight (pool) = valueOrElse(getInteger(this, (pool + keyRewardPoolFractionCurrent)), 0)
223223
224224
225225 func getPrevPoolWeight (pool) = valueOrElse(getInteger(this, (pool + keyRewardPoolFractionPrevious)), 0)
226226
227227
228228 func getVoteOptionAmount (user,voteName,option) = {
229229 let userVoteOptionAmount = getInteger(this, (((voteName + option) + toString(user)) + keyUserVoteOptionAmount))
230230 let uvoa = match userVoteOptionAmount {
231231 case uvoa: Int =>
232232 uvoa
233233 case uvoa: Unit =>
234234 0
235235 case _ =>
236236 throw("Match error")
237237 }
238238 valueOrErrorMessage(uvoa, (((("No data on the key: " + voteName) + option) + toString(user)) + keyUserVoteOptionAmount))
239239 }
240240
241241
242242 func getVoteDuration (voteName) = valueOrErrorMessage(getInteger(this, (voteName + keyVoteDuration)), (("No data on the key: " + voteName) + keyVoteDuration))
243243
244244
245245 func getTotalVoteOptionAmount (voteName,option) = {
246246 let totalVoteOptionAmount = getInteger(this, ((voteName + option) + keyTotalVoteOptionAmount))
247247 let tvoa = match totalVoteOptionAmount {
248248 case tvoa: Int =>
249249 tvoa
250250 case tvoa: Unit =>
251251 0
252252 case _ =>
253253 throw("Match error")
254254 }
255255 tvoa
256256 }
257257
258258
259259 func getUserGetBackAmount (voteName,option,user,getBackSWOPHeight) = {
260260 let key = ((((((voteName + "_") + option) + "_") + toString(user)) + "_") + toString(getBackSWOPHeight))
261261 valueOrErrorMessage(getInteger(this, key), ("No data on the key: " + key))
262262 }
263263
264264
265265 func claimCalc (caller) = {
266266 let lastInterest = getLastInterestInfo()
267267 let $t093159395 = getUserInterestInfo(caller, lastInterest)
268268 let userLastInterest = $t093159395._1
269269 let userSWOPLocked = $t093159395._2
270270 let claimAmount = toInt(fraction(toBigInt(userSWOPLocked), toBigInt((lastInterest - userLastInterest)), toBigInt(scaleValue)))
271271 let userNewInterest = lastInterest
272272 $Tuple2(userNewInterest, claimAmount)
273273 }
274274
275275
276276 @Callable(i)
277277 func airDrop () = if (!(isActive))
278278 then throw("DApp is inactive at this moment")
279279 else {
280280 let $t097039778 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
281281 let pmtAmount = $t097039778._1
282282 let pmtAssetId = $t097039778._2
283283 if ((pmtAssetId != SWOP))
284284 then throw("Incorrect pmtAssetId")
285285 else {
286286 let totalSWOPLocked = getTotalSWOPLocked()
287287 let lastInterest = getLastInterestInfo()
288288 let interestNew = (lastInterest + toInt(fraction(toBigInt(pmtAmount), toBigInt(scaleValue), toBigInt(totalSWOPLocked))))
289289 [IntegerEntry(keyLastInterest, interestNew)]
290290 }
291291 }
292292
293293
294294
295295 @Callable(i)
296296 func lockSWOP () = if (!(isActive))
297297 then throw("DApp is inactive at this moment")
298298 else {
299299 let $t01025710332 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
300300 let pmtAmount = $t01025710332._1
301301 let pmtAssetId = $t01025710332._2
302302 if ((pmtAssetId != SWOP))
303303 then throw("Incorrect pmtAssetId")
304304 else {
305305 let lastInterest = getLastInterestInfo()
306306 let $t01044810530 = getUserInterestInfo(i.caller, lastInterest)
307307 let userLastInterest = $t01044810530._1
308308 let userSWOPLocked = $t01044810530._2
309309 let claimAmount = toInt(fraction(toBigInt(userSWOPLocked), toBigInt((lastInterest - userLastInterest)), toBigInt(scaleValue)))
310310 let userSWOPLockedNew = ((userSWOPLocked + pmtAmount) + claimAmount)
311311 let userNewInterest = lastInterest
312312 let totalSWOPLocked = getTotalSWOPLocked()
313313 let totalSWOPLockedNew = ((totalSWOPLocked + pmtAmount) + claimAmount)
314314 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
315315 let userClaimedAmountNew = (userClaimedAmount + claimAmount)
316316 [IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry((toString(i.caller) + keyUserSWOPLocked), userSWOPLockedNew), IntegerEntry(keyTotalSWOPLocked, totalSWOPLockedNew), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount)]
317317 }
318318 }
319319
320320
321321
322322 @Callable(i)
323323 func withdrawSWOP (withdrawAmount) = if (!(isActive))
324324 then throw("DApp is inactive at this moment")
325325 else if ((0 >= withdrawAmount))
326326 then throw("withdrawAmount <= 0")
327327 else {
328328 let totalSWOPLocked = getTotalSWOPLocked()
329329 let userSWOPLocked = getUserSWOPLocked(i.caller)
330330 let $t01172311778 = claimCalc(i.caller)
331331 let userNewInterest = $t01172311778._1
332332 let claimAmount = $t01172311778._2
333333 let $t01178311848 = getUserVoteInfo(i.caller)
334334 let userVoteAmount = $t01178311848._1
335335 let userUnvoteAmount = $t01178311848._2
336336 let userVoteAmountForNewPool = getUserTotalVoteForNewPoolAmount(i.caller)
337337 if (if (if ((0 > userUnvoteAmount))
338338 then true
339339 else (0 > userVoteAmount))
340340 then true
341341 else (0 > userVoteAmountForNewPool))
342342 then throw("userUnvoteAmount < 0 || userVoteAmount < 0 || userVoteAmountForNewPool < 0")
343343 else {
344344 let availableToUnstake = (userSWOPLocked - max([userVoteAmountForNewPool, (userVoteAmount + userUnvoteAmount)]))
345345 if ((withdrawAmount > availableToUnstake))
346346 then throw("withdrawAmount > availableToUnstake")
347347 else {
348348 let totalSWOPLockedNew = ((totalSWOPLocked + claimAmount) - withdrawAmount)
349349 let userSWOPamountNew = ((userSWOPLocked + claimAmount) - withdrawAmount)
350350 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
351351 let userClaimedAmountNew = (userClaimedAmount + claimAmount)
352352 [IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry((toString(i.caller) + keyUserSWOPLocked), userSWOPamountNew), IntegerEntry(keyTotalSWOPLocked, totalSWOPLockedNew), ScriptTransfer(i.caller, withdrawAmount, SWOP), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount)]
353353 }
354354 }
355355 }
356356
357357
358358
359359 @Callable(i)
360360 func claimAndWithdrawSWOP () = if (!(isActive))
361361 then throw("DApp is inactive at this moment")
362362 else {
363363 let lastInterest = getLastInterestInfo()
364364 let $t01322313278 = claimCalc(i.caller)
365365 let userNewInterest = $t01322313278._1
366366 let claimAmount = $t01322313278._2
367367 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
368368 let userClaimedAmountNew = (userClaimedAmount + claimAmount)
369369 if ((claimAmount == 0))
370370 then throw("You have 0 available SWOP")
371371 else [IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount), ScriptTransfer(i.caller, claimAmount, SWOP)]
372372 }
373373
374374
375375
376376 @Callable(i)
377377 func claimAndStakeSWOP () = if (!(isActive))
378378 then throw("DApp is inactive at this moment")
379379 else {
380380 let totalSWOPLocked = getTotalSWOPLocked()
381381 let userSWOPLocked = getUserSWOPLocked(i.caller)
382382 let lastInterest = getLastInterestInfo()
383383 let $t01405714112 = claimCalc(i.caller)
384384 let userNewInterest = $t01405714112._1
385385 let claimAmount = $t01405714112._2
386386 let userSWOPLockedNew = (userSWOPLocked + claimAmount)
387387 let totalSWOPLockedNew = (totalSWOPLocked + claimAmount)
388388 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
389389 let userClaimedAmountNew = (userClaimedAmount + claimAmount)
390390 if ((claimAmount == 0))
391391 then throw("You have 0 available SWOP")
392392 else [IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry(keyTotalSWOPLocked, totalSWOPLockedNew), IntegerEntry((toString(i.caller) + keyUserSWOPLocked), userSWOPLockedNew), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount)]
393393 }
394394
395395
396396
397397 @Callable(i)
398398 func updateWeights (currentPools,currentRewards,rewardUpdateHeight,pagination) = if (!(isActive))
399399 then throw("DApp is inactive at this moment")
400400 else {
401401 let amountPools = 10
402402 let totalRewardUpdateHeight = valueOrElse(getInteger(this, keyRewardUpdateHeight), 0)
403403 if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop, adminPubKeyWallet], i.callerPublicKey)))
404404 then throw("Only admin can call this function")
405405 else if ((size(currentPools) > amountPools))
406406 then throw(("Max amount of pool is " + toString(amountPools)))
407407 else if ((totalRewardUpdateHeight >= rewardUpdateHeight))
408408 then throw("rewardUpdateHeight <= totalRewardUpdateHeight")
409409 else if ((height >= rewardUpdateHeight))
410410 then throw("height >= rewardUpdateHeight")
411411 else if ((0 >= rewardUpdateHeight))
412412 then throw("0 >= rewardUpdateHeight ")
413413 else {
414414 func sum (a,b) = (a + b)
415415
416416 func changePreviousRewardEntry (accumulated,pool) = {
417417 let poolRewardUpdateHeight = getPoolUpdateHeight(pool)
418418 if (if (!(isDefinePoolUpdateHeight(pool)))
419419 then true
420420 else if ((rewardUpdateHeight != poolRewardUpdateHeight))
421421 then (poolRewardUpdateHeight == totalRewardUpdateHeight)
422422 else false)
423423 then {
424424 let poolReward = getCurPoolWeight(pool)
425425 IntegerEntry((pool + keyRewardPoolFractionPrevious), poolReward) :: accumulated
426426 }
427427 else {
428428 let poolReward = getPrevPoolWeight(pool)
429429 IntegerEntry((pool + keyRewardPoolFractionPrevious), poolReward) :: accumulated
430430 }
431431 }
432432
433433 func changeCurrentRewardEntry (accumulated,pool) = {
434434 let poolIndex = value(indexOf(currentPools, pool))
435435 let poolReward = currentRewards[poolIndex]
436436 if ((0 > poolReward))
437437 then throw("PoolReward < 0")
438438 else IntegerEntry((pool + keyRewardPoolFractionCurrent), poolReward) :: accumulated
439439 }
440440
441441 func changeHeightEntry (accumulated,pool) = {
442442 let poolHeight = rewardUpdateHeight
443443 IntegerEntry((pool + keyHeightPoolFraction), poolHeight) :: accumulated
444444 }
445445
446446 func getSumReward (curTempSum,pagination) = if ((pagination == 0))
447447 then if ((curTempSum > totalVoteShare))
448448 then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(pagination)) + " ") + toString(curTempSum)))
449449 else $Tuple2([IntegerEntry(keyTempCurSum, curTempSum)], [IntegerEntry(keyRewardUpdateFirstPaginationHeight, rewardUpdateHeight)])
450450 else if ((pagination == 1))
451451 then {
452452 let curTempSumFromKey = valueOrElse(getInteger(this, keyTempCurSum), 0)
453453 let rewardUpdateHeightFirstPaginationEntry = valueOrElse(getInteger(this, keyRewardUpdateFirstPaginationHeight), 0)
454454 if (((curTempSum + curTempSumFromKey) > totalVoteShare))
455455 then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(pagination)) + " ") + toString((curTempSum + curTempSumFromKey))))
456456 else if ((rewardUpdateHeightFirstPaginationEntry != rewardUpdateHeight))
457457 then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
458458 else $Tuple2([IntegerEntry(keyTempCurSum, (curTempSum + curTempSumFromKey))], nil)
459459 }
460460 else if ((pagination == 2))
461461 then {
462462 let curSum = (valueOrElse(getInteger(this, keyTempCurSum), 0) + curTempSum)
463463 let rewardUpdateHeightFirstPaginationEntry = valueOrElse(getInteger(this, keyRewardUpdateFirstPaginationHeight), 0)
464464 if ((curSum != totalVoteShare))
465465 then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare")
466466 else if ((rewardUpdateHeightFirstPaginationEntry != rewardUpdateHeight))
467467 then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
468468 else $Tuple2([IntegerEntry(keyTempCurSum, curSum)], nil)
469469 }
470470 else throw("Incorrect pagination")
471471
472472 let previousRewardEntryNew = {
473473 let $list1897319025 = currentPools
474474 let $size1897319025 = size($list1897319025)
475475 let $acc01897319025 = nil
476476 if (($size1897319025 == 0))
477477 then $acc01897319025
478478 else {
479479 let $acc11897319025 = changePreviousRewardEntry($acc01897319025, $list1897319025[0])
480480 if (($size1897319025 == 1))
481481 then $acc11897319025
482482 else {
483483 let $acc21897319025 = changePreviousRewardEntry($acc11897319025, $list1897319025[1])
484484 if (($size1897319025 == 2))
485485 then $acc21897319025
486486 else {
487487 let $acc31897319025 = changePreviousRewardEntry($acc21897319025, $list1897319025[2])
488488 if (($size1897319025 == 3))
489489 then $acc31897319025
490490 else {
491491 let $acc41897319025 = changePreviousRewardEntry($acc31897319025, $list1897319025[3])
492492 if (($size1897319025 == 4))
493493 then $acc41897319025
494494 else {
495495 let $acc51897319025 = changePreviousRewardEntry($acc41897319025, $list1897319025[4])
496496 if (($size1897319025 == 5))
497497 then $acc51897319025
498498 else {
499499 let $acc61897319025 = changePreviousRewardEntry($acc51897319025, $list1897319025[5])
500500 if (($size1897319025 == 6))
501501 then $acc61897319025
502502 else {
503503 let $acc71897319025 = changePreviousRewardEntry($acc61897319025, $list1897319025[6])
504504 if (($size1897319025 == 7))
505505 then $acc71897319025
506506 else {
507507 let $acc81897319025 = changePreviousRewardEntry($acc71897319025, $list1897319025[7])
508508 if (($size1897319025 == 8))
509509 then $acc81897319025
510510 else {
511511 let $acc91897319025 = changePreviousRewardEntry($acc81897319025, $list1897319025[8])
512512 if (($size1897319025 == 9))
513513 then $acc91897319025
514514 else {
515515 let $acc101897319025 = changePreviousRewardEntry($acc91897319025, $list1897319025[9])
516516 if (($size1897319025 == 10))
517517 then $acc101897319025
518518 else {
519519 let $acc111897319025 = changePreviousRewardEntry($acc101897319025, $list1897319025[10])
520520 throw("List size exceed 10")
521521 }
522522 }
523523 }
524524 }
525525 }
526526 }
527527 }
528528 }
529529 }
530530 }
531531 }
532532 }
533533 let currentRewardEntryNew = {
534534 let $list1905819110 = currentPools
535535 let $size1905819110 = size($list1905819110)
536536 let $acc01905819110 = nil
537537 if (($size1905819110 == 0))
538538 then $acc01905819110
539539 else {
540540 let $acc11905819110 = changeCurrentRewardEntry($acc01905819110, $list1905819110[0])
541541 if (($size1905819110 == 1))
542542 then $acc11905819110
543543 else {
544544 let $acc21905819110 = changeCurrentRewardEntry($acc11905819110, $list1905819110[1])
545545 if (($size1905819110 == 2))
546546 then $acc21905819110
547547 else {
548548 let $acc31905819110 = changeCurrentRewardEntry($acc21905819110, $list1905819110[2])
549549 if (($size1905819110 == 3))
550550 then $acc31905819110
551551 else {
552552 let $acc41905819110 = changeCurrentRewardEntry($acc31905819110, $list1905819110[3])
553553 if (($size1905819110 == 4))
554554 then $acc41905819110
555555 else {
556556 let $acc51905819110 = changeCurrentRewardEntry($acc41905819110, $list1905819110[4])
557557 if (($size1905819110 == 5))
558558 then $acc51905819110
559559 else {
560560 let $acc61905819110 = changeCurrentRewardEntry($acc51905819110, $list1905819110[5])
561561 if (($size1905819110 == 6))
562562 then $acc61905819110
563563 else {
564564 let $acc71905819110 = changeCurrentRewardEntry($acc61905819110, $list1905819110[6])
565565 if (($size1905819110 == 7))
566566 then $acc71905819110
567567 else {
568568 let $acc81905819110 = changeCurrentRewardEntry($acc71905819110, $list1905819110[7])
569569 if (($size1905819110 == 8))
570570 then $acc81905819110
571571 else {
572572 let $acc91905819110 = changeCurrentRewardEntry($acc81905819110, $list1905819110[8])
573573 if (($size1905819110 == 9))
574574 then $acc91905819110
575575 else {
576576 let $acc101905819110 = changeCurrentRewardEntry($acc91905819110, $list1905819110[9])
577577 if (($size1905819110 == 10))
578578 then $acc101905819110
579579 else {
580580 let $acc111905819110 = changeCurrentRewardEntry($acc101905819110, $list1905819110[10])
581581 throw("List size exceed 10")
582582 }
583583 }
584584 }
585585 }
586586 }
587587 }
588588 }
589589 }
590590 }
591591 }
592592 }
593593 }
594594 let heightEntryNewCur = {
595595 let $list1913919184 = currentPools
596596 let $size1913919184 = size($list1913919184)
597597 let $acc01913919184 = nil
598598 if (($size1913919184 == 0))
599599 then $acc01913919184
600600 else {
601601 let $acc11913919184 = changeHeightEntry($acc01913919184, $list1913919184[0])
602602 if (($size1913919184 == 1))
603603 then $acc11913919184
604604 else {
605605 let $acc21913919184 = changeHeightEntry($acc11913919184, $list1913919184[1])
606606 if (($size1913919184 == 2))
607607 then $acc21913919184
608608 else {
609609 let $acc31913919184 = changeHeightEntry($acc21913919184, $list1913919184[2])
610610 if (($size1913919184 == 3))
611611 then $acc31913919184
612612 else {
613613 let $acc41913919184 = changeHeightEntry($acc31913919184, $list1913919184[3])
614614 if (($size1913919184 == 4))
615615 then $acc41913919184
616616 else {
617617 let $acc51913919184 = changeHeightEntry($acc41913919184, $list1913919184[4])
618618 if (($size1913919184 == 5))
619619 then $acc51913919184
620620 else {
621621 let $acc61913919184 = changeHeightEntry($acc51913919184, $list1913919184[5])
622622 if (($size1913919184 == 6))
623623 then $acc61913919184
624624 else {
625625 let $acc71913919184 = changeHeightEntry($acc61913919184, $list1913919184[6])
626626 if (($size1913919184 == 7))
627627 then $acc71913919184
628628 else {
629629 let $acc81913919184 = changeHeightEntry($acc71913919184, $list1913919184[7])
630630 if (($size1913919184 == 8))
631631 then $acc81913919184
632632 else {
633633 let $acc91913919184 = changeHeightEntry($acc81913919184, $list1913919184[8])
634634 if (($size1913919184 == 9))
635635 then $acc91913919184
636636 else {
637637 let $acc101913919184 = changeHeightEntry($acc91913919184, $list1913919184[9])
638638 if (($size1913919184 == 10))
639639 then $acc101913919184
640640 else {
641641 let $acc111913919184 = changeHeightEntry($acc101913919184, $list1913919184[10])
642642 throw("List size exceed 10")
643643 }
644644 }
645645 }
646646 }
647647 }
648648 }
649649 }
650650 }
651651 }
652652 }
653653 }
654654 }
655655 let sumRewardCurrentTemp = {
656656 let $list1921819250 = currentRewards
657657 let $size1921819250 = size($list1921819250)
658658 let $acc01921819250 = 0
659659 if (($size1921819250 == 0))
660660 then $acc01921819250
661661 else {
662662 let $acc11921819250 = sum($acc01921819250, $list1921819250[0])
663663 if (($size1921819250 == 1))
664664 then $acc11921819250
665665 else {
666666 let $acc21921819250 = sum($acc11921819250, $list1921819250[1])
667667 if (($size1921819250 == 2))
668668 then $acc21921819250
669669 else {
670670 let $acc31921819250 = sum($acc21921819250, $list1921819250[2])
671671 if (($size1921819250 == 3))
672672 then $acc31921819250
673673 else {
674674 let $acc41921819250 = sum($acc31921819250, $list1921819250[3])
675675 if (($size1921819250 == 4))
676676 then $acc41921819250
677677 else {
678678 let $acc51921819250 = sum($acc41921819250, $list1921819250[4])
679679 if (($size1921819250 == 5))
680680 then $acc51921819250
681681 else {
682682 let $acc61921819250 = sum($acc51921819250, $list1921819250[5])
683683 if (($size1921819250 == 6))
684684 then $acc61921819250
685685 else {
686686 let $acc71921819250 = sum($acc61921819250, $list1921819250[6])
687687 if (($size1921819250 == 7))
688688 then $acc71921819250
689689 else {
690690 let $acc81921819250 = sum($acc71921819250, $list1921819250[7])
691691 if (($size1921819250 == 8))
692692 then $acc81921819250
693693 else {
694694 let $acc91921819250 = sum($acc81921819250, $list1921819250[8])
695695 if (($size1921819250 == 9))
696696 then $acc91921819250
697697 else {
698698 let $acc101921819250 = sum($acc91921819250, $list1921819250[9])
699699 if (($size1921819250 == 10))
700700 then $acc101921819250
701701 else {
702702 let $acc111921819250 = sum($acc101921819250, $list1921819250[10])
703703 throw("List size exceed 10")
704704 }
705705 }
706706 }
707707 }
708708 }
709709 }
710710 }
711711 }
712712 }
713713 }
714714 }
715715 }
716716 let $t01925619367 = getSumReward(sumRewardCurrentTemp, pagination)
717717 let sumRewardCurrent = $t01925619367._1
718718 let rewardUpdateHeightFirstPaginationEntry = $t01925619367._2
719719 let rewardUpdateHeightEntry = if ((pagination == 2))
720720 then [IntegerEntry(keyRewardUpdateHeight, rewardUpdateHeight)]
721721 else nil
722722 if ((height > rewardUpdateHeight))
723723 then throw("rewardUpdateHeight < height")
724724 else (((((previousRewardEntryNew ++ currentRewardEntryNew) ++ heightEntryNewCur) ++ sumRewardCurrent) ++ rewardUpdateHeightEntry) ++ rewardUpdateHeightFirstPaginationEntry)
725725 }
726726 }
727727
728728
729729
730730 @Callable(i)
731731 func shutdown () = if (!(isActive))
732732 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, keyCause), "the cause wasn't specified")))
733733 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop], i.callerPublicKey)))
734734 then throw("Only admin can call this function")
735735 else suspend("Paused by admin")
736736
737737
738738
739739 @Callable(i)
740740 func activate () = if (isActive)
741741 then throw("DApp is already active")
742742 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop], i.callerPublicKey)))
743743 then throw("Only admin can call this function")
744744 else [BooleanEntry(keyActive, true), DeleteEntry(keyCause)]
745745
746746
747747 @Verifier(tx)
748748 func verify () = {
749749 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
750750 then 1
751751 else 0
752752 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
753753 then 1
754754 else 0
755755 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
756756 then 1
757757 else 0
758758 (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
759759 }
760760

github/deemru/w8io/169f3d6 
70.62 ms