tx · 3p5haAUoY5cChzzaJdY7LLESPq1c9A9YFY8j367nVTE5

3MwukwUkp3PsyCrkjMgqiAnSfc1hBD5FQhH:  -0.02400000 Waves

2023.03.15 13:16 [2491010] smart account 3MwukwUkp3PsyCrkjMgqiAnSfc1hBD5FQhH > SELF 0.00000000 Waves

{ "type": 13, "id": "3p5haAUoY5cChzzaJdY7LLESPq1c9A9YFY8j367nVTE5", "fee": 2400000, "feeAssetId": null, "timestamp": 1678875454043, "version": 2, "chainId": 84, "sender": "3MwukwUkp3PsyCrkjMgqiAnSfc1hBD5FQhH", "senderPublicKey": "5JqBVJpMCyD7dJLJttqYjL6CmJc4zahBHSFjFb7qQTga", "proofs": [ "4dPBDs5R6nmJj8jZwALKDB7dJqn3pCmfpBa1WEPE2p4YZujjbmFnUD25SgDdTm5CAmuXqVRQvympTQDfD41fsCcS" ], "script": "base64:BgIhCAISBAoCAQESBgoECAgICBIDCgEYEgASAwoBCBIDCgEBRAADU0VQAgFfAA5fbWluTG9ja3BlcmlvZAABAA1fdW5pdERlY2ltYWxzAIDC1y8ADl9taW5Mb2NrQW1vdW50CQBoAgABBQ1fdW5pdERlY2ltYWxzAA5fbWF4TG9ja0Ftb3VudAkAaAIA6AcFDV91bml0RGVjaW1hbHMAA19EdACAuJkpAQRfUHB5AQpsb2NrUGVyaW9kCQBrAwUNX3VuaXREZWNpbWFscwDtAgUKbG9ja1BlcmlvZAANX2luY3JlbWVudFJlZgkAaAIAwIQ9BQ1fdW5pdERlY2ltYWxzAA5fcGVyY2VudGFnZUZlZQkAawMFDV91bml0RGVjaW1hbHMACgBkABpfcGVyY2VudGFnZVJlZHVjdGlvbkZhY3RvcgIpQ3VycmVudF9QZXJjZW50YWdlUmVkdWN0aW9uX0ZhY3Rvcl9Gb3JfTXIAA19NcgIMTWludGluZ19SYXRlAAxfc3Rhd0Fzc2V0SWQCDFN0YXdfQXNzZXRJZAAIX21hbmFnZXICB21hbmFnZXIABF9EZngCA0RmeAAVX2NpcmN1bGF0aW9uSW5jckluZGV4AhlDaXJjdWxhdGlvbkluY3JlbWVudEluZGV4AA5fbGVzc2VlQWRkcmVzcwIJTGVhc2VOb2RlABpfdXNlckVtaXNzaW9uQW1vdW50Q2xhaW1lZAIVRW1pc3Npb25BbW91bnRDbGFpbWVkABtfdXNlckNhbkNsYWltRW1pc3Npb25BbW91bnQCFkNhbkNsYWltRW1pc3Npb25BbW91bnQADF91c2VyQWRkcmVzcwINV2FsbGV0QWRkcmVzcwAUX3VzZXJMb2NhbEluZGV4Q291bnQCFFRvdGFsRW50cnlJbmRleENvdW50ABBfdXNlclRvdGFsTG9ja2VkAgtUb3RhbExvY2tlZAANX2xvY2tEdXJhdGlvbgIMTG9ja0R1cmF0aW9uAApfbG9ja0luZGV4Ag9HbG9iYWxMb2NrSW5kZXgAB19sb2NrSWQCDkxvY2tJZGVudGlmaWVyAAxfd2F2ZXNBbW91bnQCDUFtb3VudEluV2F2ZXMAC19zdGF3QW1vdW50AgxBbW91bnRJblN0YXcADV9zdGF3TFBBbW91bnQCDkFtb3VudEluU3Rhd0xQAAVfdHhJZAIEVFhJRAANX2xvY2tBdEhlaWdodAIMTG9ja0F0SGVpZ2h0ABRfbG9ja1BlcmlvZEluTWlsaVNlYwIUTG9jS1BlcmlvZEluTWlsbGlTZWMAEl90b3RhbFdhdmVzQ2xhaW1lZAIRVG90YWxXYXZlc0NsYWltZWQAD191c2VyTGVhc2VTdGF0ZQIKTGVhc2VTdGF0ZQAKX3RvdGFsU3RhdwIPVG90YWxTdGF3TWludGVkAA5fdG90YWxXYXZlc1JlZgIQVG90YWxXYXZlc0xvY2tlZAAMX3RvdGFsU3Rhd0xQAgtUb3RhbFN0YXdMUAARX2dsb2JhbEluZGV4Q291bnQCCkluZGV4Q291bnQBBV9nZXRJAQNrZXkJAJoIAgUEdGhpcwUDa2V5AQVfZ2V0UwEDa2V5CQCdCAIFBHRoaXMFA2tleQEFX2dldEIBA2tleQkAmwgCBQR0aGlzBQNrZXkBBl9nZXRCVgEDa2V5CQEFdmFsdWUBCQCbCAIFBHRoaXMFA2tleQEGX2dldElWAQNrZXkJAQV2YWx1ZQEJAJoIAgUEdGhpcwUDa2V5AQZfZ2V0U1YBA2tleQkBBXZhbHVlAQkAnQgCBQR0aGlzBQNrZXkBDF9zZXRQYXJhbVZhbAIDa2V5CmRlZmF1bHRWYWwEByRtYXRjaDAFCmRlZmF1bHRWYWwDCQABAgUHJG1hdGNoMAIGU3RyaW5nBApkZWZhdWx0VmFsBQckbWF0Y2gwAwkBCWlzRGVmaW5lZAEJAQVfZ2V0UwEFA2tleQkBBl9nZXRTVgEFA2tleQUKZGVmYXVsdFZhbAMJAAECBQckbWF0Y2gwAgNJbnQECmRlZmF1bHRWYWwFByRtYXRjaDADCQEJaXNEZWZpbmVkAQkBBV9nZXRJAQUDa2V5CQEGX2dldElWAQUDa2V5BQpkZWZhdWx0VmFsAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4ECmRlZmF1bHRWYWwFByRtYXRjaDADCQEJaXNEZWZpbmVkAQkBBV9nZXRCAQUDa2V5CQEGX2dldEJWAQUDa2V5BQpkZWZhdWx0VmFsCQACAQkArAICAh12YWx1ZSB0eXBlIG5vdCBzdXBwb3J0ZWQgZm9yIAUDa2V5AQ9fdGhyb3dPclJldHVyblMCA3ZhbAVlcnJvcgQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACBlN0cmluZwQDdmFsBQckbWF0Y2gwBQN2YWwJAAIBBQVlcnJvcgEPX3Rocm93T3JSZXR1cm5JAgN2YWwFZXJyb3IEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgNJbnQEA3ZhbAUHJG1hdGNoMAUDdmFsCQACAQUFZXJyb3IBEl90aHJvd09yUmV0dXJuQm9vbAIDdmFsBWVycm9yBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQDdmFsBQckbWF0Y2gwBQN2YWwJAAIBBQVlcnJvcgEJX3dyaXRlSW50AgNrZXkFdmFsdWUDCQBmAgAABQV2YWx1ZQkAAgEJAKwCAgkArAICCQCsAgICF3dyaXRpbmcgbmVnYXRpdmUgdmFsdWUgCQCkAwEFBXZhbHVlAgkgZm9yIGtleSAFA2tleQkBDEludGVnZXJFbnRyeQIFA2tleQUFdmFsdWUBCV93cml0ZVN0cgIDa2V5BXZhbHVlAwkAAAICASAFBXZhbHVlCQACAQkArAICAhh3cml0aW5nIGFuIGVtcHR5IHN0cmluZyAFBXZhbHVlCQELU3RyaW5nRW50cnkCBQNrZXkFBXZhbHVlAQhfdGhyb3dJZgIJY29uZGl0aW9uBWVycm9yAwUJY29uZGl0aW9uCQACAQUFZXJyb3IGARFfd3JpdGVHbG9iYWxQYXJhbQIDa2V5Bl92YWx1ZQQHJG1hdGNoMAUGX3ZhbHVlAwkAAQIFByRtYXRjaDACA0ludAQGX3ZhbHVlBQckbWF0Y2gwBAVlbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQUGX3ZhbHVlBQNuaWwFA1NFUAkBCV93cml0ZVN0cgIFA2tleQUFZW50cnkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZfdmFsdWUFByRtYXRjaDAEBWVudHJ5CQC5CQIJAMwIAgICJXMJAMwIAgUGX3ZhbHVlBQNuaWwFA1NFUAkBCV93cml0ZVN0cgIFA2tleQUFZW50cnkDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQGX3ZhbHVlBQckbWF0Y2gwBAVlbnRyeQkAuQkCCQDMCAICAiViCQDMCAIJAKUDAQUGX3ZhbHVlBQNuaWwFA1NFUAkBCV93cml0ZVN0cgIFA2tleQUFZW50cnkJAAIBAhJ0eXBlIG5vdCBzdXBwb3J0ZWQBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBA2tleQQJX3Jhd1ZhbHVlCQEPX3Rocm93T3JSZXR1cm5TAgkBBV9nZXRTAQUDa2V5Ag9lbnRyeSBub3QgZm91bmQDCQAAAgUJX3Jhd1ZhbHVlBQlfcmF3VmFsdWUEAXgJALUJAgUJX3Jhd1ZhbHVlBQNTRVAED2Zvcm1hdFNwZWNpZmllcgkAsgICCQCRAwIFAXgAAAABBAxfdmFsdWVTdHJpbmcJAJEDAgUBeAkAZQIJAJADAQUBeAABBAZfdmFsdWUDCQAAAgUPZm9ybWF0U3BlY2lmaWVyAgFzBQxfdmFsdWVTdHJpbmcDCQAAAgUPZm9ybWF0U3BlY2lmaWVyAgFkCQENcGFyc2VJbnRWYWx1ZQEFDF92YWx1ZVN0cmluZwMJAAACBQ9mb3JtYXRTcGVjaWZpZXICAWIJANkEAQUMX3ZhbHVlU3RyaW5nCQACAQkArAICAiNjb3VsZCBub3QgcGFyc2UgcmVnaXN0cnkgdmFsdWUgZm9yIAUDa2V5BQZfdmFsdWUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BDl9kYXlzVG9NaWxpU2VjAQRkYXlzBAVjaGVjawkBCF90aHJvd0lmAgkAZwIAAAUEZGF5cwIVaW52YWxpZCBsb2NraW5nIGRheXMhAwkAAAIFBWNoZWNrBQVjaGVjawkAaAIFBGRheXMFA19EdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgERX3dyaXRlQ29uc3RTdHJpbmcCA2tleQV2YWx1ZQMJAQEhAQkBCWlzRGVmaW5lZAEJAQVfZ2V0UwEFA2tleQkBCV93cml0ZVN0cgIFA2tleQUFdmFsdWUJAAIBCQCsAgICG2VudHJ5IGFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5ARJfd3JpdGVDb25zdEludGVnZXICA2tleQV2YWx1ZQMJAQEhAQkBCWlzRGVmaW5lZAEJAQVfZ2V0UwEFA2tleQkBCV93cml0ZUludAIFA2tleQUFdmFsdWUJAAIBCQCsAgICHCBlbnRyeSBhbHJlYWR5IGluaXRpYWxpemVkOiAFA2tleQEMX29ubHlNYW5hZ2VyAQFpBAdtYW5hZ2VyBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFCF9tYW5hZ2VyAwkAAQIFByRtYXRjaDACBlN0cmluZwQDdmFsBQckbWF0Y2gwBQN2YWwCFWZhaWxlZCB0byBnZXQgbWFuYWdlcgMJAAACBQdtYW5hZ2VyBQdtYW5hZ2VyCQEIX3Rocm93SWYCCQECIT0CCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMFB21hbmFnZXICFmFkZHJlc3Mgbm90IGF1dGhvcml6ZWQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BBF9hYnMBA3ZhbAMJAGYCAAAFA3ZhbAkBAS0BBQN2YWwFA3ZhbAEQX3ZhbGlkYXRlQWRkcmVzcwEHYWRkcmVzcwQHJG1hdGNoMAUHYWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEB2FkZHJlc3MFByRtYXRjaDAECF9hZGRyZXNzCQCmCAEFB2FkZHJlc3MEByRtYXRjaDEFCF9hZGRyZXNzAwkAAQIFByRtYXRjaDECB0FkZHJlc3MECF9hZGRyZXNzBQckbWF0Y2gxBgkAAgECD2ludmFsaWQgYWRkcmVzcwMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAdhZGRyZXNzBQckbWF0Y2gwBAhfYWRkcmVzcwkApwgBBQdhZGRyZXNzBAckbWF0Y2gxBQhfYWRkcmVzcwMJAAECBQckbWF0Y2gxAgdBZGRyZXNzBAhfYWRkcmVzcwUHJG1hdGNoMQYJAAIBAhJpbnZhbGlkIHB1YmxpYyBrZXkJAAIBAhJpbnZhbGlkIGlucHV0IHR5cGUBDl92YWxpZGF0ZUFzc2V0AQdhc3NldElEBAckbWF0Y2gwCQDsBwEJANkEAQUHYXNzZXRJRAMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAGCQACAQkArAICAhJpbnZhbGlkIGFzc2V0IGlkOiAFB2Fzc2V0SUQBCl9jb21wdXRlTXIABBBjdXJyZW50Q2lyY0luZGV4BAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFFV9jaXJjdWxhdGlvbkluY3JJbmRleAMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAihjaXJjdWxhdGlvbiBpbmRleCBub3QgcHJldmlvdXNseSBkZWZpbmVkAwkAAAIFEGN1cnJlbnRDaXJjSW5kZXgFEGN1cnJlbnRDaXJjSW5kZXgEC3N0YXdBc3NldElkBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFDF9zdGF3QXNzZXRJZAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXQFByRtYXRjaDAFAXQJAAIBAh9hc3NldCBpZCBub3QgcHJldmlvdXNseSBkZWZpbmVkAwkAAAIFC3N0YXdBc3NldElkBQtzdGF3QXNzZXRJZAQVc3Rhd0NpcmN1bGF0aW5nU3VwcGx5BAckbWF0Y2gwCQDsBwEJANkEAQULc3Rhd0Fzc2V0SWQDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCAUFYXNzZXQIcXVhbnRpdHkJAAIBCQCsAgICFGFzc2V0IG5vdCBmb3VuZCBmb3IgBQtzdGF3QXNzZXRJZAQNdW5pdEluY3JlbWVudAkAaQIJAQRfYWJzAQkAZQIFFXN0YXdDaXJjdWxhdGluZ1N1cHBseQUNX2luY3JlbWVudFJlZgUNX2luY3JlbWVudFJlZgQXbmV3Q2lyY3VsYXRpb25JbmNySW5kZXgDCQBmAgUNdW5pdEluY3JlbWVudAUQY3VycmVudENpcmNJbmRleAkAZAIFDXVuaXRJbmNyZW1lbnQFEGN1cnJlbnRDaXJjSW5kZXgFEGN1cnJlbnRDaXJjSW5kZXgECWN1cnJlbnRNcgQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQNfTXIDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQIbZmFpbGVkIHRvIGdldCBtaW5pdGluZyByYXRlAwkAAAIFF25ld0NpcmN1bGF0aW9uSW5jckluZGV4BRBjdXJyZW50Q2lyY0luZGV4CQCUCgIFCWN1cnJlbnRNcgUDbmlsBBJuZXdyZWR1Y3Rpb25GYWN0b3IEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUaX3BlcmNlbnRhZ2VSZWR1Y3Rpb25GYWN0b3IDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQIpZmFpbGVkIHRvIGdldCBwZXJjZW50YWdlIHJlZHVjdGlvbiBmYWN0b3IEDG5ld0N1cnJlbnRNcgkAZQIFCWN1cnJlbnRNcgkAawMFCWN1cnJlbnRNcgUSbmV3cmVkdWN0aW9uRmFjdG9yAGQEBnN0b3JlMQkBEV93cml0ZUdsb2JhbFBhcmFtAgUDX01yBQxuZXdDdXJyZW50TXIEBnN0b3JlMgkBEV93cml0ZUdsb2JhbFBhcmFtAgUaX3BlcmNlbnRhZ2VSZWR1Y3Rpb25GYWN0b3IFEm5ld3JlZHVjdGlvbkZhY3RvcgQGc3RvcmUzCQERX3dyaXRlR2xvYmFsUGFyYW0CBRVfY2lyY3VsYXRpb25JbmNySW5kZXgFF25ld0NpcmN1bGF0aW9uSW5jckluZGV4CQCUCgIFDG5ld0N1cnJlbnRNcgkAzAgCBQZzdG9yZTEJAMwIAgUGc3RvcmUyCQDMCAIFBnN0b3JlMwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARJfdXBkYXRlR2xvYmFsRW50cnkEC3dhdmVzQW1vdW50CnN0YXdBbW91bnQGc3Rhd1BMCmluZGV4Q291bnQEGl9uZXdHbG9iYWxUb3RhbFdhdmVzQW10UmVmBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFDl90b3RhbFdhdmVzUmVmAwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAkAZAIFAXQFC3dhdmVzQW1vdW50CQACAQIgZmFpbGVkIHRvIGdldCBnbG9iYWwgdG90YWwgd2F2ZXMDCQAAAgUaX25ld0dsb2JhbFRvdGFsV2F2ZXNBbXRSZWYFGl9uZXdHbG9iYWxUb3RhbFdhdmVzQW10UmVmBBlfbmV3R2xvYmFsVG90YWxTdGF3TWludGVkBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFCl90b3RhbFN0YXcDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwCQBkAgUBdAUKc3Rhd0Ftb3VudAkAAgECJmZhaWxlZCB0byBnZXQgZ2xvYmFsIHRvdGFsIHN0YXcgbWludGVkAwkAAAIFGV9uZXdHbG9iYWxUb3RhbFN0YXdNaW50ZWQFGV9uZXdHbG9iYWxUb3RhbFN0YXdNaW50ZWQEFV9uZXdHbG9iYWxUb3RhbFN0YXdQTAQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQxfdG90YWxTdGF3TFADCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwCQBkAgUBdAUGc3Rhd1BMCQACAQIhZmFpbGVkIHRvIGdldCBnbG9iYWwgdG90YWwgc3Rhd3BsAwkAAAIFFV9uZXdHbG9iYWxUb3RhbFN0YXdQTAUVX25ld0dsb2JhbFRvdGFsU3Rhd1BMBBNfbmV3R2xvYmFJbmRleENvdW50BAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFEV9nbG9iYWxJbmRleENvdW50AwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAkAZAIFAXQFCmluZGV4Q291bnQJAAIBAiBmYWlsZWQgdG8gZ2V0IGdsb2JhbCBpbmRleCBjb3VudAMJAAACBRNfbmV3R2xvYmFJbmRleENvdW50BRNfbmV3R2xvYmFJbmRleENvdW50CQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFDl90b3RhbFdhdmVzUmVmBRpfbmV3R2xvYmFsVG90YWxXYXZlc0FtdFJlZgkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBQpfdG90YWxTdGF3BRlfbmV3R2xvYmFsVG90YWxTdGF3TWludGVkCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFDF90b3RhbFN0YXdMUAUVX25ld0dsb2JhbFRvdGFsU3Rhd1BMCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFEV9nbG9iYWxJbmRleENvdW50BRNfbmV3R2xvYmFJbmRleENvdW50BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BEl9yZWdpc3RlclVzZXJFbnRyeQ0NdHJhbnNhY3Rpb25JRAt1c2VyQWRkcmVzcwxsb2NrRHVyYXRpb24SbG9ja0R1cmF0aW9uSW5NaWxpCWxvY2tJbmRleAt3YXZlc0Ftb3VudApzdGF3QW1vdW50DHN0YXdMUEFtb3VudAxsb2NrQXRIZWlnaHQGbG9ja0lkC3RvdGFsTG9ja2VkD2xvY2FsSW5kZXhDb3VudApsZWFzZVN0YXRlBAhfdHhJZEtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUFX3R4SWQFA25pbAUDU0VQBBBfbG9ja0R1cmF0aW9uS2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQ1fbG9ja0R1cmF0aW9uBQNuaWwFA1NFUAQNX2xvY2tJbmRleEtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUKX2xvY2tJbmRleAUDbmlsBQNTRVAED193YXZlc0Ftb3VudEtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUMX3dhdmVzQW1vdW50BQNuaWwFA1NFUAQOX3N0YXdBbW91bnRLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFC19zdGF3QW1vdW50BQNuaWwFA1NFUAQQX3N0YXdMUEFtb3VudEtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUNX3N0YXdMUEFtb3VudAUDbmlsBQNTRVAEEF9sb2NrQXRIZWlnaHRLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFDV9sb2NrQXRIZWlnaHQFA25pbAUDU0VQBApfbG9ja0lkS2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQdfbG9ja0lkBQNuaWwFA1NFUAQPX3RvdGFsTG9ja2VkS2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUQX3VzZXJUb3RhbExvY2tlZAUDbmlsBQNTRVAEEl9sb2NhbExvY2tJbmRleEtleQkAuQkCCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFFF91c2VyTG9jYWxJbmRleENvdW50BQNuaWwFA1NFUAQXX2xvY2tQZXJpb2RJbk1pbGlTZWNLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFFF9sb2NrUGVyaW9kSW5NaWxpU2VjBQNuaWwFA1NFUAQVX3RvdGFsV2F2ZXNDbGFpbWVkS2V5CQC5CQIJAMwIAgULdXNlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBRJfdG90YWxXYXZlc0NsYWltZWQFA25pbAUDU0VQBBJfdXNlckxlYXNlU3RhdGVLZXkJALkJAgkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFD191c2VyTGVhc2VTdGF0ZQUDbmlsBQNTRVAECnRyeElkRW50cnkJALkJAgkAzAgCAgIlcwkAzAgCBQ10cmFuc2FjdGlvbklEBQNuaWwFA1NFUAQRbG9ja0R1cmF0aW9uRW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFDGxvY2tEdXJhdGlvbgUDbmlsBQNTRVAEDmxvY2tJbmRleEVudHJ5CQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBQlsb2NrSW5kZXgFA25pbAUDU0VQBBB3YXZlc0Ftb3VudEVudHJ5CQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBQt3YXZlc0Ftb3VudAUDbmlsBQNTRVAED3N0YXdBbW91bnRFbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQUKc3Rhd0Ftb3VudAUDbmlsBQNTRVAEEXN0YXdMUEFtb3VudEVudHJ5CQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBQxzdGF3TFBBbW91bnQFA25pbAUDU0VQBBFsb2NrQXRIZWlnaHRFbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQUMbG9ja0F0SGVpZ2h0BQNuaWwFA1NFUAQLbG9ja0lkRW50cnkJALkJAgkAzAgCAgIlYgkAzAgCBQZsb2NrSWQFA25pbAUDU0VQBBB0b3RhbExvY2tlZEVudHJ5CQC5CQIJAMwIAgICJWQJAMwIAgkApAMBBQt0b3RhbExvY2tlZAUDbmlsBQNTRVAEE3VzZXJMb2NhbEluZGV4RW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFD2xvY2FsSW5kZXhDb3VudAUDbmlsBQNTRVAEGGxvY2tQZXJpb2RJbk1pbGlTZWNFbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQUSbG9ja0R1cmF0aW9uSW5NaWxpBQNuaWwFA1NFUAQWdG90YWxXYXZlc0NsYWltZWRFbnRyeQkAuQkCCQDMCAICAiVkCQDMCAIJAKQDAQAABQNuaWwFA1NFUAQTdXNlckxlYXNlU3RhdGVFbnRyeQkAuQkCCQDMCAICAiVzCQDMCAIFCmxlYXNlU3RhdGUFA25pbAUDU0VQCQDMCAIJARFfd3JpdGVDb25zdFN0cmluZwIFCF90eElkS2V5BQp0cnhJZEVudHJ5CQDMCAIJARFfd3JpdGVDb25zdFN0cmluZwIFDV9sb2NrSW5kZXhLZXkFDmxvY2tJbmRleEVudHJ5CQDMCAIJAQlfd3JpdGVTdHICBRJfbG9jYWxMb2NrSW5kZXhLZXkFE3VzZXJMb2NhbEluZGV4RW50cnkJAMwIAgkBCV93cml0ZVN0cgIFD190b3RhbExvY2tlZEtleQUQdG90YWxMb2NrZWRFbnRyeQkAzAgCCQERX3dyaXRlQ29uc3RTdHJpbmcCBRBfbG9ja0R1cmF0aW9uS2V5BRFsb2NrRHVyYXRpb25FbnRyeQkAzAgCCQERX3dyaXRlQ29uc3RTdHJpbmcCBRdfbG9ja1BlcmlvZEluTWlsaVNlY0tleQUYbG9ja1BlcmlvZEluTWlsaVNlY0VudHJ5CQDMCAIJARFfd3JpdGVDb25zdFN0cmluZwIFD193YXZlc0Ftb3VudEtleQUQd2F2ZXNBbW91bnRFbnRyeQkAzAgCCQERX3dyaXRlQ29uc3RTdHJpbmcCBQ5fc3Rhd0Ftb3VudEtleQUPc3Rhd0Ftb3VudEVudHJ5CQDMCAIJAQlfd3JpdGVTdHICBRBfc3Rhd0xQQW1vdW50S2V5BRFzdGF3TFBBbW91bnRFbnRyeQkAzAgCCQEJX3dyaXRlU3RyAgUVX3RvdGFsV2F2ZXNDbGFpbWVkS2V5BRZ0b3RhbFdhdmVzQ2xhaW1lZEVudHJ5CQDMCAIJARFfd3JpdGVDb25zdFN0cmluZwIFEF9sb2NrQXRIZWlnaHRLZXkFEWxvY2tBdEhlaWdodEVudHJ5CQDMCAIJARFfd3JpdGVDb25zdFN0cmluZwIFCl9sb2NrSWRLZXkFC2xvY2tJZEVudHJ5CQDMCAIJAQlfd3JpdGVTdHICBRJfdXNlckxlYXNlU3RhdGVLZXkFE3VzZXJMZWFzZVN0YXRlRW50cnkFA25pbAEHX3N0YXdNRgIKbG9ja1BlcmlvZA9jb2xsYXRlcmFsV2F2ZXMEC19hZGp1c3RlZE1yCQEKX2NvbXB1dGVNcgAEA3JldAkAaAIJAGsDBQ1fdW5pdERlY2ltYWxzCQBoAgUDX0R0CAULX2FkanVzdGVkTXICXzEJAQRfUHB5AQUKbG9ja1BlcmlvZAUPY29sbGF0ZXJhbFdhdmVzAwkAAAIJAJADAQgFC19hZGp1c3RlZE1yAl8yAAAJAJQKAgUDcmV0BQNuaWwJAJQKAgUDcmV0CAULX2FkanVzdGVkTXICXzIBEl9lbWlzc2lvblJhdGVXYXZlcwIKbG9ja1BlcmlvZApjb2xsYXRlcmFsBA9leHRlbnNpb25GYWN0b3IJAGsDBQpsb2NrUGVyaW9kAA8ACgkAaAIJAGkCBQpjb2xsYXRlcmFsCQBlAgkAaAIFCmxvY2tQZXJpb2QFD2V4dGVuc2lvbkZhY3RvcgUKbG9ja1BlcmlvZAUDX0R0ARBfaW5jclRvdGFsU3Rhd0xQAQZhbW91bnQECW9sZFN0YXdMUAkBD190aHJvd09yUmV0dXJuSQIJAQVfZ2V0SQEFDF90b3RhbFN0YXdMUAIgY291bGQgbm90IGdldCB0aGUgcnVubmluZyBTdGF3TFAJAMwIAgkBCV93cml0ZUludAIFDF90b3RhbFN0YXdMUAkAZAIFCW9sZFN0YXdMUAUGYW1vdW50BQNuaWwBEF9kZWNyVG90YWxTdGF3TFABBmFtb3VudAQJb2xkU3Rhd0xQCQEPX3Rocm93T3JSZXR1cm5JAgkBBV9nZXRJAQUMX3RvdGFsU3Rhd0xQAiBjb3VsZCBub3QgZ2V0IHRoZSBydW5uaW5nIFN0YXdMUAkAzAgCCQEJX3dyaXRlSW50AgUMX3RvdGFsU3Rhd0xQCQBlAgUJb2xkU3Rhd0xQBQZhbW91bnQFA25pbAESX2luY3JUb3RhbFdhdmVzUmVmAQZhbW91bnQEC29sZFdhdmVzUmVmCQEPX3Rocm93T3JSZXR1cm5JAgkBBV9nZXRJAQUOX3RvdGFsV2F2ZXNSZWYCIGNvdWxkIG5vdCBnZXQgdG90YWwgbG9ja2VkIHdhdmVzCQDMCAIJAQlfd3JpdGVJbnQCBQ5fdG90YWxXYXZlc1JlZgkAZAIFC29sZFdhdmVzUmVmBQZhbW91bnQFA25pbAESX2RlY3JUb3RhbFdhdmVzUmVmAQZhbW91bnQEC29sZFdhdmVzUmVmCQEPX3Rocm93T3JSZXR1cm5JAgkBBV9nZXRJAQUOX3RvdGFsV2F2ZXNSZWYCIGNvdWxkIG5vdCBnZXQgdG90YWwgbG9ja2VkIHdhdmVzCQDMCAIJAQlfd3JpdGVJbnQCBQ5fdG90YWxXYXZlc1JlZgkAZQIFC29sZFdhdmVzUmVmBQZhbW91bnQFA25pbAEQX2dldE5ld1RpbWVTdGFtcAELYmxvY2tIZWlnaHQEBHRpbWUEByRtYXRjaDAJAO0HAQULYmxvY2tIZWlnaHQDCQABAgUHJG1hdGNoMAIJQmxvY2tJbmZvBAh0aW1lSW5mbwUHJG1hdGNoMAgFCHRpbWVJbmZvCXRpbWVzdGFtcAkAAgECFGNvdW5sZCBnZXQgdGltZXN0YW1wBQR0aW1lBgFpAQtnZXRFbWlzc2lvbgIKbG9ja1BlcmlvZApjb2xsYXRlcmFsBAZjaGVjazEJAQxfb25seU1hbmFnZXIBBQFpAwkAAAIFBmNoZWNrMQUGY2hlY2sxCQCUCgIFA25pbAkBEl9lbWlzc2lvblJhdGVXYXZlcwIFCmxvY2tQZXJpb2QFCmNvbGxhdGVyYWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEEaW5pdAQHbWFuYWdlcgNkZngHYXNzZXRJRAlsZWFzZU5vZGUEFG1hbmFnZXJBbHJlYWR5RXhpc3RzAwkBCWlzRGVmaW5lZAEJAQVfZ2V0UwEFCF9tYW5hZ2VyCQEMX29ubHlNYW5hZ2VyAQUBaQYDCQAAAgUUbWFuYWdlckFscmVhZHlFeGlzdHMFFG1hbmFnZXJBbHJlYWR5RXhpc3RzBAZjaGVjazEJARBfdmFsaWRhdGVBZGRyZXNzAQUHbWFuYWdlcgMJAAACBQZjaGVjazEFBmNoZWNrMQQGY2hlY2syCQEQX3ZhbGlkYXRlQWRkcmVzcwEFA2RmeAMJAAACBQZjaGVjazIFBmNoZWNrMgQGY2hlY2szCQEQX3ZhbGlkYXRlQWRkcmVzcwEFCWxlYXNlTm9kZQMJAAACBQZjaGVjazMFBmNoZWNrMwQGY2hlY2s0CQEOX3ZhbGlkYXRlQXNzZXQBBQdhc3NldElEAwkAAAIFBmNoZWNrNAUGY2hlY2s0BBBjaXJjdWxhdGlvbkluZGV4CQEMX3NldFBhcmFtVmFsAgUVX2NpcmN1bGF0aW9uSW5jckluZGV4AAAEF3BlcmNlbnRhZ2VSZWR1Y3Rpb25Jbk1yCQEMX3NldFBhcmFtVmFsAgUaX3BlcmNlbnRhZ2VSZWR1Y3Rpb25GYWN0b3IAAAQCTXIJAQxfc2V0UGFyYW1WYWwCBQNfTXIFDV91bml0RGVjaW1hbHMED3RvdGFsU3Rhd01pbnRlZAkBDF9zZXRQYXJhbVZhbAIFCl90b3RhbFN0YXcAAAQYdG90YWxTdGF3TFBJbkNpcmN1bGF0aW9uCQEMX3NldFBhcmFtVmFsAgUMX3RvdGFsU3Rhd0xQAAAEEGdsb2JhbEluZGV4Q291bnQJAQxfc2V0UGFyYW1WYWwCBRFfZ2xvYmFsSW5kZXhDb3VudAAABA10b3RhbFdhdmVzUmVmCQEMX3NldFBhcmFtVmFsAgUOX3RvdGFsV2F2ZXNSZWYAAAkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBQhfbWFuYWdlcgUHbWFuYWdlcgkAzAgCCQERX3dyaXRlR2xvYmFsUGFyYW0CBQRfRGZ4BQNkZngJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUMX3N0YXdBc3NldElkBQdhc3NldElECQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFDl9sZXNzZWVBZGRyZXNzBQlsZWFzZU5vZGUJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUVX2NpcmN1bGF0aW9uSW5jckluZGV4BRBjaXJjdWxhdGlvbkluZGV4CQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFA19NcgUCTXIJAMwIAgkBEV93cml0ZUdsb2JhbFBhcmFtAgUaX3BlcmNlbnRhZ2VSZWR1Y3Rpb25GYWN0b3IFF3BlcmNlbnRhZ2VSZWR1Y3Rpb25Jbk1yCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFDl90b3RhbFdhdmVzUmVmBQ10b3RhbFdhdmVzUmVmCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFDF90b3RhbFN0YXdMUAUYdG90YWxTdGF3TFBJbkNpcmN1bGF0aW9uCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFCl90b3RhbFN0YXcFD3RvdGFsU3Rhd01pbnRlZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEm1vZGlmeUdsb2JhbFBhcmFtcwEDdmFsBAZjaGVjazEJAQxfb25seU1hbmFnZXIBBQFpAwkAAAIFBmNoZWNrMQUGY2hlY2sxBAZjaGVjazIJAQhfdGhyb3dJZgIJAAACCQCQAwEFA3ZhbAACAiJbZ2xvYmFsX2tleSwgdmFsdWVdIHBhaXJzIGV4cGVjdGVkAwkAAAIFBmNoZWNrMgUGY2hlY2syBANrZXkJAJEDAgUDdmFsAAAEB3ZhbFR5cGUJALYJAQkAkQMCBQN2YWwAAQQHJG1hdGNoMAUHdmFsVHlwZQMJAAECBQckbWF0Y2gwAgNJbnQEAXgFByRtYXRjaDAEC3ZhbGlkYXRlS2V5CQEIX3Rocm93SWYCCQAAAgkBBV9nZXRTAQUDa2V5BQR1bml0CQCsAgIJAKwCAgIEa2V5IAUDa2V5Ag8gbm90IHJlY29nbml6ZWQDCQAAAgULdmFsaWRhdGVLZXkFC3ZhbGlkYXRlS2V5CQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFA2tleQUBeAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAQIFByRtYXRjaDACBFVuaXQEAXgFByRtYXRjaDAEC3ZhbGlkYXRlS2V5CQEIX3Rocm93SWYCCQAAAgkBBV9nZXRTAQUDa2V5BQR1bml0CQCsAgIJAKwCAgIEa2V5IAUDa2V5Ag8gbm90IHJlY29nbml6ZWQDCQAAAgULdmFsaWRhdGVLZXkFC3ZhbGlkYXRlS2V5BAtzdHJpbmdWYWx1ZQkAkQMCBQN2YWwAAQQKcmVmQWRkcmVzcwkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQhfbWFuYWdlcgQGY2hlY2s0BAckbWF0Y2gxBQpyZWZBZGRyZXNzAwkAAQIFByRtYXRjaDECBlN0cmluZwQHc3RyVHlwZQUHJG1hdGNoMQMJAAACCQCxAgEFB3N0clR5cGUJALECAQULc3RyaW5nVmFsdWUJARBfdmFsaWRhdGVBZGRyZXNzAQULc3RyaW5nVmFsdWUJAQ5fdmFsaWRhdGVBc3NldAEFC3N0cmluZ1ZhbHVlCQACAQIYdmFsdWUgdHlwZSBub3Qgc3VwcG9ydGVkAwkAAAIFBmNoZWNrNAUGY2hlY2s0CQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFA2tleQULc3RyaW5nVmFsdWUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgEJAKwCAgIRZmFpbGVkIHRvIG1vZGlmeSAJAJEDAgUDdmFsAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKcmV2b2tlTG9jawAEBmNoZWNrMQkBDF9vbmx5TWFuYWdlcgEFAWkDCQAAAgUGY2hlY2sxBQZjaGVjazEFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVjbGFpbQENdHJhbnNhY3Rpb25JRAQNY2FsbGVyQWRkcmVzcwkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBA1jb2xsYXRlcmFsS2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFDF93YXZlc0Ftb3VudAUDbmlsBQNTRVAEDWxvY2twZXJpb2RLZXkJALkJAgkAzAgCBQ1jYWxsZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUNX2xvY2tEdXJhdGlvbgUDbmlsBQNTRVAECWxvY2tJZEtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQdfbG9ja0lkBQNuaWwFA1NFUAQTbG9ja3BlcmlvZEluTWlsaUtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBRRfbG9ja1BlcmlvZEluTWlsaVNlYwUDbmlsBQNTRVAEFHRvdGFsV2F2ZXNDbGFpbWVkS2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFEl90b3RhbFdhdmVzQ2xhaW1lZAUDbmlsBQNTRVAED3N0YXdMUEFtb3VudEtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQ1fc3Rhd0xQQW1vdW50BQNuaWwFA1NFUAQOd2F2ZXNBbW91bnRLZXkJALkJAgkAzAgCBQ1jYWxsZXJBZGRyZXNzCQDMCAIFDXRyYW5zYWN0aW9uSUQJAMwIAgUMX3dhdmVzQW1vdW50BQNuaWwFA1NFUAQXdXNlclRvdGFsV2F2ZXNMb2NrZWRLZXkJALkJAgkAzAgCBQ1jYWxsZXJBZGRyZXNzCQDMCAIFEF91c2VyVG90YWxMb2NrZWQFA25pbAUDU0VQBBF1c2VyTGVhc2VTdGF0ZUtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUNdHJhbnNhY3Rpb25JRAkAzAgCBQ9fdXNlckxlYXNlU3RhdGUFA25pbAUDU0VQBA1sZWFzZVN0YXRlS2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBQ10cmFuc2FjdGlvbklECQDMCAIFD191c2VyTGVhc2VTdGF0ZQUDbmlsBQNTRVAEDmdsb2JhbFdhdmVzUmVmBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFDl90b3RhbFdhdmVzUmVmAwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAUBdAkAAgECIGZhaWxlZCB0byBnZXQgZ2xvYmFsIHRvdGFsIHdhdmVzAwkAAAIFDmdsb2JhbFdhdmVzUmVmBQ5nbG9iYWxXYXZlc1JlZgQMZ2xvYmFsU3Rhd1BMBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFDF90b3RhbFN0YXdMUAMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAiBmYWlsZWQgdG8gZ2V0IGdsb2JhbCB0b3RhbCB3YXZlcwMJAAACBQxnbG9iYWxTdGF3UEwFDGdsb2JhbFN0YXdQTAQGbG9ja0lkBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFCWxvY2tJZEtleQMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAF0BQckbWF0Y2gwBQF0CQACAQIWZmFpbGVkIHRvIGdldCBsZWFzZSBpZAMJAAACBQZsb2NrSWQFBmxvY2tJZAQUdXNlclRvdGFsV2F2ZXNMb2NrZWQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUXdXNlclRvdGFsV2F2ZXNMb2NrZWRLZXkDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQIwZmFpbGVkIHRvIGdldCB0b3RhbCB3YXZlcyBsb2NrZWQgYnkgdGhpcyBhZGRyZXNzAwkAAAIFFHVzZXJUb3RhbFdhdmVzTG9ja2VkBRR1c2VyVG90YWxXYXZlc0xvY2tlZAQLd2F2ZXNBbW91bnQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUOd2F2ZXNBbW91bnRLZXkDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQIgZmFpbGVkIHRvIGdldCB0b3RhbCB3YXZlcyBsb2NrZWQDCQAAAgULd2F2ZXNBbW91bnQFC3dhdmVzQW1vdW50BBF0b3RhbFdhdmVzQ2xhaW1lZAQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBRR0b3RhbFdhdmVzQ2xhaW1lZEtleQMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAiFmYWlsZWQgdG8gZ2V0IHRvdGFsIHdhdmVzIGNsYWltZWQDCQAAAgURdG90YWxXYXZlc0NsYWltZWQFEXRvdGFsV2F2ZXNDbGFpbWVkBAxzdGF3TFBBbW91bnQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUPc3Rhd0xQQW1vdW50S2V5AwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAUBdAkAAgECFGZhaWxlZCB0byBnZXQgc3Rhd1BMAwkAAAIFDHN0YXdMUEFtb3VudAUMc3Rhd0xQQW1vdW50BBBsb2NrUGVyaW9kSW5NaWxpBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFE2xvY2twZXJpb2RJbk1pbGlLZXkDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwBQF0CQACAQIiZmFpbGVkIHRvIGdldCBsb2NrIHBlcmlvZCB0aW1lc3BhbQMJAAACBRBsb2NrUGVyaW9kSW5NaWxpBRBsb2NrUGVyaW9kSW5NaWxpBBBjdXJyZW50VGltZVN0YW1wBAckbWF0Y2gwCQEQX2dldE5ld1RpbWVTdGFtcAEFBmhlaWdodAMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAh9mYWlsZWQgdG8gZ2V0IGN1cnJlbnQgdGltZXN0YW1wAwkAAAIFEGN1cnJlbnRUaW1lU3RhbXAFEGN1cnJlbnRUaW1lU3RhbXAECmNvbGxhdGVyYWwEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUNY29sbGF0ZXJhbEtleQMJAAECBQckbWF0Y2gwAgNJbnQEAXQFByRtYXRjaDAFAXQJAAIBAhhmYWlsZWQgdG8gZ2V0IGNvbGxhdGVyYWwDCQAAAgUKY29sbGF0ZXJhbAUKY29sbGF0ZXJhbAQKbG9ja1BlcmlvZAQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQ1sb2NrcGVyaW9kS2V5AwkAAQIFByRtYXRjaDACA0ludAQBdAUHJG1hdGNoMAUBdAkAAgECGGZhaWxlZCB0byBnZXQgbG9ja1BlcmlvZAMJAAACBQpsb2NrUGVyaW9kBQpsb2NrUGVyaW9kBBFjdXJyZW50TGVhc2VTdGF0ZQQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBRF1c2VyTGVhc2VTdGF0ZUtleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXQFByRtYXRjaDAFAXQJAAIBAhlmYWlsZWQgdG8gZ2V0IGxlYXNlIHN0YXRlAwkAAAIFEWN1cnJlbnRMZWFzZVN0YXRlBRFjdXJyZW50TGVhc2VTdGF0ZQQKbGVhc2VTdGF0ZQQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQ1sZWFzZVN0YXRlS2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBdAUHJG1hdGNoMAUBdAkAAgECImZhaWxlZCB0byBnZXQgbGVhc2Ugc3RhdGUgZm9yIHVzZXIDCQAAAgUKbGVhc2VTdGF0ZQUKbGVhc2VTdGF0ZQQGY2hlY2sxCQEIX3Rocm93SWYCCQBmAgUQbG9ja1BlcmlvZEluTWlsaQUQY3VycmVudFRpbWVTdGFtcAIqbG9jayBwZXJpb2QgZm9yIHRoaXMgZW50cnkgaGFzIG5vdCBlbGFwc2VkAwkAAAIFBmNoZWNrMQUGY2hlY2sxBAtsZWFzZUFjdGlvbgMJAAACBRFjdXJyZW50TGVhc2VTdGF0ZQIGbGVhc2VkCQCUCgIJAQtMZWFzZUNhbmNlbAEFBmxvY2tJZAkBCV93cml0ZVN0cgIFEXVzZXJMZWFzZVN0YXRlS2V5AgljYW5jZWxsZWQJAJQKAgkBCV93cml0ZVN0cgIFEXVzZXJMZWFzZVN0YXRlS2V5AgljYW5jZWxsZWQJAQlfd3JpdGVTdHICBRF1c2VyTGVhc2VTdGF0ZUtleQIJY2FuY2VsbGVkAwkAAAIFC2xlYXNlQWN0aW9uBQtsZWFzZUFjdGlvbgQGY2hlY2syCQEIX3Rocm93SWYCAwkAAAIAAAULd2F2ZXNBbW91bnQGCQAAAgAABQxzdGF3TFBBbW91bnQCIWFsbCBjbGFpbXMgZXhoYXVzdGVkIGZvciB0aGlzIHRyeAMJAAACBQZjaGVjazIFBmNoZWNrMgQSZW1pc3Npb25WYWx1ZVBlckRUCQBoAgkBEl9lbWlzc2lvblJhdGVXYXZlcwIFCmxvY2tQZXJpb2QFCmNvbGxhdGVyYWwFA19EdAQLY2xhaW1BY3Rpb24EDXRpbWVTdGFtcERpZmYJAGUCBRBjdXJyZW50VGltZVN0YW1wBRBsb2NrUGVyaW9kSW5NaWxpBBpkYXlzQWZ0ZXJMb2NrUGVyaW9kRWxhc3BlZAkAaQIFDXRpbWVTdGFtcERpZmYFA19EdAMJAAACBRpkYXlzQWZ0ZXJMb2NrUGVyaW9kRWxhc3BlZAAACQACAQIibGVzcyB0aGFuIDI0aHJzIGJlZm9yZSBmaXJzdCBjbGFpbQMJAQIhPQIJAGoCBQ10aW1lU3RhbXBEaWZmBQNfRHQAAAkAAgECNGFscmVhZHkgY2xhaW1lZCBvciBsZXNzIHRoYW4gMjRocnMgYmVmb3JlIG5leHQgY2xhaW0DCQBmAgUaZGF5c0FmdGVyTG9ja1BlcmlvZEVsYXNwZWQFCmxvY2tQZXJpb2QJAAIBAhRhbGwgY2xhaW1zIGV4aGF1c3RlZAQUdG90YWxBbW91bnRDbGFpbWFibGUJAGgCBRpkYXlzQWZ0ZXJMb2NrUGVyaW9kRWxhc3BlZAUSZW1pc3Npb25WYWx1ZVBlckRUBAhjaGVjazNfMQkBCF90aHJvd0lmAgkAAAIFFHRvdGFsQW1vdW50Q2xhaW1hYmxlBRF0b3RhbFdhdmVzQ2xhaW1lZAIcY2FuIG9ubHkgY2xhaW0gb25jZSBpbiAyNGhycwMJAAACBQhjaGVjazNfMQUIY2hlY2szXzEECGNoZWNrM18yCQEIX3Rocm93SWYCCQBmAgkAZAIFFHRvdGFsQW1vdW50Q2xhaW1hYmxlBRF0b3RhbFdhdmVzQ2xhaW1lZAULd2F2ZXNBbW91bnQCFGFsbCBjbGFpbXMgZXhoYXVzdGVkAwkAAAIFCGNoZWNrM18yBQhjaGVjazNfMgQRY2xhaW1BbW91bnRUb1NlbmQDCQAAAgUaZGF5c0FmdGVyTG9ja1BlcmlvZEVsYXNwZWQAAQUUdG90YWxBbW91bnRDbGFpbWFibGUJAGUCBRR0b3RhbEFtb3VudENsYWltYWJsZQURdG90YWxXYXZlc0NsYWltZWQEEm5ld1RvdGFsV2F2ZXNDbGFpbQUUdG90YWxBbW91bnRDbGFpbWFibGUEDm5ld1dhdmVzQW1vdW50AwkAAAIFGmRheXNBZnRlckxvY2tQZXJpb2RFbGFzcGVkAAEJAGUCBQt3YXZlc0Ftb3VudAUUdG90YWxBbW91bnRDbGFpbWFibGUJAGUCBQt3YXZlc0Ftb3VudAkAZQIFFHRvdGFsQW1vdW50Q2xhaW1hYmxlBRF0b3RhbFdhdmVzQ2xhaW1lZAQPbmV3U3Rhd0xQQW1vdW50AwkAAAIFGmRheXNBZnRlckxvY2tQZXJpb2RFbGFzcGVkAAEJAGUCBQxzdGF3TFBBbW91bnQFFHRvdGFsQW1vdW50Q2xhaW1hYmxlCQBlAgUMc3Rhd0xQQW1vdW50CQBlAgUUdG90YWxBbW91bnRDbGFpbWFibGUFEXRvdGFsV2F2ZXNDbGFpbWVkBBBuZXdHbG9iYWxXYXZlUmVmCQBlAgUOZ2xvYmFsV2F2ZXNSZWYFDm5ld1dhdmVzQW1vdW50BA9uZXdHbG9iYWxTdGF3UEwJAGUCBQxnbG9iYWxTdGF3UEwFD25ld1N0YXdMUEFtb3VudAQXbmV3VXNlclRvdGFsV2F2ZXNMb2NrZWQJAGUCBRR1c2VyVG90YWxXYXZlc0xvY2tlZAURY2xhaW1BbW91bnRUb1NlbmQEEHdhdmVzQW1vdW50RW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFDm5ld1dhdmVzQW1vdW50BQNuaWwFA1NFUAQRc3Rhd0xQQW1vdW50RW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFD25ld1N0YXdMUEFtb3VudAUDbmlsBQNTRVAEFnRvdGFsV2F2ZXNDbGFpbWVkRW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFEm5ld1RvdGFsV2F2ZXNDbGFpbQUDbmlsBQNTRVAEHG5ld1VzZXJUb3RhbFdhdmVzTG9ja2VkRW50cnkJALkJAgkAzAgCAgIlZAkAzAgCCQCkAwEFF25ld1VzZXJUb3RhbFdhdmVzTG9ja2VkBQNuaWwFA1NFUAkAzAgCCAULbGVhc2VBY3Rpb24CXzEJAMwIAggFC2xlYXNlQWN0aW9uAl8yCQDMCAIJAQlfd3JpdGVTdHICBQ53YXZlc0Ftb3VudEtleQUQd2F2ZXNBbW91bnRFbnRyeQkAzAgCCQEJX3dyaXRlU3RyAgUPc3Rhd0xQQW1vdW50S2V5BRFzdGF3TFBBbW91bnRFbnRyeQkAzAgCCQEJX3dyaXRlU3RyAgUUdG90YWxXYXZlc0NsYWltZWRLZXkFFnRvdGFsV2F2ZXNDbGFpbWVkRW50cnkJAMwIAgkBCV93cml0ZVN0cgIFF3VzZXJUb3RhbFdhdmVzTG9ja2VkS2V5BRxuZXdVc2VyVG90YWxXYXZlc0xvY2tlZEVudHJ5CQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFDl90b3RhbFdhdmVzUmVmBRBuZXdHbG9iYWxXYXZlUmVmCQDMCAIJARFfd3JpdGVHbG9iYWxQYXJhbQIFDF90b3RhbFN0YXdMUAUPbmV3R2xvYmFsU3Rhd1BMCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQgIBQFpBmNhbGxlcgVieXRlcwURY2xhaW1BbW91bnRUb1NlbmQFBHVuaXQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgMJAAACBQtjbGFpbUFjdGlvbgULY2xhaW1BY3Rpb24FC2NsYWltQWN0aW9uCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCG1pbnRTdGF3AQpsb2NrUGVyaW9kBA1jYWxsZXJBZGRyZXNzCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEBXRyeElECQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEBmNoZWNrMQkBCF90aHJvd0lmAgkBAiE9AgABCQCQAwEIBQFpCHBheW1lbnRzAhRubyBwYXltZW50cyBhdHRhY2hlZAMJAAACBQZjaGVjazEFBmNoZWNrMQQGY2hlY2syAwkBCWlzRGVmaW5lZAEICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkAAgECFG9ubHkgd2F2ZXMgc3VwcG9ydGVkBgMJAAACBQZjaGVjazIFBmNoZWNrMgQNYW1vdW50SW5XYXZlcwgJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQEBmNoZWNrMwMDCQBmAgUOX21pbkxvY2tBbW91bnQFDWFtb3VudEluV2F2ZXMGCQBmAgUNYW1vdW50SW5XYXZlcwUOX21heExvY2tBbW91bnQJAAIBAh5hbW91bnQgdG8gbG9jayBpcyBvdXQgb2YgcmFuZ2UGAwkAAAIFBmNoZWNrMwUGY2hlY2szBAZjaGVjazQDCQBmAgUOX21pbkxvY2twZXJpb2QFCmxvY2tQZXJpb2QJAAIBAh5taW5pbXVtIG9mIDE0IGRheXMgbG9jayBwZXJpb2QGAwkAAAIFBmNoZWNrNAUGY2hlY2s0BA10b3RhbFN0YXdNaW50CQEHX3N0YXdNRgIFCmxvY2tQZXJpb2QFDWFtb3VudEluV2F2ZXMEBnN0YXdQTAUNYW1vdW50SW5XYXZlcwQDZmVlCQBrAwgFDXRvdGFsU3Rhd01pbnQCXzEACgBkBBF1c2VyR2V0U3Rhd0Ftb3VudAkAZQIIBQ10b3RhbFN0YXdNaW50Al8xBQNmZWUEE2xvY2tQZXJpb2RUb01pbGlzZWMJAGQCCQEQX2dldE5ld1RpbWVTdGFtcAEFBmhlaWdodAkBDl9kYXlzVG9NaWxpU2VjAQUKbG9ja1BlcmlvZAMJAAACBRNsb2NrUGVyaW9kVG9NaWxpc2VjBRNsb2NrUGVyaW9kVG9NaWxpc2VjBAluZXdfaW5kZXgEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQURX2dsb2JhbEluZGV4Q291bnQDCQABAgUHJG1hdGNoMAIDSW50BAF0BQckbWF0Y2gwCQBkAgUBdAABCQACAQIoZmFpbGVkIHRvIGdldCBjdXJyZW50IGdsb2JhbCBpbmRleCBjb3VudAMJAAACBQluZXdfaW5kZXgFCW5ld19pbmRleAQKYWRkcmVzc0ZlZQQHJG1hdGNoMAkBFl9nZXRSZWdpc3RyeUVudHJ5VmFsdWUBBQRfRGZ4AwkAAQIFByRtYXRjaDACBlN0cmluZwQBdAUHJG1hdGNoMAkBB0FkZHJlc3MBCQDZBAEFAXQJAAIBAhlmYWlsZWQgdG8gZ2V0IGRmeCBhZGRyZXNzAwkAAAIFCmFkZHJlc3NGZWUFCmFkZHJlc3NGZWUEC3N0YXdBc3NldElkBAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFDF9zdGF3QXNzZXRJZAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXQFByRtYXRjaDAJANkEAQUBdAkAAgECFmZhaWxlZCB0byBnZXQgYXNzZXQgaWQDCQAAAgULc3Rhd0Fzc2V0SWQFC3N0YXdBc3NldElkBAZsZXNzZWUEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUOX2xlc3NlZUFkZHJlc3MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAF0BQckbWF0Y2gwCQEHQWRkcmVzcwEJANkEAQUBdAkAAgECIGZhaWxlZCB0byBnZXQgbGVhc2Ugbm9kZSBhZGRyZXNzAwkAAAIFBmxlc3NlZQUGbGVzc2VlBBB1c2VyTG9ja0luZGV4S2V5CQC5CQIJAMwIAgUNY2FsbGVyQWRkcmVzcwkAzAgCBRRfdXNlckxvY2FsSW5kZXhDb3VudAUDbmlsBQNTRVAEEnVzZXJUb3RhbExvY2tlZEtleQkAuQkCCQDMCAIFDWNhbGxlckFkZHJlc3MJAMwIAgUQX3VzZXJUb3RhbExvY2tlZAUDbmlsBQNTRVAEDnVzZXJJbmRleENvdW50BAckbWF0Y2gwCQEWX2dldFJlZ2lzdHJ5RW50cnlWYWx1ZQEFEHVzZXJMb2NrSW5kZXhLZXkDCQABAgUHJG1hdGNoMAIDSW50BAF4BQckbWF0Y2gwCQBkAgUBeAABAAADCQAAAgUOdXNlckluZGV4Q291bnQFDnVzZXJJbmRleENvdW50BA91c2VyVG90YWxMb2NrZWQEByRtYXRjaDAJARZfZ2V0UmVnaXN0cnlFbnRyeVZhbHVlAQUSdXNlclRvdGFsTG9ja2VkS2V5AwkAAQIFByRtYXRjaDACA0ludAQBeAUHJG1hdGNoMAkAZAIFAXgFDWFtb3VudEluV2F2ZXMFDWFtb3VudEluV2F2ZXMDCQAAAgUPdXNlclRvdGFsTG9ja2VkBQ91c2VyVG90YWxMb2NrZWQECGxlYXNlT3V0CQDECAIFBmxlc3NlZQUNYW1vdW50SW5XYXZlcwMJAAACBQhsZWFzZU91dAUIbGVhc2VPdXQECmxlYXNlSWRTdHIJANgEAQkAuQgBBQhsZWFzZU91dAMJAAACBQpsZWFzZUlkU3RyBQpsZWFzZUlkU3RyCQDOCAIJAM4IAgkAzggCCQDMCAIFCGxlYXNlT3V0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFCmFkZHJlc3NGZWUFA2ZlZQULc3Rhd0Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCAgFAWkGY2FsbGVyBWJ5dGVzBRF1c2VyR2V0U3Rhd0Ftb3VudAULc3Rhd0Fzc2V0SWQFA25pbAkBEl9yZWdpc3RlclVzZXJFbnRyeQ0FBXRyeElEBQ1jYWxsZXJBZGRyZXNzBQpsb2NrUGVyaW9kBRNsb2NrUGVyaW9kVG9NaWxpc2VjBQluZXdfaW5kZXgFDWFtb3VudEluV2F2ZXMFEXVzZXJHZXRTdGF3QW1vdW50BQZzdGF3UEwFBmhlaWdodAUKbGVhc2VJZFN0cgUPdXNlclRvdGFsTG9ja2VkBQ51c2VySW5kZXhDb3VudAIGbGVhc2VkCQESX3VwZGF0ZUdsb2JhbEVudHJ5BAUNYW1vdW50SW5XYXZlcwgFDXRvdGFsU3Rhd01pbnQCXzEFBnN0YXdQTAUJbmV3X2luZGV4CAUNdG90YWxTdGF3TWludAJfMgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgDpbpbR", "height": 2491010, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DkzqNhTbpDMrYdbm57RpNJ5NLFCRQrNY5MN7g8ax7WLw Next: 2Y5fE3w6FSjy1SG9CXx26u6JxYiqDTM2Pd6RZP5Nn4VA Diff:
OldNewDifferences
337337 else throw("failed to get miniting rate")
338338 }
339339 if ((aJ == aE))
340- then aK
340+ then $Tuple2(aK, nil)
341341 else {
342342 let aL = {
343343 let U = ai(k)
349349 else throw("failed to get percentage reduction factor")
350350 }
351351 let aM = (aK - fraction(aK, aL, 100))
352- let aN = aa(l, aM)
353- if ((aN == aN))
354- then {
355- let aO = aa(k, aL)
356- if ((aO == aO))
357- then {
358- let aP = aa(p, aJ)
359- if ((aP == aP))
360- then aM
361- else throw("Strict value is not equal to itself.")
362- }
363- else throw("Strict value is not equal to itself.")
364- }
365- else throw("Strict value is not equal to itself.")
352+ let aN = af(l, aM)
353+ let aO = af(k, aL)
354+ let aP = af(p, aJ)
355+ $Tuple2(aM, [aN, aO, aP])
366356 }
367357 }
368358 else throw("Strict value is not equal to itself.")
459449
460450 func bL (h,bM) = {
461451 let bN = aD()
462- (fraction(c, (f * bN), g(h)) * bM)
452+ let bO = (fraction(c, (f * bN._1), g(h)) * bM)
453+ if ((size(bN._2) == 0))
454+ then $Tuple2(bO, nil)
455+ else $Tuple2(bO, bN._2)
463456 }
464457
465458
466-func bO (h,bP) = {
467- let bQ = fraction(h, 15, 10)
468- ((bP / ((h * bQ) - h)) * f)
459+func bP (h,bQ) = {
460+ let bR = fraction(h, 15, 10)
461+ ((bQ / ((h * bR) - h)) * f)
469462 }
470463
471464
472-func bR (bS) = {
473- let bT = Y(L(J), "could not get the running StawLP")
474-[aa(J, (bT + bS))]
465+func bS (bT) = {
466+ let bU = Y(L(J), "could not get the running StawLP")
467+[aa(J, (bU + bT))]
475468 }
476469
477470
478-func bU (bS) = {
479- let bT = Y(L(J), "could not get the running StawLP")
480-[aa(J, (bT - bS))]
471+func bV (bT) = {
472+ let bU = Y(L(J), "could not get the running StawLP")
473+[aa(J, (bU - bT))]
481474 }
482475
483476
484-func bV (bS) = {
485- let bW = Y(L(I), "could not get total locked waves")
486-[aa(I, (bW + bS))]
477+func bW (bT) = {
478+ let bX = Y(L(I), "could not get total locked waves")
479+[aa(I, (bX + bT))]
487480 }
488481
489482
490-func bX (bS) = {
491- let bW = Y(L(I), "could not get total locked waves")
492-[aa(I, (bW - bS))]
483+func bY (bT) = {
484+ let bX = Y(L(I), "could not get total locked waves")
485+[aa(I, (bX - bT))]
493486 }
494487
495488
496-func bY (bZ) = {
497- let ca = {
498- let U = blockInfoByHeight(bZ)
489+func bZ (ca) = {
490+ let cb = {
491+ let U = blockInfoByHeight(ca)
499492 if ($isInstanceOf(U, "BlockInfo"))
500493 then {
501- let cb = U
502- cb.timestamp
494+ let cc = U
495+ cc.timestamp
503496 }
504497 else throw("counld get timestamp")
505498 }
506- ca
499+ cb
507500 }
508501
509502
510503 @Callable(at)
511-func getEmission (h,bP) = {
512- let cc = as(at)
513- if ((cc == cc))
514- then $Tuple2(nil, bO(h, bP))
504+func getEmission (h,bQ) = {
505+ let cd = as(at)
506+ if ((cd == cd))
507+ then $Tuple2(nil, bP(h, bQ))
515508 else throw("Strict value is not equal to itself.")
516509 }
517510
518511
519512
520513 @Callable(at)
521-func init (au,cd,aB,ce) = {
522- let cf = if (isDefined(N(n)))
514+func init (au,ce,aB,cf) = {
515+ let cg = if (isDefined(N(n)))
523516 then as(at)
524517 else true
525- if ((cf == cf))
518+ if ((cg == cg))
526519 then {
527- let cc = aw(au)
528- if ((cc == cc))
520+ let cd = aw(au)
521+ if ((cd == cd))
529522 then {
530- let cg = aw(cd)
531- if ((cg == cg))
523+ let ch = aw(ce)
524+ if ((ch == ch))
532525 then {
533- let ch = aw(ce)
534- if ((ch == ch))
526+ let ci = aw(cf)
527+ if ((ci == ci))
535528 then {
536- let ci = aA(aB)
537- if ((ci == ci))
529+ let cj = aA(aB)
530+ if ((cj == cj))
538531 then {
539- let cj = S(p, 0)
540- let ck = S(k, 0)
541- let cl = S(l, c)
542- let cm = S(H, 0)
543- let cn = S(J, 0)
544- let co = S(K, 0)
545- let cp = S(I, 0)
546-[af(n, au), af(o, cd), af(m, aB), af(q, ce), af(p, cj), af(l, cl), af(k, ck), af(I, cp), af(J, cn), af(H, cm)]
532+ let ck = S(p, 0)
533+ let cl = S(k, 0)
534+ let cm = S(l, c)
535+ let cn = S(H, 0)
536+ let co = S(J, 0)
537+ let cp = S(K, 0)
538+ let cq = S(I, 0)
539+[af(n, au), af(o, ce), af(m, aB), af(q, cf), af(p, ck), af(l, cm), af(k, cl), af(I, cq), af(J, co), af(H, cn)]
547540 }
548541 else throw("Strict value is not equal to itself.")
549542 }
560553
561554 @Callable(at)
562555 func modifyGlobalParams (W) = {
563- let cc = as(at)
564- if ((cc == cc))
556+ let cd = as(at)
557+ if ((cd == cd))
565558 then {
566- let cg = ad((size(W) == 2), "[global_key, value] pairs expected")
567- if ((cg == cg))
559+ let ch = ad((size(W) == 2), "[global_key, value] pairs expected")
560+ if ((ch == ch))
568561 then {
569562 let M = W[0]
570- let cq = parseInt(W[1])
571- let U = cq
563+ let cr = parseInt(W[1])
564+ let U = cr
572565 if ($isInstanceOf(U, "Int"))
573566 then {
574567 let ak = U
575- let cr = ad((N(M) == unit), (("key " + M) + " not recognized"))
576- if ((cr == cr))
568+ let cs = ad((N(M) == unit), (("key " + M) + " not recognized"))
569+ if ((cs == cs))
577570 then [af(M, ak)]
578571 else throw("Strict value is not equal to itself.")
579572 }
580573 else if ($isInstanceOf(U, "Unit"))
581574 then {
582575 let ak = U
583- let cr = ad((N(M) == unit), (("key " + M) + " not recognized"))
584- if ((cr == cr))
576+ let cs = ad((N(M) == unit), (("key " + M) + " not recognized"))
577+ if ((cs == cs))
585578 then {
586- let cs = W[1]
587- let ct = ai(n)
588- let ci = {
589- let az = ct
579+ let ct = W[1]
580+ let cu = ai(n)
581+ let cj = {
582+ let az = cu
590583 if ($isInstanceOf(az, "String"))
591584 then {
592- let cu = az
593- if ((size(cu) == size(cs)))
594- then aw(cs)
595- else aA(cs)
585+ let cv = az
586+ if ((size(cv) == size(ct)))
587+ then aw(ct)
588+ else aA(ct)
596589 }
597590 else throw("value type not supported")
598591 }
599- if ((ci == ci))
600- then [af(M, cs)]
592+ if ((cj == cj))
593+ then [af(M, ct)]
601594 else throw("Strict value is not equal to itself.")
602595 }
603596 else throw("Strict value is not equal to itself.")
613606
614607 @Callable(at)
615608 func revokeLock () = {
616- let cc = as(at)
617- if ((cc == cc))
609+ let cd = as(at)
610+ if ((cd == cd))
618611 then nil
619612 else throw("Strict value is not equal to itself.")
620613 }
623616
624617 @Callable(at)
625618 func claim (ba) = {
626- let cv = toBase58String(at.caller.bytes)
627- let cw = makeString([cv, ba, z], a)
628- let cx = makeString([cv, ba, w], a)
629- let cy = makeString([cv, ba, y], a)
630- let cz = makeString([cv, ba, E], a)
631- let cA = makeString([cv, ba, F], a)
632- let cB = makeString([cv, ba, B], a)
633- let cC = makeString([cv, ba, z], a)
634- let cD = makeString([cv, v], a)
635- let cE = makeString([cv, ba, G], a)
636- let cF = makeString([cv, ba, G], a)
637- let cG = {
619+ let cw = toBase58String(at.caller.bytes)
620+ let cx = makeString([cw, ba, z], a)
621+ let cy = makeString([cw, ba, w], a)
622+ let cz = makeString([cw, ba, y], a)
623+ let cA = makeString([cw, ba, E], a)
624+ let cB = makeString([cw, ba, F], a)
625+ let cC = makeString([cw, ba, B], a)
626+ let cD = makeString([cw, ba, z], a)
627+ let cE = makeString([cw, v], a)
628+ let cF = makeString([cw, ba, G], a)
629+ let cG = makeString([cw, ba, G], a)
630+ let cH = {
638631 let U = ai(I)
639632 if ($isInstanceOf(U, "Int"))
640633 then {
643636 }
644637 else throw("failed to get global total waves")
645638 }
646- if ((cG == cG))
639+ if ((cH == cH))
647640 then {
648- let cH = {
641+ let cI = {
649642 let U = ai(J)
650643 if ($isInstanceOf(U, "Int"))
651644 then {
654647 }
655648 else throw("failed to get global total waves")
656649 }
657- if ((cH == cH))
650+ if ((cI == cI))
658651 then {
659652 let bh = {
660- let U = ai(cy)
653+ let U = ai(cz)
661654 if ($isInstanceOf(U, "ByteVector"))
662655 then {
663656 let aF = U
667660 }
668661 if ((bh == bh))
669662 then {
670- let cI = {
671- let U = ai(cD)
663+ let cJ = {
664+ let U = ai(cE)
672665 if ($isInstanceOf(U, "Int"))
673666 then {
674667 let aF = U
676669 }
677670 else throw("failed to get total waves locked by this address")
678671 }
679- if ((cI == cI))
672+ if ((cJ == cJ))
680673 then {
681674 let aR = {
682- let U = ai(cC)
675+ let U = ai(cD)
683676 if ($isInstanceOf(U, "Int"))
684677 then {
685678 let aF = U
689682 }
690683 if ((aR == aR))
691684 then {
692- let cJ = {
693- let U = ai(cA)
685+ let cK = {
686+ let U = ai(cB)
694687 if ($isInstanceOf(U, "Int"))
695688 then {
696689 let aF = U
698691 }
699692 else throw("failed to get total waves claimed")
700693 }
701- if ((cJ == cJ))
694+ if ((cK == cK))
702695 then {
703696 let bf = {
704- let U = ai(cB)
697+ let U = ai(cC)
705698 if ($isInstanceOf(U, "Int"))
706699 then {
707700 let aF = U
711704 }
712705 if ((bf == bf))
713706 then {
714- let cK = {
715- let U = ai(cz)
707+ let cL = {
708+ let U = ai(cA)
716709 if ($isInstanceOf(U, "Int"))
717710 then {
718711 let aF = U
720713 }
721714 else throw("failed to get lock period timespam")
722715 }
723- if ((cK == cK))
716+ if ((cL == cL))
724717 then {
725- let cL = {
726- let U = bY(height)
718+ let cM = {
719+ let U = bZ(height)
727720 if ($isInstanceOf(U, "Int"))
728721 then {
729722 let aF = U
731724 }
732725 else throw("failed to get current timestamp")
733726 }
734- if ((cL == cL))
727+ if ((cM == cM))
735728 then {
736- let bP = {
737- let U = ai(cw)
729+ let bQ = {
730+ let U = ai(cx)
738731 if ($isInstanceOf(U, "Int"))
739732 then {
740733 let aF = U
742735 }
743736 else throw("failed to get collateral")
744737 }
745- if ((bP == bP))
738+ if ((bQ == bQ))
746739 then {
747740 let h = {
748- let U = ai(cx)
741+ let U = ai(cy)
749742 if ($isInstanceOf(U, "Int"))
750743 then {
751744 let aF = U
755748 }
756749 if ((h == h))
757750 then {
758- let cM = {
759- let U = ai(cE)
751+ let cN = {
752+ let U = ai(cF)
760753 if ($isInstanceOf(U, "String"))
761754 then {
762755 let aF = U
764757 }
765758 else throw("failed to get lease state")
766759 }
767- if ((cM == cM))
760+ if ((cN == cN))
768761 then {
769762 let bk = {
770- let U = ai(cF)
763+ let U = ai(cG)
771764 if ($isInstanceOf(U, "String"))
772765 then {
773766 let aF = U
777770 }
778771 if ((bk == bk))
779772 then {
780- let cc = ad((cK > cL), "lock period for this entry has not elapsed")
781- if ((cc == cc))
773+ let cd = ad((cL > cM), "lock period for this entry has not elapsed")
774+ if ((cd == cd))
782775 then {
783- let cN = if ((cM == "leased"))
784- then $Tuple2(LeaseCancel(bh), ac(cE, "cancelled"))
785- else $Tuple2(ac(cE, "cancelled"), ac(cE, "cancelled"))
786- if ((cN == cN))
776+ let cO = if ((cN == "leased"))
777+ then $Tuple2(LeaseCancel(bh), ac(cF, "cancelled"))
778+ else $Tuple2(ac(cF, "cancelled"), ac(cF, "cancelled"))
779+ if ((cO == cO))
787780 then {
788- let cg = ad(if ((0 == aR))
781+ let ch = ad(if ((0 == aR))
789782 then true
790783 else (0 == bf), "all claims exhausted for this trx")
791- if ((cg == cg))
784+ if ((ch == ch))
792785 then {
793- let cO = (bO(h, bP) * f)
794- let cP = {
795- let cQ = (cL - cK)
796- let cR = (cQ / f)
797- if ((cR == 0))
786+ let cP = (bP(h, bQ) * f)
787+ let cQ = {
788+ let cR = (cM - cL)
789+ let cS = (cR / f)
790+ if ((cS == 0))
798791 then throw("less than 24hrs before first claim")
799- else if (((cQ % f) != 0))
792+ else if (((cR % f) != 0))
800793 then throw("already claimed or less than 24hrs before next claim")
801- else if ((cR > h))
794+ else if ((cS > h))
802795 then throw("all claims exhausted")
803796 else {
804- let cS = (cR * cO)
805- let cT = ad((cS == cJ), "can only claim once in 24hrs")
806- if ((cT == cT))
797+ let cT = (cS * cP)
798+ let cU = ad((cT == cK), "can only claim once in 24hrs")
799+ if ((cU == cU))
807800 then {
808- let cU = ad(((cS + cJ) > aR), "all claims exhausted")
809- if ((cU == cU))
801+ let cV = ad(((cT + cK) > aR), "all claims exhausted")
802+ if ((cV == cV))
810803 then {
811- let cV = if ((cR == 1))
812- then cS
813- else (cS - cJ)
814- let cW = cS
815- let cX = if ((cR == 1))
816- then (aR - cS)
817- else (aR - (cS - cJ))
818- let cY = if ((cR == 1))
819- then (bf - cS)
820- else (bf - (cS - cJ))
821- let cZ = (cG - cX)
804+ let cW = if ((cS == 1))
805+ then cT
806+ else (cT - cK)
807+ let cX = cT
808+ let cY = if ((cS == 1))
809+ then (aR - cT)
810+ else (aR - (cT - cK))
811+ let cZ = if ((cS == 1))
812+ then (bf - cT)
813+ else (bf - (cT - cK))
822814 let da = (cH - cY)
823- let db = (cI - cV)
824- let bB = makeString(["%d", toString(cX)], a)
825- let bD = makeString(["%d", toString(cY)], a)
826- let bJ = makeString(["%d", toString(cW)], a)
827- let dc = makeString(["%d", toString(db)], a)
828-[cN._1, cN._2, ac(cC, bB), ac(cB, bD), ac(cA, bJ), ac(cD, dc), af(I, cZ), af(J, da), ScriptTransfer(Address(at.caller.bytes), cV, unit)]
815+ let db = (cI - cZ)
816+ let dc = (cJ - cW)
817+ let bB = makeString(["%d", toString(cY)], a)
818+ let bD = makeString(["%d", toString(cZ)], a)
819+ let bJ = makeString(["%d", toString(cX)], a)
820+ let dd = makeString(["%d", toString(dc)], a)
821+[cO._1, cO._2, ac(cD, bB), ac(cC, bD), ac(cB, bJ), ac(cE, dd), af(I, da), af(J, db), ScriptTransfer(Address(at.caller.bytes), cW, unit)]
829822 }
830823 else throw("Strict value is not equal to itself.")
831824 }
832825 else throw("Strict value is not equal to itself.")
833826 }
834827 }
835- if ((cP == cP))
836- then cP
828+ if ((cQ == cQ))
829+ then cQ
837830 else throw("Strict value is not equal to itself.")
838831 }
839832 else throw("Strict value is not equal to itself.")
873866
874867 @Callable(at)
875868 func mintStaw (h) = {
876- let cv = toBase58String(at.caller.bytes)
877- let dd = toBase58String(at.transactionId)
878- let cc = ad((1 != size(at.payments)), "no payments attached")
879- if ((cc == cc))
869+ let cw = toBase58String(at.caller.bytes)
870+ let de = toBase58String(at.transactionId)
871+ let cd = ad((1 != size(at.payments)), "no payments attached")
872+ if ((cd == cd))
880873 then {
881- let cg = if (isDefined(at.payments[0].assetId))
874+ let ch = if (isDefined(at.payments[0].assetId))
882875 then throw("only waves supported")
883876 else true
884- if ((cg == cg))
877+ if ((ch == ch))
885878 then {
886- let de = at.payments[0].amount
887- let ch = if (if ((d > de))
879+ let df = at.payments[0].amount
880+ let ci = if (if ((d > df))
888881 then true
889- else (de > e))
882+ else (df > e))
890883 then throw("amount to lock is out of range")
891884 else true
892- if ((ch == ch))
885+ if ((ci == ci))
893886 then {
894- let ci = if ((b > h))
887+ let cj = if ((b > h))
895888 then throw("minimum of 14 days lock period")
896889 else true
897- if ((ci == ci))
890+ if ((cj == cj))
898891 then {
899- let df = bL(h, de)
900- let aT = de
901- let dg = fraction(df, 10, 100)
902- let dh = (df - dg)
903- let di = (bY(height) + an(h))
904- if ((di == di))
892+ let dg = bL(h, df)
893+ let aT = df
894+ let dh = fraction(dg._1, 10, 100)
895+ let di = (dg._1 - dh)
896+ let dj = (bZ(height) + an(h))
897+ if ((dj == dj))
905898 then {
906- let dj = (Y(L(K), "global index not previously defined") + 1)
907- if ((dj == dj))
899+ let dk = {
900+ let U = ai(K)
901+ if ($isInstanceOf(U, "Int"))
902+ then {
903+ let aF = U
904+ (aF + 1)
905+ }
906+ else throw("failed to get current global index count")
907+ }
908+ if ((dk == dk))
908909 then {
909- let dk = {
910+ let dl = {
910911 let U = ai(o)
911912 if ($isInstanceOf(U, "String"))
912913 then {
915916 }
916917 else throw("failed to get dfx address")
917918 }
918- if ((dk == dk))
919+ if ((dl == dl))
919920 then {
920921 let aG = {
921922 let U = ai(m)
928929 }
929930 if ((aG == aG))
930931 then {
931- let dl = {
932+ let dm = {
932933 let U = ai(q)
933934 if ($isInstanceOf(U, "String"))
934935 then {
937938 }
938939 else throw("failed to get lease node address")
939940 }
940- if ((dl == dl))
941+ if ((dm == dm))
941942 then {
942- let dm = makeString([cv, u], a)
943- let dn = makeString([cv, v], a)
944- let do = {
945- let U = ai(dm)
943+ let dn = makeString([cw, u], a)
944+ let do = makeString([cw, v], a)
945+ let dp = {
946+ let U = ai(dn)
946947 if ($isInstanceOf(U, "Int"))
947948 then {
948949 let ak = U
950951 }
951952 else 0
952953 }
953- if ((do == do))
954+ if ((dp == dp))
954955 then {
955- let dp = {
956- let U = ai(dn)
956+ let dq = {
957+ let U = ai(do)
957958 if ($isInstanceOf(U, "Int"))
958959 then {
959960 let ak = U
960- (ak + de)
961+ (ak + df)
961962 }
962- else de
963+ else df
963964 }
964- if ((dp == dp))
965+ if ((dq == dq))
965966 then {
966- let dq = Lease(dl, de)
967- if ((dq == dq))
967+ let dr = Lease(dm, df)
968+ if ((dr == dr))
968969 then {
969- let dr = toBase58String(calculateLeaseId(dq))
970- if ((dr == dr))
971- then (([dq, ScriptTransfer(dk, dg, aG), ScriptTransfer(Address(at.caller.bytes), dh, aG)] ++ aZ(dd, cv, h, di, dj, de, dh, aT, height, dr, dp, do, "leased")) ++ aQ(de, df, aT, dj))
970+ let ds = toBase58String(calculateLeaseId(dr))
971+ if ((ds == ds))
972+ then ((([dr, ScriptTransfer(dl, dh, aG), ScriptTransfer(Address(at.caller.bytes), di, aG)] ++ aZ(de, cw, h, dj, dk, df, di, aT, height, ds, dq, dp, "leased")) ++ aQ(df, dg._1, aT, dk)) ++ dg._2)
972973 else throw("Strict value is not equal to itself.")
973974 }
974975 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "_"
55
66 let b = 1
77
88 let c = 100000000
99
1010 let d = (1 * c)
1111
1212 let e = (1000 * c)
1313
1414 let f = 86400000
1515
1616 func g (h) = fraction(c, 365, h)
1717
1818
1919 let i = (1000000 * c)
2020
2121 let j = fraction(c, 10, 100)
2222
2323 let k = "Current_PercentageReduction_Factor_For_Mr"
2424
2525 let l = "Minting_Rate"
2626
2727 let m = "Staw_AssetId"
2828
2929 let n = "manager"
3030
3131 let o = "Dfx"
3232
3333 let p = "CirculationIncrementIndex"
3434
3535 let q = "LeaseNode"
3636
3737 let r = "EmissionAmountClaimed"
3838
3939 let s = "CanClaimEmissionAmount"
4040
4141 let t = "WalletAddress"
4242
4343 let u = "TotalEntryIndexCount"
4444
4545 let v = "TotalLocked"
4646
4747 let w = "LockDuration"
4848
4949 let x = "GlobalLockIndex"
5050
5151 let y = "LockIdentifier"
5252
5353 let z = "AmountInWaves"
5454
5555 let A = "AmountInStaw"
5656
5757 let B = "AmountInStawLP"
5858
5959 let C = "TXID"
6060
6161 let D = "LockAtHeight"
6262
6363 let E = "LocKPeriodInMilliSec"
6464
6565 let F = "TotalWavesClaimed"
6666
6767 let G = "LeaseState"
6868
6969 let H = "TotalStawMinted"
7070
7171 let I = "TotalWavesLocked"
7272
7373 let J = "TotalStawLP"
7474
7575 let K = "IndexCount"
7676
7777 func L (M) = getInteger(this, M)
7878
7979
8080 func N (M) = getString(this, M)
8181
8282
8383 func O (M) = getBoolean(this, M)
8484
8585
8686 func P (M) = value(getBoolean(this, M))
8787
8888
8989 func Q (M) = value(getInteger(this, M))
9090
9191
9292 func R (M) = value(getString(this, M))
9393
9494
9595 func S (M,T) = {
9696 let U = T
9797 if ($isInstanceOf(U, "String"))
9898 then {
9999 let T = U
100100 if (isDefined(N(M)))
101101 then R(M)
102102 else T
103103 }
104104 else if ($isInstanceOf(U, "Int"))
105105 then {
106106 let T = U
107107 if (isDefined(L(M)))
108108 then Q(M)
109109 else T
110110 }
111111 else if ($isInstanceOf(U, "Boolean"))
112112 then {
113113 let T = U
114114 if (isDefined(O(M)))
115115 then P(M)
116116 else T
117117 }
118118 else throw(("value type not supported for " + M))
119119 }
120120
121121
122122 func V (W,X) = {
123123 let U = W
124124 if ($isInstanceOf(U, "String"))
125125 then {
126126 let W = U
127127 W
128128 }
129129 else throw(X)
130130 }
131131
132132
133133 func Y (W,X) = {
134134 let U = W
135135 if ($isInstanceOf(U, "Int"))
136136 then {
137137 let W = U
138138 W
139139 }
140140 else throw(X)
141141 }
142142
143143
144144 func Z (W,X) = {
145145 let U = W
146146 if ($isInstanceOf(U, "Boolean"))
147147 then {
148148 let W = U
149149 W
150150 }
151151 else throw(X)
152152 }
153153
154154
155155 func aa (M,ab) = if ((0 > ab))
156156 then throw(((("writing negative value " + toString(ab)) + " for key ") + M))
157157 else IntegerEntry(M, ab)
158158
159159
160160 func ac (M,ab) = if ((" " == ab))
161161 then throw(("writing an empty string " + ab))
162162 else StringEntry(M, ab)
163163
164164
165165 func ad (ae,X) = if (ae)
166166 then throw(X)
167167 else true
168168
169169
170170 func af (M,ag) = {
171171 let U = ag
172172 if ($isInstanceOf(U, "Int"))
173173 then {
174174 let ag = U
175175 let ah = makeString(["%d", toString(ag)], a)
176176 ac(M, ah)
177177 }
178178 else if ($isInstanceOf(U, "String"))
179179 then {
180180 let ag = U
181181 let ah = makeString(["%s", ag], a)
182182 ac(M, ah)
183183 }
184184 else if ($isInstanceOf(U, "Boolean"))
185185 then {
186186 let ag = U
187187 let ah = makeString(["%b", toString(ag)], a)
188188 ac(M, ah)
189189 }
190190 else throw("type not supported")
191191 }
192192
193193
194194 func ai (M) = {
195195 let aj = V(N(M), "entry not found")
196196 if ((aj == aj))
197197 then {
198198 let ak = split(aj, a)
199199 let al = takeRight(ak[0], 1)
200200 let am = ak[(size(ak) - 1)]
201201 let ag = if ((al == "s"))
202202 then am
203203 else if ((al == "d"))
204204 then parseIntValue(am)
205205 else if ((al == "b"))
206206 then fromBase58String(am)
207207 else throw(("could not parse registry value for " + M))
208208 ag
209209 }
210210 else throw("Strict value is not equal to itself.")
211211 }
212212
213213
214214 func an (ao) = {
215215 let ap = ad((0 >= ao), "invalid locking days!")
216216 if ((ap == ap))
217217 then (ao * f)
218218 else throw("Strict value is not equal to itself.")
219219 }
220220
221221
222222 func aq (M,ab) = if (!(isDefined(N(M))))
223223 then ac(M, ab)
224224 else throw(("entry already initialized: " + M))
225225
226226
227227 func ar (M,ab) = if (!(isDefined(N(M))))
228228 then aa(M, ab)
229229 else throw((" entry already initialized: " + M))
230230
231231
232232 func as (at) = {
233233 let au = {
234234 let U = ai(n)
235235 if ($isInstanceOf(U, "String"))
236236 then {
237237 let W = U
238238 W
239239 }
240240 else "failed to get manager"
241241 }
242242 if ((au == au))
243243 then ad((toBase58String(at.caller.bytes) != au), "address not authorized")
244244 else throw("Strict value is not equal to itself.")
245245 }
246246
247247
248248 func av (W) = if ((0 > W))
249249 then -(W)
250250 else W
251251
252252
253253 func aw (ax) = {
254254 let U = ax
255255 if ($isInstanceOf(U, "String"))
256256 then {
257257 let ax = U
258258 let ay = addressFromString(ax)
259259 let az = ay
260260 if ($isInstanceOf(az, "Address"))
261261 then {
262262 let ay = az
263263 true
264264 }
265265 else throw("invalid address")
266266 }
267267 else if ($isInstanceOf(U, "ByteVector"))
268268 then {
269269 let ax = U
270270 let ay = addressFromPublicKey(ax)
271271 let az = ay
272272 if ($isInstanceOf(az, "Address"))
273273 then {
274274 let ay = az
275275 true
276276 }
277277 else throw("invalid public key")
278278 }
279279 else throw("invalid input type")
280280 }
281281
282282
283283 func aA (aB) = {
284284 let U = assetInfo(fromBase58String(aB))
285285 if ($isInstanceOf(U, "Asset"))
286286 then {
287287 let aC = U
288288 true
289289 }
290290 else throw(("invalid asset id: " + aB))
291291 }
292292
293293
294294 func aD () = {
295295 let aE = {
296296 let U = ai(p)
297297 if ($isInstanceOf(U, "Int"))
298298 then {
299299 let aF = U
300300 aF
301301 }
302302 else throw("circulation index not previously defined")
303303 }
304304 if ((aE == aE))
305305 then {
306306 let aG = {
307307 let U = ai(m)
308308 if ($isInstanceOf(U, "String"))
309309 then {
310310 let aF = U
311311 aF
312312 }
313313 else throw("asset id not previously defined")
314314 }
315315 if ((aG == aG))
316316 then {
317317 let aH = {
318318 let U = assetInfo(fromBase58String(aG))
319319 if ($isInstanceOf(U, "Asset"))
320320 then {
321321 let aC = U
322322 aC.quantity
323323 }
324324 else throw(("asset not found for " + aG))
325325 }
326326 let aI = (av((aH - i)) / i)
327327 let aJ = if ((aI > aE))
328328 then (aI + aE)
329329 else aE
330330 let aK = {
331331 let U = ai(l)
332332 if ($isInstanceOf(U, "Int"))
333333 then {
334334 let aF = U
335335 aF
336336 }
337337 else throw("failed to get miniting rate")
338338 }
339339 if ((aJ == aE))
340- then aK
340+ then $Tuple2(aK, nil)
341341 else {
342342 let aL = {
343343 let U = ai(k)
344344 if ($isInstanceOf(U, "Int"))
345345 then {
346346 let aF = U
347347 aF
348348 }
349349 else throw("failed to get percentage reduction factor")
350350 }
351351 let aM = (aK - fraction(aK, aL, 100))
352- let aN = aa(l, aM)
353- if ((aN == aN))
354- then {
355- let aO = aa(k, aL)
356- if ((aO == aO))
357- then {
358- let aP = aa(p, aJ)
359- if ((aP == aP))
360- then aM
361- else throw("Strict value is not equal to itself.")
362- }
363- else throw("Strict value is not equal to itself.")
364- }
365- else throw("Strict value is not equal to itself.")
352+ let aN = af(l, aM)
353+ let aO = af(k, aL)
354+ let aP = af(p, aJ)
355+ $Tuple2(aM, [aN, aO, aP])
366356 }
367357 }
368358 else throw("Strict value is not equal to itself.")
369359 }
370360 else throw("Strict value is not equal to itself.")
371361 }
372362
373363
374364 func aQ (aR,aS,aT,aU) = {
375365 let aV = {
376366 let U = ai(I)
377367 if ($isInstanceOf(U, "Int"))
378368 then {
379369 let aF = U
380370 (aF + aR)
381371 }
382372 else throw("failed to get global total waves")
383373 }
384374 if ((aV == aV))
385375 then {
386376 let aW = {
387377 let U = ai(H)
388378 if ($isInstanceOf(U, "Int"))
389379 then {
390380 let aF = U
391381 (aF + aS)
392382 }
393383 else throw("failed to get global total staw minted")
394384 }
395385 if ((aW == aW))
396386 then {
397387 let aX = {
398388 let U = ai(J)
399389 if ($isInstanceOf(U, "Int"))
400390 then {
401391 let aF = U
402392 (aF + aT)
403393 }
404394 else throw("failed to get global total stawpl")
405395 }
406396 if ((aX == aX))
407397 then {
408398 let aY = {
409399 let U = ai(K)
410400 if ($isInstanceOf(U, "Int"))
411401 then {
412402 let aF = U
413403 (aF + aU)
414404 }
415405 else throw("failed to get global index count")
416406 }
417407 if ((aY == aY))
418408 then [af(I, aV), af(H, aW), af(J, aX), af(K, aY)]
419409 else throw("Strict value is not equal to itself.")
420410 }
421411 else throw("Strict value is not equal to itself.")
422412 }
423413 else throw("Strict value is not equal to itself.")
424414 }
425415 else throw("Strict value is not equal to itself.")
426416 }
427417
428418
429419 func aZ (ba,bb,bc,bd,be,aR,aS,bf,bg,bh,bi,bj,bk) = {
430420 let bl = makeString([bb, ba, C], a)
431421 let bm = makeString([bb, ba, w], a)
432422 let bn = makeString([bb, ba, x], a)
433423 let bo = makeString([bb, ba, z], a)
434424 let bp = makeString([bb, ba, A], a)
435425 let bq = makeString([bb, ba, B], a)
436426 let br = makeString([bb, ba, D], a)
437427 let bs = makeString([bb, ba, y], a)
438428 let bt = makeString([bb, v], a)
439429 let bu = makeString([bb, u], a)
440430 let bv = makeString([bb, ba, E], a)
441431 let bw = makeString([bb, ba, F], a)
442432 let bx = makeString([bb, ba, G], a)
443433 let by = makeString(["%s", ba], a)
444434 let bz = makeString(["%d", toString(bc)], a)
445435 let bA = makeString(["%d", toString(be)], a)
446436 let bB = makeString(["%d", toString(aR)], a)
447437 let bC = makeString(["%d", toString(aS)], a)
448438 let bD = makeString(["%d", toString(bf)], a)
449439 let bE = makeString(["%d", toString(bg)], a)
450440 let bF = makeString(["%b", bh], a)
451441 let bG = makeString(["%d", toString(bi)], a)
452442 let bH = makeString(["%d", toString(bj)], a)
453443 let bI = makeString(["%d", toString(bd)], a)
454444 let bJ = makeString(["%d", toString(0)], a)
455445 let bK = makeString(["%s", bk], a)
456446 [aq(bl, by), aq(bn, bA), ac(bu, bH), ac(bt, bG), aq(bm, bz), aq(bv, bI), aq(bo, bB), aq(bp, bC), ac(bq, bD), ac(bw, bJ), aq(br, bE), aq(bs, bF), ac(bx, bK)]
457447 }
458448
459449
460450 func bL (h,bM) = {
461451 let bN = aD()
462- (fraction(c, (f * bN), g(h)) * bM)
452+ let bO = (fraction(c, (f * bN._1), g(h)) * bM)
453+ if ((size(bN._2) == 0))
454+ then $Tuple2(bO, nil)
455+ else $Tuple2(bO, bN._2)
463456 }
464457
465458
466-func bO (h,bP) = {
467- let bQ = fraction(h, 15, 10)
468- ((bP / ((h * bQ) - h)) * f)
459+func bP (h,bQ) = {
460+ let bR = fraction(h, 15, 10)
461+ ((bQ / ((h * bR) - h)) * f)
469462 }
470463
471464
472-func bR (bS) = {
473- let bT = Y(L(J), "could not get the running StawLP")
474-[aa(J, (bT + bS))]
465+func bS (bT) = {
466+ let bU = Y(L(J), "could not get the running StawLP")
467+[aa(J, (bU + bT))]
475468 }
476469
477470
478-func bU (bS) = {
479- let bT = Y(L(J), "could not get the running StawLP")
480-[aa(J, (bT - bS))]
471+func bV (bT) = {
472+ let bU = Y(L(J), "could not get the running StawLP")
473+[aa(J, (bU - bT))]
481474 }
482475
483476
484-func bV (bS) = {
485- let bW = Y(L(I), "could not get total locked waves")
486-[aa(I, (bW + bS))]
477+func bW (bT) = {
478+ let bX = Y(L(I), "could not get total locked waves")
479+[aa(I, (bX + bT))]
487480 }
488481
489482
490-func bX (bS) = {
491- let bW = Y(L(I), "could not get total locked waves")
492-[aa(I, (bW - bS))]
483+func bY (bT) = {
484+ let bX = Y(L(I), "could not get total locked waves")
485+[aa(I, (bX - bT))]
493486 }
494487
495488
496-func bY (bZ) = {
497- let ca = {
498- let U = blockInfoByHeight(bZ)
489+func bZ (ca) = {
490+ let cb = {
491+ let U = blockInfoByHeight(ca)
499492 if ($isInstanceOf(U, "BlockInfo"))
500493 then {
501- let cb = U
502- cb.timestamp
494+ let cc = U
495+ cc.timestamp
503496 }
504497 else throw("counld get timestamp")
505498 }
506- ca
499+ cb
507500 }
508501
509502
510503 @Callable(at)
511-func getEmission (h,bP) = {
512- let cc = as(at)
513- if ((cc == cc))
514- then $Tuple2(nil, bO(h, bP))
504+func getEmission (h,bQ) = {
505+ let cd = as(at)
506+ if ((cd == cd))
507+ then $Tuple2(nil, bP(h, bQ))
515508 else throw("Strict value is not equal to itself.")
516509 }
517510
518511
519512
520513 @Callable(at)
521-func init (au,cd,aB,ce) = {
522- let cf = if (isDefined(N(n)))
514+func init (au,ce,aB,cf) = {
515+ let cg = if (isDefined(N(n)))
523516 then as(at)
524517 else true
525- if ((cf == cf))
518+ if ((cg == cg))
526519 then {
527- let cc = aw(au)
528- if ((cc == cc))
520+ let cd = aw(au)
521+ if ((cd == cd))
529522 then {
530- let cg = aw(cd)
531- if ((cg == cg))
523+ let ch = aw(ce)
524+ if ((ch == ch))
532525 then {
533- let ch = aw(ce)
534- if ((ch == ch))
526+ let ci = aw(cf)
527+ if ((ci == ci))
535528 then {
536- let ci = aA(aB)
537- if ((ci == ci))
529+ let cj = aA(aB)
530+ if ((cj == cj))
538531 then {
539- let cj = S(p, 0)
540- let ck = S(k, 0)
541- let cl = S(l, c)
542- let cm = S(H, 0)
543- let cn = S(J, 0)
544- let co = S(K, 0)
545- let cp = S(I, 0)
546-[af(n, au), af(o, cd), af(m, aB), af(q, ce), af(p, cj), af(l, cl), af(k, ck), af(I, cp), af(J, cn), af(H, cm)]
532+ let ck = S(p, 0)
533+ let cl = S(k, 0)
534+ let cm = S(l, c)
535+ let cn = S(H, 0)
536+ let co = S(J, 0)
537+ let cp = S(K, 0)
538+ let cq = S(I, 0)
539+[af(n, au), af(o, ce), af(m, aB), af(q, cf), af(p, ck), af(l, cm), af(k, cl), af(I, cq), af(J, co), af(H, cn)]
547540 }
548541 else throw("Strict value is not equal to itself.")
549542 }
550543 else throw("Strict value is not equal to itself.")
551544 }
552545 else throw("Strict value is not equal to itself.")
553546 }
554547 else throw("Strict value is not equal to itself.")
555548 }
556549 else throw("Strict value is not equal to itself.")
557550 }
558551
559552
560553
561554 @Callable(at)
562555 func modifyGlobalParams (W) = {
563- let cc = as(at)
564- if ((cc == cc))
556+ let cd = as(at)
557+ if ((cd == cd))
565558 then {
566- let cg = ad((size(W) == 2), "[global_key, value] pairs expected")
567- if ((cg == cg))
559+ let ch = ad((size(W) == 2), "[global_key, value] pairs expected")
560+ if ((ch == ch))
568561 then {
569562 let M = W[0]
570- let cq = parseInt(W[1])
571- let U = cq
563+ let cr = parseInt(W[1])
564+ let U = cr
572565 if ($isInstanceOf(U, "Int"))
573566 then {
574567 let ak = U
575- let cr = ad((N(M) == unit), (("key " + M) + " not recognized"))
576- if ((cr == cr))
568+ let cs = ad((N(M) == unit), (("key " + M) + " not recognized"))
569+ if ((cs == cs))
577570 then [af(M, ak)]
578571 else throw("Strict value is not equal to itself.")
579572 }
580573 else if ($isInstanceOf(U, "Unit"))
581574 then {
582575 let ak = U
583- let cr = ad((N(M) == unit), (("key " + M) + " not recognized"))
584- if ((cr == cr))
576+ let cs = ad((N(M) == unit), (("key " + M) + " not recognized"))
577+ if ((cs == cs))
585578 then {
586- let cs = W[1]
587- let ct = ai(n)
588- let ci = {
589- let az = ct
579+ let ct = W[1]
580+ let cu = ai(n)
581+ let cj = {
582+ let az = cu
590583 if ($isInstanceOf(az, "String"))
591584 then {
592- let cu = az
593- if ((size(cu) == size(cs)))
594- then aw(cs)
595- else aA(cs)
585+ let cv = az
586+ if ((size(cv) == size(ct)))
587+ then aw(ct)
588+ else aA(ct)
596589 }
597590 else throw("value type not supported")
598591 }
599- if ((ci == ci))
600- then [af(M, cs)]
592+ if ((cj == cj))
593+ then [af(M, ct)]
601594 else throw("Strict value is not equal to itself.")
602595 }
603596 else throw("Strict value is not equal to itself.")
604597 }
605598 else throw(("failed to modify " + W[0]))
606599 }
607600 else throw("Strict value is not equal to itself.")
608601 }
609602 else throw("Strict value is not equal to itself.")
610603 }
611604
612605
613606
614607 @Callable(at)
615608 func revokeLock () = {
616- let cc = as(at)
617- if ((cc == cc))
609+ let cd = as(at)
610+ if ((cd == cd))
618611 then nil
619612 else throw("Strict value is not equal to itself.")
620613 }
621614
622615
623616
624617 @Callable(at)
625618 func claim (ba) = {
626- let cv = toBase58String(at.caller.bytes)
627- let cw = makeString([cv, ba, z], a)
628- let cx = makeString([cv, ba, w], a)
629- let cy = makeString([cv, ba, y], a)
630- let cz = makeString([cv, ba, E], a)
631- let cA = makeString([cv, ba, F], a)
632- let cB = makeString([cv, ba, B], a)
633- let cC = makeString([cv, ba, z], a)
634- let cD = makeString([cv, v], a)
635- let cE = makeString([cv, ba, G], a)
636- let cF = makeString([cv, ba, G], a)
637- let cG = {
619+ let cw = toBase58String(at.caller.bytes)
620+ let cx = makeString([cw, ba, z], a)
621+ let cy = makeString([cw, ba, w], a)
622+ let cz = makeString([cw, ba, y], a)
623+ let cA = makeString([cw, ba, E], a)
624+ let cB = makeString([cw, ba, F], a)
625+ let cC = makeString([cw, ba, B], a)
626+ let cD = makeString([cw, ba, z], a)
627+ let cE = makeString([cw, v], a)
628+ let cF = makeString([cw, ba, G], a)
629+ let cG = makeString([cw, ba, G], a)
630+ let cH = {
638631 let U = ai(I)
639632 if ($isInstanceOf(U, "Int"))
640633 then {
641634 let aF = U
642635 aF
643636 }
644637 else throw("failed to get global total waves")
645638 }
646- if ((cG == cG))
639+ if ((cH == cH))
647640 then {
648- let cH = {
641+ let cI = {
649642 let U = ai(J)
650643 if ($isInstanceOf(U, "Int"))
651644 then {
652645 let aF = U
653646 aF
654647 }
655648 else throw("failed to get global total waves")
656649 }
657- if ((cH == cH))
650+ if ((cI == cI))
658651 then {
659652 let bh = {
660- let U = ai(cy)
653+ let U = ai(cz)
661654 if ($isInstanceOf(U, "ByteVector"))
662655 then {
663656 let aF = U
664657 aF
665658 }
666659 else throw("failed to get lease id")
667660 }
668661 if ((bh == bh))
669662 then {
670- let cI = {
671- let U = ai(cD)
663+ let cJ = {
664+ let U = ai(cE)
672665 if ($isInstanceOf(U, "Int"))
673666 then {
674667 let aF = U
675668 aF
676669 }
677670 else throw("failed to get total waves locked by this address")
678671 }
679- if ((cI == cI))
672+ if ((cJ == cJ))
680673 then {
681674 let aR = {
682- let U = ai(cC)
675+ let U = ai(cD)
683676 if ($isInstanceOf(U, "Int"))
684677 then {
685678 let aF = U
686679 aF
687680 }
688681 else throw("failed to get total waves locked")
689682 }
690683 if ((aR == aR))
691684 then {
692- let cJ = {
693- let U = ai(cA)
685+ let cK = {
686+ let U = ai(cB)
694687 if ($isInstanceOf(U, "Int"))
695688 then {
696689 let aF = U
697690 aF
698691 }
699692 else throw("failed to get total waves claimed")
700693 }
701- if ((cJ == cJ))
694+ if ((cK == cK))
702695 then {
703696 let bf = {
704- let U = ai(cB)
697+ let U = ai(cC)
705698 if ($isInstanceOf(U, "Int"))
706699 then {
707700 let aF = U
708701 aF
709702 }
710703 else throw("failed to get stawPL")
711704 }
712705 if ((bf == bf))
713706 then {
714- let cK = {
715- let U = ai(cz)
707+ let cL = {
708+ let U = ai(cA)
716709 if ($isInstanceOf(U, "Int"))
717710 then {
718711 let aF = U
719712 aF
720713 }
721714 else throw("failed to get lock period timespam")
722715 }
723- if ((cK == cK))
716+ if ((cL == cL))
724717 then {
725- let cL = {
726- let U = bY(height)
718+ let cM = {
719+ let U = bZ(height)
727720 if ($isInstanceOf(U, "Int"))
728721 then {
729722 let aF = U
730723 aF
731724 }
732725 else throw("failed to get current timestamp")
733726 }
734- if ((cL == cL))
727+ if ((cM == cM))
735728 then {
736- let bP = {
737- let U = ai(cw)
729+ let bQ = {
730+ let U = ai(cx)
738731 if ($isInstanceOf(U, "Int"))
739732 then {
740733 let aF = U
741734 aF
742735 }
743736 else throw("failed to get collateral")
744737 }
745- if ((bP == bP))
738+ if ((bQ == bQ))
746739 then {
747740 let h = {
748- let U = ai(cx)
741+ let U = ai(cy)
749742 if ($isInstanceOf(U, "Int"))
750743 then {
751744 let aF = U
752745 aF
753746 }
754747 else throw("failed to get lockPeriod")
755748 }
756749 if ((h == h))
757750 then {
758- let cM = {
759- let U = ai(cE)
751+ let cN = {
752+ let U = ai(cF)
760753 if ($isInstanceOf(U, "String"))
761754 then {
762755 let aF = U
763756 aF
764757 }
765758 else throw("failed to get lease state")
766759 }
767- if ((cM == cM))
760+ if ((cN == cN))
768761 then {
769762 let bk = {
770- let U = ai(cF)
763+ let U = ai(cG)
771764 if ($isInstanceOf(U, "String"))
772765 then {
773766 let aF = U
774767 aF
775768 }
776769 else throw("failed to get lease state for user")
777770 }
778771 if ((bk == bk))
779772 then {
780- let cc = ad((cK > cL), "lock period for this entry has not elapsed")
781- if ((cc == cc))
773+ let cd = ad((cL > cM), "lock period for this entry has not elapsed")
774+ if ((cd == cd))
782775 then {
783- let cN = if ((cM == "leased"))
784- then $Tuple2(LeaseCancel(bh), ac(cE, "cancelled"))
785- else $Tuple2(ac(cE, "cancelled"), ac(cE, "cancelled"))
786- if ((cN == cN))
776+ let cO = if ((cN == "leased"))
777+ then $Tuple2(LeaseCancel(bh), ac(cF, "cancelled"))
778+ else $Tuple2(ac(cF, "cancelled"), ac(cF, "cancelled"))
779+ if ((cO == cO))
787780 then {
788- let cg = ad(if ((0 == aR))
781+ let ch = ad(if ((0 == aR))
789782 then true
790783 else (0 == bf), "all claims exhausted for this trx")
791- if ((cg == cg))
784+ if ((ch == ch))
792785 then {
793- let cO = (bO(h, bP) * f)
794- let cP = {
795- let cQ = (cL - cK)
796- let cR = (cQ / f)
797- if ((cR == 0))
786+ let cP = (bP(h, bQ) * f)
787+ let cQ = {
788+ let cR = (cM - cL)
789+ let cS = (cR / f)
790+ if ((cS == 0))
798791 then throw("less than 24hrs before first claim")
799- else if (((cQ % f) != 0))
792+ else if (((cR % f) != 0))
800793 then throw("already claimed or less than 24hrs before next claim")
801- else if ((cR > h))
794+ else if ((cS > h))
802795 then throw("all claims exhausted")
803796 else {
804- let cS = (cR * cO)
805- let cT = ad((cS == cJ), "can only claim once in 24hrs")
806- if ((cT == cT))
797+ let cT = (cS * cP)
798+ let cU = ad((cT == cK), "can only claim once in 24hrs")
799+ if ((cU == cU))
807800 then {
808- let cU = ad(((cS + cJ) > aR), "all claims exhausted")
809- if ((cU == cU))
801+ let cV = ad(((cT + cK) > aR), "all claims exhausted")
802+ if ((cV == cV))
810803 then {
811- let cV = if ((cR == 1))
812- then cS
813- else (cS - cJ)
814- let cW = cS
815- let cX = if ((cR == 1))
816- then (aR - cS)
817- else (aR - (cS - cJ))
818- let cY = if ((cR == 1))
819- then (bf - cS)
820- else (bf - (cS - cJ))
821- let cZ = (cG - cX)
804+ let cW = if ((cS == 1))
805+ then cT
806+ else (cT - cK)
807+ let cX = cT
808+ let cY = if ((cS == 1))
809+ then (aR - cT)
810+ else (aR - (cT - cK))
811+ let cZ = if ((cS == 1))
812+ then (bf - cT)
813+ else (bf - (cT - cK))
822814 let da = (cH - cY)
823- let db = (cI - cV)
824- let bB = makeString(["%d", toString(cX)], a)
825- let bD = makeString(["%d", toString(cY)], a)
826- let bJ = makeString(["%d", toString(cW)], a)
827- let dc = makeString(["%d", toString(db)], a)
828-[cN._1, cN._2, ac(cC, bB), ac(cB, bD), ac(cA, bJ), ac(cD, dc), af(I, cZ), af(J, da), ScriptTransfer(Address(at.caller.bytes), cV, unit)]
815+ let db = (cI - cZ)
816+ let dc = (cJ - cW)
817+ let bB = makeString(["%d", toString(cY)], a)
818+ let bD = makeString(["%d", toString(cZ)], a)
819+ let bJ = makeString(["%d", toString(cX)], a)
820+ let dd = makeString(["%d", toString(dc)], a)
821+[cO._1, cO._2, ac(cD, bB), ac(cC, bD), ac(cB, bJ), ac(cE, dd), af(I, da), af(J, db), ScriptTransfer(Address(at.caller.bytes), cW, unit)]
829822 }
830823 else throw("Strict value is not equal to itself.")
831824 }
832825 else throw("Strict value is not equal to itself.")
833826 }
834827 }
835- if ((cP == cP))
836- then cP
828+ if ((cQ == cQ))
829+ then cQ
837830 else throw("Strict value is not equal to itself.")
838831 }
839832 else throw("Strict value is not equal to itself.")
840833 }
841834 else throw("Strict value is not equal to itself.")
842835 }
843836 else throw("Strict value is not equal to itself.")
844837 }
845838 else throw("Strict value is not equal to itself.")
846839 }
847840 else throw("Strict value is not equal to itself.")
848841 }
849842 else throw("Strict value is not equal to itself.")
850843 }
851844 else throw("Strict value is not equal to itself.")
852845 }
853846 else throw("Strict value is not equal to itself.")
854847 }
855848 else throw("Strict value is not equal to itself.")
856849 }
857850 else throw("Strict value is not equal to itself.")
858851 }
859852 else throw("Strict value is not equal to itself.")
860853 }
861854 else throw("Strict value is not equal to itself.")
862855 }
863856 else throw("Strict value is not equal to itself.")
864857 }
865858 else throw("Strict value is not equal to itself.")
866859 }
867860 else throw("Strict value is not equal to itself.")
868861 }
869862 else throw("Strict value is not equal to itself.")
870863 }
871864
872865
873866
874867 @Callable(at)
875868 func mintStaw (h) = {
876- let cv = toBase58String(at.caller.bytes)
877- let dd = toBase58String(at.transactionId)
878- let cc = ad((1 != size(at.payments)), "no payments attached")
879- if ((cc == cc))
869+ let cw = toBase58String(at.caller.bytes)
870+ let de = toBase58String(at.transactionId)
871+ let cd = ad((1 != size(at.payments)), "no payments attached")
872+ if ((cd == cd))
880873 then {
881- let cg = if (isDefined(at.payments[0].assetId))
874+ let ch = if (isDefined(at.payments[0].assetId))
882875 then throw("only waves supported")
883876 else true
884- if ((cg == cg))
877+ if ((ch == ch))
885878 then {
886- let de = at.payments[0].amount
887- let ch = if (if ((d > de))
879+ let df = at.payments[0].amount
880+ let ci = if (if ((d > df))
888881 then true
889- else (de > e))
882+ else (df > e))
890883 then throw("amount to lock is out of range")
891884 else true
892- if ((ch == ch))
885+ if ((ci == ci))
893886 then {
894- let ci = if ((b > h))
887+ let cj = if ((b > h))
895888 then throw("minimum of 14 days lock period")
896889 else true
897- if ((ci == ci))
890+ if ((cj == cj))
898891 then {
899- let df = bL(h, de)
900- let aT = de
901- let dg = fraction(df, 10, 100)
902- let dh = (df - dg)
903- let di = (bY(height) + an(h))
904- if ((di == di))
892+ let dg = bL(h, df)
893+ let aT = df
894+ let dh = fraction(dg._1, 10, 100)
895+ let di = (dg._1 - dh)
896+ let dj = (bZ(height) + an(h))
897+ if ((dj == dj))
905898 then {
906- let dj = (Y(L(K), "global index not previously defined") + 1)
907- if ((dj == dj))
899+ let dk = {
900+ let U = ai(K)
901+ if ($isInstanceOf(U, "Int"))
902+ then {
903+ let aF = U
904+ (aF + 1)
905+ }
906+ else throw("failed to get current global index count")
907+ }
908+ if ((dk == dk))
908909 then {
909- let dk = {
910+ let dl = {
910911 let U = ai(o)
911912 if ($isInstanceOf(U, "String"))
912913 then {
913914 let aF = U
914915 Address(fromBase58String(aF))
915916 }
916917 else throw("failed to get dfx address")
917918 }
918- if ((dk == dk))
919+ if ((dl == dl))
919920 then {
920921 let aG = {
921922 let U = ai(m)
922923 if ($isInstanceOf(U, "String"))
923924 then {
924925 let aF = U
925926 fromBase58String(aF)
926927 }
927928 else throw("failed to get asset id")
928929 }
929930 if ((aG == aG))
930931 then {
931- let dl = {
932+ let dm = {
932933 let U = ai(q)
933934 if ($isInstanceOf(U, "String"))
934935 then {
935936 let aF = U
936937 Address(fromBase58String(aF))
937938 }
938939 else throw("failed to get lease node address")
939940 }
940- if ((dl == dl))
941+ if ((dm == dm))
941942 then {
942- let dm = makeString([cv, u], a)
943- let dn = makeString([cv, v], a)
944- let do = {
945- let U = ai(dm)
943+ let dn = makeString([cw, u], a)
944+ let do = makeString([cw, v], a)
945+ let dp = {
946+ let U = ai(dn)
946947 if ($isInstanceOf(U, "Int"))
947948 then {
948949 let ak = U
949950 (ak + 1)
950951 }
951952 else 0
952953 }
953- if ((do == do))
954+ if ((dp == dp))
954955 then {
955- let dp = {
956- let U = ai(dn)
956+ let dq = {
957+ let U = ai(do)
957958 if ($isInstanceOf(U, "Int"))
958959 then {
959960 let ak = U
960- (ak + de)
961+ (ak + df)
961962 }
962- else de
963+ else df
963964 }
964- if ((dp == dp))
965+ if ((dq == dq))
965966 then {
966- let dq = Lease(dl, de)
967- if ((dq == dq))
967+ let dr = Lease(dm, df)
968+ if ((dr == dr))
968969 then {
969- let dr = toBase58String(calculateLeaseId(dq))
970- if ((dr == dr))
971- then (([dq, ScriptTransfer(dk, dg, aG), ScriptTransfer(Address(at.caller.bytes), dh, aG)] ++ aZ(dd, cv, h, di, dj, de, dh, aT, height, dr, dp, do, "leased")) ++ aQ(de, df, aT, dj))
970+ let ds = toBase58String(calculateLeaseId(dr))
971+ if ((ds == ds))
972+ then ((([dr, ScriptTransfer(dl, dh, aG), ScriptTransfer(Address(at.caller.bytes), di, aG)] ++ aZ(de, cw, h, dj, dk, df, di, aT, height, ds, dq, dp, "leased")) ++ aQ(df, dg._1, aT, dk)) ++ dg._2)
972973 else throw("Strict value is not equal to itself.")
973974 }
974975 else throw("Strict value is not equal to itself.")
975976 }
976977 else throw("Strict value is not equal to itself.")
977978 }
978979 else throw("Strict value is not equal to itself.")
979980 }
980981 else throw("Strict value is not equal to itself.")
981982 }
982983 else throw("Strict value is not equal to itself.")
983984 }
984985 else throw("Strict value is not equal to itself.")
985986 }
986987 else throw("Strict value is not equal to itself.")
987988 }
988989 else throw("Strict value is not equal to itself.")
989990 }
990991 else throw("Strict value is not equal to itself.")
991992 }
992993 else throw("Strict value is not equal to itself.")
993994 }
994995 else throw("Strict value is not equal to itself.")
995996 }
996997 else throw("Strict value is not equal to itself.")
997998 }
998999
9991000

github/deemru/w8io/169f3d6 
308.81 ms