tx · JAjnTojjEJZdboPjHhFpuXTppE2U3J4RAAFaL73XEuXC

3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU:  -0.01400000 Waves

2021.06.18 16:58 [1575900] smart account 3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU > SELF 0.00000000 Waves

{ "type": 13, "id": "JAjnTojjEJZdboPjHhFpuXTppE2U3J4RAAFaL73XEuXC", "fee": 1400000, "feeAssetId": null, "timestamp": 1624024728282, "version": 2, "chainId": 84, "sender": "3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU", "senderPublicKey": "AWADFmQjf2WbDSqb24S9YZpix3VEdiBdeiJ2J2sSfQ49", "proofs": [ "21E6Hgv16tHVBiwfnXyjiyGuvbXKifY7DbQfE1WAoTx7Pb1xfKzNcUPiLdY4VFBg4NhG6k48EaydsMfw9E1QYF3P" ], "script": "base64:AAIEAAAAAAAAABsIAhIAEgASAwoBARIAEgASBgoEGBEBARIAEgAAAABPAAAAAAxhZG1pblB1YktleTEBAAAAIATPdeVk0MEPTme5HxNkxBoN6oQkQjF9M5BdQFgKnZNKAAAAAAxhZG1pblB1YktleTIBAAAAIATPdeVk0MEPTme5HxNkxBoN6oQkQjF9M5BdQFgKnZNKAAAAAAxhZG1pblB1YktleTMBAAAAIATPdeVk0MEPTme5HxNkxBoN6oQkQjF9M5BdQFgKnZNKAAAAABRhZG1pblB1YktleVN0YXJ0U3RvcAEAAAAgBM915WTQwQ9OZ7kfE2TEGg3qhCRCMX0zkF1AWAqdk0oAAAAAEWFkbWluUHViS2V5V2FsbGV0AQAAACA+d1plWlbJ/ClXM7W8DUUtysyn+IWSDjd3WPNiFVIUEgAAAAAJa2V5QWN0aXZlAgAAAAZhY3RpdmUAAAAACGtleUNhdXNlAgAAAA5zaHV0ZG93bl9jYXVzZQAAAAAPa2V5TGFzdEludGVyZXN0AgAAAA1sYXN0X2ludGVyZXN0AAAAABNrZXlVc2VyTGFzdEludGVyZXN0AgAAAA5fbGFzdF9pbnRlcmVzdAAAAAARa2V5VXNlclNXT1BMb2NrZWQCAAAADF9TV09QX2Ftb3VudAAAAAAUa2V5VXNlckdldEJhY2tIZWlnaHQCAAAADl9nZXRCYWNrSGVpZ2h0AAAAABJrZXlUb3RhbFNXT1BMb2NrZWQCAAAAEXRvdGFsX1NXT1BfYW1vdW50AAAAABJrVXNlclRvdGFsVm90ZVNXT1ACAAAAFV91c2VyX3RvdGFsX1NXT1Bfdm90ZQAAAAAXa2V5VXNlclZvdGVPcHRpb25BbW91bnQCAAAAE19TV09QX29wdGlvbl9hbW91bnQAAAAAGGtleVRvdGFsVm90ZU9wdGlvbkFtb3VudAIAAAAYdG90YWxfU1dPUF9vcHRpb25fYW1vdW50AAAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQCAAAAFF9TV09QX2NsYWltZWRfYW1vdW50AAAAABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50AgAAABlfU1dPUF9sYXN0X2NsYWltZWRfYW1vdW50AAAAAAtrZXlWb3RlTmFtZQIAAAAJdm90ZV9uYW1lAAAAAA1rZXlPcHRpb25OYW1lAgAAAAxfb3B0aW9uX25hbWUAAAAAFGtleVZvdGluZ1N0YXJ0SGVpZ2h0AgAAAAxfc3RhcnRIZWlnaHQAAAAAD2tleVZvdGVEdXJhdGlvbgIAAAAOX3ZvdGVfZHVyYXRpb24AAAAAHGtleVJld2FyZFBvb2xGcmFjdGlvbkN1cnJlbnQCAAAAHV9jdXJyZW50X3Bvb2xfZnJhY3Rpb25fcmV3YXJkAAAAAB1rZXlSZXdhcmRQb29sRnJhY3Rpb25QcmV2aW91cwIAAAAeX3ByZXZpb3VzX3Bvb2xfZnJhY3Rpb25fcmV3YXJkAAAAABVrZXlIZWlnaHRQb29sRnJhY3Rpb24CAAAAGl9wb29sX3Jld2FyZF91cGRhdGVfaGVpZ2h0AAAAAB1rZXlUb3RhbFJld2FyZFBlckJsb2NrQ3VycmVudAIAAAAedG90YWxfcmV3YXJkX3Blcl9ibG9ja19jdXJyZW50AAAAAB5rZXlUb3RhbFJld2FyZFBlckJsb2NrUHJldmlvdXMCAAAAH3RvdGFsX3Jld2FyZF9wZXJfYmxvY2tfcHJldmlvdXMAAAAAFWtleVJld2FyZFVwZGF0ZUhlaWdodAIAAAAUcmV3YXJkX3VwZGF0ZV9oZWlnaHQAAAAAJGtleVJld2FyZFVwZGF0ZUZpcnN0UGFnaW5hdGlvbkhlaWdodAIAAAAlcmV3YXJkX3VwZGF0ZV9oZWlnaHRfZmlyc3RfcGFnaW5hdGlvbgAAAAAVa2V5Tm9Wb3RpbmdGb3JOZXdQb29sAgAAAAhfdm90ZV9ubwAAAAAWa2V5WWVzVm90aW5nRm9yTmV3UG9vbAIAAAAJX3ZvdGVfeWVzAAAAABtrZXlBbW91bnRPZlZvdGluZ0Zvck5ld1Bvb2wCAAAAEW1heF9hbW91bnRfdm90aW5nAAAAABtrZXlTdGF0dXNPZlZvdGluZ0Zvck5ld1Bvb2wCAAAAB19zdGF0dXMAAAAAH2tleUhlaWdodE9mUG9vbFZvdGluZ0Zvck5ld1Bvb2wCAAAADl9maW5pc2hfaGVpZ2h0AAAAAA9hY3RpdmVWb3RlRmlyc3QCAAAAFHZvdGluZ19hY3RpdmVfY2VsbF8xAAAAABBhY3RpdmVWb3RlU2Vjb25kAgAAABR2b3RpbmdfYWN0aXZlX2NlbGxfMgAAAAAPYWN0aXZlVm90ZVRoaXJkAgAAABR2b3RpbmdfYWN0aXZlX2NlbGxfMwAAAAAOa2V5VGVtcFByZXZTdW0CAAAAE3N1bV9yZXdhcmRfcHJldmlvdXMAAAAADWtleVRlbXBDdXJTdW0CAAAAEnN1bV9yZXdhcmRfY3VycmVudAAAAAAIaXNBY3RpdmUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwUAAAAJa2V5QWN0aXZlBgAAAAASZmFybWluZ1NXT1BBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFULEuCdkaN7xkyPSmpBMwL+vYh0o63mS9mAAAAABJ2b3RpbmdMaXRlQ29udHJhY3QJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVQaNn7fV6KdJ2lc/r/3JtTn+6HDaD4gyn8AAAAAEHZvdGluZ0Zvck5ld1Bvb2wJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVR2IeF5Fctzd38/oGN0UKsjLFsZGIPzS4IAAAAACWtleVNXT1BpZAIAAAAHU1dPUF9pZAAAAAAEU1dPUAkAAlkAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAABJmYXJtaW5nU1dPUEFkZHJlc3MFAAAACWtleVNXT1BpZAAAAAAKc2NhbGVWYWx1ZQAAAAAABfXhAAAAAAAOdG90YWxWb3RlU2hhcmUAAAAAAlQL5AAAAAAADGtTdGFydEhlaWdodAIAAAAMc3RhcnRfaGVpZ2h0AAAAAAtrQmFzZVBlcmlvZAIAAAALYmFzZV9wZXJpb2QAAAAADWtQZXJpb2RMZW5ndGgCAAAADXBlcmlvZF9sZW5ndGgAAAAAD2tVc2VyVG90YWxTdHJ1YwIAAAARX3VzZXJfdG90YWxfc3RydWMAAAAACmJhc2VQZXJpb2QJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAABJ2b3RpbmdMaXRlQ29udHJhY3QFAAAAC2tCYXNlUGVyaW9kAgAAACRFbXB0eSBrQmFzZVBlcmlvZCBhdCB2b3RpbmcgY29udHJhY3QAAAAAC3N0YXJ0SGVpZ2h0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0BQAAAAxrU3RhcnRIZWlnaHQCAAAAJUVtcHR5IGtTdGFydEhlaWdodCBhdCB2b3RpbmcgY29udHJhY3QAAAAADHBlcmlvZExlbmd0aAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAUAAAANa1BlcmlvZExlbmd0aAIAAAAmRW1wdHkga1BlcmlvZExlbmd0aCBhdCB2b3RpbmcgY29udHJhY3QAAAAAD2ZpcnN0QWN0aXZlVm90ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAAA9hY3RpdmVWb3RlRmlyc3QCAAAAAAAAAAAQc2Vjb25kQWN0aXZlVm90ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAABBhY3RpdmVWb3RlU2Vjb25kAgAAAAAAAAAAD3RoaXJkQWN0aXZlVm90ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAAA9hY3RpdmVWb3RlVGhpcmQCAAAAAAAAAAAQY3VyclZvdGluZ1BlcmlvZAkAAGQAAAACBQAAAApiYXNlUGVyaW9kCQAAaQAAAAIJAABlAAAAAgUAAAAGaGVpZ2h0BQAAAAtzdGFydEhlaWdodAUAAAAMcGVyaW9kTGVuZ3RoAQAAAAdzdXNwZW5kAAAAAQAAAAVjYXVzZQkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAJa2V5QWN0aXZlBwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAhrZXlDYXVzZQUAAAAFY2F1c2UFAAAAA25pbAEAAAASdGhyb3dOb3RFbm91Z2hTV09QAAAAAAkAAAIAAAABAgAAAEZOb3QgZW5vdWdoIFNXT1A6IHVzZXJTV09QTG9ja2VkIC0gdXNlclRvdGFsVm90ZUFtb3VudCA8IHZvdGVTV09QQW1vdW50AQAAABNnZXRMYXN0SW50ZXJlc3RJbmZvAAAAAAQAAAAMbGFzdEludGVyZXN0CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAD2tleUxhc3RJbnRlcmVzdAAAAAAAAAAAAAUAAAAMbGFzdEludGVyZXN0AQAAABFnZXRVc2VyU1dPUExvY2tlZAAAAAEAAAAEdXNlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAARa2V5VXNlclNXT1BMb2NrZWQAAAAAAAAAAAABAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEAAAAEdXNlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50AAAAAAAAAAAAAQAAABZnZXRVc2VyVG90YWxWb3RlQW1vdW50AAAAAQAAAAR1c2VyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAEmtVc2VyVG90YWxWb3RlU1dPUAAAAAAAAAAAAAEAAAATZ2V0VXNlckludGVyZXN0SW5mbwAAAAIAAAAEdXNlcgAAAAxsYXN0SW50ZXJlc3QEAAAADnVzZXJTV09QQW1vdW50CQEAAAARZ2V0VXNlclNXT1BMb2NrZWQAAAABBQAAAAR1c2VyBAAAABB1c2VyTGFzdEludGVyZXN0CQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BAAAABV1c2VyTGFzdEludGVyZXN0VmFsdWUEAAAAByRtYXRjaDAFAAAAEHVzZXJMYXN0SW50ZXJlc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAQdXNlckxhc3RJbnRlcmVzdAUAAAAHJG1hdGNoMAUAAAAQdXNlckxhc3RJbnRlcmVzdAUAAAAMbGFzdEludGVyZXN0CQAFFAAAAAIFAAAAFXVzZXJMYXN0SW50ZXJlc3RWYWx1ZQUAAAAOdXNlclNXT1BBbW91bnQBAAAAIGdldFVzZXJUb3RhbFZvdGVBbW91bnRGb3JPbmVQb29sAAAAAgAAAARwb29sAAAABHVzZXIEAAAABnZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAAARwb29sAP//////////BAAAAA5oZWlnaHRPZlZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sCQABLAAAAAIJAAGkAAAAAQUAAAAGdm90aW5nBQAAAB9rZXlIZWlnaHRPZlBvb2xWb3RpbmdGb3JOZXdQb29sAAAAAAAAAAAABAAAAA5zdGF0dXNPZlZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sCQABLAAAAAIJAAGkAAAAAQUAAAAGdm90aW5nBQAAABtrZXlTdGF0dXNPZlZvdGluZ0Zvck5ld1Bvb2wGBAAAAA1jdXJyZW50SGVpZ2h0BQAAAAZoZWlnaHQDCQAAZgAAAAIAAAAAAAAAAAAFAAAABnZvdGluZwAAAAAAAAAAAAMJAQAAAAEhAAAAAQUAAAAOc3RhdHVzT2ZWb3RpbmcAAAAAAAAAAAADCQAAZgAAAAIFAAAADmhlaWdodE9mVm90aW5nBQAAAA1jdXJyZW50SGVpZ2h0CQAAZAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAQdm90aW5nRm9yTmV3UG9vbAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyAgAAAAFfCQABpAAAAAEFAAAABnZvdGluZwUAAAAWa2V5WWVzVm90aW5nRm9yTmV3UG9vbAAAAAAAAAAAAAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEFAAAABHVzZXICAAAAAV8JAAGkAAAAAQUAAAAGdm90aW5nBQAAABVrZXlOb1ZvdGluZ0Zvck5ld1Bvb2wAAAAAAAAAAAAAAAAAAAAAAAABAAAAIGdldFVzZXJUb3RhbFZvdGVGb3JOZXdQb29sQW1vdW50AAAAAQAAAAR1c2VyBAAAAAxsaXN0T2ZWb3RpbmcJAARMAAAAAgkBAAAAIGdldFVzZXJUb3RhbFZvdGVBbW91bnRGb3JPbmVQb29sAAAAAgUAAAAPZmlyc3RBY3RpdmVWb3RlBQAAAAR1c2VyCQAETAAAAAIJAQAAACBnZXRVc2VyVG90YWxWb3RlQW1vdW50Rm9yT25lUG9vbAAAAAIFAAAAEHNlY29uZEFjdGl2ZVZvdGUFAAAABHVzZXIJAARMAAAAAgkBAAAAIGdldFVzZXJUb3RhbFZvdGVBbW91bnRGb3JPbmVQb29sAAAAAgUAAAAPdGhpcmRBY3RpdmVWb3RlBQAAAAR1c2VyBQAAAANuaWwJAAGWAAAAAQUAAAAMbGlzdE9mVm90aW5nAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAACQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAEmtleVRvdGFsU1dPUExvY2tlZAAAAAAAAAAAAAEAAAAPZ2V0VXNlclZvdGVJbmZvAAAAAQAAAAR1c2VyBAAAAAskdDA2MDk3NjY0OAMJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAD2tVc2VyVG90YWxTdHJ1YwQAAAAEZGF0YQkABLUAAAACCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0CQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAAPa1VzZXJUb3RhbFN0cnVjAgAAABVFbXB0eSBrVXNlclRvdGFsU3RydWMCAAAAAV8JAAUVAAAAAwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAABGRhdGEAAAAAAAAAAAAJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAARkYXRhAAAAAAAAAAABCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAEZGF0YQAAAAAAAAAAAgQAAAAOdVBvb2xUb3RhbFNXT1AJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0CQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAASa1VzZXJUb3RhbFZvdGVTV09QAAAAAAAAAAAACQAFFQAAAAMFAAAADnVQb29sVG90YWxTV09QAAAAAAAAAAAABQAAABBjdXJyVm90aW5nUGVyaW9kBAAAABF1c2VyVG90YWxWb3RlU1dPUAgFAAAACyR0MDYwOTc2NjQ4AAAAAl8xBAAAAAt1c2VyVW52b3RlZAgFAAAACyR0MDYwOTc2NjQ4AAAAAl8yBAAAABF1c2VyVW52b3RlZFBlcmlvZAgFAAAACyR0MDYwOTc2NjQ4AAAAAl8zBAAAABF1c2VyVW52b3RlZEFjdHVhbAMJAAAAAAAAAgUAAAARdXNlclVudm90ZWRQZXJpb2QFAAAAEGN1cnJWb3RpbmdQZXJpb2QFAAAAC3VzZXJVbnZvdGVkAAAAAAAAAAAACQAFFAAAAAIFAAAAEXVzZXJUb3RhbFZvdGVTV09QBQAAABF1c2VyVW52b3RlZEFjdHVhbAEAAAAXZ2V0VXNlclZvdGVPcHRpb25BbW91bnQAAAABAAAABHVzZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAF2tleVVzZXJWb3RlT3B0aW9uQW1vdW50AAAAAAAAAAAAAQAAABRnZXRWb3RpbmdTdGFydEhlaWdodAAAAAEAAAAIdm90ZU5hbWUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAh2b3RlTmFtZQUAAAAUa2V5Vm90aW5nU3RhcnRIZWlnaHQAAAAAAAAAAAABAAAAE2dldFBvb2xVcGRhdGVIZWlnaHQAAAABAAAABHBvb2wJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sBQAAABVrZXlIZWlnaHRQb29sRnJhY3Rpb24AAAAAAAAAAAABAAAAGGlzRGVmaW5lUG9vbFVwZGF0ZUhlaWdodAAAAAEAAAAEcG9vbAkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAA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c3RJbnRlcmVzdEluZm8AAAAABAAAAAskdDA5MDU2OTEzNgkBAAAAE2dldFVzZXJJbnRlcmVzdEluZm8AAAACBQAAAAZjYWxsZXIFAAAADGxhc3RJbnRlcmVzdAQAAAAQdXNlckxhc3RJbnRlcmVzdAgFAAAACyR0MDkwNTY5MTM2AAAAAl8xBAAAAA51c2VyU1dPUExvY2tlZAgFAAAACyR0MDkwNTY5MTM2AAAAAl8yBAAAAAtjbGFpbUFtb3VudAkAAGsAAAADBQAAAA51c2VyU1dPUExvY2tlZAkAAGUAAAACBQAAAAxsYXN0SW50ZXJlc3QFAAAAEHVzZXJMYXN0SW50ZXJlc3QFAAAACnNjYWxlVmFsdWUEAAAAD3VzZXJOZXdJbnRlcmVzdAUAAAAMbGFzdEludGVyZXN0CQAFFAAAAAIFAAAAD3VzZXJOZXdJbnRlcmVzdAUAAAALY2xhaW1BbW91bnQAAAAIAAAAAWkBAAAAB2FpckRyb3AAAAAAAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50BAAAAAskdDA5NDAxOTQ3NgkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACXBtdEFtb3VudAgFAAAACyR0MDk0MDE5NDc2AAAAAl8xBAAAAApwbXRBc3NldElkCAUAAAALJHQwOTQwMTk0NzYAAAACXzIDCQEAAAACIT0AAAACBQAAAApwbXRBc3NldElkBQAAAARTV09QCQAAAgAAAAECAAAAFEluY29ycmVjdCBwbXRBc3NldElkBAAAAA90b3RhbFNXT1BMb2NrZWQJAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAABAAAAAxsYXN0SW50ZXJlc3QJAQAAABNnZXRMYXN0SW50ZXJlc3RJbmZvAAAAAAQAAAALaW50ZXJlc3ROZXcJAABkAAAAAgUAAAAMbGFzdEludGVyZXN0CQAAawAAAAMFAAAACXBtdEFtb3VudAUAAAAKc2NhbGVWYWx1ZQUAAAAPdG90YWxTV09QTG9ja2VkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9rZXlMYXN0SW50ZXJlc3QFAAAAC2ludGVyZXN0TmV3BQAAAANuaWwAAAABaQEAAAAIbG9ja1NXT1AAAAAAAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50BAAAAAskdDA5OTE0OTk4OQkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACXBtdEFtb3VudAgFAAAACyR0MDk5MTQ5OTg5AAAAAl8xBAAAAApwbXRBc3NldElkCAUAAAALJHQwOTkxNDk5ODkAAAACXzIDCQEAAAACIT0AAAACBQAAAApwbXRBc3NldElkBQAAAARTV09QCQAAAgAAAAECAAAAFEluY29ycmVjdCBwbXRBc3NldElkBAAAAAxsYXN0SW50ZXJlc3QJAQAAABNnZXRMYXN0SW50ZXJlc3RJbmZvAAAAAAQAAAANJHQwMTAxMDUxMDE4NwkBAAAAE2dldFVzZXJJbnRlcmVzdEluZm8AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAADGxhc3RJbnRlcmVzdAQAAAAQdXNlckxhc3RJbnRlcmVzdAgFAAAADSR0MDEwMTA1MTAxODcAAAACXzEEAAAADnVzZXJTV09QTG9ja2VkCAUAAAANJHQwMTAxMDUxMDE4NwAAAAJfMgQAAAALY2xhaW1BbW91bnQJAABrAAAAAwUAAAAOdXNlclNXT1BMb2NrZWQJAABlAAAAAgUAAAAMbGFzdEludGVyZXN0BQAAABB1c2VyTGFzdEludGVyZXN0BQAAAApzY2FsZVZhbHVlBAAAABF1c2VyU1dPUExvY2tlZE5ldwkAAGQAAAACCQAAZAAAAAIFAAAADnVzZXJTV09QTG9ja2VkBQAAAAlwbXRBbW91bnQFAAAAC2NsYWltQW1vdW50BAAAAA91c2VyTmV3SW50ZXJlc3QFAAAADGxhc3RJbnRlcmVzdAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAASdG90YWxTV09QTG9ja2VkTmV3CQAAZAAAAAIJAABkAAAAAgUAAAAPdG90YWxTV09QTG9ja2VkBQAAAAlwbXRBbW91bnQFAAAAC2NsYWltQW1vdW50BAAAABF1c2VyQ2xhaW1lZEFtb3VudAkBAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAABkAAAAAgUAAAARdXNlckNsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BQAAAA91c2VyTmV3SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAEWtleVVzZXJTV09QTG9ja2VkBQAAABF1c2VyU1dPUExvY2tlZE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5VG90YWxTV09QTG9ja2VkBQAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAGGtleVVzZXJTV09QQ2xhaW1lZEFtb3VudAUAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAHGtleVVzZXJTV09QTGFzdENsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50BQAAAANuaWwAAAABaQEAAAAMd2l0aGRyYXdTV09QAAAAAQAAAA53aXRoZHJhd0Ftb3VudAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAMJAABnAAAAAgAAAAAAAAAAAAUAAAAOd2l0aGRyYXdBbW91bnQJAAACAAAAAQIAAAATd2l0aGRyYXdBbW91bnQgPD0gMAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAAOdXNlclNXT1BMb2NrZWQJAQAAABFnZXRVc2VyU1dPUExvY2tlZAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAANJHQwMTEzMzcxMTM5MgkBAAAACWNsYWltQ2FsYwAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAPdXNlck5ld0ludGVyZXN0CAUAAAANJHQwMTEzMzcxMTM5MgAAAAJfMQQAAAALY2xhaW1BbW91bnQIBQAAAA0kdDAxMTMzNzExMzkyAAAAAl8yBAAAAA0kdDAxMTM5NzExNDYyCQEAAAAPZ2V0VXNlclZvdGVJbmZvAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA51c2VyVm90ZUFtb3VudAgFAAAADSR0MDExMzk3MTE0NjIAAAACXzEEAAAAEHVzZXJVbnZvdGVBbW91bnQIBQAAAA0kdDAxMTM5NzExNDYyAAAAAl8yBAAAABh1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wJAQAAACBnZXRVc2VyVG90YWxWb3RlRm9yTmV3UG9vbEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgMDAwkAAGYAAAACAAAAAAAAAAAABQAAABB1c2VyVW52b3RlQW1vdW50BgkAAGYAAAACAAAAAAAAAAAABQAAAA51c2VyVm90ZUFtb3VudAYJAABmAAAAAgAAAAAAAAAAAAUAAAAYdXNlclZvdGVBbW91bnRGb3JOZXdQb29sCQAAAgAAAAECAAAASnVzZXJVbnZvdGVBbW91bnQgPCAwIHx8IHVzZXJWb3RlQW1vdW50IDwgMCB8fCB1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wgPCAwBAAAABJhdmFpbGFibGVUb1Vuc3Rha2UJAABlAAAAAgUAAAAOdXNlclNXT1BMb2NrZWQJAAGWAAAAAQkABEwAAAACBQAAABh1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wJAARMAAAAAgkAAGQAAAACBQAAAA51c2VyVm90ZUFtb3VudAUAAAAQdXNlclVudm90ZUFtb3VudAUAAAADbmlsAwkAAGYAAAACBQAAAA53aXRoZHJhd0Ftb3VudAUAAAASYXZhaWxhYmxlVG9VbnN0YWtlCQAAAgAAAAECAAAAI3dpdGhkcmF3QW1vdW50ID4gYXZhaWxhYmxlVG9VbnN0YWtlBAAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAABlAAAAAgkAAGQAAAACBQAAAA90b3RhbFNXT1BMb2NrZWQFAAAAC2NsYWltQW1vdW50BQAAAA53aXRoZHJhd0Ftb3VudAQAAAARdXNlclNXT1BhbW91bnROZXcJAABlAAAAAgkAAGQAAAACBQAAAA51c2VyU1dPUExvY2tlZAUAAAALY2xhaW1BbW91bnQFAAAADndpdGhkcmF3QW1vdW50BAAAABF1c2VyQ2xhaW1lZEFtb3VudAkBAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAABkAAAAAgUAAAARdXNlckNsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BQAAAA91c2VyTmV3SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAEWtleVVzZXJTV09QTG9ja2VkBQAAABF1c2VyU1dPUGFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5VG90YWxTV09QTG9ja2VkBQAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAA53aXRoZHJhd0Ftb3VudAUAAAAEU1dPUAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50BQAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQFAAAAA25pbAAAAAFpAQAAABRjbGFpbUFuZFdpdGhkcmF3U1dPUAAAAAADCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQEAAAADGxhc3RJbnRlcmVzdAkBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAA0kdDAxMjgzNzEyODkyCQEAAAAJY2xhaW1DYWxjAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA91c2VyTmV3SW50ZXJlc3QIBQAAAA0kdDAxMjgzNzEyODkyAAAAAl8xBAAAAAtjbGFpbUFtb3VudAgFAAAADSR0MDEyODM3MTI4OTIAAAACXzIEAAAAEXVzZXJDbGFpbWVkQW1vdW50CQEAAAAYZ2V0VXNlclNXT1BDbGFpbWVkQW1vdW50AAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkAAGQAAAACBQAAABF1c2VyQ2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQDCQAAAAAAAAIFAAAAC2NsYWltQW1vdW50AAAAAAAAAAAACQAAAgAAAAECAAAAGVlvdSBoYXZlIDAgYXZhaWxhYmxlIFNXT1AJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QFAAAAD3VzZXJOZXdJbnRlcmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50BQAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAtjbGFpbUFtb3VudAUAAAAEU1dPUAUAAAADbmlsAAAAAWkBAAAAEWNsYWltQW5kU3Rha2VTV09QAAAAAAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAAOdXNlclNXT1BMb2NrZWQJAQAAABFnZXRVc2VyU1dPUExvY2tlZAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAMbGFzdEludGVyZXN0CQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAADSR0MDEzNjcxMTM3MjYJAQAAAAljbGFpbUNhbGMAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAD3VzZXJOZXdJbnRlcmVzdAgFAAAADSR0MDEzNjcxMTM3MjYAAAACXzEEAAAAC2NsYWltQW1vdW50CAUAAAANJHQwMTM2NzExMzcyNgAAAAJfMgQAAAARdXNlclNXT1BMb2NrZWROZXcJAABkAAAAAgUAAAAOdXNlclNXT1BMb2NrZWQFAAAAC2NsYWltQW1vdW50BAAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAABkAAAAAgUAAAAPdG90YWxTV09QTG9ja2VkBQAAAAtjbGFpbUFtb3VudAQAAAARdXNlckNsYWltZWRBbW91bnQJAQAAABhnZXRVc2VyU1dPUENsYWltZWRBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAAZAAAAAIFAAAAEXVzZXJDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAMJAAAAAAAAAgUAAAALY2xhaW1BbW91bnQAAAAAAAAAAAAJAAACAAAAAQIAAAAZWW91IGhhdmUgMCBhdmFpbGFibGUgU1dPUAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAATa2V5VXNlckxhc3RJbnRlcmVzdAUAAAAPdXNlck5ld0ludGVyZXN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJrZXlUb3RhbFNXT1BMb2NrZWQFAAAAEnRvdGFsU1dPUExvY2tlZE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAARa2V5VXNlclNXT1BMb2NrZWQFAAAAEXVzZXJTV09QTG9ja2VkTmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQFAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAUAAAADbmlsAAAAAWkBAAAADXVwZGF0ZVdlaWdodHMAAAAEAAAADGN1cnJlbnRQb29scwAAAA5jdXJyZW50UmV3YXJkcwAAABJyZXdhcmRVcGRhdGVIZWlnaHQAAAAKcGFnaW5hdGlvbgMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAQAAAALYW1vdW50UG9vbHMAAAAAAAAAAAoEAAAAF3RvdGFsUmV3YXJkVXBkYXRlSGVpZ2h0CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAFWtleVJld2FyZFVwZGF0ZUhlaWdodAAAAAAAAAAAAAMJAQAAAAEhAAAAAQkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkxCQAETAAAAAIFAAAADGFkbWluUHViS2V5MgkABEwAAAACBQAAAAxhZG1pblB1YktleTMJAARMAAAAAgUAAAAUYWRtaW5QdWJLZXlTdGFydFN0b3AJAARMAAAAAgUAAAARYWRtaW5QdWJLZXlXYWxsZXQFAAAAA25pbAgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAAAgAAAAECAAAAIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgMJAABmAAAAAgkAAZAAAAABBQAAAAxjdXJyZW50UG9vbHMFAAAAC2Ftb3VudFBvb2xzCQAAAgAAAAEJAAEsAAAAAgIAAAAWTWF4IGFtb3VudCBvZiBwb29sIGlzIAkAAaQAAAABBQAAAAthbW91bnRQb29scwMJAABnAAAAAgUAAAAXdG90YWxSZXdhcmRVcGRhdGVIZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAkAAAIAAAABAgAAAC1yZXdhcmRVcGRhdGVIZWlnaHQgPD0gdG90YWxSZXdhcmRVcGRhdGVIZWlnaHQDCQAAZwAAAAIFAAAABmhlaWdodAUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0CQAAAgAAAAECAAAAHGhlaWdodCA+PSByZXdhcmRVcGRhdGVIZWlnaHQDCQAAZwAAAAIAAAAAAAAAAAAFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAkAAAIAAAABAgAAABgwID49IHJld2FyZFVwZGF0ZUhlaWdodCAKAQAAAANzdW0AAAACAAAAAWEAAAABYgkAAGQAAAACBQAAAAFhBQAAAAFiCgEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIAAAALYWNjdW11bGF0ZWQAAAAEcG9vbAQAAAAWcG9vbFJld2FyZFVwZGF0ZUhlaWdodAkBAAAAE2dldFBvb2xVcGRhdGVIZWlnaHQAAAABBQAAAARwb29sAwMJAQAAAAEhAAAAAQkBAAAAGGlzRGVmaW5lUG9vbFVwZGF0ZUhlaWdodAAAAAEFAAAABHBvb2wGAwkBAAAAAiE9AAAAAgUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0BQAAABZwb29sUmV3YXJkVXBkYXRlSGVpZ2h0CQAAAAAAAAIFAAAAFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQFAAAAF3RvdGFsUmV3YXJkVXBkYXRlSGVpZ2h0BwQAAAAKcG9vbFJld2FyZAkBAAAAEGdldEN1clBvb2xXZWlnaHQAAAABBQAAAARwb29sCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wFAAAAHWtleVJld2FyZFBvb2xGcmFjdGlvblByZXZpb3VzBQAAAApwb29sUmV3YXJkBQAAAAthY2N1bXVsYXRlZAQAAAAKcG9vbFJld2FyZAkBAAAAEWdldFByZXZQb29sV2VpZ2h0AAAAAQUAAAAEcG9vbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sBQAAAB1rZXlSZXdhcmRQb29sRnJhY3Rpb25QcmV2aW91cwUAAAAKcG9vbFJld2FyZAUAAAALYWNjdW11bGF0ZWQKAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACAAAAC2FjY3VtdWxhdGVkAAAABHBvb2wEAAAACXBvb2xJbmRleAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAxjdXJyZW50UG9vbHMFAAAABHBvb2wEAAAACnBvb2xSZXdhcmQJAAGRAAAAAgUAAAAOY3VycmVudFJld2FyZHMFAAAACXBvb2xJbmRleAMJAABmAAAAAgAAAAAAAAAAAAUAAAAKcG9vbFJld2FyZAkAAAIAAAABAgAAAA5Qb29sUmV3YXJkIDwgMAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sBQAAABxrZXlSZXdhcmRQb29sRnJhY3Rpb25DdXJyZW50BQAAAApwb29sUmV3YXJkBQAAAAthY2N1bXVsYXRlZAoBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgAAAAthY2N1bXVsYXRlZAAAAARwb29sBAAAAApwb29sSGVpZ2h0BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAEcG9vbAUAAAAVa2V5SGVpZ2h0UG9vbEZyYWN0aW9uBQAAAApwb29sSGVpZ2h0BQAAAAthY2N1bXVsYXRlZAoBAAAADGdldFN1bVJld2FyZAAAAAIAAAAKY3VyVGVtcFN1bQAAAApwYWdpbmF0aW9uAwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAAAAwkAAGYAAAACBQAAAApjdXJUZW1wU3VtBQAAAA50b3RhbFZvdGVTaGFyZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAEpzdW1SZXdhcmRQcmV2aW91cyA+IHRvdGFsVm90ZVNoYXJlIG9yIHN1bVJld2FyZEN1cnJlbnQgPiB0b3RhbFZvdGVTaGFyZSAtIAkAAaQAAAABBQAAAApwYWdpbmF0aW9uAgAAAAEgCQABpAAAAAEFAAAACmN1clRlbXBTdW0JAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5VGVtcEN1clN1bQUAAAAKY3VyVGVtcFN1bQUAAAADbmlsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAACRrZXlSZXdhcmRVcGRhdGVGaXJzdFBhZ2luYXRpb25IZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAUAAAADbmlsAwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAABBAAAABFjdXJUZW1wU3VtRnJvbUtleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA1rZXlUZW1wQ3VyU3VtAAAAAAAAAAAABAAAACZyZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAACRrZXlSZXdhcmRVcGRhdGVGaXJzdFBhZ2luYXRpb25IZWlnaHQAAAAAAAAAAAADCQAAZgAAAAIJAABkAAAAAgUAAAAKY3VyVGVtcFN1bQUAAAARY3VyVGVtcFN1bUZyb21LZXkFAAAADnRvdGFsVm90ZVNoYXJlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAASnN1bVJld2FyZFByZXZpb3VzID4gdG90YWxWb3RlU2hhcmUgb3Igc3VtUmV3YXJkQ3VycmVudCA+IHRvdGFsVm90ZVNoYXJlIC0gCQABpAAAAAEFAAAACnBhZ2luYXRpb24CAAAAASAJAAGkAAAAAQkAAGQAAAACBQAAAApjdXJUZW1wU3VtBQAAABFjdXJUZW1wU3VtRnJvbUtleQMJAQAAAAIhPQAAAAIFAAAAJnJld2FyZFVwZGF0ZUhlaWdodEZpcnN0UGFnaW5hdGlvbkVudHJ5BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQJAAACAAAAAQIAAABEY3VycmVudCByZXdhcmRVcGRhdGVIZWlnaHQgIT0gcmV3YXJkVXBkYXRlSGVpZ2h0Rmlyc3RQYWdpbmF0aW9uRW50cnkJAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5VGVtcEN1clN1bQkAAGQAAAACBQAAAApjdXJUZW1wU3VtBQAAABFjdXJUZW1wU3VtRnJvbUtleQUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAACnBhZ2luYXRpb24AAAAAAAAAAAIEAAAABmN1clN1bQkAAGQAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAADWtleVRlbXBDdXJTdW0AAAAAAAAAAAAFAAAACmN1clRlbXBTdW0EAAAAJnJld2FyZFVwZGF0ZUhlaWdodEZpcnN0UGFnaW5hdGlvbkVudHJ5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAJGtleVJld2FyZFVwZGF0ZUZpcnN0UGFnaW5hdGlvbkhlaWdodAAAAAAAAAAAAAMJAQAAAAIhPQAAAAIFAAAABmN1clN1bQUAAAAOdG90YWxWb3RlU2hhcmUJAAACAAAAAQIAAABJc3VtUmV3YXJkUHJldmlvdXMgIT0gdG90YWxWb3RlU2hhcmUgb3Igc3VtUmV3YXJkQ3VycmVudCAhPSB0b3RhbFZvdGVTaGFyZQMJAQAAAAIhPQAAAAIFAAAAJnJld2FyZFVwZGF0ZUhlaWdodEZpcnN0UGFnaW5hdGlvbkVudHJ5BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQJAAACAAAAAQIAAABEY3VycmVudCByZXdhcmRVcGRhdGVIZWlnaHQgIT0gcmV3YXJkVXBkYXRlSGVpZ2h0Rmlyc3RQYWdpbmF0aW9uRW50cnkJAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5VGVtcEN1clN1bQUAAAAGY3VyU3VtBQAAAANuaWwFAAAAA25pbAkAAAIAAAABAgAAABRJbmNvcnJlY3QgcGFnaW5hdGlvbgQAAAAWcHJldmlvdXNSZXdhcmRFbnRyeU5ldwQAAAAPJGxpc3QxODU5ODE4NjUwBQAAAAxjdXJyZW50UG9vbHMEAAAADyRzaXplMTg1OTgxODY1MAkAAZAAAAABBQAAAA8kbGlzdDE4NTk4MTg2NTAEAAAADyRhY2MwMTg1OTgxODY1MAUAAAADbmlsAwkAAAAAAAACBQAAAA8kc2l6ZTE4NTk4MTg2NTAAAAAAAAAAAAAFAAAADyRhY2MwMTg1OTgxODY1MAQAAAAPJGFjYzExODU5ODE4NjUwCQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MwMTg1OTgxODY1MAkAAZEAAAACBQAAAA8kbGlzdDE4NTk4MTg2NTAAAAAAAAAAAAADCQAAAAAAAAIFAAAADyRzaXplMTg1OTgxODY1MAAAAAAAAAAAAQUAAAAPJGFjYzExODU5ODE4NjUwBAAAAA8kYWNjMjE4NTk4MTg2NTAJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzExODU5ODE4NjUwCQABkQAAAAIFAAAADyRsaXN0MTg1OTgxODY1MAAAAAAAAAAAAQMJAAAAAAAAAgUAAAAPJHNpemUxODU5ODE4NjUwAAAAAAAAAAACBQAAAA8kYWNjMjE4NTk4MTg2NTAEAAAADyRhY2MzMTg1OTgxODY1MAkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMjE4NTk4MTg2NTAJAAGRAAAAAgUAAAAPJGxpc3QxODU5ODE4NjUwAAAAAAAAAAACAwkAAAAAAAACBQAAAA8kc2l6ZTE4NTk4MTg2NTAAAAAAAAAAAAMFAAAADyRhY2MzMTg1OTgxODY1MAQAAAAPJGFjYzQxODU5ODE4NjUwCQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MzMTg1OTgxODY1MAkAAZEAAAACBQAAAA8kbGlzdDE4NTk4MTg2NTAAAAAAAAAAAAMDCQAAAAAAAAIFAAAADyRzaXplMTg1OTgxODY1MAAAAAAAAAAABAUAAAAPJGFjYzQxODU5ODE4NjUwBAAAAA8kYWNjNTE4NTk4MTg2NTAJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzQxODU5ODE4NjUwCQABkQAAAAIFAAAADyRsaXN0MTg1OTgxODY1MAAAAAAAAAAABAMJAAAAAAAAAgUAAAAPJHNpemUxODU5ODE4NjUwAAAAAAAAAAAFBQAAAA8kYWNjNTE4NTk4MTg2NTAEAAAADyRhY2M2MTg1OTgxODY1MAkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjNTE4NTk4MTg2NTAJAAGRAAAAAgUAAAAPJGxpc3QxODU5ODE4NjUwAAAAAAAAAAAFAwkAAAAAAAACBQAAAA8kc2l6ZTE4NTk4MTg2NTAAAAAAAAAAAAYFAAAADyRhY2M2MTg1OTgxODY1MAQAAAAPJGFjYzcxODU5ODE4NjUwCQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M2MTg1OTgxODY1MAkAAZEAAAACBQAAAA8kbGlzdDE4NTk4MTg2NTAAAAAAAAAAAAYDCQAAAAAAAAIFAAAADyRzaXplMTg1OTgxODY1MAAAAAAAAAAABwUAAAAPJGFjYzcxODU5ODE4NjUwBAAAAA8kYWNjODE4NTk4MTg2NTAJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzcxODU5ODE4NjUwCQABkQAAAAIFAAAADyRsaXN0MTg1OTgxODY1MAAAAAAAAAAABwMJAAAAAAAAAgUAAAAPJHNpemUxODU5ODE4NjUwAAAAAAAAAAAIBQAAAA8kYWNjODE4NTk4MTg2NTAEAAAADyRhY2M5MTg1OTgxODY1MAkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjODE4NTk4MTg2NTAJAAGRAAAAAgUAAAAPJGxpc3QxODU5ODE4NjUwAAAAAAAAAAAIAwkAAAAAAAACBQAAAA8kc2l6ZTE4NTk4MTg2NTAAAAAAAAAAAAkFAAAADyRhY2M5MTg1OTgxODY1MAQAAAAQJGFjYzEwMTg1OTgxODY1MAkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjOTE4NTk4MTg2NTAJAAGRAAAAAgUAAAAPJGxpc3QxODU5ODE4NjUwAAAAAAAAAAAJAwkAAAAAAAACBQAAAA8kc2l6ZTE4NTk4MTg2NTAAAAAAAAAAAAoFAAAAECRhY2MxMDE4NTk4MTg2NTAEAAAAECRhY2MxMTE4NTk4MTg2NTAJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAQJGFjYzEwMTg1OTgxODY1MAkAAZEAAAACBQAAAA8kbGlzdDE4NTk4MTg2NTAAAAAAAAAAAAoJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZCAxMAQAAAAVY3VycmVudFJld2FyZEVudHJ5TmV3BAAAAA8kbGlzdDE4NjgzMTg3MzUFAAAADGN1cnJlbnRQb29scwQAAAAPJHNpemUxODY4MzE4NzM1CQABkAAAAAEFAAAADyRsaXN0MTg2ODMxODczNQQAAAAPJGFjYzAxODY4MzE4NzM1BQAAAANuaWwDCQAAAAAAAAIFAAAADyRzaXplMTg2ODMxODczNQAAAAAAAAAAAAUAAAAPJGFjYzAxODY4MzE4NzM1BAAAAA8kYWNjMTE4NjgzMTg3MzUJAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMDE4NjgzMTg3MzUJAAGRAAAAAgUAAAAPJGxpc3QxODY4MzE4NzM1AAAAAAAAAAAAAwkAAAAAAAACBQAAAA8kc2l6ZTE4NjgzMTg3MzUAAAAAAAAAAAEFAAAADyRhY2MxMTg2ODMxODczNQQAAAAPJGFjYzIxODY4MzE4NzM1CQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzExODY4MzE4NzM1CQABkQAAAAIFAAAADyRsaXN0MTg2ODMxODczNQAAAAAAAAAAAQMJAAAAAAAAAgUAAAAPJHNpemUxODY4MzE4NzM1AAAAAAAAAAACBQAAAA8kYWNjMjE4NjgzMTg3MzUEAAAADyRhY2MzMTg2ODMxODczNQkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MyMTg2ODMxODczNQkAAZEAAAACBQAAAA8kbGlzdDE4NjgzMTg3MzUAAAAAAAAAAAIDCQAAAAAAAAIFAAAADyRzaXplMTg2ODMxODczNQAAAAAAAAAAAwUAAAAPJGFjYzMxODY4MzE4NzM1BAAAAA8kYWNjNDE4NjgzMTg3MzUJAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMzE4NjgzMTg3MzUJAAGRAAAAAgUAAAAPJGxpc3QxODY4MzE4NzM1AAAAAAAAAAADAwkAAAAAAAACBQAAAA8kc2l6ZTE4NjgzMTg3MzUAAAAAAAAAAAQFAAAADyRhY2M0MTg2ODMxODczNQQAAAAPJGFjYzUxODY4MzE4NzM1CQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzQxODY4MzE4NzM1CQABkQAAAAIFAAAADyRsaXN0MTg2ODMxODczNQAAAAAAAAAABAMJAAAAAAAAAgUAAAAPJHNpemUxODY4MzE4NzM1AAAAAAAAAAAFBQAAAA8kYWNjNTE4NjgzMTg3MzUEAAAADyRhY2M2MTg2ODMxODczNQkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M1MTg2ODMxODczNQkAAZEAAAACBQAAAA8kbGlzdDE4NjgzMTg3MzUAAAAAAAAAAAUDCQAAAAAAAAIFAAAADyRzaXplMTg2ODMxODczNQAAAAAAAAAABgUAAAAPJGFjYzYxODY4MzE4NzM1BAAAAA8kYWNjNzE4NjgzMTg3MzUJAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjNjE4NjgzMTg3MzUJAAGRAAAAAgUAAAAPJGxpc3QxODY4MzE4NzM1AAAAAAAAAAAGAwkAAAAAAAACBQAAAA8kc2l6ZTE4NjgzMTg3MzUAAAAAAAAAAAcFAAAADyRhY2M3MTg2ODMxODczNQQAAAAPJGFjYzgxODY4MzE4NzM1CQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzcxODY4MzE4NzM1CQABkQAAAAIFAAAADyRsaXN0MTg2ODMxODczNQAAAAAAAAAABwMJAAAAAAAAAgUAAAAPJHNpemUxODY4MzE4NzM1AAAAAAAAAAAIBQAAAA8kYWNjODE4NjgzMTg3MzUEAAAADyRhY2M5MTg2ODMxODczNQkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M4MTg2ODMxODczNQkAAZEAAAACBQAAAA8kbGlzdDE4NjgzMTg3MzUAAAAAAAAAAAgDCQAAAAAAAAIFAAAADyRzaXplMTg2ODMxODczNQAAAAAAAAAACQUAAAAPJGFjYzkxODY4MzE4NzM1BAAAABAkYWNjMTAxODY4MzE4NzM1CQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzkxODY4MzE4NzM1CQABkQAAAAIFAAAADyRsaXN0MTg2ODMxODczNQAAAAAAAAAACQMJAAAAAAAAAgUAAAAPJHNpemUxODY4MzE4NzM1AAAAAAAAAAAKBQAAABAkYWNjMTAxODY4MzE4NzM1BAAAABAkYWNjMTExODY4MzE4NzM1CQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAQJGFjYzEwMTg2ODMxODczNQkAAZEAAAACBQAAAA8kbGlzdDE4NjgzMTg3MzUAAAAAAAAAAAoJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZCAxMAQAAAARaGVpZ2h0RW50cnlOZXdDdXIEAAAADyRsaXN0MTg3NjQxODgwOQUAAAAMY3VycmVudFBvb2xzBAAAAA8kc2l6ZTE4NzY0MTg4MDkJAAGQAAAAAQUAAAAPJGxpc3QxODc2NDE4ODA5BAAAAA8kYWNjMDE4NzY0MTg4MDkFAAAAA25pbAMJAAAAAAAAAgUAAAAPJHNpemUxODc2NDE4ODA5AAAAAAAAAAAABQAAAA8kYWNjMDE4NzY0MTg4MDkEAAAADyRhY2MxMTg3NjQxODgwOQkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzAxODc2NDE4ODA5CQABkQAAAAIFAAAADyRsaXN0MTg3NjQxODgwOQAAAAAAAAAAAAMJAAAAAAAAAgUAAAAPJHNpemUxODc2NDE4ODA5AAAAAAAAAAABBQAAAA8kYWNjMTE4NzY0MTg4MDkEAAAADyRhY2MyMTg3NjQxODgwOQkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzExODc2NDE4ODA5CQABkQAAAAIFAAAADyRsaXN0MTg3NjQxODgwOQAAAAAAAAAAAQMJAAAAAAAAAgUAAAAPJHNpemUxODc2NDE4ODA5AAAAAAAAAAACBQAAAA8kYWNjMjE4NzY0MTg4MDkEAAAADyRhY2MzMTg3NjQxODgwOQkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzIxODc2NDE4ODA5CQABkQAAAAIFAAAADyRsaXN0MTg3NjQxODgwOQAAAAAAAAAAAgMJAAAAAAAAAgUAAAAPJHNpemUxODc2NDE4ODA5AAAAAAAAAAADBQAAAA8kYWNjMzE4NzY0MTg4MDkEAAAADyRhY2M0MTg3NjQxODgwOQkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzMxODc2NDE4ODA5CQABkQAAAAIFAAAADyRsaXN0MTg3NjQxODgwOQAAAAAAAAAAAwMJAAAAAAAAAgUAAAAPJHNpemUxODc2NDE4ODA5AAAAAAAAAAAEBQAAAA8kYWNjNDE4NzY0MTg4MDkEAAAADyRhY2M1MTg3NjQxODgwOQkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzQxODc2NDE4ODA5CQABkQAAAAIFAAAADyRsaXN0MTg3NjQxODgwOQAAAAAAAAAABAMJAAAAAAAAAgUAAAAPJHNpemUxODc2NDE4ODA5AAAAAAAAAAAFBQAAAA8kYWNjNTE4NzY0MTg4MDkEAAAADyRhY2M2MTg3NjQxODgwOQkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzUxODc2NDE4ODA5CQABkQAAAAIFAAAADyRsaXN0MTg3NjQxODgwOQAAAAAAAAAABQMJAAAAAAAAAgUAAAAPJHNpemUxODc2NDE4ODA5AAAAAAAAAAAGBQAAAA8kYWNjNjE4NzY0MTg4MDkEAAAADyRhY2M3MTg3NjQxODgwOQkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzYxODc2NDE4ODA5CQABkQAAAAIFAAAADyRsaXN0MTg3NjQxODgwOQAAAAAAAAAABgMJAAAAAAAAAgUAAAAPJHNpemUxODc2NDE4ODA5AAAAAAAAAAAHBQAAAA8kYWNjNzE4NzY0MTg4MDkEAAAADyRhY2M4MTg3NjQxODgwOQkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzcxODc2NDE4ODA5CQABkQAAAAIFAAAADyRsaXN0MTg3NjQxODgwOQAAAAAAAAAABwMJAAAAAAAAAgUAAAAPJHNpemUxODc2NDE4ODA5AAAAAAAAAAAIBQAAAA8kYWNjODE4NzY0MTg4MDkEAAAADyRhY2M5MTg3NjQxODgwOQkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzgxODc2NDE4ODA5CQABkQAAAAIFAAAADyRsaXN0MTg3NjQxODgwOQAAAAAAAAAACAMJAAAAAAAAAgUAAAAPJHNpemUxODc2NDE4ODA5AAAAAAAAAAAJBQAAAA8kYWNjOTE4NzY0MTg4MDkEAAAAECRhY2MxMDE4NzY0MTg4MDkJAQAAABFjaGFuZ2VIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2M5MTg3NjQxODgwOQkAAZEAAAACBQAAAA8kbGlzdDE4NzY0MTg4MDkAAAAAAAAAAAkDCQAAAAAAAAIFAAAADyRzaXplMTg3NjQxODgwOQAAAAAAAAAACgUAAAAQJGFjYzEwMTg3NjQxODgwOQQAAAAQJGFjYzExMTg3NjQxODgwOQkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAQJGFjYzEwMTg3NjQxODgwOQkAAZEAAAACBQAAAA8kbGlzdDE4NzY0MTg4MDkAAAAAAAAAAAoJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZCAxMAQAAAAUc3VtUmV3YXJkQ3VycmVudFRlbXAEAAAADyRsaXN0MTg4NDMxODg3NQUAAAAOY3VycmVudFJld2FyZHMEAAAADyRzaXplMTg4NDMxODg3NQkAAZAAAAABBQAAAA8kbGlzdDE4ODQzMTg4NzUE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dDAxODg4MTE4OTkyAAAAAl8xBAAAACZyZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQgFAAAADSR0MDE4ODgxMTg5OTIAAAACXzIEAAAAF3Jld2FyZFVwZGF0ZUhlaWdodEVudHJ5AwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABVrZXlSZXdhcmRVcGRhdGVIZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAUAAAADbmlsBQAAAANuaWwDCQAAZgAAAAIFAAAABmhlaWdodAUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0CQAAAgAAAAECAAAAG3Jld2FyZFVwZGF0ZUhlaWdodCA8IGhlaWdodAkABE4AAAACCQAETgAAAAIJAAROAAAAAgkABE4AAAACCQAETgAAAAIFAAAAFnByZXZpb3VzUmV3YXJkRW50cnlOZXcFAAAAFWN1cnJlbnRSZXdhcmRFbnRyeU5ldwUAAAARaGVpZ2h0RW50cnlOZXdDdXIFAAAAEHN1bVJld2FyZEN1cnJlbnQFAAAAF3Jld2FyZFVwZGF0ZUhlaWdodEVudHJ5BQAAACZyZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQAAAAFpAQAAAAhzaHV0ZG93bgAAAAADCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAEJAAEsAAAAAgIAAAAiREFwcCBpcyBhbHJlYWR5IHN1c3BlbmRlZC4gQ2F1c2U6IAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAAhrZXlDYXVzZQIAAAAadGhlIGNhdXNlIHdhc24ndCBzcGVjaWZpZWQDCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAADGFkbWluUHViS2V5MQkABEwAAAACBQAAAAxhZG1pblB1YktleTIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkzCQAETAAAAAIFAAAAFGFkbWluUHViS2V5U3RhcnRTdG9wBQAAAANuaWwIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAACFPbmx5IGFkbWluIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24JAQAAAAdzdXNwZW5kAAAAAQIAAAAPUGF1c2VkIGJ5IGFkbWluAAAAAWkBAAAACGFjdGl2YXRlAAAAAAMFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAFkRBcHAgaXMgYWxyZWFkeSBhY3RpdmUDCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAADGFkbWluUHViS2V5MQkABEwAAAACBQAAAAxhZG1pblB1YktleTIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkzCQAETAAAAAIFAAAAFGFkbWluUHViS2V5U3RhcnRTdG9wBQAAAANuaWwIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAACFPbmx5IGFkbWluIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24JAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAACWtleUFjdGl2ZQYJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAIa2V5Q2F1c2UFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5MhXD/g==", "height": 1575900, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BLZFYM37ieWNe69oKA4uapWkKVScrq3hZB6UhdkD1WA3 Next: 56n7J4K8cqhiw3Aw6UsvT2FNwpoXHucJnSqbKVxhLPT6 Diff:
OldNewDifferences
136136 func getUserTotalVoteAmount (user) = valueOrElse(getInteger(votingLiteContract, (toString(user) + kUserTotalVoteSWOP)), 0)
137137
138138
139-func getPrevPoolWeight (pool) = valueOrElse(getInteger(this, (pool + keyRewardPoolFractionPrevious)), 0)
140-
141-
142139 func getUserInterestInfo (user,lastInterest) = {
143140 let userSWOPAmount = getUserSWOPLocked(user)
144141 let userLastInterest = getInteger(this, (toString(user) + keyUserLastInterest))
177174
178175
179176 func getUserVoteInfo (user) = {
180- let $t061146665 = if (isDefined(getString(votingLiteContract, (toString(user) + kUserTotalStruc))))
177+ let $t060976648 = if (isDefined(getString(votingLiteContract, (toString(user) + kUserTotalStruc))))
181178 then {
182179 let data = split(valueOrErrorMessage(getString(votingLiteContract, (toString(user) + kUserTotalStruc)), "Empty kUserTotalStruc"), "_")
183180 $Tuple3(parseIntValue(data[0]), parseIntValue(data[1]), parseIntValue(data[2]))
186183 let uPoolTotalSWOP = valueOrElse(getInteger(votingLiteContract, (toString(user) + kUserTotalVoteSWOP)), 0)
187184 $Tuple3(uPoolTotalSWOP, 0, currVotingPeriod)
188185 }
189- let userTotalVoteSWOP = $t061146665._1
190- let userUnvoted = $t061146665._2
191- let userUnvotedPeriod = $t061146665._3
186+ let userTotalVoteSWOP = $t060976648._1
187+ let userUnvoted = $t060976648._2
188+ let userUnvotedPeriod = $t060976648._3
192189 let userUnvotedActual = if ((userUnvotedPeriod == currVotingPeriod))
193190 then userUnvoted
194191 else 0
209206
210207
211208 func getCurPoolWeight (pool) = valueOrElse(getInteger(this, (pool + keyRewardPoolFractionCurrent)), 0)
209+
210+
211+func getPrevPoolWeight (pool) = valueOrElse(getInteger(this, (pool + keyRewardPoolFractionPrevious)), 0)
212212
213213
214214 func getVoteOptionAmount (user,voteName,option) = {
250250
251251 func claimCalc (caller) = {
252252 let lastInterest = getLastInterestInfo()
253- let $t089178997 = getUserInterestInfo(caller, lastInterest)
254- let userLastInterest = $t089178997._1
255- let userSWOPLocked = $t089178997._2
253+ let $t090569136 = getUserInterestInfo(caller, lastInterest)
254+ let userLastInterest = $t090569136._1
255+ let userSWOPLocked = $t090569136._2
256256 let claimAmount = fraction(userSWOPLocked, (lastInterest - userLastInterest), scaleValue)
257257 let userNewInterest = lastInterest
258258 $Tuple2(userNewInterest, claimAmount)
263263 func airDrop () = if (!(isActive))
264264 then throw("DApp is inactive at this moment")
265265 else {
266- let $t092629337 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
267- let pmtAmount = $t092629337._1
268- let pmtAssetId = $t092629337._2
266+ let $t094019476 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
267+ let pmtAmount = $t094019476._1
268+ let pmtAssetId = $t094019476._2
269269 if ((pmtAssetId != SWOP))
270270 then throw("Incorrect pmtAssetId")
271271 else {
282282 func lockSWOP () = if (!(isActive))
283283 then throw("DApp is inactive at this moment")
284284 else {
285- let $t097759850 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
286- let pmtAmount = $t097759850._1
287- let pmtAssetId = $t097759850._2
285+ let $t099149989 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
286+ let pmtAmount = $t099149989._1
287+ let pmtAssetId = $t099149989._2
288288 if ((pmtAssetId != SWOP))
289289 then throw("Incorrect pmtAssetId")
290290 else {
291291 let lastInterest = getLastInterestInfo()
292- let $t0996610048 = getUserInterestInfo(i.caller, lastInterest)
293- let userLastInterest = $t0996610048._1
294- let userSWOPLocked = $t0996610048._2
292+ let $t01010510187 = getUserInterestInfo(i.caller, lastInterest)
293+ let userLastInterest = $t01010510187._1
294+ let userSWOPLocked = $t01010510187._2
295295 let claimAmount = fraction(userSWOPLocked, (lastInterest - userLastInterest), scaleValue)
296296 let userSWOPLockedNew = ((userSWOPLocked + pmtAmount) + claimAmount)
297297 let userNewInterest = lastInterest
313313 else {
314314 let totalSWOPLocked = getTotalSWOPLocked()
315315 let userSWOPLocked = getUserSWOPLocked(i.caller)
316- let $t01119811253 = claimCalc(i.caller)
317- let userNewInterest = $t01119811253._1
318- let claimAmount = $t01119811253._2
319- let $t01125811323 = getUserVoteInfo(i.caller)
320- let userVoteAmount = $t01125811323._1
321- let userUnvoteAmount = $t01125811323._2
316+ let $t01133711392 = claimCalc(i.caller)
317+ let userNewInterest = $t01133711392._1
318+ let claimAmount = $t01133711392._2
319+ let $t01139711462 = getUserVoteInfo(i.caller)
320+ let userVoteAmount = $t01139711462._1
321+ let userUnvoteAmount = $t01139711462._2
322322 let userVoteAmountForNewPool = getUserTotalVoteForNewPoolAmount(i.caller)
323323 if (if (if ((0 > userUnvoteAmount))
324324 then true
347347 then throw("DApp is inactive at this moment")
348348 else {
349349 let lastInterest = getLastInterestInfo()
350- let $t01269812753 = claimCalc(i.caller)
351- let userNewInterest = $t01269812753._1
352- let claimAmount = $t01269812753._2
350+ let $t01283712892 = claimCalc(i.caller)
351+ let userNewInterest = $t01283712892._1
352+ let claimAmount = $t01283712892._2
353353 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
354354 let userClaimedAmountNew = (userClaimedAmount + claimAmount)
355355 if ((claimAmount == 0))
366366 let totalSWOPLocked = getTotalSWOPLocked()
367367 let userSWOPLocked = getUserSWOPLocked(i.caller)
368368 let lastInterest = getLastInterestInfo()
369- let $t01353213587 = claimCalc(i.caller)
370- let userNewInterest = $t01353213587._1
371- let claimAmount = $t01353213587._2
369+ let $t01367113726 = claimCalc(i.caller)
370+ let userNewInterest = $t01367113726._1
371+ let claimAmount = $t01367113726._2
372372 let userSWOPLockedNew = (userSWOPLocked + claimAmount)
373373 let totalSWOPLockedNew = (totalSWOPLocked + claimAmount)
374374 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
381381
382382
383383 @Callable(i)
384-func updateWeights (previousPoolsLegacy,previousRewardsLegacy,currentPools,currentRewards,rewardUpdateHeight,pagination) = if (!(isActive))
384+func updateWeights (currentPools,currentRewards,rewardUpdateHeight,pagination) = if (!(isActive))
385385 then throw("DApp is inactive at this moment")
386386 else {
387387 let amountPools = 10
388388 let totalRewardUpdateHeight = valueOrElse(getInteger(this, keyRewardUpdateHeight), 0)
389- if ((size(currentPools) > amountPools))
390- then throw(("Max amount of pool is " + toString(amountPools)))
391- else if ((totalRewardUpdateHeight >= rewardUpdateHeight))
392- then throw("rewardUpdateHeight <= totalRewardUpdateHeight")
393- else if ((height >= rewardUpdateHeight))
394- then throw("height >= rewardUpdateHeight")
395- else if ((0 >= rewardUpdateHeight))
396- then throw("0 >= rewardUpdateHeight ")
397- else {
398- func sum (a,b) = (a + b)
389+ if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop, adminPubKeyWallet], i.callerPublicKey)))
390+ then throw("Only admin can call this function")
391+ else if ((size(currentPools) > amountPools))
392+ then throw(("Max amount of pool is " + toString(amountPools)))
393+ else if ((totalRewardUpdateHeight >= rewardUpdateHeight))
394+ then throw("rewardUpdateHeight <= totalRewardUpdateHeight")
395+ else if ((height >= rewardUpdateHeight))
396+ then throw("height >= rewardUpdateHeight")
397+ else if ((0 >= rewardUpdateHeight))
398+ then throw("0 >= rewardUpdateHeight ")
399+ else {
400+ func sum (a,b) = (a + b)
399401
400- func sumEntry (a,b) = (valueOrElse(a.value, 0) + b.value)
402+ func changePreviousRewardEntry (accumulated,pool) = {
403+ let poolRewardUpdateHeight = getPoolUpdateHeight(pool)
404+ if (if (!(isDefinePoolUpdateHeight(pool)))
405+ then true
406+ else if ((rewardUpdateHeight != poolRewardUpdateHeight))
407+ then (poolRewardUpdateHeight == totalRewardUpdateHeight)
408+ else false)
409+ then {
410+ let poolReward = getCurPoolWeight(pool)
411+IntegerEntry((pool + keyRewardPoolFractionPrevious), poolReward) :: accumulated
412+ }
413+ else {
414+ let poolReward = getPrevPoolWeight(pool)
415+IntegerEntry((pool + keyRewardPoolFractionPrevious), poolReward) :: accumulated
416+ }
417+ }
401418
402- func changePreviousRewardEntry (accumulated,pool) = {
403- let poolRewardUpdateHeight = getPoolUpdateHeight(pool)
404- if (if (!(isDefinePoolUpdateHeight(pool)))
405- then true
406- else if ((rewardUpdateHeight != poolRewardUpdateHeight))
407- then (poolRewardUpdateHeight == totalRewardUpdateHeight)
408- else false)
409- then {
410- let poolReward = getCurPoolWeight(pool)
411-IntegerEntry((pool + keyRewardPoolFractionPrevious), poolReward) :: accumulated
412- }
413- else {
414- let poolReward = getPrevPoolWeight(pool)
415-IntegerEntry((pool + keyRewardPoolFractionPrevious), poolReward) :: accumulated
416- }
417- }
419+ func changeCurrentRewardEntry (accumulated,pool) = {
420+ let poolIndex = value(indexOf(currentPools, pool))
421+ let poolReward = currentRewards[poolIndex]
422+ if ((0 > poolReward))
423+ then throw("PoolReward < 0")
424+ else IntegerEntry((pool + keyRewardPoolFractionCurrent), poolReward) :: accumulated
425+ }
418426
419- func changeCurrentRewardEntry (accumulated,pool) = {
420- let poolIndex = value(indexOf(currentPools, pool))
421- let poolReward = currentRewards[poolIndex]
422- if ((0 > poolReward))
423- then throw("PoolReward < 0")
424- else IntegerEntry((pool + keyRewardPoolFractionCurrent), poolReward) :: accumulated
425- }
427+ func changeHeightEntry (accumulated,pool) = {
428+ let poolHeight = rewardUpdateHeight
429+IntegerEntry((pool + keyHeightPoolFraction), poolHeight) :: accumulated
430+ }
426431
427- func changeHeightEntry (accumulated,pool) = {
428- let poolHeight = rewardUpdateHeight
429-IntegerEntry((pool + keyHeightPoolFraction), poolHeight) :: accumulated
430- }
431-
432- func getSumReward (curTempSum,pagination) = if ((pagination == 0))
433- then if ((curTempSum > totalVoteShare))
434- then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(pagination)) + " ") + toString(curTempSum)))
435- else $Tuple2([IntegerEntry(keyTempCurSum, curTempSum)], [IntegerEntry(keyRewardUpdateFirstPaginationHeight, rewardUpdateHeight)])
436- else if ((pagination == 1))
437- then {
438- let curTempSumFromKey = valueOrElse(getInteger(this, keyTempCurSum), 0)
439- let rewardUpdateHeightFirstPaginationEntry = valueOrElse(getInteger(this, keyRewardUpdateFirstPaginationHeight), 0)
440- if (((curTempSum + curTempSumFromKey) > totalVoteShare))
441- then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(pagination)) + " ") + toString((curTempSum + curTempSumFromKey))))
442- else if ((rewardUpdateHeightFirstPaginationEntry != rewardUpdateHeight))
443- then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
444- else $Tuple2([IntegerEntry(keyTempCurSum, (curTempSum + curTempSumFromKey))], nil)
445- }
446- else if ((pagination == 2))
432+ func getSumReward (curTempSum,pagination) = if ((pagination == 0))
433+ then if ((curTempSum > totalVoteShare))
434+ then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(pagination)) + " ") + toString(curTempSum)))
435+ else $Tuple2([IntegerEntry(keyTempCurSum, curTempSum)], [IntegerEntry(keyRewardUpdateFirstPaginationHeight, rewardUpdateHeight)])
436+ else if ((pagination == 1))
447437 then {
448- let curSum = (valueOrElse(getInteger(this, keyTempCurSum), 0) + curTempSum)
438+ let curTempSumFromKey = valueOrElse(getInteger(this, keyTempCurSum), 0)
449439 let rewardUpdateHeightFirstPaginationEntry = valueOrElse(getInteger(this, keyRewardUpdateFirstPaginationHeight), 0)
450- if ((curSum != totalVoteShare))
451- then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare")
440+ if (((curTempSum + curTempSumFromKey) > totalVoteShare))
441+ then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(pagination)) + " ") + toString((curTempSum + curTempSumFromKey))))
452442 else if ((rewardUpdateHeightFirstPaginationEntry != rewardUpdateHeight))
453443 then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
454- else $Tuple2([IntegerEntry(keyTempCurSum, curSum)], nil)
444+ else $Tuple2([IntegerEntry(keyTempCurSum, (curTempSum + curTempSumFromKey))], nil)
455445 }
456- else throw("Incorrect pagination")
446+ else if ((pagination == 2))
447+ then {
448+ let curSum = (valueOrElse(getInteger(this, keyTempCurSum), 0) + curTempSum)
449+ let rewardUpdateHeightFirstPaginationEntry = valueOrElse(getInteger(this, keyRewardUpdateFirstPaginationHeight), 0)
450+ if ((curSum != totalVoteShare))
451+ then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare")
452+ else if ((rewardUpdateHeightFirstPaginationEntry != rewardUpdateHeight))
453+ then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
454+ else $Tuple2([IntegerEntry(keyTempCurSum, curSum)], nil)
455+ }
456+ else throw("Incorrect pagination")
457457
458- let previousRewardEntryNew = {
459- let $list1864018692 = currentPools
460- let $size1864018692 = size($list1864018692)
461- let $acc01864018692 = nil
462- if (($size1864018692 == 0))
463- then $acc01864018692
464- else {
465- let $acc11864018692 = changePreviousRewardEntry($acc01864018692, $list1864018692[0])
466- if (($size1864018692 == 1))
467- then $acc11864018692
468- else {
469- let $acc21864018692 = changePreviousRewardEntry($acc11864018692, $list1864018692[1])
470- if (($size1864018692 == 2))
471- then $acc21864018692
472- else {
473- let $acc31864018692 = changePreviousRewardEntry($acc21864018692, $list1864018692[2])
474- if (($size1864018692 == 3))
475- then $acc31864018692
476- else {
477- let $acc41864018692 = changePreviousRewardEntry($acc31864018692, $list1864018692[3])
478- if (($size1864018692 == 4))
479- then $acc41864018692
480- else {
481- let $acc51864018692 = changePreviousRewardEntry($acc41864018692, $list1864018692[4])
482- if (($size1864018692 == 5))
483- then $acc51864018692
484- else {
485- let $acc61864018692 = changePreviousRewardEntry($acc51864018692, $list1864018692[5])
486- if (($size1864018692 == 6))
487- then $acc61864018692
488- else {
489- let $acc71864018692 = changePreviousRewardEntry($acc61864018692, $list1864018692[6])
490- if (($size1864018692 == 7))
491- then $acc71864018692
492- else {
493- let $acc81864018692 = changePreviousRewardEntry($acc71864018692, $list1864018692[7])
494- if (($size1864018692 == 8))
495- then $acc81864018692
496- else {
497- let $acc91864018692 = changePreviousRewardEntry($acc81864018692, $list1864018692[8])
498- if (($size1864018692 == 9))
499- then $acc91864018692
500- else {
501- let $acc101864018692 = changePreviousRewardEntry($acc91864018692, $list1864018692[9])
502- if (($size1864018692 == 10))
503- then $acc101864018692
504- else {
505- let $acc111864018692 = changePreviousRewardEntry($acc101864018692, $list1864018692[10])
506- throw("List size exceed 10")
507- }
508- }
509- }
510- }
511- }
512- }
513- }
514- }
515- }
516- }
517- }
458+ let previousRewardEntryNew = {
459+ let $list1859818650 = currentPools
460+ let $size1859818650 = size($list1859818650)
461+ let $acc01859818650 = nil
462+ if (($size1859818650 == 0))
463+ then $acc01859818650
464+ else {
465+ let $acc11859818650 = changePreviousRewardEntry($acc01859818650, $list1859818650[0])
466+ if (($size1859818650 == 1))
467+ then $acc11859818650
468+ else {
469+ let $acc21859818650 = changePreviousRewardEntry($acc11859818650, $list1859818650[1])
470+ if (($size1859818650 == 2))
471+ then $acc21859818650
472+ else {
473+ let $acc31859818650 = changePreviousRewardEntry($acc21859818650, $list1859818650[2])
474+ if (($size1859818650 == 3))
475+ then $acc31859818650
476+ else {
477+ let $acc41859818650 = changePreviousRewardEntry($acc31859818650, $list1859818650[3])
478+ if (($size1859818650 == 4))
479+ then $acc41859818650
480+ else {
481+ let $acc51859818650 = changePreviousRewardEntry($acc41859818650, $list1859818650[4])
482+ if (($size1859818650 == 5))
483+ then $acc51859818650
484+ else {
485+ let $acc61859818650 = changePreviousRewardEntry($acc51859818650, $list1859818650[5])
486+ if (($size1859818650 == 6))
487+ then $acc61859818650
488+ else {
489+ let $acc71859818650 = changePreviousRewardEntry($acc61859818650, $list1859818650[6])
490+ if (($size1859818650 == 7))
491+ then $acc71859818650
492+ else {
493+ let $acc81859818650 = changePreviousRewardEntry($acc71859818650, $list1859818650[7])
494+ if (($size1859818650 == 8))
495+ then $acc81859818650
496+ else {
497+ let $acc91859818650 = changePreviousRewardEntry($acc81859818650, $list1859818650[8])
498+ if (($size1859818650 == 9))
499+ then $acc91859818650
500+ else {
501+ let $acc101859818650 = changePreviousRewardEntry($acc91859818650, $list1859818650[9])
502+ if (($size1859818650 == 10))
503+ then $acc101859818650
504+ else {
505+ let $acc111859818650 = changePreviousRewardEntry($acc101859818650, $list1859818650[10])
506+ throw("List size exceed 10")
507+ }
508+ }
509+ }
510+ }
511+ }
512+ }
513+ }
514+ }
515+ }
516+ }
517+ }
518+ }
519+ let currentRewardEntryNew = {
520+ let $list1868318735 = currentPools
521+ let $size1868318735 = size($list1868318735)
522+ let $acc01868318735 = nil
523+ if (($size1868318735 == 0))
524+ then $acc01868318735
525+ else {
526+ let $acc11868318735 = changeCurrentRewardEntry($acc01868318735, $list1868318735[0])
527+ if (($size1868318735 == 1))
528+ then $acc11868318735
529+ else {
530+ let $acc21868318735 = changeCurrentRewardEntry($acc11868318735, $list1868318735[1])
531+ if (($size1868318735 == 2))
532+ then $acc21868318735
533+ else {
534+ let $acc31868318735 = changeCurrentRewardEntry($acc21868318735, $list1868318735[2])
535+ if (($size1868318735 == 3))
536+ then $acc31868318735
537+ else {
538+ let $acc41868318735 = changeCurrentRewardEntry($acc31868318735, $list1868318735[3])
539+ if (($size1868318735 == 4))
540+ then $acc41868318735
541+ else {
542+ let $acc51868318735 = changeCurrentRewardEntry($acc41868318735, $list1868318735[4])
543+ if (($size1868318735 == 5))
544+ then $acc51868318735
545+ else {
546+ let $acc61868318735 = changeCurrentRewardEntry($acc51868318735, $list1868318735[5])
547+ if (($size1868318735 == 6))
548+ then $acc61868318735
549+ else {
550+ let $acc71868318735 = changeCurrentRewardEntry($acc61868318735, $list1868318735[6])
551+ if (($size1868318735 == 7))
552+ then $acc71868318735
553+ else {
554+ let $acc81868318735 = changeCurrentRewardEntry($acc71868318735, $list1868318735[7])
555+ if (($size1868318735 == 8))
556+ then $acc81868318735
557+ else {
558+ let $acc91868318735 = changeCurrentRewardEntry($acc81868318735, $list1868318735[8])
559+ if (($size1868318735 == 9))
560+ then $acc91868318735
561+ else {
562+ let $acc101868318735 = changeCurrentRewardEntry($acc91868318735, $list1868318735[9])
563+ if (($size1868318735 == 10))
564+ then $acc101868318735
565+ else {
566+ let $acc111868318735 = changeCurrentRewardEntry($acc101868318735, $list1868318735[10])
567+ throw("List size exceed 10")
568+ }
569+ }
570+ }
571+ }
572+ }
573+ }
574+ }
575+ }
576+ }
577+ }
578+ }
579+ }
580+ let heightEntryNewCur = {
581+ let $list1876418809 = currentPools
582+ let $size1876418809 = size($list1876418809)
583+ let $acc01876418809 = nil
584+ if (($size1876418809 == 0))
585+ then $acc01876418809
586+ else {
587+ let $acc11876418809 = changeHeightEntry($acc01876418809, $list1876418809[0])
588+ if (($size1876418809 == 1))
589+ then $acc11876418809
590+ else {
591+ let $acc21876418809 = changeHeightEntry($acc11876418809, $list1876418809[1])
592+ if (($size1876418809 == 2))
593+ then $acc21876418809
594+ else {
595+ let $acc31876418809 = changeHeightEntry($acc21876418809, $list1876418809[2])
596+ if (($size1876418809 == 3))
597+ then $acc31876418809
598+ else {
599+ let $acc41876418809 = changeHeightEntry($acc31876418809, $list1876418809[3])
600+ if (($size1876418809 == 4))
601+ then $acc41876418809
602+ else {
603+ let $acc51876418809 = changeHeightEntry($acc41876418809, $list1876418809[4])
604+ if (($size1876418809 == 5))
605+ then $acc51876418809
606+ else {
607+ let $acc61876418809 = changeHeightEntry($acc51876418809, $list1876418809[5])
608+ if (($size1876418809 == 6))
609+ then $acc61876418809
610+ else {
611+ let $acc71876418809 = changeHeightEntry($acc61876418809, $list1876418809[6])
612+ if (($size1876418809 == 7))
613+ then $acc71876418809
614+ else {
615+ let $acc81876418809 = changeHeightEntry($acc71876418809, $list1876418809[7])
616+ if (($size1876418809 == 8))
617+ then $acc81876418809
618+ else {
619+ let $acc91876418809 = changeHeightEntry($acc81876418809, $list1876418809[8])
620+ if (($size1876418809 == 9))
621+ then $acc91876418809
622+ else {
623+ let $acc101876418809 = changeHeightEntry($acc91876418809, $list1876418809[9])
624+ if (($size1876418809 == 10))
625+ then $acc101876418809
626+ else {
627+ let $acc111876418809 = changeHeightEntry($acc101876418809, $list1876418809[10])
628+ throw("List size exceed 10")
629+ }
630+ }
631+ }
632+ }
633+ }
634+ }
635+ }
636+ }
637+ }
638+ }
639+ }
640+ }
641+ let sumRewardCurrentTemp = {
642+ let $list1884318875 = currentRewards
643+ let $size1884318875 = size($list1884318875)
644+ let $acc01884318875 = 0
645+ if (($size1884318875 == 0))
646+ then $acc01884318875
647+ else {
648+ let $acc11884318875 = sum($acc01884318875, $list1884318875[0])
649+ if (($size1884318875 == 1))
650+ then $acc11884318875
651+ else {
652+ let $acc21884318875 = sum($acc11884318875, $list1884318875[1])
653+ if (($size1884318875 == 2))
654+ then $acc21884318875
655+ else {
656+ let $acc31884318875 = sum($acc21884318875, $list1884318875[2])
657+ if (($size1884318875 == 3))
658+ then $acc31884318875
659+ else {
660+ let $acc41884318875 = sum($acc31884318875, $list1884318875[3])
661+ if (($size1884318875 == 4))
662+ then $acc41884318875
663+ else {
664+ let $acc51884318875 = sum($acc41884318875, $list1884318875[4])
665+ if (($size1884318875 == 5))
666+ then $acc51884318875
667+ else {
668+ let $acc61884318875 = sum($acc51884318875, $list1884318875[5])
669+ if (($size1884318875 == 6))
670+ then $acc61884318875
671+ else {
672+ let $acc71884318875 = sum($acc61884318875, $list1884318875[6])
673+ if (($size1884318875 == 7))
674+ then $acc71884318875
675+ else {
676+ let $acc81884318875 = sum($acc71884318875, $list1884318875[7])
677+ if (($size1884318875 == 8))
678+ then $acc81884318875
679+ else {
680+ let $acc91884318875 = sum($acc81884318875, $list1884318875[8])
681+ if (($size1884318875 == 9))
682+ then $acc91884318875
683+ else {
684+ let $acc101884318875 = sum($acc91884318875, $list1884318875[9])
685+ if (($size1884318875 == 10))
686+ then $acc101884318875
687+ else {
688+ let $acc111884318875 = sum($acc101884318875, $list1884318875[10])
689+ throw("List size exceed 10")
690+ }
691+ }
692+ }
693+ }
694+ }
695+ }
696+ }
697+ }
698+ }
699+ }
700+ }
701+ }
702+ let $t01888118992 = getSumReward(sumRewardCurrentTemp, pagination)
703+ let sumRewardCurrent = $t01888118992._1
704+ let rewardUpdateHeightFirstPaginationEntry = $t01888118992._2
705+ let rewardUpdateHeightEntry = if ((pagination == 2))
706+ then [IntegerEntry(keyRewardUpdateHeight, rewardUpdateHeight)]
707+ else nil
708+ if ((height > rewardUpdateHeight))
709+ then throw("rewardUpdateHeight < height")
710+ else (((((previousRewardEntryNew ++ currentRewardEntryNew) ++ heightEntryNewCur) ++ sumRewardCurrent) ++ rewardUpdateHeightEntry) ++ rewardUpdateHeightFirstPaginationEntry)
518711 }
519- let currentRewardEntryNew = {
520- let $list1872518777 = currentPools
521- let $size1872518777 = size($list1872518777)
522- let $acc01872518777 = nil
523- if (($size1872518777 == 0))
524- then $acc01872518777
525- else {
526- let $acc11872518777 = changeCurrentRewardEntry($acc01872518777, $list1872518777[0])
527- if (($size1872518777 == 1))
528- then $acc11872518777
529- else {
530- let $acc21872518777 = changeCurrentRewardEntry($acc11872518777, $list1872518777[1])
531- if (($size1872518777 == 2))
532- then $acc21872518777
533- else {
534- let $acc31872518777 = changeCurrentRewardEntry($acc21872518777, $list1872518777[2])
535- if (($size1872518777 == 3))
536- then $acc31872518777
537- else {
538- let $acc41872518777 = changeCurrentRewardEntry($acc31872518777, $list1872518777[3])
539- if (($size1872518777 == 4))
540- then $acc41872518777
541- else {
542- let $acc51872518777 = changeCurrentRewardEntry($acc41872518777, $list1872518777[4])
543- if (($size1872518777 == 5))
544- then $acc51872518777
545- else {
546- let $acc61872518777 = changeCurrentRewardEntry($acc51872518777, $list1872518777[5])
547- if (($size1872518777 == 6))
548- then $acc61872518777
549- else {
550- let $acc71872518777 = changeCurrentRewardEntry($acc61872518777, $list1872518777[6])
551- if (($size1872518777 == 7))
552- then $acc71872518777
553- else {
554- let $acc81872518777 = changeCurrentRewardEntry($acc71872518777, $list1872518777[7])
555- if (($size1872518777 == 8))
556- then $acc81872518777
557- else {
558- let $acc91872518777 = changeCurrentRewardEntry($acc81872518777, $list1872518777[8])
559- if (($size1872518777 == 9))
560- then $acc91872518777
561- else {
562- let $acc101872518777 = changeCurrentRewardEntry($acc91872518777, $list1872518777[9])
563- if (($size1872518777 == 10))
564- then $acc101872518777
565- else {
566- let $acc111872518777 = changeCurrentRewardEntry($acc101872518777, $list1872518777[10])
567- throw("List size exceed 10")
568- }
569- }
570- }
571- }
572- }
573- }
574- }
575- }
576- }
577- }
578- }
579- }
580- let heightEntryNewCur = {
581- let $list1880618851 = currentPools
582- let $size1880618851 = size($list1880618851)
583- let $acc01880618851 = nil
584- if (($size1880618851 == 0))
585- then $acc01880618851
586- else {
587- let $acc11880618851 = changeHeightEntry($acc01880618851, $list1880618851[0])
588- if (($size1880618851 == 1))
589- then $acc11880618851
590- else {
591- let $acc21880618851 = changeHeightEntry($acc11880618851, $list1880618851[1])
592- if (($size1880618851 == 2))
593- then $acc21880618851
594- else {
595- let $acc31880618851 = changeHeightEntry($acc21880618851, $list1880618851[2])
596- if (($size1880618851 == 3))
597- then $acc31880618851
598- else {
599- let $acc41880618851 = changeHeightEntry($acc31880618851, $list1880618851[3])
600- if (($size1880618851 == 4))
601- then $acc41880618851
602- else {
603- let $acc51880618851 = changeHeightEntry($acc41880618851, $list1880618851[4])
604- if (($size1880618851 == 5))
605- then $acc51880618851
606- else {
607- let $acc61880618851 = changeHeightEntry($acc51880618851, $list1880618851[5])
608- if (($size1880618851 == 6))
609- then $acc61880618851
610- else {
611- let $acc71880618851 = changeHeightEntry($acc61880618851, $list1880618851[6])
612- if (($size1880618851 == 7))
613- then $acc71880618851
614- else {
615- let $acc81880618851 = changeHeightEntry($acc71880618851, $list1880618851[7])
616- if (($size1880618851 == 8))
617- then $acc81880618851
618- else {
619- let $acc91880618851 = changeHeightEntry($acc81880618851, $list1880618851[8])
620- if (($size1880618851 == 9))
621- then $acc91880618851
622- else {
623- let $acc101880618851 = changeHeightEntry($acc91880618851, $list1880618851[9])
624- if (($size1880618851 == 10))
625- then $acc101880618851
626- else {
627- let $acc111880618851 = changeHeightEntry($acc101880618851, $list1880618851[10])
628- throw("List size exceed 10")
629- }
630- }
631- }
632- }
633- }
634- }
635- }
636- }
637- }
638- }
639- }
640- }
641- let sumRewardCurrentTemp = {
642- let $list1888518917 = currentRewards
643- let $size1888518917 = size($list1888518917)
644- let $acc01888518917 = 0
645- if (($size1888518917 == 0))
646- then $acc01888518917
647- else {
648- let $acc11888518917 = sum($acc01888518917, $list1888518917[0])
649- if (($size1888518917 == 1))
650- then $acc11888518917
651- else {
652- let $acc21888518917 = sum($acc11888518917, $list1888518917[1])
653- if (($size1888518917 == 2))
654- then $acc21888518917
655- else {
656- let $acc31888518917 = sum($acc21888518917, $list1888518917[2])
657- if (($size1888518917 == 3))
658- then $acc31888518917
659- else {
660- let $acc41888518917 = sum($acc31888518917, $list1888518917[3])
661- if (($size1888518917 == 4))
662- then $acc41888518917
663- else {
664- let $acc51888518917 = sum($acc41888518917, $list1888518917[4])
665- if (($size1888518917 == 5))
666- then $acc51888518917
667- else {
668- let $acc61888518917 = sum($acc51888518917, $list1888518917[5])
669- if (($size1888518917 == 6))
670- then $acc61888518917
671- else {
672- let $acc71888518917 = sum($acc61888518917, $list1888518917[6])
673- if (($size1888518917 == 7))
674- then $acc71888518917
675- else {
676- let $acc81888518917 = sum($acc71888518917, $list1888518917[7])
677- if (($size1888518917 == 8))
678- then $acc81888518917
679- else {
680- let $acc91888518917 = sum($acc81888518917, $list1888518917[8])
681- if (($size1888518917 == 9))
682- then $acc91888518917
683- else {
684- let $acc101888518917 = sum($acc91888518917, $list1888518917[9])
685- if (($size1888518917 == 10))
686- then $acc101888518917
687- else {
688- let $acc111888518917 = sum($acc101888518917, $list1888518917[10])
689- throw("List size exceed 10")
690- }
691- }
692- }
693- }
694- }
695- }
696- }
697- }
698- }
699- }
700- }
701- }
702- let $t01892319034 = getSumReward(sumRewardCurrentTemp, pagination)
703- let sumRewardCurrent = $t01892319034._1
704- let rewardUpdateHeightFirstPaginationEntry = $t01892319034._2
705- let rewardUpdateHeightEntry = if ((pagination == 2))
706- then [IntegerEntry(keyRewardUpdateHeight, rewardUpdateHeight)]
707- else nil
708- if ((height > rewardUpdateHeight))
709- then throw("rewardUpdateHeight < height")
710- else (((((previousRewardEntryNew ++ currentRewardEntryNew) ++ heightEntryNewCur) ++ sumRewardCurrent) ++ rewardUpdateHeightEntry) ++ rewardUpdateHeightFirstPaginationEntry)
711- }
712712 }
713713
714714
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let adminPubKey1 = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
55
66 let adminPubKey2 = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
77
88 let adminPubKey3 = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
99
1010 let adminPubKeyStartStop = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
1111
1212 let adminPubKeyWallet = base58'5CqqMkmtXXt35KRH9LdWA3ap6TffPvTT5SHQzYrVFbBw'
1313
1414 let keyActive = "active"
1515
1616 let keyCause = "shutdown_cause"
1717
1818 let keyLastInterest = "last_interest"
1919
2020 let keyUserLastInterest = "_last_interest"
2121
2222 let keyUserSWOPLocked = "_SWOP_amount"
2323
2424 let keyUserGetBackHeight = "_getBackHeight"
2525
2626 let keyTotalSWOPLocked = "total_SWOP_amount"
2727
2828 let kUserTotalVoteSWOP = "_user_total_SWOP_vote"
2929
3030 let keyUserVoteOptionAmount = "_SWOP_option_amount"
3131
3232 let keyTotalVoteOptionAmount = "total_SWOP_option_amount"
3333
3434 let keyUserSWOPClaimedAmount = "_SWOP_claimed_amount"
3535
3636 let keyUserSWOPLastClaimedAmount = "_SWOP_last_claimed_amount"
3737
3838 let keyVoteName = "vote_name"
3939
4040 let keyOptionName = "_option_name"
4141
4242 let keyVotingStartHeight = "_startHeight"
4343
4444 let keyVoteDuration = "_vote_duration"
4545
4646 let keyRewardPoolFractionCurrent = "_current_pool_fraction_reward"
4747
4848 let keyRewardPoolFractionPrevious = "_previous_pool_fraction_reward"
4949
5050 let keyHeightPoolFraction = "_pool_reward_update_height"
5151
5252 let keyTotalRewardPerBlockCurrent = "total_reward_per_block_current"
5353
5454 let keyTotalRewardPerBlockPrevious = "total_reward_per_block_previous"
5555
5656 let keyRewardUpdateHeight = "reward_update_height"
5757
5858 let keyRewardUpdateFirstPaginationHeight = "reward_update_height_first_pagination"
5959
6060 let keyNoVotingForNewPool = "_vote_no"
6161
6262 let keyYesVotingForNewPool = "_vote_yes"
6363
6464 let keyAmountOfVotingForNewPool = "max_amount_voting"
6565
6666 let keyStatusOfVotingForNewPool = "_status"
6767
6868 let keyHeightOfPoolVotingForNewPool = "_finish_height"
6969
7070 let activeVoteFirst = "voting_active_cell_1"
7171
7272 let activeVoteSecond = "voting_active_cell_2"
7373
7474 let activeVoteThird = "voting_active_cell_3"
7575
7676 let keyTempPrevSum = "sum_reward_previous"
7777
7878 let keyTempCurSum = "sum_reward_current"
7979
8080 let isActive = valueOrElse(getBoolean(this, keyActive), true)
8181
8282 let farmingSWOPAddress = Address(base58'3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT')
8383
8484 let votingLiteContract = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
8585
8686 let votingForNewPool = Address(base58'3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb')
8787
8888 let keySWOPid = "SWOP_id"
8989
9090 let SWOP = fromBase58String(getStringValue(farmingSWOPAddress, keySWOPid))
9191
9292 let scaleValue = 100000000
9393
9494 let totalVoteShare = 10000000000
9595
9696 let kStartHeight = "start_height"
9797
9898 let kBasePeriod = "base_period"
9999
100100 let kPeriodLength = "period_length"
101101
102102 let kUserTotalStruc = "_user_total_struc"
103103
104104 let basePeriod = valueOrErrorMessage(getInteger(votingLiteContract, kBasePeriod), "Empty kBasePeriod at voting contract")
105105
106106 let startHeight = valueOrErrorMessage(getInteger(votingLiteContract, kStartHeight), "Empty kStartHeight at voting contract")
107107
108108 let periodLength = valueOrErrorMessage(getInteger(votingLiteContract, kPeriodLength), "Empty kPeriodLength at voting contract")
109109
110110 let firstActiveVote = valueOrElse(getString(votingForNewPool, activeVoteFirst), "")
111111
112112 let secondActiveVote = valueOrElse(getString(votingForNewPool, activeVoteSecond), "")
113113
114114 let thirdActiveVote = valueOrElse(getString(votingForNewPool, activeVoteThird), "")
115115
116116 let currVotingPeriod = (basePeriod + ((height - startHeight) / periodLength))
117117
118118 func suspend (cause) = [BooleanEntry(keyActive, false), StringEntry(keyCause, cause)]
119119
120120
121121 func throwNotEnoughSWOP () = throw("Not enough SWOP: userSWOPLocked - userTotalVoteAmount < voteSWOPAmount")
122122
123123
124124 func getLastInterestInfo () = {
125125 let lastInterest = valueOrElse(getInteger(this, keyLastInterest), 0)
126126 lastInterest
127127 }
128128
129129
130130 func getUserSWOPLocked (user) = valueOrElse(getInteger(this, (toString(user) + keyUserSWOPLocked)), 0)
131131
132132
133133 func getUserSWOPClaimedAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserSWOPClaimedAmount)), 0)
134134
135135
136136 func getUserTotalVoteAmount (user) = valueOrElse(getInteger(votingLiteContract, (toString(user) + kUserTotalVoteSWOP)), 0)
137137
138138
139-func getPrevPoolWeight (pool) = valueOrElse(getInteger(this, (pool + keyRewardPoolFractionPrevious)), 0)
140-
141-
142139 func getUserInterestInfo (user,lastInterest) = {
143140 let userSWOPAmount = getUserSWOPLocked(user)
144141 let userLastInterest = getInteger(this, (toString(user) + keyUserLastInterest))
145142 let userLastInterestValue = match userLastInterest {
146143 case userLastInterest: Int =>
147144 userLastInterest
148145 case _ =>
149146 lastInterest
150147 }
151148 $Tuple2(userLastInterestValue, userSWOPAmount)
152149 }
153150
154151
155152 func getUserTotalVoteAmountForOnePool (pool,user) = {
156153 let voting = valueOrElse(getInteger(votingForNewPool, pool), -1)
157154 let heightOfVoting = valueOrElse(getInteger(votingForNewPool, (toString(voting) + keyHeightOfPoolVotingForNewPool)), 0)
158155 let statusOfVoting = valueOrElse(getBoolean(votingForNewPool, (toString(voting) + keyStatusOfVotingForNewPool)), true)
159156 let currentHeight = height
160157 if ((0 > voting))
161158 then 0
162159 else if (!(statusOfVoting))
163160 then 0
164161 else if ((heightOfVoting > currentHeight))
165162 then (valueOrElse(getInteger(votingForNewPool, (((toString(user) + "_") + toString(voting)) + keyYesVotingForNewPool)), 0) + valueOrElse(getInteger(votingForNewPool, (((toString(user) + "_") + toString(voting)) + keyNoVotingForNewPool)), 0))
166163 else 0
167164 }
168165
169166
170167 func getUserTotalVoteForNewPoolAmount (user) = {
171168 let listOfVoting = [getUserTotalVoteAmountForOnePool(firstActiveVote, user), getUserTotalVoteAmountForOnePool(secondActiveVote, user), getUserTotalVoteAmountForOnePool(thirdActiveVote, user)]
172169 max(listOfVoting)
173170 }
174171
175172
176173 func getTotalSWOPLocked () = valueOrElse(getInteger(this, keyTotalSWOPLocked), 0)
177174
178175
179176 func getUserVoteInfo (user) = {
180- let $t061146665 = if (isDefined(getString(votingLiteContract, (toString(user) + kUserTotalStruc))))
177+ let $t060976648 = if (isDefined(getString(votingLiteContract, (toString(user) + kUserTotalStruc))))
181178 then {
182179 let data = split(valueOrErrorMessage(getString(votingLiteContract, (toString(user) + kUserTotalStruc)), "Empty kUserTotalStruc"), "_")
183180 $Tuple3(parseIntValue(data[0]), parseIntValue(data[1]), parseIntValue(data[2]))
184181 }
185182 else {
186183 let uPoolTotalSWOP = valueOrElse(getInteger(votingLiteContract, (toString(user) + kUserTotalVoteSWOP)), 0)
187184 $Tuple3(uPoolTotalSWOP, 0, currVotingPeriod)
188185 }
189- let userTotalVoteSWOP = $t061146665._1
190- let userUnvoted = $t061146665._2
191- let userUnvotedPeriod = $t061146665._3
186+ let userTotalVoteSWOP = $t060976648._1
187+ let userUnvoted = $t060976648._2
188+ let userUnvotedPeriod = $t060976648._3
192189 let userUnvotedActual = if ((userUnvotedPeriod == currVotingPeriod))
193190 then userUnvoted
194191 else 0
195192 $Tuple2(userTotalVoteSWOP, userUnvotedActual)
196193 }
197194
198195
199196 func getUserVoteOptionAmount (user) = valueOrElse(getInteger(this, (toString(user) + keyUserVoteOptionAmount)), 0)
200197
201198
202199 func getVotingStartHeight (voteName) = valueOrElse(getInteger(this, (voteName + keyVotingStartHeight)), 0)
203200
204201
205202 func getPoolUpdateHeight (pool) = valueOrElse(getInteger(this, (pool + keyHeightPoolFraction)), 0)
206203
207204
208205 func isDefinePoolUpdateHeight (pool) = isDefined(getInteger(this, (pool + keyHeightPoolFraction)))
209206
210207
211208 func getCurPoolWeight (pool) = valueOrElse(getInteger(this, (pool + keyRewardPoolFractionCurrent)), 0)
209+
210+
211+func getPrevPoolWeight (pool) = valueOrElse(getInteger(this, (pool + keyRewardPoolFractionPrevious)), 0)
212212
213213
214214 func getVoteOptionAmount (user,voteName,option) = {
215215 let userVoteOptionAmount = getInteger(this, (((voteName + option) + toString(user)) + keyUserVoteOptionAmount))
216216 let uvoa = match userVoteOptionAmount {
217217 case uvoa: Int =>
218218 uvoa
219219 case uvoa: Unit =>
220220 0
221221 case _ =>
222222 throw("Match error")
223223 }
224224 valueOrErrorMessage(uvoa, (((("No data on the key: " + voteName) + option) + toString(user)) + keyUserVoteOptionAmount))
225225 }
226226
227227
228228 func getVoteDuration (voteName) = valueOrErrorMessage(getInteger(this, (voteName + keyVoteDuration)), (("No data on the key: " + voteName) + keyVoteDuration))
229229
230230
231231 func getTotalVoteOptionAmount (voteName,option) = {
232232 let totalVoteOptionAmount = getInteger(this, ((voteName + option) + keyTotalVoteOptionAmount))
233233 let tvoa = match totalVoteOptionAmount {
234234 case tvoa: Int =>
235235 tvoa
236236 case tvoa: Unit =>
237237 0
238238 case _ =>
239239 throw("Match error")
240240 }
241241 tvoa
242242 }
243243
244244
245245 func getUserGetBackAmount (voteName,option,user,getBackSWOPHeight) = {
246246 let key = ((((((voteName + "_") + option) + "_") + toString(user)) + "_") + toString(getBackSWOPHeight))
247247 valueOrErrorMessage(getInteger(this, key), ("No data on the key: " + key))
248248 }
249249
250250
251251 func claimCalc (caller) = {
252252 let lastInterest = getLastInterestInfo()
253- let $t089178997 = getUserInterestInfo(caller, lastInterest)
254- let userLastInterest = $t089178997._1
255- let userSWOPLocked = $t089178997._2
253+ let $t090569136 = getUserInterestInfo(caller, lastInterest)
254+ let userLastInterest = $t090569136._1
255+ let userSWOPLocked = $t090569136._2
256256 let claimAmount = fraction(userSWOPLocked, (lastInterest - userLastInterest), scaleValue)
257257 let userNewInterest = lastInterest
258258 $Tuple2(userNewInterest, claimAmount)
259259 }
260260
261261
262262 @Callable(i)
263263 func airDrop () = if (!(isActive))
264264 then throw("DApp is inactive at this moment")
265265 else {
266- let $t092629337 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
267- let pmtAmount = $t092629337._1
268- let pmtAssetId = $t092629337._2
266+ let $t094019476 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
267+ let pmtAmount = $t094019476._1
268+ let pmtAssetId = $t094019476._2
269269 if ((pmtAssetId != SWOP))
270270 then throw("Incorrect pmtAssetId")
271271 else {
272272 let totalSWOPLocked = getTotalSWOPLocked()
273273 let lastInterest = getLastInterestInfo()
274274 let interestNew = (lastInterest + fraction(pmtAmount, scaleValue, totalSWOPLocked))
275275 [IntegerEntry(keyLastInterest, interestNew)]
276276 }
277277 }
278278
279279
280280
281281 @Callable(i)
282282 func lockSWOP () = if (!(isActive))
283283 then throw("DApp is inactive at this moment")
284284 else {
285- let $t097759850 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
286- let pmtAmount = $t097759850._1
287- let pmtAssetId = $t097759850._2
285+ let $t099149989 = $Tuple2(i.payments[0].amount, i.payments[0].assetId)
286+ let pmtAmount = $t099149989._1
287+ let pmtAssetId = $t099149989._2
288288 if ((pmtAssetId != SWOP))
289289 then throw("Incorrect pmtAssetId")
290290 else {
291291 let lastInterest = getLastInterestInfo()
292- let $t0996610048 = getUserInterestInfo(i.caller, lastInterest)
293- let userLastInterest = $t0996610048._1
294- let userSWOPLocked = $t0996610048._2
292+ let $t01010510187 = getUserInterestInfo(i.caller, lastInterest)
293+ let userLastInterest = $t01010510187._1
294+ let userSWOPLocked = $t01010510187._2
295295 let claimAmount = fraction(userSWOPLocked, (lastInterest - userLastInterest), scaleValue)
296296 let userSWOPLockedNew = ((userSWOPLocked + pmtAmount) + claimAmount)
297297 let userNewInterest = lastInterest
298298 let totalSWOPLocked = getTotalSWOPLocked()
299299 let totalSWOPLockedNew = ((totalSWOPLocked + pmtAmount) + claimAmount)
300300 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
301301 let userClaimedAmountNew = (userClaimedAmount + claimAmount)
302302 [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)]
303303 }
304304 }
305305
306306
307307
308308 @Callable(i)
309309 func withdrawSWOP (withdrawAmount) = if (!(isActive))
310310 then throw("DApp is inactive at this moment")
311311 else if ((0 >= withdrawAmount))
312312 then throw("withdrawAmount <= 0")
313313 else {
314314 let totalSWOPLocked = getTotalSWOPLocked()
315315 let userSWOPLocked = getUserSWOPLocked(i.caller)
316- let $t01119811253 = claimCalc(i.caller)
317- let userNewInterest = $t01119811253._1
318- let claimAmount = $t01119811253._2
319- let $t01125811323 = getUserVoteInfo(i.caller)
320- let userVoteAmount = $t01125811323._1
321- let userUnvoteAmount = $t01125811323._2
316+ let $t01133711392 = claimCalc(i.caller)
317+ let userNewInterest = $t01133711392._1
318+ let claimAmount = $t01133711392._2
319+ let $t01139711462 = getUserVoteInfo(i.caller)
320+ let userVoteAmount = $t01139711462._1
321+ let userUnvoteAmount = $t01139711462._2
322322 let userVoteAmountForNewPool = getUserTotalVoteForNewPoolAmount(i.caller)
323323 if (if (if ((0 > userUnvoteAmount))
324324 then true
325325 else (0 > userVoteAmount))
326326 then true
327327 else (0 > userVoteAmountForNewPool))
328328 then throw("userUnvoteAmount < 0 || userVoteAmount < 0 || userVoteAmountForNewPool < 0")
329329 else {
330330 let availableToUnstake = (userSWOPLocked - max([userVoteAmountForNewPool, (userVoteAmount + userUnvoteAmount)]))
331331 if ((withdrawAmount > availableToUnstake))
332332 then throw("withdrawAmount > availableToUnstake")
333333 else {
334334 let totalSWOPLockedNew = ((totalSWOPLocked + claimAmount) - withdrawAmount)
335335 let userSWOPamountNew = ((userSWOPLocked + claimAmount) - withdrawAmount)
336336 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
337337 let userClaimedAmountNew = (userClaimedAmount + claimAmount)
338338 [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)]
339339 }
340340 }
341341 }
342342
343343
344344
345345 @Callable(i)
346346 func claimAndWithdrawSWOP () = if (!(isActive))
347347 then throw("DApp is inactive at this moment")
348348 else {
349349 let lastInterest = getLastInterestInfo()
350- let $t01269812753 = claimCalc(i.caller)
351- let userNewInterest = $t01269812753._1
352- let claimAmount = $t01269812753._2
350+ let $t01283712892 = claimCalc(i.caller)
351+ let userNewInterest = $t01283712892._1
352+ let claimAmount = $t01283712892._2
353353 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
354354 let userClaimedAmountNew = (userClaimedAmount + claimAmount)
355355 if ((claimAmount == 0))
356356 then throw("You have 0 available SWOP")
357357 else [IntegerEntry((toString(i.caller) + keyUserLastInterest), userNewInterest), IntegerEntry((toString(i.caller) + keyUserSWOPClaimedAmount), userClaimedAmountNew), IntegerEntry((toString(i.caller) + keyUserSWOPLastClaimedAmount), claimAmount), ScriptTransfer(i.caller, claimAmount, SWOP)]
358358 }
359359
360360
361361
362362 @Callable(i)
363363 func claimAndStakeSWOP () = if (!(isActive))
364364 then throw("DApp is inactive at this moment")
365365 else {
366366 let totalSWOPLocked = getTotalSWOPLocked()
367367 let userSWOPLocked = getUserSWOPLocked(i.caller)
368368 let lastInterest = getLastInterestInfo()
369- let $t01353213587 = claimCalc(i.caller)
370- let userNewInterest = $t01353213587._1
371- let claimAmount = $t01353213587._2
369+ let $t01367113726 = claimCalc(i.caller)
370+ let userNewInterest = $t01367113726._1
371+ let claimAmount = $t01367113726._2
372372 let userSWOPLockedNew = (userSWOPLocked + claimAmount)
373373 let totalSWOPLockedNew = (totalSWOPLocked + claimAmount)
374374 let userClaimedAmount = getUserSWOPClaimedAmount(i.caller)
375375 let userClaimedAmountNew = (userClaimedAmount + claimAmount)
376376 if ((claimAmount == 0))
377377 then throw("You have 0 available SWOP")
378378 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)]
379379 }
380380
381381
382382
383383 @Callable(i)
384-func updateWeights (previousPoolsLegacy,previousRewardsLegacy,currentPools,currentRewards,rewardUpdateHeight,pagination) = if (!(isActive))
384+func updateWeights (currentPools,currentRewards,rewardUpdateHeight,pagination) = if (!(isActive))
385385 then throw("DApp is inactive at this moment")
386386 else {
387387 let amountPools = 10
388388 let totalRewardUpdateHeight = valueOrElse(getInteger(this, keyRewardUpdateHeight), 0)
389- if ((size(currentPools) > amountPools))
390- then throw(("Max amount of pool is " + toString(amountPools)))
391- else if ((totalRewardUpdateHeight >= rewardUpdateHeight))
392- then throw("rewardUpdateHeight <= totalRewardUpdateHeight")
393- else if ((height >= rewardUpdateHeight))
394- then throw("height >= rewardUpdateHeight")
395- else if ((0 >= rewardUpdateHeight))
396- then throw("0 >= rewardUpdateHeight ")
397- else {
398- func sum (a,b) = (a + b)
389+ if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop, adminPubKeyWallet], i.callerPublicKey)))
390+ then throw("Only admin can call this function")
391+ else if ((size(currentPools) > amountPools))
392+ then throw(("Max amount of pool is " + toString(amountPools)))
393+ else if ((totalRewardUpdateHeight >= rewardUpdateHeight))
394+ then throw("rewardUpdateHeight <= totalRewardUpdateHeight")
395+ else if ((height >= rewardUpdateHeight))
396+ then throw("height >= rewardUpdateHeight")
397+ else if ((0 >= rewardUpdateHeight))
398+ then throw("0 >= rewardUpdateHeight ")
399+ else {
400+ func sum (a,b) = (a + b)
399401
400- func sumEntry (a,b) = (valueOrElse(a.value, 0) + b.value)
402+ func changePreviousRewardEntry (accumulated,pool) = {
403+ let poolRewardUpdateHeight = getPoolUpdateHeight(pool)
404+ if (if (!(isDefinePoolUpdateHeight(pool)))
405+ then true
406+ else if ((rewardUpdateHeight != poolRewardUpdateHeight))
407+ then (poolRewardUpdateHeight == totalRewardUpdateHeight)
408+ else false)
409+ then {
410+ let poolReward = getCurPoolWeight(pool)
411+IntegerEntry((pool + keyRewardPoolFractionPrevious), poolReward) :: accumulated
412+ }
413+ else {
414+ let poolReward = getPrevPoolWeight(pool)
415+IntegerEntry((pool + keyRewardPoolFractionPrevious), poolReward) :: accumulated
416+ }
417+ }
401418
402- func changePreviousRewardEntry (accumulated,pool) = {
403- let poolRewardUpdateHeight = getPoolUpdateHeight(pool)
404- if (if (!(isDefinePoolUpdateHeight(pool)))
405- then true
406- else if ((rewardUpdateHeight != poolRewardUpdateHeight))
407- then (poolRewardUpdateHeight == totalRewardUpdateHeight)
408- else false)
409- then {
410- let poolReward = getCurPoolWeight(pool)
411-IntegerEntry((pool + keyRewardPoolFractionPrevious), poolReward) :: accumulated
412- }
413- else {
414- let poolReward = getPrevPoolWeight(pool)
415-IntegerEntry((pool + keyRewardPoolFractionPrevious), poolReward) :: accumulated
416- }
417- }
419+ func changeCurrentRewardEntry (accumulated,pool) = {
420+ let poolIndex = value(indexOf(currentPools, pool))
421+ let poolReward = currentRewards[poolIndex]
422+ if ((0 > poolReward))
423+ then throw("PoolReward < 0")
424+ else IntegerEntry((pool + keyRewardPoolFractionCurrent), poolReward) :: accumulated
425+ }
418426
419- func changeCurrentRewardEntry (accumulated,pool) = {
420- let poolIndex = value(indexOf(currentPools, pool))
421- let poolReward = currentRewards[poolIndex]
422- if ((0 > poolReward))
423- then throw("PoolReward < 0")
424- else IntegerEntry((pool + keyRewardPoolFractionCurrent), poolReward) :: accumulated
425- }
427+ func changeHeightEntry (accumulated,pool) = {
428+ let poolHeight = rewardUpdateHeight
429+IntegerEntry((pool + keyHeightPoolFraction), poolHeight) :: accumulated
430+ }
426431
427- func changeHeightEntry (accumulated,pool) = {
428- let poolHeight = rewardUpdateHeight
429-IntegerEntry((pool + keyHeightPoolFraction), poolHeight) :: accumulated
430- }
431-
432- func getSumReward (curTempSum,pagination) = if ((pagination == 0))
433- then if ((curTempSum > totalVoteShare))
434- then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(pagination)) + " ") + toString(curTempSum)))
435- else $Tuple2([IntegerEntry(keyTempCurSum, curTempSum)], [IntegerEntry(keyRewardUpdateFirstPaginationHeight, rewardUpdateHeight)])
436- else if ((pagination == 1))
437- then {
438- let curTempSumFromKey = valueOrElse(getInteger(this, keyTempCurSum), 0)
439- let rewardUpdateHeightFirstPaginationEntry = valueOrElse(getInteger(this, keyRewardUpdateFirstPaginationHeight), 0)
440- if (((curTempSum + curTempSumFromKey) > totalVoteShare))
441- then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(pagination)) + " ") + toString((curTempSum + curTempSumFromKey))))
442- else if ((rewardUpdateHeightFirstPaginationEntry != rewardUpdateHeight))
443- then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
444- else $Tuple2([IntegerEntry(keyTempCurSum, (curTempSum + curTempSumFromKey))], nil)
445- }
446- else if ((pagination == 2))
432+ func getSumReward (curTempSum,pagination) = if ((pagination == 0))
433+ then if ((curTempSum > totalVoteShare))
434+ then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(pagination)) + " ") + toString(curTempSum)))
435+ else $Tuple2([IntegerEntry(keyTempCurSum, curTempSum)], [IntegerEntry(keyRewardUpdateFirstPaginationHeight, rewardUpdateHeight)])
436+ else if ((pagination == 1))
447437 then {
448- let curSum = (valueOrElse(getInteger(this, keyTempCurSum), 0) + curTempSum)
438+ let curTempSumFromKey = valueOrElse(getInteger(this, keyTempCurSum), 0)
449439 let rewardUpdateHeightFirstPaginationEntry = valueOrElse(getInteger(this, keyRewardUpdateFirstPaginationHeight), 0)
450- if ((curSum != totalVoteShare))
451- then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare")
440+ if (((curTempSum + curTempSumFromKey) > totalVoteShare))
441+ then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(pagination)) + " ") + toString((curTempSum + curTempSumFromKey))))
452442 else if ((rewardUpdateHeightFirstPaginationEntry != rewardUpdateHeight))
453443 then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
454- else $Tuple2([IntegerEntry(keyTempCurSum, curSum)], nil)
444+ else $Tuple2([IntegerEntry(keyTempCurSum, (curTempSum + curTempSumFromKey))], nil)
455445 }
456- else throw("Incorrect pagination")
446+ else if ((pagination == 2))
447+ then {
448+ let curSum = (valueOrElse(getInteger(this, keyTempCurSum), 0) + curTempSum)
449+ let rewardUpdateHeightFirstPaginationEntry = valueOrElse(getInteger(this, keyRewardUpdateFirstPaginationHeight), 0)
450+ if ((curSum != totalVoteShare))
451+ then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare")
452+ else if ((rewardUpdateHeightFirstPaginationEntry != rewardUpdateHeight))
453+ then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
454+ else $Tuple2([IntegerEntry(keyTempCurSum, curSum)], nil)
455+ }
456+ else throw("Incorrect pagination")
457457
458- let previousRewardEntryNew = {
459- let $list1864018692 = currentPools
460- let $size1864018692 = size($list1864018692)
461- let $acc01864018692 = nil
462- if (($size1864018692 == 0))
463- then $acc01864018692
464- else {
465- let $acc11864018692 = changePreviousRewardEntry($acc01864018692, $list1864018692[0])
466- if (($size1864018692 == 1))
467- then $acc11864018692
468- else {
469- let $acc21864018692 = changePreviousRewardEntry($acc11864018692, $list1864018692[1])
470- if (($size1864018692 == 2))
471- then $acc21864018692
472- else {
473- let $acc31864018692 = changePreviousRewardEntry($acc21864018692, $list1864018692[2])
474- if (($size1864018692 == 3))
475- then $acc31864018692
476- else {
477- let $acc41864018692 = changePreviousRewardEntry($acc31864018692, $list1864018692[3])
478- if (($size1864018692 == 4))
479- then $acc41864018692
480- else {
481- let $acc51864018692 = changePreviousRewardEntry($acc41864018692, $list1864018692[4])
482- if (($size1864018692 == 5))
483- then $acc51864018692
484- else {
485- let $acc61864018692 = changePreviousRewardEntry($acc51864018692, $list1864018692[5])
486- if (($size1864018692 == 6))
487- then $acc61864018692
488- else {
489- let $acc71864018692 = changePreviousRewardEntry($acc61864018692, $list1864018692[6])
490- if (($size1864018692 == 7))
491- then $acc71864018692
492- else {
493- let $acc81864018692 = changePreviousRewardEntry($acc71864018692, $list1864018692[7])
494- if (($size1864018692 == 8))
495- then $acc81864018692
496- else {
497- let $acc91864018692 = changePreviousRewardEntry($acc81864018692, $list1864018692[8])
498- if (($size1864018692 == 9))
499- then $acc91864018692
500- else {
501- let $acc101864018692 = changePreviousRewardEntry($acc91864018692, $list1864018692[9])
502- if (($size1864018692 == 10))
503- then $acc101864018692
504- else {
505- let $acc111864018692 = changePreviousRewardEntry($acc101864018692, $list1864018692[10])
506- throw("List size exceed 10")
507- }
508- }
509- }
510- }
511- }
512- }
513- }
514- }
515- }
516- }
517- }
458+ let previousRewardEntryNew = {
459+ let $list1859818650 = currentPools
460+ let $size1859818650 = size($list1859818650)
461+ let $acc01859818650 = nil
462+ if (($size1859818650 == 0))
463+ then $acc01859818650
464+ else {
465+ let $acc11859818650 = changePreviousRewardEntry($acc01859818650, $list1859818650[0])
466+ if (($size1859818650 == 1))
467+ then $acc11859818650
468+ else {
469+ let $acc21859818650 = changePreviousRewardEntry($acc11859818650, $list1859818650[1])
470+ if (($size1859818650 == 2))
471+ then $acc21859818650
472+ else {
473+ let $acc31859818650 = changePreviousRewardEntry($acc21859818650, $list1859818650[2])
474+ if (($size1859818650 == 3))
475+ then $acc31859818650
476+ else {
477+ let $acc41859818650 = changePreviousRewardEntry($acc31859818650, $list1859818650[3])
478+ if (($size1859818650 == 4))
479+ then $acc41859818650
480+ else {
481+ let $acc51859818650 = changePreviousRewardEntry($acc41859818650, $list1859818650[4])
482+ if (($size1859818650 == 5))
483+ then $acc51859818650
484+ else {
485+ let $acc61859818650 = changePreviousRewardEntry($acc51859818650, $list1859818650[5])
486+ if (($size1859818650 == 6))
487+ then $acc61859818650
488+ else {
489+ let $acc71859818650 = changePreviousRewardEntry($acc61859818650, $list1859818650[6])
490+ if (($size1859818650 == 7))
491+ then $acc71859818650
492+ else {
493+ let $acc81859818650 = changePreviousRewardEntry($acc71859818650, $list1859818650[7])
494+ if (($size1859818650 == 8))
495+ then $acc81859818650
496+ else {
497+ let $acc91859818650 = changePreviousRewardEntry($acc81859818650, $list1859818650[8])
498+ if (($size1859818650 == 9))
499+ then $acc91859818650
500+ else {
501+ let $acc101859818650 = changePreviousRewardEntry($acc91859818650, $list1859818650[9])
502+ if (($size1859818650 == 10))
503+ then $acc101859818650
504+ else {
505+ let $acc111859818650 = changePreviousRewardEntry($acc101859818650, $list1859818650[10])
506+ throw("List size exceed 10")
507+ }
508+ }
509+ }
510+ }
511+ }
512+ }
513+ }
514+ }
515+ }
516+ }
517+ }
518+ }
519+ let currentRewardEntryNew = {
520+ let $list1868318735 = currentPools
521+ let $size1868318735 = size($list1868318735)
522+ let $acc01868318735 = nil
523+ if (($size1868318735 == 0))
524+ then $acc01868318735
525+ else {
526+ let $acc11868318735 = changeCurrentRewardEntry($acc01868318735, $list1868318735[0])
527+ if (($size1868318735 == 1))
528+ then $acc11868318735
529+ else {
530+ let $acc21868318735 = changeCurrentRewardEntry($acc11868318735, $list1868318735[1])
531+ if (($size1868318735 == 2))
532+ then $acc21868318735
533+ else {
534+ let $acc31868318735 = changeCurrentRewardEntry($acc21868318735, $list1868318735[2])
535+ if (($size1868318735 == 3))
536+ then $acc31868318735
537+ else {
538+ let $acc41868318735 = changeCurrentRewardEntry($acc31868318735, $list1868318735[3])
539+ if (($size1868318735 == 4))
540+ then $acc41868318735
541+ else {
542+ let $acc51868318735 = changeCurrentRewardEntry($acc41868318735, $list1868318735[4])
543+ if (($size1868318735 == 5))
544+ then $acc51868318735
545+ else {
546+ let $acc61868318735 = changeCurrentRewardEntry($acc51868318735, $list1868318735[5])
547+ if (($size1868318735 == 6))
548+ then $acc61868318735
549+ else {
550+ let $acc71868318735 = changeCurrentRewardEntry($acc61868318735, $list1868318735[6])
551+ if (($size1868318735 == 7))
552+ then $acc71868318735
553+ else {
554+ let $acc81868318735 = changeCurrentRewardEntry($acc71868318735, $list1868318735[7])
555+ if (($size1868318735 == 8))
556+ then $acc81868318735
557+ else {
558+ let $acc91868318735 = changeCurrentRewardEntry($acc81868318735, $list1868318735[8])
559+ if (($size1868318735 == 9))
560+ then $acc91868318735
561+ else {
562+ let $acc101868318735 = changeCurrentRewardEntry($acc91868318735, $list1868318735[9])
563+ if (($size1868318735 == 10))
564+ then $acc101868318735
565+ else {
566+ let $acc111868318735 = changeCurrentRewardEntry($acc101868318735, $list1868318735[10])
567+ throw("List size exceed 10")
568+ }
569+ }
570+ }
571+ }
572+ }
573+ }
574+ }
575+ }
576+ }
577+ }
578+ }
579+ }
580+ let heightEntryNewCur = {
581+ let $list1876418809 = currentPools
582+ let $size1876418809 = size($list1876418809)
583+ let $acc01876418809 = nil
584+ if (($size1876418809 == 0))
585+ then $acc01876418809
586+ else {
587+ let $acc11876418809 = changeHeightEntry($acc01876418809, $list1876418809[0])
588+ if (($size1876418809 == 1))
589+ then $acc11876418809
590+ else {
591+ let $acc21876418809 = changeHeightEntry($acc11876418809, $list1876418809[1])
592+ if (($size1876418809 == 2))
593+ then $acc21876418809
594+ else {
595+ let $acc31876418809 = changeHeightEntry($acc21876418809, $list1876418809[2])
596+ if (($size1876418809 == 3))
597+ then $acc31876418809
598+ else {
599+ let $acc41876418809 = changeHeightEntry($acc31876418809, $list1876418809[3])
600+ if (($size1876418809 == 4))
601+ then $acc41876418809
602+ else {
603+ let $acc51876418809 = changeHeightEntry($acc41876418809, $list1876418809[4])
604+ if (($size1876418809 == 5))
605+ then $acc51876418809
606+ else {
607+ let $acc61876418809 = changeHeightEntry($acc51876418809, $list1876418809[5])
608+ if (($size1876418809 == 6))
609+ then $acc61876418809
610+ else {
611+ let $acc71876418809 = changeHeightEntry($acc61876418809, $list1876418809[6])
612+ if (($size1876418809 == 7))
613+ then $acc71876418809
614+ else {
615+ let $acc81876418809 = changeHeightEntry($acc71876418809, $list1876418809[7])
616+ if (($size1876418809 == 8))
617+ then $acc81876418809
618+ else {
619+ let $acc91876418809 = changeHeightEntry($acc81876418809, $list1876418809[8])
620+ if (($size1876418809 == 9))
621+ then $acc91876418809
622+ else {
623+ let $acc101876418809 = changeHeightEntry($acc91876418809, $list1876418809[9])
624+ if (($size1876418809 == 10))
625+ then $acc101876418809
626+ else {
627+ let $acc111876418809 = changeHeightEntry($acc101876418809, $list1876418809[10])
628+ throw("List size exceed 10")
629+ }
630+ }
631+ }
632+ }
633+ }
634+ }
635+ }
636+ }
637+ }
638+ }
639+ }
640+ }
641+ let sumRewardCurrentTemp = {
642+ let $list1884318875 = currentRewards
643+ let $size1884318875 = size($list1884318875)
644+ let $acc01884318875 = 0
645+ if (($size1884318875 == 0))
646+ then $acc01884318875
647+ else {
648+ let $acc11884318875 = sum($acc01884318875, $list1884318875[0])
649+ if (($size1884318875 == 1))
650+ then $acc11884318875
651+ else {
652+ let $acc21884318875 = sum($acc11884318875, $list1884318875[1])
653+ if (($size1884318875 == 2))
654+ then $acc21884318875
655+ else {
656+ let $acc31884318875 = sum($acc21884318875, $list1884318875[2])
657+ if (($size1884318875 == 3))
658+ then $acc31884318875
659+ else {
660+ let $acc41884318875 = sum($acc31884318875, $list1884318875[3])
661+ if (($size1884318875 == 4))
662+ then $acc41884318875
663+ else {
664+ let $acc51884318875 = sum($acc41884318875, $list1884318875[4])
665+ if (($size1884318875 == 5))
666+ then $acc51884318875
667+ else {
668+ let $acc61884318875 = sum($acc51884318875, $list1884318875[5])
669+ if (($size1884318875 == 6))
670+ then $acc61884318875
671+ else {
672+ let $acc71884318875 = sum($acc61884318875, $list1884318875[6])
673+ if (($size1884318875 == 7))
674+ then $acc71884318875
675+ else {
676+ let $acc81884318875 = sum($acc71884318875, $list1884318875[7])
677+ if (($size1884318875 == 8))
678+ then $acc81884318875
679+ else {
680+ let $acc91884318875 = sum($acc81884318875, $list1884318875[8])
681+ if (($size1884318875 == 9))
682+ then $acc91884318875
683+ else {
684+ let $acc101884318875 = sum($acc91884318875, $list1884318875[9])
685+ if (($size1884318875 == 10))
686+ then $acc101884318875
687+ else {
688+ let $acc111884318875 = sum($acc101884318875, $list1884318875[10])
689+ throw("List size exceed 10")
690+ }
691+ }
692+ }
693+ }
694+ }
695+ }
696+ }
697+ }
698+ }
699+ }
700+ }
701+ }
702+ let $t01888118992 = getSumReward(sumRewardCurrentTemp, pagination)
703+ let sumRewardCurrent = $t01888118992._1
704+ let rewardUpdateHeightFirstPaginationEntry = $t01888118992._2
705+ let rewardUpdateHeightEntry = if ((pagination == 2))
706+ then [IntegerEntry(keyRewardUpdateHeight, rewardUpdateHeight)]
707+ else nil
708+ if ((height > rewardUpdateHeight))
709+ then throw("rewardUpdateHeight < height")
710+ else (((((previousRewardEntryNew ++ currentRewardEntryNew) ++ heightEntryNewCur) ++ sumRewardCurrent) ++ rewardUpdateHeightEntry) ++ rewardUpdateHeightFirstPaginationEntry)
518711 }
519- let currentRewardEntryNew = {
520- let $list1872518777 = currentPools
521- let $size1872518777 = size($list1872518777)
522- let $acc01872518777 = nil
523- if (($size1872518777 == 0))
524- then $acc01872518777
525- else {
526- let $acc11872518777 = changeCurrentRewardEntry($acc01872518777, $list1872518777[0])
527- if (($size1872518777 == 1))
528- then $acc11872518777
529- else {
530- let $acc21872518777 = changeCurrentRewardEntry($acc11872518777, $list1872518777[1])
531- if (($size1872518777 == 2))
532- then $acc21872518777
533- else {
534- let $acc31872518777 = changeCurrentRewardEntry($acc21872518777, $list1872518777[2])
535- if (($size1872518777 == 3))
536- then $acc31872518777
537- else {
538- let $acc41872518777 = changeCurrentRewardEntry($acc31872518777, $list1872518777[3])
539- if (($size1872518777 == 4))
540- then $acc41872518777
541- else {
542- let $acc51872518777 = changeCurrentRewardEntry($acc41872518777, $list1872518777[4])
543- if (($size1872518777 == 5))
544- then $acc51872518777
545- else {
546- let $acc61872518777 = changeCurrentRewardEntry($acc51872518777, $list1872518777[5])
547- if (($size1872518777 == 6))
548- then $acc61872518777
549- else {
550- let $acc71872518777 = changeCurrentRewardEntry($acc61872518777, $list1872518777[6])
551- if (($size1872518777 == 7))
552- then $acc71872518777
553- else {
554- let $acc81872518777 = changeCurrentRewardEntry($acc71872518777, $list1872518777[7])
555- if (($size1872518777 == 8))
556- then $acc81872518777
557- else {
558- let $acc91872518777 = changeCurrentRewardEntry($acc81872518777, $list1872518777[8])
559- if (($size1872518777 == 9))
560- then $acc91872518777
561- else {
562- let $acc101872518777 = changeCurrentRewardEntry($acc91872518777, $list1872518777[9])
563- if (($size1872518777 == 10))
564- then $acc101872518777
565- else {
566- let $acc111872518777 = changeCurrentRewardEntry($acc101872518777, $list1872518777[10])
567- throw("List size exceed 10")
568- }
569- }
570- }
571- }
572- }
573- }
574- }
575- }
576- }
577- }
578- }
579- }
580- let heightEntryNewCur = {
581- let $list1880618851 = currentPools
582- let $size1880618851 = size($list1880618851)
583- let $acc01880618851 = nil
584- if (($size1880618851 == 0))
585- then $acc01880618851
586- else {
587- let $acc11880618851 = changeHeightEntry($acc01880618851, $list1880618851[0])
588- if (($size1880618851 == 1))
589- then $acc11880618851
590- else {
591- let $acc21880618851 = changeHeightEntry($acc11880618851, $list1880618851[1])
592- if (($size1880618851 == 2))
593- then $acc21880618851
594- else {
595- let $acc31880618851 = changeHeightEntry($acc21880618851, $list1880618851[2])
596- if (($size1880618851 == 3))
597- then $acc31880618851
598- else {
599- let $acc41880618851 = changeHeightEntry($acc31880618851, $list1880618851[3])
600- if (($size1880618851 == 4))
601- then $acc41880618851
602- else {
603- let $acc51880618851 = changeHeightEntry($acc41880618851, $list1880618851[4])
604- if (($size1880618851 == 5))
605- then $acc51880618851
606- else {
607- let $acc61880618851 = changeHeightEntry($acc51880618851, $list1880618851[5])
608- if (($size1880618851 == 6))
609- then $acc61880618851
610- else {
611- let $acc71880618851 = changeHeightEntry($acc61880618851, $list1880618851[6])
612- if (($size1880618851 == 7))
613- then $acc71880618851
614- else {
615- let $acc81880618851 = changeHeightEntry($acc71880618851, $list1880618851[7])
616- if (($size1880618851 == 8))
617- then $acc81880618851
618- else {
619- let $acc91880618851 = changeHeightEntry($acc81880618851, $list1880618851[8])
620- if (($size1880618851 == 9))
621- then $acc91880618851
622- else {
623- let $acc101880618851 = changeHeightEntry($acc91880618851, $list1880618851[9])
624- if (($size1880618851 == 10))
625- then $acc101880618851
626- else {
627- let $acc111880618851 = changeHeightEntry($acc101880618851, $list1880618851[10])
628- throw("List size exceed 10")
629- }
630- }
631- }
632- }
633- }
634- }
635- }
636- }
637- }
638- }
639- }
640- }
641- let sumRewardCurrentTemp = {
642- let $list1888518917 = currentRewards
643- let $size1888518917 = size($list1888518917)
644- let $acc01888518917 = 0
645- if (($size1888518917 == 0))
646- then $acc01888518917
647- else {
648- let $acc11888518917 = sum($acc01888518917, $list1888518917[0])
649- if (($size1888518917 == 1))
650- then $acc11888518917
651- else {
652- let $acc21888518917 = sum($acc11888518917, $list1888518917[1])
653- if (($size1888518917 == 2))
654- then $acc21888518917
655- else {
656- let $acc31888518917 = sum($acc21888518917, $list1888518917[2])
657- if (($size1888518917 == 3))
658- then $acc31888518917
659- else {
660- let $acc41888518917 = sum($acc31888518917, $list1888518917[3])
661- if (($size1888518917 == 4))
662- then $acc41888518917
663- else {
664- let $acc51888518917 = sum($acc41888518917, $list1888518917[4])
665- if (($size1888518917 == 5))
666- then $acc51888518917
667- else {
668- let $acc61888518917 = sum($acc51888518917, $list1888518917[5])
669- if (($size1888518917 == 6))
670- then $acc61888518917
671- else {
672- let $acc71888518917 = sum($acc61888518917, $list1888518917[6])
673- if (($size1888518917 == 7))
674- then $acc71888518917
675- else {
676- let $acc81888518917 = sum($acc71888518917, $list1888518917[7])
677- if (($size1888518917 == 8))
678- then $acc81888518917
679- else {
680- let $acc91888518917 = sum($acc81888518917, $list1888518917[8])
681- if (($size1888518917 == 9))
682- then $acc91888518917
683- else {
684- let $acc101888518917 = sum($acc91888518917, $list1888518917[9])
685- if (($size1888518917 == 10))
686- then $acc101888518917
687- else {
688- let $acc111888518917 = sum($acc101888518917, $list1888518917[10])
689- throw("List size exceed 10")
690- }
691- }
692- }
693- }
694- }
695- }
696- }
697- }
698- }
699- }
700- }
701- }
702- let $t01892319034 = getSumReward(sumRewardCurrentTemp, pagination)
703- let sumRewardCurrent = $t01892319034._1
704- let rewardUpdateHeightFirstPaginationEntry = $t01892319034._2
705- let rewardUpdateHeightEntry = if ((pagination == 2))
706- then [IntegerEntry(keyRewardUpdateHeight, rewardUpdateHeight)]
707- else nil
708- if ((height > rewardUpdateHeight))
709- then throw("rewardUpdateHeight < height")
710- else (((((previousRewardEntryNew ++ currentRewardEntryNew) ++ heightEntryNewCur) ++ sumRewardCurrent) ++ rewardUpdateHeightEntry) ++ rewardUpdateHeightFirstPaginationEntry)
711- }
712712 }
713713
714714
715715
716716 @Callable(i)
717717 func shutdown () = if (!(isActive))
718718 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, keyCause), "the cause wasn't specified")))
719719 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop], i.callerPublicKey)))
720720 then throw("Only admin can call this function")
721721 else suspend("Paused by admin")
722722
723723
724724
725725 @Callable(i)
726726 func activate () = if (isActive)
727727 then throw("DApp is already active")
728728 else if (!(containsElement([adminPubKey1, adminPubKey2, adminPubKey3, adminPubKeyStartStop], i.callerPublicKey)))
729729 then throw("Only admin can call this function")
730730 else [BooleanEntry(keyActive, true), DeleteEntry(keyCause)]
731731
732732
733733 @Verifier(tx)
734734 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
735735

github/deemru/w8io/169f3d6 
95.70 ms