tx · 8qV4X2qPnTxNnrmsjvjLBC8xrALLvFZofN2L9KRqWx7s

3PEgVPqJ3NYWbRn1CLELUpuY9KCmragc7sY:  -0.01900000 Waves

2024.02.09 14:33 [4034431] smart account 3PEgVPqJ3NYWbRn1CLELUpuY9KCmragc7sY > SELF 0.00000000 Waves

{ "type": 13, "id": "8qV4X2qPnTxNnrmsjvjLBC8xrALLvFZofN2L9KRqWx7s", "fee": 1900000, "feeAssetId": null, "timestamp": 1707478426993, "version": 2, "chainId": 87, "sender": "3PEgVPqJ3NYWbRn1CLELUpuY9KCmragc7sY", "senderPublicKey": "8bCz9o3CUTfKKYBmcfJcAwKVKxEmLhGGyULemkcJwtkB", "proofs": [ "wxUSPSRzxJY62vRZz1eEXBQXqQJ9S8AW6sGgdne47kVe4jmScXFEeyWgNNkrsAAPRP8TGGYd2iXNkqPbgScPhgP" ], "script": "base64:BgI6CAISABIAEgASABIDCgEIEgASABIAEgMKAQgSABIAEgMKAQgSABIAEgMKAQgSABIECgIICBIECgIIASUBDXRyeUdldEludGVnZXICB2FkZHJlc3MDa2V5BAckbWF0Y2gwCQCaCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEMdHJ5R2V0U3RyaW5nAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFiBQckbWF0Y2gwBQFiAgAAAmQ4AIDC1y8AAmQ2AMCEPQAHcG9vbEJCQgEaAVdS7pNWFE1+B4zShQ/mflxXN34cn+88gh0ADXB1enpsZVN0YWtpbmcJAQdBZGRyZXNzAQEaAVeUaIz57qK5qp/W9Y68qY9nGpwG9BYpibsACWJiYlBvb2xJZAEaAVdS7pNWFE1+B4zShQ/mflxXN34cn+88gh0ADHB1enpsZU1hcmtldAkBB0FkZHJlc3MBARoBVzPfhq9Dvq0SbPM9eK91jwNWtVu1Nlr0FwAMcHV6emxlTWludGVyCQEHQWRkcmVzcwEBGgFXk93E0hfnIAr99yESTvDwdmcmgwN41FxMAAdidXJueHRuASAkT3V5an4zObj7DP+EqXFcXsot3jOgxF1p+epEEexMVAAJd2hpcmxwb29sASBZ443cwrUjukoU3MTQrxQJ5mTmBL4lBgsmTuVQbZdZxwAGcHV6emxlASDxGv4l/vaZOPRpKsTf4RLWR7LGyg66Nwmvd20fjqLlYwAEcm9tZQEgi1+UAYTDZcEkNI7/G/xwkTFIaskx6qjLk/P5nzRECM8ABHN1cmYBIJLR9EriEQEr9H7q3iGOPcX7yfJ9zoey7VIZ8DpOJFj1AAxwdXp6bGVTdGFrZWQJAQ10cnlHZXRJbnRlZ2VyAgUNcHV6emxlU3Rha2luZwkArAICCQClCAEFBHRoaXMCB19zdGFrZWQADHB1enpsZUluUG9vbAkBDXRyeUdldEludGVnZXICCQEHQWRkcmVzcwEFCWJiYlBvb2xJZAkArAICCQCsAgICB2dsb2JhbF8JANgEAQUGcHV6emxlAghfYmFsYW5jZQAMcHJvamVjdFN0YWtlCQENdHJ5R2V0SW50ZWdlcgIJAQdBZGRyZXNzAQUJYmJiUG9vbElkCQCsAgIJAKUIAQUEdGhpcwIMX2luZGV4U3Rha2VkAAp0b3RhbFN0YWtlCQENdHJ5R2V0SW50ZWdlcgIJAQdBZGRyZXNzAQUJYmJiUG9vbElkAhdnbG9iYWxfcG9vbFRva2VuX2Ftb3VudAALYXNzZXRXZWlnaHQJAQ10cnlHZXRJbnRlZ2VyAgkBB0FkZHJlc3MBBQliYmJQb29sSWQJAKwCAgkArAICAgdzdGF0aWNfCQDYBAEFBnB1enpsZQIHX3dlaWdodAANQkJCbHBJblB1enpsZQkAawMJAGgCCQBpAgUMcHV6emxlSW5Qb29sBQthc3NldFdlaWdodACQTgUMcHJvamVjdFN0YWtlBQp0b3RhbFN0YWtlABZrZXlBZGRyZXNzZXNSZWdpc3RlcmVkAhRBZGRyZXNzZXMgcmVnaXN0ZXJlZAAJYWRkcmVzc2VzCQCzAgIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzBRZrZXlBZGRyZXNzZXNSZWdpc3RlcmVkAAEAEGtleUJ1cm54dG5BbW91bnQCFkJVUk4tWFROIHRvdGFsIHJld2FyZHMADWtleVJvbWVBbW91bnQCElJPTUUgdG90YWwgcmV3YXJkcwAPa2V5UHV6emxlQW1vdW50AhRQVVpaTEUgdG90YWwgcmV3YXJkcwAOa2V5V2F2ZXNBbW91bnQCE1dBVkVTIHRvdGFsIHJld2FyZHMAEmtleVdoaXJscG9vbEFtb3VudAIXV0hJUkxQT09MIHRvdGFsIHJld2FyZHMAEGtleVRvdGFsTkZUcG93ZXICD1RvdGFsIE5GVCBwb3dlcgATa2V5VG90YWxQdXp6bGVWYWx1ZQISVG90YWwgcHV6emxlIHZhbHVlABNrZXlUb3RhbEJ1cm54dG5QYWlkAhNUb3RhbCBCVVJOLVhUTiBwYWlkABVrZXlUb3RhbFdoaXJscG9vbFBhaWQCFFRvdGFsIFdISVJMUE9PTCBwYWlkABBrZXlUb3RhbFJvbWVQYWlkAg9Ub3RhbCBST01FIHBhaWQAEWtleVRvdGFsV2F2ZXNQYWlkAhBUb3RhbCBXQVZFUyBwYWlkABJrZXlUb3RhbFB1enpsZVBhaWQCEVRvdGFsIFBVWlpMRSBwYWlkAAdXRlNsaXN0CQDMCAICLEducHk1blZhalBQM1hRUVZ4ckhib01Bc1h0am55V0F4eWJNRGRLcmJyOHNECQDMCAICLEJUOVE0bVFkUVFtZWkycjVZTk1CTWFzWkJRajdteU5haXo2UUhiYTVjUFhTCQDMCAICLEJNdmt5RnRQVm1GYXRwRlI5UVZGS1I1TVlUY1pWVFkyVlV3RloyNXZyQUFjCQDMCAICLDc3UnF1OFRMakJkTXREdVhkOW81ZlVTR282NHpRZTVGQ2NhbzVMOEh0OWo4CQDMCAIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzAgE1CQDMCAIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzAgE2CQDMCAIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzAgE3CQDMCAIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzAgE4CQDMCAIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzAgE5CQDMCAIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzAgIxMAUDbmlsAAdCQkJsaXN0CQDMCAICLDlwQ3hvR3REMThHZUg5Z0NlbXpxcmpITU1qZnlCUURmc3JSQXV4U1JhZ01jCQDMCAICLDdEZ0ZnQ2tCalZEYzVQOVpnd3NWTDlTaVRpN2tYSnVTNGFSVmdiN1pIVzNrCQDMCAICLDc2YlR2RTh0dEh2c3VOMUZ1SDRLYzhRVVc0a0w0bThjMWNqZnNYeTJHZmJWCQDMCAICLDRacmY0SDV0aUZjUUw4ZVFtbkEyd0oxWFdQRUJINmgxRzJNZWZaRFltY0NCCQDMCAICLDJEdEM0bkZueHo1VU02bWJqUHdNVlpwUVdaRlVxeHM1Mm9ackJlTlJrOUFvCQDMCAICLERqWkdNQUZmb1FXa01XM1M1RlRzUU4zam9uY1p0NkJzbWhuRUszZ2dMeG1OCQDMCAICLEJuZWFaWEQ2b3ZESmNWNXJnZnI4aHNIWmFNUXNKUThESDZhNWdUbkdDcEJjCQDMCAICLDRFS2ZnekZrZDVVR0tyam5hSlYzdzdhcmdXMVltRjRocTU0eFdRRnpBWGI5CQDMCAICLDhoR0RrV0tpdTJpZ0RwV1QzSHByNG1jaERENnh3SjloR20yaDJqblV2VHF6CQDMCAICLEUzWm5TZWpwWEwxWHI2Vkc0UW9MaDh4b2Q5Tk1ncFBlNDczcjlRazJIaWJMBQNuaWwADVNVUkZib2FyZExpc3QJAMwIAgIsRHpMU2dFYUJCNFVOYlBDWmVrUFN6YlE4NUtva01CN2QxS1JSbXpVUHU1aHMJAMwIAgIrV21XenNiYjNQTnZ6SjR3NEZiNzNLY29OR0xYdW1nWVphZ1YyMnpFaVgxdwkAzAgCAiw3UnJ4YmdheVVrc1BIckE3OTlwS3VDcjYxcmVUOG5FTmRxQ2tnVkhQZ2FOMgkAzAgCAixGbURMZnpzcGJWSmVLaEtkdUxEVWJhMkhvVmRSckt0c3dES01VM2U5cWp0UAkAzAgCAixIbVF2VnlRZEVqYWZMcnBLUFNpZ2RhZnZjWXZMYk5ZR0VnVkN4TFpSV3QxeQkAzAgCAiwyclZ4Tk1YdXZ1Zzc0VG9yTFFaR0MyRVJIakFiSm5WVWdOWFExa0ptdG5BZQkAzAgCAiw5eWI5eUdKbTZnelZvekJIdVFWSEJkQW56ZmN0M045YlJwZGpqTlVucnpjQwkAzAgCAitzMVNmR1ZzaGYyaktDQTlLdnZLS3ZVdUs4dXRwM05lM2VlOExwNktLTFJ3CQDMCAICLDNFM3liN1R2REs3NjJkbjExZG1STHdhcGdoYWVmUVVFeXVuVmRYU05wNHRCCQDMCAICLEZINzVUdkFweVZ0ZmQ5WDVhMUFyMTlOczlETkp2enB6TEZFNXBqaDF3aTRoCQDMCAICLEVncWtiRHlXUlBnVk5WcXRFRXRSU3pXY0dEMzNvclZvRTJiellkQWRpZVFTCQDMCAICLERzS3lKcEpDWmNGdjlqU25RYlFWRzRKeDNXU1AxS3RmSGhBS1RrU0tyVkJqCQDMCAICLEFlc1ByNVVGRGdZNWpaWFlVWjhKa2JZdEpvdlZkREhieTE1U0Nrc0VobUpLCQDMCAICLEFWc2ZkcXcybTVhVU54YTFIWTllbUxtQ0xCZlZBR1R4VnU0ZWYzeEVES0M4CQDMCAICLDVqZHZTU1kySzdoOFVpVUNYVWdLOVQ3emZNcnlxdzJpdEtQOEJ5c2RYRERrCQDMCAICLEE0dm9LWmVzOE1WREFYeVFqS2tiNmJkRWNxTWJ2QjRwdHpicHFZcXZlRzVuCQDMCAICLDM0b1pLYVdIcFNKclp2R0xkWXU1V0c4V1dYZzdyd0YySEh4OEsxNUdmVUNRCQDMCAICLDc3TWNDSGttTnJSTTREanFrU005QjhZanVKY0t0bjY3alFnZTFwelpyUThUCQDMCAICLDdORUZCbnZHR01mWWRCbmhNTE5wdVZnUzIyTHBjZ1hDWmdIZm04REhtbWlBCQDMCAICLEdvRjl5b2t4SGdQTm94b1dnampkbUdlV2hjTFlBclNzeHFmZlJ0ZllHdGZzBQNuaWwSAWkBCmludm9rZUNsSTEAAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgQCY2wJAPwHBAUEdGhpcwIRY2xhaW1JbnZlc3RQdXp6bGUFA25pbAUDbmlsAwkAAAIFAmNsBQJjbAQCaTEJAPwHBAUEdGhpcwIIaW52b2tlcjEFA25pbAUDbmlsAwkAAAIFAmkxBQJpMQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEWNsYWltSW52ZXN0UHV6emxlAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEEXJvbWVCYWxhbmNlQmVmb3JlCQDwBwIFBHRoaXMFBHJvbWUDCQAAAgURcm9tZUJhbGFuY2VCZWZvcmUFEXJvbWVCYWxhbmNlQmVmb3JlBBJjbGFpbVB1enpsZVN0YWtpbmcJAPwHBAUNcHV6emxlU3Rha2luZwILY2xhaW1SZXdhcmQFA25pbAUDbmlsAwkAAAIFEmNsYWltUHV6emxlU3Rha2luZwUSY2xhaW1QdXp6bGVTdGFraW5nBA9wb29sT25lVG9rZW5JbnYJAPwHBAkBB0FkZHJlc3MBARoBV/0lw71OYZRB77peEmOPxTlvSbWIOvXpbQIhZ2VuZXJhdGVJbmRleFdpdGhPbmVUb2tlbkFuZFN0YWtlCQDMCAIJANgEAQUHcG9vbEJCQgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQZwdXp6bGUJAPAHAgUEdGhpcwUGcHV6emxlBQNuaWwDCQAAAgUPcG9vbE9uZVRva2VuSW52BQ9wb29sT25lVG9rZW5JbnYEEHJvbWVCYWxhbmNlQWZ0ZXIJAPAHAgUEdGhpcwUEcm9tZQkAzAgCCQEMSW50ZWdlckVudHJ5AgIVQWN0aXZhdGVkIGJsb2NraGVpZ2h0BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFEGtleUJ1cm54dG5BbW91bnQJAPAHAgUEdGhpcwUHYnVybnh0bgkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa2V5Um9tZUFtb3VudAkAZQIFEHJvbWVCYWxhbmNlQWZ0ZXIFEXJvbWVCYWxhbmNlQmVmb3JlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ5rZXlXYXZlc0Ftb3VudAMJAGYCCQBlAggJAO8HAQUEdGhpcwlhdmFpbGFibGUFAmQ4AAAJAGUCCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQUCZDgAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSa2V5V2hpcmxwb29sQW1vdW50CQDwBwIFBHRoaXMFCXdoaXJscG9vbAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCGludm9rZXIxAAQFcmVzZXQJAPwHBAUEdGhpcwIKcmVzZXRDb3VudAUDbmlsBQNuaWwDCQAAAgUFcmVzZXQFBXJlc2V0BARsaXN0CQC8CQIFCWFkZHJlc3NlcwIBLAoBAXICBWFjY3VtB2FkZHJlc3MJAPwHBAUEdGhpcwINY291bnRORlRwb3dlcgkAzAgCBQdhZGRyZXNzBQNuaWwFA25pbAQHaW52b2tlcgoAAiRsBQRsaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQFyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAzMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkB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aQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjFfMgIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgMJAAACCQBkAgUIc2hhcmVXRlMFCHNoYXJlQkJCAAAEBGxpc3QJALwJAgUJYWRkcmVzc2VzAgEsBApub05GVGluZGV4CQEFdmFsdWUBCQDPCAIFBGxpc3QFB2FkZHJlc3MEDmxpc3RNaW51c05vTkZUCQDRCAIFBGxpc3QFCm5vTkZUaW5kZXgEDW1pbnVzTm9ORlRzdHIJAKwCAgkAuQkCBQ5saXN0TWludXNOb05GVAIBLAIBLAkAzAgCCQELU3RyaW5nRW50cnkCBRZrZXlBZGRyZXNzZXNSZWdpc3RlcmVkBQ1taW51c05vTkZUc3RyBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIEX1dGUwUIc2hhcmVXRlMJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUHYWRkcmVzcwIEX0JCQgkAaAIFCHNoYXJlQkJCAAoJAMwIAgkBDEludGVnZXJFbnRyeQIFEGtleVRvdGFsTkZUcG93ZXIJAGQCCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEGtleVRvdGFsTkZUcG93ZXIJAGQCBQhzaGFyZVdGUwkAaAIFCHNoYXJlQkJCAAoFA25pbAFpAQRkYXRhAAkAzAgCCQEMSW50ZWdlckVudHJ5AgIOcHV6emxlIGJhbGFuY2UJAPAHAgUEdGhpcwUGcHV6emxlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAg1wdXp6bGUgc3Rha2VkBQxwdXp6bGVTdGFrZWQJAMwIAgkBDEludGVnZXJFbnRyeQICDXB1enpsZSBCQkIgTFAFDUJCQmxwSW5QdXp6bGUJAMwIAgkBDEludGVnZXJFbnRyeQIFE2tleVRvdGFsUHV6emxlVmFsdWUJAGQCCQBkAgkA8AcCBQR0aGlzBQZwdXp6bGUFDHB1enpsZVN0YWtlZAUNQkJCbHBJblB1enpsZQUDbmlsAWkBCGludm9rZXIyAAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIEAXQJAPwHBAUEdGhpcwIOdHJhY2tUb3RhbFBhaWQFA25pbAUDbmlsAwkAAAIFAXQFAXQEBGxpc3QJALwJAgUJYWRkcmVzc2VzAgEsCgEBcgIFYWNjdW0HYWRkcmVzcwkA/AcEBQR0aGlzAhFkaXN0cmlidXRlUmV3YXJkcwkAzAgCBQdhZGRyZXNzBQNuaWwFA25pbAQHaW52b2tlcgoAAiRsBQRsaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQFyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAyMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQDCQAAAgUHaW52b2tlcgUHaW52b2tlcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDnRyYWNrVG90YWxQYWlkAAQNYW1vdW50QnVybnh0bgkBDXRyeUdldEludGVnZXICBQR0aGlzBRBrZXlCdXJueHRuQW1vdW50BA9hbW91bnRXaGlybHBvb2wJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUSa2V5V2hpcmxwb29sQW1vdW50BAthbW91bnRXYXZlcwkBDXRyeUdldEludGVnZXICBQR0aGlzBQ5rZXlXYXZlc0Ftb3VudAQKYW1vdW50Um9tZQkBDXRyeUdldEludGVnZXICBQR0aGlzBQ1rZXlSb21lQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRNrZXlUb3RhbEJ1cm54dG5QYWlkCQBkAgUNYW1vdW50QnVybnh0bgkBDXRyeUdldEludGVnZXICBQR0aGlzBRNrZXlUb3RhbEJ1cm54dG5QYWlkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRVrZXlUb3RhbFdoaXJscG9vbFBhaWQJAGQCBQ9hbW91bnRXaGlybHBvb2wJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUVa2V5VG90YWxXaGlybHBvb2xQYWlkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrZXlUb3RhbFdhdmVzUGFpZAkAZAIFC2Ftb3VudFdhdmVzCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEWtleVRvdGFsV2F2ZXNQYWlkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrZXlUb3RhbFJvbWVQYWlkCQBkAgUKYW1vdW50Um9tZQkBDXRyeUdldEludGVnZXICBQR0aGlzBRBrZXlUb3RhbFJvbWVQYWlkBQNuaWwBaQERZGlzdHJpYnV0ZVJld2FyZHMBB2FkZHJlc3MDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyCgEIZm9sZEZ1bmMCA2FjYwNXRlMJAGQCCQBkAgUDYWNjCQDwBwIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB2FkZHJlc3MJANkEAQUDV0ZTAwkAAAIJAQx0cnlHZXRTdHJpbmcCBQxwdXp6bGVNYXJrZXQJAKwCAgkArAICAgRuZnRfBQNXRlMCB19zZWxsZXIFB2FkZHJlc3MAAQkAZAIAAAMJAAACCQEMdHJ5R2V0U3RyaW5nAgUMcHV6emxlTWFya2V0AjduZnRfN3MzVkNNRlB3YVZHQXFQb1l3ZmJhajNyN0VZcTF1eWV1V2Iyc1RQMUFaM1lfc2VsbGVyBQdhZGRyZXNzCQENdHJ5R2V0SW50ZWdlcgIFDHB1enpsZU1pbnRlcgI8Z3JvdXBfN3MzVkNNRlB3YVZHQXFQb1l3ZmJhajNyN0VZcTF1eWV1V2Iyc1RQMUFaM1lfYXZhaWxhYmxlAAAECHNoYXJlV0ZTCgACJGwFB1dGU2xpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGZvbGRGdW5jAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKCgEJZm9sZEZ1bmNCAgNhY2MDQkJCCQBkAgkAZAIFA2FjYwkA8AcCCQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzCQDZBAEFA0JCQgMJAAACCQEMdHJ5R2V0U3RyaW5nAgUMcHV6emxlTWFya2V0CQCsAgIJAKwCAgIEbmZ0XwUDQkJCAgdfc2VsbGVyBQdhZGRyZXNzAAEAAAQIc2hhcmVCQkIKAAIkbAUHQkJCbGlzdAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMV8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEJZm9sZEZ1bmNCAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYxXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMV8yAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKCgEJZm9sZEZ1bmNDAgNhY2MJU1VSRmJvYXJkCQBkAgkAZAIFA2FjYwkA8AcCCQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzCQDZBAEFCVNVUkZib2FyZAMJAAACCQEMdHJ5R2V0U3RyaW5nAgUMcHV6emxlTWFya2V0CQCsAgIJAKwCAgIEbmZ0XwUJU1VSRmJvYXJkAgdfc2VsbGVyBQdhZGRyZXNzAAEAAAQPYW1vdW50U1VSRmJvYXJkCgACJGwFDVNVUkZib2FyZExpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjJfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCWZvbGRGdW5jQwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMl8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMjAJAQUkZjJfMgIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIJAQUkZjJfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUBAJicwkA/AcEBQR0aGlzAghidXJuU3VyZgUDbmlsBQNuaWwDCQAAAgUCYnMFAmJzBA1hbW91bnRCdXJueHRuCQBrAwkBDXRyeUdldEludGVnZXICBQR0aGlzBRBrZXlCdXJueHRuQW1vdW50CQBkAgUIc2hhcmVXRlMJAGgCBQhzaGFyZUJCQgAKCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEGtleVRvdGFsTkZUcG93ZXIED2Ftb3VudFdoaXJscG9vbAkAawMJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUSa2V5V2hpcmxwb29sQW1vdW50CQBkAgUIc2hhcmVXRlMJAGgCBQhzaGFyZUJCQgAKCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEGtleVRvdGFsTkZUcG93ZXIEC2Ftb3VudFdhdmVzCQBrAwkBDXRyeUdldEludGVnZXICBQR0aGlzBQ5rZXlXYXZlc0Ftb3VudAkAZAIFCHNoYXJlV0ZTCQBoAgUIc2hhcmVCQkIACgkBDXRyeUdldEludGVnZXICBQR0aGlzBRBrZXlUb3RhbE5GVHBvd2VyBAphbW91bnRSb21lCQBrAwkBDXRyeUdldEludGVnZXICBQR0aGlzBQ1rZXlSb21lQW1vdW50CQBkAgUIc2hhcmVXRlMJAGgCBQhzaGFyZUJCQgAKCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEGtleVRvdGFsTkZUcG93ZXIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUHYWRkcmVzcwUNYW1vdW50QnVybnh0bgUHYnVybnh0bgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzBQ9hbW91bnRXaGlybHBvb2wFCXdoaXJscG9vbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzBQthbW91bnRXYXZlcwUEdW5pdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzBQphbW91bnRSb21lBQRyb21lCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB2FkZHJlc3MJAGgCBQ9hbW91bnRTVVJGYm9hcmQFAmQ2BQRzdXJmBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIYnVyblN1cmYACQDMCAIJAQRCdXJuAgUEc3VyZgUCZDYJAMwIAgkBDEludGVnZXJFbnRyeQICEVNVUkYgdG90YWwgYnVybmVkCQBkAgkBDXRyeUdldEludGVnZXICBQR0aGlzAhFTVVJGIHRvdGFsIGJ1cm5lZAUCZDYFA25pbAFpAQhyZWdpc3RlcgADCQEIY29udGFpbnMCCQEMdHJ5R2V0U3RyaW5nAgUEdGhpcwUWa2V5QWRkcmVzc2VzUmVnaXN0ZXJlZAkApQgBCAUBaQZjYWxsZXIJAAIBAhJhbHJlYWR5IHJlZ2lzdGVyZWQDCQAAAgkAkAMBCQC8CQIFCWFkZHJlc3NlcwIBLAAeCQACAQILbWF4IHJlYWNoZWQJAMwIAgkBC1N0cmluZ0VudHJ5AgUWa2V5QWRkcmVzc2VzUmVnaXN0ZXJlZAkArAICCQCsAgIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzBRZrZXlBZGRyZXNzZXNSZWdpc3RlcmVkCQClCAEIBQFpBmNhbGxlcgIBLAUDbmlsAWkBEHJlZ2lzdGVyTWFudWFsbHkBB2FkZHJlc3MDCQEIY29udGFpbnMCCQEMdHJ5R2V0U3RyaW5nAgUEdGhpcwUWa2V5QWRkcmVzc2VzUmVnaXN0ZXJlZAUHYWRkcmVzcwkAAgECEmFscmVhZHkgcmVnaXN0ZXJlZAMJAAACCQCQAwEJALwJAgUJYWRkcmVzc2VzAgEsACgJAAIBAgttYXggcmVhY2hlZAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHGFjY2VzcyBvbmx5IGJ5IHByb2plY3Qgb3duZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgUWa2V5QWRkcmVzc2VzUmVnaXN0ZXJlZAkArAICCQCsAgIJAQx0cnlHZXRTdHJpbmcCBQR0aGlzBRZrZXlBZGRyZXNzZXNSZWdpc3RlcmVkBQdhZGRyZXNzAgEsBQNuaWwBaQEOY2xhaW1CeUFueWJvZHkAAwkAZgIJAGQCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAhVBY3RpdmF0ZWQgYmxvY2toZWlnaHQJAGgCAB4AoAsFBmhlaWdodAkAAgEJAKwCAgIWV2FpdCB0aWxsIGJsb2NraGVpZ2h0OgkApAMBCQBkAgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIVQWN0aXZhdGVkIGJsb2NraGVpZ2h0CQBoAgAeAKALBBNwdXp6bGVCYWxhbmNlQmVmb3JlCQDwBwIFBHRoaXMFBnB1enpsZQMJAAACBRNwdXp6bGVCYWxhbmNlQmVmb3JlBRNwdXp6bGVCYWxhbmNlQmVmb3JlBBFyb21lQmFsYW5jZUJlZm9yZQkA8AcCBQR0aGlzBQRyb21lAwkAAAIFEXJvbWVCYWxhbmNlQmVmb3JlBRFyb21lQmFsYW5jZUJlZm9yZQQSY2xhaW1QdXp6bGVTdGFraW5nCQD8BwQFDXB1enpsZVN0YWtpbmcCC2NsYWltUmV3YXJkBQNuaWwFA25pbAMJAAACBRJjbGFpbVB1enpsZVN0YWtpbmcFEmNsYWltUHV6emxlU3Rha2luZwQIY2xhaW1JbnYJAPwHBAkBB0FkZHJlc3MBBQdwb29sQkJCAhFjbGFpbUluZGV4UmV3YXJkcwUDbmlsBQNuaWwDCQAAAgUIY2xhaW1JbnYFCGNsYWltSW52BBJwdXp6bGVCYWxhbmNlQWZ0ZXIJAPAHAgUEdGhpcwUGcHV6emxlBBByb21lQmFsYW5jZUFmdGVyCQDwBwIFBHRoaXMFBHJvbWUJAMwIAgkBDEludGVnZXJFbnRyeQIFEGtleUJ1cm54dG5BbW91bnQJAPAHAgUEdGhpcwUHYnVybnh0bgkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa2V5Um9tZUFtb3VudAkAZQIFEHJvbWVCYWxhbmNlQWZ0ZXIFEXJvbWVCYWxhbmNlQmVmb3JlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ9rZXlQdXp6bGVBbW91bnQJAGUCBRJwdXp6bGVCYWxhbmNlQWZ0ZXIFE3B1enpsZUJhbGFuY2VCZWZvcmUJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtleVdhdmVzQW1vdW50AwkAZgIJAGUCCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQUCZDgAAAkAZQIICQDvBwEFBHRoaXMJYXZhaWxhYmxlBQJkOAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJrZXlXaGlybHBvb2xBbW91bnQJAPAHAgUEdGhpcwUJd2hpcmxwb29sBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEQaW52b2tlckJ5QW55Ym9keQADCQBmAgkAZAIJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMCFUFjdGl2YXRlZCBibG9ja2hlaWdodAkAaAIAHgCgCwUGaGVpZ2h0CQACAQkArAICAhZXYWl0IHRpbGwgYmxvY2toZWlnaHQ6CQCkAwEJAGQCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAhVBY3RpdmF0ZWQgYmxvY2toZWlnaHQJAGgCAB4AoAsEBXJlc2V0CQD8BwQFBHRoaXMCGmRpc3RyaWJ1dGVSZXdhcmRzQnlBbnlib2R5BQNuaWwFA25pbAMJAAACBQVyZXNldAUFcmVzZXQEBGxpc3QJALwJAgUJYWRkcmVzc2VzAgEsCgEBcgIFYWNjdW0HYWRkcmVzcwkA/AcEBQR0aGlzAg1jb3VudE5GVHBvd2VyCQDMCAIFB2FkZHJlc3MFA25pbAUDbmlsBAdpbnZva2VyCgACJGwFBGxpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBAXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDQwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgDCQAAAgUHaW52b2tlcgUHaW52b2tlcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBGmRpc3RyaWJ1dGVSZXdhcmRzQnlBbnlib2R5AQdhZGRyZXNzAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgoBCGZvbGRGdW5jAgNhY2MDV0ZTCQBkAgkAZAIFA2FjYwkA8AcCCQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzCQDZBAEFA1dGUwMJAAACCQEMdHJ5R2V0U3RyaW5nAgUMcHV6emxlTWFya2V0CQCsAgIJAKwCAgIEbmZ0XwUDV0ZTAgdfc2VsbGVyBQdhZGRyZXNzAAEJAGQCAAADCQAAAgkBDHRyeUdldFN0cmluZwIFDHB1enpsZU1hcmtldAI3bmZ0XzdzM1ZDTUZQd2FWR0FxUG9Zd2ZiYWozcjdFWXExdXlldVdiMnNUUDFBWjNZX3NlbGxlcgUHYWRkcmVzcwkBDXRyeUdldEludGVnZXICBQxwdXp6bGVNaW50ZXICPGdyb3VwXzdzM1ZDTUZQd2FWR0FxUG9Zd2ZiYWozcjdFWXExdXlldVdiMnNUUDFBWjNZX2F2YWlsYWJsZQAABAhzaGFyZVdGUwoAAiRsBQdXRlNsaXN0CgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhmb2xkRnVuYwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgoBCWZvbGRGdW5jQgIDYWNjA0JCQgkAZAIJAGQCBQNhY2MJAPAHAgkBEUBleHRyTmF0aXZlKDEwNjIpAQUHYWRkcmVzcwkA2QQBBQNCQkIDCQAAAgkBDHRyeUdldFN0cmluZwIFDHB1enpsZU1hcmtldAkArAICCQCsAgICBG5mdF8FA0JCQgIHX3NlbGxlcgUHYWRkcmVzcwABAAAECHNoYXJlQkJCCgACJGwFB0JCQmxpc3QKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjFfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCWZvbGRGdW5jQgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMV8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjFfMgIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgMJAAACCQBkAgUIc2hhcmVXRlMFCHNoYXJlQkJCAAAEBGxpc3QJALwJAgUJYWRkcmVzc2VzAgEsBApub05GVGluZGV4CQEFdmFsdWUBCQDPCAIFBGxpc3QFB2FkZHJlc3MEDmxpc3RNaW51c05vTkZUCQDRCAIFBGxpc3QFCm5vTkZUaW5kZXgEDW1pbnVzTm9ORlRzdHIJAKwCAgkAuQkCBQ5saXN0TWludXNOb05GVAIBLAIBLAkAzAgCCQELU3RyaW5nRW50cnkCBRZrZXlBZGRyZXNzZXNSZWdpc3RlcmVkBQ1taW51c05vTkZUc3RyBQNuaWwEDWFtb3VudEJ1cm54dG4JAGsDCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEGtleUJ1cm54dG5BbW91bnQJAGQCBQhzaGFyZVdGUwkAaAIFCHNoYXJlQkJCAAoJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUQa2V5VG90YWxORlRwb3dlcgQPYW1vdW50V2hpcmxwb29sCQBrAwkBDXRyeUdldEludGVnZXICBQR0aGlzBRJrZXlXaGlybHBvb2xBbW91bnQJAGQCBQhzaGFyZVdGUwkAaAIFCHNoYXJlQkJCAAoJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUQa2V5VG90YWxORlRwb3dlcgQLYW1vdW50V2F2ZXMJAGsDCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFDmtleVdhdmVzQW1vdW50CQBkAgUIc2hhcmVXRlMJAGgCBQhzaGFyZUJCQgAKCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEGtleVRvdGFsTkZUcG93ZXIECmFtb3VudFJvbWUJAGsDCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFDWtleVJvbWVBbW91bnQJAGQCBQhzaGFyZVdGUwkAaAIFCHNoYXJlQkJCAAoJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUQa2V5VG90YWxORlRwb3dlcgQMYW1vdW50UHV6emxlCQBrAwkBDXRyeUdldEludGVnZXICBQR0aGlzBQ9rZXlQdXp6bGVBbW91bnQJAGQCBQhzaGFyZVdGUwkAaAIFCHNoYXJlQkJCAAoJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUQa2V5VG90YWxORlRwb3dlcgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzBQ1hbW91bnRCdXJueHRuBQdidXJueHRuCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRNrZXlUb3RhbEJ1cm54dG5QYWlkCQBkAgUNYW1vdW50QnVybnh0bgkBDXRyeUdldEludGVnZXICBQR0aGlzBRNrZXlUb3RhbEJ1cm54dG5QYWlkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB2FkZHJlc3MFD2Ftb3VudFdoaXJscG9vbAUJd2hpcmxwb29sCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRVrZXlUb3RhbFdoaXJscG9vbFBhaWQJAGQCBQ9hbW91bnRXaGlybHBvb2wJAQ10cnlHZXRJbnRlZ2VyAgUEdGhpcwUVa2V5VG90YWxXaGlybHBvb2xQYWlkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB2FkZHJlc3MFC2Ftb3VudFdhdmVzBQR1bml0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrZXlUb3RhbFdhdmVzUGFpZAkAZAIFC2Ftb3VudFdhdmVzCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEWtleVRvdGFsV2F2ZXNQYWlkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB2FkZHJlc3MFCmFtb3VudFJvbWUFBHJvbWUJAMwIAgkBDEludGVnZXJFbnRyeQIFEGtleVRvdGFsUm9tZVBhaWQJAGQCBQphbW91bnRSb21lCQENdHJ5R2V0SW50ZWdlcgIFBHRoaXMFEGtleVRvdGFsUm9tZVBhaWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUHYWRkcmVzcwUMYW1vdW50UHV6emxlBQZwdXp6bGUJAMwIAgkBDEludGVnZXJFbnRyeQIFEmtleVRvdGFsUHV6emxlUGFpZAkAZAIFDGFtb3VudFB1enpsZQkBDXRyeUdldEludGVnZXICBQR0aGlzBRJrZXlUb3RhbFB1enpsZVBhaWQFA25pbAFpAQtkZWxldGVFbnRyeQADCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyCQDMCAIJAQtEZWxldGVFbnRyeQEFFmtleUFkZHJlc3Nlc1JlZ2lzdGVyZWQFA25pbAFpAQhhZGRXRlNpZAIJV0ZTbnVtYmVyCldGU2Fzc2V0SWQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhxhY2Nlc3Mgb25seSBieSBwcm9qZWN0IG93bmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUJV0ZTbnVtYmVyAgAFCldGU2Fzc2V0SWQFA25pbAFpARJjaGFuZ2VJbnRlZ2VyRW50cnkCCWtleVN0cmluZwdpbnRlZ2VyAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIcYWNjZXNzIG9ubHkgYnkgcHJvamVjdCBvd25lcgkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa2V5U3RyaW5nBQdpbnRlZ2VyBQNuaWwAvk4o6w==", "height": 4034431, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 12v38x2xFcnhqN5GrHNUAhUF1xqVtTcUKFv8Ck9hWsUx Next: 4e1dLfYfLEpgLEcJDgjxtxumU771dFRH4aVBAjfRpoiU Diff:
OldNewDifferences
2626 let puzzleStaking = Address(base58'3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS')
2727
2828 let bbbPoolId = base58'3P9VPwVfNj3dDevQZt1Z951A4K57cmQmCgk'
29+
30+let puzzleMarket = Address(base58'3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A')
31+
32+let puzzleMinter = Address(base58'3PFQjjDMiZKQZdu5JqTHD7HwgSXyp9Rw9By')
2933
3034 let burnxtn = base58'3SjxA2YLdfF9fTRbzLm9xFn27C6MW34W1YsdJ6Axefns'
3135
8185
8286 let BBBlist = ["9pCxoGtD18GeH9gCemzqrjHMMjfyBQDfsrRAuxSRagMc", "7DgFgCkBjVDc5P9ZgwsVL9SiTi7kXJuS4aRVgb7ZHW3k", "76bTvE8ttHvsuN1FuH4Kc8QUW4kL4m8c1cjfsXy2GfbV", "4Zrf4H5tiFcQL8eQmnA2wJ1XWPEBH6h1G2MefZDYmcCB", "2DtC4nFnxz5UM6mbjPwMVZpQWZFUqxs52oZrBeNRk9Ao", "DjZGMAFfoQWkMW3S5FTsQN3joncZt6BsmhnEK3ggLxmN", "BneaZXD6ovDJcV5rgfr8hsHZaMQsJQ8DH6a5gTnGCpBc", "4EKfgzFkd5UGKrjnaJV3w7argW1YmF4hq54xWQFzAXb9", "8hGDkWKiu2igDpWT3Hpr4mchDD6xwJ9hGm2h2jnUvTqz", "E3ZnSejpXL1Xr6VG4QoLh8xod9NMgpPe473r9Qk2HibL"]
8387
84-let SURFboardList = ["DzLSgEaBB4UNbPCZekPSzbQ85KokMB7d1KRRmzUPu5hs", "WmWzsbb3PNvzJ4w4Fb73KcoNGLXumgYZagV22zEiX1w", "7RrxbgayUksPHrA799pKuCr61reT8nENdqCkgVHPgaN2", "FmDLfzspbVJeKhKduLDUba2HoVdRrKtswDKMU3e9qjtP", "2TfJ4xbEQd2x4htMEamZRhnLpT7tUwYVjY36JR8NM2ah", "2rVxNMXuvug74TorLQZGC2ERHjAbJnVUgNXQ1kJmtnAe", "9yb9yGJm6gzVozBHuQVHBdAnzfct3N9bRpdjjNUnrzcC", "s1SfGVshf2jKCA9KvvKKvUuK8utp3Ne3ee8Lp6KKLRw", "3E3yb7TvDK762dn11dmRLwapghaefQUEyunVdXSNp4tB", "FH75TvApyVtfd9X5a1Ar19Ns9DNJvzpzLFE5pjh1wi4h", "EgqkbDyWRPgVNVqtEEtRSzWcGD33orVoE2bzYdAdieQS", "DsKyJpJCZcFv9jSnQbQVG4Jx3WSP1KtfHhAKTkSKrVBj", "AesPr5UFDgY5jZXYUZ8JkbYtJovVdDHby15SCksEhmJK", "AVsfdqw2m5aUNxa1HY9emLmCLBfVAGTxVu4ef3xEDKC8", "5jdvSSY2K7h8UiUCXUgK9T7zfMryqw2itKP8BysdXDDk", "A4voKZes8MVDAXyQjKkb6bdEcqMbvB4ptzbpqYqveG5n", "34oZKaWHpSJrZvGLdYu5WG8WWXg7rwF2HHx8K15GfUCQ", "77McCHkmNrRM4DjqkSM9B8YjuJcKtn67jQge1pzZrQ8T", "7NEFBnvGGMfYdBnhMLNpuVgS22LpcgXCZgHfm8DHmmiA", "GoF9yokxHgPNoxoWgjjdmGeWhcLYArSsxqffRtfYGtfs"]
88+let SURFboardList = ["DzLSgEaBB4UNbPCZekPSzbQ85KokMB7d1KRRmzUPu5hs", "WmWzsbb3PNvzJ4w4Fb73KcoNGLXumgYZagV22zEiX1w", "7RrxbgayUksPHrA799pKuCr61reT8nENdqCkgVHPgaN2", "FmDLfzspbVJeKhKduLDUba2HoVdRrKtswDKMU3e9qjtP", "HmQvVyQdEjafLrpKPSigdafvcYvLbNYGEgVCxLZRWt1y", "2rVxNMXuvug74TorLQZGC2ERHjAbJnVUgNXQ1kJmtnAe", "9yb9yGJm6gzVozBHuQVHBdAnzfct3N9bRpdjjNUnrzcC", "s1SfGVshf2jKCA9KvvKKvUuK8utp3Ne3ee8Lp6KKLRw", "3E3yb7TvDK762dn11dmRLwapghaefQUEyunVdXSNp4tB", "FH75TvApyVtfd9X5a1Ar19Ns9DNJvzpzLFE5pjh1wi4h", "EgqkbDyWRPgVNVqtEEtRSzWcGD33orVoE2bzYdAdieQS", "DsKyJpJCZcFv9jSnQbQVG4Jx3WSP1KtfHhAKTkSKrVBj", "AesPr5UFDgY5jZXYUZ8JkbYtJovVdDHby15SCksEhmJK", "AVsfdqw2m5aUNxa1HY9emLmCLBfVAGTxVu4ef3xEDKC8", "5jdvSSY2K7h8UiUCXUgK9T7zfMryqw2itKP8BysdXDDk", "A4voKZes8MVDAXyQjKkb6bdEcqMbvB4ptzbpqYqveG5n", "34oZKaWHpSJrZvGLdYu5WG8WWXg7rwF2HHx8K15GfUCQ", "77McCHkmNrRM4DjqkSM9B8YjuJcKtn67jQge1pzZrQ8T", "7NEFBnvGGMfYdBnhMLNpuVgS22LpcgXCZgHfm8DHmmiA", "GoF9yokxHgPNoxoWgjjdmGeWhcLYArSsxqffRtfYGtfs"]
8589
8690 @Callable(i)
8791 func invokeClI1 () = if ((i.caller != this))
170174
171175 @Callable(i)
172176 func countNFTpower (address) = {
173- func foldFunc (acc,WFS) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(WFS)))
177+ func foldFunc (acc,WFS) = ((acc + assetBalance(addressFromStringValue(address), fromBase58String(WFS))) + (if ((tryGetString(puzzleMarket, (("nft_" + WFS) + "_seller")) == address))
178+ then 1
179+ else (0 + (if ((tryGetString(puzzleMarket, "nft_7s3VCMFPwaVGAqPoYwfbaj3r7EYq1uyeuWb2sTP1AZ3Y_seller") == address))
180+ then tryGetInteger(puzzleMinter, "group_7s3VCMFPwaVGAqPoYwfbaj3r7EYq1uyeuWb2sTP1AZ3Y_available")
181+ else 0))))
174182
175183 let shareWFS = {
176184 let $l = WFSlist
186194
187195 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
188196 }
189- func foldFuncB (acc,BBB) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(BBB)))
197+ func foldFuncB (acc,BBB) = ((acc + assetBalance(addressFromStringValue(address), fromBase58String(BBB))) + (if ((tryGetString(puzzleMarket, (("nft_" + BBB) + "_seller")) == address))
198+ then 1
199+ else 0))
190200
191201 let shareBBB = {
192202 let $l = BBBlist
268278 func distributeRewards (address) = if ((i.caller != this))
269279 then throw("access only by project owner")
270280 else {
271- func foldFunc (acc,WFS) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(WFS)))
281+ func foldFunc (acc,WFS) = ((acc + assetBalance(addressFromStringValue(address), fromBase58String(WFS))) + (if ((tryGetString(puzzleMarket, (("nft_" + WFS) + "_seller")) == address))
282+ then 1
283+ else (0 + (if ((tryGetString(puzzleMarket, "nft_7s3VCMFPwaVGAqPoYwfbaj3r7EYq1uyeuWb2sTP1AZ3Y_seller") == address))
284+ then tryGetInteger(puzzleMinter, "group_7s3VCMFPwaVGAqPoYwfbaj3r7EYq1uyeuWb2sTP1AZ3Y_available")
285+ else 0))))
272286
273287 let shareWFS = {
274288 let $l = WFSlist
284298
285299 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
286300 }
287- func foldFuncB (acc,BBB) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(BBB)))
301+ func foldFuncB (acc,BBB) = ((acc + assetBalance(addressFromStringValue(address), fromBase58String(BBB))) + (if ((tryGetString(puzzleMarket, (("nft_" + BBB) + "_seller")) == address))
302+ then 1
303+ else 0))
288304
289305 let shareBBB = {
290306 let $l = BBBlist
300316
301317 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
302318 }
303- func foldFuncC (acc,SURFboard) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(SURFboard)))
319+ func foldFuncC (acc,SURFboard) = ((acc + assetBalance(addressFromStringValue(address), fromBase58String(SURFboard))) + (if ((tryGetString(puzzleMarket, (("nft_" + SURFboard) + "_seller")) == address))
320+ then 1
321+ else 0))
304322
305323 let amountSURFboard = {
306324 let $l = SURFboardList
425443 func distributeRewardsByAnybody (address) = if ((i.caller != this))
426444 then throw("access only by project owner")
427445 else {
428- func foldFunc (acc,WFS) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(WFS)))
446+ func foldFunc (acc,WFS) = ((acc + assetBalance(addressFromStringValue(address), fromBase58String(WFS))) + (if ((tryGetString(puzzleMarket, (("nft_" + WFS) + "_seller")) == address))
447+ then 1
448+ else (0 + (if ((tryGetString(puzzleMarket, "nft_7s3VCMFPwaVGAqPoYwfbaj3r7EYq1uyeuWb2sTP1AZ3Y_seller") == address))
449+ then tryGetInteger(puzzleMinter, "group_7s3VCMFPwaVGAqPoYwfbaj3r7EYq1uyeuWb2sTP1AZ3Y_available")
450+ else 0))))
429451
430452 let shareWFS = {
431453 let $l = WFSlist
441463
442464 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
443465 }
444- func foldFuncB (acc,BBB) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(BBB)))
466+ func foldFuncB (acc,BBB) = ((acc + assetBalance(addressFromStringValue(address), fromBase58String(BBB))) + (if ((tryGetString(puzzleMarket, (("nft_" + BBB) + "_seller")) == address))
467+ then 1
468+ else 0))
445469
446470 let shareBBB = {
447471 let $l = BBBlist
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func tryGetInteger (address,key) = match getInteger(address, key) {
55 case b: Int =>
66 b
77 case _ =>
88 0
99 }
1010
1111
1212 func tryGetString (address,key) = match getString(address, key) {
1313 case b: String =>
1414 b
1515 case _ =>
1616 ""
1717 }
1818
1919
2020 let d8 = 100000000
2121
2222 let d6 = 1000000
2323
2424 let poolBBB = base58'3P9VPwVfNj3dDevQZt1Z951A4K57cmQmCgk'
2525
2626 let puzzleStaking = Address(base58'3PFTbywqxtFfukX3HyT881g4iW5K4QL3FAS')
2727
2828 let bbbPoolId = base58'3P9VPwVfNj3dDevQZt1Z951A4K57cmQmCgk'
29+
30+let puzzleMarket = Address(base58'3P6fAxtw12pjFhayEfpcUWxgu2BHVCeP78A')
31+
32+let puzzleMinter = Address(base58'3PFQjjDMiZKQZdu5JqTHD7HwgSXyp9Rw9By')
2933
3034 let burnxtn = base58'3SjxA2YLdfF9fTRbzLm9xFn27C6MW34W1YsdJ6Axefns'
3135
3236 let whirlpool = base58'73tY3E6Gd5AWYmsuq8m8Kek7KnJNAYyS3GoveTbc6jCi'
3337
3438 let puzzle = base58'HEB8Qaw9xrWpWs8tHsiATYGBWDBtP2S7kcPALrMu43AS'
3539
3640 let rome = base58'AP4Cb5xLYGH6ZigHreCZHoXpQTWDkPsG2BHqfDUx6taJ'
3741
3842 let surf = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL'
3943
4044 let puzzleStaked = tryGetInteger(puzzleStaking, (toString(this) + "_staked"))
4145
4246 let puzzleInPool = tryGetInteger(Address(bbbPoolId), (("global_" + toBase58String(puzzle)) + "_balance"))
4347
4448 let projectStake = tryGetInteger(Address(bbbPoolId), (toString(this) + "_indexStaked"))
4549
4650 let totalStake = tryGetInteger(Address(bbbPoolId), "global_poolToken_amount")
4751
4852 let assetWeight = tryGetInteger(Address(bbbPoolId), (("static_" + toBase58String(puzzle)) + "_weight"))
4953
5054 let BBBlpInPuzzle = fraction(((puzzleInPool / assetWeight) * 10000), projectStake, totalStake)
5155
5256 let keyAddressesRegistered = "Addresses registered"
5357
5458 let addresses = dropRight(tryGetString(this, keyAddressesRegistered), 1)
5559
5660 let keyBurnxtnAmount = "BURN-XTN total rewards"
5761
5862 let keyRomeAmount = "ROME total rewards"
5963
6064 let keyPuzzleAmount = "PUZZLE total rewards"
6165
6266 let keyWavesAmount = "WAVES total rewards"
6367
6468 let keyWhirlpoolAmount = "WHIRLPOOL total rewards"
6569
6670 let keyTotalNFTpower = "Total NFT power"
6771
6872 let keyTotalPuzzleValue = "Total puzzle value"
6973
7074 let keyTotalBurnxtnPaid = "Total BURN-XTN paid"
7175
7276 let keyTotalWhirlpoolPaid = "Total WHIRLPOOL paid"
7377
7478 let keyTotalRomePaid = "Total ROME paid"
7579
7680 let keyTotalWavesPaid = "Total WAVES paid"
7781
7882 let keyTotalPuzzlePaid = "Total PUZZLE paid"
7983
8084 let WFSlist = ["Gnpy5nVajPP3XQQVxrHboMAsXtjnyWAxybMDdKrbr8sD", "BT9Q4mQdQQmei2r5YNMBMasZBQj7myNaiz6QHba5cPXS", "BMvkyFtPVmFatpFR9QVFKR5MYTcZVTY2VUwFZ25vrAAc", "77Rqu8TLjBdMtDuXd9o5fUSGo64zQe5FCcao5L8Ht9j8", tryGetString(this, "5"), tryGetString(this, "6"), tryGetString(this, "7"), tryGetString(this, "8"), tryGetString(this, "9"), tryGetString(this, "10")]
8185
8286 let BBBlist = ["9pCxoGtD18GeH9gCemzqrjHMMjfyBQDfsrRAuxSRagMc", "7DgFgCkBjVDc5P9ZgwsVL9SiTi7kXJuS4aRVgb7ZHW3k", "76bTvE8ttHvsuN1FuH4Kc8QUW4kL4m8c1cjfsXy2GfbV", "4Zrf4H5tiFcQL8eQmnA2wJ1XWPEBH6h1G2MefZDYmcCB", "2DtC4nFnxz5UM6mbjPwMVZpQWZFUqxs52oZrBeNRk9Ao", "DjZGMAFfoQWkMW3S5FTsQN3joncZt6BsmhnEK3ggLxmN", "BneaZXD6ovDJcV5rgfr8hsHZaMQsJQ8DH6a5gTnGCpBc", "4EKfgzFkd5UGKrjnaJV3w7argW1YmF4hq54xWQFzAXb9", "8hGDkWKiu2igDpWT3Hpr4mchDD6xwJ9hGm2h2jnUvTqz", "E3ZnSejpXL1Xr6VG4QoLh8xod9NMgpPe473r9Qk2HibL"]
8387
84-let SURFboardList = ["DzLSgEaBB4UNbPCZekPSzbQ85KokMB7d1KRRmzUPu5hs", "WmWzsbb3PNvzJ4w4Fb73KcoNGLXumgYZagV22zEiX1w", "7RrxbgayUksPHrA799pKuCr61reT8nENdqCkgVHPgaN2", "FmDLfzspbVJeKhKduLDUba2HoVdRrKtswDKMU3e9qjtP", "2TfJ4xbEQd2x4htMEamZRhnLpT7tUwYVjY36JR8NM2ah", "2rVxNMXuvug74TorLQZGC2ERHjAbJnVUgNXQ1kJmtnAe", "9yb9yGJm6gzVozBHuQVHBdAnzfct3N9bRpdjjNUnrzcC", "s1SfGVshf2jKCA9KvvKKvUuK8utp3Ne3ee8Lp6KKLRw", "3E3yb7TvDK762dn11dmRLwapghaefQUEyunVdXSNp4tB", "FH75TvApyVtfd9X5a1Ar19Ns9DNJvzpzLFE5pjh1wi4h", "EgqkbDyWRPgVNVqtEEtRSzWcGD33orVoE2bzYdAdieQS", "DsKyJpJCZcFv9jSnQbQVG4Jx3WSP1KtfHhAKTkSKrVBj", "AesPr5UFDgY5jZXYUZ8JkbYtJovVdDHby15SCksEhmJK", "AVsfdqw2m5aUNxa1HY9emLmCLBfVAGTxVu4ef3xEDKC8", "5jdvSSY2K7h8UiUCXUgK9T7zfMryqw2itKP8BysdXDDk", "A4voKZes8MVDAXyQjKkb6bdEcqMbvB4ptzbpqYqveG5n", "34oZKaWHpSJrZvGLdYu5WG8WWXg7rwF2HHx8K15GfUCQ", "77McCHkmNrRM4DjqkSM9B8YjuJcKtn67jQge1pzZrQ8T", "7NEFBnvGGMfYdBnhMLNpuVgS22LpcgXCZgHfm8DHmmiA", "GoF9yokxHgPNoxoWgjjdmGeWhcLYArSsxqffRtfYGtfs"]
88+let SURFboardList = ["DzLSgEaBB4UNbPCZekPSzbQ85KokMB7d1KRRmzUPu5hs", "WmWzsbb3PNvzJ4w4Fb73KcoNGLXumgYZagV22zEiX1w", "7RrxbgayUksPHrA799pKuCr61reT8nENdqCkgVHPgaN2", "FmDLfzspbVJeKhKduLDUba2HoVdRrKtswDKMU3e9qjtP", "HmQvVyQdEjafLrpKPSigdafvcYvLbNYGEgVCxLZRWt1y", "2rVxNMXuvug74TorLQZGC2ERHjAbJnVUgNXQ1kJmtnAe", "9yb9yGJm6gzVozBHuQVHBdAnzfct3N9bRpdjjNUnrzcC", "s1SfGVshf2jKCA9KvvKKvUuK8utp3Ne3ee8Lp6KKLRw", "3E3yb7TvDK762dn11dmRLwapghaefQUEyunVdXSNp4tB", "FH75TvApyVtfd9X5a1Ar19Ns9DNJvzpzLFE5pjh1wi4h", "EgqkbDyWRPgVNVqtEEtRSzWcGD33orVoE2bzYdAdieQS", "DsKyJpJCZcFv9jSnQbQVG4Jx3WSP1KtfHhAKTkSKrVBj", "AesPr5UFDgY5jZXYUZ8JkbYtJovVdDHby15SCksEhmJK", "AVsfdqw2m5aUNxa1HY9emLmCLBfVAGTxVu4ef3xEDKC8", "5jdvSSY2K7h8UiUCXUgK9T7zfMryqw2itKP8BysdXDDk", "A4voKZes8MVDAXyQjKkb6bdEcqMbvB4ptzbpqYqveG5n", "34oZKaWHpSJrZvGLdYu5WG8WWXg7rwF2HHx8K15GfUCQ", "77McCHkmNrRM4DjqkSM9B8YjuJcKtn67jQge1pzZrQ8T", "7NEFBnvGGMfYdBnhMLNpuVgS22LpcgXCZgHfm8DHmmiA", "GoF9yokxHgPNoxoWgjjdmGeWhcLYArSsxqffRtfYGtfs"]
8589
8690 @Callable(i)
8791 func invokeClI1 () = if ((i.caller != this))
8892 then throw("access only by project owner")
8993 else {
9094 let cl = invoke(this, "claimInvestPuzzle", nil, nil)
9195 if ((cl == cl))
9296 then {
9397 let i1 = invoke(this, "invoker1", nil, nil)
9498 if ((i1 == i1))
9599 then nil
96100 else throw("Strict value is not equal to itself.")
97101 }
98102 else throw("Strict value is not equal to itself.")
99103 }
100104
101105
102106
103107 @Callable(i)
104108 func claimInvestPuzzle () = if ((i.caller != this))
105109 then throw("access only by project owner")
106110 else {
107111 let romeBalanceBefore = assetBalance(this, rome)
108112 if ((romeBalanceBefore == romeBalanceBefore))
109113 then {
110114 let claimPuzzleStaking = invoke(puzzleStaking, "claimReward", nil, nil)
111115 if ((claimPuzzleStaking == claimPuzzleStaking))
112116 then {
113117 let poolOneTokenInv = invoke(Address(base58'3PR1Qvi9mHT35SwWEkLSqqE2L8thiPLdVWU'), "generateIndexWithOneTokenAndStake", [toBase58String(poolBBB)], [AttachedPayment(puzzle, assetBalance(this, puzzle))])
114118 if ((poolOneTokenInv == poolOneTokenInv))
115119 then {
116120 let romeBalanceAfter = assetBalance(this, rome)
117121 [IntegerEntry("Activated blockheight", height), IntegerEntry(keyBurnxtnAmount, assetBalance(this, burnxtn)), IntegerEntry(keyRomeAmount, (romeBalanceAfter - romeBalanceBefore)), IntegerEntry(keyWavesAmount, if (((wavesBalance(this).available - d8) > 0))
118122 then (wavesBalance(this).available - d8)
119123 else 0), IntegerEntry(keyWhirlpoolAmount, assetBalance(this, whirlpool))]
120124 }
121125 else throw("Strict value is not equal to itself.")
122126 }
123127 else throw("Strict value is not equal to itself.")
124128 }
125129 else throw("Strict value is not equal to itself.")
126130 }
127131
128132
129133
130134 @Callable(i)
131135 func invoker1 () = {
132136 let reset = invoke(this, "resetCount", nil, nil)
133137 if ((reset == reset))
134138 then {
135139 let list = split_4C(addresses, ",")
136140 func r (accum,address) = invoke(this, "countNFTpower", [address], nil)
137141
138142 let invoker = {
139143 let $l = list
140144 let $s = size($l)
141145 let $acc0 = nil
142146 func $f0_1 ($a,$i) = if (($i >= $s))
143147 then $a
144148 else r($a, $l[$i])
145149
146150 func $f0_2 ($a,$i) = if (($i >= $s))
147151 then $a
148152 else throw("List size exceeds 30")
149153
150154 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
151155 }
152156 if ((invoker == invoker))
153157 then {
154158 let p = invoke(this, "data", nil, nil)
155159 if ((p == p))
156160 then [IntegerEntry("WFS puzzle value", fraction(fraction(tryGetInteger(this, keyTotalPuzzleValue), 1, tryGetInteger(this, keyTotalNFTpower)), 10, 9)), IntegerEntry("BBB puzzle value", fraction(fraction(tryGetInteger(this, keyTotalPuzzleValue), 10, tryGetInteger(this, keyTotalNFTpower)), 10, 9))]
157161 else throw("Strict value is not equal to itself.")
158162 }
159163 else throw("Strict value is not equal to itself.")
160164 }
161165 else throw("Strict value is not equal to itself.")
162166 }
163167
164168
165169
166170 @Callable(i)
167171 func resetCount () = [IntegerEntry(keyTotalNFTpower, 0)]
168172
169173
170174
171175 @Callable(i)
172176 func countNFTpower (address) = {
173- func foldFunc (acc,WFS) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(WFS)))
177+ func foldFunc (acc,WFS) = ((acc + assetBalance(addressFromStringValue(address), fromBase58String(WFS))) + (if ((tryGetString(puzzleMarket, (("nft_" + WFS) + "_seller")) == address))
178+ then 1
179+ else (0 + (if ((tryGetString(puzzleMarket, "nft_7s3VCMFPwaVGAqPoYwfbaj3r7EYq1uyeuWb2sTP1AZ3Y_seller") == address))
180+ then tryGetInteger(puzzleMinter, "group_7s3VCMFPwaVGAqPoYwfbaj3r7EYq1uyeuWb2sTP1AZ3Y_available")
181+ else 0))))
174182
175183 let shareWFS = {
176184 let $l = WFSlist
177185 let $s = size($l)
178186 let $acc0 = 0
179187 func $f0_1 ($a,$i) = if (($i >= $s))
180188 then $a
181189 else foldFunc($a, $l[$i])
182190
183191 func $f0_2 ($a,$i) = if (($i >= $s))
184192 then $a
185193 else throw("List size exceeds 10")
186194
187195 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
188196 }
189- func foldFuncB (acc,BBB) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(BBB)))
197+ func foldFuncB (acc,BBB) = ((acc + assetBalance(addressFromStringValue(address), fromBase58String(BBB))) + (if ((tryGetString(puzzleMarket, (("nft_" + BBB) + "_seller")) == address))
198+ then 1
199+ else 0))
190200
191201 let shareBBB = {
192202 let $l = BBBlist
193203 let $s = size($l)
194204 let $acc0 = 0
195205 func $f1_1 ($a,$i) = if (($i >= $s))
196206 then $a
197207 else foldFuncB($a, $l[$i])
198208
199209 func $f1_2 ($a,$i) = if (($i >= $s))
200210 then $a
201211 else throw("List size exceeds 10")
202212
203213 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
204214 }
205215 if (((shareWFS + shareBBB) == 0))
206216 then {
207217 let list = split_4C(addresses, ",")
208218 let noNFTindex = value(indexOf(list, address))
209219 let listMinusNoNFT = removeByIndex(list, noNFTindex)
210220 let minusNoNFTstr = (makeString(listMinusNoNFT, ",") + ",")
211221 [StringEntry(keyAddressesRegistered, minusNoNFTstr)]
212222 }
213223 else [IntegerEntry((address + "_WFS"), shareWFS), IntegerEntry((address + "_BBB"), (shareBBB * 10)), IntegerEntry(keyTotalNFTpower, (tryGetInteger(this, keyTotalNFTpower) + (shareWFS + (shareBBB * 10))))]
214224 }
215225
216226
217227
218228 @Callable(i)
219229 func data () = [IntegerEntry("puzzle balance", assetBalance(this, puzzle)), IntegerEntry("puzzle staked", puzzleStaked), IntegerEntry("puzzle BBB LP", BBBlpInPuzzle), IntegerEntry(keyTotalPuzzleValue, ((assetBalance(this, puzzle) + puzzleStaked) + BBBlpInPuzzle))]
220230
221231
222232
223233 @Callable(i)
224234 func invoker2 () = if ((i.caller != this))
225235 then throw("access only by project owner")
226236 else {
227237 let t = invoke(this, "trackTotalPaid", nil, nil)
228238 if ((t == t))
229239 then {
230240 let list = split_4C(addresses, ",")
231241 func r (accum,address) = invoke(this, "distributeRewards", [address], nil)
232242
233243 let invoker = {
234244 let $l = list
235245 let $s = size($l)
236246 let $acc0 = nil
237247 func $f0_1 ($a,$i) = if (($i >= $s))
238248 then $a
239249 else r($a, $l[$i])
240250
241251 func $f0_2 ($a,$i) = if (($i >= $s))
242252 then $a
243253 else throw("List size exceeds 20")
244254
245255 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
246256 }
247257 if ((invoker == invoker))
248258 then nil
249259 else throw("Strict value is not equal to itself.")
250260 }
251261 else throw("Strict value is not equal to itself.")
252262 }
253263
254264
255265
256266 @Callable(i)
257267 func trackTotalPaid () = {
258268 let amountBurnxtn = tryGetInteger(this, keyBurnxtnAmount)
259269 let amountWhirlpool = tryGetInteger(this, keyWhirlpoolAmount)
260270 let amountWaves = tryGetInteger(this, keyWavesAmount)
261271 let amountRome = tryGetInteger(this, keyRomeAmount)
262272 [IntegerEntry(keyTotalBurnxtnPaid, (amountBurnxtn + tryGetInteger(this, keyTotalBurnxtnPaid))), IntegerEntry(keyTotalWhirlpoolPaid, (amountWhirlpool + tryGetInteger(this, keyTotalWhirlpoolPaid))), IntegerEntry(keyTotalWavesPaid, (amountWaves + tryGetInteger(this, keyTotalWavesPaid))), IntegerEntry(keyTotalRomePaid, (amountRome + tryGetInteger(this, keyTotalRomePaid)))]
263273 }
264274
265275
266276
267277 @Callable(i)
268278 func distributeRewards (address) = if ((i.caller != this))
269279 then throw("access only by project owner")
270280 else {
271- func foldFunc (acc,WFS) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(WFS)))
281+ func foldFunc (acc,WFS) = ((acc + assetBalance(addressFromStringValue(address), fromBase58String(WFS))) + (if ((tryGetString(puzzleMarket, (("nft_" + WFS) + "_seller")) == address))
282+ then 1
283+ else (0 + (if ((tryGetString(puzzleMarket, "nft_7s3VCMFPwaVGAqPoYwfbaj3r7EYq1uyeuWb2sTP1AZ3Y_seller") == address))
284+ then tryGetInteger(puzzleMinter, "group_7s3VCMFPwaVGAqPoYwfbaj3r7EYq1uyeuWb2sTP1AZ3Y_available")
285+ else 0))))
272286
273287 let shareWFS = {
274288 let $l = WFSlist
275289 let $s = size($l)
276290 let $acc0 = 0
277291 func $f0_1 ($a,$i) = if (($i >= $s))
278292 then $a
279293 else foldFunc($a, $l[$i])
280294
281295 func $f0_2 ($a,$i) = if (($i >= $s))
282296 then $a
283297 else throw("List size exceeds 10")
284298
285299 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
286300 }
287- func foldFuncB (acc,BBB) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(BBB)))
301+ func foldFuncB (acc,BBB) = ((acc + assetBalance(addressFromStringValue(address), fromBase58String(BBB))) + (if ((tryGetString(puzzleMarket, (("nft_" + BBB) + "_seller")) == address))
302+ then 1
303+ else 0))
288304
289305 let shareBBB = {
290306 let $l = BBBlist
291307 let $s = size($l)
292308 let $acc0 = 0
293309 func $f1_1 ($a,$i) = if (($i >= $s))
294310 then $a
295311 else foldFuncB($a, $l[$i])
296312
297313 func $f1_2 ($a,$i) = if (($i >= $s))
298314 then $a
299315 else throw("List size exceeds 10")
300316
301317 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
302318 }
303- func foldFuncC (acc,SURFboard) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(SURFboard)))
319+ func foldFuncC (acc,SURFboard) = ((acc + assetBalance(addressFromStringValue(address), fromBase58String(SURFboard))) + (if ((tryGetString(puzzleMarket, (("nft_" + SURFboard) + "_seller")) == address))
320+ then 1
321+ else 0))
304322
305323 let amountSURFboard = {
306324 let $l = SURFboardList
307325 let $s = size($l)
308326 let $acc0 = 0
309327 func $f2_1 ($a,$i) = if (($i >= $s))
310328 then $a
311329 else foldFuncC($a, $l[$i])
312330
313331 func $f2_2 ($a,$i) = if (($i >= $s))
314332 then $a
315333 else throw("List size exceeds 20")
316334
317335 $f2_2($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($f2_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
318336 }
319337 let bs = invoke(this, "burnSurf", nil, nil)
320338 if ((bs == bs))
321339 then {
322340 let amountBurnxtn = fraction(tryGetInteger(this, keyBurnxtnAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
323341 let amountWhirlpool = fraction(tryGetInteger(this, keyWhirlpoolAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
324342 let amountWaves = fraction(tryGetInteger(this, keyWavesAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
325343 let amountRome = fraction(tryGetInteger(this, keyRomeAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
326344 [ScriptTransfer(addressFromStringValue(address), amountBurnxtn, burnxtn), ScriptTransfer(addressFromStringValue(address), amountWhirlpool, whirlpool), ScriptTransfer(addressFromStringValue(address), amountWaves, unit), ScriptTransfer(addressFromStringValue(address), amountRome, rome), ScriptTransfer(addressFromStringValue(address), (amountSURFboard * d6), surf)]
327345 }
328346 else throw("Strict value is not equal to itself.")
329347 }
330348
331349
332350
333351 @Callable(i)
334352 func burnSurf () = [Burn(surf, d6), IntegerEntry("SURF total burned", (tryGetInteger(this, "SURF total burned") + d6))]
335353
336354
337355
338356 @Callable(i)
339357 func register () = if (contains(tryGetString(this, keyAddressesRegistered), toString(i.caller)))
340358 then throw("already registered")
341359 else if ((size(split_4C(addresses, ",")) == 30))
342360 then throw("max reached")
343361 else [StringEntry(keyAddressesRegistered, ((tryGetString(this, keyAddressesRegistered) + toString(i.caller)) + ","))]
344362
345363
346364
347365 @Callable(i)
348366 func registerManually (address) = if (contains(tryGetString(this, keyAddressesRegistered), address))
349367 then throw("already registered")
350368 else if ((size(split_4C(addresses, ",")) == 40))
351369 then throw("max reached")
352370 else if ((i.caller != this))
353371 then throw("access only by project owner")
354372 else [StringEntry(keyAddressesRegistered, ((tryGetString(this, keyAddressesRegistered) + address) + ","))]
355373
356374
357375
358376 @Callable(i)
359377 func claimByAnybody () = if (((getIntegerValue(this, "Activated blockheight") + (30 * 1440)) > height))
360378 then throw(("Wait till blockheight:" + toString((getIntegerValue(this, "Activated blockheight") + (30 * 1440)))))
361379 else {
362380 let puzzleBalanceBefore = assetBalance(this, puzzle)
363381 if ((puzzleBalanceBefore == puzzleBalanceBefore))
364382 then {
365383 let romeBalanceBefore = assetBalance(this, rome)
366384 if ((romeBalanceBefore == romeBalanceBefore))
367385 then {
368386 let claimPuzzleStaking = invoke(puzzleStaking, "claimReward", nil, nil)
369387 if ((claimPuzzleStaking == claimPuzzleStaking))
370388 then {
371389 let claimInv = invoke(Address(poolBBB), "claimIndexRewards", nil, nil)
372390 if ((claimInv == claimInv))
373391 then {
374392 let puzzleBalanceAfter = assetBalance(this, puzzle)
375393 let romeBalanceAfter = assetBalance(this, rome)
376394 [IntegerEntry(keyBurnxtnAmount, assetBalance(this, burnxtn)), IntegerEntry(keyRomeAmount, (romeBalanceAfter - romeBalanceBefore)), IntegerEntry(keyPuzzleAmount, (puzzleBalanceAfter - puzzleBalanceBefore)), IntegerEntry(keyWavesAmount, if (((wavesBalance(this).available - d8) > 0))
377395 then (wavesBalance(this).available - d8)
378396 else 0), IntegerEntry(keyWhirlpoolAmount, assetBalance(this, whirlpool))]
379397 }
380398 else throw("Strict value is not equal to itself.")
381399 }
382400 else throw("Strict value is not equal to itself.")
383401 }
384402 else throw("Strict value is not equal to itself.")
385403 }
386404 else throw("Strict value is not equal to itself.")
387405 }
388406
389407
390408
391409 @Callable(i)
392410 func invokerByAnybody () = if (((getIntegerValue(this, "Activated blockheight") + (30 * 1440)) > height))
393411 then throw(("Wait till blockheight:" + toString((getIntegerValue(this, "Activated blockheight") + (30 * 1440)))))
394412 else {
395413 let reset = invoke(this, "distributeRewardsByAnybody", nil, nil)
396414 if ((reset == reset))
397415 then {
398416 let list = split_4C(addresses, ",")
399417 func r (accum,address) = invoke(this, "countNFTpower", [address], nil)
400418
401419 let invoker = {
402420 let $l = list
403421 let $s = size($l)
404422 let $acc0 = nil
405423 func $f0_1 ($a,$i) = if (($i >= $s))
406424 then $a
407425 else r($a, $l[$i])
408426
409427 func $f0_2 ($a,$i) = if (($i >= $s))
410428 then $a
411429 else throw("List size exceeds 40")
412430
413431 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40)
414432 }
415433 if ((invoker == invoker))
416434 then nil
417435 else throw("Strict value is not equal to itself.")
418436 }
419437 else throw("Strict value is not equal to itself.")
420438 }
421439
422440
423441
424442 @Callable(i)
425443 func distributeRewardsByAnybody (address) = if ((i.caller != this))
426444 then throw("access only by project owner")
427445 else {
428- func foldFunc (acc,WFS) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(WFS)))
446+ func foldFunc (acc,WFS) = ((acc + assetBalance(addressFromStringValue(address), fromBase58String(WFS))) + (if ((tryGetString(puzzleMarket, (("nft_" + WFS) + "_seller")) == address))
447+ then 1
448+ else (0 + (if ((tryGetString(puzzleMarket, "nft_7s3VCMFPwaVGAqPoYwfbaj3r7EYq1uyeuWb2sTP1AZ3Y_seller") == address))
449+ then tryGetInteger(puzzleMinter, "group_7s3VCMFPwaVGAqPoYwfbaj3r7EYq1uyeuWb2sTP1AZ3Y_available")
450+ else 0))))
429451
430452 let shareWFS = {
431453 let $l = WFSlist
432454 let $s = size($l)
433455 let $acc0 = 0
434456 func $f0_1 ($a,$i) = if (($i >= $s))
435457 then $a
436458 else foldFunc($a, $l[$i])
437459
438460 func $f0_2 ($a,$i) = if (($i >= $s))
439461 then $a
440462 else throw("List size exceeds 10")
441463
442464 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
443465 }
444- func foldFuncB (acc,BBB) = (acc + assetBalance(addressFromStringValue(address), fromBase58String(BBB)))
466+ func foldFuncB (acc,BBB) = ((acc + assetBalance(addressFromStringValue(address), fromBase58String(BBB))) + (if ((tryGetString(puzzleMarket, (("nft_" + BBB) + "_seller")) == address))
467+ then 1
468+ else 0))
445469
446470 let shareBBB = {
447471 let $l = BBBlist
448472 let $s = size($l)
449473 let $acc0 = 0
450474 func $f1_1 ($a,$i) = if (($i >= $s))
451475 then $a
452476 else foldFuncB($a, $l[$i])
453477
454478 func $f1_2 ($a,$i) = if (($i >= $s))
455479 then $a
456480 else throw("List size exceeds 10")
457481
458482 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
459483 }
460484 if (((shareWFS + shareBBB) == 0))
461485 then {
462486 let list = split_4C(addresses, ",")
463487 let noNFTindex = value(indexOf(list, address))
464488 let listMinusNoNFT = removeByIndex(list, noNFTindex)
465489 let minusNoNFTstr = (makeString(listMinusNoNFT, ",") + ",")
466490 [StringEntry(keyAddressesRegistered, minusNoNFTstr)]
467491 }
468492 else {
469493 let amountBurnxtn = fraction(tryGetInteger(this, keyBurnxtnAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
470494 let amountWhirlpool = fraction(tryGetInteger(this, keyWhirlpoolAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
471495 let amountWaves = fraction(tryGetInteger(this, keyWavesAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
472496 let amountRome = fraction(tryGetInteger(this, keyRomeAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
473497 let amountPuzzle = fraction(tryGetInteger(this, keyPuzzleAmount), (shareWFS + (shareBBB * 10)), tryGetInteger(this, keyTotalNFTpower))
474498 [ScriptTransfer(addressFromStringValue(address), amountBurnxtn, burnxtn), IntegerEntry(keyTotalBurnxtnPaid, (amountBurnxtn + tryGetInteger(this, keyTotalBurnxtnPaid))), ScriptTransfer(addressFromStringValue(address), amountWhirlpool, whirlpool), IntegerEntry(keyTotalWhirlpoolPaid, (amountWhirlpool + tryGetInteger(this, keyTotalWhirlpoolPaid))), ScriptTransfer(addressFromStringValue(address), amountWaves, unit), IntegerEntry(keyTotalWavesPaid, (amountWaves + tryGetInteger(this, keyTotalWavesPaid))), ScriptTransfer(addressFromStringValue(address), amountRome, rome), IntegerEntry(keyTotalRomePaid, (amountRome + tryGetInteger(this, keyTotalRomePaid))), ScriptTransfer(addressFromStringValue(address), amountPuzzle, puzzle), IntegerEntry(keyTotalPuzzlePaid, (amountPuzzle + tryGetInteger(this, keyTotalPuzzlePaid)))]
475499 }
476500 }
477501
478502
479503
480504 @Callable(i)
481505 func deleteEntry () = if ((i.caller != this))
482506 then throw("access only by project owner")
483507 else [DeleteEntry(keyAddressesRegistered)]
484508
485509
486510
487511 @Callable(i)
488512 func addWFSid (WFSnumber,WFSassetId) = if ((i.caller != this))
489513 then throw("access only by project owner")
490514 else [StringEntry((WFSnumber + ""), WFSassetId)]
491515
492516
493517
494518 @Callable(i)
495519 func changeIntegerEntry (keyString,integer) = if ((i.caller != this))
496520 then throw("access only by project owner")
497521 else [IntegerEntry(keyString, integer)]
498522
499523

github/deemru/w8io/3ef1775 
79.98 ms