tx · HPTgsRShEbRWtJ58XCMatJAsh6Rj5ggKzNfUN1ML5s7N

3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA:  -0.03500000 Waves

2022.09.14 13:27 [2228646] smart account 3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA > SELF 0.00000000 Waves

{ "type": 13, "id": "HPTgsRShEbRWtJ58XCMatJAsh6Rj5ggKzNfUN1ML5s7N", "fee": 3500000, "feeAssetId": null, "timestamp": 1663151277650, "version": 2, "chainId": 84, "sender": "3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA", "senderPublicKey": "35yd3qw1gxKDxKwGAykHN9fANbXNWwseaUwbWDj24o3x", "proofs": [ "KEXDYSEggKVjDyh8iPRSzFLDn5DB3EtvhvAm6P2N7W9WVWeGKJocmT1EyXhoCRMWb8n7QUPymPaN5W5M7duuKK5" ], "script": "base64:BgKTAQgCEgMKAQgSAwoBCBIAEgQKAgEEEgcKBQEBAQEEEgQKAgEEEgMKAQESABIHCgUBAQEIARIECgIIARIECgIBARIDCgEBEgYKBAEBCAESBAoCCAgSBAoCCAgSBAoCCAESABIDCgEIEgUKAwEBARIECgIIARIECgIBARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCFIABnNjYWxlOACAwtcvAAxzY2FsZThCaWdJbnQJALYCAQCAwtcvAAdzY2FsZTE4CQC2AgEAgICQu7rWrfANAAp6ZXJvQmlnSW50CQC2AgEAAAAJb25lQmlnSW50CQC2AgEAAQAKc2xpcHBhZ2U0RAkAtgIBCQBlAgUGc2NhbGU4CQBpAgkAaAIFBnNjYWxlOAABBQZzY2FsZTgABUFtdWx0AgMxMDAABURjb252AgExAANTRVACAl9fAAVFTVBUWQIAAApQb29sQWN0aXZlAAEAClBvb2xQdXREaXMAAgAOUG9vbE1hdGNoZXJEaXMAAwAMUG9vbFNodXRkb3duAAQADmlkeFBvb2xBZGRyZXNzAAEACWlkeFBvb2xTdAACAAlpZHhMUEFzSWQAAwAJaWR4QW1Bc0lkAAQACWlkeFByQXNJZAAFAAtpZHhBbXRBc0RjbQAGAA1pZHhQcmljZUFzRGNtAAcAC2lkeElBbXRBc0lkAAgADWlkeElQcmljZUFzSWQACQAPaWR4RmFjdFN0YWtDbnRyAAEAEGlkeEZhY3RTbGlwcENudHIABwARaWR4RmFjdEd3eFJld0NudHIACgAFZGVsYXkCCSVzX19kZWxheQECdDECB29yaWdWYWwNb3JpZ1NjYWxlTXVsdAkAvAIDCQC2AgEFB29yaWdWYWwFB3NjYWxlMTgJALYCAQUNb3JpZ1NjYWxlTXVsdAECZjECA3ZhbA9yZXN1bHRTY2FsZU11bHQJAKADAQkAvAIDBQN2YWwJALYCAQUPcmVzdWx0U2NhbGVNdWx0BQdzY2FsZTE4AQJ0cwMDYW10CHJlc1NjYWxlCGN1clNjYWxlCQBrAwUDYW10BQhyZXNTY2FsZQUIY3VyU2NhbGUBA2FicwEDdmFsAwkAvwICBQp6ZXJvQmlnSW50BQN2YWwJAL4CAQUDdmFsBQN2YWwBAmZjAAITJXNfX2ZhY3RvcnlDb250cmFjdAEDbXBrAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBBHBtcGsAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAnBsAAIRJXMlc19fcHJpY2VfX2xhc3QBAnBoAgFoAXQJALkJAgkAzAgCAhglcyVzJWQlZF9fcHJpY2VfX2hpc3RvcnkJAMwIAgkApAMBBQFoCQDMCAIJAKQDAQUBdAUDbmlsBQNTRVABA3BhdQICdWEEdHhJZAkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAnVhAgJfXwUEdHhJZAEDZ2F1AgJ1YQR0eElkCQCsAgIJAKwCAgkArAICAgslcyVzJXNfX0dfXwUCdWECAl9fBQR0eElkAQJhYQACDyVzX19hbW91bnRBc3NldAECcGEAAg4lc19fcHJpY2VBc3NldAEDYW1wAAIHJXNfX2FtcAEDYWRhAAINJXNfX2FkZG9uQWRkcgEFbGdvdGMBBmNhbGxlcgkAuQkCCQDMCAICFyVzJXNfX2xhc3RHZXRPbmVUa25DYWxsCQDMCAIFBmNhbGxlcgUDbmlsBQNTRVABBWxzb3RjAQZjYWxsZXIJALkJAgkAzAgCAhclcyVzX19sYXN0UHV0T25lVGtuQ2FsbAkAzAgCBQZjYWxsZXIFA25pbAUDU0VQAQRmY2ZnAAIRJXNfX2ZhY3RvcnlDb25maWcBBG10cGsAAhglcyVzX19tYXRjaGVyX19wdWJsaWNLZXkBAnBjAgZpQW10QXMFaVByQXMJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FBmlBbXRBcwICX18FBWlQckFzAghfX2NvbmZpZwEDbWJhAQViQVN0cgkArAICAiglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQViQVN0cgEDYXBzAAIMJXNfX3NodXRkb3duARxrZXlBbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoAAIdJXNfX2FsbG93ZWRMcFN0YWJsZVNjcmlwdEhhc2gBA3RvZQMDb3JWBnNlbmRyVgZtYXRjaFYJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIRRmFpbGVkOiBvcmRWYWxpZD0JAKUDAQUDb3JWAgsgc25kclZhbGlkPQkApQMBBQZzZW5kclYCDCBtdGNoclZhbGlkPQkApQMBBQZtYXRjaFYBA3N0cgEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZ2YWxTdHIFByRtYXRjaDAFBnZhbFN0cgkAAgECE2ZhaWwgY2FzdCB0byBTdHJpbmcBBHN0cmYCBGFkZHIDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEYWRkcgUDa2V5CQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFBGFkZHIJAMwIAgIBLgkAzAgCBQNrZXkJAMwIAgIMIG5vdCBkZWZpbmVkBQNuaWwCAAEEaW50ZgIEYWRkcgNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQRhZGRyBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUEYWRkcgkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAgwgbm90IGRlZmluZWQFA25pbAIAAANmY2EJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQRzdHJmAgUEdGhpcwkBAmZjAAABQQkBBHN0cmYCBQR0aGlzCQEDYW1wAAEDaWdzAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQNmY2EJAQNhcHMABwECbXAACQDZBAEJAQRzdHJmAgUDZmNhCQEEbXRwawABA2dwYwAEBWFtdEFzCQEEc3RyZgIFBHRoaXMJAQJhYQAEB3ByaWNlQXMJAQRzdHJmAgUEdGhpcwkBAnBhAAQIaVByaWNlQXMJAQRpbnRmAgUDZmNhCQEDbWJhAQUHcHJpY2VBcwQGaUFtdEFzCQEEaW50ZgIFA2ZjYQkBA21iYQEFBWFtdEFzCQC1CQIJAQRzdHJmAgUDZmNhCQECcGMCCQCkAwEFBmlBbXRBcwkApAMBBQhpUHJpY2VBcwUDU0VQAQNnZmMACQC1CQIJAQRzdHJmAgUDZmNhCQEEZmNmZwAFA1NFUAANZmFjdG9yeUNvbmZpZwkBA2dmYwAAD3N0YWtpbmdDb250cmFjdAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUNZmFjdG9yeUNvbmZpZwUPaWR4RmFjdFN0YWtDbnRyAiBJbnZhbGlkIHN0YWtpbmcgY29udHJhY3QgYWRkcmVzcwAPc2xpcGFnZUNvbnRyYWN0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQ1mYWN0b3J5Q29uZmlnBRBpZHhGYWN0U2xpcHBDbnRyAiBJbnZhbGlkIHNsaXBhZ2UgY29udHJhY3QgYWRkcmVzcwALZ3d4Q29udHJhY3QJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFDWZhY3RvcnlDb25maWcFEWlkeEZhY3RHd3hSZXdDbnRyAhxJbnZhbGlkIGd3eCBjb250cmFjdCBhZGRyZXNzARFkYXRhUHV0QWN0aW9uSW5mbwoNaW5BbXRBc3NldEFtdA9pblByaWNlQXNzZXRBbXQIb3V0THBBbXQFcHJpY2UKc2xpcEJ5VXNlcgxzbGlwcGFnZVJlYWwIdHhIZWlnaHQLdHhUaW1lc3RhbXAMc2xpcGFnZUFtQW10DHNsaXBhZ2VQckFtdAkAuQkCCQDMCAICFCVkJWQlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUNaW5BbXRBc3NldEFtdAkAzAgCCQCkAwEFD2luUHJpY2VBc3NldEFtdAkAzAgCCQCkAwEFCG91dExwQW10CQDMCAIJAKQDAQUFcHJpY2UJAMwIAgkApAMBBQpzbGlwQnlVc2VyCQDMCAIJAKQDAQUMc2xpcHBhZ2VSZWFsCQDMCAIJAKQDAQUIdHhIZWlnaHQJAMwIAgkApAMBBQt0eFRpbWVzdGFtcAkAzAgCCQCkAwEFDHNsaXBhZ2VBbUFtdAkAzAgCCQCkAwEFDHNsaXBhZ2VQckFtdAUDbmlsBQNTRVABEWRhdGFHZXRBY3Rpb25JbmZvBg5vdXRBbXRBc3NldEFtdBBvdXRQcmljZUFzc2V0QW10B2luTHBBbXQFcHJpY2UIdHhIZWlnaHQLdHhUaW1lc3RhbXAJALkJAgkAzAgCAgwlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQ5vdXRBbXRBc3NldEFtdAkAzAgCCQCkAwEFEG91dFByaWNlQXNzZXRBbXQJAMwIAgkApAMBBQdpbkxwQW10CQDMCAIJAKQDAQUFcHJpY2UJAMwIAgkApAMBBQh0eEhlaWdodAkAzAgCCQCkAwEFC3R4VGltZXN0YW1wBQNuaWwFA1NFUAENZ2V0QWNjQmFsYW5jZQEHYXNzZXRJZAMJAAACBQdhc3NldElkAgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQdhc3NldElkAQRjcGJpAghwckFtdFgxOAhhbUFtdFgxOAkAvAIDBQhwckFtdFgxOAUHc2NhbGUxOAUIYW1BbXRYMTgBA3ZhZAMCQTECQTIIc2xpcHBhZ2UEBGRpZmYJALwCAwkAuAICBQJBMQUCQTIFDHNjYWxlOEJpZ0ludAUCQTIEBHBhc3MJAL8CAgkAuAICBQhzbGlwcGFnZQkBA2FicwEFBGRpZmYFCnplcm9CaWdJbnQDCQEBIQEFBHBhc3MJAAIBCQCsAgICCkJpZyBzbHBnOiAJAKYDAQUEZGlmZgkAlAoCBQRwYXNzCQCZAwEJAMwIAgUCQTEJAMwIAgUCQTIFA25pbAECdmQDAkQxAkQwBHNscGcEBGRpZmYJALwCAwUCRDAFDHNjYWxlOEJpZ0ludAUCRDEEBGZhaWwJAL8CAgUEc2xwZwUEZGlmZgMDBQRmYWlsBgkAvwICBQJEMAUCRDEJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCmAwEFAkQwAgEgCQCmAwEFAkQxAgEgCQCmAwEFBGRpZmYCASAJAKYDAQUEc2xwZwUEZmFpbAEDcGNwBAphbUFzc2V0RGNtCnByQXNzZXREY20FYW1BbXQFcHJBbXQEC2FtdEFzQW10WDE4CQECdDECBQVhbUFtdAUKYW1Bc3NldERjbQQKcHJBc0FtdFgxOAkBAnQxAgUFcHJBbXQFCnByQXNzZXREY20JAQRjcGJpAgUKcHJBc0FtdFgxOAULYW10QXNBbXRYMTgBCmNhbGNQcmljZXMDBWFtQW10BXByQW10BWxwQW10BANjZmcJAQNncGMABAhhbXRBc0RjbQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFA2NmZwULaWR4QW10QXNEY20EB3ByQXNEY20JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQNjZmcFDWlkeFByaWNlQXNEY20ECHByaWNlWDE4CQEDcGNwBAUIYW10QXNEY20FB3ByQXNEY20FBWFtQW10BQVwckFtdAQIYW1BbXRYMTgJAQJ0MQIFBWFtQW10BQhhbXRBc0RjbQQIcHJBbXRYMTgJAQJ0MQIFBXByQW10BQdwckFzRGNtBAhscEFtdFgxOAkBAnQxAgUFbHBBbXQFBnNjYWxlOAQNbHBQckluQW1Bc1gxOAkBBGNwYmkCBQhhbUFtdFgxOAUIbHBBbXRYMTgEDWxwUHJJblByQXNYMTgJAQRjcGJpAgUIcHJBbXRYMTgFCGxwQW10WDE4CQDMCAIFCHByaWNlWDE4CQDMCAIFDWxwUHJJbkFtQXNYMTgJAMwIAgUNbHBQckluUHJBc1gxOAUDbmlsAQ9jYWxjdWxhdGVQcmljZXMDBWFtQW10BXByQW10BWxwQW10BAFwCQEKY2FsY1ByaWNlcwMFBWFtQW10BQVwckFtdAUFbHBBbXQJAMwIAgkBAmYxAgkAkQMCBQFwAAAFBnNjYWxlOAkAzAgCCQECZjECCQCRAwIFAXAAAQUGc2NhbGU4CQDMCAIJAQJmMQIJAJEDAgUBcAACBQZzY2FsZTgFA25pbAEDZWdvBAZ0eElkNTgKcG10QXNzZXRJZAhwbXRMcEFtdAt1c2VyQWRkcmVzcwQDY2ZnCQEDZ3BjAAQEbHBJZAkAkQMCBQNjZmcFCWlkeExQQXNJZAQEYW1JZAkAkQMCBQNjZmcFCWlkeEFtQXNJZAQEcHJJZAkAkQMCBQNjZmcFCWlkeFByQXNJZAQFYW1EY20JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQNjZmcFC2lkeEFtdEFzRGNtBAVwckRjbQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFA2NmZwUNaWR4UHJpY2VBc0RjbQQDc3RzCQCRAwIFA2NmZwUJaWR4UG9vbFN0BAdscEVtaXNzCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEJANkEAQUEbHBJZAILV3JvbmcgTFAgaWQIcXVhbnRpdHkDCQECIT0CBQRscElkBQpwbXRBc3NldElkCQACAQIPV3JvbmcgcG10IGFzc2V0BAlhbUJhbGFuY2UJAQ1nZXRBY2NCYWxhbmNlAQUEYW1JZAQMYW1CYWxhbmNlWDE4CQECdDECBQlhbUJhbGFuY2UFBWFtRGNtBAlwckJhbGFuY2UJAQ1nZXRBY2NCYWxhbmNlAQUEcHJJZAQMcHJCYWxhbmNlWDE4CQECdDECBQlwckJhbGFuY2UFBXByRGNtBAtjdXJQcmljZVgxOAkBBGNwYmkCBQxwckJhbGFuY2VYMTgFDGFtQmFsYW5jZVgxOAQIY3VyUHJpY2UJAQJmMQIFC2N1clByaWNlWDE4BQZzY2FsZTgEC3BtdExwQW10WDE4CQECdDECBQhwbXRMcEFtdAUGc2NhbGU4BApscEVtaXNzWDE4CQECdDECBQdscEVtaXNzBQZzY2FsZTgEC291dEFtQW10WDE4CQC8AgMFDGFtQmFsYW5jZVgxOAULcG10THBBbXRYMTgFCmxwRW1pc3NYMTgEC291dFByQW10WDE4CQC8AgMFDHByQmFsYW5jZVgxOAULcG10THBBbXRYMTgFCmxwRW1pc3NYMTgECG91dEFtQW10CQECZjECBQtvdXRBbUFtdFgxOAUFYW1EY20ECG91dFByQW10CQECZjECBQtvdXRQckFtdFgxOAUFcHJEY20EBXN0YXRlAwkAAAIFBnR4SWQ1OAIABQNuaWwJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwULdXNlckFkZHJlc3MFCG91dEFtQW10AwkAAAIFBGFtSWQCBVdBVkVTBQR1bml0CQDZBAEFBGFtSWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwULdXNlckFkZHJlc3MFCG91dFByQW10AwkAAAIFBHBySWQCBVdBVkVTBQR1bml0CQDZBAEFBHBySWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBA2dhdQIJAKUIAQULdXNlckFkZHJlc3MFBnR4SWQ1OAkBEWRhdGFHZXRBY3Rpb25JbmZvBgUIb3V0QW1BbXQFCG91dFByQW10BQhwbXRMcEFtdAUIY3VyUHJpY2UFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJwbAAFCGN1clByaWNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECcGgCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQhjdXJQcmljZQUDbmlsCQCcCgoFCG91dEFtQW10BQhvdXRQckFtdAUEYW1JZAUEcHJJZAUJYW1CYWxhbmNlBQlwckJhbGFuY2UFB2xwRW1pc3MFC2N1clByaWNlWDE4BQNzdHMFBXN0YXRlAQNlcG8NBnR4SWQ1OAhzbGlwcGFnZQdpbkFtQW10BmluQW1JZAdpblByQW10BmluUHJJZAt1c2VyQWRkcmVzcwZpc0V2YWwGZW1pdExwCmlzT25lQXNzZXQQdmFsaWRhdGVTbGlwcGFnZQZwbXRBbXQFcG10SWQEA2NmZwkBA2dwYwAEBGxwSWQJANkEAQkAkQMCBQNjZmcFCWlkeExQQXNJZAQHYW1JZFN0cgkAkQMCBQNjZmcFCWlkeEFtQXNJZAQHcHJJZFN0cgkAkQMCBQNjZmcFCWlkeFByQXNJZAQJaW5BbUlkU3RyCQCRAwIFA2NmZwULaWR4SUFtdEFzSWQECWluUHJJZFN0cgkAkQMCBQNjZmcFDWlkeElQcmljZUFzSWQEBmFtdERjbQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFA2NmZwULaWR4QW10QXNEY20ECHByaWNlRGNtCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUDY2ZnBQ1pZHhQcmljZUFzRGNtBANzdHMJAJEDAgUDY2ZnBQlpZHhQb29sU3QEBGxwRW0ICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUEbHBJZAIIV3IgbHAgYXMIcXVhbnRpdHkECWFtQmFsYW5jZQMFBmlzRXZhbAkBDWdldEFjY0JhbGFuY2UBBQdhbUlkU3RyAwMFCmlzT25lQXNzZXQJAAACBQVwbXRJZAUHYW1JZFN0cgcJAGUCCQENZ2V0QWNjQmFsYW5jZQEFB2FtSWRTdHIFBnBtdEFtdAMFCmlzT25lQXNzZXQJAQ1nZXRBY2NCYWxhbmNlAQUHYW1JZFN0cgkAZQIJAQ1nZXRBY2NCYWxhbmNlAQUHYW1JZFN0cgUHaW5BbUFtdAQJcHJCYWxhbmNlAwUGaXNFdmFsCQENZ2V0QWNjQmFsYW5jZQEFB3BySWRTdHIDAwUKaXNPbmVBc3NldAkAAAIFBXBtdElkBQdwcklkU3RyBwkAZQIJAQ1nZXRBY2NCYWxhbmNlAQUHcHJJZFN0cgUGcG10QW10AwUKaXNPbmVBc3NldAkBDWdldEFjY0JhbGFuY2UBBQdwcklkU3RyCQBlAgkBDWdldEFjY0JhbGFuY2UBBQdwcklkU3RyBQdpblByQW10BA9pbkFtQXNzZXRBbXRYMTgJAQJ0MQIFB2luQW1BbXQFBmFtdERjbQQPaW5QckFzc2V0QW10WDE4CQECdDECBQdpblByQW10BQhwcmljZURjbQQMdXNlclByaWNlWDE4CQEEY3BiaQIFD2luUHJBc3NldEFtdFgxOAUPaW5BbUFzc2V0QW10WDE4BAxhbUJhbGFuY2VYMTgJAQJ0MQIFCWFtQmFsYW5jZQUGYW10RGNtBAxwckJhbGFuY2VYMTgJAQJ0MQIFCXByQmFsYW5jZQUIcHJpY2VEY20EAXIDCQAAAgUEbHBFbQAABAtjdXJQcmljZVgxOAUKemVyb0JpZ0ludAQLc2xpcHBhZ2VYMTgFCnplcm9CaWdJbnQECGxwQW10WDE4CQB2BgkAuQICBQ9pbkFtQXNzZXRBbXRYMTgFD2luUHJBc3NldEFtdFgxOAAACQC2AgEABQABAAAFBERPV04JAJcKBQkBAmYxAgUIbHBBbXRYMTgFBnNjYWxlOAkBAmYxAgUPaW5BbUFzc2V0QW10WDE4BQZhbXREY20JAQJmMQIFD2luUHJBc3NldEFtdFgxOAUIcHJpY2VEY20JAQRjcGJpAgkAtwICBQxwckJhbGFuY2VYMTgFD2luUHJBc3NldEFtdFgxOAkAtwICBQxhbUJhbGFuY2VYMTgFD2luQW1Bc3NldEFtdFgxOAULc2xpcHBhZ2VYMTgEC2N1clByaWNlWDE4CQEEY3BiaQIFDHByQmFsYW5jZVgxOAUMYW1CYWxhbmNlWDE4BA9zbGlwcGFnZVJlYWxYMTgJALwCAwkBA2FicwEJALgCAgULY3VyUHJpY2VYMTgFDHVzZXJQcmljZVgxOAUHc2NhbGUxOAULY3VyUHJpY2VYMTgEC3NsaXBwYWdlWDE4CQECdDECBQhzbGlwcGFnZQUGc2NhbGU4AwMDBRB2YWxpZGF0ZVNsaXBwYWdlCQECIT0CBQtjdXJQcmljZVgxOAUKemVyb0JpZ0ludAcJAL8CAgUPc2xpcHBhZ2VSZWFsWDE4BQtzbGlwcGFnZVgxOAcJAAIBCQCsAgIJAKwCAgkArAICAg9QcmljZSBzbGlwcGFnZSAJAKYDAQUPc2xpcHBhZ2VSZWFsWDE4AgMgPiAJAKYDAQULc2xpcHBhZ2VYMTgEDWxwRW1pc3Npb25YMTgJAQJ0MQIFBGxwRW0FBnNjYWxlOAQKcHJWaWFBbVgxOAkAvAIDBQ9pbkFtQXNzZXRBbXRYMTgFC2N1clByaWNlWDE4BQdzY2FsZTE4BAphbVZpYVByWDE4CQC8AgMFD2luUHJBc3NldEFtdFgxOAUHc2NhbGUxOAULY3VyUHJpY2VYMTgEDGV4cGVjdGVkQW10cwMJAL8CAgUKcHJWaWFBbVgxOAUPaW5QckFzc2V0QW10WDE4CQCUCgIFCmFtVmlhUHJYMTgFD2luUHJBc3NldEFtdFgxOAkAlAoCBQ9pbkFtQXNzZXRBbXRYMTgFCnByVmlhQW1YMTgEEWV4cEFtdEFzc2V0QW10WDE4CAUMZXhwZWN0ZWRBbXRzAl8xBBNleHBQcmljZUFzc2V0QW10WDE4CAUMZXhwZWN0ZWRBbXRzAl8yBAhscEFtdFgxOAkAvAIDBQ1scEVtaXNzaW9uWDE4BRNleHBQcmljZUFzc2V0QW10WDE4BQxwckJhbGFuY2VYMTgJAJcKBQkBAmYxAgUIbHBBbXRYMTgFBnNjYWxlOAkBAmYxAgURZXhwQW10QXNzZXRBbXRYMTgFBmFtdERjbQkBAmYxAgUTZXhwUHJpY2VBc3NldEFtdFgxOAUIcHJpY2VEY20FC2N1clByaWNlWDE4BQtzbGlwcGFnZVgxOAQJY2FsY0xwQW10CAUBcgJfMQQOY2FsY0FtQXNzZXRQbXQIBQFyAl8yBA5jYWxjUHJBc3NldFBtdAgFAXICXzMECGN1clByaWNlCQECZjECCAUBcgJfNAUGc2NhbGU4BAxzbGlwcGFnZUNhbGMJAQJmMQIIBQFyAl81BQZzY2FsZTgDCQBnAgAABQljYWxjTHBBbXQJAAIBAgdMUCA8PSAwBAllbWl0THBBbXQDCQEBIQEFBmVtaXRMcAAABQljYWxjTHBBbXQEBmFtRGlmZgkAZQIFB2luQW1BbXQFDmNhbGNBbUFzc2V0UG10BAZwckRpZmYJAGUCBQdpblByQW10BQ5jYWxjUHJBc3NldFBtdAQNJHQwMTYwODMxNjQyOAMDBQppc09uZUFzc2V0CQAAAgUFcG10SWQFB2FtSWRTdHIHCQCUCgIFBnBtdEFtdAAAAwMFCmlzT25lQXNzZXQJAAACBQVwbXRJZAUHcHJJZFN0cgcJAJQKAgAABQZwbXRBbXQJAJQKAgUOY2FsY0FtQXNzZXRQbXQFDmNhbGNQckFzc2V0UG10BAp3cml0ZUFtQW10CAUNJHQwMTYwODMxNjQyOAJfMQQKd3JpdGVQckFtdAgFDSR0MDE2MDgzMTY0MjgCXzIEC2NvbW1vblN0YXRlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECcGwABQhjdXJQcmljZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAnBoAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUIY3VyUHJpY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBA3BhdQIFC3VzZXJBZGRyZXNzBQZ0eElkNTgJARFkYXRhUHV0QWN0aW9uSW5mbwoFCndyaXRlQW1BbXQFCndyaXRlUHJBbXQFCWVtaXRMcEFtdAUIY3VyUHJpY2UFCHNsaXBwYWdlBQxzbGlwcGFnZUNhbGMFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFBmFtRGlmZgUGcHJEaWZmBQNuaWwJAJ8KDQUJY2FsY0xwQW10BQllbWl0THBBbXQFCGN1clByaWNlBQlhbUJhbGFuY2UFCXByQmFsYW5jZQUEbHBFbQUEbHBJZAUDc3RzBQtjb21tb25TdGF0ZQUGYW1EaWZmBQZwckRpZmYFBmluQW1JZAUGaW5QcklkAQNtb2EBBW9yZGVyBANjZmcJAQNncGMABAdhbXRBc0lkCQCRAwIFA2NmZwUJaWR4QW1Bc0lkBAZwckFzSWQJAJEDAgUDY2ZnBQlpZHhQckFzSWQEA3N0cwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFA2NmZwUJaWR4UG9vbFN0BAhhbXRBc0RjbQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFA2NmZwULaWR4QW10QXNEY20EB3ByQXNEY20JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQNjZmcFDWlkeFByaWNlQXNEY20ED2FjY0FtdEFzQmFsYW5jZQkBDWdldEFjY0JhbGFuY2UBBQdhbXRBc0lkBA5hY2NQckFzQmFsYW5jZQkBDWdldEFjY0JhbGFuY2UBBQZwckFzSWQEC2N1clByaWNlWDE4AwkAAAIIBQVvcmRlcglvcmRlclR5cGUFA0J1eQkBA3BjcAQFCGFtdEFzRGNtBQdwckFzRGNtCQBkAgUPYWNjQW10QXNCYWxhbmNlCAUFb3JkZXIGYW1vdW50BQ5hY2NQckFzQmFsYW5jZQkBA3BjcAQFCGFtdEFzRGNtBQdwckFzRGNtCQBlAgUPYWNjQW10QXNCYWxhbmNlCAUFb3JkZXIGYW1vdW50BQ5hY2NQckFzQmFsYW5jZQQIY3VyUHJpY2UJAQJmMQIFC2N1clByaWNlWDE4BQZzY2FsZTgDAwMJAQNpZ3MABgkAAAIFA3N0cwUOUG9vbE1hdGNoZXJEaXMGCQAAAgUDc3RzBQxQb29sU2h1dGRvd24JAAIBAg1BZG1pbiBibG9ja2VkBApvckFtdEFzc2V0CAgFBW9yZGVyCWFzc2V0UGFpcgthbW91bnRBc3NldAQKb3JBbXRBc1N0cgMJAAACBQpvckFtdEFzc2V0BQR1bml0AgVXQVZFUwkA2AQBCQEFdmFsdWUBBQpvckFtdEFzc2V0BAlvclByQXNzZXQICAUFb3JkZXIJYXNzZXRQYWlyCnByaWNlQXNzZXQECW9yUHJBc1N0cgMJAAACBQlvclByQXNzZXQFBHVuaXQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFCW9yUHJBc3NldAMDCQECIT0CBQpvckFtdEFzU3RyBQdhbXRBc0lkBgkBAiE9AgUJb3JQckFzU3RyBQZwckFzSWQJAAIBAglXciBhc3NldHMECm9yZGVyUHJpY2UIBQVvcmRlcgVwcmljZQQIcHJpY2VEY20JAGsDBQZzY2FsZTgFB3ByQXNEY20FCGFtdEFzRGNtBA5jYXN0T3JkZXJQcmljZQkBAnRzAwUKb3JkZXJQcmljZQUGc2NhbGU4BQhwcmljZURjbQQRaXNPcmRlclByaWNlVmFsaWQDCQAAAggFBW9yZGVyCW9yZGVyVHlwZQUDQnV5CQBnAgUIY3VyUHJpY2UFDmNhc3RPcmRlclByaWNlCQBnAgUOY2FzdE9yZGVyUHJpY2UFCGN1clByaWNlBgECY2cBAWkDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAgoxIHBtbnQgZXhwBANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQKcG10QXNzZXRJZAkBBXZhbHVlAQgFA3BtdAdhc3NldElkBAZwbXRBbXQIBQNwbXQGYW1vdW50BAFyCQEDZWdvBAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkCQDYBAEFCnBtdEFzc2V0SWQFBnBtdEFtdAgFAWkGY2FsbGVyBAhvdXRBbUFtdAgFAXICXzEECG91dFByQW10CAUBcgJfMgQDc3RzCQENcGFyc2VJbnRWYWx1ZQEIBQFyAl85BAVzdGF0ZQgFAXIDXzEwAwMJAQNpZ3MABgkAAAIFA3N0cwUMUG9vbFNodXRkb3duCQACAQkArAICAg9BZG1pbiBibG9ja2VkOiAJAKQDAQUDc3RzCQCXCgUFCG91dEFtQW10BQhvdXRQckFtdAUGcG10QW10BQpwbXRBc3NldElkBQVzdGF0ZQECY3AKBmNhbGxlcgR0eElkB2FtQXNQbXQHcHJBc1BtdAhzbGlwcGFnZQZlbWl0THAKaXNPbmVBc3NldBB2YWxpZGF0ZVNsaXBwYWdlBnBtdEFtdAVwbXRJZAQBcgkBA2Vwbw0FBHR4SWQFCHNsaXBwYWdlCAkBBXZhbHVlAQUHYW1Bc1BtdAZhbW91bnQICQEFdmFsdWUBBQdhbUFzUG10B2Fzc2V0SWQICQEFdmFsdWUBBQdwckFzUG10BmFtb3VudAgJAQV2YWx1ZQEFB3ByQXNQbXQHYXNzZXRJZAUGY2FsbGVyBwUGZW1pdExwBQppc09uZUFzc2V0BRB2YWxpZGF0ZVNsaXBwYWdlBQZwbXRBbXQFBXBtdElkBANzdHMJAQ1wYXJzZUludFZhbHVlAQgFAXICXzgDAwMJAQNpZ3MABgkAAAIFA3N0cwUKUG9vbFB1dERpcwYJAAACBQNzdHMFDFBvb2xTaHV0ZG93bgkAAgEJAKwCAgIIQmxvY2tlZDoJAKQDAQUDc3RzBQFyAQFtAAQHJG1hdGNoMAkAoggBCQEDbXBrAAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAnBtAAQHJG1hdGNoMAkAoggBCQEEcG1wawADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAAJwZAkAAgECEVBlcm1pc3Npb24gZGVuaWVkAQJtbQEBaQQHJG1hdGNoMAkBAW0AAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwAwkAAAIIBQFpD2NhbGxlclB1YmxpY0tleQUCcGsGBQJwZAMJAAECBQckbWF0Y2gwAgRVbml0AwkAAAIIBQFpBmNhbGxlcgUEdGhpcwYFAnBkCQACAQILTWF0Y2ggZXJyb3IYAWkBC2NvbnN0cnVjdG9yAQJmYwQBYwkBAm1tAQUBaQMJAAACBQFjBQFjCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJmYwAFAmZjBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKc2V0TWFuYWdlcgEXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkEAWMJAQJtbQEFAWkDCQAAAgUBYwUBYwQCY20JANkEAQUXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkDCQAAAgUCY20FAmNtCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQRwbXBrAAUXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ5jb25maXJtTWFuYWdlcgAEAXAJAQJwbQAEA2hwbQMJAQlpc0RlZmluZWQBBQFwBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQNocG0FA2hwbQQDY3BtAwkAAAIIBQFpD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUBcAYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUDY3BtBQNjcG0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBA21wawAJANgEAQkBBXZhbHVlAQUBcAkAzAgCCQELRGVsZXRlRW50cnkBCQEEcG1wawAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQNwdXQCBHNsaXAJYXV0b1N0YWtlBAdmYWN0Q2ZnCQEDZ2ZjAAQLc3Rha2luZ0NudHIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFB2ZhY3RDZmcFD2lkeEZhY3RTdGFrQ250cgIKV3Igc3QgYWRkcgQIc2xpcENudHIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFB2ZhY3RDZmcFEGlkeEZhY3RTbGlwcENudHICCldyIHNsIGFkZHIDCQBmAgAABQRzbGlwCQACAQIOV3Jvbmcgc2xpcHBhZ2UDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAIJAAIBAgwyIHBtbnRzIGV4cGQEAWUJAQJjcAoJAKUIAQgFAWkGY2FsbGVyCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQICQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CQCRAwIIBQFpCHBheW1lbnRzAAEFBHNsaXAGBwYAAAIABAllbWl0THBBbXQIBQFlAl8yBAlscEFzc2V0SWQIBQFlAl83BAVzdGF0ZQgFAWUCXzkEBmFtRGlmZggFAWUDXzEwBAZwckRpZmYIBQFlA18xMQQEYW1JZAgFAWUDXzEyBARwcklkCAUBZQNfMTMEAXIJAPwHBAUDZmNhAgRlbWl0CQDMCAIFCWVtaXRMcEFtdAUDbmlsBQNuaWwDCQAAAgUBcgUBcgQCZWwEByRtYXRjaDAFAXIDCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQGbGVnYWN5BQckbWF0Y2gwCQD8BwQFBmxlZ2FjeQIEZW1pdAkAzAgCBQllbWl0THBBbXQFA25pbAUDbmlsBQR1bml0AwkAAAIFAmVsBQJlbAQCc2EDCQBmAgUGYW1EaWZmAAAJAPwHBAUIc2xpcENudHICA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQRhbUlkBQZhbURpZmYFA25pbAUDbmlsAwkAAAIFAnNhBQJzYQQCc3ADCQBmAgUGcHJEaWZmAAAJAPwHBAUIc2xpcENudHICA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQRwcklkBQZwckRpZmYFA25pbAUDbmlsAwkAAAIFAnNwBQJzcAQIbHBUcm5zZnIDBQlhdXRvU3Rha2UEAnNzCQD8BwQFC3N0YWtpbmdDbnRyAgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQlscEFzc2V0SWQFCWVtaXRMcEFtdAUDbmlsAwkAAAIFAnNzBQJzcwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUJZW1pdExwQW10BQlscEFzc2V0SWQFA25pbAkAzggCBQVzdGF0ZQUIbHBUcm5zZnIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEJcHV0T25lVGtuBQthbUFzc2V0UGFydAtwckFzc2V0UGFydAVvdXRMcAhzbGlwcGFnZQlhdXRvU3Rha2UEA2NmZwkBA2dmYwAEC3N0YWtpbmdDbnRyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQNjZmcFD2lkeEZhY3RTdGFrQ250cgIKV3Igc3QgYWRkcgQIc2xpcENudHIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFA2NmZwUQaWR4RmFjdFNsaXBwQ250cgIKV3Igc2wgYWRkcgQHZ3d4Q250cgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUDY2ZnBRFpZHhGYWN0R3d4UmV3Q250cgILV3IgZ3d4IGFkZHIEB3Bvb2xDZmcJAQNncGMABARhbUlkCQCRAwIFB3Bvb2xDZmcFCWlkeEFtQXNJZAQEcHJJZAkAkQMCBQdwb29sQ2ZnBQlpZHhQckFzSWQEBWFtRGNtCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUHcG9vbENmZwULaWR4QW10QXNEY20EBXByRGNtCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUHcG9vbENmZwUNaWR4UHJpY2VBc0RjbQQFYWRkb24JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBA2FkYQACAAQLdXNlckFkZHJlc3MDCQAAAgUFYWRkb24JAKUIAQgFAWkGY2FsbGVyCAUBaQxvcmlnaW5DYWxsZXIIBQFpBmNhbGxlcgQNYWRkb25Db250cmFjdAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEDYWRhAAIJbm8gYWRkb25zAhphZGRvbiBhZGRyZXNzIGluIG5vdCB2YWxpZAQFY2hlY2sJAP0HBAUNYWRkb25Db250cmFjdAISZW5zdXJlQ2FuUHV0T25lVGtuCQDMCAIJAKUIAQULdXNlckFkZHJlc3MFA25pbAUDbmlsAwkAAAIFBWNoZWNrBQVjaGVjawMDAwMJAGcCAAAFCHNsaXBwYWdlBgkAZwIAAAULYW1Bc3NldFBhcnQGCQBnAgAABQtwckFzc2V0UGFydAYJAGcCAAAFBW91dExwCQACAQIMV3JvbmcgcGFyYW1zAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQILMSBwbW50IGV4cGQEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABApwbXRBc3NldElkCQDYBAEJAQV2YWx1ZQEIBQNwbXQHYXNzZXRJZAQGcG10QW10CAUDcG10BmFtb3VudAMJAGYCAICt4gQFBnBtdEFtdAkAAgECDVdyb25nIHBtdCBhbXQECWFtQmFsYW5jZQkBDWdldEFjY0JhbGFuY2UBBQRhbUlkBAlwckJhbGFuY2UJAQ1nZXRBY2NCYWxhbmNlAQUEcHJJZAQNJHQwMjU0NTQyNjAzMAMJAAACBQpwbXRBc3NldElkBQRhbUlkAwMJAGYCBQZwbXRBbXQFCWFtQmFsYW5jZQYJAGYCBQthbUFzc2V0UGFydAUGcG10QW10CQACAQIWaW52YWxpZCBwYXltZW50IGFtb3VudAkAmAoGCQBlAgUJYW1CYWxhbmNlBQZwbXRBbXQFCXByQmFsYW5jZQkAZQIFBnBtdEFtdAULYW1Bc3NldFBhcnQFC3ByQXNzZXRQYXJ0AAAAAAMJAAACBQpwbXRBc3NldElkBQRwcklkAwMJAGYCBQZwbXRBbXQFCXByQmFsYW5jZQYJAGYCBQtwckFzc2V0UGFydAUGcG10QW10CQACAQIWaW52YWxpZCBwYXltZW50IGFtb3VudAkAmAoGBQlhbUJhbGFuY2UJAGUCBQlwckJhbGFuY2UFBnBtdEFtdAAAAAAJAGUCBQZwbXRBbXQFC3ByQXNzZXRQYXJ0BQthbUFzc2V0UGFydAkAAgECEHdyb25nIHBtdEFzc2V0SWQEDGFtQmFsYW5jZU5vdwgFDSR0MDI1NDU0MjYwMzACXzEEDHByQmFsYW5jZU5vdwgFDSR0MDI1NDU0MjYwMzACXzIEDHZpcnRTd2FwSW5BbQgFDSR0MDI1NDU0MjYwMzACXzMEDXZpcnRTd2FwT3V0UHIIBQ0kdDAyNTQ1NDI2MDMwAl80BAx2aXJ0U3dhcEluUHIIBQ0kdDAyNTQ1NDI2MDMwAl81BA12aXJ0U3dhcE91dEFtCAUNJHQwMjU0NTQyNjAzMAJfNgQCRDAJAPwHBAUHZ3d4Q250cgIFY2FsY0QJAMwIAgkApAMBBQxhbUJhbGFuY2VOb3cJAMwIAgkApAMBBQxwckJhbGFuY2VOb3cJAMwIAgUBQQkAzAgCBQVBbXVsdAkAzAgCBQVEY29udgUDbmlsBQNuaWwEAkQxCQD8BwQFB2d3eENudHICBWNhbGNECQDMCAIJAKYDAQkAtgIBCQBlAgkAZAIFDGFtQmFsYW5jZU5vdwUMdmlydFN3YXBJbkFtBQ12aXJ0U3dhcE91dEFtCQDMCAIJAKYDAQkAtgIBCQBlAgkAZAIFDHByQmFsYW5jZU5vdwUMdmlydFN3YXBJblByBQ12aXJ0U3dhcE91dFByCQDMCAIFAUEJAMwIAgUFQW11bHQJAMwIAgUFRGNvbnYFA25pbAUDbmlsBAZEMHZzRDEJAQJ2ZAMJAKcDAQkBA3N0cgEFAkQxCQCnAwEJAQNzdHIBBQJEMAUKc2xpcHBhZ2U0RAMJAAACBQZEMHZzRDEFBkQwdnNEMQQGZXN0UHV0CQECY3AKCQClCAEIBQFpBmNhbGxlcgkA2AQBCAUBaQ10cmFuc2FjdGlvbklkCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQRhbUlkBQthbUFzc2V0UGFydAkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUEcHJJZAULcHJBc3NldFBhcnQFCHNsaXBwYWdlBgYGBQZwbXRBbXQFCnBtdEFzc2V0SWQEB2VzdGltTFAIBQZlc3RQdXQCXzIECWxwQXNzZXRJZAgFBmVzdFB1dAJfNwQFc3RhdGUIBQZlc3RQdXQCXzkEBmFtRGlmZggFBmVzdFB1dANfMTAEBnByRGlmZggFBmVzdFB1dANfMTEECWxwQ2FsY1JlcwkBA3ZhZAMJALYCAQUHZXN0aW1MUAkAtgIBBQVvdXRMcAkAtgIBBQhzbGlwcGFnZQQJZW1pdExwQW10CQCgAwEIBQlscENhbGNSZXMCXzIEAWUJAPwHBAUDZmNhAgRlbWl0CQDMCAIFCWVtaXRMcEFtdAUDbmlsBQNuaWwDCQAAAgUBZQUBZQQCZWwEByRtYXRjaDAFAWUDCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQGbGVnYWN5BQckbWF0Y2gwCQD8BwQFBmxlZ2FjeQIEZW1pdAkAzAgCBQllbWl0THBBbXQFA25pbAUDbmlsBQR1bml0AwkAAAIFAmVsBQJlbAQCc2EDCQBmAgUGYW1EaWZmAAAJAPwHBAUIc2xpcENudHICA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFBGFtSWQFBmFtRGlmZgUDbmlsBQNuaWwDCQAAAgUCc2EFAnNhBAJzcAMJAGYCBQZwckRpZmYAAAkA/AcEBQhzbGlwQ250cgIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUEcHJJZAUGcHJEaWZmBQNuaWwFA25pbAMJAAACBQJzcAUCc3AECGxwVHJuc2ZyAwUJYXV0b1N0YWtlBAJzcwkA/AcEBQtzdGFraW5nQ250cgIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUJbHBBc3NldElkBQllbWl0THBBbXQFA25pbAMJAAACBQJzcwUCc3MFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFCWVtaXRMcEFtdAUJbHBBc3NldElkBQNuaWwJAM4IAgUFc3RhdGUFCGxwVHJuc2ZyCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBC3B1dE9uZVRrblYyAgxtaW5PdXRBbW91bnQJYXV0b1N0YWtlAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQILMSBwbW50IGV4cGQECnBvb2xDb25maWcJAQNncGMABARhbUlkCQCRAwIFCnBvb2xDb25maWcFCWlkeEFtQXNJZAQEcHJJZAkAkQMCBQpwb29sQ29uZmlnBQlpZHhQckFzSWQECmFtRGVjaW1hbHMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpwb29sQ29uZmlnBQtpZHhBbXRBc0RjbQQKcHJEZWNpbWFscwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCnBvb2xDb25maWcFDWlkeFByaWNlQXNEY20EC3VzZXJBZGRyZXNzAwkAAAIIBQFpBmNhbGxlcgUEdGhpcwgFAWkMb3JpZ2luQ2FsbGVyCAUBaQZjYWxsZXIEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABApwbXRBc3NldElkCQDYBAEJAQV2YWx1ZQEIBQNwbXQHYXNzZXRJZAQGcG10QW10CAUDcG10BmFtb3VudAMJAGYCAICt4gQFBnBtdEFtdAkAAgECDVdyb25nIHBtdCBhbXQECWFtQmFsYW5jZQkBDWdldEFjY0JhbGFuY2UBBQRhbUlkBAlwckJhbGFuY2UJAQ1nZXRBY2NCYWxhbmNlAQUEcHJJZAQNJHQwMjg4MTgyOTE5MgMJAAACBQpwbXRBc3NldElkBQRhbUlkAwkAZgIFBnBtdEFtdAUJYW1CYWxhbmNlCQACAQIWaW52YWxpZCBwYXltZW50IGFtb3VudAkAlAoCCQBlAgUJYW1CYWxhbmNlBQZwbXRBbXQFCXByQmFsYW5jZQMJAAACBQpwbXRBc3NldElkBQRwcklkAwkAZgIFBnBtdEFtdAUJcHJCYWxhbmNlCQACAQIWaW52YWxpZCBwYXltZW50IGFtb3VudAkAlAoCBQlhbUJhbGFuY2UJAGUCBQlwckJhbGFuY2UFBnBtdEFtdAkAAgECEHdyb25nIHBtdEFzc2V0SWQEDGFtQmFsYW5jZU5vdwgFDSR0MDI4ODE4MjkxOTICXzEEDHByQmFsYW5jZU5vdwgFDSR0MDI4ODE4MjkxOTICXzIEDSR0MDI5MTk2MjkzMzADCQAAAgUKcG10QXNzZXRJZAUEYW1JZAkAlAoCBQxhbUJhbGFuY2VOb3cFDHByQmFsYW5jZU5vdwkAlAoCBQxwckJhbGFuY2VOb3cFDGFtQmFsYW5jZU5vdwQQYW1CYWxhbmNlRm9yQ2FsYwgFDSR0MDI5MTk2MjkzMzACXzEEEHByQmFsYW5jZUZvckNhbGMIBQ0kdDAyOTE5NjI5MzMwAl8yBAp4UHJlY2lzaW9uAAEEBnJlc3VsdAoAAUAJAPwHBAULZ3d4Q29udHJhY3QCDGNhbGNQdXRYT25seQkAzAgCCQCkAwEFBnBtdEFtdAkAzAgCCQCkAwEFEGFtQmFsYW5jZUZvckNhbGMJAMwIAgkApAMBBRBwckJhbGFuY2VGb3JDYWxjCQDMCAICAAkAzAgCBQFBCQDMCAIFBUFtdWx0CQDMCAIJAKQDAQUKeFByZWNpc2lvbgkAzAgCBQVEY29udgUDbmlsBQNuaWwDCQABAgUBQAIKKEludCwgSW50KQUBQAkAAgEJAKwCAgkAAwEJAPwHBAULZ3d4Q29udHJhY3QCDGNhbGNQdXRYT25seQkAzAgCCQCkAwEFBnBtdEFtdAkAzAgCCQCkAwEFEGFtQmFsYW5jZUZvckNhbGMJAMwIAgkApAMBBRBwckJhbGFuY2VGb3JDYWxjCQDMCAICAAkAzAgCBQFBCQDMCAIFBUFtdWx0CQDMCAIJAKQDAQUKeFByZWNpc2lvbgkAzAgCBQVEY29udgUDbmlsBQNuaWwCHyBjb3VsZG4ndCBiZSBjYXN0IHRvIChJbnQsIEludCkEDSR0MDI5Nzk5Mjk4OTUDCQAAAgUKcG10QXNzZXRJZAUEYW1JZAUGcmVzdWx0CQCUCgIIBQZyZXN1bHQCXzIIBQZyZXN1bHQCXzEEC2FtQXNzZXRQYXJ0CAUNJHQwMjk3OTkyOTg5NQJfMQQLcHJBc3NldFBhcnQIBQ0kdDAyOTc5OTI5ODk1Al8yBAZlc3RQdXQJAQJjcAoJAKUIAQgFAWkGY2FsbGVyCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFBGFtSWQFC2FtQXNzZXRQYXJ0CQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQRwcklkBQtwckFzc2V0UGFydAAABgYHBQZwbXRBbXQFCnBtdEFzc2V0SWQEB2VzdGltTFAIBQZlc3RQdXQCXzIECWxwQXNzZXRJZAgFBmVzdFB1dAJfNwQFc3RhdGUIBQZlc3RQdXQCXzkEBmFtRGlmZggFBmVzdFB1dANfMTAEBnByRGlmZggFBmVzdFB1dANfMTEECWVtaXRMcEFtdAMDCQBmAgUMbWluT3V0QW1vdW50AAAJAGYCBQxtaW5PdXRBbW91bnQFB2VzdGltTFAHCQACAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQxtaW5PdXRBbW91bnQFA25pbAIABQdlc3RpbUxQBAFlCQD8BwQFA2ZjYQIEZW1pdAkAzAgCBQllbWl0THBBbXQFA25pbAUDbmlsAwkAAAIFAWUFAWUEAmVsBAckbWF0Y2gwBQFlAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEBmxlZ2FjeQUHJG1hdGNoMAkA/AcEBQZsZWdhY3kCBGVtaXQJAMwIAgUJZW1pdExwQW10BQNuaWwFA25pbAUEdW5pdAMJAAACBQJlbAUCZWwEAnNhAwkAZgIFBmFtRGlmZgAACQD8BwQFD3NsaXBhZ2VDb250cmFjdAIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUEYW1JZAUGYW1EaWZmBQNuaWwFA25pbAMJAAACBQJzYQUCc2EEAnNwAwkAZgIFBnByRGlmZgAACQD8BwQFD3NsaXBhZ2VDb250cmFjdAIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUEcHJJZAUGcHJEaWZmBQNuaWwFA25pbAMJAAACBQJzcAUCc3AECGxwVHJuc2ZyAwUJYXV0b1N0YWtlBAJzcwkA/AcEBQ9zdGFraW5nQ29udHJhY3QCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCWxwQXNzZXRJZAUJZW1pdExwQW10BQNuaWwDCQAAAgUCc3MFAnNzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQllbWl0THBBbXQFCWxwQXNzZXRJZAUDbmlsCQDOCAIFBXN0YXRlBQhscFRybnNmcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpwdXRGb3JGcmVlAQdtYXhTbHBnAwkAZgIAAAUHbWF4U2xwZwkAAgECCldyb25nIHNscGcDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAIJAAIBAgwyIHBtbnRzIGV4cGQEBmVzdFB1dAkBAmNwCgkApQgBCAUBaQZjYWxsZXIJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkBD0F0dGFjaGVkUGF5bWVudAIICQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAgJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQJAJEDAggFAWkIcGF5bWVudHMAAQUHbWF4U2xwZwcHBgAAAgAIBQZlc3RQdXQCXzkBaQEDZ2V0AAQBcgkBAmNnAQUBaQQJb3V0QW10QW10CAUBcgJfMQQIb3V0UHJBbXQIBQFyAl8yBAZwbXRBbXQIBQFyAl8zBApwbXRBc3NldElkCAUBcgJfNAQFc3RhdGUIBQFyAl81BAFiCQD8BwQFA2ZjYQIEYnVybgkAzAgCBQZwbXRBbXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUKcG10QXNzZXRJZAUGcG10QW10BQNuaWwDCQAAAgUBYgUBYgUFc3RhdGUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEJZ2V0T25lVGtuBQpleGNoUmVzdWx0B25vdFVzZWQJb3V0QW1vdW50Cm91dEFzc2V0SWQIc2xpcHBhZ2UDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAgsxIHBtbnQgZXhwZAQDY2ZnCQEDZ3BjAAQEbHBJZAkAkQMCBQNjZmcFCWlkeExQQXNJZAQEYW1JZAkAkQMCBQNjZmcFCWlkeEFtQXNJZAQEcHJJZAkAkQMCBQNjZmcFCWlkeFByQXNJZAQFYW1EY20JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQNjZmcFC2lkeEFtdEFzRGNtBAVwckRjbQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFA2NmZwUNaWR4UHJpY2VBc0RjbQQDc3RzCQCRAwIFA2NmZwUJaWR4UG9vbFN0BAdmYWN0Q2ZnCQEDZ2ZjAAQHZ3d4Q250cgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUHZmFjdENmZwURaWR4RmFjdEd3eFJld0NudHICCldyIHNsIGFkZHIEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAVhZGRvbgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEDYWRhAAIABAt1c2VyQWRkcmVzcwMJAAACBQVhZGRvbgkApQgBCAUBaQZjYWxsZXIIBQFpDG9yaWdpbkNhbGxlcggFAWkGY2FsbGVyBAZ0eElkNTgJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQKcG10QXNzZXRJZAkBBXZhbHVlAQgFA3BtdAdhc3NldElkBAZwbXRBbXQIBQNwbXQGYW1vdW50BA1hZGRvbkNvbnRyYWN0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQNhZGEAAglubyBhZGRvbnMCGmFkZG9uIGFkZHJlc3MgaW4gbm90IHZhbGlkBAVjaGVjawkA/QcEBQ1hZGRvbkNvbnRyYWN0AhJlbnN1cmVDYW5HZXRPbmVUa24JAMwIAgkApQgBBQt1c2VyQWRkcmVzcwUDbmlsBQNuaWwDCQAAAgUFY2hlY2sFBWNoZWNrAwkAZgIAgJTr3AMFBnBtdEFtdAkAAgECDU1pbiBwbXQgMTAgTFADAwMJAGYCAAAFCHNsaXBwYWdlBgkAZgIAAAUKZXhjaFJlc3VsdAYJAGYCAAAFCW91dEFtb3VudAkAAgECDFdyb25nIHBhcmFtcwMJAQIhPQIFBGxwSWQJANgEAQUKcG10QXNzZXRJZAkAAgECCFdyb25nIExQBAFyCQEDZWdvBAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkCQDYBAEFCnBtdEFzc2V0SWQFBnBtdEFtdAgFAWkGY2FsbGVyBAplc3RpbUFtQW10CAUBcgJfMQQKZXN0aW1QckFtdAgFAXICXzIECWFtQmFsYW5jZQkBDWdldEFjY0JhbGFuY2UBBQRhbUlkBAlwckJhbGFuY2UJAQ1nZXRBY2NCYWxhbmNlAQUEcHJJZAQNJHQwMzQyOTgzNDc1NQMJAAACBQpvdXRBc3NldElkBQRhbUlkCQCZCgcJAGUCBQlhbUJhbGFuY2UFCmVzdGltQW1BbXQJAGUCBQlwckJhbGFuY2UFCmVzdGltUHJBbXQFCmV4Y2hSZXN1bHQFCmVzdGltUHJBbXQAAAAACQBkAgUKZXN0aW1BbUFtdAUKZXhjaFJlc3VsdAMJAAACBQpvdXRBc3NldElkBQRwcklkCQCZCgcJAGUCBQlhbUJhbGFuY2UFCmVzdGltQW1BbXQJAGUCBQlwckJhbGFuY2UFCmVzdGltUHJBbXQAAAAABQpleGNoUmVzdWx0BQplc3RpbUFtQW10CQBkAgUKZXN0aW1QckFtdAUKZXhjaFJlc3VsdAkAAgECEHdyb25nIG91dEFzc2V0SWQEDGFtQmFsYW5jZU5vdwgFDSR0MDM0Mjk4MzQ3NTUCXzEEDHByQmFsYW5jZU5vdwgFDSR0MDM0Mjk4MzQ3NTUCXzIEDHZpcnRTd2FwSW5BbQgFDSR0MDM0Mjk4MzQ3NTUCXzMEDXZpcnRTd2FwT3V0UHIIBQ0kdDAzNDI5ODM0NzU1Al80BAx2aXJ0U3dhcEluUHIIBQ0kdDAzNDI5ODM0NzU1Al81BA12aXJ0U3dhcE91dEFtCAUNJHQwMzQyOTgzNDc1NQJfNgQIdG90YWxHZXQIBQ0kdDAzNDI5ODM0NzU1Al83AwMJAGYCAAAFDHZpcnRTd2FwSW5BbQYJAGYCAAAFDHZpcnRTd2FwSW5QcgkAAgECCldyb25nIGNhbGMEAkQwCQD8BwQFB2d3eENudHICBWNhbGNECQDMCAIJAKQDAQUMYW1CYWxhbmNlTm93CQDMCAIJAKQDAQUMcHJCYWxhbmNlTm93CQDMCAIFAUEJAMwIAgUFQW11bHQJAMwIAgUFRGNvbnYFA25pbAUDbmlsBAJEMQkA/AcEBQdnd3hDbnRyAgVjYWxjRAkAzAgCCQCkAwEJAGQCCQBlAgUMYW1CYWxhbmNlTm93BQx2aXJ0U3dhcEluQW0FDXZpcnRTd2FwT3V0QW0JAMwIAgkApAMBCQBlAgkAZAIFDHByQmFsYW5jZU5vdwUNdmlydFN3YXBPdXRQcgUMdmlydFN3YXBJblByCQDMCAIFAUEJAMwIAgUFQW11bHQJAMwIAgUFRGNvbnYFA25pbAUDbmlsBAZEMHZzRDEJAQJ2ZAMJAKcDAQkBA3N0cgEFAkQxCQCnAwEJAQNzdHIBBQJEMAUKc2xpcHBhZ2U0RAMJAAACBQZEMHZzRDEFBkQwdnNEMQQIZmluYWxSZXMJAQN2YWQDCQC2AgEFCHRvdGFsR2V0CQC2AgEFCW91dEFtb3VudAkAtgIBBQhzbGlwcGFnZQMJAAACBQhmaW5hbFJlcwUIZmluYWxSZXMEDSR0MDM1NDYwMzU1NjQDCQAAAgUKb3V0QXNzZXRJZAUEYW1JZAkAlAoCCQCgAwEIBQhmaW5hbFJlcwJfMgAACQCUCgIAAAkAoAMBCAUIZmluYWxSZXMCXzIEBW91dEFtCAUNJHQwMzU0NjAzNTU2NAJfMQQFb3V0UHIIBQ0kdDAzNTQ2MDM1NTY0Al8yBAhjdXJQclgxOAkBBGNwYmkCCQECdDECBQlwckJhbGFuY2UFBXByRGNtCQECdDECBQlhbUJhbGFuY2UFBWFtRGNtBAVjdXJQcgkBAmYxAgUIY3VyUHJYMTgFBnNjYWxlOAQFc3RhdGUJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwULdXNlckFkZHJlc3MJAGQCBQVvdXRBbQUFb3V0UHIDCQAAAgUKb3V0QXNzZXRJZAIFV0FWRVMFBHVuaXQJANkEAQUKb3V0QXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQEDZ2F1AgkApQgBBQt1c2VyQWRkcmVzcwUGdHhJZDU4CQERZGF0YUdldEFjdGlvbkluZm8GBQVvdXRBbQUFb3V0UHIFBnBtdEFtdAUFY3VyUHIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJwbAAFBWN1clByCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECcGgCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQVjdXJQcgUDbmlsAwkAAAIFBXN0YXRlBQVzdGF0ZQQEYnVybgkA/AcEBQNmY2ECBGJ1cm4JAMwIAgUGcG10QW10BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCnBtdEFzc2V0SWQFBnBtdEFtdAUDbmlsAwkAAAIFBGJ1cm4FBGJ1cm4FBXN0YXRlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBC2dldE9uZVRrblYyAgpvdXRBc3NldElkDG1pbk91dEFtb3VudAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECCzEgcG1udCBleHBkBApwb29sQ29uZmlnCQEDZ3BjAAQEbHBJZAkAkQMCBQpwb29sQ29uZmlnBQlpZHhMUEFzSWQEBGFtSWQJAJEDAgUKcG9vbENvbmZpZwUJaWR4QW1Bc0lkBARwcklkCQCRAwIFCnBvb2xDb25maWcFCWlkeFByQXNJZAQKYW1EZWNpbWFscwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCnBvb2xDb25maWcFC2lkeEFtdEFzRGNtBApwckRlY2ltYWxzCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUKcG9vbENvbmZpZwUNaWR4UHJpY2VBc0RjbQQKcG9vbFN0YXR1cwkAkQMCBQpwb29sQ29uZmlnBQlpZHhQb29sU3QEC3VzZXJBZGRyZXNzAwkAAAIIBQFpBmNhbGxlcgUEdGhpcwgFAWkMb3JpZ2luQ2FsbGVyCAUBaQZjYWxsZXIEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABApwbXRBc3NldElkCQEFdmFsdWUBCAUDcG10B2Fzc2V0SWQEBnBtdEFtdAgFA3BtdAZhbW91bnQDCQBmAgCAlOvcAwUGcG10QW10CQACAQINTWluIHBtdCAxMCBMUAQGdHhJZDU4CQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQDCQECIT0CBQRscElkCQDYBAEFCnBtdEFzc2V0SWQJAAIBAghXcm9uZyBMUAQBcgkBA2VnbwQFBnR4SWQ1OAkA2AQBBQpwbXRBc3NldElkBQZwbXRBbXQIBQFpBmNhbGxlcgQKZXN0aW1BbUFtdAgFAXICXzEECmVzdGltUHJBbXQIBQFyAl8yBAlhbUJhbGFuY2UJAQ1nZXRBY2NCYWxhbmNlAQUEYW1JZAQJcHJCYWxhbmNlCQENZ2V0QWNjQmFsYW5jZQEFBHBySWQEDGFtQmFsYW5jZU5vdwkAZQIFCWFtQmFsYW5jZQUKZXN0aW1BbUFtdAQMcHJCYWxhbmNlTm93CQBlAgUJcHJCYWxhbmNlBQplc3RpbVByQW10BA0kdDAzNzMyNjM3NTk3AwkAAAIFCm91dEFzc2V0SWQFBGFtSWQJAJUKAwUMcHJCYWxhbmNlTm93BQxhbUJhbGFuY2VOb3cFCmVzdGltUHJBbXQDCQAAAgUKb3V0QXNzZXRJZAUEcHJJZAkAlQoDBQxhbUJhbGFuY2VOb3cFDHByQmFsYW5jZU5vdwUKZXN0aW1BbUFtdAkAAgECEHdyb25nIG91dEFzc2V0SWQEFGFtb3VudEJhbGFuY2VGb3JTd2FwCAUNJHQwMzczMjYzNzU5NwJfMQQTcHJpY2VCYWxhbmNlRm9yU3dhcAgFDSR0MDM3MzI2Mzc1OTcCXzIEDGFtb3VudFRvU3dhcAgFDSR0MDM3MzI2Mzc1OTcCXzMECnlQcmVjaXNpb24AAQQKZXhjaFJlc3VsdAoAAUAJAPwHBAULZ3d4Q29udHJhY3QCDGNhbGNTd2FwWFRvWQkAzAgCCQCkAwEFDGFtb3VudFRvU3dhcAkAzAgCCQCkAwEFFGFtb3VudEJhbGFuY2VGb3JTd2FwCQDMCAIJAKQDAQUTcHJpY2VCYWxhbmNlRm9yU3dhcAkAzAgCAgAJAMwIAgUBQQkAzAgCBQVBbXVsdAkAzAgCCQCkAwEFCnlQcmVjaXNpb24JAMwIAgUFRGNvbnYFA25pbAUDbmlsAwkAAQIFAUACA0ludAUBQAkAAgEJAKwCAgkAAwEJAPwHBAULZ3d4Q29udHJhY3QCDGNhbGNTd2FwWFRvWQkAzAgCCQCkAwEFDGFtb3VudFRvU3dhcAkAzAgCCQCkAwEFFGFtb3VudEJhbGFuY2VGb3JTd2FwCQDMCAIJAKQDAQUTcHJpY2VCYWxhbmNlRm9yU3dhcAkAzAgCAgAJAMwIAgUBQQkAzAgCBQVBbXVsdAkAzAgCCQCkAwEFCnlQcmVjaXNpb24JAMwIAgUFRGNvbnYFA25pbAUDbmlsAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQECHRvdGFsR2V0CQBkAgUKZXhjaFJlc3VsdAMJAAACBQpvdXRBc3NldElkBQRhbUlkBQplc3RpbUFtQW10BQplc3RpbVByQW10BAt0b3RhbEFtb3VudAMDCQBmAgUMbWluT3V0QW1vdW50AAAJAGYCBQxtaW5PdXRBbW91bnQFCHRvdGFsR2V0BwkAAgEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUMbWluT3V0QW1vdW50BQNuaWwCAAUIdG90YWxHZXQEDSR0MDM4MzUwMzg0MzcDCQAAAgUKb3V0QXNzZXRJZAUEYW1JZAkAlAoCBQt0b3RhbEFtb3VudAAACQCUCgIAAAULdG90YWxBbW91bnQEBW91dEFtCAUNJHQwMzgzNTAzODQzNwJfMQQFb3V0UHIIBQ0kdDAzODM1MDM4NDM3Al8yBAhjdXJQclgxOAkBBGNwYmkCCQECdDECBQlwckJhbGFuY2UFCnByRGVjaW1hbHMJAQJ0MQIFCWFtQmFsYW5jZQUKYW1EZWNpbWFscwQFY3VyUHIJAQJmMQIFCGN1clByWDE4BQZzY2FsZTgEBXN0YXRlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFC3VzZXJBZGRyZXNzBQt0b3RhbEFtb3VudAMJAAACBQpvdXRBc3NldElkAgVXQVZFUwUEdW5pdAkA2QQBBQpvdXRBc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQNnYXUCCQClCAEFC3VzZXJBZGRyZXNzBQZ0eElkNTgJARFkYXRhR2V0QWN0aW9uSW5mbwYFBW91dEFtBQVvdXRQcgUGcG10QW10BQVjdXJQcgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAnBsAAUFY3VyUHIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJwaAIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFBWN1clByBQNuaWwDCQAAAgUFc3RhdGUFBXN0YXRlBARidXJuCQD8BwQFA2ZjYQIEYnVybgkAzAgCBQZwbXRBbXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUKcG10QXNzZXRJZAUGcG10QW10BQNuaWwDCQAAAgUEYnVybgUEYnVybgkAlAoCBQVzdGF0ZQULdG90YWxBbW91bnQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEJZ2V0Tm9MZXNzAhJub0xlc3NUaGVuQW10QXNzZXQUbm9MZXNzVGhlblByaWNlQXNzZXQEAXIJAQJjZwEFAWkECG91dEFtQW10CAUBcgJfMQQIb3V0UHJBbXQIBQFyAl8yBAZwbXRBbXQIBQFyAl8zBApwbXRBc3NldElkCAUBcgJfNAQFc3RhdGUIBQFyAl81AwkAZgIFEm5vTGVzc1RoZW5BbXRBc3NldAUIb3V0QW1BbXQJAAIBCQCsAgIJAKwCAgkArAICAglGYWlsZWQ6ICAJAKQDAQUIb3V0QW1BbXQCAyA8IAkApAMBBRJub0xlc3NUaGVuQW10QXNzZXQDCQBmAgUUbm9MZXNzVGhlblByaWNlQXNzZXQFCG91dFByQW10CQACAQkArAICCQCsAgIJAKwCAgIIRmFpbGVkOiAJAKQDAQUIb3V0UHJBbXQCAyA8IAkApAMBBRRub0xlc3NUaGVuUHJpY2VBc3NldAQUYnVybkxQQXNzZXRPbkZhY3RvcnkJAPwHBAUDZmNhAgRidXJuCQDMCAIFBnBtdEFtdAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQpwbXRBc3NldElkBQZwbXRBbXQFA25pbAMJAAACBRRidXJuTFBBc3NldE9uRmFjdG9yeQUUYnVybkxQQXNzZXRPbkZhY3RvcnkFBXN0YXRlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDXVuc3Rha2VBbmRHZXQBBmFtb3VudAQNY2hlY2tQYXltZW50cwMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECDU5vIHBtbnRzIGV4cGQGAwkAAAIFDWNoZWNrUGF5bWVudHMFDWNoZWNrUGF5bWVudHMEA2NmZwkBA2dwYwAECmZhY3RvcnlDZmcJAQNnZmMABAlscEFzc2V0SWQJANkEAQkAkQMCBQNjZmcFCWlkeExQQXNJZAQHc3Rha2luZwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUKZmFjdG9yeUNmZwUPaWR4RmFjdFN0YWtDbnRyAgpXciBzdCBhZGRyBAp1bnN0YWtlSW52CQD8BwQFB3N0YWtpbmcCB3Vuc3Rha2UJAMwIAgkA2AQBBQlscEFzc2V0SWQJAMwIAgUGYW1vdW50BQNuaWwFA25pbAMJAAACBQp1bnN0YWtlSW52BQp1bnN0YWtlSW52BAFyCQEDZWdvBAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkCQDYBAEFCWxwQXNzZXRJZAUGYW1vdW50CAUBaQZjYWxsZXIEA3N0cwkBDXBhcnNlSW50VmFsdWUBCAUBcgJfOQQFc3RhdGUIBQFyA18xMAQBdgMDCQEDaWdzAAYJAAACBQNzdHMFDFBvb2xTaHV0ZG93bgkAAgEJAKwCAgIJQmxvY2tlZDogCQCkAwEFA3N0cwYDCQAAAgUBdgUBdgQFYnVybkEJAPwHBAUDZmNhAgRidXJuCQDMCAIFBmFtb3VudAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQlscEFzc2V0SWQFBmFtb3VudAUDbmlsAwkAAAIFBWJ1cm5BBQVidXJuQQUFc3RhdGUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQETdW5zdGFrZUFuZEdldE9uZVRrbgQGYW1vdW50CW91dEFtb3VudApvdXRBc3NldElkCHNsaXBwYWdlBA1jaGVja1BheW1lbnRzAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQINTm8gcG1udHMgZXhwZAYDCQAAAgUNY2hlY2tQYXltZW50cwUNY2hlY2tQYXltZW50cwQDY2ZnCQEDZ3BjAAQKZmFjdG9yeUNmZwkBA2dmYwAECWxwQXNzZXRJZAkA2QQBCQCRAwIFA2NmZwUJaWR4TFBBc0lkBAdzdGFraW5nCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQpmYWN0b3J5Q2ZnBQ9pZHhGYWN0U3Rha0NudHICCldyIHN0IGFkZHIECnVuc3Rha2VJbnYJAPwHBAUHc3Rha2luZwIHdW5zdGFrZQkAzAgCCQDYBAEFCWxwQXNzZXRJZAkAzAgCBQZhbW91bnQFA25pbAUDbmlsAwkAAAIFCnVuc3Rha2VJbnYFCnVuc3Rha2VJbnYED291dEFtb3VudFJlc3VsdAoAAUAJAPwHBAUEdGhpcwILZ2V0T25lVGtuVjIJAMwIAgUJb3V0QW1vdW50CQDMCAIFCm91dEFzc2V0SWQJAMwIAgUIc2xpcHBhZ2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUJbHBBc3NldElkBQZhbW91bnQFA25pbAMJAAECBQFAAgNJbnQFAUAFBHVuaXQDCQAAAgUPb3V0QW1vdW50UmVzdWx0BQ9vdXRBbW91bnRSZXN1bHQJAJQKAgUDbmlsBQ9vdXRBbW91bnRSZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIYWN0aXZhdGUCCGFtdEFzU3RyB3ByQXNTdHIDCQECIT0CCQClCAEIBQFpBmNhbGxlcgkApQgBBQNmY2EJAAIBAgZkZW5pZWQJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQECYWEABQhhbXRBc1N0cgkAzAgCCQELU3RyaW5nRW50cnkCCQECcGEABQdwckFzU3RyBQNuaWwCB3N1Y2Nlc3MBaQEEc2V0UwIBawF2AwkBAiE9AgkApQgBCAUBaQZjYWxsZXIJAQRzdHJmAgUEdGhpcwkBA2FkYQAFAnBkCQDMCAIJAQtTdHJpbmdFbnRyeQIFAWsFAXYFA25pbAFpAQRzZXRJAgFrAXYDCQECIT0CCQClCAEIBQFpBmNhbGxlcgkBBHN0cmYCBQR0aGlzCQEDYWRhAAUCcGQJAMwIAgkBDEludGVnZXJFbnRyeQIFAWsFAXYFA25pbAFpARxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZAAkAlAoCBQNuaWwJAQNncGMAAWkBHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkBB2Fzc2V0SWQJAJQKAgUDbmlsCQENZ2V0QWNjQmFsYW5jZQEFB2Fzc2V0SWQBaQEZY2FsY1ByaWNlc1dyYXBwZXJSRUFET05MWQMFYW1BbXQFcHJBbXQFbHBBbXQEAnByCQEKY2FsY1ByaWNlcwMFBWFtQW10BQVwckFtdAUFbHBBbXQJAJQKAgUDbmlsCQDMCAIJAKYDAQkAkQMCBQJwcgAACQDMCAIJAKYDAQkAkQMCBQJwcgABCQDMCAIJAKYDAQkAkQMCBQJwcgACBQNuaWwBaQEWZnJvbVgxOFdyYXBwZXJSRUFET05MWQIDdmFsDHJlc1NjYWxlTXVsdAkAlAoCBQNuaWwJAQJmMQIJAKcDAQUDdmFsBQxyZXNTY2FsZU11bHQBaQEUdG9YMThXcmFwcGVyUkVBRE9OTFkCB29yaWdWYWwNb3JpZ1NjYWxlTXVsdAkAlAoCBQNuaWwJAKYDAQkBAnQxAgUHb3JpZ1ZhbAUNb3JpZ1NjYWxlTXVsdAFpAR5jYWxjUHJpY2VCaWdJbnRXcmFwcGVyUkVBRE9OTFkCCHByQW10WDE4CGFtQW10WDE4CQCUCgIFA25pbAkApgMBCQEEY3BiaQIJAKcDAQUIcHJBbXRYMTgJAKcDAQUIYW1BbXRYMTgBaQEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJBnR4SWQ1OAhzbGlwcGFnZQdpbkFtQW10BmluQW1JZAdpblByQW10BmluUHJJZAd1c3JBZGRyBmlzRXZhbAZlbWl0THAJAJQKAgUDbmlsCQEDZXBvDQUGdHhJZDU4BQhzbGlwcGFnZQUHaW5BbUFtdAUGaW5BbUlkBQdpblByQW10BQZpblBySWQFB3VzckFkZHIFBmlzRXZhbAUGZW1pdExwBgcAAAIAAWkBI2VzdGltYXRlR2V0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZBAZ0eElkNTgHcG10QXNJZAhwbXRMcEFtdAd1c3JBZGRyBAFyCQEDZWdvBAUGdHhJZDU4BQdwbXRBc0lkBQhwbXRMcEFtdAkBEUBleHRyTmF0aXZlKDEwNjIpAQUHdXNyQWRkcgkAlAoCBQNuaWwJAJwKCggFAXICXzEIBQFyAl8yCAUBcgJfMwgFAXICXzQIBQFyAl81CAUBcgJfNggFAXICXzcJAKYDAQgFAXICXzgIBQFyAl85CAUBcgNfMTABAnR4AQZ2ZXJpZnkABA90YXJnZXRQdWJsaWNLZXkEByRtYXRjaDAJAQFtAAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAgFAnR4D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yBAckbWF0Y2gwBQJ0eAMJAAECBQckbWF0Y2gwAgVPcmRlcgQFb3JkZXIFByRtYXRjaDAECm1hdGNoZXJQdWIJAQJtcAAECm9yZGVyVmFsaWQJAQNtb2EBBQVvcmRlcgQLc2VuZGVyVmFsaWQJAPQDAwgFBW9yZGVyCWJvZHlCeXRlcwkAkQMCCAUFb3JkZXIGcHJvb2ZzAAAIBQVvcmRlcg9zZW5kZXJQdWJsaWNLZXkEDG1hdGNoZXJWYWxpZAkA9AMDCAUFb3JkZXIJYm9keUJ5dGVzCQCRAwIIBQVvcmRlcgZwcm9vZnMAAQUKbWF0Y2hlclB1YgMDAwUKb3JkZXJWYWxpZAULc2VuZGVyVmFsaWQHBQxtYXRjaGVyVmFsaWQHBgkBA3RvZQMFCm9yZGVyVmFsaWQFC3NlbmRlclZhbGlkBQxtYXRjaGVyVmFsaWQDCQABAgUHJG1hdGNoMAIUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAXMFByRtYXRjaDAEB25ld0hhc2gJAPYDAQkBBXZhbHVlAQgFAXMGc2NyaXB0BAthbGxvd2VkSGFzaAkA2wQBCQEFdmFsdWUBCQCdCAIFA2ZjYQkBHGtleUFsbG93ZWRMcFN0YWJsZVNjcmlwdEhhc2gABAtjdXJyZW50SGFzaAkA8QcBBQR0aGlzAwMJAAACBQthbGxvd2VkSGFzaAUHbmV3SGFzaAkBAiE9AgULY3VycmVudEhhc2gFB25ld0hhc2gHBgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUPdGFyZ2V0UHVibGljS2V5CQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQ90YXJnZXRQdWJsaWNLZXlqiZTE", "height": 2228646, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6F88CMmmrNteAsSwkECQd7zmXLmmB6dVTMC1XFDPdo4g Next: D4S3UkgcwYno1rvAUZxQ7M4H8M7MissbN4xZ7kRh1eFh Diff:
OldNewDifferences
273273 }
274274
275275
276-func ch (bJ,bi,ci,cj,ck,cl,bM,cm,cn,co,cp,cq) = {
276+func ch (bJ,bi,ci,cj,ck,cl,bM,cm,cn,co,cp,cq,cr) = {
277277 let bz = aC()
278278 let bN = fromBase58String(bz[q])
279- let cr = bz[r]
280- let cs = bz[s]
281- let ct = bz[v]
282- let cu = bz[w]
283- let cv = parseIntValue(bz[t])
284- let cw = parseIntValue(bz[u])
279+ let cs = bz[r]
280+ let ct = bz[s]
281+ let cu = bz[v]
282+ let cv = bz[w]
283+ let cw = parseIntValue(bz[t])
284+ let cx = parseIntValue(bz[u])
285285 let bS = bz[p]
286- let cx = valueOrErrorMessage(assetInfo(bN), "Wr lp as").quantity
286+ let cy = valueOrErrorMessage(assetInfo(bN), "Wr lp as").quantity
287287 let bU = if (cm)
288- then ba(cr)
289- else if (if (co)
290- then (cq == cr)
291- else false)
292- then (ba(cr) - cp)
293- else if (co)
294- then ba(cr)
295- else (ba(cr) - ci)
296- let bW = if (cm)
297288 then ba(cs)
298289 else if (if (co)
299- then (cq == cs)
290+ then (cr == cs)
300291 else false)
301- then (ba(cs) - cp)
292+ then (ba(cs) - cq)
302293 else if (co)
303294 then ba(cs)
304- else (ba(cs) - ck)
305- let cy = B(ci, cv)
306- let cz = B(ck, cw)
307- let cA = bc(cz, cy)
308- let bV = B(bU, cv)
309- let bX = B(bW, cw)
310- let cB = if ((cx == 0))
295+ else (ba(cs) - ci)
296+ let bW = if (cm)
297+ then ba(ct)
298+ else if (if (co)
299+ then (cr == ct)
300+ else false)
301+ then (ba(ct) - cq)
302+ else if (co)
303+ then ba(ct)
304+ else (ba(ct) - ck)
305+ let cz = B(ci, cw)
306+ let cA = B(ck, cx)
307+ let cB = bc(cA, cz)
308+ let bV = B(bU, cw)
309+ let bX = B(bW, cx)
310+ let cC = if ((cy == 0))
311311 then {
312312 let bY = d
313- let cC = d
314- let bD = pow((cy * cz), 0, toBigInt(5), 1, 0, DOWN)
315- $Tuple5(E(bD, a), E(cy, cv), E(cz, cw), bc((bX + cz), (bV + cy)), cC)
313+ let cD = d
314+ let bD = pow((cz * cA), 0, toBigInt(5), 1, 0, DOWN)
315+ $Tuple5(E(bD, a), E(cz, cw), E(cA, cx), bc((bX + cA), (bV + cz)), cD)
316316 }
317317 else {
318318 let bY = bc(bX, bV)
319- let cD = fraction(L((bY - cA)), c, bY)
320- let cC = B(bi, a)
321- if (if ((bY != d))
322- then (cD > cC)
319+ let cE = fraction(L((bY - cB)), c, bY)
320+ let cD = B(bi, a)
321+ if (if (if (cp)
322+ then (bY != d)
323323 else false)
324- then throw(((("Price slippage " + toString(cD)) + " > ") + toString(cC)))
324+ then (cE > cD)
325+ else false)
326+ then throw(((("Price slippage " + toString(cE)) + " > ") + toString(cD)))
325327 else {
326- let cE = B(cx, a)
327- let cF = fraction(cy, bY, c)
328- let cG = fraction(cz, c, bY)
329- let cH = if ((cF > cz))
330- then $Tuple2(cG, cz)
331- else $Tuple2(cy, cF)
332- let cI = cH._1
333- let cJ = cH._2
334- let bD = fraction(cE, cJ, bX)
335- $Tuple5(E(bD, a), E(cI, cv), E(cJ, cw), bY, cC)
328+ let cF = B(cy, a)
329+ let cG = fraction(cz, bY, c)
330+ let cH = fraction(cA, c, bY)
331+ let cI = if ((cG > cA))
332+ then $Tuple2(cH, cA)
333+ else $Tuple2(cz, cG)
334+ let cJ = cI._1
335+ let cK = cI._2
336+ let bD = fraction(cF, cK, bX)
337+ $Tuple5(E(bD, a), E(cJ, cw), E(cK, cx), bY, cD)
336338 }
337339 }
338- let cK = cB._1
339- let cL = cB._2
340- let cM = cB._3
341- let bZ = E(cB._4, a)
342- let cN = E(cB._5, a)
343- if ((0 >= cK))
340+ let cL = cC._1
341+ let cM = cC._2
342+ let cN = cC._3
343+ let bZ = E(cC._4, a)
344+ let cO = E(cC._5, a)
345+ if ((0 >= cL))
344346 then throw("LP <= 0")
345347 else {
346- let cO = if (!(cn))
348+ let cP = if (!(cn))
347349 then 0
348- else cK
349- let cP = (ci - cL)
350- let cQ = (ck - cM)
351- let cR = if (if (co)
352- then (cq == cr)
350+ else cL
351+ let cQ = (ci - cM)
352+ let cR = (ck - cN)
353+ let cS = if (if (co)
354+ then (cr == cs)
353355 else false)
354- then $Tuple2(cp, 0)
356+ then $Tuple2(cq, 0)
355357 else if (if (co)
356- then (cq == cs)
358+ then (cr == ct)
357359 else false)
358- then $Tuple2(0, cp)
359- else $Tuple2(cL, cM)
360- let cS = cR._1
361- let cT = cR._2
362- let cU = [IntegerEntry(P(), bZ), IntegerEntry(Q(height, lastBlock.timestamp), bZ), StringEntry(T(bM, bJ), aL(cS, cT, cO, bZ, bi, cN, height, lastBlock.timestamp, cP, cQ))]
363- $Tuple13(cK, cO, bZ, bU, bW, cx, bN, bS, cU, cP, cQ, cj, cl)
360+ then $Tuple2(0, cq)
361+ else $Tuple2(cM, cN)
362+ let cT = cS._1
363+ let cU = cS._2
364+ let cV = [IntegerEntry(P(), bZ), IntegerEntry(Q(height, lastBlock.timestamp), bZ), StringEntry(T(bM, bJ), aL(cT, cU, cP, bZ, bi, cO, height, lastBlock.timestamp, cQ, cR))]
365+ $Tuple13(cL, cP, bZ, bU, bW, cy, bN, bS, cV, cQ, cR, cj, cl)
364366 }
365367 }
366368
367369
368-func cV (cW) = {
370+func cW (cX) = {
369371 let bz = aC()
370- let cX = bz[r]
371- let cY = bz[s]
372+ let cY = bz[r]
373+ let cZ = bz[s]
372374 let bS = parseIntValue(bz[p])
373375 let bA = parseIntValue(bz[t])
374376 let bB = parseIntValue(bz[u])
375- let cZ = ba(cX)
376377 let da = ba(cY)
377- let bY = if ((cW.orderType == Buy))
378- then bq(bA, bB, (cZ + cW.amount), da)
379- else bq(bA, bB, (cZ - cW.amount), da)
378+ let db = ba(cZ)
379+ let bY = if ((cX.orderType == Buy))
380+ then bq(bA, bB, (da + cX.amount), db)
381+ else bq(bA, bB, (da - cX.amount), db)
380382 let bZ = E(bY, a)
381383 if (if (if (aA())
382384 then true
385387 else (bS == n))
386388 then throw("Admin blocked")
387389 else {
388- let db = cW.assetPair.amountAsset
389- let dc = if ((db == unit))
390+ let dc = cX.assetPair.amountAsset
391+ let dd = if ((dc == unit))
390392 then "WAVES"
391- else toBase58String(value(db))
392- let dd = cW.assetPair.priceAsset
393- let de = if ((dd == unit))
393+ else toBase58String(value(dc))
394+ let de = cX.assetPair.priceAsset
395+ let df = if ((de == unit))
394396 then "WAVES"
395- else toBase58String(value(dd))
396- if (if ((dc != cX))
397+ else toBase58String(value(de))
398+ if (if ((dd != cY))
397399 then true
398- else (de != cY))
400+ else (df != cZ))
399401 then throw("Wr assets")
400402 else {
401- let df = cW.price
402- let cw = fraction(a, bB, bA)
403- let dg = H(df, a, cw)
404- let dh = if ((cW.orderType == Buy))
405- then (bZ >= dg)
406- else (dg >= bZ)
403+ let dg = cX.price
404+ let cx = fraction(a, bB, bA)
405+ let dh = H(dg, a, cx)
406+ let di = if ((cX.orderType == Buy))
407+ then (bZ >= dh)
408+ else (dh >= bZ)
407409 true
408410 }
409411 }
410412 }
411413
412414
413-func di (dj) = if ((size(dj.payments) != 1))
415+func dj (dk) = if ((size(dk.payments) != 1))
414416 then throw("1 pmnt exp")
415417 else {
416- let dk = value(dj.payments[0])
417- let bK = value(dk.assetId)
418- let cp = dk.amount
419- let cB = bI(toBase58String(dj.transactionId), toBase58String(bK), cp, dj.caller)
420- let ce = cB._1
421- let cf = cB._2
422- let bS = parseIntValue(cB._9)
423- let cg = cB._10
418+ let dl = value(dk.payments[0])
419+ let bK = value(dl.assetId)
420+ let cq = dl.amount
421+ let cC = bI(toBase58String(dk.transactionId), toBase58String(bK), cq, dk.caller)
422+ let ce = cC._1
423+ let cf = cC._2
424+ let bS = parseIntValue(cC._9)
425+ let cg = cC._10
424426 if (if (aA())
425427 then true
426428 else (bS == n))
427429 then throw(("Admin blocked: " + toString(bS)))
428- else $Tuple5(ce, cf, cp, bK, cg)
430+ else $Tuple5(ce, cf, cq, bK, cg)
429431 }
430432
431433
432-func dl (ac,V,dm,dn,bi,cn,co,cp,cq) = {
433- let cB = ch(V, bi, value(dm).amount, value(dm).assetId, value(dn).amount, value(dn).assetId, ac, false, cn, co, cp, cq)
434- let bS = parseIntValue(cB._8)
434+func dm (ac,V,dn,do,bi,cn,co,cp,cq,cr) = {
435+ let cC = ch(V, bi, value(dn).amount, value(dn).assetId, value(do).amount, value(do).assetId, ac, false, cn, co, cp, cq, cr)
436+ let bS = parseIntValue(cC._8)
435437 if (if (if (aA())
436438 then true
437439 else (bS == l))
438440 then true
439441 else (bS == n))
440442 then throw(("Blocked:" + toString(bS)))
441- else cB
443+ else cC
442444 }
443445
444446
445-func do () = {
447+func dp () = {
446448 let as = getString(N())
447449 if ($isInstanceOf(as, "String"))
448450 then {
449- let dp = as
450- fromBase58String(dp)
451+ let dq = as
452+ fromBase58String(dq)
451453 }
452454 else if ($isInstanceOf(as, "Unit"))
453455 then unit
455457 }
456458
457459
458-func dq () = {
460+func dr () = {
459461 let as = getString(O())
460462 if ($isInstanceOf(as, "String"))
461463 then {
462- let dp = as
463- fromBase58String(dp)
464+ let dq = as
465+ fromBase58String(dq)
464466 }
465467 else if ($isInstanceOf(as, "Unit"))
466468 then unit
468470 }
469471
470472
471-let dr = throw("Permission denied")
473+let ds = throw("Permission denied")
472474
473-func ds (dj) = {
474- let as = do()
475+func dt (dk) = {
476+ let as = dp()
475477 if ($isInstanceOf(as, "ByteVector"))
476478 then {
477- let dt = as
478- if ((dj.callerPublicKey == dt))
479+ let du = as
480+ if ((dk.callerPublicKey == du))
479481 then true
480- else dr
482+ else ds
481483 }
482484 else if ($isInstanceOf(as, "Unit"))
483- then if ((dj.caller == this))
485+ then if ((dk.caller == this))
484486 then true
485- else dr
487+ else ds
486488 else throw("Match error")
487489 }
488490
489491
490-@Callable(dj)
492+@Callable(dk)
491493 func constructor (M) = {
492- let du = ds(dj)
493- if ((du == du))
494+ let dv = dt(dk)
495+ if ((dv == dv))
494496 then [StringEntry(M(), M)]
495497 else throw("Strict value is not equal to itself.")
496498 }
497499
498500
499501
500-@Callable(dj)
501-func setManager (dv) = {
502- let du = ds(dj)
503- if ((du == du))
502+@Callable(dk)
503+func setManager (dw) = {
504+ let dv = dt(dk)
505+ if ((dv == dv))
504506 then {
505- let dw = fromBase58String(dv)
506- if ((dw == dw))
507- then [StringEntry(O(), dv)]
507+ let dx = fromBase58String(dw)
508+ if ((dx == dx))
509+ then [StringEntry(O(), dw)]
508510 else throw("Strict value is not equal to itself.")
509511 }
510512 else throw("Strict value is not equal to itself.")
512514
513515
514516
515-@Callable(dj)
517+@Callable(dk)
516518 func confirmManager () = {
517- let bH = dq()
518- let dx = if (isDefined(bH))
519+ let bH = dr()
520+ let dy = if (isDefined(bH))
519521 then true
520522 else throw("No pending manager")
521- if ((dx == dx))
523+ if ((dy == dy))
522524 then {
523- let dy = if ((dj.callerPublicKey == value(bH)))
525+ let dz = if ((dk.callerPublicKey == value(bH)))
524526 then true
525527 else throw("You are not pending manager")
526- if ((dy == dy))
528+ if ((dz == dz))
527529 then [StringEntry(N(), toBase58String(value(bH))), DeleteEntry(O())]
528530 else throw("Strict value is not equal to itself.")
529531 }
532534
533535
534536
535-@Callable(dj)
536-func put (dz,dA) = {
537- let dB = aG()
538- let dC = valueOrErrorMessage(addressFromString(dB[x]), "Wr st addr")
539- let dD = valueOrErrorMessage(addressFromString(dB[y]), "Wr sl addr")
540- if ((0 > dz))
537+@Callable(dk)
538+func put (dA,dB) = {
539+ let dC = aG()
540+ let dD = valueOrErrorMessage(addressFromString(dC[x]), "Wr st addr")
541+ let dE = valueOrErrorMessage(addressFromString(dC[y]), "Wr sl addr")
542+ if ((0 > dA))
541543 then throw("Wrong slippage")
542- else if ((size(dj.payments) != 2))
544+ else if ((size(dk.payments) != 2))
543545 then throw("2 pmnts expd")
544546 else {
545- let dE = dl(toString(dj.caller), toBase58String(dj.transactionId), AttachedPayment(value(dj.payments[0]).assetId, value(dj.payments[0]).amount), dj.payments[1], dz, true, false, 0, "")
546- let cO = dE._2
547- let dF = dE._7
548- let cg = dE._9
549- let cP = dE._10
550- let cQ = dE._11
551- let bO = dE._12
552- let bP = dE._13
553- let cB = invoke(ay, "emit", [cO], nil)
554- if ((cB == cB))
547+ let dF = dm(toString(dk.caller), toBase58String(dk.transactionId), AttachedPayment(value(dk.payments[0]).assetId, value(dk.payments[0]).amount), dk.payments[1], dA, true, false, true, 0, "")
548+ let cP = dF._2
549+ let dG = dF._7
550+ let cg = dF._9
551+ let cQ = dF._10
552+ let cR = dF._11
553+ let bO = dF._12
554+ let bP = dF._13
555+ let cC = invoke(ay, "emit", [cP], nil)
556+ if ((cC == cC))
555557 then {
556- let dG = {
557- let as = cB
558+ let dH = {
559+ let as = cC
558560 if ($isInstanceOf(as, "Address"))
559561 then {
560- let dH = as
561- invoke(dH, "emit", [cO], nil)
562+ let dI = as
563+ invoke(dI, "emit", [cP], nil)
562564 }
563565 else unit
564566 }
565- if ((dG == dG))
567+ if ((dH == dH))
566568 then {
567- let dI = if ((cP > 0))
568- then invoke(dD, "put", nil, [AttachedPayment(bO, cP)])
569+ let dJ = if ((cQ > 0))
570+ then invoke(dE, "put", nil, [AttachedPayment(bO, cQ)])
569571 else nil
570- if ((dI == dI))
572+ if ((dJ == dJ))
571573 then {
572- let dJ = if ((cQ > 0))
573- then invoke(dD, "put", nil, [AttachedPayment(bP, cQ)])
574+ let dK = if ((cR > 0))
575+ then invoke(dE, "put", nil, [AttachedPayment(bP, cR)])
574576 else nil
575- if ((dJ == dJ))
577+ if ((dK == dK))
576578 then {
577- let dK = if (dA)
579+ let dL = if (dB)
578580 then {
579- let dL = invoke(dC, "stake", nil, [AttachedPayment(dF, cO)])
580- if ((dL == dL))
581+ let dM = invoke(dD, "stake", nil, [AttachedPayment(dG, cP)])
582+ if ((dM == dM))
581583 then nil
582584 else throw("Strict value is not equal to itself.")
583585 }
584- else [ScriptTransfer(dj.caller, cO, dF)]
585- (cg ++ dK)
586+ else [ScriptTransfer(dk.caller, cP, dG)]
587+ (cg ++ dL)
586588 }
587589 else throw("Strict value is not equal to itself.")
588590 }
596598
597599
598600
599-@Callable(dj)
600-func putOneTkn (dM,dN,dO,bi,dA) = {
601+@Callable(dk)
602+func putOneTkn (dN,dO,dP,bi,dB) = {
601603 let bz = aG()
602- let dC = valueOrErrorMessage(addressFromString(bz[x]), "Wr st addr")
603- let dD = valueOrErrorMessage(addressFromString(bz[y]), "Wr sl addr")
604- let dP = valueOrErrorMessage(addressFromString(bz[z]), "Wr gwx addr")
605- let dQ = aC()
606- let bO = dQ[r]
607- let bP = dQ[s]
608- let bQ = parseIntValue(dQ[t])
609- let bR = parseIntValue(dQ[u])
610- let dR = valueOrElse(getString(this, aa()), "")
611- let bM = if ((dR == toString(dj.caller)))
612- then dj.originCaller
613- else dj.caller
614- let dS = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
615- let dT = reentrantInvoke(dS, "ensureCanPutOneTkn", [toString(bM)], nil)
616- if ((dT == dT))
604+ let dD = valueOrErrorMessage(addressFromString(bz[x]), "Wr st addr")
605+ let dE = valueOrErrorMessage(addressFromString(bz[y]), "Wr sl addr")
606+ let dQ = valueOrErrorMessage(addressFromString(bz[z]), "Wr gwx addr")
607+ let dR = aC()
608+ let bO = dR[r]
609+ let bP = dR[s]
610+ let bQ = parseIntValue(dR[t])
611+ let bR = parseIntValue(dR[u])
612+ let dS = valueOrElse(getString(this, aa()), "")
613+ let bM = if ((dS == toString(dk.caller)))
614+ then dk.originCaller
615+ else dk.caller
616+ let dT = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
617+ let dU = reentrantInvoke(dT, "ensureCanPutOneTkn", [toString(bM)], nil)
618+ if ((dU == dU))
617619 then if (if (if (if ((0 >= bi))
618- then true
619- else (0 >= dM))
620620 then true
621621 else (0 >= dN))
622622 then true
623623 else (0 >= dO))
624+ then true
625+ else (0 >= dP))
624626 then throw("Wrong params")
625- else if ((size(dj.payments) != 1))
627+ else if ((size(dk.payments) != 1))
626628 then throw("1 pmnt expd")
627629 else {
628- let dk = value(dj.payments[0])
629- let bK = toBase58String(value(dk.assetId))
630- let cp = dk.amount
631- if ((10000000 > cp))
630+ let dl = value(dk.payments[0])
631+ let bK = toBase58String(value(dl.assetId))
632+ let cq = dl.amount
633+ if ((10000000 > cq))
632634 then throw("Wrong pmt amt")
633635 else {
634636 let bU = ba(bO)
635637 let bW = ba(bP)
636- let dU = if ((bK == bO))
637- then if (if ((cp > bU))
638+ let dV = if ((bK == bO))
639+ then if (if ((cq > bU))
638640 then true
639- else (dM > cp))
641+ else (dN > cq))
640642 then throw("invalid payment amount")
641- else $Tuple6((bU - cp), bW, (cp - dM), dN, 0, 0)
643+ else $Tuple6((bU - cq), bW, (cq - dN), dO, 0, 0)
642644 else if ((bK == bP))
643- then if (if ((cp > bW))
645+ then if (if ((cq > bW))
644646 then true
645- else (dN > cp))
647+ else (dO > cq))
646648 then throw("invalid payment amount")
647- else $Tuple6(bU, (bW - cp), 0, 0, (cp - dN), dM)
649+ else $Tuple6(bU, (bW - cq), 0, 0, (cq - dO), dN)
648650 else throw("wrong pmtAssetId")
649- let dV = dU._1
650- let dW = dU._2
651- let dX = dU._3
652- let dY = dU._4
653- let dZ = dU._5
654- let ea = dU._6
655- let bn = invoke(dP, "calcD", [toString(dV), toString(dW), az, g, h], nil)
656- let bm = invoke(dP, "calcD", [toString(toBigInt(((dV + dX) - ea))), toString(toBigInt(((dW + dZ) - dY))), az, g, h], nil)
657- let eb = bl(parseBigIntValue(ar(bm)), parseBigIntValue(ar(bn)), f)
658- if ((eb == eb))
651+ let dW = dV._1
652+ let dX = dV._2
653+ let dY = dV._3
654+ let dZ = dV._4
655+ let ea = dV._5
656+ let eb = dV._6
657+ let bn = invoke(dQ, "calcD", [toString(dW), toString(dX), az, g, h], nil)
658+ let bm = invoke(dQ, "calcD", [toString(toBigInt(((dW + dY) - eb))), toString(toBigInt(((dX + ea) - dZ))), az, g, h], nil)
659+ let ec = bl(parseBigIntValue(ar(bm)), parseBigIntValue(ar(bn)), f)
660+ if ((ec == ec))
659661 then {
660- let ec = dl(toString(dj.caller), toBase58String(dj.transactionId), AttachedPayment(fromBase58String(bO), dM), AttachedPayment(fromBase58String(bP), dN), bi, true, true, cp, bK)
661- let ed = ec._2
662- let dF = ec._7
663- let cg = ec._9
664- let cP = ec._10
665- let cQ = ec._11
666- let ee = bf(toBigInt(ed), toBigInt(dO), toBigInt(bi))
667- let cO = toInt(ee._2)
668- let dE = invoke(ay, "emit", [cO], nil)
669- if ((dE == dE))
662+ let ed = dm(toString(dk.caller), toBase58String(dk.transactionId), AttachedPayment(fromBase58String(bO), dN), AttachedPayment(fromBase58String(bP), dO), bi, true, true, true, cq, bK)
663+ let ee = ed._2
664+ let dG = ed._7
665+ let cg = ed._9
666+ let cQ = ed._10
667+ let cR = ed._11
668+ let ef = bf(toBigInt(ee), toBigInt(dP), toBigInt(bi))
669+ let cP = toInt(ef._2)
670+ let dF = invoke(ay, "emit", [cP], nil)
671+ if ((dF == dF))
670672 then {
671- let dG = {
672- let as = dE
673+ let dH = {
674+ let as = dF
673675 if ($isInstanceOf(as, "Address"))
674676 then {
675- let dH = as
676- invoke(dH, "emit", [cO], nil)
677+ let dI = as
678+ invoke(dI, "emit", [cP], nil)
677679 }
678680 else unit
679681 }
680- if ((dG == dG))
682+ if ((dH == dH))
681683 then {
682- let dI = if ((cP > 0))
683- then invoke(dD, "put", nil, [AttachedPayment(fromBase58String(bO), cP)])
684+ let dJ = if ((cQ > 0))
685+ then invoke(dE, "put", nil, [AttachedPayment(fromBase58String(bO), cQ)])
684686 else nil
685- if ((dI == dI))
687+ if ((dJ == dJ))
686688 then {
687- let dJ = if ((cQ > 0))
688- then invoke(dD, "put", nil, [AttachedPayment(fromBase58String(bP), cQ)])
689+ let dK = if ((cR > 0))
690+ then invoke(dE, "put", nil, [AttachedPayment(fromBase58String(bP), cR)])
689691 else nil
690- if ((dJ == dJ))
692+ if ((dK == dK))
691693 then {
692- let dK = if (dA)
694+ let dL = if (dB)
693695 then {
694- let dL = invoke(dC, "stake", nil, [AttachedPayment(dF, cO)])
695- if ((dL == dL))
696+ let dM = invoke(dD, "stake", nil, [AttachedPayment(dG, cP)])
697+ if ((dM == dM))
696698 then nil
697699 else throw("Strict value is not equal to itself.")
698700 }
699- else [ScriptTransfer(dj.caller, cO, dF)]
700- (cg ++ dK)
701+ else [ScriptTransfer(dk.caller, cP, dG)]
702+ (cg ++ dL)
701703 }
702704 else throw("Strict value is not equal to itself.")
703705 }
715717
716718
717719
718-@Callable(dj)
719-func putOneTknV2 (dO,bi,dA) = if ((size(dj.payments) != 1))
720+@Callable(dk)
721+func putOneTknV2 (eg,dB) = if ((size(dk.payments) != 1))
720722 then throw("1 pmnt expd")
721723 else {
722- let ef = aC()
723- let bO = ef[r]
724- let bP = ef[s]
725- let eg = parseIntValue(ef[t])
726- let eh = parseIntValue(ef[u])
727- let bM = if ((dj.caller == this))
728- then dj.originCaller
729- else dj.caller
730- let dk = value(dj.payments[0])
731- let bK = toBase58String(value(dk.assetId))
732- let cp = dk.amount
733- if ((10000000 > cp))
724+ let eh = aC()
725+ let bO = eh[r]
726+ let bP = eh[s]
727+ let ei = parseIntValue(eh[t])
728+ let ej = parseIntValue(eh[u])
729+ let bM = if ((dk.caller == this))
730+ then dk.originCaller
731+ else dk.caller
732+ let dl = value(dk.payments[0])
733+ let bK = toBase58String(value(dl.assetId))
734+ let cq = dl.amount
735+ if ((10000000 > cq))
734736 then throw("Wrong pmt amt")
735737 else {
736738 let bU = ba(bO)
737739 let bW = ba(bP)
738- let ei = if ((bK == bO))
739- then if ((cp > bU))
740+ let ek = if ((bK == bO))
741+ then if ((cq > bU))
740742 then throw("invalid payment amount")
741- else $Tuple2((bU - cp), bW)
743+ else $Tuple2((bU - cq), bW)
742744 else if ((bK == bP))
743- then if ((cp > bW))
745+ then if ((cq > bW))
744746 then throw("invalid payment amount")
745- else $Tuple2(bU, (bW - cp))
747+ else $Tuple2(bU, (bW - cq))
746748 else throw("wrong pmtAssetId")
747- let dV = ei._1
748- let dW = ei._2
749- let ej = if ((bK == bO))
750- then $Tuple2(dV, dW)
751- else $Tuple2(dW, dV)
752- let ek = ej._1
753- let el = ej._2
754- let em = 1
755- let en = {
756- let eo = invoke(aK, "calcPutXOnly", [toString(cp), toString(ek), toString(el), "", az, g, toString(em), h], nil)
757- if ($isInstanceOf(eo, "(Int, Int)"))
758- then eo
759- else throw(($getType(invoke(aK, "calcPutXOnly", [toString(cp), toString(ek), toString(el), "", az, g, toString(em), h], nil)) + " couldn't be cast to (Int, Int)"))
749+ let dW = ek._1
750+ let dX = ek._2
751+ let el = if ((bK == bO))
752+ then $Tuple2(dW, dX)
753+ else $Tuple2(dX, dW)
754+ let em = el._1
755+ let en = el._2
756+ let eo = 1
757+ let ep = {
758+ let eq = invoke(aK, "calcPutXOnly", [toString(cq), toString(em), toString(en), "", az, g, toString(eo), h], nil)
759+ if ($isInstanceOf(eq, "(Int, Int)"))
760+ then eq
761+ else throw(($getType(invoke(aK, "calcPutXOnly", [toString(cq), toString(em), toString(en), "", az, g, toString(eo), h], nil)) + " couldn't be cast to (Int, Int)"))
760762 }
761- let ep = if ((bK == bO))
762- then en
763- else $Tuple2(en._2, en._1)
764- let dM = ep._1
765- let dN = ep._2
766- let ec = dl(toString(dj.caller), toBase58String(dj.transactionId), AttachedPayment(fromBase58String(bO), dM), AttachedPayment(fromBase58String(bP), dN), bi, true, true, cp, bK)
767- let ed = ec._2
768- let dF = ec._7
769- let cg = ec._9
770- let cP = ec._10
771- let cQ = ec._11
772- let cO = if ((dO > 0))
763+ let er = if ((bK == bO))
764+ then ep
765+ else $Tuple2(ep._2, ep._1)
766+ let dN = er._1
767+ let dO = er._2
768+ let ed = dm(toString(dk.caller), toBase58String(dk.transactionId), AttachedPayment(fromBase58String(bO), dN), AttachedPayment(fromBase58String(bP), dO), 0, true, true, false, cq, bK)
769+ let ee = ed._2
770+ let dG = ed._7
771+ let cg = ed._9
772+ let cQ = ed._10
773+ let cR = ed._11
774+ let cP = if (if ((eg > 0))
775+ then (eg > ee)
776+ else false)
777+ then throw(makeString(["amount to receive is less than ", toString(eg)], ""))
778+ else ee
779+ let dF = invoke(ay, "emit", [cP], nil)
780+ if ((dF == dF))
773781 then {
774- let ee = bf(toBigInt(ed), toBigInt(dO), toBigInt(bi))
775- toInt(ee._2)
776- }
777- else ed
778- let dE = invoke(ay, "emit", [cO], nil)
779- if ((dE == dE))
780- then {
781- let dG = {
782- let as = dE
782+ let dH = {
783+ let as = dF
783784 if ($isInstanceOf(as, "Address"))
784785 then {
785- let dH = as
786- invoke(dH, "emit", [cO], nil)
786+ let dI = as
787+ invoke(dI, "emit", [cP], nil)
787788 }
788789 else unit
789790 }
790- if ((dG == dG))
791+ if ((dH == dH))
791792 then {
792- let dI = if ((cP > 0))
793- then invoke(aJ, "put", nil, [AttachedPayment(fromBase58String(bO), cP)])
793+ let dJ = if ((cQ > 0))
794+ then invoke(aJ, "put", nil, [AttachedPayment(fromBase58String(bO), cQ)])
794795 else nil
795- if ((dI == dI))
796+ if ((dJ == dJ))
796797 then {
797- let dJ = if ((cQ > 0))
798- then invoke(aJ, "put", nil, [AttachedPayment(fromBase58String(bP), cQ)])
798+ let dK = if ((cR > 0))
799+ then invoke(aJ, "put", nil, [AttachedPayment(fromBase58String(bP), cR)])
799800 else nil
800- if ((dJ == dJ))
801+ if ((dK == dK))
801802 then {
802- let dK = if (dA)
803+ let dL = if (dB)
803804 then {
804- let dL = invoke(aI, "stake", nil, [AttachedPayment(dF, cO)])
805- if ((dL == dL))
805+ let dM = invoke(aI, "stake", nil, [AttachedPayment(dG, cP)])
806+ if ((dM == dM))
806807 then nil
807808 else throw("Strict value is not equal to itself.")
808809 }
809- else [ScriptTransfer(dj.caller, cO, dF)]
810- (cg ++ dK)
810+ else [ScriptTransfer(dk.caller, cP, dG)]
811+ (cg ++ dL)
811812 }
812813 else throw("Strict value is not equal to itself.")
813814 }
821822
822823
823824
824-@Callable(dj)
825-func putForFree (eq) = if ((0 > eq))
825+@Callable(dk)
826+func putForFree (es) = if ((0 > es))
826827 then throw("Wrong slpg")
827- else if ((size(dj.payments) != 2))
828+ else if ((size(dk.payments) != 2))
828829 then throw("2 pmnts expd")
829830 else {
830- let ec = dl(toString(dj.caller), toBase58String(dj.transactionId), AttachedPayment(value(dj.payments[0]).assetId, value(dj.payments[0]).amount), dj.payments[1], eq, false, false, 0, "")
831- ec._9
831+ let ed = dm(toString(dk.caller), toBase58String(dk.transactionId), AttachedPayment(value(dk.payments[0]).assetId, value(dk.payments[0]).amount), dk.payments[1], es, false, false, true, 0, "")
832+ ed._9
832833 }
833834
834835
835836
836-@Callable(dj)
837+@Callable(dk)
837838 func get () = {
838- let cB = di(dj)
839- let er = cB._1
840- let cf = cB._2
841- let cp = cB._3
842- let bK = cB._4
843- let cg = cB._5
844- let es = invoke(ay, "burn", [cp], [AttachedPayment(bK, cp)])
845- if ((es == es))
839+ let cC = dj(dk)
840+ let et = cC._1
841+ let cf = cC._2
842+ let cq = cC._3
843+ let bK = cC._4
844+ let cg = cC._5
845+ let eu = invoke(ay, "burn", [cq], [AttachedPayment(bK, cq)])
846+ if ((eu == eu))
846847 then cg
847848 else throw("Strict value is not equal to itself.")
848849 }
849850
850851
851852
852-@Callable(dj)
853-func getOneTkn (et,eu,ev,ew,bi) = if ((size(dj.payments) != 1))
853+@Callable(dk)
854+func getOneTkn (ev,ew,ex,ey,bi) = if ((size(dk.payments) != 1))
854855 then throw("1 pmnt expd")
855856 else {
856857 let bz = aC()
860861 let bQ = parseIntValue(bz[t])
861862 let bR = parseIntValue(bz[u])
862863 let bS = bz[p]
863- let dB = aG()
864- let dP = valueOrErrorMessage(addressFromString(dB[z]), "Wr sl addr")
865- let dk = value(dj.payments[0])
866- let dR = valueOrElse(getString(this, aa()), "")
867- let bM = if ((dR == toString(dj.caller)))
868- then dj.originCaller
869- else dj.caller
870- let bJ = toBase58String(dj.transactionId)
871- let bK = value(dk.assetId)
872- let cp = dk.amount
873- let dS = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
874- let dT = reentrantInvoke(dS, "ensureCanGetOneTkn", [toString(bM)], nil)
875- if ((dT == dT))
876- then if ((1000000000 > cp))
864+ let dC = aG()
865+ let dQ = valueOrErrorMessage(addressFromString(dC[z]), "Wr sl addr")
866+ let dl = value(dk.payments[0])
867+ let dS = valueOrElse(getString(this, aa()), "")
868+ let bM = if ((dS == toString(dk.caller)))
869+ then dk.originCaller
870+ else dk.caller
871+ let bJ = toBase58String(dk.transactionId)
872+ let bK = value(dl.assetId)
873+ let cq = dl.amount
874+ let dT = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
875+ let dU = reentrantInvoke(dT, "ensureCanGetOneTkn", [toString(bM)], nil)
876+ if ((dU == dU))
877+ then if ((1000000000 > cq))
877878 then throw("Min pmt 10 LP")
878879 else if (if (if ((0 > bi))
879880 then true
880- else (0 > et))
881+ else (0 > ev))
881882 then true
882- else (0 > ev))
883+ else (0 > ex))
883884 then throw("Wrong params")
884885 else if ((bN != toBase58String(bK)))
885886 then throw("Wrong LP")
886887 else {
887- let cB = bI(toBase58String(dj.transactionId), toBase58String(bK), cp, dj.caller)
888- let ex = cB._1
889- let ey = cB._2
888+ let cC = bI(toBase58String(dk.transactionId), toBase58String(bK), cq, dk.caller)
889+ let ez = cC._1
890+ let eA = cC._2
890891 let bU = ba(bO)
891892 let bW = ba(bP)
892- let ez = if ((ew == bO))
893- then $Tuple7((bU - ex), (bW - ey), et, ey, 0, 0, (ex + et))
894- else if ((ew == bP))
895- then $Tuple7((bU - ex), (bW - ey), 0, 0, et, ex, (ey + et))
893+ let eB = if ((ey == bO))
894+ then $Tuple7((bU - ez), (bW - eA), ev, eA, 0, 0, (ez + ev))
895+ else if ((ey == bP))
896+ then $Tuple7((bU - ez), (bW - eA), 0, 0, ev, ez, (eA + ev))
896897 else throw("wrong outAssetId")
897- let dV = ez._1
898- let dW = ez._2
899- let dX = ez._3
900- let dY = ez._4
901- let dZ = ez._5
902- let ea = ez._6
903- let eA = ez._7
904- if (if ((0 > dX))
898+ let dW = eB._1
899+ let dX = eB._2
900+ let dY = eB._3
901+ let dZ = eB._4
902+ let ea = eB._5
903+ let eb = eB._6
904+ let eC = eB._7
905+ if (if ((0 > dY))
905906 then true
906- else (0 > dZ))
907+ else (0 > ea))
907908 then throw("Wrong calc")
908909 else {
909- let bn = invoke(dP, "calcD", [toString(dV), toString(dW), az, g, h], nil)
910- let bm = invoke(dP, "calcD", [toString(((dV - dX) + ea)), toString(((dW + dY) - dZ)), az, g, h], nil)
911- let eb = bl(parseBigIntValue(ar(bm)), parseBigIntValue(ar(bn)), f)
912- if ((eb == eb))
910+ let bn = invoke(dQ, "calcD", [toString(dW), toString(dX), az, g, h], nil)
911+ let bm = invoke(dQ, "calcD", [toString(((dW - dY) + eb)), toString(((dX + dZ) - ea)), az, g, h], nil)
912+ let ec = bl(parseBigIntValue(ar(bm)), parseBigIntValue(ar(bn)), f)
913+ if ((ec == ec))
913914 then {
914- let eB = bf(toBigInt(eA), toBigInt(ev), toBigInt(bi))
915- if ((eB == eB))
915+ let eD = bf(toBigInt(eC), toBigInt(ex), toBigInt(bi))
916+ if ((eD == eD))
916917 then {
917- let eC = if ((ew == bO))
918- then $Tuple2(toInt(eB._2), 0)
919- else $Tuple2(0, toInt(eB._2))
920- let eD = eC._1
921- let eE = eC._2
922- let eF = bc(B(bW, bR), B(bU, bQ))
923- let eG = E(eF, a)
924- let cg = [ScriptTransfer(bM, (eD + eE), if ((ew == "WAVES"))
918+ let eE = if ((ey == bO))
919+ then $Tuple2(toInt(eD._2), 0)
920+ else $Tuple2(0, toInt(eD._2))
921+ let eF = eE._1
922+ let eG = eE._2
923+ let eH = bc(B(bW, bR), B(bU, bQ))
924+ let eI = E(eH, a)
925+ let cg = [ScriptTransfer(bM, (eF + eG), if ((ey == "WAVES"))
925926 then unit
926- else fromBase58String(ew)), StringEntry(W(toString(bM), bJ), aW(eD, eE, cp, eG, height, lastBlock.timestamp)), IntegerEntry(P(), eG), IntegerEntry(Q(height, lastBlock.timestamp), eG)]
927+ else fromBase58String(ey)), StringEntry(W(toString(bM), bJ), aW(eF, eG, cq, eI, height, lastBlock.timestamp)), IntegerEntry(P(), eI), IntegerEntry(Q(height, lastBlock.timestamp), eI)]
927928 if ((cg == cg))
928929 then {
929- let eH = invoke(ay, "burn", [cp], [AttachedPayment(bK, cp)])
930- if ((eH == eH))
930+ let eJ = invoke(ay, "burn", [cq], [AttachedPayment(bK, cq)])
931+ if ((eJ == eJ))
931932 then cg
932933 else throw("Strict value is not equal to itself.")
933934 }
943944
944945
945946
946-@Callable(dj)
947-func getOneTknV2 (ev,ew,bi) = if ((size(dj.payments) != 1))
947+@Callable(dk)
948+func getOneTknV2 (ey,eg) = if ((size(dk.payments) != 1))
948949 then throw("1 pmnt expd")
949950 else {
950- let ef = aC()
951- let bN = ef[q]
952- let bO = ef[r]
953- let bP = ef[s]
954- let eg = parseIntValue(ef[t])
955- let eh = parseIntValue(ef[u])
956- let eI = ef[p]
957- let bM = if ((dj.caller == this))
958- then dj.originCaller
959- else dj.caller
960- let dk = value(dj.payments[0])
961- let bK = value(dk.assetId)
962- let cp = dk.amount
963- if ((1000000000 > cp))
951+ let eh = aC()
952+ let bN = eh[q]
953+ let bO = eh[r]
954+ let bP = eh[s]
955+ let ei = parseIntValue(eh[t])
956+ let ej = parseIntValue(eh[u])
957+ let eK = eh[p]
958+ let bM = if ((dk.caller == this))
959+ then dk.originCaller
960+ else dk.caller
961+ let dl = value(dk.payments[0])
962+ let bK = value(dl.assetId)
963+ let cq = dl.amount
964+ if ((1000000000 > cq))
964965 then throw("Min pmt 10 LP")
965966 else {
966- let bJ = toBase58String(dj.transactionId)
967- if ((0 > bi))
968- then throw("Wrong params")
969- else if ((bN != toBase58String(bK)))
970- then throw("Wrong LP")
971- else {
972- let cB = bI(bJ, toBase58String(bK), cp, dj.caller)
973- let ex = cB._1
974- let ey = cB._2
975- let bU = ba(bO)
976- let bW = ba(bP)
977- let dV = (bU - ex)
978- let dW = (bW - ey)
979- let eJ = if ((ew == bO))
980- then $Tuple3(dW, dV, ey)
981- else if ((ew == bP))
982- then $Tuple3(dV, dW, ex)
983- else throw("wrong outAssetId")
984- let eK = eJ._1
985- let eL = eJ._2
986- let eM = eJ._3
987- let eN = 1
988- let et = {
989- let eo = invoke(aK, "calcSwapXToY", [toString(eM), toString(eK), toString(eL), "", az, g, toString(eN), h], nil)
990- if ($isInstanceOf(eo, "Int"))
991- then eo
992- else throw(($getType(invoke(aK, "calcSwapXToY", [toString(eM), toString(eK), toString(eL), "", az, g, toString(eN), h], nil)) + " couldn't be cast to Int"))
967+ let bJ = toBase58String(dk.transactionId)
968+ if ((bN != toBase58String(bK)))
969+ then throw("Wrong LP")
970+ else {
971+ let cC = bI(bJ, toBase58String(bK), cq, dk.caller)
972+ let ez = cC._1
973+ let eA = cC._2
974+ let bU = ba(bO)
975+ let bW = ba(bP)
976+ let dW = (bU - ez)
977+ let dX = (bW - eA)
978+ let eL = if ((ey == bO))
979+ then $Tuple3(dX, dW, eA)
980+ else if ((ey == bP))
981+ then $Tuple3(dW, dX, ez)
982+ else throw("wrong outAssetId")
983+ let eM = eL._1
984+ let eN = eL._2
985+ let eO = eL._3
986+ let eP = 1
987+ let ev = {
988+ let eq = invoke(aK, "calcSwapXToY", [toString(eO), toString(eM), toString(eN), "", az, g, toString(eP), h], nil)
989+ if ($isInstanceOf(eq, "Int"))
990+ then eq
991+ else throw(($getType(invoke(aK, "calcSwapXToY", [toString(eO), toString(eM), toString(eN), "", az, g, toString(eP), h], nil)) + " couldn't be cast to Int"))
992+ }
993+ let eC = (ev + (if ((ey == bO))
994+ then ez
995+ else eA))
996+ let eQ = if (if ((eg > 0))
997+ then (eg > eC)
998+ else false)
999+ then throw(makeString(["amount to receive is less than ", toString(eg)], ""))
1000+ else eC
1001+ let eR = if ((ey == bO))
1002+ then $Tuple2(eQ, 0)
1003+ else $Tuple2(0, eQ)
1004+ let eF = eR._1
1005+ let eG = eR._2
1006+ let eH = bc(B(bW, ej), B(bU, ei))
1007+ let eI = E(eH, a)
1008+ let cg = [ScriptTransfer(bM, eQ, if ((ey == "WAVES"))
1009+ then unit
1010+ else fromBase58String(ey)), StringEntry(W(toString(bM), bJ), aW(eF, eG, cq, eI, height, lastBlock.timestamp)), IntegerEntry(P(), eI), IntegerEntry(Q(height, lastBlock.timestamp), eI)]
1011+ if ((cg == cg))
1012+ then {
1013+ let eJ = invoke(ay, "burn", [cq], [AttachedPayment(bK, cq)])
1014+ if ((eJ == eJ))
1015+ then $Tuple2(cg, eQ)
1016+ else throw("Strict value is not equal to itself.")
9931017 }
994- let eA = if ((ew == bO))
995- then (ex + et)
996- else (ey + et)
997- let eB = if ((ev > 0))
998- then bf(toBigInt(eA), toBigInt(ev), toBigInt(bi))
999- else $Tuple2(true, toBigInt(eA))
1000- let eO = if ((ew == bO))
1001- then $Tuple2(toInt(eB._2), 0)
1002- else $Tuple2(0, toInt(eB._2))
1003- let eD = eO._1
1004- let eE = eO._2
1005- let eP = (eD + eE)
1006- let eF = bc(B(bW, eh), B(bU, eg))
1007- let eG = E(eF, a)
1008- let cg = [ScriptTransfer(bM, eP, if ((ew == "WAVES"))
1009- then unit
1010- else fromBase58String(ew)), StringEntry(W(toString(bM), bJ), aW(eD, eE, cp, eG, height, lastBlock.timestamp)), IntegerEntry(P(), eG), IntegerEntry(Q(height, lastBlock.timestamp), eG)]
1011- if ((cg == cg))
1012- then {
1013- let eH = invoke(ay, "burn", [cp], [AttachedPayment(bK, cp)])
1014- if ((eH == eH))
1015- then $Tuple2(cg, eP)
1016- else throw("Strict value is not equal to itself.")
1017- }
1018- else throw("Strict value is not equal to itself.")
1019- }
1018+ else throw("Strict value is not equal to itself.")
1019+ }
10201020 }
10211021 }
10221022
10231023
10241024
1025-@Callable(dj)
1026-func getNoLess (eQ,eR) = {
1027- let cB = di(dj)
1028- let ce = cB._1
1029- let cf = cB._2
1030- let cp = cB._3
1031- let bK = cB._4
1032- let cg = cB._5
1033- if ((eQ > ce))
1034- then throw(((("Failed: " + toString(ce)) + " < ") + toString(eQ)))
1035- else if ((eR > cf))
1036- then throw(((("Failed: " + toString(cf)) + " < ") + toString(eR)))
1025+@Callable(dk)
1026+func getNoLess (eS,eT) = {
1027+ let cC = dj(dk)
1028+ let ce = cC._1
1029+ let cf = cC._2
1030+ let cq = cC._3
1031+ let bK = cC._4
1032+ let cg = cC._5
1033+ if ((eS > ce))
1034+ then throw(((("Failed: " + toString(ce)) + " < ") + toString(eS)))
1035+ else if ((eT > cf))
1036+ then throw(((("Failed: " + toString(cf)) + " < ") + toString(eT)))
10371037 else {
1038- let eS = invoke(ay, "burn", [cp], [AttachedPayment(bK, cp)])
1039- if ((eS == eS))
1038+ let eU = invoke(ay, "burn", [cq], [AttachedPayment(bK, cq)])
1039+ if ((eU == eU))
10401040 then cg
10411041 else throw("Strict value is not equal to itself.")
10421042 }
10441044
10451045
10461046
1047-@Callable(dj)
1048-func unstakeAndGet (eT) = {
1049- let eU = if ((size(dj.payments) != 0))
1047+@Callable(dk)
1048+func unstakeAndGet (eV) = {
1049+ let eW = if ((size(dk.payments) != 0))
10501050 then throw("No pmnts expd")
10511051 else true
1052- if ((eU == eU))
1052+ if ((eW == eW))
10531053 then {
10541054 let bz = aC()
1055- let eV = aG()
1056- let dF = fromBase58String(bz[q])
1057- let eW = valueOrErrorMessage(addressFromString(eV[x]), "Wr st addr")
1058- let eX = invoke(eW, "unstake", [toBase58String(dF), eT], nil)
1059- if ((eX == eX))
1055+ let eX = aG()
1056+ let dG = fromBase58String(bz[q])
1057+ let eY = valueOrErrorMessage(addressFromString(eX[x]), "Wr st addr")
1058+ let eZ = invoke(eY, "unstake", [toBase58String(dG), eV], nil)
1059+ if ((eZ == eZ))
10601060 then {
1061- let cB = bI(toBase58String(dj.transactionId), toBase58String(dF), eT, dj.caller)
1062- let bS = parseIntValue(cB._9)
1063- let cg = cB._10
1064- let eY = if (if (aA())
1061+ let cC = bI(toBase58String(dk.transactionId), toBase58String(dG), eV, dk.caller)
1062+ let bS = parseIntValue(cC._9)
1063+ let cg = cC._10
1064+ let fa = if (if (aA())
10651065 then true
10661066 else (bS == n))
10671067 then throw(("Blocked: " + toString(bS)))
10681068 else true
1069- if ((eY == eY))
1069+ if ((fa == fa))
10701070 then {
1071- let eZ = invoke(ay, "burn", [eT], [AttachedPayment(dF, eT)])
1072- if ((eZ == eZ))
1071+ let fb = invoke(ay, "burn", [eV], [AttachedPayment(dG, eV)])
1072+ if ((fb == fb))
10731073 then cg
10741074 else throw("Strict value is not equal to itself.")
10751075 }
10821082
10831083
10841084
1085-@Callable(dj)
1086-func unstakeAndGetOneTkn (eT,ev,ew,bi) = {
1087- let eU = if ((size(dj.payments) != 0))
1085+@Callable(dk)
1086+func unstakeAndGetOneTkn (eV,ex,ey,bi) = {
1087+ let eW = if ((size(dk.payments) != 0))
10881088 then throw("No pmnts expd")
10891089 else true
1090- if ((eU == eU))
1090+ if ((eW == eW))
10911091 then {
10921092 let bz = aC()
1093- let eV = aG()
1094- let dF = fromBase58String(bz[q])
1095- let eW = valueOrErrorMessage(addressFromString(eV[x]), "Wr st addr")
1096- let eX = invoke(eW, "unstake", [toBase58String(dF), eT], nil)
1097- if ((eX == eX))
1093+ let eX = aG()
1094+ let dG = fromBase58String(bz[q])
1095+ let eY = valueOrErrorMessage(addressFromString(eX[x]), "Wr st addr")
1096+ let eZ = invoke(eY, "unstake", [toBase58String(dG), eV], nil)
1097+ if ((eZ == eZ))
10981098 then {
1099- let fa = {
1100- let eo = invoke(this, "getOneTknV2", [ev, ew, bi], [AttachedPayment(dF, eT)])
1101- if ($isInstanceOf(eo, "Int"))
1102- then eo
1099+ let fc = {
1100+ let eq = invoke(this, "getOneTknV2", [ex, ey, bi], [AttachedPayment(dG, eV)])
1101+ if ($isInstanceOf(eq, "Int"))
1102+ then eq
11031103 else unit
11041104 }
1105- if ((fa == fa))
1106- then $Tuple2(nil, fa)
1105+ if ((fc == fc))
1106+ then $Tuple2(nil, fc)
11071107 else throw("Strict value is not equal to itself.")
11081108 }
11091109 else throw("Strict value is not equal to itself.")
11131113
11141114
11151115
1116-@Callable(dj)
1117-func activate (fb,fc) = if ((toString(dj.caller) != toString(ay)))
1116+@Callable(dk)
1117+func activate (fd,fe) = if ((toString(dk.caller) != toString(ay)))
11181118 then throw("denied")
1119- else $Tuple2([StringEntry(X(), fb), StringEntry(Y(), fc)], "success")
1119+ else $Tuple2([StringEntry(X(), fd), StringEntry(Y(), fe)], "success")
11201120
11211121
11221122
1123-@Callable(dj)
1124-func setS (fd,eY) = if ((toString(dj.caller) != au(this, aa())))
1125- then dr
1126- else [StringEntry(fd, eY)]
1123+@Callable(dk)
1124+func setS (ff,fa) = if ((toString(dk.caller) != au(this, aa())))
1125+ then ds
1126+ else [StringEntry(ff, fa)]
11271127
11281128
11291129
1130-@Callable(dj)
1131-func setI (fd,eY) = if ((toString(dj.caller) != au(this, aa())))
1132- then dr
1133- else [IntegerEntry(fd, eY)]
1130+@Callable(dk)
1131+func setI (ff,fa) = if ((toString(dk.caller) != au(this, aa())))
1132+ then ds
1133+ else [IntegerEntry(ff, fa)]
11341134
11351135
11361136
1137-@Callable(dj)
1137+@Callable(dk)
11381138 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aC())
11391139
11401140
11411141
1142-@Callable(dj)
1142+@Callable(dk)
11431143 func getAccBalanceWrapperREADONLY (bb) = $Tuple2(nil, ba(bb))
11441144
11451145
11461146
1147-@Callable(dj)
1147+@Callable(dk)
11481148 func calcPricesWrapperREADONLY (bt,bu,by) = {
1149- let fe = bx(bt, bu, by)
1150- $Tuple2(nil, [toString(fe[0]), toString(fe[1]), toString(fe[2])])
1149+ let fg = bx(bt, bu, by)
1150+ $Tuple2(nil, [toString(fg[0]), toString(fg[1]), toString(fg[2])])
11511151 }
11521152
11531153
11541154
1155-@Callable(dj)
1156-func fromX18WrapperREADONLY (F,ff) = $Tuple2(nil, E(parseBigIntValue(F), ff))
1155+@Callable(dk)
1156+func fromX18WrapperREADONLY (F,fh) = $Tuple2(nil, E(parseBigIntValue(F), fh))
11571157
11581158
11591159
1160-@Callable(dj)
1160+@Callable(dk)
11611161 func toX18WrapperREADONLY (C,D) = $Tuple2(nil, toString(B(C, D)))
11621162
11631163
11641164
1165-@Callable(dj)
1165+@Callable(dk)
11661166 func calcPriceBigIntWrapperREADONLY (bd,be) = $Tuple2(nil, toString(bc(parseBigIntValue(bd), parseBigIntValue(be))))
11671167
11681168
11691169
1170-@Callable(dj)
1171-func estimatePutOperationWrapperREADONLY (bJ,bi,ci,cj,ck,cl,fg,cm,cn) = $Tuple2(nil, ch(bJ, bi, ci, cj, ck, cl, fg, cm, cn, false, 0, ""))
1170+@Callable(dk)
1171+func estimatePutOperationWrapperREADONLY (bJ,bi,ci,cj,ck,cl,fi,cm,cn) = $Tuple2(nil, ch(bJ, bi, ci, cj, ck, cl, fi, cm, cn, true, false, 0, ""))
11721172
11731173
11741174
1175-@Callable(dj)
1176-func estimateGetOperationWrapperREADONLY (bJ,fh,bL,fg) = {
1177- let cB = bI(bJ, fh, bL, addressFromStringValue(fg))
1178- $Tuple2(nil, $Tuple10(cB._1, cB._2, cB._3, cB._4, cB._5, cB._6, cB._7, toString(cB._8), cB._9, cB._10))
1175+@Callable(dk)
1176+func estimateGetOperationWrapperREADONLY (bJ,fj,bL,fi) = {
1177+ let cC = bI(bJ, fj, bL, addressFromStringValue(fi))
1178+ $Tuple2(nil, $Tuple10(cC._1, cC._2, cC._3, cC._4, cC._5, cC._6, cC._7, toString(cC._8), cC._9, cC._10))
11791179 }
11801180
11811181
1182-@Verifier(fi)
1183-func fj () = {
1184- let fk = {
1185- let as = do()
1182+@Verifier(fk)
1183+func fl () = {
1184+ let fm = {
1185+ let as = dp()
11861186 if ($isInstanceOf(as, "ByteVector"))
11871187 then {
1188- let dt = as
1189- dt
1188+ let du = as
1189+ du
11901190 }
11911191 else if ($isInstanceOf(as, "Unit"))
1192- then fi.senderPublicKey
1192+ then fk.senderPublicKey
11931193 else throw("Match error")
11941194 }
1195- let as = fi
1195+ let as = fk
11961196 if ($isInstanceOf(as, "Order"))
11971197 then {
1198- let cW = as
1199- let fl = aB()
1200- let fm = cV(cW)
1201- let fn = sigVerify(cW.bodyBytes, cW.proofs[0], cW.senderPublicKey)
1202- let fo = sigVerify(cW.bodyBytes, cW.proofs[1], fl)
1203- if (if (if (fm)
1204- then fn
1198+ let cX = as
1199+ let fn = aB()
1200+ let fo = cW(cX)
1201+ let fp = sigVerify(cX.bodyBytes, cX.proofs[0], cX.senderPublicKey)
1202+ let fq = sigVerify(cX.bodyBytes, cX.proofs[1], fn)
1203+ if (if (if (fo)
1204+ then fp
12051205 else false)
1206- then fo
1206+ then fq
12071207 else false)
12081208 then true
1209- else an(fm, fn, fo)
1209+ else an(fo, fp, fq)
12101210 }
12111211 else if ($isInstanceOf(as, "SetScriptTransaction"))
12121212 then {
1213- let dp = as
1214- let fp = blake2b256(value(dp.script))
1215- let fq = fromBase64String(value(getString(ay, am())))
1216- let fr = scriptHash(this)
1217- if (if ((fq == fp))
1218- then (fr != fp)
1213+ let dq = as
1214+ let fr = blake2b256(value(dq.script))
1215+ let fs = fromBase64String(value(getString(ay, am())))
1216+ let ft = scriptHash(this)
1217+ if (if ((fs == fr))
1218+ then (ft != fr)
12191219 else false)
12201220 then true
1221- else sigVerify(fi.bodyBytes, fi.proofs[0], fk)
1221+ else sigVerify(fk.bodyBytes, fk.proofs[0], fm)
12221222 }
1223- else sigVerify(fi.bodyBytes, fi.proofs[0], fk)
1223+ else sigVerify(fk.bodyBytes, fk.proofs[0], fm)
12241224 }
12251225
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = toBigInt(100000000)
77
88 let c = toBigInt(1000000000000000000)
99
1010 let d = toBigInt(0)
1111
1212 let e = toBigInt(1)
1313
1414 let f = toBigInt((a - ((a * 1) / a)))
1515
1616 let g = "100"
1717
1818 let h = "1"
1919
2020 let i = "__"
2121
2222 let j = ""
2323
2424 let k = 1
2525
2626 let l = 2
2727
2828 let m = 3
2929
3030 let n = 4
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 5
4141
4242 let t = 6
4343
4444 let u = 7
4545
4646 let v = 8
4747
4848 let w = 9
4949
5050 let x = 1
5151
5252 let y = 7
5353
5454 let z = 10
5555
5656 let A = "%s__delay"
5757
5858 func B (C,D) = fraction(toBigInt(C), c, toBigInt(D))
5959
6060
6161 func E (F,G) = toInt(fraction(F, toBigInt(G), c))
6262
6363
6464 func H (I,J,K) = fraction(I, J, K)
6565
6666
6767 func L (F) = if ((d > F))
6868 then -(F)
6969 else F
7070
7171
7272 func M () = "%s__factoryContract"
7373
7474
7575 func N () = "%s__managerPublicKey"
7676
7777
7878 func O () = "%s__pendingManagerPublicKey"
7979
8080
8181 func P () = "%s%s__price__last"
8282
8383
8484 func Q (R,S) = makeString(["%s%s%d%d__price__history", toString(R), toString(S)], i)
8585
8686
8787 func T (U,V) = ((("%s%s%s__P__" + U) + "__") + V)
8888
8989
9090 func W (U,V) = ((("%s%s%s__G__" + U) + "__") + V)
9191
9292
9393 func X () = "%s__amountAsset"
9494
9595
9696 func Y () = "%s__priceAsset"
9797
9898
9999 func Z () = "%s__amp"
100100
101101
102102 func aa () = "%s__addonAddr"
103103
104104
105105 func ab (ac) = makeString(["%s%s__lastGetOneTknCall", ac], i)
106106
107107
108108 func ad (ac) = makeString(["%s%s__lastPutOneTknCall", ac], i)
109109
110110
111111 func ae () = "%s__factoryConfig"
112112
113113
114114 func af () = "%s%s__matcher__publicKey"
115115
116116
117117 func ag (ah,ai) = (((("%d%d%s__" + ah) + "__") + ai) + "__config")
118118
119119
120120 func aj (ak) = ("%s%s%s__mappings__baseAsset2internalId__" + ak)
121121
122122
123123 func al () = "%s__shutdown"
124124
125125
126126 func am () = "%s__allowedLpStableScriptHash"
127127
128128
129129 func an (ao,ap,aq) = throw(((((("Failed: ordValid=" + toString(ao)) + " sndrValid=") + toString(ap)) + " mtchrValid=") + toString(aq)))
130130
131131
132132 func ar (F) = {
133133 let as = F
134134 if ($isInstanceOf(as, "String"))
135135 then {
136136 let at = as
137137 at
138138 }
139139 else throw("fail cast to String")
140140 }
141141
142142
143143 func au (av,aw) = valueOrErrorMessage(getString(av, aw), makeString(["mandatory ", toString(av), ".", aw, " not defined"], ""))
144144
145145
146146 func ax (av,aw) = valueOrErrorMessage(getInteger(av, aw), makeString(["mandatory ", toString(av), ".", aw, " not defined"], ""))
147147
148148
149149 let ay = addressFromStringValue(au(this, M()))
150150
151151 let az = au(this, Z())
152152
153153 func aA () = valueOrElse(getBoolean(ay, al()), false)
154154
155155
156156 func aB () = fromBase58String(au(ay, af()))
157157
158158
159159 func aC () = {
160160 let aD = au(this, X())
161161 let aE = au(this, Y())
162162 let aF = ax(ay, aj(aE))
163163 let ah = ax(ay, aj(aD))
164164 split(au(ay, ag(toString(ah), toString(aF))), i)
165165 }
166166
167167
168168 func aG () = split(au(ay, ae()), i)
169169
170170
171171 let aH = aG()
172172
173173 let aI = valueOrErrorMessage(addressFromString(aH[x]), "Invalid staking contract address")
174174
175175 let aJ = valueOrErrorMessage(addressFromString(aH[y]), "Invalid slipage contract address")
176176
177177 let aK = valueOrErrorMessage(addressFromString(aH[z]), "Invalid gwx contract address")
178178
179179 func aL (aM,aN,aO,aP,aQ,aR,aS,aT,aU,aV) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aM), toString(aN), toString(aO), toString(aP), toString(aQ), toString(aR), toString(aS), toString(aT), toString(aU), toString(aV)], i)
180180
181181
182182 func aW (aX,aY,aZ,aP,aS,aT) = makeString(["%d%d%d%d%d%d", toString(aX), toString(aY), toString(aZ), toString(aP), toString(aS), toString(aT)], i)
183183
184184
185185 func ba (bb) = if ((bb == "WAVES"))
186186 then wavesBalance(this).available
187187 else assetBalance(this, fromBase58String(bb))
188188
189189
190190 func bc (bd,be) = fraction(bd, c, be)
191191
192192
193193 func bf (bg,bh,bi) = {
194194 let bj = fraction((bg - bh), b, bh)
195195 let bk = ((bi - L(bj)) > d)
196196 if (!(bk))
197197 then throw(("Big slpg: " + toString(bj)))
198198 else $Tuple2(bk, min([bg, bh]))
199199 }
200200
201201
202202 func bl (bm,bn,bo) = {
203203 let bj = fraction(bn, b, bm)
204204 let bp = (bo > bj)
205205 if (if (bp)
206206 then true
207207 else (bn > bm))
208208 then throw(((((((toString(bn) + " ") + toString(bm)) + " ") + toString(bj)) + " ") + toString(bo)))
209209 else bp
210210 }
211211
212212
213213 func bq (br,bs,bt,bu) = {
214214 let bv = B(bt, br)
215215 let bw = B(bu, bs)
216216 bc(bw, bv)
217217 }
218218
219219
220220 func bx (bt,bu,by) = {
221221 let bz = aC()
222222 let bA = parseIntValue(bz[t])
223223 let bB = parseIntValue(bz[u])
224224 let bC = bq(bA, bB, bt, bu)
225225 let be = B(bt, bA)
226226 let bd = B(bu, bB)
227227 let bD = B(by, a)
228228 let bE = bc(be, bD)
229229 let bF = bc(bd, bD)
230230 [bC, bE, bF]
231231 }
232232
233233
234234 func bG (bt,bu,by) = {
235235 let bH = bx(bt, bu, by)
236236 [E(bH[0], a), E(bH[1], a), E(bH[2], a)]
237237 }
238238
239239
240240 func bI (bJ,bK,bL,bM) = {
241241 let bz = aC()
242242 let bN = bz[q]
243243 let bO = bz[r]
244244 let bP = bz[s]
245245 let bQ = parseIntValue(bz[t])
246246 let bR = parseIntValue(bz[u])
247247 let bS = bz[p]
248248 let bT = valueOrErrorMessage(assetInfo(fromBase58String(bN)), "Wrong LP id").quantity
249249 if ((bN != bK))
250250 then throw("Wrong pmt asset")
251251 else {
252252 let bU = ba(bO)
253253 let bV = B(bU, bQ)
254254 let bW = ba(bP)
255255 let bX = B(bW, bR)
256256 let bY = bc(bX, bV)
257257 let bZ = E(bY, a)
258258 let ca = B(bL, a)
259259 let cb = B(bT, a)
260260 let cc = fraction(bV, ca, cb)
261261 let cd = fraction(bX, ca, cb)
262262 let ce = E(cc, bQ)
263263 let cf = E(cd, bR)
264264 let cg = if ((bJ == ""))
265265 then nil
266266 else [ScriptTransfer(bM, ce, if ((bO == "WAVES"))
267267 then unit
268268 else fromBase58String(bO)), ScriptTransfer(bM, cf, if ((bP == "WAVES"))
269269 then unit
270270 else fromBase58String(bP)), StringEntry(W(toString(bM), bJ), aW(ce, cf, bL, bZ, height, lastBlock.timestamp)), IntegerEntry(P(), bZ), IntegerEntry(Q(height, lastBlock.timestamp), bZ)]
271271 $Tuple10(ce, cf, bO, bP, bU, bW, bT, bY, bS, cg)
272272 }
273273 }
274274
275275
276-func ch (bJ,bi,ci,cj,ck,cl,bM,cm,cn,co,cp,cq) = {
276+func ch (bJ,bi,ci,cj,ck,cl,bM,cm,cn,co,cp,cq,cr) = {
277277 let bz = aC()
278278 let bN = fromBase58String(bz[q])
279- let cr = bz[r]
280- let cs = bz[s]
281- let ct = bz[v]
282- let cu = bz[w]
283- let cv = parseIntValue(bz[t])
284- let cw = parseIntValue(bz[u])
279+ let cs = bz[r]
280+ let ct = bz[s]
281+ let cu = bz[v]
282+ let cv = bz[w]
283+ let cw = parseIntValue(bz[t])
284+ let cx = parseIntValue(bz[u])
285285 let bS = bz[p]
286- let cx = valueOrErrorMessage(assetInfo(bN), "Wr lp as").quantity
286+ let cy = valueOrErrorMessage(assetInfo(bN), "Wr lp as").quantity
287287 let bU = if (cm)
288- then ba(cr)
289- else if (if (co)
290- then (cq == cr)
291- else false)
292- then (ba(cr) - cp)
293- else if (co)
294- then ba(cr)
295- else (ba(cr) - ci)
296- let bW = if (cm)
297288 then ba(cs)
298289 else if (if (co)
299- then (cq == cs)
290+ then (cr == cs)
300291 else false)
301- then (ba(cs) - cp)
292+ then (ba(cs) - cq)
302293 else if (co)
303294 then ba(cs)
304- else (ba(cs) - ck)
305- let cy = B(ci, cv)
306- let cz = B(ck, cw)
307- let cA = bc(cz, cy)
308- let bV = B(bU, cv)
309- let bX = B(bW, cw)
310- let cB = if ((cx == 0))
295+ else (ba(cs) - ci)
296+ let bW = if (cm)
297+ then ba(ct)
298+ else if (if (co)
299+ then (cr == ct)
300+ else false)
301+ then (ba(ct) - cq)
302+ else if (co)
303+ then ba(ct)
304+ else (ba(ct) - ck)
305+ let cz = B(ci, cw)
306+ let cA = B(ck, cx)
307+ let cB = bc(cA, cz)
308+ let bV = B(bU, cw)
309+ let bX = B(bW, cx)
310+ let cC = if ((cy == 0))
311311 then {
312312 let bY = d
313- let cC = d
314- let bD = pow((cy * cz), 0, toBigInt(5), 1, 0, DOWN)
315- $Tuple5(E(bD, a), E(cy, cv), E(cz, cw), bc((bX + cz), (bV + cy)), cC)
313+ let cD = d
314+ let bD = pow((cz * cA), 0, toBigInt(5), 1, 0, DOWN)
315+ $Tuple5(E(bD, a), E(cz, cw), E(cA, cx), bc((bX + cA), (bV + cz)), cD)
316316 }
317317 else {
318318 let bY = bc(bX, bV)
319- let cD = fraction(L((bY - cA)), c, bY)
320- let cC = B(bi, a)
321- if (if ((bY != d))
322- then (cD > cC)
319+ let cE = fraction(L((bY - cB)), c, bY)
320+ let cD = B(bi, a)
321+ if (if (if (cp)
322+ then (bY != d)
323323 else false)
324- then throw(((("Price slippage " + toString(cD)) + " > ") + toString(cC)))
324+ then (cE > cD)
325+ else false)
326+ then throw(((("Price slippage " + toString(cE)) + " > ") + toString(cD)))
325327 else {
326- let cE = B(cx, a)
327- let cF = fraction(cy, bY, c)
328- let cG = fraction(cz, c, bY)
329- let cH = if ((cF > cz))
330- then $Tuple2(cG, cz)
331- else $Tuple2(cy, cF)
332- let cI = cH._1
333- let cJ = cH._2
334- let bD = fraction(cE, cJ, bX)
335- $Tuple5(E(bD, a), E(cI, cv), E(cJ, cw), bY, cC)
328+ let cF = B(cy, a)
329+ let cG = fraction(cz, bY, c)
330+ let cH = fraction(cA, c, bY)
331+ let cI = if ((cG > cA))
332+ then $Tuple2(cH, cA)
333+ else $Tuple2(cz, cG)
334+ let cJ = cI._1
335+ let cK = cI._2
336+ let bD = fraction(cF, cK, bX)
337+ $Tuple5(E(bD, a), E(cJ, cw), E(cK, cx), bY, cD)
336338 }
337339 }
338- let cK = cB._1
339- let cL = cB._2
340- let cM = cB._3
341- let bZ = E(cB._4, a)
342- let cN = E(cB._5, a)
343- if ((0 >= cK))
340+ let cL = cC._1
341+ let cM = cC._2
342+ let cN = cC._3
343+ let bZ = E(cC._4, a)
344+ let cO = E(cC._5, a)
345+ if ((0 >= cL))
344346 then throw("LP <= 0")
345347 else {
346- let cO = if (!(cn))
348+ let cP = if (!(cn))
347349 then 0
348- else cK
349- let cP = (ci - cL)
350- let cQ = (ck - cM)
351- let cR = if (if (co)
352- then (cq == cr)
350+ else cL
351+ let cQ = (ci - cM)
352+ let cR = (ck - cN)
353+ let cS = if (if (co)
354+ then (cr == cs)
353355 else false)
354- then $Tuple2(cp, 0)
356+ then $Tuple2(cq, 0)
355357 else if (if (co)
356- then (cq == cs)
358+ then (cr == ct)
357359 else false)
358- then $Tuple2(0, cp)
359- else $Tuple2(cL, cM)
360- let cS = cR._1
361- let cT = cR._2
362- let cU = [IntegerEntry(P(), bZ), IntegerEntry(Q(height, lastBlock.timestamp), bZ), StringEntry(T(bM, bJ), aL(cS, cT, cO, bZ, bi, cN, height, lastBlock.timestamp, cP, cQ))]
363- $Tuple13(cK, cO, bZ, bU, bW, cx, bN, bS, cU, cP, cQ, cj, cl)
360+ then $Tuple2(0, cq)
361+ else $Tuple2(cM, cN)
362+ let cT = cS._1
363+ let cU = cS._2
364+ let cV = [IntegerEntry(P(), bZ), IntegerEntry(Q(height, lastBlock.timestamp), bZ), StringEntry(T(bM, bJ), aL(cT, cU, cP, bZ, bi, cO, height, lastBlock.timestamp, cQ, cR))]
365+ $Tuple13(cL, cP, bZ, bU, bW, cy, bN, bS, cV, cQ, cR, cj, cl)
364366 }
365367 }
366368
367369
368-func cV (cW) = {
370+func cW (cX) = {
369371 let bz = aC()
370- let cX = bz[r]
371- let cY = bz[s]
372+ let cY = bz[r]
373+ let cZ = bz[s]
372374 let bS = parseIntValue(bz[p])
373375 let bA = parseIntValue(bz[t])
374376 let bB = parseIntValue(bz[u])
375- let cZ = ba(cX)
376377 let da = ba(cY)
377- let bY = if ((cW.orderType == Buy))
378- then bq(bA, bB, (cZ + cW.amount), da)
379- else bq(bA, bB, (cZ - cW.amount), da)
378+ let db = ba(cZ)
379+ let bY = if ((cX.orderType == Buy))
380+ then bq(bA, bB, (da + cX.amount), db)
381+ else bq(bA, bB, (da - cX.amount), db)
380382 let bZ = E(bY, a)
381383 if (if (if (aA())
382384 then true
383385 else (bS == m))
384386 then true
385387 else (bS == n))
386388 then throw("Admin blocked")
387389 else {
388- let db = cW.assetPair.amountAsset
389- let dc = if ((db == unit))
390+ let dc = cX.assetPair.amountAsset
391+ let dd = if ((dc == unit))
390392 then "WAVES"
391- else toBase58String(value(db))
392- let dd = cW.assetPair.priceAsset
393- let de = if ((dd == unit))
393+ else toBase58String(value(dc))
394+ let de = cX.assetPair.priceAsset
395+ let df = if ((de == unit))
394396 then "WAVES"
395- else toBase58String(value(dd))
396- if (if ((dc != cX))
397+ else toBase58String(value(de))
398+ if (if ((dd != cY))
397399 then true
398- else (de != cY))
400+ else (df != cZ))
399401 then throw("Wr assets")
400402 else {
401- let df = cW.price
402- let cw = fraction(a, bB, bA)
403- let dg = H(df, a, cw)
404- let dh = if ((cW.orderType == Buy))
405- then (bZ >= dg)
406- else (dg >= bZ)
403+ let dg = cX.price
404+ let cx = fraction(a, bB, bA)
405+ let dh = H(dg, a, cx)
406+ let di = if ((cX.orderType == Buy))
407+ then (bZ >= dh)
408+ else (dh >= bZ)
407409 true
408410 }
409411 }
410412 }
411413
412414
413-func di (dj) = if ((size(dj.payments) != 1))
415+func dj (dk) = if ((size(dk.payments) != 1))
414416 then throw("1 pmnt exp")
415417 else {
416- let dk = value(dj.payments[0])
417- let bK = value(dk.assetId)
418- let cp = dk.amount
419- let cB = bI(toBase58String(dj.transactionId), toBase58String(bK), cp, dj.caller)
420- let ce = cB._1
421- let cf = cB._2
422- let bS = parseIntValue(cB._9)
423- let cg = cB._10
418+ let dl = value(dk.payments[0])
419+ let bK = value(dl.assetId)
420+ let cq = dl.amount
421+ let cC = bI(toBase58String(dk.transactionId), toBase58String(bK), cq, dk.caller)
422+ let ce = cC._1
423+ let cf = cC._2
424+ let bS = parseIntValue(cC._9)
425+ let cg = cC._10
424426 if (if (aA())
425427 then true
426428 else (bS == n))
427429 then throw(("Admin blocked: " + toString(bS)))
428- else $Tuple5(ce, cf, cp, bK, cg)
430+ else $Tuple5(ce, cf, cq, bK, cg)
429431 }
430432
431433
432-func dl (ac,V,dm,dn,bi,cn,co,cp,cq) = {
433- let cB = ch(V, bi, value(dm).amount, value(dm).assetId, value(dn).amount, value(dn).assetId, ac, false, cn, co, cp, cq)
434- let bS = parseIntValue(cB._8)
434+func dm (ac,V,dn,do,bi,cn,co,cp,cq,cr) = {
435+ let cC = ch(V, bi, value(dn).amount, value(dn).assetId, value(do).amount, value(do).assetId, ac, false, cn, co, cp, cq, cr)
436+ let bS = parseIntValue(cC._8)
435437 if (if (if (aA())
436438 then true
437439 else (bS == l))
438440 then true
439441 else (bS == n))
440442 then throw(("Blocked:" + toString(bS)))
441- else cB
443+ else cC
442444 }
443445
444446
445-func do () = {
447+func dp () = {
446448 let as = getString(N())
447449 if ($isInstanceOf(as, "String"))
448450 then {
449- let dp = as
450- fromBase58String(dp)
451+ let dq = as
452+ fromBase58String(dq)
451453 }
452454 else if ($isInstanceOf(as, "Unit"))
453455 then unit
454456 else throw("Match error")
455457 }
456458
457459
458-func dq () = {
460+func dr () = {
459461 let as = getString(O())
460462 if ($isInstanceOf(as, "String"))
461463 then {
462- let dp = as
463- fromBase58String(dp)
464+ let dq = as
465+ fromBase58String(dq)
464466 }
465467 else if ($isInstanceOf(as, "Unit"))
466468 then unit
467469 else throw("Match error")
468470 }
469471
470472
471-let dr = throw("Permission denied")
473+let ds = throw("Permission denied")
472474
473-func ds (dj) = {
474- let as = do()
475+func dt (dk) = {
476+ let as = dp()
475477 if ($isInstanceOf(as, "ByteVector"))
476478 then {
477- let dt = as
478- if ((dj.callerPublicKey == dt))
479+ let du = as
480+ if ((dk.callerPublicKey == du))
479481 then true
480- else dr
482+ else ds
481483 }
482484 else if ($isInstanceOf(as, "Unit"))
483- then if ((dj.caller == this))
485+ then if ((dk.caller == this))
484486 then true
485- else dr
487+ else ds
486488 else throw("Match error")
487489 }
488490
489491
490-@Callable(dj)
492+@Callable(dk)
491493 func constructor (M) = {
492- let du = ds(dj)
493- if ((du == du))
494+ let dv = dt(dk)
495+ if ((dv == dv))
494496 then [StringEntry(M(), M)]
495497 else throw("Strict value is not equal to itself.")
496498 }
497499
498500
499501
500-@Callable(dj)
501-func setManager (dv) = {
502- let du = ds(dj)
503- if ((du == du))
502+@Callable(dk)
503+func setManager (dw) = {
504+ let dv = dt(dk)
505+ if ((dv == dv))
504506 then {
505- let dw = fromBase58String(dv)
506- if ((dw == dw))
507- then [StringEntry(O(), dv)]
507+ let dx = fromBase58String(dw)
508+ if ((dx == dx))
509+ then [StringEntry(O(), dw)]
508510 else throw("Strict value is not equal to itself.")
509511 }
510512 else throw("Strict value is not equal to itself.")
511513 }
512514
513515
514516
515-@Callable(dj)
517+@Callable(dk)
516518 func confirmManager () = {
517- let bH = dq()
518- let dx = if (isDefined(bH))
519+ let bH = dr()
520+ let dy = if (isDefined(bH))
519521 then true
520522 else throw("No pending manager")
521- if ((dx == dx))
523+ if ((dy == dy))
522524 then {
523- let dy = if ((dj.callerPublicKey == value(bH)))
525+ let dz = if ((dk.callerPublicKey == value(bH)))
524526 then true
525527 else throw("You are not pending manager")
526- if ((dy == dy))
528+ if ((dz == dz))
527529 then [StringEntry(N(), toBase58String(value(bH))), DeleteEntry(O())]
528530 else throw("Strict value is not equal to itself.")
529531 }
530532 else throw("Strict value is not equal to itself.")
531533 }
532534
533535
534536
535-@Callable(dj)
536-func put (dz,dA) = {
537- let dB = aG()
538- let dC = valueOrErrorMessage(addressFromString(dB[x]), "Wr st addr")
539- let dD = valueOrErrorMessage(addressFromString(dB[y]), "Wr sl addr")
540- if ((0 > dz))
537+@Callable(dk)
538+func put (dA,dB) = {
539+ let dC = aG()
540+ let dD = valueOrErrorMessage(addressFromString(dC[x]), "Wr st addr")
541+ let dE = valueOrErrorMessage(addressFromString(dC[y]), "Wr sl addr")
542+ if ((0 > dA))
541543 then throw("Wrong slippage")
542- else if ((size(dj.payments) != 2))
544+ else if ((size(dk.payments) != 2))
543545 then throw("2 pmnts expd")
544546 else {
545- let dE = dl(toString(dj.caller), toBase58String(dj.transactionId), AttachedPayment(value(dj.payments[0]).assetId, value(dj.payments[0]).amount), dj.payments[1], dz, true, false, 0, "")
546- let cO = dE._2
547- let dF = dE._7
548- let cg = dE._9
549- let cP = dE._10
550- let cQ = dE._11
551- let bO = dE._12
552- let bP = dE._13
553- let cB = invoke(ay, "emit", [cO], nil)
554- if ((cB == cB))
547+ let dF = dm(toString(dk.caller), toBase58String(dk.transactionId), AttachedPayment(value(dk.payments[0]).assetId, value(dk.payments[0]).amount), dk.payments[1], dA, true, false, true, 0, "")
548+ let cP = dF._2
549+ let dG = dF._7
550+ let cg = dF._9
551+ let cQ = dF._10
552+ let cR = dF._11
553+ let bO = dF._12
554+ let bP = dF._13
555+ let cC = invoke(ay, "emit", [cP], nil)
556+ if ((cC == cC))
555557 then {
556- let dG = {
557- let as = cB
558+ let dH = {
559+ let as = cC
558560 if ($isInstanceOf(as, "Address"))
559561 then {
560- let dH = as
561- invoke(dH, "emit", [cO], nil)
562+ let dI = as
563+ invoke(dI, "emit", [cP], nil)
562564 }
563565 else unit
564566 }
565- if ((dG == dG))
567+ if ((dH == dH))
566568 then {
567- let dI = if ((cP > 0))
568- then invoke(dD, "put", nil, [AttachedPayment(bO, cP)])
569+ let dJ = if ((cQ > 0))
570+ then invoke(dE, "put", nil, [AttachedPayment(bO, cQ)])
569571 else nil
570- if ((dI == dI))
572+ if ((dJ == dJ))
571573 then {
572- let dJ = if ((cQ > 0))
573- then invoke(dD, "put", nil, [AttachedPayment(bP, cQ)])
574+ let dK = if ((cR > 0))
575+ then invoke(dE, "put", nil, [AttachedPayment(bP, cR)])
574576 else nil
575- if ((dJ == dJ))
577+ if ((dK == dK))
576578 then {
577- let dK = if (dA)
579+ let dL = if (dB)
578580 then {
579- let dL = invoke(dC, "stake", nil, [AttachedPayment(dF, cO)])
580- if ((dL == dL))
581+ let dM = invoke(dD, "stake", nil, [AttachedPayment(dG, cP)])
582+ if ((dM == dM))
581583 then nil
582584 else throw("Strict value is not equal to itself.")
583585 }
584- else [ScriptTransfer(dj.caller, cO, dF)]
585- (cg ++ dK)
586+ else [ScriptTransfer(dk.caller, cP, dG)]
587+ (cg ++ dL)
586588 }
587589 else throw("Strict value is not equal to itself.")
588590 }
589591 else throw("Strict value is not equal to itself.")
590592 }
591593 else throw("Strict value is not equal to itself.")
592594 }
593595 else throw("Strict value is not equal to itself.")
594596 }
595597 }
596598
597599
598600
599-@Callable(dj)
600-func putOneTkn (dM,dN,dO,bi,dA) = {
601+@Callable(dk)
602+func putOneTkn (dN,dO,dP,bi,dB) = {
601603 let bz = aG()
602- let dC = valueOrErrorMessage(addressFromString(bz[x]), "Wr st addr")
603- let dD = valueOrErrorMessage(addressFromString(bz[y]), "Wr sl addr")
604- let dP = valueOrErrorMessage(addressFromString(bz[z]), "Wr gwx addr")
605- let dQ = aC()
606- let bO = dQ[r]
607- let bP = dQ[s]
608- let bQ = parseIntValue(dQ[t])
609- let bR = parseIntValue(dQ[u])
610- let dR = valueOrElse(getString(this, aa()), "")
611- let bM = if ((dR == toString(dj.caller)))
612- then dj.originCaller
613- else dj.caller
614- let dS = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
615- let dT = reentrantInvoke(dS, "ensureCanPutOneTkn", [toString(bM)], nil)
616- if ((dT == dT))
604+ let dD = valueOrErrorMessage(addressFromString(bz[x]), "Wr st addr")
605+ let dE = valueOrErrorMessage(addressFromString(bz[y]), "Wr sl addr")
606+ let dQ = valueOrErrorMessage(addressFromString(bz[z]), "Wr gwx addr")
607+ let dR = aC()
608+ let bO = dR[r]
609+ let bP = dR[s]
610+ let bQ = parseIntValue(dR[t])
611+ let bR = parseIntValue(dR[u])
612+ let dS = valueOrElse(getString(this, aa()), "")
613+ let bM = if ((dS == toString(dk.caller)))
614+ then dk.originCaller
615+ else dk.caller
616+ let dT = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
617+ let dU = reentrantInvoke(dT, "ensureCanPutOneTkn", [toString(bM)], nil)
618+ if ((dU == dU))
617619 then if (if (if (if ((0 >= bi))
618- then true
619- else (0 >= dM))
620620 then true
621621 else (0 >= dN))
622622 then true
623623 else (0 >= dO))
624+ then true
625+ else (0 >= dP))
624626 then throw("Wrong params")
625- else if ((size(dj.payments) != 1))
627+ else if ((size(dk.payments) != 1))
626628 then throw("1 pmnt expd")
627629 else {
628- let dk = value(dj.payments[0])
629- let bK = toBase58String(value(dk.assetId))
630- let cp = dk.amount
631- if ((10000000 > cp))
630+ let dl = value(dk.payments[0])
631+ let bK = toBase58String(value(dl.assetId))
632+ let cq = dl.amount
633+ if ((10000000 > cq))
632634 then throw("Wrong pmt amt")
633635 else {
634636 let bU = ba(bO)
635637 let bW = ba(bP)
636- let dU = if ((bK == bO))
637- then if (if ((cp > bU))
638+ let dV = if ((bK == bO))
639+ then if (if ((cq > bU))
638640 then true
639- else (dM > cp))
641+ else (dN > cq))
640642 then throw("invalid payment amount")
641- else $Tuple6((bU - cp), bW, (cp - dM), dN, 0, 0)
643+ else $Tuple6((bU - cq), bW, (cq - dN), dO, 0, 0)
642644 else if ((bK == bP))
643- then if (if ((cp > bW))
645+ then if (if ((cq > bW))
644646 then true
645- else (dN > cp))
647+ else (dO > cq))
646648 then throw("invalid payment amount")
647- else $Tuple6(bU, (bW - cp), 0, 0, (cp - dN), dM)
649+ else $Tuple6(bU, (bW - cq), 0, 0, (cq - dO), dN)
648650 else throw("wrong pmtAssetId")
649- let dV = dU._1
650- let dW = dU._2
651- let dX = dU._3
652- let dY = dU._4
653- let dZ = dU._5
654- let ea = dU._6
655- let bn = invoke(dP, "calcD", [toString(dV), toString(dW), az, g, h], nil)
656- let bm = invoke(dP, "calcD", [toString(toBigInt(((dV + dX) - ea))), toString(toBigInt(((dW + dZ) - dY))), az, g, h], nil)
657- let eb = bl(parseBigIntValue(ar(bm)), parseBigIntValue(ar(bn)), f)
658- if ((eb == eb))
651+ let dW = dV._1
652+ let dX = dV._2
653+ let dY = dV._3
654+ let dZ = dV._4
655+ let ea = dV._5
656+ let eb = dV._6
657+ let bn = invoke(dQ, "calcD", [toString(dW), toString(dX), az, g, h], nil)
658+ let bm = invoke(dQ, "calcD", [toString(toBigInt(((dW + dY) - eb))), toString(toBigInt(((dX + ea) - dZ))), az, g, h], nil)
659+ let ec = bl(parseBigIntValue(ar(bm)), parseBigIntValue(ar(bn)), f)
660+ if ((ec == ec))
659661 then {
660- let ec = dl(toString(dj.caller), toBase58String(dj.transactionId), AttachedPayment(fromBase58String(bO), dM), AttachedPayment(fromBase58String(bP), dN), bi, true, true, cp, bK)
661- let ed = ec._2
662- let dF = ec._7
663- let cg = ec._9
664- let cP = ec._10
665- let cQ = ec._11
666- let ee = bf(toBigInt(ed), toBigInt(dO), toBigInt(bi))
667- let cO = toInt(ee._2)
668- let dE = invoke(ay, "emit", [cO], nil)
669- if ((dE == dE))
662+ let ed = dm(toString(dk.caller), toBase58String(dk.transactionId), AttachedPayment(fromBase58String(bO), dN), AttachedPayment(fromBase58String(bP), dO), bi, true, true, true, cq, bK)
663+ let ee = ed._2
664+ let dG = ed._7
665+ let cg = ed._9
666+ let cQ = ed._10
667+ let cR = ed._11
668+ let ef = bf(toBigInt(ee), toBigInt(dP), toBigInt(bi))
669+ let cP = toInt(ef._2)
670+ let dF = invoke(ay, "emit", [cP], nil)
671+ if ((dF == dF))
670672 then {
671- let dG = {
672- let as = dE
673+ let dH = {
674+ let as = dF
673675 if ($isInstanceOf(as, "Address"))
674676 then {
675- let dH = as
676- invoke(dH, "emit", [cO], nil)
677+ let dI = as
678+ invoke(dI, "emit", [cP], nil)
677679 }
678680 else unit
679681 }
680- if ((dG == dG))
682+ if ((dH == dH))
681683 then {
682- let dI = if ((cP > 0))
683- then invoke(dD, "put", nil, [AttachedPayment(fromBase58String(bO), cP)])
684+ let dJ = if ((cQ > 0))
685+ then invoke(dE, "put", nil, [AttachedPayment(fromBase58String(bO), cQ)])
684686 else nil
685- if ((dI == dI))
687+ if ((dJ == dJ))
686688 then {
687- let dJ = if ((cQ > 0))
688- then invoke(dD, "put", nil, [AttachedPayment(fromBase58String(bP), cQ)])
689+ let dK = if ((cR > 0))
690+ then invoke(dE, "put", nil, [AttachedPayment(fromBase58String(bP), cR)])
689691 else nil
690- if ((dJ == dJ))
692+ if ((dK == dK))
691693 then {
692- let dK = if (dA)
694+ let dL = if (dB)
693695 then {
694- let dL = invoke(dC, "stake", nil, [AttachedPayment(dF, cO)])
695- if ((dL == dL))
696+ let dM = invoke(dD, "stake", nil, [AttachedPayment(dG, cP)])
697+ if ((dM == dM))
696698 then nil
697699 else throw("Strict value is not equal to itself.")
698700 }
699- else [ScriptTransfer(dj.caller, cO, dF)]
700- (cg ++ dK)
701+ else [ScriptTransfer(dk.caller, cP, dG)]
702+ (cg ++ dL)
701703 }
702704 else throw("Strict value is not equal to itself.")
703705 }
704706 else throw("Strict value is not equal to itself.")
705707 }
706708 else throw("Strict value is not equal to itself.")
707709 }
708710 else throw("Strict value is not equal to itself.")
709711 }
710712 else throw("Strict value is not equal to itself.")
711713 }
712714 }
713715 else throw("Strict value is not equal to itself.")
714716 }
715717
716718
717719
718-@Callable(dj)
719-func putOneTknV2 (dO,bi,dA) = if ((size(dj.payments) != 1))
720+@Callable(dk)
721+func putOneTknV2 (eg,dB) = if ((size(dk.payments) != 1))
720722 then throw("1 pmnt expd")
721723 else {
722- let ef = aC()
723- let bO = ef[r]
724- let bP = ef[s]
725- let eg = parseIntValue(ef[t])
726- let eh = parseIntValue(ef[u])
727- let bM = if ((dj.caller == this))
728- then dj.originCaller
729- else dj.caller
730- let dk = value(dj.payments[0])
731- let bK = toBase58String(value(dk.assetId))
732- let cp = dk.amount
733- if ((10000000 > cp))
724+ let eh = aC()
725+ let bO = eh[r]
726+ let bP = eh[s]
727+ let ei = parseIntValue(eh[t])
728+ let ej = parseIntValue(eh[u])
729+ let bM = if ((dk.caller == this))
730+ then dk.originCaller
731+ else dk.caller
732+ let dl = value(dk.payments[0])
733+ let bK = toBase58String(value(dl.assetId))
734+ let cq = dl.amount
735+ if ((10000000 > cq))
734736 then throw("Wrong pmt amt")
735737 else {
736738 let bU = ba(bO)
737739 let bW = ba(bP)
738- let ei = if ((bK == bO))
739- then if ((cp > bU))
740+ let ek = if ((bK == bO))
741+ then if ((cq > bU))
740742 then throw("invalid payment amount")
741- else $Tuple2((bU - cp), bW)
743+ else $Tuple2((bU - cq), bW)
742744 else if ((bK == bP))
743- then if ((cp > bW))
745+ then if ((cq > bW))
744746 then throw("invalid payment amount")
745- else $Tuple2(bU, (bW - cp))
747+ else $Tuple2(bU, (bW - cq))
746748 else throw("wrong pmtAssetId")
747- let dV = ei._1
748- let dW = ei._2
749- let ej = if ((bK == bO))
750- then $Tuple2(dV, dW)
751- else $Tuple2(dW, dV)
752- let ek = ej._1
753- let el = ej._2
754- let em = 1
755- let en = {
756- let eo = invoke(aK, "calcPutXOnly", [toString(cp), toString(ek), toString(el), "", az, g, toString(em), h], nil)
757- if ($isInstanceOf(eo, "(Int, Int)"))
758- then eo
759- else throw(($getType(invoke(aK, "calcPutXOnly", [toString(cp), toString(ek), toString(el), "", az, g, toString(em), h], nil)) + " couldn't be cast to (Int, Int)"))
749+ let dW = ek._1
750+ let dX = ek._2
751+ let el = if ((bK == bO))
752+ then $Tuple2(dW, dX)
753+ else $Tuple2(dX, dW)
754+ let em = el._1
755+ let en = el._2
756+ let eo = 1
757+ let ep = {
758+ let eq = invoke(aK, "calcPutXOnly", [toString(cq), toString(em), toString(en), "", az, g, toString(eo), h], nil)
759+ if ($isInstanceOf(eq, "(Int, Int)"))
760+ then eq
761+ else throw(($getType(invoke(aK, "calcPutXOnly", [toString(cq), toString(em), toString(en), "", az, g, toString(eo), h], nil)) + " couldn't be cast to (Int, Int)"))
760762 }
761- let ep = if ((bK == bO))
762- then en
763- else $Tuple2(en._2, en._1)
764- let dM = ep._1
765- let dN = ep._2
766- let ec = dl(toString(dj.caller), toBase58String(dj.transactionId), AttachedPayment(fromBase58String(bO), dM), AttachedPayment(fromBase58String(bP), dN), bi, true, true, cp, bK)
767- let ed = ec._2
768- let dF = ec._7
769- let cg = ec._9
770- let cP = ec._10
771- let cQ = ec._11
772- let cO = if ((dO > 0))
763+ let er = if ((bK == bO))
764+ then ep
765+ else $Tuple2(ep._2, ep._1)
766+ let dN = er._1
767+ let dO = er._2
768+ let ed = dm(toString(dk.caller), toBase58String(dk.transactionId), AttachedPayment(fromBase58String(bO), dN), AttachedPayment(fromBase58String(bP), dO), 0, true, true, false, cq, bK)
769+ let ee = ed._2
770+ let dG = ed._7
771+ let cg = ed._9
772+ let cQ = ed._10
773+ let cR = ed._11
774+ let cP = if (if ((eg > 0))
775+ then (eg > ee)
776+ else false)
777+ then throw(makeString(["amount to receive is less than ", toString(eg)], ""))
778+ else ee
779+ let dF = invoke(ay, "emit", [cP], nil)
780+ if ((dF == dF))
773781 then {
774- let ee = bf(toBigInt(ed), toBigInt(dO), toBigInt(bi))
775- toInt(ee._2)
776- }
777- else ed
778- let dE = invoke(ay, "emit", [cO], nil)
779- if ((dE == dE))
780- then {
781- let dG = {
782- let as = dE
782+ let dH = {
783+ let as = dF
783784 if ($isInstanceOf(as, "Address"))
784785 then {
785- let dH = as
786- invoke(dH, "emit", [cO], nil)
786+ let dI = as
787+ invoke(dI, "emit", [cP], nil)
787788 }
788789 else unit
789790 }
790- if ((dG == dG))
791+ if ((dH == dH))
791792 then {
792- let dI = if ((cP > 0))
793- then invoke(aJ, "put", nil, [AttachedPayment(fromBase58String(bO), cP)])
793+ let dJ = if ((cQ > 0))
794+ then invoke(aJ, "put", nil, [AttachedPayment(fromBase58String(bO), cQ)])
794795 else nil
795- if ((dI == dI))
796+ if ((dJ == dJ))
796797 then {
797- let dJ = if ((cQ > 0))
798- then invoke(aJ, "put", nil, [AttachedPayment(fromBase58String(bP), cQ)])
798+ let dK = if ((cR > 0))
799+ then invoke(aJ, "put", nil, [AttachedPayment(fromBase58String(bP), cR)])
799800 else nil
800- if ((dJ == dJ))
801+ if ((dK == dK))
801802 then {
802- let dK = if (dA)
803+ let dL = if (dB)
803804 then {
804- let dL = invoke(aI, "stake", nil, [AttachedPayment(dF, cO)])
805- if ((dL == dL))
805+ let dM = invoke(aI, "stake", nil, [AttachedPayment(dG, cP)])
806+ if ((dM == dM))
806807 then nil
807808 else throw("Strict value is not equal to itself.")
808809 }
809- else [ScriptTransfer(dj.caller, cO, dF)]
810- (cg ++ dK)
810+ else [ScriptTransfer(dk.caller, cP, dG)]
811+ (cg ++ dL)
811812 }
812813 else throw("Strict value is not equal to itself.")
813814 }
814815 else throw("Strict value is not equal to itself.")
815816 }
816817 else throw("Strict value is not equal to itself.")
817818 }
818819 else throw("Strict value is not equal to itself.")
819820 }
820821 }
821822
822823
823824
824-@Callable(dj)
825-func putForFree (eq) = if ((0 > eq))
825+@Callable(dk)
826+func putForFree (es) = if ((0 > es))
826827 then throw("Wrong slpg")
827- else if ((size(dj.payments) != 2))
828+ else if ((size(dk.payments) != 2))
828829 then throw("2 pmnts expd")
829830 else {
830- let ec = dl(toString(dj.caller), toBase58String(dj.transactionId), AttachedPayment(value(dj.payments[0]).assetId, value(dj.payments[0]).amount), dj.payments[1], eq, false, false, 0, "")
831- ec._9
831+ let ed = dm(toString(dk.caller), toBase58String(dk.transactionId), AttachedPayment(value(dk.payments[0]).assetId, value(dk.payments[0]).amount), dk.payments[1], es, false, false, true, 0, "")
832+ ed._9
832833 }
833834
834835
835836
836-@Callable(dj)
837+@Callable(dk)
837838 func get () = {
838- let cB = di(dj)
839- let er = cB._1
840- let cf = cB._2
841- let cp = cB._3
842- let bK = cB._4
843- let cg = cB._5
844- let es = invoke(ay, "burn", [cp], [AttachedPayment(bK, cp)])
845- if ((es == es))
839+ let cC = dj(dk)
840+ let et = cC._1
841+ let cf = cC._2
842+ let cq = cC._3
843+ let bK = cC._4
844+ let cg = cC._5
845+ let eu = invoke(ay, "burn", [cq], [AttachedPayment(bK, cq)])
846+ if ((eu == eu))
846847 then cg
847848 else throw("Strict value is not equal to itself.")
848849 }
849850
850851
851852
852-@Callable(dj)
853-func getOneTkn (et,eu,ev,ew,bi) = if ((size(dj.payments) != 1))
853+@Callable(dk)
854+func getOneTkn (ev,ew,ex,ey,bi) = if ((size(dk.payments) != 1))
854855 then throw("1 pmnt expd")
855856 else {
856857 let bz = aC()
857858 let bN = bz[q]
858859 let bO = bz[r]
859860 let bP = bz[s]
860861 let bQ = parseIntValue(bz[t])
861862 let bR = parseIntValue(bz[u])
862863 let bS = bz[p]
863- let dB = aG()
864- let dP = valueOrErrorMessage(addressFromString(dB[z]), "Wr sl addr")
865- let dk = value(dj.payments[0])
866- let dR = valueOrElse(getString(this, aa()), "")
867- let bM = if ((dR == toString(dj.caller)))
868- then dj.originCaller
869- else dj.caller
870- let bJ = toBase58String(dj.transactionId)
871- let bK = value(dk.assetId)
872- let cp = dk.amount
873- let dS = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
874- let dT = reentrantInvoke(dS, "ensureCanGetOneTkn", [toString(bM)], nil)
875- if ((dT == dT))
876- then if ((1000000000 > cp))
864+ let dC = aG()
865+ let dQ = valueOrErrorMessage(addressFromString(dC[z]), "Wr sl addr")
866+ let dl = value(dk.payments[0])
867+ let dS = valueOrElse(getString(this, aa()), "")
868+ let bM = if ((dS == toString(dk.caller)))
869+ then dk.originCaller
870+ else dk.caller
871+ let bJ = toBase58String(dk.transactionId)
872+ let bK = value(dl.assetId)
873+ let cq = dl.amount
874+ let dT = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(aa()), "no addons")), "addon address in not valid")
875+ let dU = reentrantInvoke(dT, "ensureCanGetOneTkn", [toString(bM)], nil)
876+ if ((dU == dU))
877+ then if ((1000000000 > cq))
877878 then throw("Min pmt 10 LP")
878879 else if (if (if ((0 > bi))
879880 then true
880- else (0 > et))
881+ else (0 > ev))
881882 then true
882- else (0 > ev))
883+ else (0 > ex))
883884 then throw("Wrong params")
884885 else if ((bN != toBase58String(bK)))
885886 then throw("Wrong LP")
886887 else {
887- let cB = bI(toBase58String(dj.transactionId), toBase58String(bK), cp, dj.caller)
888- let ex = cB._1
889- let ey = cB._2
888+ let cC = bI(toBase58String(dk.transactionId), toBase58String(bK), cq, dk.caller)
889+ let ez = cC._1
890+ let eA = cC._2
890891 let bU = ba(bO)
891892 let bW = ba(bP)
892- let ez = if ((ew == bO))
893- then $Tuple7((bU - ex), (bW - ey), et, ey, 0, 0, (ex + et))
894- else if ((ew == bP))
895- then $Tuple7((bU - ex), (bW - ey), 0, 0, et, ex, (ey + et))
893+ let eB = if ((ey == bO))
894+ then $Tuple7((bU - ez), (bW - eA), ev, eA, 0, 0, (ez + ev))
895+ else if ((ey == bP))
896+ then $Tuple7((bU - ez), (bW - eA), 0, 0, ev, ez, (eA + ev))
896897 else throw("wrong outAssetId")
897- let dV = ez._1
898- let dW = ez._2
899- let dX = ez._3
900- let dY = ez._4
901- let dZ = ez._5
902- let ea = ez._6
903- let eA = ez._7
904- if (if ((0 > dX))
898+ let dW = eB._1
899+ let dX = eB._2
900+ let dY = eB._3
901+ let dZ = eB._4
902+ let ea = eB._5
903+ let eb = eB._6
904+ let eC = eB._7
905+ if (if ((0 > dY))
905906 then true
906- else (0 > dZ))
907+ else (0 > ea))
907908 then throw("Wrong calc")
908909 else {
909- let bn = invoke(dP, "calcD", [toString(dV), toString(dW), az, g, h], nil)
910- let bm = invoke(dP, "calcD", [toString(((dV - dX) + ea)), toString(((dW + dY) - dZ)), az, g, h], nil)
911- let eb = bl(parseBigIntValue(ar(bm)), parseBigIntValue(ar(bn)), f)
912- if ((eb == eb))
910+ let bn = invoke(dQ, "calcD", [toString(dW), toString(dX), az, g, h], nil)
911+ let bm = invoke(dQ, "calcD", [toString(((dW - dY) + eb)), toString(((dX + dZ) - ea)), az, g, h], nil)
912+ let ec = bl(parseBigIntValue(ar(bm)), parseBigIntValue(ar(bn)), f)
913+ if ((ec == ec))
913914 then {
914- let eB = bf(toBigInt(eA), toBigInt(ev), toBigInt(bi))
915- if ((eB == eB))
915+ let eD = bf(toBigInt(eC), toBigInt(ex), toBigInt(bi))
916+ if ((eD == eD))
916917 then {
917- let eC = if ((ew == bO))
918- then $Tuple2(toInt(eB._2), 0)
919- else $Tuple2(0, toInt(eB._2))
920- let eD = eC._1
921- let eE = eC._2
922- let eF = bc(B(bW, bR), B(bU, bQ))
923- let eG = E(eF, a)
924- let cg = [ScriptTransfer(bM, (eD + eE), if ((ew == "WAVES"))
918+ let eE = if ((ey == bO))
919+ then $Tuple2(toInt(eD._2), 0)
920+ else $Tuple2(0, toInt(eD._2))
921+ let eF = eE._1
922+ let eG = eE._2
923+ let eH = bc(B(bW, bR), B(bU, bQ))
924+ let eI = E(eH, a)
925+ let cg = [ScriptTransfer(bM, (eF + eG), if ((ey == "WAVES"))
925926 then unit
926- else fromBase58String(ew)), StringEntry(W(toString(bM), bJ), aW(eD, eE, cp, eG, height, lastBlock.timestamp)), IntegerEntry(P(), eG), IntegerEntry(Q(height, lastBlock.timestamp), eG)]
927+ else fromBase58String(ey)), StringEntry(W(toString(bM), bJ), aW(eF, eG, cq, eI, height, lastBlock.timestamp)), IntegerEntry(P(), eI), IntegerEntry(Q(height, lastBlock.timestamp), eI)]
927928 if ((cg == cg))
928929 then {
929- let eH = invoke(ay, "burn", [cp], [AttachedPayment(bK, cp)])
930- if ((eH == eH))
930+ let eJ = invoke(ay, "burn", [cq], [AttachedPayment(bK, cq)])
931+ if ((eJ == eJ))
931932 then cg
932933 else throw("Strict value is not equal to itself.")
933934 }
934935 else throw("Strict value is not equal to itself.")
935936 }
936937 else throw("Strict value is not equal to itself.")
937938 }
938939 else throw("Strict value is not equal to itself.")
939940 }
940941 }
941942 else throw("Strict value is not equal to itself.")
942943 }
943944
944945
945946
946-@Callable(dj)
947-func getOneTknV2 (ev,ew,bi) = if ((size(dj.payments) != 1))
947+@Callable(dk)
948+func getOneTknV2 (ey,eg) = if ((size(dk.payments) != 1))
948949 then throw("1 pmnt expd")
949950 else {
950- let ef = aC()
951- let bN = ef[q]
952- let bO = ef[r]
953- let bP = ef[s]
954- let eg = parseIntValue(ef[t])
955- let eh = parseIntValue(ef[u])
956- let eI = ef[p]
957- let bM = if ((dj.caller == this))
958- then dj.originCaller
959- else dj.caller
960- let dk = value(dj.payments[0])
961- let bK = value(dk.assetId)
962- let cp = dk.amount
963- if ((1000000000 > cp))
951+ let eh = aC()
952+ let bN = eh[q]
953+ let bO = eh[r]
954+ let bP = eh[s]
955+ let ei = parseIntValue(eh[t])
956+ let ej = parseIntValue(eh[u])
957+ let eK = eh[p]
958+ let bM = if ((dk.caller == this))
959+ then dk.originCaller
960+ else dk.caller
961+ let dl = value(dk.payments[0])
962+ let bK = value(dl.assetId)
963+ let cq = dl.amount
964+ if ((1000000000 > cq))
964965 then throw("Min pmt 10 LP")
965966 else {
966- let bJ = toBase58String(dj.transactionId)
967- if ((0 > bi))
968- then throw("Wrong params")
969- else if ((bN != toBase58String(bK)))
970- then throw("Wrong LP")
971- else {
972- let cB = bI(bJ, toBase58String(bK), cp, dj.caller)
973- let ex = cB._1
974- let ey = cB._2
975- let bU = ba(bO)
976- let bW = ba(bP)
977- let dV = (bU - ex)
978- let dW = (bW - ey)
979- let eJ = if ((ew == bO))
980- then $Tuple3(dW, dV, ey)
981- else if ((ew == bP))
982- then $Tuple3(dV, dW, ex)
983- else throw("wrong outAssetId")
984- let eK = eJ._1
985- let eL = eJ._2
986- let eM = eJ._3
987- let eN = 1
988- let et = {
989- let eo = invoke(aK, "calcSwapXToY", [toString(eM), toString(eK), toString(eL), "", az, g, toString(eN), h], nil)
990- if ($isInstanceOf(eo, "Int"))
991- then eo
992- else throw(($getType(invoke(aK, "calcSwapXToY", [toString(eM), toString(eK), toString(eL), "", az, g, toString(eN), h], nil)) + " couldn't be cast to Int"))
967+ let bJ = toBase58String(dk.transactionId)
968+ if ((bN != toBase58String(bK)))
969+ then throw("Wrong LP")
970+ else {
971+ let cC = bI(bJ, toBase58String(bK), cq, dk.caller)
972+ let ez = cC._1
973+ let eA = cC._2
974+ let bU = ba(bO)
975+ let bW = ba(bP)
976+ let dW = (bU - ez)
977+ let dX = (bW - eA)
978+ let eL = if ((ey == bO))
979+ then $Tuple3(dX, dW, eA)
980+ else if ((ey == bP))
981+ then $Tuple3(dW, dX, ez)
982+ else throw("wrong outAssetId")
983+ let eM = eL._1
984+ let eN = eL._2
985+ let eO = eL._3
986+ let eP = 1
987+ let ev = {
988+ let eq = invoke(aK, "calcSwapXToY", [toString(eO), toString(eM), toString(eN), "", az, g, toString(eP), h], nil)
989+ if ($isInstanceOf(eq, "Int"))
990+ then eq
991+ else throw(($getType(invoke(aK, "calcSwapXToY", [toString(eO), toString(eM), toString(eN), "", az, g, toString(eP), h], nil)) + " couldn't be cast to Int"))
992+ }
993+ let eC = (ev + (if ((ey == bO))
994+ then ez
995+ else eA))
996+ let eQ = if (if ((eg > 0))
997+ then (eg > eC)
998+ else false)
999+ then throw(makeString(["amount to receive is less than ", toString(eg)], ""))
1000+ else eC
1001+ let eR = if ((ey == bO))
1002+ then $Tuple2(eQ, 0)
1003+ else $Tuple2(0, eQ)
1004+ let eF = eR._1
1005+ let eG = eR._2
1006+ let eH = bc(B(bW, ej), B(bU, ei))
1007+ let eI = E(eH, a)
1008+ let cg = [ScriptTransfer(bM, eQ, if ((ey == "WAVES"))
1009+ then unit
1010+ else fromBase58String(ey)), StringEntry(W(toString(bM), bJ), aW(eF, eG, cq, eI, height, lastBlock.timestamp)), IntegerEntry(P(), eI), IntegerEntry(Q(height, lastBlock.timestamp), eI)]
1011+ if ((cg == cg))
1012+ then {
1013+ let eJ = invoke(ay, "burn", [cq], [AttachedPayment(bK, cq)])
1014+ if ((eJ == eJ))
1015+ then $Tuple2(cg, eQ)
1016+ else throw("Strict value is not equal to itself.")
9931017 }
994- let eA = if ((ew == bO))
995- then (ex + et)
996- else (ey + et)
997- let eB = if ((ev > 0))
998- then bf(toBigInt(eA), toBigInt(ev), toBigInt(bi))
999- else $Tuple2(true, toBigInt(eA))
1000- let eO = if ((ew == bO))
1001- then $Tuple2(toInt(eB._2), 0)
1002- else $Tuple2(0, toInt(eB._2))
1003- let eD = eO._1
1004- let eE = eO._2
1005- let eP = (eD + eE)
1006- let eF = bc(B(bW, eh), B(bU, eg))
1007- let eG = E(eF, a)
1008- let cg = [ScriptTransfer(bM, eP, if ((ew == "WAVES"))
1009- then unit
1010- else fromBase58String(ew)), StringEntry(W(toString(bM), bJ), aW(eD, eE, cp, eG, height, lastBlock.timestamp)), IntegerEntry(P(), eG), IntegerEntry(Q(height, lastBlock.timestamp), eG)]
1011- if ((cg == cg))
1012- then {
1013- let eH = invoke(ay, "burn", [cp], [AttachedPayment(bK, cp)])
1014- if ((eH == eH))
1015- then $Tuple2(cg, eP)
1016- else throw("Strict value is not equal to itself.")
1017- }
1018- else throw("Strict value is not equal to itself.")
1019- }
1018+ else throw("Strict value is not equal to itself.")
1019+ }
10201020 }
10211021 }
10221022
10231023
10241024
1025-@Callable(dj)
1026-func getNoLess (eQ,eR) = {
1027- let cB = di(dj)
1028- let ce = cB._1
1029- let cf = cB._2
1030- let cp = cB._3
1031- let bK = cB._4
1032- let cg = cB._5
1033- if ((eQ > ce))
1034- then throw(((("Failed: " + toString(ce)) + " < ") + toString(eQ)))
1035- else if ((eR > cf))
1036- then throw(((("Failed: " + toString(cf)) + " < ") + toString(eR)))
1025+@Callable(dk)
1026+func getNoLess (eS,eT) = {
1027+ let cC = dj(dk)
1028+ let ce = cC._1
1029+ let cf = cC._2
1030+ let cq = cC._3
1031+ let bK = cC._4
1032+ let cg = cC._5
1033+ if ((eS > ce))
1034+ then throw(((("Failed: " + toString(ce)) + " < ") + toString(eS)))
1035+ else if ((eT > cf))
1036+ then throw(((("Failed: " + toString(cf)) + " < ") + toString(eT)))
10371037 else {
1038- let eS = invoke(ay, "burn", [cp], [AttachedPayment(bK, cp)])
1039- if ((eS == eS))
1038+ let eU = invoke(ay, "burn", [cq], [AttachedPayment(bK, cq)])
1039+ if ((eU == eU))
10401040 then cg
10411041 else throw("Strict value is not equal to itself.")
10421042 }
10431043 }
10441044
10451045
10461046
1047-@Callable(dj)
1048-func unstakeAndGet (eT) = {
1049- let eU = if ((size(dj.payments) != 0))
1047+@Callable(dk)
1048+func unstakeAndGet (eV) = {
1049+ let eW = if ((size(dk.payments) != 0))
10501050 then throw("No pmnts expd")
10511051 else true
1052- if ((eU == eU))
1052+ if ((eW == eW))
10531053 then {
10541054 let bz = aC()
1055- let eV = aG()
1056- let dF = fromBase58String(bz[q])
1057- let eW = valueOrErrorMessage(addressFromString(eV[x]), "Wr st addr")
1058- let eX = invoke(eW, "unstake", [toBase58String(dF), eT], nil)
1059- if ((eX == eX))
1055+ let eX = aG()
1056+ let dG = fromBase58String(bz[q])
1057+ let eY = valueOrErrorMessage(addressFromString(eX[x]), "Wr st addr")
1058+ let eZ = invoke(eY, "unstake", [toBase58String(dG), eV], nil)
1059+ if ((eZ == eZ))
10601060 then {
1061- let cB = bI(toBase58String(dj.transactionId), toBase58String(dF), eT, dj.caller)
1062- let bS = parseIntValue(cB._9)
1063- let cg = cB._10
1064- let eY = if (if (aA())
1061+ let cC = bI(toBase58String(dk.transactionId), toBase58String(dG), eV, dk.caller)
1062+ let bS = parseIntValue(cC._9)
1063+ let cg = cC._10
1064+ let fa = if (if (aA())
10651065 then true
10661066 else (bS == n))
10671067 then throw(("Blocked: " + toString(bS)))
10681068 else true
1069- if ((eY == eY))
1069+ if ((fa == fa))
10701070 then {
1071- let eZ = invoke(ay, "burn", [eT], [AttachedPayment(dF, eT)])
1072- if ((eZ == eZ))
1071+ let fb = invoke(ay, "burn", [eV], [AttachedPayment(dG, eV)])
1072+ if ((fb == fb))
10731073 then cg
10741074 else throw("Strict value is not equal to itself.")
10751075 }
10761076 else throw("Strict value is not equal to itself.")
10771077 }
10781078 else throw("Strict value is not equal to itself.")
10791079 }
10801080 else throw("Strict value is not equal to itself.")
10811081 }
10821082
10831083
10841084
1085-@Callable(dj)
1086-func unstakeAndGetOneTkn (eT,ev,ew,bi) = {
1087- let eU = if ((size(dj.payments) != 0))
1085+@Callable(dk)
1086+func unstakeAndGetOneTkn (eV,ex,ey,bi) = {
1087+ let eW = if ((size(dk.payments) != 0))
10881088 then throw("No pmnts expd")
10891089 else true
1090- if ((eU == eU))
1090+ if ((eW == eW))
10911091 then {
10921092 let bz = aC()
1093- let eV = aG()
1094- let dF = fromBase58String(bz[q])
1095- let eW = valueOrErrorMessage(addressFromString(eV[x]), "Wr st addr")
1096- let eX = invoke(eW, "unstake", [toBase58String(dF), eT], nil)
1097- if ((eX == eX))
1093+ let eX = aG()
1094+ let dG = fromBase58String(bz[q])
1095+ let eY = valueOrErrorMessage(addressFromString(eX[x]), "Wr st addr")
1096+ let eZ = invoke(eY, "unstake", [toBase58String(dG), eV], nil)
1097+ if ((eZ == eZ))
10981098 then {
1099- let fa = {
1100- let eo = invoke(this, "getOneTknV2", [ev, ew, bi], [AttachedPayment(dF, eT)])
1101- if ($isInstanceOf(eo, "Int"))
1102- then eo
1099+ let fc = {
1100+ let eq = invoke(this, "getOneTknV2", [ex, ey, bi], [AttachedPayment(dG, eV)])
1101+ if ($isInstanceOf(eq, "Int"))
1102+ then eq
11031103 else unit
11041104 }
1105- if ((fa == fa))
1106- then $Tuple2(nil, fa)
1105+ if ((fc == fc))
1106+ then $Tuple2(nil, fc)
11071107 else throw("Strict value is not equal to itself.")
11081108 }
11091109 else throw("Strict value is not equal to itself.")
11101110 }
11111111 else throw("Strict value is not equal to itself.")
11121112 }
11131113
11141114
11151115
1116-@Callable(dj)
1117-func activate (fb,fc) = if ((toString(dj.caller) != toString(ay)))
1116+@Callable(dk)
1117+func activate (fd,fe) = if ((toString(dk.caller) != toString(ay)))
11181118 then throw("denied")
1119- else $Tuple2([StringEntry(X(), fb), StringEntry(Y(), fc)], "success")
1119+ else $Tuple2([StringEntry(X(), fd), StringEntry(Y(), fe)], "success")
11201120
11211121
11221122
1123-@Callable(dj)
1124-func setS (fd,eY) = if ((toString(dj.caller) != au(this, aa())))
1125- then dr
1126- else [StringEntry(fd, eY)]
1123+@Callable(dk)
1124+func setS (ff,fa) = if ((toString(dk.caller) != au(this, aa())))
1125+ then ds
1126+ else [StringEntry(ff, fa)]
11271127
11281128
11291129
1130-@Callable(dj)
1131-func setI (fd,eY) = if ((toString(dj.caller) != au(this, aa())))
1132- then dr
1133- else [IntegerEntry(fd, eY)]
1130+@Callable(dk)
1131+func setI (ff,fa) = if ((toString(dk.caller) != au(this, aa())))
1132+ then ds
1133+ else [IntegerEntry(ff, fa)]
11341134
11351135
11361136
1137-@Callable(dj)
1137+@Callable(dk)
11381138 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aC())
11391139
11401140
11411141
1142-@Callable(dj)
1142+@Callable(dk)
11431143 func getAccBalanceWrapperREADONLY (bb) = $Tuple2(nil, ba(bb))
11441144
11451145
11461146
1147-@Callable(dj)
1147+@Callable(dk)
11481148 func calcPricesWrapperREADONLY (bt,bu,by) = {
1149- let fe = bx(bt, bu, by)
1150- $Tuple2(nil, [toString(fe[0]), toString(fe[1]), toString(fe[2])])
1149+ let fg = bx(bt, bu, by)
1150+ $Tuple2(nil, [toString(fg[0]), toString(fg[1]), toString(fg[2])])
11511151 }
11521152
11531153
11541154
1155-@Callable(dj)
1156-func fromX18WrapperREADONLY (F,ff) = $Tuple2(nil, E(parseBigIntValue(F), ff))
1155+@Callable(dk)
1156+func fromX18WrapperREADONLY (F,fh) = $Tuple2(nil, E(parseBigIntValue(F), fh))
11571157
11581158
11591159
1160-@Callable(dj)
1160+@Callable(dk)
11611161 func toX18WrapperREADONLY (C,D) = $Tuple2(nil, toString(B(C, D)))
11621162
11631163
11641164
1165-@Callable(dj)
1165+@Callable(dk)
11661166 func calcPriceBigIntWrapperREADONLY (bd,be) = $Tuple2(nil, toString(bc(parseBigIntValue(bd), parseBigIntValue(be))))
11671167
11681168
11691169
1170-@Callable(dj)
1171-func estimatePutOperationWrapperREADONLY (bJ,bi,ci,cj,ck,cl,fg,cm,cn) = $Tuple2(nil, ch(bJ, bi, ci, cj, ck, cl, fg, cm, cn, false, 0, ""))
1170+@Callable(dk)
1171+func estimatePutOperationWrapperREADONLY (bJ,bi,ci,cj,ck,cl,fi,cm,cn) = $Tuple2(nil, ch(bJ, bi, ci, cj, ck, cl, fi, cm, cn, true, false, 0, ""))
11721172
11731173
11741174
1175-@Callable(dj)
1176-func estimateGetOperationWrapperREADONLY (bJ,fh,bL,fg) = {
1177- let cB = bI(bJ, fh, bL, addressFromStringValue(fg))
1178- $Tuple2(nil, $Tuple10(cB._1, cB._2, cB._3, cB._4, cB._5, cB._6, cB._7, toString(cB._8), cB._9, cB._10))
1175+@Callable(dk)
1176+func estimateGetOperationWrapperREADONLY (bJ,fj,bL,fi) = {
1177+ let cC = bI(bJ, fj, bL, addressFromStringValue(fi))
1178+ $Tuple2(nil, $Tuple10(cC._1, cC._2, cC._3, cC._4, cC._5, cC._6, cC._7, toString(cC._8), cC._9, cC._10))
11791179 }
11801180
11811181
1182-@Verifier(fi)
1183-func fj () = {
1184- let fk = {
1185- let as = do()
1182+@Verifier(fk)
1183+func fl () = {
1184+ let fm = {
1185+ let as = dp()
11861186 if ($isInstanceOf(as, "ByteVector"))
11871187 then {
1188- let dt = as
1189- dt
1188+ let du = as
1189+ du
11901190 }
11911191 else if ($isInstanceOf(as, "Unit"))
1192- then fi.senderPublicKey
1192+ then fk.senderPublicKey
11931193 else throw("Match error")
11941194 }
1195- let as = fi
1195+ let as = fk
11961196 if ($isInstanceOf(as, "Order"))
11971197 then {
1198- let cW = as
1199- let fl = aB()
1200- let fm = cV(cW)
1201- let fn = sigVerify(cW.bodyBytes, cW.proofs[0], cW.senderPublicKey)
1202- let fo = sigVerify(cW.bodyBytes, cW.proofs[1], fl)
1203- if (if (if (fm)
1204- then fn
1198+ let cX = as
1199+ let fn = aB()
1200+ let fo = cW(cX)
1201+ let fp = sigVerify(cX.bodyBytes, cX.proofs[0], cX.senderPublicKey)
1202+ let fq = sigVerify(cX.bodyBytes, cX.proofs[1], fn)
1203+ if (if (if (fo)
1204+ then fp
12051205 else false)
1206- then fo
1206+ then fq
12071207 else false)
12081208 then true
1209- else an(fm, fn, fo)
1209+ else an(fo, fp, fq)
12101210 }
12111211 else if ($isInstanceOf(as, "SetScriptTransaction"))
12121212 then {
1213- let dp = as
1214- let fp = blake2b256(value(dp.script))
1215- let fq = fromBase64String(value(getString(ay, am())))
1216- let fr = scriptHash(this)
1217- if (if ((fq == fp))
1218- then (fr != fp)
1213+ let dq = as
1214+ let fr = blake2b256(value(dq.script))
1215+ let fs = fromBase64String(value(getString(ay, am())))
1216+ let ft = scriptHash(this)
1217+ if (if ((fs == fr))
1218+ then (ft != fr)
12191219 else false)
12201220 then true
1221- else sigVerify(fi.bodyBytes, fi.proofs[0], fk)
1221+ else sigVerify(fk.bodyBytes, fk.proofs[0], fm)
12221222 }
1223- else sigVerify(fi.bodyBytes, fi.proofs[0], fk)
1223+ else sigVerify(fk.bodyBytes, fk.proofs[0], fm)
12241224 }
12251225

github/deemru/w8io/169f3d6 
352.81 ms