tx · 7nZUtz8fUYtdw1ZYKrNPoiWd1wtjeDWaZY7RrecDHqtX

3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT:  -0.02700000 Waves

2022.06.24 18:52 [2110705] smart account 3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT > SELF 0.00000000 Waves

{ "type": 13, "id": "7nZUtz8fUYtdw1ZYKrNPoiWd1wtjeDWaZY7RrecDHqtX", "fee": 2700000, "feeAssetId": null, "timestamp": 1656085907887, "version": 2, "chainId": 84, "sender": "3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT", "senderPublicKey": "3ijdmxaYrpDFsKVbQH2kvB7i6JzHj9bep9bGWiQPra2D", "proofs": [ "27NpoRE5KpdkEGNHu9AC7UjYn2gTLXKmX2vzjfarP7JMYcw8BW2ek6xtwYeYub5ovFL8VXKGisLmGPzYWHAV1eiq", "1iw9NzSaZNDrEXve8KxrAEEznoyvU7T3FzcjpXMhpcw46LCPDHCcCYfsdugw1SaVFPWSfPHqjquUkfTBnkCtANw" ], "script": "base64:BgIlCAISAwoBCBIDCgEIEgMKAQgSAwoBCBIECgIIARIDCgEIEgASAFsADGFkbWluUHViS2V5MQEg4qeMQDuGzRfmtEuH2+Whg6yuKqHsNy5eZQUT8rXs7wQADGFkbWluUHViS2V5MgEg6jisuQG1iDxyo54oPYHUGiJlERON346DjXz9V/GbEVkADGFkbWluUHViS2V5MwEgpzSWgrCjycddMmIBfztFJ08z6r82xAHPELd0cKonzG4AFGtleVNoYXJlVG9rZW5zTG9ja2VkAhpfdG90YWxfc2hhcmVfdG9rZW5zX2xvY2tlZAALa1NoYXJlTGltaXQCHHNoYXJlX2xpbWl0X29uX2ZpcnN0X2hhcnZlc3QACWtleUFjdGl2ZQIGYWN0aXZlAAhrZXlDYXVzZQIOc2h1dGRvd25fY2F1c2UAHGtleVJld2FyZFBvb2xGcmFjdGlvbkN1cnJlbnQCHV9jdXJyZW50X3Bvb2xfZnJhY3Rpb25fcmV3YXJkAB1rZXlSZXdhcmRQb29sRnJhY3Rpb25QcmV2aW91cwIeX3ByZXZpb3VzX3Bvb2xfZnJhY3Rpb25fcmV3YXJkABVrZXlIZWlnaHRQb29sRnJhY3Rpb24CGl9wb29sX3Jld2FyZF91cGRhdGVfaGVpZ2h0AB1rZXlUb3RhbFJld2FyZFBlckJsb2NrQ3VycmVudAIedG90YWxfcmV3YXJkX3Blcl9ibG9ja19jdXJyZW50AB5rZXlUb3RhbFJld2FyZFBlckJsb2NrUHJldmlvdXMCH3RvdGFsX3Jld2FyZF9wZXJfYmxvY2tfcHJldmlvdXMAFWtleVJld2FyZFVwZGF0ZUhlaWdodAIUcmV3YXJkX3VwZGF0ZV9oZWlnaHQAD2tleUxhc3RJbnRlcmVzdAIOX2xhc3RfaW50ZXJlc3QAFWtleUxhc3RJbnRlcmVzdEhlaWdodAIVX2xhc3RfaW50ZXJlc3RfaGVpZ2h0ABhrZXlVc2VyU2hhcmVUb2tlbnNMb2NrZWQCFF9zaGFyZV90b2tlbnNfbG9ja2VkABNrZXlVc2VyTGFzdEludGVyZXN0Ag5fbGFzdF9pbnRlcmVzdAAJa2V5U1dPUGlkAgdTV09QX2lkABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQCFF9TV09QX2NsYWltZWRfYW1vdW50ABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50AhlfU1dPUF9sYXN0X2NsYWltZWRfYW1vdW50ABBrZXlBdmFpbGFibGVTV09QAg9fYXZhaWxhYmxlX1NXT1AAFWtleUZhcm1pbmdTdGFydEhlaWdodAIUZmFybWluZ19zdGFydF9oZWlnaHQABmtleUFQWQIDYXB5ABZrUHJldmlvdXNUb3RhbFZvdGVTV09QAhhwcmV2aW91c190b3RhbF92b3RlX1NXT1AAE2tleVN3b3BZZWFyRW1pc3Npb24CEnN3b3BfeWVhcl9lbWlzc2lvbgAPa2V5QmFsYW5jZWNwbW1BAg9BX2Fzc2V0X2JhbGFuY2UAD2tleUJhbGFuY2VjcG1tQgIPQl9hc3NldF9iYWxhbmNlACFrSGFydmVzdFBvb2xBY3RpdmVWb3RlU3RydWNWb3RpbmcCHl9oYXJ2ZXN0X3Bvb2xfYWN0aXZlVm90ZV9zdHJ1YwAla0hhcnZlc3RVc2VyUG9vbEFjdGl2ZVZvdGVTdHJ1Y1ZvdGluZwIjX2hhcnZlc3RfdXNlcl9wb29sX2FjdGl2ZVZvdGVfc3RydWMAGWtleUxpbWl0U2hhcmVGaXJzdEhhcnZlc3QCHHNoYXJlX2xpbWl0X29uX2ZpcnN0X2hhcnZlc3QAC2tleUFzc2V0SWRBAgpBX2Fzc2V0X2lkAAtrZXlBc3NldElkQgIKQl9hc3NldF9pZAAVa2V5Rmlyc3RIYXJ2ZXN0SGVpZ2h0AhRmaXJzdF9oYXJ2ZXN0X2hlaWdodAATa2V5Zmlyc3RIYXJ2ZXN0Q3BtbQINZmlyc3RfaGFydmVzdAAOa2V5VGVtcFByZXZTdW0CE3N1bV9yZXdhcmRfcHJldmlvdXMADWtleVRlbXBDdXJTdW0CEnN1bV9yZXdhcmRfY3VycmVudAARZ292ZXJuYW5jZUFkZHJlc3MJAQdBZGRyZXNzAQEaAVSq+mnegfQTUoXKPy46iFGzGeqYHFnyDS0ABndhbGxldAkBB0FkZHJlc3MBARoBVN89S5eJWFneFeDkUQtW3T16X721f4UhiQANdm90aW5nQWRkcmVzcwkBB0FkZHJlc3MBARoBVBo2ft9Xop0naVz+v/cm1Of7ocNoPiDKfwAcYWRtaW5JbmNyZWFzZUludGVyZXN0QWRkcmVzcwkBB0FkZHJlc3MBARoBVN89S5eJWFneFeDkUQtW3T16X721f4UhiQAOb25lV2Vla0luQmxvY2sA+k4ADnRvdGFsVm90ZVNoYXJlAIDIr6AlAAtzY2FsZVZhbHVlMQAKAAtzY2FsZVZhbHVlMwDoBwALc2NhbGVWYWx1ZTUAoI0GAAtzY2FsZVZhbHVlNgDAhD0AC3NjYWxlVmFsdWU4AIDC1y8ADHNjYWxlVmFsdWUxMQCA0NvD9AIBC3N0ckFzc2V0SWRBAQRwb29sCQERQGV4dHJOYXRpdmUoMTA1MykCBQRwb29sBQtrZXlBc3NldElkQQELc3RyQXNzZXRJZEIBBHBvb2wJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHBvb2wFC2tleUFzc2V0SWRCAQhhc3NldElkQQEEcG9vbAMJAAACCQELc3RyQXNzZXRJZEEBBQRwb29sAgVXQVZFUwUEdW5pdAkA2QQBCQELc3RyQXNzZXRJZEEBBQRwb29sAQhhc3NldElkQgEEcG9vbAMJAAACCQELc3RyQXNzZXRJZEIBBQRwb29sAgVXQVZFUwUEdW5pdAkA2QQBCQELc3RyQXNzZXRJZEIBBQRwb29sAAtrQmFzZVBlcmlvZAILYmFzZV9wZXJpb2QADWtQZXJpb2RMZW5ndGgCDXBlcmlvZF9sZW5ndGgADGtTdGFydEhlaWdodAIMc3RhcnRfaGVpZ2h0ABNrRmlyc3RIYXJ2ZXN0SGVpZ2h0AhRmaXJzdF9oYXJ2ZXN0X2hlaWdodAAWa0R1cmF0aW9uRnVsbFZvdGVQb3dlcgIYZHVyYXRpb25fZnVsbF92b3RlX3Bvd2VyAA1rTWluVm90ZVBvd2VyAg5taW5fdm90ZV9wb3dlcgAKYmFzZVBlcmlvZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFDXZvdGluZ0FkZHJlc3MFC2tCYXNlUGVyaW9kAhFFbXB0eSBrQmFzZVBlcmlvZAALc3RhcnRIZWlnaHQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQ12b3RpbmdBZGRyZXNzBQxrU3RhcnRIZWlnaHQCEkVtcHR5IGtTdGFydEhlaWdodAAMcGVyaW9kTGVuZ3RoCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUNdm90aW5nQWRkcmVzcwUNa1BlcmlvZExlbmd0aAITRW1wdHkga1BlcmlvZExlbmd0aAAVZHVyYXRpb25GdWxsVm90ZVBvd2VyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUNdm90aW5nQWRkcmVzcwUWa0R1cmF0aW9uRnVsbFZvdGVQb3dlcgIcRW1wdHkga0R1cmF0aW9uRnVsbFZvdGVQb3dlcgAMbWluVm90ZVBvd2VyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUNdm90aW5nQWRkcmVzcwUNa01pblZvdGVQb3dlcgITRW1wdHkga01pblZvdGVQb3dlcgAIaXNBY3RpdmUJARFAZXh0ck5hdGl2ZSgxMDUxKQIFBHRoaXMFCWtleUFjdGl2ZQAKY3VyclBlcmlvZAkAZAIFCmJhc2VQZXJpb2QJAGkCCQBlAgUGaGVpZ2h0BQtzdGFydEhlaWdodAUMcGVyaW9kTGVuZ3RoAQ1nZXRMaW1pdFRva2VuAQRwb29sCQELdmFsdWVPckVsc2UCCQERQGV4dHJOYXRpdmUoMTA1MCkCBQRwb29sBRlrZXlMaW1pdFNoYXJlRmlyc3RIYXJ2ZXN0AAAAA0FQWQkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwUGa2V5QVBZABBTd29wWWVhckVtaXNzaW9uCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBRNrZXlTd29wWWVhckVtaXNzaW9uAQphc3NldE5hbWVBAQRwb29sBAckbWF0Y2gwCQEIYXNzZXRJZEEBBQRwb29sAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAmlkBQckbWF0Y2gwCAkBBXZhbHVlAQkA7AcBBQJpZARuYW1lAwkAAQIFByRtYXRjaDACBFVuaXQEBXdhdmVzBQckbWF0Y2gwAgVXQVZFUwkAAgECC01hdGNoIGVycm9yAQphc3NldE5hbWVCAQRwb29sBAckbWF0Y2gwCQEIYXNzZXRJZEIBBQRwb29sAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAmlkBQckbWF0Y2gwCAkBBXZhbHVlAQkA7AcBBQJpZARuYW1lAwkAAQIFByRtYXRjaDACBFVuaXQEBXdhdmVzBQckbWF0Y2gwAgVXQVZFUwkAAgECC01hdGNoIGVycm9yAARTV09QCQDZBAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMFCWtleVNXT1BpZAEOaXNGaXJzdEhhcnZlc3QBBHBvb2wJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEcG9vbAUTa2V5Zmlyc3RIYXJ2ZXN0Q3BtbQcBFWdldEhlaWdodEZpcnN0SGFydmVzdAEEcG9vbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQRwb29sBRVrZXlGaXJzdEhhcnZlc3RIZWlnaHQAAAELZ2V0QmFsYW5jZUEBBHBvb2wJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQRwb29sBQ9rZXlCYWxhbmNlY3BtbUEJAKwCAgIUTm8gZGF0YSBvbiB0aGUga2V5OiAFD2tleUJhbGFuY2VjcG1tQQELZ2V0QmFsYW5jZUIBBHBvb2wJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQRwb29sBQ9rZXlCYWxhbmNlY3BtbUIJAKwCAgIUTm8gZGF0YSBvbiB0aGUga2V5OiAFD2tleUJhbGFuY2VjcG1tQgESZ2V0U2hhcmVMaW1pdFRva2VuAQRwb29sCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEcG9vbAULa1NoYXJlTGltaXQJAKwCAgIUTm8gZGF0YSBvbiB0aGUga2V5OiAFC2tTaGFyZUxpbWl0ARhnZXRUb3RhbFNoYXJlVG9rZW5Mb2NrZWQBBHBvb2wJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzCQCsAgIFBHBvb2wFFGtleVNoYXJlVG9rZW5zTG9ja2VkCQCsAgIJAKwCAgIUTm8gZGF0YSBvbiB0aGUga2V5OiAFBHBvb2wFFGtleVNoYXJlVG9rZW5zTG9ja2VkAQ9nZXRTaGFyZUFzc2V0SWQBBHBvb2wJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgkBBXZhbHVlAQkApggBBQRwb29sAg5zaGFyZV9hc3NldF9pZAEOYWNjb3VudEJhbGFuY2UBB2Fzc2V0SWQEByRtYXRjaDAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCaWQFByRtYXRjaDAJAPAHAgUEdGhpcwUCaWQDCQABAgUHJG1hdGNoMAIEVW5pdAQFd2F2ZXMFByRtYXRjaDAICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQACAQILTWF0Y2ggZXJyb3IBDGdldEFzc2V0SW5mbwEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJpZAUHJG1hdGNoMAQIc3RyaW5nSWQJANgEAQUCaWQEBGluZm8JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJpZAkArAICCQCsAgICBkFzc2V0IAUIc3RyaW5nSWQCDiBkb2Vzbid0IGV4aXN0CQCVCgMFCHN0cmluZ0lkCAUEaW5mbwRuYW1lCAUEaW5mbwhkZWNpbWFscwMJAAECBQckbWF0Y2gwAgRVbml0BAV3YXZlcwUHJG1hdGNoMAkAlQoDAgVXQVZFUwIFV0FWRVMACAkAAgECC01hdGNoIGVycm9yAQ5jYWxjU2NhbGVWYWx1ZQIIYXNzZXRJZDEIYXNzZXRJZDIEEGFzc2V0SWQxRGVjaW1hbHMICQEFdmFsdWUBCQDsBwEFCGFzc2V0SWQxCGRlY2ltYWxzBBBhc3NldElkMkRlY2ltYWxzCAkBBXZhbHVlAQkA7AcBBQhhc3NldElkMghkZWNpbWFscwQLc2NhbGVEaWdpdHMJAGQCCQBlAgUQYXNzZXRJZDJEZWNpbWFscwUQYXNzZXRJZDFEZWNpbWFscwAICQBsBgAKAAAFC3NjYWxlRGlnaXRzAAAAAAUERE9XTgERdXNlckF2YWlsYWJsZVNXT1ACBHBvb2wEdXNlcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICBQRwb29sAgFfCQClCAEFBHVzZXIFEGtleUF2YWlsYWJsZVNXT1AAAAEKcmV3YXJkSW5mbwEEcG9vbAQadG90YWxSZXdhcmRQZXJCbG9ja0N1cnJlbnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRFnb3Zlcm5hbmNlQWRkcmVzcwUda2V5VG90YWxSZXdhcmRQZXJCbG9ja0N1cnJlbnQJAKwCAgkArAICCQCsAgICFE5vIGRhdGEgb24gdGhlIGtleTogBR1rZXlUb3RhbFJld2FyZFBlckJsb2NrQ3VycmVudAIMIGF0IGFkZHJlc3MgCQClCAEFEWdvdmVybmFuY2VBZGRyZXNzBBt0b3RhbFJld2FyZFBlckJsb2NrUHJldmlvdXMJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRFnb3Zlcm5hbmNlQWRkcmVzcwUea2V5VG90YWxSZXdhcmRQZXJCbG9ja1ByZXZpb3VzCQCsAgIJAKwCAgkArAICAhRObyBkYXRhIG9uIHRoZSBrZXk6IAUea2V5VG90YWxSZXdhcmRQZXJCbG9ja1ByZXZpb3VzAgwgYXQgYWRkcmVzcyAJAKUIAQURZ292ZXJuYW5jZUFkZHJlc3MEGXJld2FyZFBvb2xGcmFjdGlvbkN1cnJlbnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRFnb3Zlcm5hbmNlQWRkcmVzcwkArAICBQRwb29sBRxrZXlSZXdhcmRQb29sRnJhY3Rpb25DdXJyZW50CQCsAgIJAKwCAgkArAICCQCsAgICFE5vIGRhdGEgb24gdGhlIGtleTogBQRwb29sBRxrZXlSZXdhcmRQb29sRnJhY3Rpb25DdXJyZW50AgwgYXQgYWRkcmVzcyAJAKUIAQURZ292ZXJuYW5jZUFkZHJlc3MEEnJld2FyZFVwZGF0ZUhlaWdodAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFEWdvdmVybmFuY2VBZGRyZXNzBRVrZXlSZXdhcmRVcGRhdGVIZWlnaHQJAKwCAgkArAICCQCsAgICFE5vIGRhdGEgb24gdGhlIGtleTogBRVrZXlSZXdhcmRVcGRhdGVIZWlnaHQCDCBhdCBhZGRyZXNzIAkApQgBBRFnb3Zlcm5hbmNlQWRkcmVzcwQWcG9vbFJld2FyZFVwZGF0ZUhlaWdodAkBC3ZhbHVlT3JFbHNlAgkAmggCBRFnb3Zlcm5hbmNlQWRkcmVzcwkArAICBQRwb29sBRVrZXlIZWlnaHRQb29sRnJhY3Rpb24AAAQacmV3YXJkUG9vbEZyYWN0aW9uUHJldmlvdXMJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRFnb3Zlcm5hbmNlQWRkcmVzcwkArAICBQRwb29sBR1rZXlSZXdhcmRQb29sRnJhY3Rpb25QcmV2aW91cwkArAICCQCsAgIJAKwCAgkArAICAhRObyBkYXRhIG9uIHRoZSBrZXk6IAUEcG9vbAUda2V5UmV3YXJkUG9vbEZyYWN0aW9uUHJldmlvdXMCDCBhdCBhZGRyZXNzIAkApQgBBRFnb3Zlcm5hbmNlQWRkcmVzcwQRcmV3YXJkUG9vbEN1cnJlbnQJAGsDBRp0b3RhbFJld2FyZFBlckJsb2NrQ3VycmVudAUZcmV3YXJkUG9vbEZyYWN0aW9uQ3VycmVudAUOdG90YWxWb3RlU2hhcmUEEnJld2FyZFBvb2xQcmV2aW91cwkAawMFG3RvdGFsUmV3YXJkUGVyQmxvY2tQcmV2aW91cwUacmV3YXJkUG9vbEZyYWN0aW9uUHJldmlvdXMFDnRvdGFsVm90ZVNoYXJlAwMJAGYCBRFyZXdhcmRQb29sQ3VycmVudAUadG90YWxSZXdhcmRQZXJCbG9ja0N1cnJlbnQGCQBmAgUScmV3YXJkUG9vbFByZXZpb3VzBRt0b3RhbFJld2FyZFBlckJsb2NrUHJldmlvdXMJAAIBAmJyZXdhcmRQb29sQ3VycmVudCA+IHRvdGFsUmV3YXJkUGVyQmxvY2tDdXJyZW50IG9yIHJld2FyZFBvb2xQcmV2aW91cyA+IHRvdGFsUmV3YXJkUGVyQmxvY2tQcmV2aW91cwkAlgoEBRFyZXdhcmRQb29sQ3VycmVudAUScmV3YXJkVXBkYXRlSGVpZ2h0BRJyZXdhcmRQb29sUHJldmlvdXMFFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQBE2dldExhc3RJbnRlcmVzdEluZm8BBHBvb2wEDGxhc3RJbnRlcmVzdAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMJAKwCAgUEcG9vbAUPa2V5TGFzdEludGVyZXN0CQCsAgIJAKwCAgIUTm8gZGF0YSBvbiB0aGUga2V5OiAFBHBvb2wFD2tleUxhc3RJbnRlcmVzdAQSbGFzdEludGVyZXN0SGVpZ2h0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgUEcG9vbAUVa2V5TGFzdEludGVyZXN0SGVpZ2h0BQZoZWlnaHQJAJQKAgUSbGFzdEludGVyZXN0SGVpZ2h0BQxsYXN0SW50ZXJlc3QBE2dldFVzZXJJbnRlcmVzdEluZm8CBHBvb2wLdXNlckFkZHJlc3MEEHVzZXJMYXN0SW50ZXJlc3QJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwkApQgBBQt1c2VyQWRkcmVzcwUTa2V5VXNlckxhc3RJbnRlcmVzdAQJdXNlclNoYXJlCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8JAKUIAQULdXNlckFkZHJlc3MFGGtleVVzZXJTaGFyZVRva2Vuc0xvY2tlZAQMbGFzdEludGVyZXN0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwkArAICBQRwb29sBQ9rZXlMYXN0SW50ZXJlc3QJAKwCAgkArAICAhRObyBkYXRhIG9uIHRoZSBrZXk6IAUEcG9vbAUPa2V5TGFzdEludGVyZXN0BBV1c2VyTGFzdEludGVyZXN0VmFsdWUEByRtYXRjaDAFEHVzZXJMYXN0SW50ZXJlc3QDCQABAgUHJG1hdGNoMAIDSW50BBB1c2VyTGFzdEludGVyZXN0BQckbWF0Y2gwBRB1c2VyTGFzdEludGVyZXN0BQxsYXN0SW50ZXJlc3QEFXVzZXJTaGFyZVRva2Vuc0Ftb3VudAQHJG1hdGNoMAUJdXNlclNoYXJlAwkAAQIFByRtYXRjaDACA0ludAQJdXNlclNoYXJlBQckbWF0Y2gwBQl1c2VyU2hhcmUAAAkAlAoCBRV1c2VyTGFzdEludGVyZXN0VmFsdWUFFXVzZXJTaGFyZVRva2Vuc0Ftb3VudAEMY2FsY0ludGVyZXN0ChJsYXN0SW50ZXJlc3RIZWlnaHQScmV3YXJkVXBkYXRlSGVpZ2h0FnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQMbGFzdEludGVyZXN0FWN1cnJlbnRSZXdhcmRQZXJCbG9jaxBzaGFyZVRva2VuTG9ja2VkFnByZXZpb3VzUmV3YXJkUGVyQmxvY2sMc2hhcmVBc3NldElkCnNjYWxlVmFsdWUJcG10QW1vdW50AwkAAAIFEHNoYXJlVG9rZW5Mb2NrZWQAAAAAAwkBAiE9AgUWcG9vbFJld2FyZFVwZGF0ZUhlaWdodAAAAwMJAGYCBRJyZXdhcmRVcGRhdGVIZWlnaHQFBmhlaWdodAkAAAIFEnJld2FyZFVwZGF0ZUhlaWdodAUWcG9vbFJld2FyZFVwZGF0ZUhlaWdodAcEBnJld2FyZAkAaAIFFnByZXZpb3VzUmV3YXJkUGVyQmxvY2sJAGUCBQZoZWlnaHQFEmxhc3RJbnRlcmVzdEhlaWdodAkAZAIFDGxhc3RJbnRlcmVzdAkAawMFBnJld2FyZAUKc2NhbGVWYWx1ZQUQc2hhcmVUb2tlbkxvY2tlZAMDCQBmAgUGaGVpZ2h0BRJyZXdhcmRVcGRhdGVIZWlnaHQJAQIhPQIFEnJld2FyZFVwZGF0ZUhlaWdodAUWcG9vbFJld2FyZFVwZGF0ZUhlaWdodAcEBnJld2FyZAkAaAIFFnByZXZpb3VzUmV3YXJkUGVyQmxvY2sJAGUCBQZoZWlnaHQFEmxhc3RJbnRlcmVzdEhlaWdodAkAZAIFDGxhc3RJbnRlcmVzdAkAawMFBnJld2FyZAUKc2NhbGVWYWx1ZQUQc2hhcmVUb2tlbkxvY2tlZAMDAwkAZgIFBmhlaWdodAUScmV3YXJkVXBkYXRlSGVpZ2h0CQAAAgUScmV3YXJkVXBkYXRlSGVpZ2h0BRZwb29sUmV3YXJkVXBkYXRlSGVpZ2h0BwkAZgIFEmxhc3RJbnRlcmVzdEhlaWdodAUScmV3YXJkVXBkYXRlSGVpZ2h0BwQGcmV3YXJkCQBoAgUVY3VycmVudFJld2FyZFBlckJsb2NrCQBlAgUGaGVpZ2h0BRJsYXN0SW50ZXJlc3RIZWlnaHQJAGQCBQxsYXN0SW50ZXJlc3QJAGsDBQZyZXdhcmQFCnNjYWxlVmFsdWUFEHNoYXJlVG9rZW5Mb2NrZWQEKnJld2FyZEFmdGVyTGFzdEludGVyZXN0QmVmb3JlUmVhd2FyZFVwZGF0ZQkAaAIFFnByZXZpb3VzUmV3YXJkUGVyQmxvY2sJAGUCBRJyZXdhcmRVcGRhdGVIZWlnaHQFEmxhc3RJbnRlcmVzdEhlaWdodAQTaW50ZXJlc3RBZnRlclVwZGF0ZQkAZAIFDGxhc3RJbnRlcmVzdAkAawMFKnJld2FyZEFmdGVyTGFzdEludGVyZXN0QmVmb3JlUmVhd2FyZFVwZGF0ZQUKc2NhbGVWYWx1ZQUQc2hhcmVUb2tlbkxvY2tlZAQGcmV3YXJkCQBoAgUVY3VycmVudFJld2FyZFBlckJsb2NrCQBlAgUGaGVpZ2h0BRJyZXdhcmRVcGRhdGVIZWlnaHQJAGQCBRNpbnRlcmVzdEFmdGVyVXBkYXRlCQBrAwUGcmV3YXJkBQpzY2FsZVZhbHVlBRBzaGFyZVRva2VuTG9ja2VkAwkAZgIFEnJld2FyZFVwZGF0ZUhlaWdodAUGaGVpZ2h0BAZyZXdhcmQJAGgCBRZwcmV2aW91c1Jld2FyZFBlckJsb2NrCQBlAgUGaGVpZ2h0BRJsYXN0SW50ZXJlc3RIZWlnaHQJAGQCBQxsYXN0SW50ZXJlc3QJAGsDBQZyZXdhcmQFCnNjYWxlVmFsdWUFEHNoYXJlVG9rZW5Mb2NrZWQDCQBmAgUSbGFzdEludGVyZXN0SGVpZ2h0BRJyZXdhcmRVcGRhdGVIZWlnaHQEBnJld2FyZAkAaAIFFWN1cnJlbnRSZXdhcmRQZXJCbG9jawkAZQIFBmhlaWdodAUSbGFzdEludGVyZXN0SGVpZ2h0CQBkAgUMbGFzdEludGVyZXN0CQBrAwUGcmV3YXJkBQpzY2FsZVZhbHVlBRBzaGFyZVRva2VuTG9ja2VkBCpyZXdhcmRBZnRlckxhc3RJbnRlcmVzdEJlZm9yZVJlYXdhcmRVcGRhdGUJAGgCBRZwcmV2aW91c1Jld2FyZFBlckJsb2NrCQBlAgUScmV3YXJkVXBkYXRlSGVpZ2h0BRJsYXN0SW50ZXJlc3RIZWlnaHQEE2ludGVyZXN0QWZ0ZXJVcGRhdGUJAGQCBQxsYXN0SW50ZXJlc3QJAGsDBSpyZXdhcmRBZnRlckxhc3RJbnRlcmVzdEJlZm9yZVJlYXdhcmRVcGRhdGUFCnNjYWxlVmFsdWUFEHNoYXJlVG9rZW5Mb2NrZWQEBnJld2FyZAkAaAIFFWN1cnJlbnRSZXdhcmRQZXJCbG9jawkAZQIFBmhlaWdodAUScmV3YXJkVXBkYXRlSGVpZ2h0CQBkAgUTaW50ZXJlc3RBZnRlclVwZGF0ZQkAawMFBnJld2FyZAUKc2NhbGVWYWx1ZQUQc2hhcmVUb2tlbkxvY2tlZAEJY2xhaW1DYWxjAwRwb29sBmNhbGxlcglwbXRBbW91bnQEDHNoYXJlQXNzZXRJZAkBD2dldFNoYXJlQXNzZXRJZAEFBHBvb2wECnNjYWxlVmFsdWUJAQ5jYWxjU2NhbGVWYWx1ZQIFBFNXT1AFDHNoYXJlQXNzZXRJZAQQc2hhcmVUb2tlbkxvY2tlZAkBGGdldFRvdGFsU2hhcmVUb2tlbkxvY2tlZAEFBHBvb2wEDSR0MDEzMDkxMTMxNTYJARNnZXRMYXN0SW50ZXJlc3RJbmZvAQUEcG9vbAQSbGFzdEludGVyZXN0SGVpZ2h0CAUNJHQwMTMwOTExMzE1NgJfMQQMbGFzdEludGVyZXN0CAUNJHQwMTMwOTExMzE1NgJfMgQNJHQwMTMxNjExMzI3MwkBCnJld2FyZEluZm8BBQRwb29sBBVjdXJyZW50UmV3YXJkUGVyQmxvY2sIBQ0kdDAxMzE2MTEzMjczAl8xBBJyZXdhcmRVcGRhdGVIZWlnaHQIBQ0kdDAxMzE2MTEzMjczAl8yBBZwcmV2aW91c1Jld2FyZFBlckJsb2NrCAUNJHQwMTMxNjExMzI3MwJfMwQWcG9vbFJld2FyZFVwZGF0ZUhlaWdodAgFDSR0MDEzMTYxMTMyNzMCXzQEDSR0MDEzMjc4MTMzNTcJARNnZXRVc2VySW50ZXJlc3RJbmZvAgUEcG9vbAUGY2FsbGVyBBB1c2VyTGFzdEludGVyZXN0CAUNJHQwMTMyNzgxMzM1NwJfMQQVdXNlclNoYXJlVG9rZW5zQW1vdW50CAUNJHQwMTMyNzgxMzM1NwJfMgQPY3VycmVudEludGVyZXN0CQEMY2FsY0ludGVyZXN0CgUSbGFzdEludGVyZXN0SGVpZ2h0BRJyZXdhcmRVcGRhdGVIZWlnaHQFFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQFDGxhc3RJbnRlcmVzdAUVY3VycmVudFJld2FyZFBlckJsb2NrBRBzaGFyZVRva2VuTG9ja2VkBRZwcmV2aW91c1Jld2FyZFBlckJsb2NrBQxzaGFyZUFzc2V0SWQFCnNjYWxlVmFsdWUFCXBtdEFtb3VudAQLY2xhaW1BbW91bnQJAGsDBRV1c2VyU2hhcmVUb2tlbnNBbW91bnQJAGUCBQ9jdXJyZW50SW50ZXJlc3QFEHVzZXJMYXN0SW50ZXJlc3QFCnNjYWxlVmFsdWUED3VzZXJOZXdJbnRlcmVzdAUPY3VycmVudEludGVyZXN0CQCWCgQFD3VzZXJOZXdJbnRlcmVzdAUPY3VycmVudEludGVyZXN0BQtjbGFpbUFtb3VudAUVdXNlclNoYXJlVG9rZW5zQW1vdW50ARdjYWxjdWxhdGVQcm90b2NvbFJld2FyZAEEcG9vbAQNJHQwMTM4NzUxMzk0MAkBE2dldExhc3RJbnRlcmVzdEluZm8BBQRwb29sBBJsYXN0SW50ZXJlc3RIZWlnaHQIBQ0kdDAxMzg3NTEzOTQwAl8xBAxsYXN0SW50ZXJlc3QIBQ0kdDAxMzg3NTEzOTQwAl8yBA0kdDAxMzk0NTE0MDU2CQEKcmV3YXJkSW5mbwEFBHBvb2wEFWN1cnJlbnRSZXdhcmRQZXJCbG9jawgFDSR0MDEzOTQ1MTQwNTYCXzEEEnJld2FyZFVwZGF0ZUhlaWdodAgFDSR0MDEzOTQ1MTQwNTYCXzIEFnByZXZpb3VzUmV3YXJkUGVyQmxvY2sIBQ0kdDAxMzk0NTE0MDU2Al8zBBZwb29sUmV3YXJkVXBkYXRlSGVpZ2h0CAUNJHQwMTM5NDUxNDA1NgJfNAQQc2hhcmVUb2tlbkxvY2tlZAkBGGdldFRvdGFsU2hhcmVUb2tlbkxvY2tlZAEFBHBvb2wDAwkAAAIFEHNoYXJlVG9rZW5Mb2NrZWQAAAkAAAIFFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQAAAcDCQBmAgUScmV3YXJkVXBkYXRlSGVpZ2h0BQZoZWlnaHQEBnJld2FyZAkAaAIFFnByZXZpb3VzUmV3YXJkUGVyQmxvY2sJAGUCBQZoZWlnaHQFEmxhc3RJbnRlcmVzdEhlaWdodAUGcmV3YXJkAwkAZgIFEmxhc3RJbnRlcmVzdEhlaWdodAUScmV3YXJkVXBkYXRlSGVpZ2h0BAZyZXdhcmQJAGgCBRVjdXJyZW50UmV3YXJkUGVyQmxvY2sJAGUCBQZoZWlnaHQFEmxhc3RJbnRlcmVzdEhlaWdodAUGcmV3YXJkBCpyZXdhcmRBZnRlckxhc3RJbnRlcmVzdEJlZm9yZVJlYXdhcmRVcGRhdGUJAGgCBRZwcmV2aW91c1Jld2FyZFBlckJsb2NrCQBlAgUScmV3YXJkVXBkYXRlSGVpZ2h0BRJsYXN0SW50ZXJlc3RIZWlnaHQEBnJld2FyZAkAaAIFFWN1cnJlbnRSZXdhcmRQZXJCbG9jawkAZQIFBmhlaWdodAUScmV3YXJkVXBkYXRlSGVpZ2h0CQBkAgUGcmV3YXJkBSpyZXdhcmRBZnRlckxhc3RJbnRlcmVzdEJlZm9yZVJlYXdhcmRVcGRhdGUDAwkAAAIFEHNoYXJlVG9rZW5Mb2NrZWQAAAkBAiE9AgUWcG9vbFJld2FyZFVwZGF0ZUhlaWdodAAABwMDCQBmAgUScmV3YXJkVXBkYXRlSGVpZ2h0BQZoZWlnaHQJAAACBRJyZXdhcmRVcGRhdGVIZWlnaHQFFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQHBAZyZXdhcmQJAGgCBRZwcmV2aW91c1Jld2FyZFBlckJsb2NrCQBlAgUGaGVpZ2h0BRJsYXN0SW50ZXJlc3RIZWlnaHQFBnJld2FyZAMDCQBmAgUGaGVpZ2h0BRJyZXdhcmRVcGRhdGVIZWlnaHQJAQIhPQIFEnJld2FyZFVwZGF0ZUhlaWdodAUWcG9vbFJld2FyZFVwZGF0ZUhlaWdodAcEBnJld2FyZAkAaAIFFnByZXZpb3VzUmV3YXJkUGVyQmxvY2sJAGUCBQZoZWlnaHQFEmxhc3RJbnRlcmVzdEhlaWdodAUGcmV3YXJkAwMDCQBmAgUGaGVpZ2h0BRJyZXdhcmRVcGRhdGVIZWlnaHQJAAACBRJyZXdhcmRVcGRhdGVIZWlnaHQFFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQHCQBmAgUSbGFzdEludGVyZXN0SGVpZ2h0BRJyZXdhcmRVcGRhdGVIZWlnaHQHBAZyZXdhcmQJAGgCBRVjdXJyZW50UmV3YXJkUGVyQmxvY2sJAGUCBQZoZWlnaHQFEmxhc3RJbnRlcmVzdEhlaWdodAUGcmV3YXJkBCpyZXdhcmRBZnRlckxhc3RJbnRlcmVzdEJlZm9yZVJlYXdhcmRVcGRhdGUJAGgCBRZwcmV2aW91c1Jld2FyZFBlckJsb2NrCQBlAgUScmV3YXJkVXBkYXRlSGVpZ2h0BRJsYXN0SW50ZXJlc3RIZWlnaHQEBnJld2FyZAkAaAIFFWN1cnJlbnRSZXdhcmRQZXJCbG9jawkAZQIFBmhlaWdodAUScmV3YXJkVXBkYXRlSGVpZ2h0CQBkAgUGcmV3YXJkBSpyZXdhcmRBZnRlckxhc3RJbnRlcmVzdEJlZm9yZVJlYXdhcmRVcGRhdGUAAAEWY2hlY2tQbXRBc3NldElkQ29ycmVjdAIEcG9vbApwbXRBc3NldElkBBBwb29sU2hhcmVBc3NldElkCQDZBAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIJAQV2YWx1ZQEJAKYIAQUEcG9vbAIOc2hhcmVfYXNzZXRfaWQDCQAAAgUKcG10QXNzZXRJZAUQcG9vbFNoYXJlQXNzZXRJZAYHARhnZXRVc2VyU1dPUENsYWltZWRBbW91bnQCBHBvb2wEdXNlcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICBQRwb29sAgFfCQClCAEFBHVzZXIFGGtleVVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAQdzdXNwZW5kAQVjYXVzZQkAzAgCCQEMQm9vbGVhbkVudHJ5AgUJa2V5QWN0aXZlBwkAzAgCCQELU3RyaW5nRW50cnkCBQhrZXlDYXVzZQUFY2F1c2UFA25pbAgBaQEEaW5pdAEHZWFybHlMUAMJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMFCWtleVNXT1BpZAkAAgECGFNXT1AgYWxyZWFkeSBpbml0aWFsaXplZAQKaW5pdEFtb3VudACAgOmDsd4WBAlTV09QaXNzdWUJAMIIBQIEU1dPUAITU1dPUCBwcm90b2NvbCB0b2tlbgUKaW5pdEFtb3VudAAIBgQGU1dPUGlkCQC4CAEFCVNXT1Bpc3N1ZQkAzAgCCQEMQm9vbGVhbkVudHJ5AgUJa2V5QWN0aXZlBgkAzAgCCQDCCAUCBFNXT1ACE1NXT1AgcHJvdG9jb2wgdG9rZW4FCmluaXRBbW91bnQACAYJAMwIAgkBC1N0cmluZ0VudHJ5AgUJa2V5U1dPUGlkCQDYBAEFBlNXT1BpZAUDbmlsAWkBFGluaXRQb29sU2hhcmVGYXJtaW5nAQRwb29sAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIrT25seSB0aGUgREFwcCBpdHNlbGYgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgQNJHQwMTcwMzgxNzE0MQkBCnJld2FyZEluZm8BBQRwb29sBA1jdXJyZW50UmV3YXJkCAUNJHQwMTcwMzgxNzE0MQJfMQQScmV3YXJkVXBkYXRlSGVpZ2h0CAUNJHQwMTcwMzgxNzE0MQJfMgQWcHJldmlvdXNSZXdhcmRQZXJCbG9jawgFDSR0MDE3MDM4MTcxNDECXzMEFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQIBQ0kdDAxNzAzODE3MTQxAl80CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHBvb2wFFGtleVNoYXJlVG9rZW5zTG9ja2VkAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAUPa2V5TGFzdEludGVyZXN0AAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUEcG9vbAUVa2V5TGFzdEludGVyZXN0SGVpZ2h0BQZoZWlnaHQFA25pbAFpARJ1cGRhdGVQb29sSW50ZXJlc3QBBHBvb2wDCQECIT0CCAUBaQZjYWxsZXIFBndhbGxldAkAAgECLE9ubHkgdGhlIEFkbWluIGl0c2VsZiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAwkBASEBBQhpc0FjdGl2ZQkAAgECH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQEDSR0MDE3NTUwMTc2NzAJAQljbGFpbUNhbGMDBQRwb29sBRxhZG1pbkluY3JlYXNlSW50ZXJlc3RBZGRyZXNzAAAED3VzZXJOZXdJbnRlcmVzdAgFDSR0MDE3NTUwMTc2NzACXzEED2N1cnJlbnRJbnRlcmVzdAgFDSR0MDE3NTUwMTc2NzACXzIEC2NsYWltQW1vdW50CAUNJHQwMTc1NTAxNzY3MAJfMwQVdXNlclNoYXJlVG9rZW5zQW1vdW50CAUNJHQwMTc1NTAxNzY3MAJfNAQNJHQwMTc2NzUxNzc3OAkBCnJld2FyZEluZm8BBQRwb29sBA1jdXJyZW50UmV3YXJkCAUNJHQwMTc2NzUxNzc3OAJfMQQScmV3YXJkVXBkYXRlSGVpZ2h0CAUNJHQwMTc2NzUxNzc3OAJfMgQWcHJldmlvdXNSZXdhcmRQZXJCbG9jawgFDSR0MDE3Njc1MTc3NzgCXzMEFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQIBQ0kdDAxNzY3NTE3Nzc4Al80CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHBvb2wFD2tleUxhc3RJbnRlcmVzdAUPdXNlck5ld0ludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHBvb2wFFWtleUxhc3RJbnRlcmVzdEhlaWdodAUGaGVpZ2h0BQNuaWwBaQEPbG9ja1NoYXJlVG9rZW5zAQRwb29sBA0kdDAxNzk3MDE4MDQ1CQCUCgIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQECXBtdEFtb3VudAgFDSR0MDE3OTcwMTgwNDUCXzEECnBtdEFzc2V0SWQIBQ0kdDAxNzk3MDE4MDQ1Al8yBA0kdDAxODA1MDE4MTIzCQEMZ2V0QXNzZXRJbmZvAQUKcG10QXNzZXRJZAQNcG10U3RyQXNzZXRJZAgFDSR0MDE4MDUwMTgxMjMCXzEEDHBtdEFzc2V0TmFtZQgFDSR0MDE4MDUwMTgxMjMCXzIEC3BtdERlY2ltYWxzCAUNJHQwMTgwNTAxODEyMwJfMwQNJHQwMTgxMjgxODIzNgkBCWNsYWltQ2FsYwMFBHBvb2wIBQFpBmNhbGxlcgUJcG10QW1vdW50BA91c2VyTmV3SW50ZXJlc3QIBQ0kdDAxODEyODE4MjM2Al8xBA9jdXJyZW50SW50ZXJlc3QIBQ0kdDAxODEyODE4MjM2Al8yBAtjbGFpbUFtb3VudAgFDSR0MDE4MTI4MTgyMzYCXzMEFXVzZXJTaGFyZVRva2Vuc0Ftb3VudAgFDSR0MDE4MTI4MTgyMzYCXzQEEnVzZXJTaGFyZUFtb3VudE5ldwkAZAIFFXVzZXJTaGFyZVRva2Vuc0Ftb3VudAUJcG10QW1vdW50BBFhdmFpbGFibGVGdW5kc05ldwkAZAIJARF1c2VyQXZhaWxhYmxlU1dPUAIFBHBvb2wIBQFpBmNhbGxlcgULY2xhaW1BbW91bnQEEHRvdGFsU2hhcmVBbW91bnQJARhnZXRUb3RhbFNoYXJlVG9rZW5Mb2NrZWQBBQRwb29sBBN0b3RhbFNoYXJlQW1vdW50TmV3CQBkAgUQdG90YWxTaGFyZUFtb3VudAUJcG10QW1vdW50BBF1c2VyQ2xhaW1lZEFtb3VudAkBGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAIFBHBvb2wIBQFpBmNhbGxlcgQUdXNlckNsYWltZWRBbW91bnROZXcJAGQCBRF1c2VyQ2xhaW1lZEFtb3VudAULY2xhaW1BbW91bnQECWJhc2VFbnRyeQkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwkApQgBCAUBaQZjYWxsZXIFE2tleVVzZXJMYXN0SW50ZXJlc3QFD3VzZXJOZXdJbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwkApQgBCAUBaQZjYWxsZXIFGGtleVVzZXJTaGFyZVRva2Vuc0xvY2tlZAUSdXNlclNoYXJlQW1vdW50TmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHBvb2wFFGtleVNoYXJlVG9rZW5zTG9ja2VkBRN0b3RhbFNoYXJlQW1vdW50TmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHBvb2wFD2tleUxhc3RJbnRlcmVzdAUPY3VycmVudEludGVyZXN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBHBvb2wFFWtleUxhc3RJbnRlcmVzdEhlaWdodAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQRwb29sAgFfCQClCAEIBQFpBmNhbGxlcgUYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50BRR1c2VyQ2xhaW1lZEFtb3VudE5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwkApQgBCAUBaQZjYWxsZXIFHGtleVVzZXJTV09QTGFzdENsYWltZWRBbW91bnQFC2NsYWltQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQRwb29sAgFfCQClCAEIBQFpBmNhbGxlcgUQa2V5QXZhaWxhYmxlU1dPUAURYXZhaWxhYmxlRnVuZHNOZXcFA25pbAMDCQEOaXNGaXJzdEhhcnZlc3QBCQEHQWRkcmVzcwEJANkEAQUEcG9vbAkAZgIJARVnZXRIZWlnaHRGaXJzdEhhcnZlc3QBCQEHQWRkcmVzcwEJANkEAQUEcG9vbAUGaGVpZ2h0BwQNaGFydmVzdFBlcmlvZAkAZQIJAGkCCQBkAgkAZQIJARVnZXRIZWlnaHRGaXJzdEhhcnZlc3QBCQEHQWRkcmVzcwEJANkEAQUEcG9vbAULc3RhcnRIZWlnaHQAAQUMcGVyaW9kTGVuZ3RoAAEEDmFtb3VudE9mVm90aW5nCQC1CQIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFDXZvdGluZ0FkZHJlc3MJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfBQRwb29sAhBfdXNlcl9wb29sX3N0cnVjAgFfBBBhbW91bnRQb29sU3RyYWN0CQC1CQIJARFAZXh0ck5hdGl2ZSgxMDUzKQIFDXZvdGluZ0FkZHJlc3MJAKwCAgUEcG9vbAILX3Bvb2xfc3RydWMCAV8EHmFtb3VudEFjdGl2ZVZvdGVVc2VyUG9vbFN0cmFjdAkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIFDXZvdGluZ0FkZHJlc3MJAKwCAgkArAICCQCsAgIJAKUIAQgFAWkGY2FsbGVyAgFfBQRwb29sBSVrSGFydmVzdFVzZXJQb29sQWN0aXZlVm90ZVN0cnVjVm90aW5nAgACAV8EGmFtb3VudFBvb2xBY3RpdmVWb3RlU3RyYWN0CQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUNdm90aW5nQWRkcmVzcwkArAICBQRwb29sBSFrSGFydmVzdFBvb2xBY3RpdmVWb3RlU3RydWNWb3RpbmcCAAIBXwQUdXNlclNoYXJlVG9rZW5Mb2NrZWQFFXVzZXJTaGFyZVRva2Vuc0Ftb3VudAQSdXNlclBvb2xBY3RpdmVWb3RlAwkAAAIJAKQDAQUKY3VyclBlcmlvZAkAkQMCBQ5hbW91bnRPZlZvdGluZwACCQELdmFsdWVPckVsc2UCCQC2CQEJAJEDAgUeYW1vdW50QWN0aXZlVm90ZVVzZXJQb29sU3RyYWN0AAAAAAkBC3ZhbHVlT3JFbHNlAgkAtgkBCQCRAwIFDmFtb3VudE9mVm90aW5nAAEAAAQOcG9vbEFjdGl2ZVZvdGUDCQAAAgkApAMBBQpjdXJyUGVyaW9kCQCRAwIFEGFtb3VudFBvb2xTdHJhY3QAAgkBC3ZhbHVlT3JFbHNlAgkAtgkBCQCRAwIFGmFtb3VudFBvb2xBY3RpdmVWb3RlU3RyYWN0AAAAAAkBC3ZhbHVlT3JFbHNlAgkAtgkBCQCRAwIFEGFtb3VudFBvb2xTdHJhY3QAAQAABA5wcm90b2NvbFJld2FyZAkBF2NhbGN1bGF0ZVByb3RvY29sUmV3YXJkAQUEcG9vbAQPbGltaXRTaGFyZVRva2VuCQESZ2V0U2hhcmVMaW1pdFRva2VuAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUEcG9vbAQKc2hhcmVUb2tlbgkAZQIJAGsDBQ9saW1pdFNoYXJlVG9rZW4FEnVzZXJQb29sQWN0aXZlVm90ZQUOcG9vbEFjdGl2ZVZvdGUFFHVzZXJTaGFyZVRva2VuTG9ja2VkAwkAZgIJAGsDAGMJAGQCCQEOYWNjb3VudEJhbGFuY2UBBQpwbXRBc3NldElkBQlwbXRBbW91bnQAZAUTdG90YWxTaGFyZUFtb3VudE5ldwkAAgECMkJhbGFuY2Ugb2Ygc2hhcmUtdG9rZW4gaXMgZ3JlYXRlciB0aGFuIHRvdGFsQW1vdW50CQACAQIDa2VrCQACAQIgWW91ciBhbW91bnQgb2YgdG9rZW4gbGVzcyB0aGFuIDABaQETd2l0aGRyYXdTaGFyZVRva2VucwIEcG9vbBlzaGFyZVRva2Vuc1dpdGhkcmF3QW1vdW50BA1zaGFyZVRva2Vuc0lkCQDZBAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIJAQV2YWx1ZQEJAKYIAQUEcG9vbAIOc2hhcmVfYXNzZXRfaWQEDSR0MDIxNDEzMjE1MTMJAQljbGFpbUNhbGMDBQRwb29sCAUBaQZjYWxsZXIAAQQPdXNlck5ld0ludGVyZXN0CAUNJHQwMjE0MTMyMTUxMwJfMQQPY3VycmVudEludGVyZXN0CAUNJHQwMjE0MTMyMTUxMwJfMgQLY2xhaW1BbW91bnQIBQ0kdDAyMTQxMzIxNTEzAl8zBBV1c2VyU2hhcmVUb2tlbnNBbW91bnQIBQ0kdDAyMTQxMzIxNTEzAl80BBJ1c2VyU2hhcmVBbW91bnROZXcJAGUCBRV1c2VyU2hhcmVUb2tlbnNBbW91bnQFGXNoYXJlVG9rZW5zV2l0aGRyYXdBbW91bnQEEWF2YWlsYWJsZUZ1bmRzTmV3CQBkAgkBEXVzZXJBdmFpbGFibGVTV09QAgUEcG9vbAgFAWkGY2FsbGVyBQtjbGFpbUFtb3VudAQQdG90YWxTaGFyZUFtb3VudAkBGGdldFRvdGFsU2hhcmVUb2tlbkxvY2tlZAEFBHBvb2wEE3RvdGFsU2hhcmVBbW91bnROZXcJAGUCBRB0b3RhbFNoYXJlQW1vdW50BRlzaGFyZVRva2Vuc1dpdGhkcmF3QW1vdW50BBF1c2VyQ2xhaW1lZEFtb3VudAkBGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAIFBHBvb2wIBQFpBmNhbGxlcgQUdXNlckNsYWltZWRBbW91bnROZXcJAGQCBRF1c2VyQ2xhaW1lZEFtb3VudAULY2xhaW1BbW91bnQDCQBmAgUZc2hhcmVUb2tlbnNXaXRoZHJhd0Ftb3VudAUVdXNlclNoYXJlVG9rZW5zQW1vdW50CQACAQIsV2l0aGRyYXcgYW1vdW50IG1vcmUgdGhlbiB1c2VyIGxvY2tlZCBhbW91bnQDCQEBIQEFCGlzQWN0aXZlCQACAQIfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAMJAGYCBRlzaGFyZVRva2Vuc1dpdGhkcmF3QW1vdW50BRV1c2VyU2hhcmVUb2tlbnNBbW91bnQJAAIBAixXaXRoZHJhdyBhbW91bnQgbW9yZSB0aGVuIHVzZXIgbG9ja2VkIGFtb3VudAMJAGYCCQBrAwBjCQBlAgkBDmFjY291bnRCYWxhbmNlAQUNc2hhcmVUb2tlbnNJZAUZc2hhcmVUb2tlbnNXaXRoZHJhd0Ftb3VudABkBRN0b3RhbFNoYXJlQW1vdW50TmV3CQACAQIyQmFsYW5jZSBvZiBzaGFyZS10b2tlbiBpcyBncmVhdGVyIHRoYW4gdG90YWxBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8JAKUIAQgFAWkGY2FsbGVyBRNrZXlVc2VyTGFzdEludGVyZXN0BQ91c2VyTmV3SW50ZXJlc3QJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8JAKUIAQgFAWkGY2FsbGVyBRhrZXlVc2VyU2hhcmVUb2tlbnNMb2NrZWQFEnVzZXJTaGFyZUFtb3VudE5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBQ9rZXlMYXN0SW50ZXJlc3QFD2N1cnJlbnRJbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBRVrZXlMYXN0SW50ZXJlc3RIZWlnaHQFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBRRrZXlTaGFyZVRva2Vuc0xvY2tlZAUTdG90YWxTaGFyZUFtb3VudE5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwkApQgBCAUBaQZjYWxsZXIFEGtleUF2YWlsYWJsZVNXT1AFEWF2YWlsYWJsZUZ1bmRzTmV3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQRwb29sAgFfCQClCAEIBQFpBmNhbGxlcgUYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50BRR1c2VyQ2xhaW1lZEFtb3VudE5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwkApQgBCAUBaQZjYWxsZXIFHGtleVVzZXJTV09QTGFzdENsYWltZWRBbW91bnQFC2NsYWltQW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUZc2hhcmVUb2tlbnNXaXRoZHJhd0Ftb3VudAUNc2hhcmVUb2tlbnNJZAUDbmlsAWkBBWNsYWltAQRwb29sBA1zaGFyZVRva2Vuc0lkCQDZBAEJARFAZXh0ck5hdGl2ZSgxMDUzKQIJAQV2YWx1ZQEJAKYIAQUEcG9vbAIOc2hhcmVfYXNzZXRfaWQEEHNoYXJlVG9rZW5Mb2NrZWQJARhnZXRUb3RhbFNoYXJlVG9rZW5Mb2NrZWQBBQRwb29sBA0kdDAyMzUyMDIzNTg1CQETZ2V0TGFzdEludGVyZXN0SW5mbwEFBHBvb2wEEmxhc3RJbnRlcmVzdEhlaWdodAgFDSR0MDIzNTIwMjM1ODUCXzEEDGxhc3RJbnRlcmVzdAgFDSR0MDIzNTIwMjM1ODUCXzIEDSR0MDIzNTkwMjM3MDIJAQpyZXdhcmRJbmZvAQUEcG9vbAQVY3VycmVudFJld2FyZFBlckJsb2NrCAUNJHQwMjM1OTAyMzcwMgJfMQQScmV3YXJkVXBkYXRlSGVpZ2h0CAUNJHQwMjM1OTAyMzcwMgJfMgQWcHJldmlvdXNSZXdhcmRQZXJCbG9jawgFDSR0MDIzNTkwMjM3MDICXzMEFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQIBQ0kdDAyMzU5MDIzNzAyAl80BA0kdDAyMzcwNzIzODA3CQEJY2xhaW1DYWxjAwUEcG9vbAgFAWkGY2FsbGVyAAEED3VzZXJOZXdJbnRlcmVzdAgFDSR0MDIzNzA3MjM4MDcCXzEED2N1cnJlbnRJbnRlcmVzdAgFDSR0MDIzNzA3MjM4MDcCXzIEC2NsYWltQW1vdW50CAUNJHQwMjM3MDcyMzgwNwJfMwQVdXNlclNoYXJlVG9rZW5zQW1vdW50CAUNJHQwMjM3MDcyMzgwNwJfNAQNYXZhaWxhYmxlRnVuZAkAZAIJARF1c2VyQXZhaWxhYmxlU1dPUAIFBHBvb2wIBQFpBmNhbGxlcgULY2xhaW1BbW91bnQEEXVzZXJDbGFpbWVkQW1vdW50CQEYZ2V0VXNlclNXT1BDbGFpbWVkQW1vdW50AgUEcG9vbAgFAWkGY2FsbGVyBBR1c2VyQ2xhaW1lZEFtb3VudE5ldwkAZAIFEXVzZXJDbGFpbWVkQW1vdW50BQtjbGFpbUFtb3VudAMJAAACBQ1hdmFpbGFibGVGdW5kAAAJAAIBAhlZb3UgaGF2ZSAwIGF2YWlsYWJsZSBTV09QAwkBASEBBQhpc0FjdGl2ZQkAAgECH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQDCQAAAgUNYXZhaWxhYmxlRnVuZAAACQACAQIZWW91IGhhdmUgMCBhdmFpbGFibGUgU1dPUAMJAGYCCQBrAwBjCQEOYWNjb3VudEJhbGFuY2UBBQ1zaGFyZVRva2Vuc0lkAGQFEHNoYXJlVG9rZW5Mb2NrZWQJAAIBAjJCYWxhbmNlIG9mIHNoYXJlLXRva2VuIGlzIGdyZWF0ZXIgdGhhbiB0b3RhbEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwkApQgBCAUBaQZjYWxsZXIFE2tleVVzZXJMYXN0SW50ZXJlc3QFD3VzZXJOZXdJbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBQ9rZXlMYXN0SW50ZXJlc3QFD2N1cnJlbnRJbnRlcmVzdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQRwb29sBRVrZXlMYXN0SW50ZXJlc3RIZWlnaHQFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwkApQgBCAUBaQZjYWxsZXIFEGtleUF2YWlsYWJsZVNXT1AAAAkAzAgCCQEHUmVpc3N1ZQMFBFNXT1AFDWF2YWlsYWJsZUZ1bmQGCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICBQRwb29sAgFfCQClCAEIBQFpBmNhbGxlcgUYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50BRR1c2VyQ2xhaW1lZEFtb3VudE5ldwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwkApQgBCAUBaQZjYWxsZXIFHGtleVVzZXJTV09QTGFzdENsYWltZWRBbW91bnQFC2NsYWltQW1vdW50CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUNYXZhaWxhYmxlRnVuZAUEU1dPUAUDbmlsAWkBCHNodXRkb3duAAMJAQEhAQUIaXNBY3RpdmUJAAIBCQCsAgICIkRBcHAgaXMgYWxyZWFkeSBzdXNwZW5kZWQuIENhdXNlOiAJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUIa2V5Q2F1c2UCGnRoZSBjYXVzZSB3YXNuJ3Qgc3BlY2lmaWVkAwkBASEBCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQxhZG1pblB1YktleTEJAMwIAgUMYWRtaW5QdWJLZXkyCQDMCAIFDGFkbWluUHViS2V5MwUDbmlsCAUBaQ9jYWxsZXJQdWJsaWNLZXkJAAIBAiFPbmx5IGFkbWluIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24JAQdzdXNwZW5kAQIPUGF1c2VkIGJ5IGFkbWluAWkBCGFjdGl2YXRlAAMFCGlzQWN0aXZlCQACAQIWREFwcCBpcyBhbHJlYWR5IGFjdGl2ZQMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUMYWRtaW5QdWJLZXkxCQDMCAIFDGFkbWluUHViS2V5MgkAzAgCBQxhZG1pblB1YktleTMFA25pbAgFAWkPY2FsbGVyUHVibGljS2V5CQACAQIhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uCQDMCAIJAQxCb29sZWFuRW50cnkCBQlrZXlBY3RpdmUGCQDMCAIJAQtEZWxldGVFbnRyeQEFCGtleUNhdXNlBQNuaWwBAnR4AQZ2ZXJpZnkABAckbWF0Y2gwBQJ0eAQSYWRtaW5QdWJLZXkxU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUMYWRtaW5QdWJLZXkxAAEAAAQSYWRtaW5QdWJLZXkyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUMYWRtaW5QdWJLZXkyAAEAAAQSYWRtaW5QdWJLZXkzU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUMYWRtaW5QdWJLZXkzAAEAAAkAZwIJAGQCCQBkAgUSYWRtaW5QdWJLZXkxU2lnbmVkBRJhZG1pblB1YktleTJTaWduZWQFEmFkbWluUHViS2V5M1NpZ25lZAACGZjENw==", "height": 2110705, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8aj6ctZSyB1UhFKRbgr288ak5HxUEdrMtUwMNo3W9Mkc Next: FZg71GqrEyHpHMkVbxzzT35ANrz89A2CUZuwfsnBAJYa Diff:
OldNewDifferences
513513 let cd = bH(X, bK.caller)
514514 let ce = (cd + bz)
515515 let cf = [IntegerEntry((((X + "_") + toString(bK.caller)) + q), bA), IntegerEntry((((X + "_") + toString(bK.caller)) + p), bZ), IntegerEntry((X + d), cc), IntegerEntry((X + n), by), IntegerEntry((X + o), height), IntegerEntry((((X + "_") + toString(bK.caller)) + s), ce), IntegerEntry((((X + "_") + toString(bK.caller)) + t), bz), IntegerEntry((((X + "_") + toString(bK.caller)) + u), ca)]
516- if ((0 >= bp))
517- then throw("You can't lock token")
518- else if (!(am))
519- then throw("DApp is inactive at this moment")
520- else if (!(bE(X, bF)))
521- then throw("Incorrect pmtAssetId")
522- else if ((1 > 0))
523- then {
524- let cg = ((((ay(Address(fromBase58String(X))) - ai) + 1) / aj) - 1)
525- let ch = split(getStringValue(M, (((toString(bK.caller) + "_") + X) + "_user_pool_struc")), "_")
526- let ci = split(getStringValue(M, (X + "_pool_struc")), "_")
527- let cj = split(valueOrElse(getString(M, (((toString(bK.caller) + "_") + X) + C)), ""), "_")
528- let ck = split(valueOrElse(getString(M, (X + B)), ""), "_")
529- let cl = bi
530- let cm = if ((toString(an) == ch[2]))
531- then valueOrElse(parseInt(cj[0]), 0)
532- else valueOrElse(parseInt(ch[1]), 0)
533- let cn = if ((toString(an) == ci[2]))
534- then valueOrElse(parseInt(ck[0]), 0)
535- else valueOrElse(parseInt(ci[1]), 0)
536- let co = bB(X)
537- if ((cm != 0))
538- then {
539- let cp = aB(addressFromStringValue(X))
540- let cq = (fraction(cp, cm, cn) - cl)
541- if (if ((size(cj) > 1))
542- then (valueOrElse(parseInt(cj[1]), 0) >= cg)
543- else false)
544- then throw("You can't share token")
545- else if ((bp > cp))
546- then throw(("You can't share token more than " + toString(cp)))
547- else if ((cq > 0))
548- then if ((fraction(99, (aE(bF) + bp), 100) > cc))
549- then throw("Balance of share-token is greater than totalAmount")
550- else if ((cb == 0))
551- then (cf ++ [Reissue(aw, co, true), ScriptTransfer(L, co, aw)])
552- else if ((cq >= bp))
553- then cf
554- else throw(("Your maximum share token is " + toString(cq)))
555- else throw("You can't share token")
556- }
557- else throw("Your amount of token less than 0")
558- }
559- else cf
516+ if (if (ax(Address(fromBase58String(X))))
517+ then (ay(Address(fromBase58String(X))) > height)
518+ else false)
519+ then {
520+ let cg = ((((ay(Address(fromBase58String(X))) - ai) + 1) / aj) - 1)
521+ let ch = split(getStringValue(M, (((toString(bK.caller) + "_") + X) + "_user_pool_struc")), "_")
522+ let ci = split(getStringValue(M, (X + "_pool_struc")), "_")
523+ let cj = split(valueOrElse(getString(M, (((toString(bK.caller) + "_") + X) + C)), ""), "_")
524+ let ck = split(valueOrElse(getString(M, (X + B)), ""), "_")
525+ let cl = bi
526+ let cm = if ((toString(an) == ch[2]))
527+ then valueOrElse(parseInt(cj[0]), 0)
528+ else valueOrElse(parseInt(ch[1]), 0)
529+ let cn = if ((toString(an) == ci[2]))
530+ then valueOrElse(parseInt(ck[0]), 0)
531+ else valueOrElse(parseInt(ci[1]), 0)
532+ let co = bB(X)
533+ let cp = aB(addressFromStringValue(X))
534+ let cq = (fraction(cp, cm, cn) - cl)
535+ if ((fraction(99, (aE(bF) + bp), 100) > cc))
536+ then throw("Balance of share-token is greater than totalAmount")
537+ else throw("kek")
538+ }
539+ else throw("Your amount of token less than 0")
560540 }
561541
562542
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'GFmKZ2naZFRoCvNbwKAQVGmLb1uBeWGDgFabdGBuZiuy'
55
66 let b = base58'GmJXRyhRA79g8yUGgKBAVdnFfQFDMjQG98b1MmLDh5kk'
77
88 let c = base58'CFhbV6h41hVjbGHudGtS3fYUv7QAKRxFQzKNtx4B5PqP'
99
1010 let d = "_total_share_tokens_locked"
1111
1212 let e = "share_limit_on_first_harvest"
1313
1414 let f = "active"
1515
1616 let g = "shutdown_cause"
1717
1818 let h = "_current_pool_fraction_reward"
1919
2020 let i = "_previous_pool_fraction_reward"
2121
2222 let j = "_pool_reward_update_height"
2323
2424 let k = "total_reward_per_block_current"
2525
2626 let l = "total_reward_per_block_previous"
2727
2828 let m = "reward_update_height"
2929
3030 let n = "_last_interest"
3131
3232 let o = "_last_interest_height"
3333
3434 let p = "_share_tokens_locked"
3535
3636 let q = "_last_interest"
3737
3838 let r = "SWOP_id"
3939
4040 let s = "_SWOP_claimed_amount"
4141
4242 let t = "_SWOP_last_claimed_amount"
4343
4444 let u = "_available_SWOP"
4545
4646 let v = "farming_start_height"
4747
4848 let w = "apy"
4949
5050 let x = "previous_total_vote_SWOP"
5151
5252 let y = "swop_year_emission"
5353
5454 let z = "A_asset_balance"
5555
5656 let A = "B_asset_balance"
5757
5858 let B = "_harvest_pool_activeVote_struc"
5959
6060 let C = "_harvest_user_pool_activeVote_struc"
6161
6262 let D = "share_limit_on_first_harvest"
6363
6464 let E = "A_asset_id"
6565
6666 let F = "B_asset_id"
6767
6868 let G = "first_harvest_height"
6969
7070 let H = "first_harvest"
7171
7272 let I = "sum_reward_previous"
7373
7474 let J = "sum_reward_current"
7575
7676 let K = Address(base58'3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU')
7777
7878 let L = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
7979
8080 let M = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
8181
8282 let N = Address(base58'3NAGTtZz6WpupSN89NZD5rMZwwziZEg4Kx4')
8383
8484 let O = 10106
8585
8686 let P = 10000000000
8787
8888 let Q = 10
8989
9090 let R = 1000
9191
9292 let S = 100000
9393
9494 let T = 1000000
9595
9696 let U = 100000000
9797
9898 let V = 100000000000
9999
100100 func W (X) = getStringValue(X, E)
101101
102102
103103 func Y (X) = getStringValue(X, F)
104104
105105
106106 func Z (X) = if ((W(X) == "WAVES"))
107107 then unit
108108 else fromBase58String(W(X))
109109
110110
111111 func aa (X) = if ((Y(X) == "WAVES"))
112112 then unit
113113 else fromBase58String(Y(X))
114114
115115
116116 let ab = "base_period"
117117
118118 let ac = "period_length"
119119
120120 let ad = "start_height"
121121
122122 let ae = "first_harvest_height"
123123
124124 let af = "duration_full_vote_power"
125125
126126 let ag = "min_vote_power"
127127
128128 let ah = valueOrErrorMessage(getInteger(M, ab), "Empty kBasePeriod")
129129
130130 let ai = valueOrErrorMessage(getInteger(M, ad), "Empty kStartHeight")
131131
132132 let aj = valueOrErrorMessage(getInteger(M, ac), "Empty kPeriodLength")
133133
134134 let ak = valueOrErrorMessage(getInteger(M, af), "Empty kDurationFullVotePower")
135135
136136 let al = valueOrErrorMessage(getInteger(M, ag), "Empty kMinVotePower")
137137
138138 let am = getBooleanValue(this, f)
139139
140140 let an = (ah + ((height - ai) / aj))
141141
142142 func ao (X) = valueOrElse(getIntegerValue(X, D), 0)
143143
144144
145145 let ap = getIntegerValue(this, w)
146146
147147 let aq = getIntegerValue(this, y)
148148
149149 func ar (X) = {
150150 let as = Z(X)
151151 if ($isInstanceOf(as, "ByteVector"))
152152 then {
153153 let at = as
154154 value(assetInfo(at)).name
155155 }
156156 else if ($isInstanceOf(as, "Unit"))
157157 then {
158158 let au = as
159159 "WAVES"
160160 }
161161 else throw("Match error")
162162 }
163163
164164
165165 func av (X) = {
166166 let as = aa(X)
167167 if ($isInstanceOf(as, "ByteVector"))
168168 then {
169169 let at = as
170170 value(assetInfo(at)).name
171171 }
172172 else if ($isInstanceOf(as, "Unit"))
173173 then {
174174 let au = as
175175 "WAVES"
176176 }
177177 else throw("Match error")
178178 }
179179
180180
181181 let aw = fromBase58String(getStringValue(this, r))
182182
183183 func ax (X) = valueOrElse(getBoolean(X, H), false)
184184
185185
186186 func ay (X) = valueOrElse(getInteger(X, G), 0)
187187
188188
189189 func az (X) = valueOrErrorMessage(getInteger(X, z), ("No data on the key: " + z))
190190
191191
192192 func aA (X) = valueOrErrorMessage(getInteger(X, A), ("No data on the key: " + A))
193193
194194
195195 func aB (X) = valueOrErrorMessage(getInteger(X, e), ("No data on the key: " + e))
196196
197197
198198 func aC (X) = valueOrErrorMessage(getInteger(this, (X + d)), (("No data on the key: " + X) + d))
199199
200200
201201 func aD (X) = fromBase58String(getStringValue(value(addressFromString(X)), "share_asset_id"))
202202
203203
204204 func aE (aF) = {
205205 let as = aF
206206 if ($isInstanceOf(as, "ByteVector"))
207207 then {
208208 let at = as
209209 assetBalance(this, at)
210210 }
211211 else if ($isInstanceOf(as, "Unit"))
212212 then {
213213 let au = as
214214 wavesBalance(this).available
215215 }
216216 else throw("Match error")
217217 }
218218
219219
220220 func aG (aF) = {
221221 let as = aF
222222 if ($isInstanceOf(as, "ByteVector"))
223223 then {
224224 let at = as
225225 let aH = toBase58String(at)
226226 let aI = valueOrErrorMessage(assetInfo(at), (("Asset " + aH) + " doesn't exist"))
227227 $Tuple3(aH, aI.name, aI.decimals)
228228 }
229229 else if ($isInstanceOf(as, "Unit"))
230230 then {
231231 let au = as
232232 $Tuple3("WAVES", "WAVES", 8)
233233 }
234234 else throw("Match error")
235235 }
236236
237237
238238 func aJ (aK,aL) = {
239239 let aM = value(assetInfo(aK)).decimals
240240 let aN = value(assetInfo(aL)).decimals
241241 let aO = ((aN - aM) + 8)
242242 pow(10, 0, aO, 0, 0, DOWN)
243243 }
244244
245245
246246 func aP (X,aQ) = valueOrElse(getInteger(this, (((X + "_") + toString(aQ)) + u)), 0)
247247
248248
249249 func aR (X) = {
250250 let aS = valueOrErrorMessage(getInteger(K, k), ((("No data on the key: " + k) + " at address ") + toString(K)))
251251 let aT = valueOrErrorMessage(getInteger(K, l), ((("No data on the key: " + l) + " at address ") + toString(K)))
252252 let aU = valueOrErrorMessage(getInteger(K, (X + h)), (((("No data on the key: " + X) + h) + " at address ") + toString(K)))
253253 let aV = valueOrErrorMessage(getInteger(K, m), ((("No data on the key: " + m) + " at address ") + toString(K)))
254254 let aW = valueOrElse(getInteger(K, (X + j)), 0)
255255 let aX = valueOrErrorMessage(getInteger(K, (X + i)), (((("No data on the key: " + X) + i) + " at address ") + toString(K)))
256256 let aY = fraction(aS, aU, P)
257257 let aZ = fraction(aT, aX, P)
258258 if (if ((aY > aS))
259259 then true
260260 else (aZ > aT))
261261 then throw("rewardPoolCurrent > totalRewardPerBlockCurrent or rewardPoolPrevious > totalRewardPerBlockPrevious")
262262 else $Tuple4(aY, aV, aZ, aW)
263263 }
264264
265265
266266 func ba (X) = {
267267 let bb = valueOrErrorMessage(getInteger(this, (X + n)), (("No data on the key: " + X) + n))
268268 let bc = valueOrElse(getInteger(this, (X + o)), height)
269269 $Tuple2(bc, bb)
270270 }
271271
272272
273273 func bd (X,be) = {
274274 let bf = getInteger(this, (((X + "_") + toString(be)) + q))
275275 let bg = getInteger(this, (((X + "_") + toString(be)) + p))
276276 let bb = valueOrErrorMessage(getInteger(this, (X + n)), (("No data on the key: " + X) + n))
277277 let bh = {
278278 let as = bf
279279 if ($isInstanceOf(as, "Int"))
280280 then {
281281 let bf = as
282282 bf
283283 }
284284 else bb
285285 }
286286 let bi = {
287287 let as = bg
288288 if ($isInstanceOf(as, "Int"))
289289 then {
290290 let bg = as
291291 bg
292292 }
293293 else 0
294294 }
295295 $Tuple2(bh, bi)
296296 }
297297
298298
299299 func bj (bc,aV,aW,bb,bk,bl,bm,bn,bo,bp) = if ((bl == 0))
300300 then 0
301301 else if ((aW != 0))
302302 then if (if ((aV > height))
303303 then (aV == aW)
304304 else false)
305305 then {
306306 let bq = (bm * (height - bc))
307307 (bb + fraction(bq, bo, bl))
308308 }
309309 else if (if ((height > aV))
310310 then (aV != aW)
311311 else false)
312312 then {
313313 let bq = (bm * (height - bc))
314314 (bb + fraction(bq, bo, bl))
315315 }
316316 else if (if (if ((height > aV))
317317 then (aV == aW)
318318 else false)
319319 then (bc > aV)
320320 else false)
321321 then {
322322 let bq = (bk * (height - bc))
323323 (bb + fraction(bq, bo, bl))
324324 }
325325 else {
326326 let br = (bm * (aV - bc))
327327 let bs = (bb + fraction(br, bo, bl))
328328 let bq = (bk * (height - aV))
329329 (bs + fraction(bq, bo, bl))
330330 }
331331 else if ((aV > height))
332332 then {
333333 let bq = (bm * (height - bc))
334334 (bb + fraction(bq, bo, bl))
335335 }
336336 else if ((bc > aV))
337337 then {
338338 let bq = (bk * (height - bc))
339339 (bb + fraction(bq, bo, bl))
340340 }
341341 else {
342342 let br = (bm * (aV - bc))
343343 let bs = (bb + fraction(br, bo, bl))
344344 let bq = (bk * (height - aV))
345345 (bs + fraction(bq, bo, bl))
346346 }
347347
348348
349349 func bt (X,bu,bp) = {
350350 let bn = aD(X)
351351 let bo = aJ(aw, bn)
352352 let bl = aC(X)
353353 let bv = ba(X)
354354 let bc = bv._1
355355 let bb = bv._2
356356 let bw = aR(X)
357357 let bk = bw._1
358358 let aV = bw._2
359359 let bm = bw._3
360360 let aW = bw._4
361361 let bx = bd(X, bu)
362362 let bf = bx._1
363363 let bi = bx._2
364364 let by = bj(bc, aV, aW, bb, bk, bl, bm, bn, bo, bp)
365365 let bz = fraction(bi, (by - bf), bo)
366366 let bA = by
367367 $Tuple4(bA, by, bz, bi)
368368 }
369369
370370
371371 func bB (X) = {
372372 let bC = ba(X)
373373 let bc = bC._1
374374 let bb = bC._2
375375 let bD = aR(X)
376376 let bk = bD._1
377377 let aV = bD._2
378378 let bm = bD._3
379379 let aW = bD._4
380380 let bl = aC(X)
381381 if (if ((bl == 0))
382382 then (aW == 0)
383383 else false)
384384 then if ((aV > height))
385385 then {
386386 let bq = (bm * (height - bc))
387387 bq
388388 }
389389 else if ((bc > aV))
390390 then {
391391 let bq = (bk * (height - bc))
392392 bq
393393 }
394394 else {
395395 let br = (bm * (aV - bc))
396396 let bq = (bk * (height - aV))
397397 (bq + br)
398398 }
399399 else if (if ((bl == 0))
400400 then (aW != 0)
401401 else false)
402402 then if (if ((aV > height))
403403 then (aV == aW)
404404 else false)
405405 then {
406406 let bq = (bm * (height - bc))
407407 bq
408408 }
409409 else if (if ((height > aV))
410410 then (aV != aW)
411411 else false)
412412 then {
413413 let bq = (bm * (height - bc))
414414 bq
415415 }
416416 else if (if (if ((height > aV))
417417 then (aV == aW)
418418 else false)
419419 then (bc > aV)
420420 else false)
421421 then {
422422 let bq = (bk * (height - bc))
423423 bq
424424 }
425425 else {
426426 let br = (bm * (aV - bc))
427427 let bq = (bk * (height - aV))
428428 (bq + br)
429429 }
430430 else 0
431431 }
432432
433433
434434 func bE (X,bF) = {
435435 let bG = fromBase58String(getStringValue(value(addressFromString(X)), "share_asset_id"))
436436 if ((bF == bG))
437437 then true
438438 else false
439439 }
440440
441441
442442 func bH (X,aQ) = valueOrElse(getInteger(this, (((X + "_") + toString(aQ)) + s)), 0)
443443
444444
445445 func bI (bJ) = [BooleanEntry(f, false), StringEntry(g, bJ)]
446446
447447
448448 @Callable(bK)
449449 func init (bL) = if (isDefined(getString(this, r)))
450450 then throw("SWOP already initialized")
451451 else {
452452 let bM = 100000000000000
453453 let bN = Issue("SWOP", "SWOP protocol token", bM, 8, true)
454454 let bO = calculateAssetId(bN)
455455 [BooleanEntry(f, true), Issue("SWOP", "SWOP protocol token", bM, 8, true), StringEntry(r, toBase58String(bO))]
456456 }
457457
458458
459459
460460 @Callable(bK)
461461 func initPoolShareFarming (X) = if ((bK.caller != this))
462462 then throw("Only the DApp itself can call this function")
463463 else {
464464 let bP = aR(X)
465465 let bQ = bP._1
466466 let aV = bP._2
467467 let bm = bP._3
468468 let aW = bP._4
469469 [IntegerEntry((X + d), 0), IntegerEntry((X + n), 0), IntegerEntry((X + o), height)]
470470 }
471471
472472
473473
474474 @Callable(bK)
475475 func updatePoolInterest (X) = if ((bK.caller != L))
476476 then throw("Only the Admin itself can call this function")
477477 else if (!(am))
478478 then throw("DApp is inactive at this moment")
479479 else {
480480 let bR = bt(X, N, 0)
481481 let bA = bR._1
482482 let by = bR._2
483483 let bz = bR._3
484484 let bi = bR._4
485485 let bS = aR(X)
486486 let bQ = bS._1
487487 let aV = bS._2
488488 let bm = bS._3
489489 let aW = bS._4
490490 [IntegerEntry((X + n), bA), IntegerEntry((X + o), height)]
491491 }
492492
493493
494494
495495 @Callable(bK)
496496 func lockShareTokens (X) = {
497497 let bT = $Tuple2(bK.payments[0].amount, bK.payments[0].assetId)
498498 let bp = bT._1
499499 let bF = bT._2
500500 let bU = aG(bF)
501501 let bV = bU._1
502502 let bW = bU._2
503503 let bX = bU._3
504504 let bY = bt(X, bK.caller, bp)
505505 let bA = bY._1
506506 let by = bY._2
507507 let bz = bY._3
508508 let bi = bY._4
509509 let bZ = (bi + bp)
510510 let ca = (aP(X, bK.caller) + bz)
511511 let cb = aC(X)
512512 let cc = (cb + bp)
513513 let cd = bH(X, bK.caller)
514514 let ce = (cd + bz)
515515 let cf = [IntegerEntry((((X + "_") + toString(bK.caller)) + q), bA), IntegerEntry((((X + "_") + toString(bK.caller)) + p), bZ), IntegerEntry((X + d), cc), IntegerEntry((X + n), by), IntegerEntry((X + o), height), IntegerEntry((((X + "_") + toString(bK.caller)) + s), ce), IntegerEntry((((X + "_") + toString(bK.caller)) + t), bz), IntegerEntry((((X + "_") + toString(bK.caller)) + u), ca)]
516- if ((0 >= bp))
517- then throw("You can't lock token")
518- else if (!(am))
519- then throw("DApp is inactive at this moment")
520- else if (!(bE(X, bF)))
521- then throw("Incorrect pmtAssetId")
522- else if ((1 > 0))
523- then {
524- let cg = ((((ay(Address(fromBase58String(X))) - ai) + 1) / aj) - 1)
525- let ch = split(getStringValue(M, (((toString(bK.caller) + "_") + X) + "_user_pool_struc")), "_")
526- let ci = split(getStringValue(M, (X + "_pool_struc")), "_")
527- let cj = split(valueOrElse(getString(M, (((toString(bK.caller) + "_") + X) + C)), ""), "_")
528- let ck = split(valueOrElse(getString(M, (X + B)), ""), "_")
529- let cl = bi
530- let cm = if ((toString(an) == ch[2]))
531- then valueOrElse(parseInt(cj[0]), 0)
532- else valueOrElse(parseInt(ch[1]), 0)
533- let cn = if ((toString(an) == ci[2]))
534- then valueOrElse(parseInt(ck[0]), 0)
535- else valueOrElse(parseInt(ci[1]), 0)
536- let co = bB(X)
537- if ((cm != 0))
538- then {
539- let cp = aB(addressFromStringValue(X))
540- let cq = (fraction(cp, cm, cn) - cl)
541- if (if ((size(cj) > 1))
542- then (valueOrElse(parseInt(cj[1]), 0) >= cg)
543- else false)
544- then throw("You can't share token")
545- else if ((bp > cp))
546- then throw(("You can't share token more than " + toString(cp)))
547- else if ((cq > 0))
548- then if ((fraction(99, (aE(bF) + bp), 100) > cc))
549- then throw("Balance of share-token is greater than totalAmount")
550- else if ((cb == 0))
551- then (cf ++ [Reissue(aw, co, true), ScriptTransfer(L, co, aw)])
552- else if ((cq >= bp))
553- then cf
554- else throw(("Your maximum share token is " + toString(cq)))
555- else throw("You can't share token")
556- }
557- else throw("Your amount of token less than 0")
558- }
559- else cf
516+ if (if (ax(Address(fromBase58String(X))))
517+ then (ay(Address(fromBase58String(X))) > height)
518+ else false)
519+ then {
520+ let cg = ((((ay(Address(fromBase58String(X))) - ai) + 1) / aj) - 1)
521+ let ch = split(getStringValue(M, (((toString(bK.caller) + "_") + X) + "_user_pool_struc")), "_")
522+ let ci = split(getStringValue(M, (X + "_pool_struc")), "_")
523+ let cj = split(valueOrElse(getString(M, (((toString(bK.caller) + "_") + X) + C)), ""), "_")
524+ let ck = split(valueOrElse(getString(M, (X + B)), ""), "_")
525+ let cl = bi
526+ let cm = if ((toString(an) == ch[2]))
527+ then valueOrElse(parseInt(cj[0]), 0)
528+ else valueOrElse(parseInt(ch[1]), 0)
529+ let cn = if ((toString(an) == ci[2]))
530+ then valueOrElse(parseInt(ck[0]), 0)
531+ else valueOrElse(parseInt(ci[1]), 0)
532+ let co = bB(X)
533+ let cp = aB(addressFromStringValue(X))
534+ let cq = (fraction(cp, cm, cn) - cl)
535+ if ((fraction(99, (aE(bF) + bp), 100) > cc))
536+ then throw("Balance of share-token is greater than totalAmount")
537+ else throw("kek")
538+ }
539+ else throw("Your amount of token less than 0")
560540 }
561541
562542
563543
564544 @Callable(bK)
565545 func withdrawShareTokens (X,cr) = {
566546 let cs = fromBase58String(getStringValue(value(addressFromString(X)), "share_asset_id"))
567547 let ct = bt(X, bK.caller, 1)
568548 let bA = ct._1
569549 let by = ct._2
570550 let bz = ct._3
571551 let bi = ct._4
572552 let bZ = (bi - cr)
573553 let ca = (aP(X, bK.caller) + bz)
574554 let cb = aC(X)
575555 let cc = (cb - cr)
576556 let cd = bH(X, bK.caller)
577557 let ce = (cd + bz)
578558 if ((cr > bi))
579559 then throw("Withdraw amount more then user locked amount")
580560 else if (!(am))
581561 then throw("DApp is inactive at this moment")
582562 else if ((cr > bi))
583563 then throw("Withdraw amount more then user locked amount")
584564 else if ((fraction(99, (aE(cs) - cr), 100) > cc))
585565 then throw("Balance of share-token is greater than totalAmount")
586566 else [IntegerEntry((((X + "_") + toString(bK.caller)) + q), bA), IntegerEntry((((X + "_") + toString(bK.caller)) + p), bZ), IntegerEntry((X + n), by), IntegerEntry((X + o), height), IntegerEntry((X + d), cc), IntegerEntry((((X + "_") + toString(bK.caller)) + u), ca), IntegerEntry((((X + "_") + toString(bK.caller)) + s), ce), IntegerEntry((((X + "_") + toString(bK.caller)) + t), bz), ScriptTransfer(bK.caller, cr, cs)]
587567 }
588568
589569
590570
591571 @Callable(bK)
592572 func claim (X) = {
593573 let cs = fromBase58String(getStringValue(value(addressFromString(X)), "share_asset_id"))
594574 let bl = aC(X)
595575 let cu = ba(X)
596576 let bc = cu._1
597577 let bb = cu._2
598578 let cv = aR(X)
599579 let bk = cv._1
600580 let aV = cv._2
601581 let bm = cv._3
602582 let aW = cv._4
603583 let cw = bt(X, bK.caller, 1)
604584 let bA = cw._1
605585 let by = cw._2
606586 let bz = cw._3
607587 let bi = cw._4
608588 let cx = (aP(X, bK.caller) + bz)
609589 let cd = bH(X, bK.caller)
610590 let ce = (cd + bz)
611591 if ((cx == 0))
612592 then throw("You have 0 available SWOP")
613593 else if (!(am))
614594 then throw("DApp is inactive at this moment")
615595 else if ((cx == 0))
616596 then throw("You have 0 available SWOP")
617597 else if ((fraction(99, aE(cs), 100) > bl))
618598 then throw("Balance of share-token is greater than totalAmount")
619599 else [IntegerEntry((((X + "_") + toString(bK.caller)) + q), bA), IntegerEntry((X + n), by), IntegerEntry((X + o), height), IntegerEntry((((X + "_") + toString(bK.caller)) + u), 0), Reissue(aw, cx, true), IntegerEntry((((X + "_") + toString(bK.caller)) + s), ce), IntegerEntry((((X + "_") + toString(bK.caller)) + t), bz), ScriptTransfer(bK.caller, cx, aw)]
620600 }
621601
622602
623603
624604 @Callable(bK)
625605 func shutdown () = if (!(am))
626606 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, g), "the cause wasn't specified")))
627607 else if (!(containsElement([a, b, c], bK.callerPublicKey)))
628608 then throw("Only admin can call this function")
629609 else bI("Paused by admin")
630610
631611
632612
633613 @Callable(bK)
634614 func activate () = if (am)
635615 then throw("DApp is already active")
636616 else if (!(containsElement([a, b, c], bK.callerPublicKey)))
637617 then throw("Only admin can call this function")
638618 else [BooleanEntry(f, true), DeleteEntry(g)]
639619
640620
641621 @Verifier(cy)
642622 func cz () = {
643623 let as = cy
644624 let cA = if (sigVerify(cy.bodyBytes, cy.proofs[0], a))
645625 then 1
646626 else 0
647627 let cB = if (sigVerify(cy.bodyBytes, cy.proofs[1], b))
648628 then 1
649629 else 0
650630 let cC = if (sigVerify(cy.bodyBytes, cy.proofs[2], c))
651631 then 1
652632 else 0
653633 (((cA + cB) + cC) >= 2)
654634 }
655635

github/deemru/w8io/026f985 
66.90 ms