tx · Az8odyb8MUp3kWgvgvKHUXhrupyURcN5pobvRTvAvmz1

3N98Ngyaszw66EakvWRCiZ771ja2RDgNaxV:  -0.02800000 Waves

2023.01.12 16:12 [2401783] smart account 3N98Ngyaszw66EakvWRCiZ771ja2RDgNaxV > SELF 0.00000000 Waves

{ "type": 13, "id": "Az8odyb8MUp3kWgvgvKHUXhrupyURcN5pobvRTvAvmz1", "fee": 2800000, "feeAssetId": null, "timestamp": 1673529193898, "version": 1, "sender": "3N98Ngyaszw66EakvWRCiZ771ja2RDgNaxV", "senderPublicKey": "F4oaTkX67vt2MEsXLJJ8a7gaURGjW7x8fkvGfdEiH5oy", "proofs": [ "24avv5U6pfBmWEgUdVnKaDi7x8Np4SyAvHiiTw42HxzHZJpCRcCvuk7SMuMFfFfxUqDLz4X5Gjra6KqefdYmKqBQ" ], "script": "base64:BgInCAISAwoBCBIAEgcKBQgICAgIEgASBAoCCAgSABIECgIICBIDCgEIQQAJc2VwYXJhdG9yAgJfXwASc2hhcmVBc3NldERlY2ltYWxzAAgAC3dhdmVzU3RyaW5nAgVXQVZFUwAHc2NhbGUxOACAgJC7utat8A0ADXNjYWxlMThCaWdJbnQJALYCAQUHc2NhbGUxOAEHd3JhcEVycgEDbXNnCQC5CQIJAMwIAgIWbHBfc3Rha2luZ19wb29scy5yaWRlOgkAzAgCBQNtc2cFA25pbAIBIAEIdGhyb3dFcnIBA21zZwkAAgEJAQd3cmFwRXJyAQUDbXNnARJlcnJLZXlJc05vdERlZmluZWQCB2FkZHJlc3MDa2V5CQEHd3JhcEVycgEJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQxnZXRTdHJPckZhaWwCB2FkZHJlc3MDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUHYWRkcmVzcwUDa2V5CQESZXJyS2V5SXNOb3REZWZpbmVkAgUHYWRkcmVzcwUDa2V5AQxnZXRJbnRPckZhaWwCB2FkZHJlc3MDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUHYWRkcmVzcwUDa2V5CQESZXJyS2V5SXNOb3REZWZpbmVkAgUHYWRkcmVzcwUDa2V5AQxwYXJzZUFzc2V0SWQBBWlucHV0AwkAAAIFBWlucHV0BQt3YXZlc1N0cmluZwUEdW5pdAkA2QQBBQVpbnB1dAEPYXNzZXRJZFRvU3RyaW5nAQVpbnB1dAMJAAACBQVpbnB1dAUEdW5pdAULd2F2ZXNTdHJpbmcJANgEAQkBBXZhbHVlAQUFaW5wdXQBDmVuc3VyZVBvc2l0aXZlAQF2AwkAZwIFAXYAAAUBdgkBCHRocm93RXJyAQIYdmFsdWUgc2hvdWxkIGJlIHBvc2l0aXZlARJrZXlGYWN0b3J5Q29udHJhY3QACQC5CQIJAMwIAgICJXMJAMwIAgIPZmFjdG9yeUNvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgEUa2V5THBTdGFraW5nQ29udHJhY3QACQC5CQIJAMwIAgICJXMJAMwIAgIRbHBTdGFraW5nQ29udHJhY3QFA25pbAUJc2VwYXJhdG9yARJrZXlTdGFraW5nQ29udHJhY3QACQC5CQIJAMwIAgICJXMJAMwIAgIPc3Rha2luZ0NvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgETa2V5Qm9vc3RpbmdDb250cmFjdAAJALkJAgkAzAgCAgIlcwkAzAgCAhBib29zdGluZ0NvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgEPa2V5U3dhcENvbnRyYWN0AAkAuQkCCQDMCAICAiVzCQDMCAICDHN3YXBDb250cmFjdAUDbmlsBQlzZXBhcmF0b3IBFmtleUFzc2V0c1N0b3JlQ29udHJhY3QACQC5CQIJAMwIAgICJXMJAMwIAgITYXNzZXRzU3RvcmVDb250cmFjdAUDbmlsBQlzZXBhcmF0b3IBDmtleVVzZG5Bc3NldElkAAkAuQkCCQDMCAICAiVzCQDMCAICC3VzZG5Bc3NldElkBQNuaWwFCXNlcGFyYXRvcgEMa2V5V3hBc3NldElkAAkAuQkCCQDMCAICAiVzCQDMCAICCXd4QXNzZXRJZAUDbmlsBQlzZXBhcmF0b3IBC2tleVNodXRkb3duAAkAuQkCCQDMCAICAiVzCQDMCAICCHNodXRkb3duBQNuaWwFCXNlcGFyYXRvcgELa2V5TWluRGVsYXkACQC5CQIJAMwIAgICJXMJAMwIAgIIbWluRGVsYXkFA25pbAUJc2VwYXJhdG9yAQ9rZXlMb2NrRnJhY3Rpb24ACQC5CQIJAMwIAgICJXMJAMwIAgIMbG9ja0ZyYWN0aW9uBQNuaWwFCXNlcGFyYXRvcgEPa2V5U2hhcmVBc3NldElkAQtiYXNlQXNzZXRJZAkAuQkCCQDMCAICBCVzJXMJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFC2Jhc2VBc3NldElkCQDMCAICDHNoYXJlQXNzZXRJZAUDbmlsBQlzZXBhcmF0b3IBDmtleUJhc2VBc3NldElkAQxzaGFyZUFzc2V0SWQJALkJAgkAzAgCAgQlcyVzCQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQxzaGFyZUFzc2V0SWQJAMwIAgILYmFzZUFzc2V0SWQFA25pbAUJc2VwYXJhdG9yAQlrZXlQZXJpb2QBC2Jhc2VBc3NldElkCQC5CQIJAMwIAgIEJXMlcwkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQULYmFzZUFzc2V0SWQJAMwIAgIGcGVyaW9kBQNuaWwFCXNlcGFyYXRvcgEUa2V5UGVyaW9kU3RhcnRIZWlnaHQCC2Jhc2VBc3NldElkBnBlcmlvZAkAuQkCCQDMCAICBiVzJXMlZAkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQULYmFzZUFzc2V0SWQJAMwIAgIRcGVyaW9kU3RhcnRIZWlnaHQJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUJc2VwYXJhdG9yARtrZXlCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQBC2Jhc2VBc3NldElkCQC5CQIJAMwIAgIEJXMlcwkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQULYmFzZUFzc2V0SWQJAMwIAgIYYmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0BQNuaWwFCXNlcGFyYXRvcgEca2V5U2hhcmVBc3NldEFtb3VudFRvQ29udmVydAELYmFzZUFzc2V0SWQJALkJAgkAzAgCAgQlcyVzCQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQtiYXNlQXNzZXRJZAkAzAgCAhlzaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0BQNuaWwFCXNlcGFyYXRvcgEfa2V5VXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydAILYmFzZUFzc2V0SWQLdXNlckFkZHJlc3MJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFC2Jhc2VBc3NldElkCQDMCAIJAKUIAQULdXNlckFkZHJlc3MJAMwIAgIYYmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0BQNuaWwFCXNlcGFyYXRvcgEla2V5VXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZAILYmFzZUFzc2V0SWQLdXNlckFkZHJlc3MJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQULYmFzZUFzc2V0SWQJAMwIAgkApQgBBQt1c2VyQWRkcmVzcwkAzAgCAhhiYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQJAMwIAgIGcGVyaW9kBQNuaWwFCXNlcGFyYXRvcgEga2V5VXNlclNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQCC2Jhc2VBc3NldElkC3VzZXJBZGRyZXNzCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQtiYXNlQXNzZXRJZAkAzAgCCQClCAEFC3VzZXJBZGRyZXNzCQDMCAICGXNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQFA25pbAUJc2VwYXJhdG9yASZrZXlVc2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZAILYmFzZUFzc2V0SWQLdXNlckFkZHJlc3MJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQULYmFzZUFzc2V0SWQJAMwIAgkApQgBBQt1c2VyQWRkcmVzcwkAzAgCAhlzaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0CQDMCAICBnBlcmlvZAUDbmlsBQlzZXBhcmF0b3IBDmtleVByaWNlUGVyaW9kAgtiYXNlQXNzZXRJZAZwZXJpb2QJALkJAgkAzAgCAgYlcyVzJWQJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFC2Jhc2VBc3NldElkCQDMCAICBXByaWNlCQDMCAIJAKQDAQUGcGVyaW9kBQNuaWwFCXNlcGFyYXRvcgEPa2V5UHJpY2VIaXN0b3J5AQtiYXNlQXNzZXRJZAkAuQkCCQDMCAICCiVzJXMlcyVkJWQJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFC2Jhc2VBc3NldElkCQDMCAICBXByaWNlCQDMCAICB2hpc3RvcnkJAMwIAgkApAMBCAUJbGFzdEJsb2NrBmhlaWdodAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQNuaWwFCXNlcGFyYXRvcgERa2V5UHJpY2VQZXJpb2RQdXQCC2Jhc2VBc3NldElkBnBlcmlvZAkAuQkCCQDMCAICCCVzJXMlZCVzCQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQtiYXNlQXNzZXRJZAkAzAgCAgVwcmljZQkAzAgCCQCkAwEFBnBlcmlvZAkAzAgCAgNwdXQFA25pbAUJc2VwYXJhdG9yARJrZXlQcmljZVB1dEhpc3RvcnkBC2Jhc2VBc3NldElkCQC5CQIJAMwIAgIMJXMlcyVzJXMlZCVkCQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQtiYXNlQXNzZXRJZAkAzAgCAgVwcmljZQkAzAgCAgdoaXN0b3J5CQDMCAICA3B1dAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sGaGVpZ2h0CQDMCAIJAKQDAQgFCWxhc3RCbG9jawl0aW1lc3RhbXAFA25pbAUJc2VwYXJhdG9yARFrZXlQcmljZVBlcmlvZEdldAILYmFzZUFzc2V0SWQGcGVyaW9kCQC5CQIJAMwIAgIIJXMlcyVkJXMJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFC2Jhc2VBc3NldElkCQDMCAICBXByaWNlCQDMCAIJAKQDAQUGcGVyaW9kCQDMCAICA2dldAUDbmlsBQlzZXBhcmF0b3IBEmtleVByaWNlR2V0SGlzdG9yeQELYmFzZUFzc2V0SWQJALkJAgkAzAgCAgwlcyVzJXMlcyVkJWQJAMwIAgkBD2Fzc2V0SWRUb1N0cmluZwEFC2Jhc2VBc3NldElkCQDMCAICBXByaWNlCQDMCAICB2hpc3RvcnkJAMwIAgIDZ2V0CQDMCAIJAKQDAQgFCWxhc3RCbG9jawZoZWlnaHQJAMwIAgkApAMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUDbmlsBQlzZXBhcmF0b3IBD2tleUhpc3RvcnlFbnRyeQULYmFzZUFzc2V0SWQJb3BlcmF0aW9uBnBlcmlvZAt1c2VyQWRkcmVzcwR0eElkCQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgIHaGlzdG9yeQkAzAgCBQlvcGVyYXRpb24JAMwIAgkApQgBBQt1c2VyQWRkcmVzcwkAzAgCCQDYBAEFBHR4SWQJAMwIAgkApAMBBQZoZWlnaHQFA25pbAUJc2VwYXJhdG9yARNrZXlNYW5hZ2VyUHVibGljS2V5AAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5ARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAQHJG1hdGNoMAkAoggBCQETa2V5TWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEByRtYXRjaDAJAKIIAQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAFXBlcm1pc3Npb25EZW5pZWRFcnJvcgkAAgECEVBlcm1pc3Npb24gZGVuaWVkAQhtdXN0VGhpcwEBaQMJAAACCAUBaQZjYWxsZXIFBHRoaXMGBRVwZXJtaXNzaW9uRGVuaWVkRXJyb3IBC211c3RNYW5hZ2VyAQFpBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDADCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawYFFXBlcm1pc3Npb25EZW5pZWRFcnJvcgMJAAECBQckbWF0Y2gwAgRVbml0CQEIbXVzdFRoaXMBBQFpCQACAQILTWF0Y2ggZXJyb3IACHNodXRkb3duCQELdmFsdWVPckVsc2UCCQCgCAEJAQtrZXlTaHV0ZG93bgAHAQ1zaHV0ZG93bkNoZWNrAQFpAwMJAQEhAQUIc2h1dGRvd24GCQELbXVzdE1hbmFnZXIBBQFpBgkAAgECFW9wZXJhdGlvbiBpcyBkaXNhYmxlZAAPZmFjdG9yeUNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwkBEmtleUZhY3RvcnlDb250cmFjdAAAEWxwU3Rha2luZ0NvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwkBFGtleUxwU3Rha2luZ0NvbnRyYWN0AAAPc3Rha2luZ0NvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwkBEmtleVN0YWtpbmdDb250cmFjdAAAEGJvb3N0aW5nQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQxnZXRTdHJPckZhaWwCBQR0aGlzCQETa2V5Qm9vc3RpbmdDb250cmFjdAAADHN3YXBDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBDGdldFN0ck9yRmFpbAIFBHRoaXMJAQ9rZXlTd2FwQ29udHJhY3QAABNhc3NldHNTdG9yZUNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwkBFmtleUFzc2V0c1N0b3JlQ29udHJhY3QAAAt1c2RuQXNzZXRJZAkBDHBhcnNlQXNzZXRJZAEJAQxnZXRTdHJPckZhaWwCBQR0aGlzCQEOa2V5VXNkbkFzc2V0SWQAAAl3eEFzc2V0SWQJAQxwYXJzZUFzc2V0SWQBCQEMZ2V0U3RyT3JGYWlsAgUEdGhpcwkBDGtleVd4QXNzZXRJZAAAD21pbkRlbGF5RGVmYXVsdACgCwAIbWluRGVsYXkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBC2tleU1pbkRlbGF5AAUPbWluRGVsYXlEZWZhdWx0ABZsb2NrRnJhY3Rpb25NdWx0aXBsaWVyAIDC1y8AE2xvY2tGcmFjdGlvbkRlZmF1bHQJAGsDAAEFFmxvY2tGcmFjdGlvbk11bHRpcGxpZXIAAgAMbG9ja0ZyYWN0aW9uCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ9rZXlMb2NrRnJhY3Rpb24ABRNsb2NrRnJhY3Rpb25EZWZhdWx0AQtnZXRQb29sSW5mbwENYW1vdW50QXNzZXRJZAQQYW1vdW50QXNzZXRJZFN0cgkBD2Fzc2V0SWRUb1N0cmluZwEFDWFtb3VudEFzc2V0SWQED3ByaWNlQXNzZXRJZFN0cgkBD2Fzc2V0SWRUb1N0cmluZwEFC3VzZG5Bc3NldElkBA5wb29sSW5mb09wdGlvbgoAAUAJAPwHBAUPZmFjdG9yeUNvbnRyYWN0AhBwb29sSW5mb1JFQURPTkxZCQDMCAIFEGFtb3VudEFzc2V0SWRTdHIJAMwIAgUPcHJpY2VBc3NldElkU3RyBQNuaWwFA25pbAMJAAECBQFAAhUoQWRkcmVzcywgQnl0ZVZlY3RvcikFAUAFBHVuaXQFDnBvb2xJbmZvT3B0aW9uAQljYWxjUHJpY2UCCWxwQXNzZXRJZAxzaGFyZUFzc2V0SWQEDnNoYXJlQXNzZXRJbmZvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUMc2hhcmVBc3NldElkAh5mYWlsZWQgdG8gZ2V0IHNoYXJlIGFzc2V0IGluZm8EEnNoYXJlQXNzZXRFbWlzc2lvbggFDnNoYXJlQXNzZXRJbmZvCHF1YW50aXR5BAxzdGFrZWRBbW91bnQJAQ5lbnN1cmVQb3NpdGl2ZQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgoAAUAJAPwHBAUPc3Rha2luZ0NvbnRyYWN0AhRzdGFrZWRCeVVzZXJSRUFET05MWQkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQUJbHBBc3NldElkCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFABQR1bml0CQEHd3JhcEVycgECI2ludmFsaWQgc3Rha2VkQnlVc2VyUkVBRE9OTFkgcmVzdWx0BAVwcmljZQMJAAACBRJzaGFyZUFzc2V0RW1pc3Npb24AAAUNc2NhbGUxOEJpZ0ludAkAvQIECQC2AgEFDHN0YWtlZEFtb3VudAUNc2NhbGUxOEJpZ0ludAkAtgIBBRJzaGFyZUFzc2V0RW1pc3Npb24FBUZMT09SBQVwcmljZQgBaQEKc2V0TWFuYWdlcgEXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkEC2NoZWNrQ2FsbGVyCQELbXVzdE1hbmFnZXIBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQDZBAEFF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AwkAAAIFFWNoZWNrTWFuYWdlclB1YmxpY0tleQUVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQDMCAIJAQtTdHJpbmdFbnRyeQIJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAFF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOY29uZmlybU1hbmFnZXIABAJwbQkBHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAQFaGFzUE0DCQEJaXNEZWZpbmVkAQUCcG0GCQEIdGhyb3dFcnIBAhJubyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUFaGFzUE0FBWhhc1BNBAdjaGVja1BNAwkAAAIIBQFpD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCcG0GCQEIdGhyb3dFcnIBAht5b3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUHY2hlY2tQTQUHY2hlY2tQTQkAzAgCCQELU3RyaW5nRW50cnkCCQETa2V5TWFuYWdlclB1YmxpY0tleQAJANgEAQkBBXZhbHVlAQUCcG0JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBmNyZWF0ZQUOYmFzZUFzc2V0SWRTdHIPc2hhcmVBc3NldElkU3RyDnNoYXJlQXNzZXROYW1lFXNoYXJlQXNzZXREZXNjcmlwdGlvbg5zaGFyZUFzc2V0TG9nbwQPc2hhcmVBc3NldExhYmVsAhBMUF9TVEFLSU5HX1BPT0xTBAtiYXNlQXNzZXRJZAkBDHBhcnNlQXNzZXRJZAEFDmJhc2VBc3NldElkU3RyBAZjaGVja3MJAMwIAgkBC211c3RNYW5hZ2VyAQUBaQkAzAgCAwkBCWlzRGVmaW5lZAEJAQtnZXRQb29sSW5mbwEFC2Jhc2VBc3NldElkBgkBCHRocm93RXJyAQISaW52YWxpZCBiYXNlIGFzc2V0BQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEC2NvbW1vblN0YXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEJa2V5UGVyaW9kAQULYmFzZUFzc2V0SWQAAAUDbmlsAwkAAAIFD3NoYXJlQXNzZXRJZFN0cgIABBVzaGFyZUFzc2V0SXNzdWVBbW91bnQAAQQVc2hhcmVBc3NldElzc3VlQWN0aW9uCQDCCAUFDnNoYXJlQXNzZXROYW1lBRVzaGFyZUFzc2V0RGVzY3JpcHRpb24FFXNoYXJlQXNzZXRJc3N1ZUFtb3VudAUSc2hhcmVBc3NldERlY2ltYWxzBgQWY2FsY3VsYXRlZFNoYXJlQXNzZXRJZAkAuAgBBRVzaGFyZUFzc2V0SXNzdWVBY3Rpb24EFHNoYXJlQXNzZXRCdXJuQWN0aW9uCQEEQnVybgIFFmNhbGN1bGF0ZWRTaGFyZUFzc2V0SWQFFXNoYXJlQXNzZXRJc3N1ZUFtb3VudAQZY2FsY3VsYXRlZFNoYXJlQXNzZXRJZFN0cgkA2AQBBRZjYWxjdWxhdGVkU2hhcmVBc3NldElkBA5jcmVhdGVPclVwZGF0ZQkA/AcEBRNhc3NldHNTdG9yZUNvbnRyYWN0Ag5jcmVhdGVPclVwZGF0ZQkAzAgCBRljYWxjdWxhdGVkU2hhcmVBc3NldElkU3RyCQDMCAIFDnNoYXJlQXNzZXRMb2dvCQDMCAIHBQNuaWwFA25pbAMJAAACBQ5jcmVhdGVPclVwZGF0ZQUOY3JlYXRlT3JVcGRhdGUECGFkZExhYmVsCQD8BwQFE2Fzc2V0c1N0b3JlQ29udHJhY3QCCGFkZExhYmVsCQDMCAIFGWNhbGN1bGF0ZWRTaGFyZUFzc2V0SWRTdHIJAMwIAgUPc2hhcmVBc3NldExhYmVsBQNuaWwFA25pbAMJAAACBQhhZGRMYWJlbAUIYWRkTGFiZWwJAJQKAgkAzggCBQtjb21tb25TdGF0ZQkAzAgCBRVzaGFyZUFzc2V0SXNzdWVBY3Rpb24JAMwIAgUUc2hhcmVBc3NldEJ1cm5BY3Rpb24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVNoYXJlQXNzZXRJZAEFC2Jhc2VBc3NldElkBRljYWxjdWxhdGVkU2hhcmVBc3NldElkU3RyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5rZXlCYXNlQXNzZXRJZAEFFmNhbGN1bGF0ZWRTaGFyZUFzc2V0SWQFDmJhc2VBc3NldElkU3RyBQNuaWwFGWNhbGN1bGF0ZWRTaGFyZUFzc2V0SWRTdHIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EDHNoYXJlQXNzZXRJZAkA2QQBBQ9zaGFyZUFzc2V0SWRTdHIEDnNoYXJlQXNzZXRJbmZvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUMc2hhcmVBc3NldElkCQEHd3JhcEVycgECFmludmFsaWQgc2hhcmUgYXNzZXQgaWQEC2NoZWNrSXNzdWVyAwkAAAIIBQ5zaGFyZUFzc2V0SW5mbwZpc3N1ZXIFEWxwU3Rha2luZ0NvbnRyYWN0BgkBCHRocm93RXJyAQIdaW52YWxpZCBzaGFyZSBhc3NldCBpZCBpc3N1ZXIDCQAAAgULY2hlY2tJc3N1ZXIFC2NoZWNrSXNzdWVyCQCUCgIJAM4IAgULY29tbW9uU3RhdGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVNoYXJlQXNzZXRJZAEFC2Jhc2VBc3NldElkBQ9zaGFyZUFzc2V0SWRTdHIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVNoYXJlQXNzZXRJZAEFDHNoYXJlQXNzZXRJZAUOYmFzZUFzc2V0SWRTdHIFA25pbAUPc2hhcmVBc3NldElkU3RyCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBA3B1dAAEA3BtdAMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEJAJEDAggFAWkIcGF5bWVudHMAAAkBCHRocm93RXJyAQIdZXhhY3RseSAxIHBheW1lbnQgaXMgZXhwZWN0ZWQEC2Jhc2VBc3NldElkCAUDcG10B2Fzc2V0SWQEC3VzZXJBZGRyZXNzCAUBaQZjYWxsZXIEBmNoZWNrcwkAzAgCCQENc2h1dGRvd25DaGVjawEFAWkJAMwIAgMJAQlpc0RlZmluZWQBCQCiCAEJAQ9rZXlTaGFyZUFzc2V0SWQBBQtiYXNlQXNzZXRJZAYJAQh0aHJvd0VycgECDWludmFsaWQgYXNzZXQFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQNJHQwMTEzMTIxMTQxNQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQELZ2V0UG9vbEluZm8BBQtiYXNlQXNzZXRJZAkBB3dyYXBFcnIBAg1pbnZhbGlkIGFzc2V0BAtwb29sQWRkcmVzcwgFDSR0MDExMzEyMTE0MTUCXzEECWxwQXNzZXRJZAgFDSR0MDExMzEyMTE0MTUCXzIEBnBlcmlvZAkBBXZhbHVlAQkAnwgBCQEJa2V5UGVyaW9kAQULYmFzZUFzc2V0SWQEKHVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnRQZXJpb2RPcHRpb24JAJ8IAQkBJWtleVVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnRQZXJpb2QCBQtiYXNlQXNzZXRJZAULdXNlckFkZHJlc3MEGWNsYWltU2hhcmVBc3NldEludm9jYXRpb24DCQAAAgUodXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZE9wdGlvbgUEdW5pdAUEdW5pdAQidXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZAkBBXZhbHVlAQUodXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZE9wdGlvbgMJAAACBSJ1c2VyQmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kBQZwZXJpb2QFBHVuaXQJAPwHBAUEdGhpcwIPY2xhaW1TaGFyZUFzc2V0CQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQtiYXNlQXNzZXRJZAkAzAgCCQClCAEFC3VzZXJBZGRyZXNzBQNuaWwFA25pbAMJAAACBRljbGFpbVNoYXJlQXNzZXRJbnZvY2F0aW9uBRljbGFpbVNoYXJlQXNzZXRJbnZvY2F0aW9uBBhiYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBG2tleUJhc2VBc3NldEFtb3VudFRvQ29udmVydAEFC2Jhc2VBc3NldElkAAAEHHVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBH2tleVVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQCBQtiYXNlQXNzZXRJZAULdXNlckFkZHJlc3MAAAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEba2V5QmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0AQULYmFzZUFzc2V0SWQJAGQCBRhiYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQIBQNwbXQGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEfa2V5VXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydAIFC2Jhc2VBc3NldElkBQt1c2VyQWRkcmVzcwkAZAIFHHVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQIBQNwbXQGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEla2V5VXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZAIFC2Jhc2VBc3NldElkBQt1c2VyQWRkcmVzcwUGcGVyaW9kCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5SGlzdG9yeUVudHJ5BQULYmFzZUFzc2V0SWQCA3B1dAUGcGVyaW9kBQt1c2VyQWRkcmVzcwgFAWkNdHJhbnNhY3Rpb25JZAgFA3BtdAZhbW91bnQFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ9jbGFpbVNoYXJlQXNzZXQCDmJhc2VBc3NldElkU3RyDnVzZXJBZGRyZXNzU3RyBAZjaGVja3MJAMwIAgkBDXNodXRkb3duQ2hlY2sBBQFpBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEC3VzZXJBZGRyZXNzAwkAAAIFDnVzZXJBZGRyZXNzU3RyAgAIBQFpBmNhbGxlcgQLY2hlY2tDYWxsZXIJAQhtdXN0VGhpcwEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQUOdXNlckFkZHJlc3NTdHIJAQd3cmFwRXJyAQIUaW52YWxpZCB1c2VyIGFkZHJlc3MJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgULdXNlckFkZHJlc3MFC3VzZXJBZGRyZXNzBAtiYXNlQXNzZXRJZAkBDHBhcnNlQXNzZXRJZAEFDmJhc2VBc3NldElkU3RyBAxzaGFyZUFzc2V0SWQJAQV2YWx1ZQEJAQxwYXJzZUFzc2V0SWQBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBD2tleVNoYXJlQXNzZXRJZAEFC2Jhc2VBc3NldElkCQEHd3JhcEVycgECFWludmFsaWQgYmFzZSBhc3NldCBpZAMJAAACBQxzaGFyZUFzc2V0SWQFDHNoYXJlQXNzZXRJZAQGcGVyaW9kCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQkBCWtleVBlcmlvZAEFC2Jhc2VBc3NldElkCQEHd3JhcEVycgECDmludmFsaWQgcGVyaW9kAwkAAAIFBnBlcmlvZAUGcGVyaW9kBBx1c2VyQmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0CQELdmFsdWVPckVsc2UCCQCfCAEJAR9rZXlVc2VyQmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0AgULYmFzZUFzc2V0SWQFC3VzZXJBZGRyZXNzAAAEFGNoZWNrQW1vdW50VG9Db252ZXJ0AwkAZgIFHHVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQAAAYJAQh0aHJvd0VycgECEG5vdGhpbmcgdG8gY2xhaW0DCQAAAgUUY2hlY2tBbW91bnRUb0NvbnZlcnQFFGNoZWNrQW1vdW50VG9Db252ZXJ0BCJ1c2VyQmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQkBJWtleVVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnRQZXJpb2QCBQtiYXNlQXNzZXRJZAULdXNlckFkZHJlc3MJAQd3cmFwRXJyAQIUZmFpbGVkIHRvIGdldCBwZXJpb2QEC2NoZWNrUGVyaW9kAwkAZgIFBnBlcmlvZAUidXNlckJhc2VBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZAYJAQh0aHJvd0VycgECDmludmFsaWQgcGVyaW9kAwkAAAIFC2NoZWNrUGVyaW9kBQtjaGVja1BlcmlvZAQFcHJpY2UJAJ4DAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQChCAEJARFrZXlQcmljZVBlcmlvZFB1dAIFC2Jhc2VBc3NldElkBSJ1c2VyQmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kCQEHd3JhcEVycgECE2ZhaWxlZCB0byBnZXQgcHJpY2UEEHNoYXJlQXNzZXRBbW91bnQJAKADAQkAvAIDCQC2AgEFHHVzZXJCYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQFDXNjYWxlMThCaWdJbnQFBXByaWNlCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAR9rZXlVc2VyQmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0AgULYmFzZUFzc2V0SWQFC3VzZXJBZGRyZXNzAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwULdXNlckFkZHJlc3MFEHNoYXJlQXNzZXRBbW91bnQFDHNoYXJlQXNzZXRJZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleUhpc3RvcnlFbnRyeQUFC2Jhc2VBc3NldElkAg9jbGFpbVNoYXJlQXNzZXQFBnBlcmlvZAULdXNlckFkZHJlc3MIBQFpDXRyYW5zYWN0aW9uSWQFEHNoYXJlQXNzZXRBbW91bnQFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQNnZXQABAZjaGVja3MJAMwIAgkBDXNodXRkb3duQ2hlY2sBBQFpBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEA3BtdAMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAEJAJEDAggFAWkIcGF5bWVudHMAAAkBCHRocm93RXJyAQIdZXhhY3RseSAxIHBheW1lbnQgaXMgZXhwZWN0ZWQEDHNoYXJlQXNzZXRJZAgFA3BtdAdhc3NldElkBAtiYXNlQXNzZXRJZAkBBXZhbHVlAQkBDHBhcnNlQXNzZXRJZAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEOa2V5QmFzZUFzc2V0SWQBBQxzaGFyZUFzc2V0SWQJAQd3cmFwRXJyAQIWaW52YWxpZCBzaGFyZSBhc3NldCBpZAMJAAACBQtiYXNlQXNzZXRJZAULYmFzZUFzc2V0SWQEC3VzZXJBZGRyZXNzCAUBaQZjYWxsZXIEDSR0MDE1MTE2MTUyMTkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkBC2dldFBvb2xJbmZvAQULYmFzZUFzc2V0SWQJAQd3cmFwRXJyAQINaW52YWxpZCBhc3NldAQLcG9vbEFkZHJlc3MIBQ0kdDAxNTExNjE1MjE5Al8xBAlscEFzc2V0SWQIBQ0kdDAxNTExNjE1MjE5Al8yBAZwZXJpb2QJAQV2YWx1ZQEJAJ8IAQkBCWtleVBlcmlvZAEFC2Jhc2VBc3NldElkBCl1c2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZE9wdGlvbgkAnwgBCQEma2V5VXNlclNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnRQZXJpb2QCBQtiYXNlQXNzZXRJZAULdXNlckFkZHJlc3MEGGNsYWltQmFzZUFzc2V0SW52b2NhdGlvbgMJAAACBSl1c2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZE9wdGlvbgUEdW5pdAUEdW5pdAQjdXNlclNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnRQZXJpb2QJAQV2YWx1ZQEFKXVzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kT3B0aW9uAwkAAAIFI3VzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kBQZwZXJpb2QFBHVuaXQJAPwHBAUEdGhpcwIOY2xhaW1CYXNlQXNzZXQJAMwIAgULdXNlckFkZHJlc3MFA25pbAUDbmlsAwkAAAIFGGNsYWltQmFzZUFzc2V0SW52b2NhdGlvbgUYY2xhaW1CYXNlQXNzZXRJbnZvY2F0aW9uBBlzaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0CQELdmFsdWVPckVsc2UCCQCfCAEJARxrZXlTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0AQULYmFzZUFzc2V0SWQAAAQddXNlclNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBIGtleVVzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0AgULYmFzZUFzc2V0SWQFC3VzZXJBZGRyZXNzAAAJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBHGtleVNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQBBQtiYXNlQXNzZXRJZAkAZAIFGXNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQIBQNwbXQGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEga2V5VXNlclNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQCBQtiYXNlQXNzZXRJZAULdXNlckFkZHJlc3MJAGQCBR11c2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydAgFA3BtdAZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJASZrZXlVc2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydFBlcmlvZAIFC2Jhc2VBc3NldElkBQt1c2VyQWRkcmVzcwUGcGVyaW9kCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5SGlzdG9yeUVudHJ5BQULYmFzZUFzc2V0SWQCA2dldAUGcGVyaW9kBQt1c2VyQWRkcmVzcwgFAWkNdHJhbnNhY3Rpb25JZAgFA3BtdAZhbW91bnQFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ5jbGFpbUJhc2VBc3NldAIOYmFzZUFzc2V0SWRTdHIOdXNlckFkZHJlc3NTdHIEBmNoZWNrcwkAzAgCCQENc2h1dGRvd25DaGVjawEFAWkFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQLdXNlckFkZHJlc3MDCQAAAgUOdXNlckFkZHJlc3NTdHICAAgFAWkGY2FsbGVyBAtjaGVja0NhbGxlcgkBCG11c3RUaGlzAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQ51c2VyQWRkcmVzc1N0cgkBB3dyYXBFcnIBAhRpbnZhbGlkIHVzZXIgYWRkcmVzcwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQt1c2VyQWRkcmVzcwULdXNlckFkZHJlc3MEC2Jhc2VBc3NldElkCQEMcGFyc2VBc3NldElkAQUOYmFzZUFzc2V0SWRTdHIEDHNoYXJlQXNzZXRJZAkBBXZhbHVlAQkBDHBhcnNlQXNzZXRJZAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEPa2V5U2hhcmVBc3NldElkAQULYmFzZUFzc2V0SWQJAQd3cmFwRXJyAQIVaW52YWxpZCBiYXNlIGFzc2V0IGlkAwkAAAIFDHNoYXJlQXNzZXRJZAUMc2hhcmVBc3NldElkBAZwZXJpb2QJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBCQEJa2V5UGVyaW9kAQULYmFzZUFzc2V0SWQJAQd3cmFwRXJyAQIOaW52YWxpZCBwZXJpb2QDCQAAAgUGcGVyaW9kBQZwZXJpb2QEHXVzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0CQELdmFsdWVPckVsc2UCCQCfCAEJASBrZXlVc2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydAIFC2Jhc2VBc3NldElkBQt1c2VyQWRkcmVzcwAABBRjaGVja0Ftb3VudFRvQ29udmVydAMJAGYCBR11c2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydAAABgkBCHRocm93RXJyAQIQbm90aGluZyB0byBjbGFpbQMJAAACBRRjaGVja0Ftb3VudFRvQ29udmVydAUUY2hlY2tBbW91bnRUb0NvbnZlcnQEI3VzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQkBJmtleVVzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kAgULYmFzZUFzc2V0SWQFC3VzZXJBZGRyZXNzCQEHd3JhcEVycgECFGZhaWxlZCB0byBnZXQgcGVyaW9kBAtjaGVja1BlcmlvZAMJAGYCBQZwZXJpb2QFI3VzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kBgkBCHRocm93RXJyAQIOaW52YWxpZCBwZXJpb2QDCQAAAgULY2hlY2tQZXJpb2QFC2NoZWNrUGVyaW9kBAVwcmljZQkAngMBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKEIAQkBEWtleVByaWNlUGVyaW9kR2V0AgULYmFzZUFzc2V0SWQFI3VzZXJTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0UGVyaW9kCQEHd3JhcEVycgECE2ZhaWxlZCB0byBnZXQgcHJpY2UED2Jhc2VBc3NldEFtb3VudAkAoAMBCQC8AgMJALYCAQUddXNlclNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQFBXByaWNlBQ1zY2FsZTE4QmlnSW50CQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJASBrZXlVc2VyU2hhcmVBc3NldEFtb3VudFRvQ29udmVydAIFC2Jhc2VBc3NldElkBQt1c2VyQWRkcmVzcwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFC3VzZXJBZGRyZXNzBQ9iYXNlQXNzZXRBbW91bnQFC2Jhc2VBc3NldElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5SGlzdG9yeUVudHJ5BQULYmFzZUFzc2V0SWQCDmNsYWltQmFzZUFzc2V0BQZwZXJpb2QFC3VzZXJBZGRyZXNzCAUBaQ10cmFuc2FjdGlvbklkBQ9iYXNlQXNzZXRBbW91bnQFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQhmaW5hbGl6ZQEOYmFzZUFzc2V0SWRTdHIEBmNoZWNrcwkAzAgCCQENc2h1dGRvd25DaGVjawEFAWkFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQLYmFzZUFzc2V0SWQJAQxwYXJzZUFzc2V0SWQBBQ5iYXNlQXNzZXRJZFN0cgQMc2hhcmVBc3NldElkCQEFdmFsdWUBCQEMcGFyc2VBc3NldElkAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQ9rZXlTaGFyZUFzc2V0SWQBBQtiYXNlQXNzZXRJZAkBB3dyYXBFcnIBAhVpbnZhbGlkIGJhc2UgYXNzZXQgaWQDCQAAAgUMc2hhcmVBc3NldElkBQxzaGFyZUFzc2V0SWQEBnBlcmlvZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEJAQlrZXlQZXJpb2QBBQtiYXNlQXNzZXRJZAkBB3dyYXBFcnIBAg5pbnZhbGlkIHBlcmlvZAMJAAACBQZwZXJpb2QFBnBlcmlvZAQXcGVyaW9kU3RhcnRIZWlnaHRPcHRpb24JAJ8IAQkBFGtleVBlcmlvZFN0YXJ0SGVpZ2h0AgULYmFzZUFzc2V0SWQFBnBlcmlvZAQKY2hlY2tEZWxheQMJAAACBRdwZXJpb2RTdGFydEhlaWdodE9wdGlvbgUEdW5pdAUEdW5pdAQFZGVsYXkJAGUCBQZoZWlnaHQJAQV2YWx1ZQEFF3BlcmlvZFN0YXJ0SGVpZ2h0T3B0aW9uBAxibG9ja3NUb1dhaXQJAJYDAQkAzAgCAAAJAMwIAgkAZQIFCG1pbkRlbGF5BQVkZWxheQUDbmlsAwkAAAIFDGJsb2Nrc1RvV2FpdAAABQR1bml0CQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIhZmluYWxpemF0aW9uIHdpbGwgYmUgcG9zc2libGUgaW4gCQDMCAIJAKQDAQUMYmxvY2tzVG9XYWl0CQDMCAICByBibG9ja3MFA25pbAIAAwkAAAIFCmNoZWNrRGVsYXkFCmNoZWNrRGVsYXkEDSR0MDE5MTYxMTkzNzgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkBC2dldFBvb2xJbmZvAQULYmFzZUFzc2V0SWQJAQd3cmFwRXJyAQINaW52YWxpZCBhc3NldAQLcG9vbEFkZHJlc3MIBQ0kdDAxOTE2MTE5Mzc4Al8xBAlscEFzc2V0SWQIBQ0kdDAxOTE2MTE5Mzc4Al8yBA1zdGFraW5nUmV3YXJkCQETdmFsdWVPckVycm9yTWVzc2FnZQIKAAFACQD8BwQFD3N0YWtpbmdDb250cmFjdAIHY2xhaW1XeAkAzAgCCQEPYXNzZXRJZFRvU3RyaW5nAQUJbHBBc3NldElkBQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAFBHVuaXQJAQd3cmFwRXJyAQIWaW52YWxpZCBjbGFpbVd4IHJlc3VsdAMJAAACBQ1zdGFraW5nUmV3YXJkBQ1zdGFraW5nUmV3YXJkBBhiYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBG2tleUJhc2VBc3NldEFtb3VudFRvQ29udmVydAEFC2Jhc2VBc3NldElkAAAEGXNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBHGtleVNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQBBQtiYXNlQXNzZXRJZAAABBtjaGVja0ZpbmFsaXphdGlvbklzUmVxdWlyZWQEFmlzRmluYWxpemF0aW9uUmVxdWlyZWQDAwkAZgIFDXN0YWtpbmdSZXdhcmQAAAYJAGYCBRhiYXNlQXNzZXRBbW91bnRUb0NvbnZlcnQAAAYJAGYCBRlzaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0AAADBRZpc0ZpbmFsaXphdGlvblJlcXVpcmVkBgkBCHRocm93RXJyAQITbm90aGluZyB0byBmaW5hbGl6ZQMJAAACBRtjaGVja0ZpbmFsaXphdGlvbklzUmVxdWlyZWQFG2NoZWNrRmluYWxpemF0aW9uSXNSZXF1aXJlZAQQdXNlU3Rha2luZ1Jld2FyZAMJAGYCBQ1zdGFraW5nUmV3YXJkAAAECGxvY2tQYXJ0CQBrAwUNc3Rha2luZ1Jld2FyZAUMbG9ja0ZyYWN0aW9uBRZsb2NrRnJhY3Rpb25NdWx0aXBsaWVyBAtjb252ZXJ0UGFydAkAZQIFDXN0YWtpbmdSZXdhcmQFCGxvY2tQYXJ0BAFyCQD8BwQFEGJvb3N0aW5nQ29udHJhY3QCF3VzZXJNYXhEdXJhdGlvblJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwEBGxvY2sDCQBmAgUIbG9ja1BhcnQAAAQHJG1hdGNoMAUBcgMDAwkAAQIIBQckbWF0Y2gwAl8xAgZTdHJpbmcJAAECCAUHJG1hdGNoMAJfMgIDSW50BwkAAQIFByRtYXRjaDACDShTdHJpbmcsIEludCkHBAhmdW5jdGlvbggFByRtYXRjaDACXzEECGR1cmF0aW9uCAUHJG1hdGNoMAJfMgMJAGYCBQhsb2NrUGFydAAACQD8BwQFEGJvb3N0aW5nQ29udHJhY3QFCGZ1bmN0aW9uCQDMCAIFCGR1cmF0aW9uBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCXd4QXNzZXRJZAUIbG9ja1BhcnQFA25pbAUEdW5pdAkBCHRocm93RXJyAQITaW52YWxpZCBsb2NrIHBhcmFtcwUEdW5pdAMJAAACBQRsb2NrBQRsb2NrBA9jb252ZXJ0ZWRBbW91bnQDCQBmAgULY29udmVydFBhcnQAAAQJaW5Bc3NldElkBQl3eEFzc2V0SWQEEG1pbmltdW1Ub1JlY2VpdmUAAAQNb3V0QXNzZXRJZFN0cgkBD2Fzc2V0SWRUb1N0cmluZwEFC3VzZG5Bc3NldElkBA10YXJnZXRBZGRyZXNzAgAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgoAAUAJAPwHBAUMc3dhcENvbnRyYWN0AgRzd2FwCQDMCAIFEG1pbmltdW1Ub1JlY2VpdmUJAMwIAgUNb3V0QXNzZXRJZFN0cgkAzAgCBQ10YXJnZXRBZGRyZXNzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCWluQXNzZXRJZAULY29udmVydFBhcnQFA25pbAMJAAECBQFAAgNJbnQFAUAFBHVuaXQJAQd3cmFwRXJyAQITaW52YWxpZCBzd2FwIHJlc3VsdAAAAwkAAAIFD2NvbnZlcnRlZEFtb3VudAUPY29udmVydGVkQW1vdW50BA1scEFzc2V0QW1vdW50AwkAZgIFD2NvbnZlcnRlZEFtb3VudAAABAxtaW5PdXRBbW91bnQAAAQJYXV0b1N0YWtlBgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCgABQAkA/AcEBQtwb29sQWRkcmVzcwILcHV0T25lVGtuVjIJAMwIAgUMbWluT3V0QW1vdW50CQDMCAIFCWF1dG9TdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQt1c2RuQXNzZXRJZAUPY29udmVydGVkQW1vdW50BQNuaWwDCQABAgUBQAIDSW50BQFABQR1bml0CQEHd3JhcEVycgECGmludmFsaWQgcHV0T25lVGtuVjIgcmVzdWx0AAADCQAAAgUNbHBBc3NldEFtb3VudAUNbHBBc3NldEFtb3VudAUNbHBBc3NldEFtb3VudAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUEdW5pdAMJAAACBRB1c2VTdGFraW5nUmV3YXJkBRB1c2VTdGFraW5nUmV3YXJkBApnZXRBY3Rpb25zAwkAZgIFGXNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQAAAQFcHJpY2UJAQljYWxjUHJpY2UCBQlscEFzc2V0SWQFDHNoYXJlQXNzZXRJZAMJAAACBQVwcmljZQUFcHJpY2UEDXVuc3Rha2VBbW91bnQJAKADAQkAvQIECQC2AgEFGXNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQFBXByaWNlBQ1zY2FsZTE4QmlnSW50BQVGTE9PUgQPYmFzZUFzc2V0QW1vdW50BApvdXRBc3NldElkBQtiYXNlQXNzZXRJZAQMbWluT3V0QW1vdW50AAAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgoAAUAJAPwHBAULcG9vbEFkZHJlc3MCFXVuc3Rha2VBbmRHZXRPbmVUa25WMgkAzAgCBQ11bnN0YWtlQW1vdW50CQDMCAIJAQ9hc3NldElkVG9TdHJpbmcBBQpvdXRBc3NldElkCQDMCAIFDG1pbk91dEFtb3VudAUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFABQR1bml0CQEHd3JhcEVycgECJGludmFsaWQgdW5zdGFrZUFuZEdldE9uZVRrblYyIHJlc3VsdAMJAAACBQ9iYXNlQXNzZXRBbW91bnQFD2Jhc2VBc3NldEFtb3VudAQVc2hhcmVBc3NldEJ1cm5BY3Rpb25zCQDMCAIJAQRCdXJuAgUMc2hhcmVBc3NldElkBRlzaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0BQNuaWwECHByaWNlR2V0CQC9AgQJALYCAQUPYmFzZUFzc2V0QW1vdW50BQ1zY2FsZTE4QmlnSW50CQC2AgEFGXNoYXJlQXNzZXRBbW91bnRUb0NvbnZlcnQFBUZMT09SBBVwcmljZUdldFVwZGF0ZUFjdGlvbnMJAMwIAgkBC0JpbmFyeUVudHJ5AgkBEWtleVByaWNlUGVyaW9kR2V0AgULYmFzZUFzc2V0SWQFBnBlcmlvZAkAnQMBBQhwcmljZUdldAkAzAgCCQELU3RyaW5nRW50cnkCCQESa2V5UHJpY2VHZXRIaXN0b3J5AQULYmFzZUFzc2V0SWQJAKYDAQUIcHJpY2VHZXQFA25pbAkAzggCBRVzaGFyZUFzc2V0QnVybkFjdGlvbnMFFXByaWNlR2V0VXBkYXRlQWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsBApwdXRBY3Rpb25zAwkAZgIFGGJhc2VBc3NldEFtb3VudFRvQ29udmVydAAABA1scEFzc2V0QW1vdW50BAxtaW5PdXRBbW91bnQAAAQJYXV0b1N0YWtlBgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCgABQAkA/AcEBQtwb29sQWRkcmVzcwILcHV0T25lVGtuVjIJAMwIAgUMbWluT3V0QW1vdW50CQDMCAIFCWF1dG9TdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQtiYXNlQXNzZXRJZAUYYmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0BQNuaWwDCQABAgUBQAIDSW50BQFABQR1bml0CQEHd3JhcEVycgECGmludmFsaWQgcHV0T25lVGtuVjIgcmVzdWx0AwkAAAIFDWxwQXNzZXRBbW91bnQFDWxwQXNzZXRBbW91bnQEBXByaWNlCQEJY2FsY1ByaWNlAgUJbHBBc3NldElkBQxzaGFyZUFzc2V0SWQDCQAAAgUFcHJpY2UFBXByaWNlBBBzaGFyZUFzc2V0QW1vdW50CQCgAwEJAL0CBAkAtgIBBQ1scEFzc2V0QW1vdW50BQ1zY2FsZTE4QmlnSW50BQVwcmljZQUFRkxPT1IEDGlzUmVpc3N1YWJsZQYEGHNoYXJlQXNzZXRSZWlzc3VlQWN0aW9ucwkAzAgCCQEHUmVpc3N1ZQMFDHNoYXJlQXNzZXRJZAUQc2hhcmVBc3NldEFtb3VudAUMaXNSZWlzc3VhYmxlBQNuaWwECHByaWNlUHV0CQC8AgMJALYCAQUYYmFzZUFzc2V0QW1vdW50VG9Db252ZXJ0BQ1zY2FsZTE4QmlnSW50CQC2AgEFEHNoYXJlQXNzZXRBbW91bnQEFXByaWNlUHV0VXBkYXRlQWN0aW9ucwkAzAgCCQELQmluYXJ5RW50cnkCCQERa2V5UHJpY2VQZXJpb2RQdXQCBQtiYXNlQXNzZXRJZAUGcGVyaW9kCQCdAwEFCHByaWNlUHV0CQDMCAIJAQtTdHJpbmdFbnRyeQIJARJrZXlQcmljZVB1dEhpc3RvcnkBBQtiYXNlQXNzZXRJZAkApgMBBQhwcmljZVB1dAUDbmlsCQDOCAIFGHNoYXJlQXNzZXRSZWlzc3VlQWN0aW9ucwUVcHJpY2VQdXRVcGRhdGVBY3Rpb25zCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQNuaWwECW5ld1BlcmlvZAkAZAIFBnBlcmlvZAABBAlsYXN0UHJpY2UJAQljYWxjUHJpY2UCBQlscEFzc2V0SWQFDHNoYXJlQXNzZXRJZAQHYWN0aW9ucwkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQlrZXlQZXJpb2QBBQtiYXNlQXNzZXRJZAUJbmV3UGVyaW9kCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5UGVyaW9kU3RhcnRIZWlnaHQCBQtiYXNlQXNzZXRJZAUJbmV3UGVyaW9kBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJARxrZXlTaGFyZUFzc2V0QW1vdW50VG9Db252ZXJ0AQULYmFzZUFzc2V0SWQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBG2tleUJhc2VBc3NldEFtb3VudFRvQ29udmVydAEFC2Jhc2VBc3NldElkAAAJAMwIAgkBC0JpbmFyeUVudHJ5AgkBDmtleVByaWNlUGVyaW9kAgULYmFzZUFzc2V0SWQFBnBlcmlvZAkAnQMBBQlsYXN0UHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVByaWNlSGlzdG9yeQEFC2Jhc2VBc3NldElkCQCmAwEFCWxhc3RQcmljZQUDbmlsBQpwdXRBY3Rpb25zBQpnZXRBY3Rpb25zCQCUCgIFB2FjdGlvbnMJAJ0DAQUJbGFzdFByaWNlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQPdGFyZ2V0UHVibGljS2V5BAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDAFAnBrAwkAAQIFByRtYXRjaDACBFVuaXQIBQJ0eA9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUPdGFyZ2V0UHVibGljS2V5dRGEEg==", "chainId": 84, "height": 2401783, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8eiEqTQeRiZvYGfAvy3xgZfWWzsvDfiU6dLUXYxoAjsh Next: D6pv5s3nuxkkHieimBM579pptNKitvzMupjcQ34qEtAh Diff:
OldNewDifferences
523523 then unit
524524 else {
525525 let bD = (height - value(bB))
526- let bE = min([0, (aw - bD)])
526+ let bE = max([0, (aw - bD)])
527527 if ((bE == 0))
528528 then unit
529529 else h(makeString(["finalization will be possible in ", toString(bE), " blocks"], ""))
541541 }, f("invalid claimWx result"))
542542 if ((bG == bG))
543543 then {
544- let bH = if ((bG > 0))
544+ let bo = valueOrElse(getInteger(K(E)), 0)
545+ let by = valueOrElse(getInteger(L(E)), 0)
546+ let bH = {
547+ let bI = if (if ((bG > 0))
548+ then true
549+ else (bo > 0))
550+ then true
551+ else (by > 0)
552+ if (bI)
553+ then true
554+ else h("nothing to finalize")
555+ }
556+ if ((bH == bH))
545557 then {
546- let bI = fraction(bG, az, ax)
547- let bJ = (bG - bI)
548- let bK = invoke(aq, "userMaxDurationREADONLY", [toString(this)], nil)
549- let bL = if ((bI > 0))
558+ let bJ = if ((bG > 0))
550559 then {
551- let ad = bK
552- if (if (if ($isInstanceOf(ad._1, "String"))
553- then $isInstanceOf(ad._2, "Int")
554- else false)
555- then $isInstanceOf(ad, "(String, Int)")
556- else false)
560+ let bK = fraction(bG, az, ax)
561+ let bL = (bG - bK)
562+ let bM = invoke(aq, "userMaxDurationREADONLY", [toString(this)], nil)
563+ let bN = if ((bK > 0))
557564 then {
558- let bM = ad._1
559- let bN = ad._2
560- if ((bI > 0))
561- then invoke(aq, bM, [bN], [AttachedPayment(au, bI)])
562- else unit
565+ let ad = bM
566+ if (if (if ($isInstanceOf(ad._1, "String"))
567+ then $isInstanceOf(ad._2, "Int")
568+ else false)
569+ then $isInstanceOf(ad, "(String, Int)")
570+ else false)
571+ then {
572+ let bO = ad._1
573+ let bP = ad._2
574+ if ((bK > 0))
575+ then invoke(aq, bO, [bP], [AttachedPayment(au, bK)])
576+ else unit
577+ }
578+ else h("invalid lock params")
563579 }
564- else h("invalid lock params")
565- }
566- else unit
567- if ((bL == bL))
568- then {
569- let bO = if ((bJ > 0))
580+ else unit
581+ if ((bN == bN))
570582 then {
571- let bP = au
572- let bQ = 0
573- let bR = p(at)
574- let bS = ""
575- valueOrErrorMessage({
576- let aF = invoke(ar, "swap", [bQ, bR, bS], [AttachedPayment(bP, bJ)])
577- if ($isInstanceOf(aF, "Int"))
578- then aF
579- else unit
580- }, f("invalid swap result"))
581- }
582- else 0
583- if ((bO == bO))
584- then {
585- let bT = if ((bO > 0))
583+ let bQ = if ((bL > 0))
586584 then {
587- let bU = 0
588- let bV = true
585+ let bR = au
586+ let bS = 0
587+ let bT = p(at)
588+ let bU = ""
589589 valueOrErrorMessage({
590- let aF = invoke(bk, "putOneTknV2", [bU, bV], [AttachedPayment(at, bO)])
590+ let aF = invoke(ar, "swap", [bS, bT, bU], [AttachedPayment(bR, bL)])
591591 if ($isInstanceOf(aF, "Int"))
592592 then aF
593593 else unit
594- }, f("invalid putOneTknV2 result"))
594+ }, f("invalid swap result"))
595595 }
596596 else 0
597- if ((bT == bT))
598- then bT
599- else throw("Strict value is not equal to itself.")
600- }
601- else throw("Strict value is not equal to itself.")
602- }
603- else throw("Strict value is not equal to itself.")
604- }
605- else unit
606- if ((bH == bH))
607- then {
608- let by = valueOrElse(getInteger(L(E)), 0)
609- let bW = if ((by > 0))
610- then {
611- let aL = aG(aH, G)
612- if ((aL == aL))
613- then {
614- let bX = toInt(fraction(toBigInt(by), aL, e, FLOOR))
615- let bA = {
616- let bY = E
617- let bU = 0
618- valueOrErrorMessage({
619- let aF = invoke(bk, "unstakeAndGetOneTknV2", [bX, p(bY), bU], nil)
620- if ($isInstanceOf(aF, "Int"))
621- then aF
622- else unit
623- }, f("invalid unstakeAndGetOneTknV2 result"))
624- }
625- if ((bA == bA))
597+ if ((bQ == bQ))
626598 then {
627- let bZ = [Burn(G, by)]
628- let ca = fraction(toBigInt(bA), e, toBigInt(by), FLOOR)
629- let cb = [BinaryEntry(V(E, J), toBytes(ca)), StringEntry(W(E), toString(ca))]
630- (bZ ++ cb)
599+ let bV = if ((bQ > 0))
600+ then {
601+ let bW = 0
602+ let bX = true
603+ valueOrErrorMessage({
604+ let aF = invoke(bk, "putOneTknV2", [bW, bX], [AttachedPayment(at, bQ)])
605+ if ($isInstanceOf(aF, "Int"))
606+ then aF
607+ else unit
608+ }, f("invalid putOneTknV2 result"))
609+ }
610+ else 0
611+ if ((bV == bV))
612+ then bV
613+ else throw("Strict value is not equal to itself.")
631614 }
632615 else throw("Strict value is not equal to itself.")
633616 }
634617 else throw("Strict value is not equal to itself.")
635618 }
636- else nil
637- let bo = valueOrElse(getInteger(K(E)), 0)
638- let cc = if ((bo > 0))
619+ else unit
620+ if ((bJ == bJ))
639621 then {
640- let bT = {
641- let bU = 0
642- let bV = true
643- valueOrErrorMessage({
644- let aF = invoke(bk, "putOneTknV2", [bU, bV], [AttachedPayment(E, bo)])
645- if ($isInstanceOf(aF, "Int"))
646- then aF
647- else unit
648- }, f("invalid putOneTknV2 result"))
649- }
650- if ((bT == bT))
622+ let bY = if ((by > 0))
651623 then {
652624 let aL = aG(aH, G)
653625 if ((aL == aL))
654626 then {
655- let bt = toInt(fraction(toBigInt(bT), e, aL, FLOOR))
656- let cd = true
657- let ce = [Reissue(G, bt, cd)]
658- let cf = fraction(toBigInt(bo), e, toBigInt(bt))
659- let cg = [BinaryEntry(T(E, J), toBytes(cf)), StringEntry(U(E), toString(cf))]
660- (ce ++ cg)
627+ let bZ = toInt(fraction(toBigInt(by), aL, e, FLOOR))
628+ let bA = {
629+ let ca = E
630+ let bW = 0
631+ valueOrErrorMessage({
632+ let aF = invoke(bk, "unstakeAndGetOneTknV2", [bZ, p(ca), bW], nil)
633+ if ($isInstanceOf(aF, "Int"))
634+ then aF
635+ else unit
636+ }, f("invalid unstakeAndGetOneTknV2 result"))
637+ }
638+ if ((bA == bA))
639+ then {
640+ let cb = [Burn(G, by)]
641+ let cc = fraction(toBigInt(bA), e, toBigInt(by), FLOOR)
642+ let cd = [BinaryEntry(V(E, J), toBytes(cc)), StringEntry(W(E), toString(cc))]
643+ (cb ++ cd)
644+ }
645+ else throw("Strict value is not equal to itself.")
661646 }
662647 else throw("Strict value is not equal to itself.")
663648 }
664- else throw("Strict value is not equal to itself.")
649+ else nil
650+ let ce = if ((bo > 0))
651+ then {
652+ let bV = {
653+ let bW = 0
654+ let bX = true
655+ valueOrErrorMessage({
656+ let aF = invoke(bk, "putOneTknV2", [bW, bX], [AttachedPayment(E, bo)])
657+ if ($isInstanceOf(aF, "Int"))
658+ then aF
659+ else unit
660+ }, f("invalid putOneTknV2 result"))
661+ }
662+ if ((bV == bV))
663+ then {
664+ let aL = aG(aH, G)
665+ if ((aL == aL))
666+ then {
667+ let bt = toInt(fraction(toBigInt(bV), e, aL, FLOOR))
668+ let cf = true
669+ let cg = [Reissue(G, bt, cf)]
670+ let ch = fraction(toBigInt(bo), e, toBigInt(bt))
671+ let ci = [BinaryEntry(T(E, J), toBytes(ch)), StringEntry(U(E), toString(ch))]
672+ (cg ++ ci)
673+ }
674+ else throw("Strict value is not equal to itself.")
675+ }
676+ else throw("Strict value is not equal to itself.")
677+ }
678+ else nil
679+ let cj = (J + 1)
680+ let ck = aG(aH, G)
681+ let cl = (([IntegerEntry(H(E), cj), IntegerEntry(I(E, cj), height), IntegerEntry(L(E), 0), IntegerEntry(K(E), 0), BinaryEntry(R(E, J), toBytes(ck)), StringEntry(S(E), toString(ck))] ++ ce) ++ bY)
682+ $Tuple2(cl, toBytes(ck))
665683 }
666- else nil
667- let ch = (J + 1)
668- let ci = aG(aH, G)
669- let cj = (([IntegerEntry(H(E), ch), IntegerEntry(I(E, ch), height), IntegerEntry(L(E), 0), IntegerEntry(K(E), 0), BinaryEntry(R(E, J), toBytes(ci)), StringEntry(S(E), toString(ci))] ++ cc) ++ bW)
670- $Tuple2(cj, toBytes(ci))
684+ else throw("Strict value is not equal to itself.")
671685 }
672686 else throw("Strict value is not equal to itself.")
673687 }
683697 }
684698
685699
686-@Verifier(ck)
687-func cl () = {
688- let cm = {
700+@Verifier(cm)
701+func cn () = {
702+ let co = {
689703 let ad = ac()
690704 if ($isInstanceOf(ad, "ByteVector"))
691705 then {
693707 ak
694708 }
695709 else if ($isInstanceOf(ad, "Unit"))
696- then ck.senderPublicKey
710+ then cm.senderPublicKey
697711 else throw("Match error")
698712 }
699- sigVerify(ck.bodyBytes, ck.proofs[0], cm)
713+ sigVerify(cm.bodyBytes, cm.proofs[0], co)
700714 }
701715
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 8
77
88 let c = "WAVES"
99
1010 let d = 1000000000000000000
1111
1212 let e = toBigInt(d)
1313
1414 func f (g) = makeString(["lp_staking_pools.ride:", g], " ")
1515
1616
1717 func h (g) = throw(f(g))
1818
1919
2020 func i (j,k) = f(makeString(["mandatory ", toString(j), ".", k, " is not defined"], ""))
2121
2222
2323 func l (j,k) = valueOrErrorMessage(getString(j, k), i(j, k))
2424
2525
2626 func m (j,k) = valueOrErrorMessage(getInteger(j, k), i(j, k))
2727
2828
2929 func n (o) = if ((o == c))
3030 then unit
3131 else fromBase58String(o)
3232
3333
3434 func p (o) = if ((o == unit))
3535 then c
3636 else toBase58String(value(o))
3737
3838
3939 func q (r) = if ((r >= 0))
4040 then r
4141 else h("value should be positive")
4242
4343
4444 func s () = makeString(["%s", "factoryContract"], a)
4545
4646
4747 func t () = makeString(["%s", "lpStakingContract"], a)
4848
4949
5050 func u () = makeString(["%s", "stakingContract"], a)
5151
5252
5353 func v () = makeString(["%s", "boostingContract"], a)
5454
5555
5656 func w () = makeString(["%s", "swapContract"], a)
5757
5858
5959 func x () = makeString(["%s", "assetsStoreContract"], a)
6060
6161
6262 func y () = makeString(["%s", "usdnAssetId"], a)
6363
6464
6565 func z () = makeString(["%s", "wxAssetId"], a)
6666
6767
6868 func A () = makeString(["%s", "shutdown"], a)
6969
7070
7171 func B () = makeString(["%s", "minDelay"], a)
7272
7373
7474 func C () = makeString(["%s", "lockFraction"], a)
7575
7676
7777 func D (E) = makeString(["%s%s", p(E), "shareAssetId"], a)
7878
7979
8080 func F (G) = makeString(["%s%s", p(G), "baseAssetId"], a)
8181
8282
8383 func H (E) = makeString(["%s%s", p(E), "period"], a)
8484
8585
8686 func I (E,J) = makeString(["%s%s%d", p(E), "periodStartHeight", toString(J)], a)
8787
8888
8989 func K (E) = makeString(["%s%s", p(E), "baseAssetAmountToConvert"], a)
9090
9191
9292 func L (E) = makeString(["%s%s", p(E), "shareAssetAmountToConvert"], a)
9393
9494
9595 func M (E,N) = makeString(["%s%s%s", p(E), toString(N), "baseAssetAmountToConvert"], a)
9696
9797
9898 func O (E,N) = makeString(["%s%s%s%s", p(E), toString(N), "baseAssetAmountToConvert", "period"], a)
9999
100100
101101 func P (E,N) = makeString(["%s%s%s", p(E), toString(N), "shareAssetAmountToConvert"], a)
102102
103103
104104 func Q (E,N) = makeString(["%s%s%s%s", p(E), toString(N), "shareAssetAmountToConvert", "period"], a)
105105
106106
107107 func R (E,J) = makeString(["%s%s%d", p(E), "price", toString(J)], a)
108108
109109
110110 func S (E) = makeString(["%s%s%s%d%d", p(E), "price", "history", toString(lastBlock.height), toString(lastBlock.timestamp)], a)
111111
112112
113113 func T (E,J) = makeString(["%s%s%d%s", p(E), "price", toString(J), "put"], a)
114114
115115
116116 func U (E) = makeString(["%s%s%s%s%d%d", p(E), "price", "history", "put", toString(lastBlock.height), toString(lastBlock.timestamp)], a)
117117
118118
119119 func V (E,J) = makeString(["%s%s%d%s", p(E), "price", toString(J), "get"], a)
120120
121121
122122 func W (E) = makeString(["%s%s%s%s%d%d", p(E), "price", "history", "get", toString(lastBlock.height), toString(lastBlock.timestamp)], a)
123123
124124
125125 func X (E,Y,J,N,Z) = makeString(["%s%s%s%s", "history", Y, toString(N), toBase58String(Z), toString(height)], a)
126126
127127
128128 func aa () = "%s__managerPublicKey"
129129
130130
131131 func ab () = "%s__pendingManagerPublicKey"
132132
133133
134134 func ac () = {
135135 let ad = getString(aa())
136136 if ($isInstanceOf(ad, "String"))
137137 then {
138138 let ae = ad
139139 fromBase58String(ae)
140140 }
141141 else if ($isInstanceOf(ad, "Unit"))
142142 then unit
143143 else throw("Match error")
144144 }
145145
146146
147147 func af () = {
148148 let ad = getString(ab())
149149 if ($isInstanceOf(ad, "String"))
150150 then {
151151 let ae = ad
152152 fromBase58String(ae)
153153 }
154154 else if ($isInstanceOf(ad, "Unit"))
155155 then unit
156156 else throw("Match error")
157157 }
158158
159159
160160 let ag = throw("Permission denied")
161161
162162 func ah (ai) = if ((ai.caller == this))
163163 then true
164164 else ag
165165
166166
167167 func aj (ai) = {
168168 let ad = ac()
169169 if ($isInstanceOf(ad, "ByteVector"))
170170 then {
171171 let ak = ad
172172 if ((ai.callerPublicKey == ak))
173173 then true
174174 else ag
175175 }
176176 else if ($isInstanceOf(ad, "Unit"))
177177 then ah(ai)
178178 else throw("Match error")
179179 }
180180
181181
182182 let al = valueOrElse(getBoolean(A()), false)
183183
184184 func am (ai) = if (if (!(al))
185185 then true
186186 else aj(ai))
187187 then true
188188 else throw("operation is disabled")
189189
190190
191191 let an = addressFromStringValue(l(this, s()))
192192
193193 let ao = addressFromStringValue(l(this, t()))
194194
195195 let ap = addressFromStringValue(l(this, u()))
196196
197197 let aq = addressFromStringValue(l(this, v()))
198198
199199 let ar = addressFromStringValue(l(this, w()))
200200
201201 let as = addressFromStringValue(l(this, x()))
202202
203203 let at = n(l(this, y()))
204204
205205 let au = n(l(this, z()))
206206
207207 let av = 1440
208208
209209 let aw = valueOrElse(getInteger(this, B()), av)
210210
211211 let ax = 100000000
212212
213213 let ay = fraction(1, ax, 2)
214214
215215 let az = valueOrElse(getInteger(this, C()), ay)
216216
217217 func aA (aB) = {
218218 let aC = p(aB)
219219 let aD = p(at)
220220 let aE = {
221221 let aF = invoke(an, "poolInfoREADONLY", [aC, aD], nil)
222222 if ($isInstanceOf(aF, "(Address, ByteVector)"))
223223 then aF
224224 else unit
225225 }
226226 aE
227227 }
228228
229229
230230 func aG (aH,G) = {
231231 let aI = valueOrErrorMessage(assetInfo(G), "failed to get share asset info")
232232 let aJ = aI.quantity
233233 let aK = q(valueOrErrorMessage({
234234 let aF = invoke(ap, "stakedByUserREADONLY", [p(aH), toString(this)], nil)
235235 if ($isInstanceOf(aF, "Int"))
236236 then aF
237237 else unit
238238 }, f("invalid stakedByUserREADONLY result")))
239239 let aL = if ((aJ == 0))
240240 then e
241241 else fraction(toBigInt(aK), e, toBigInt(aJ), FLOOR)
242242 aL
243243 }
244244
245245
246246 @Callable(ai)
247247 func setManager (aM) = {
248248 let aN = aj(ai)
249249 if ((aN == aN))
250250 then {
251251 let aO = fromBase58String(aM)
252252 if ((aO == aO))
253253 then [StringEntry(ab(), aM)]
254254 else throw("Strict value is not equal to itself.")
255255 }
256256 else throw("Strict value is not equal to itself.")
257257 }
258258
259259
260260
261261 @Callable(ai)
262262 func confirmManager () = {
263263 let aP = af()
264264 let aQ = if (isDefined(aP))
265265 then true
266266 else h("no pending manager")
267267 if ((aQ == aQ))
268268 then {
269269 let aR = if ((ai.callerPublicKey == value(aP)))
270270 then true
271271 else h("you are not pending manager")
272272 if ((aR == aR))
273273 then [StringEntry(aa(), toBase58String(value(aP))), DeleteEntry(ab())]
274274 else throw("Strict value is not equal to itself.")
275275 }
276276 else throw("Strict value is not equal to itself.")
277277 }
278278
279279
280280
281281 @Callable(ai)
282282 func create (aS,aT,aU,aV,aW) = {
283283 let aX = "LP_STAKING_POOLS"
284284 let E = n(aS)
285285 let aY = [aj(ai), if (isDefined(aA(E)))
286286 then true
287287 else h("invalid base asset")]
288288 if ((aY == aY))
289289 then {
290290 let aZ = [IntegerEntry(H(E), 0)]
291291 if ((aT == ""))
292292 then {
293293 let ba = 1
294294 let bb = Issue(aU, aV, ba, b, true)
295295 let bc = calculateAssetId(bb)
296296 let bd = Burn(bc, ba)
297297 let be = toBase58String(bc)
298298 let bf = invoke(as, "createOrUpdate", [be, aW, false], nil)
299299 if ((bf == bf))
300300 then {
301301 let bg = invoke(as, "addLabel", [be, aX], nil)
302302 if ((bg == bg))
303303 then $Tuple2((aZ ++ [bb, bd, StringEntry(D(E), be), StringEntry(F(bc), aS)]), be)
304304 else throw("Strict value is not equal to itself.")
305305 }
306306 else throw("Strict value is not equal to itself.")
307307 }
308308 else {
309309 let G = fromBase58String(aT)
310310 let aI = valueOrErrorMessage(assetInfo(G), f("invalid share asset id"))
311311 let bh = if ((aI.issuer == ao))
312312 then true
313313 else h("invalid share asset id issuer")
314314 if ((bh == bh))
315315 then $Tuple2((aZ ++ [StringEntry(D(E), aT), StringEntry(D(G), aS)]), aT)
316316 else throw("Strict value is not equal to itself.")
317317 }
318318 }
319319 else throw("Strict value is not equal to itself.")
320320 }
321321
322322
323323
324324 @Callable(ai)
325325 func put () = {
326326 let bi = if ((size(ai.payments) == 1))
327327 then ai.payments[0]
328328 else h("exactly 1 payment is expected")
329329 let E = bi.assetId
330330 let N = ai.caller
331331 let aY = [am(ai), if (isDefined(getString(D(E))))
332332 then true
333333 else h("invalid asset")]
334334 if ((aY == aY))
335335 then {
336336 let bj = valueOrErrorMessage(aA(E), f("invalid asset"))
337337 let bk = bj._1
338338 let aH = bj._2
339339 let J = value(getInteger(H(E)))
340340 let bl = getInteger(O(E, N))
341341 let bm = if ((bl == unit))
342342 then unit
343343 else {
344344 let bn = value(bl)
345345 if ((bn == J))
346346 then unit
347347 else invoke(this, "claimShareAsset", [p(E), toString(N)], nil)
348348 }
349349 if ((bm == bm))
350350 then {
351351 let bo = valueOrElse(getInteger(K(E)), 0)
352352 let bp = valueOrElse(getInteger(M(E, N)), 0)
353353 $Tuple2([IntegerEntry(K(E), (bo + bi.amount)), IntegerEntry(M(E, N), (bp + bi.amount)), IntegerEntry(O(E, N), J), IntegerEntry(X(E, "put", J, N, ai.transactionId), bi.amount)], unit)
354354 }
355355 else throw("Strict value is not equal to itself.")
356356 }
357357 else throw("Strict value is not equal to itself.")
358358 }
359359
360360
361361
362362 @Callable(ai)
363363 func claimShareAsset (aS,bq) = {
364364 let aY = [am(ai)]
365365 if ((aY == aY))
366366 then {
367367 let N = if ((bq == ""))
368368 then ai.caller
369369 else {
370370 let aN = ah(ai)
371371 if ((aN == aN))
372372 then valueOrErrorMessage(addressFromString(bq), f("invalid user address"))
373373 else throw("Strict value is not equal to itself.")
374374 }
375375 if ((N == N))
376376 then {
377377 let E = n(aS)
378378 let G = value(n(valueOrErrorMessage(getString(D(E)), f("invalid base asset id"))))
379379 if ((G == G))
380380 then {
381381 let J = valueOrErrorMessage(getInteger(H(E)), f("invalid period"))
382382 if ((J == J))
383383 then {
384384 let bp = valueOrElse(getInteger(M(E, N)), 0)
385385 let br = if ((bp > 0))
386386 then true
387387 else h("nothing to claim")
388388 if ((br == br))
389389 then {
390390 let bn = valueOrErrorMessage(getInteger(O(E, N)), f("failed to get period"))
391391 let bs = if ((J > bn))
392392 then true
393393 else h("invalid period")
394394 if ((bs == bs))
395395 then {
396396 let aL = toBigInt(valueOrErrorMessage(getBinary(T(E, bn)), f("failed to get price")))
397397 let bt = toInt(fraction(toBigInt(bp), e, aL))
398398 $Tuple2([IntegerEntry(M(E, N), 0), ScriptTransfer(N, bt, G), IntegerEntry(X(E, "claimShareAsset", J, N, ai.transactionId), bt)], unit)
399399 }
400400 else throw("Strict value is not equal to itself.")
401401 }
402402 else throw("Strict value is not equal to itself.")
403403 }
404404 else throw("Strict value is not equal to itself.")
405405 }
406406 else throw("Strict value is not equal to itself.")
407407 }
408408 else throw("Strict value is not equal to itself.")
409409 }
410410 else throw("Strict value is not equal to itself.")
411411 }
412412
413413
414414
415415 @Callable(ai)
416416 func get () = {
417417 let aY = [am(ai)]
418418 if ((aY == aY))
419419 then {
420420 let bi = if ((size(ai.payments) == 1))
421421 then ai.payments[0]
422422 else h("exactly 1 payment is expected")
423423 let G = bi.assetId
424424 let E = value(n(valueOrErrorMessage(getString(F(G)), f("invalid share asset id"))))
425425 if ((E == E))
426426 then {
427427 let N = ai.caller
428428 let bu = valueOrErrorMessage(aA(E), f("invalid asset"))
429429 let bk = bu._1
430430 let aH = bu._2
431431 let J = value(getInteger(H(E)))
432432 let bv = getInteger(Q(E, N))
433433 let bw = if ((bv == unit))
434434 then unit
435435 else {
436436 let bx = value(bv)
437437 if ((bx == J))
438438 then unit
439439 else invoke(this, "claimBaseAsset", [N], nil)
440440 }
441441 if ((bw == bw))
442442 then {
443443 let by = valueOrElse(getInteger(L(E)), 0)
444444 let bz = valueOrElse(getInteger(P(E, N)), 0)
445445 $Tuple2([IntegerEntry(L(E), (by + bi.amount)), IntegerEntry(P(E, N), (bz + bi.amount)), IntegerEntry(Q(E, N), J), IntegerEntry(X(E, "get", J, N, ai.transactionId), bi.amount)], unit)
446446 }
447447 else throw("Strict value is not equal to itself.")
448448 }
449449 else throw("Strict value is not equal to itself.")
450450 }
451451 else throw("Strict value is not equal to itself.")
452452 }
453453
454454
455455
456456 @Callable(ai)
457457 func claimBaseAsset (aS,bq) = {
458458 let aY = [am(ai)]
459459 if ((aY == aY))
460460 then {
461461 let N = if ((bq == ""))
462462 then ai.caller
463463 else {
464464 let aN = ah(ai)
465465 if ((aN == aN))
466466 then valueOrErrorMessage(addressFromString(bq), f("invalid user address"))
467467 else throw("Strict value is not equal to itself.")
468468 }
469469 if ((N == N))
470470 then {
471471 let E = n(aS)
472472 let G = value(n(valueOrErrorMessage(getString(D(E)), f("invalid base asset id"))))
473473 if ((G == G))
474474 then {
475475 let J = valueOrErrorMessage(getInteger(H(E)), f("invalid period"))
476476 if ((J == J))
477477 then {
478478 let bz = valueOrElse(getInteger(P(E, N)), 0)
479479 let br = if ((bz > 0))
480480 then true
481481 else h("nothing to claim")
482482 if ((br == br))
483483 then {
484484 let bx = valueOrErrorMessage(getInteger(Q(E, N)), f("failed to get period"))
485485 let bs = if ((J > bx))
486486 then true
487487 else h("invalid period")
488488 if ((bs == bs))
489489 then {
490490 let aL = toBigInt(valueOrErrorMessage(getBinary(V(E, bx)), f("failed to get price")))
491491 let bA = toInt(fraction(toBigInt(bz), aL, e))
492492 $Tuple2([IntegerEntry(P(E, N), 0), ScriptTransfer(N, bA, E), IntegerEntry(X(E, "claimBaseAsset", J, N, ai.transactionId), bA)], unit)
493493 }
494494 else throw("Strict value is not equal to itself.")
495495 }
496496 else throw("Strict value is not equal to itself.")
497497 }
498498 else throw("Strict value is not equal to itself.")
499499 }
500500 else throw("Strict value is not equal to itself.")
501501 }
502502 else throw("Strict value is not equal to itself.")
503503 }
504504 else throw("Strict value is not equal to itself.")
505505 }
506506
507507
508508
509509 @Callable(ai)
510510 func finalize (aS) = {
511511 let aY = [am(ai)]
512512 if ((aY == aY))
513513 then {
514514 let E = n(aS)
515515 let G = value(n(valueOrErrorMessage(getString(D(E)), f("invalid base asset id"))))
516516 if ((G == G))
517517 then {
518518 let J = valueOrErrorMessage(getInteger(H(E)), f("invalid period"))
519519 if ((J == J))
520520 then {
521521 let bB = getInteger(I(E, J))
522522 let bC = if ((bB == unit))
523523 then unit
524524 else {
525525 let bD = (height - value(bB))
526- let bE = min([0, (aw - bD)])
526+ let bE = max([0, (aw - bD)])
527527 if ((bE == 0))
528528 then unit
529529 else h(makeString(["finalization will be possible in ", toString(bE), " blocks"], ""))
530530 }
531531 if ((bC == bC))
532532 then {
533533 let bF = valueOrErrorMessage(aA(E), f("invalid asset"))
534534 let bk = bF._1
535535 let aH = bF._2
536536 let bG = valueOrErrorMessage({
537537 let aF = invoke(ap, "claimWx", [p(aH)], nil)
538538 if ($isInstanceOf(aF, "Int"))
539539 then aF
540540 else unit
541541 }, f("invalid claimWx result"))
542542 if ((bG == bG))
543543 then {
544- let bH = if ((bG > 0))
544+ let bo = valueOrElse(getInteger(K(E)), 0)
545+ let by = valueOrElse(getInteger(L(E)), 0)
546+ let bH = {
547+ let bI = if (if ((bG > 0))
548+ then true
549+ else (bo > 0))
550+ then true
551+ else (by > 0)
552+ if (bI)
553+ then true
554+ else h("nothing to finalize")
555+ }
556+ if ((bH == bH))
545557 then {
546- let bI = fraction(bG, az, ax)
547- let bJ = (bG - bI)
548- let bK = invoke(aq, "userMaxDurationREADONLY", [toString(this)], nil)
549- let bL = if ((bI > 0))
558+ let bJ = if ((bG > 0))
550559 then {
551- let ad = bK
552- if (if (if ($isInstanceOf(ad._1, "String"))
553- then $isInstanceOf(ad._2, "Int")
554- else false)
555- then $isInstanceOf(ad, "(String, Int)")
556- else false)
560+ let bK = fraction(bG, az, ax)
561+ let bL = (bG - bK)
562+ let bM = invoke(aq, "userMaxDurationREADONLY", [toString(this)], nil)
563+ let bN = if ((bK > 0))
557564 then {
558- let bM = ad._1
559- let bN = ad._2
560- if ((bI > 0))
561- then invoke(aq, bM, [bN], [AttachedPayment(au, bI)])
562- else unit
565+ let ad = bM
566+ if (if (if ($isInstanceOf(ad._1, "String"))
567+ then $isInstanceOf(ad._2, "Int")
568+ else false)
569+ then $isInstanceOf(ad, "(String, Int)")
570+ else false)
571+ then {
572+ let bO = ad._1
573+ let bP = ad._2
574+ if ((bK > 0))
575+ then invoke(aq, bO, [bP], [AttachedPayment(au, bK)])
576+ else unit
577+ }
578+ else h("invalid lock params")
563579 }
564- else h("invalid lock params")
565- }
566- else unit
567- if ((bL == bL))
568- then {
569- let bO = if ((bJ > 0))
580+ else unit
581+ if ((bN == bN))
570582 then {
571- let bP = au
572- let bQ = 0
573- let bR = p(at)
574- let bS = ""
575- valueOrErrorMessage({
576- let aF = invoke(ar, "swap", [bQ, bR, bS], [AttachedPayment(bP, bJ)])
577- if ($isInstanceOf(aF, "Int"))
578- then aF
579- else unit
580- }, f("invalid swap result"))
581- }
582- else 0
583- if ((bO == bO))
584- then {
585- let bT = if ((bO > 0))
583+ let bQ = if ((bL > 0))
586584 then {
587- let bU = 0
588- let bV = true
585+ let bR = au
586+ let bS = 0
587+ let bT = p(at)
588+ let bU = ""
589589 valueOrErrorMessage({
590- let aF = invoke(bk, "putOneTknV2", [bU, bV], [AttachedPayment(at, bO)])
590+ let aF = invoke(ar, "swap", [bS, bT, bU], [AttachedPayment(bR, bL)])
591591 if ($isInstanceOf(aF, "Int"))
592592 then aF
593593 else unit
594- }, f("invalid putOneTknV2 result"))
594+ }, f("invalid swap result"))
595595 }
596596 else 0
597- if ((bT == bT))
598- then bT
599- else throw("Strict value is not equal to itself.")
600- }
601- else throw("Strict value is not equal to itself.")
602- }
603- else throw("Strict value is not equal to itself.")
604- }
605- else unit
606- if ((bH == bH))
607- then {
608- let by = valueOrElse(getInteger(L(E)), 0)
609- let bW = if ((by > 0))
610- then {
611- let aL = aG(aH, G)
612- if ((aL == aL))
613- then {
614- let bX = toInt(fraction(toBigInt(by), aL, e, FLOOR))
615- let bA = {
616- let bY = E
617- let bU = 0
618- valueOrErrorMessage({
619- let aF = invoke(bk, "unstakeAndGetOneTknV2", [bX, p(bY), bU], nil)
620- if ($isInstanceOf(aF, "Int"))
621- then aF
622- else unit
623- }, f("invalid unstakeAndGetOneTknV2 result"))
624- }
625- if ((bA == bA))
597+ if ((bQ == bQ))
626598 then {
627- let bZ = [Burn(G, by)]
628- let ca = fraction(toBigInt(bA), e, toBigInt(by), FLOOR)
629- let cb = [BinaryEntry(V(E, J), toBytes(ca)), StringEntry(W(E), toString(ca))]
630- (bZ ++ cb)
599+ let bV = if ((bQ > 0))
600+ then {
601+ let bW = 0
602+ let bX = true
603+ valueOrErrorMessage({
604+ let aF = invoke(bk, "putOneTknV2", [bW, bX], [AttachedPayment(at, bQ)])
605+ if ($isInstanceOf(aF, "Int"))
606+ then aF
607+ else unit
608+ }, f("invalid putOneTknV2 result"))
609+ }
610+ else 0
611+ if ((bV == bV))
612+ then bV
613+ else throw("Strict value is not equal to itself.")
631614 }
632615 else throw("Strict value is not equal to itself.")
633616 }
634617 else throw("Strict value is not equal to itself.")
635618 }
636- else nil
637- let bo = valueOrElse(getInteger(K(E)), 0)
638- let cc = if ((bo > 0))
619+ else unit
620+ if ((bJ == bJ))
639621 then {
640- let bT = {
641- let bU = 0
642- let bV = true
643- valueOrErrorMessage({
644- let aF = invoke(bk, "putOneTknV2", [bU, bV], [AttachedPayment(E, bo)])
645- if ($isInstanceOf(aF, "Int"))
646- then aF
647- else unit
648- }, f("invalid putOneTknV2 result"))
649- }
650- if ((bT == bT))
622+ let bY = if ((by > 0))
651623 then {
652624 let aL = aG(aH, G)
653625 if ((aL == aL))
654626 then {
655- let bt = toInt(fraction(toBigInt(bT), e, aL, FLOOR))
656- let cd = true
657- let ce = [Reissue(G, bt, cd)]
658- let cf = fraction(toBigInt(bo), e, toBigInt(bt))
659- let cg = [BinaryEntry(T(E, J), toBytes(cf)), StringEntry(U(E), toString(cf))]
660- (ce ++ cg)
627+ let bZ = toInt(fraction(toBigInt(by), aL, e, FLOOR))
628+ let bA = {
629+ let ca = E
630+ let bW = 0
631+ valueOrErrorMessage({
632+ let aF = invoke(bk, "unstakeAndGetOneTknV2", [bZ, p(ca), bW], nil)
633+ if ($isInstanceOf(aF, "Int"))
634+ then aF
635+ else unit
636+ }, f("invalid unstakeAndGetOneTknV2 result"))
637+ }
638+ if ((bA == bA))
639+ then {
640+ let cb = [Burn(G, by)]
641+ let cc = fraction(toBigInt(bA), e, toBigInt(by), FLOOR)
642+ let cd = [BinaryEntry(V(E, J), toBytes(cc)), StringEntry(W(E), toString(cc))]
643+ (cb ++ cd)
644+ }
645+ else throw("Strict value is not equal to itself.")
661646 }
662647 else throw("Strict value is not equal to itself.")
663648 }
664- else throw("Strict value is not equal to itself.")
649+ else nil
650+ let ce = if ((bo > 0))
651+ then {
652+ let bV = {
653+ let bW = 0
654+ let bX = true
655+ valueOrErrorMessage({
656+ let aF = invoke(bk, "putOneTknV2", [bW, bX], [AttachedPayment(E, bo)])
657+ if ($isInstanceOf(aF, "Int"))
658+ then aF
659+ else unit
660+ }, f("invalid putOneTknV2 result"))
661+ }
662+ if ((bV == bV))
663+ then {
664+ let aL = aG(aH, G)
665+ if ((aL == aL))
666+ then {
667+ let bt = toInt(fraction(toBigInt(bV), e, aL, FLOOR))
668+ let cf = true
669+ let cg = [Reissue(G, bt, cf)]
670+ let ch = fraction(toBigInt(bo), e, toBigInt(bt))
671+ let ci = [BinaryEntry(T(E, J), toBytes(ch)), StringEntry(U(E), toString(ch))]
672+ (cg ++ ci)
673+ }
674+ else throw("Strict value is not equal to itself.")
675+ }
676+ else throw("Strict value is not equal to itself.")
677+ }
678+ else nil
679+ let cj = (J + 1)
680+ let ck = aG(aH, G)
681+ let cl = (([IntegerEntry(H(E), cj), IntegerEntry(I(E, cj), height), IntegerEntry(L(E), 0), IntegerEntry(K(E), 0), BinaryEntry(R(E, J), toBytes(ck)), StringEntry(S(E), toString(ck))] ++ ce) ++ bY)
682+ $Tuple2(cl, toBytes(ck))
665683 }
666- else nil
667- let ch = (J + 1)
668- let ci = aG(aH, G)
669- let cj = (([IntegerEntry(H(E), ch), IntegerEntry(I(E, ch), height), IntegerEntry(L(E), 0), IntegerEntry(K(E), 0), BinaryEntry(R(E, J), toBytes(ci)), StringEntry(S(E), toString(ci))] ++ cc) ++ bW)
670- $Tuple2(cj, toBytes(ci))
684+ else throw("Strict value is not equal to itself.")
671685 }
672686 else throw("Strict value is not equal to itself.")
673687 }
674688 else throw("Strict value is not equal to itself.")
675689 }
676690 else throw("Strict value is not equal to itself.")
677691 }
678692 else throw("Strict value is not equal to itself.")
679693 }
680694 else throw("Strict value is not equal to itself.")
681695 }
682696 else throw("Strict value is not equal to itself.")
683697 }
684698
685699
686-@Verifier(ck)
687-func cl () = {
688- let cm = {
700+@Verifier(cm)
701+func cn () = {
702+ let co = {
689703 let ad = ac()
690704 if ($isInstanceOf(ad, "ByteVector"))
691705 then {
692706 let ak = ad
693707 ak
694708 }
695709 else if ($isInstanceOf(ad, "Unit"))
696- then ck.senderPublicKey
710+ then cm.senderPublicKey
697711 else throw("Match error")
698712 }
699- sigVerify(ck.bodyBytes, ck.proofs[0], cm)
713+ sigVerify(cm.bodyBytes, cm.proofs[0], co)
700714 }
701715

github/deemru/w8io/169f3d6 
165.66 ms