tx · G8yejSpwF5hyzLV1QvMVZjFfe1Gs1HZ9pWqeogxv5CHX

3MyVvNfXht9piazyf1e5BVFsqv1R7z5cWJL:  -0.02700000 Waves

2022.06.22 14:21 [2107539] smart account 3MyVvNfXht9piazyf1e5BVFsqv1R7z5cWJL > SELF 0.00000000 Waves

{ "type": 13, "id": "G8yejSpwF5hyzLV1QvMVZjFfe1Gs1HZ9pWqeogxv5CHX", "fee": 2700000, "feeAssetId": null, "timestamp": 1655896922415, "version": 1, "sender": "3MyVvNfXht9piazyf1e5BVFsqv1R7z5cWJL", "senderPublicKey": "DnPyGWCgpQChvoQrnXQRcC9FtN32mPGrcog2wcKHdkVn", "proofs": [ "5BzmuUYtUEpnS4HRWJDtAHJxdDx5svCjAEzSbJi2wUe7Ja5LbpTo59DchkgPQqEkucXbmfJqP2h4dHNgubm5be4F" ], "script": "base64:BgJgCAISAwoBCBIAEgQKAggBEgcKBQgICAgBEgQKAggIEgUKAwgIARIECgIICBIDCgEBEgMKAQESBAoCCAgSAwoBCBIAEgMKAQESABIDCgEIEgQKAggIEgQKAggIEgQKAggILwAJc2VwYXJhdG9yAgJfXwAOcG9vbFdlaWdodE11bHQAgMLXLwAPbWF4RGVwdGhEZWZhdWx0AAoAFmZpbmFsaXphdGlvblN0YWdlVG90YWwAAAAXZmluYWxpemF0aW9uU3RhZ2VTaGFyZXMAAQAOa2V5RXBvY2hMZW5ndGgJALkJAgkAzAgCAgIlcwkAzAgCAgtlcG9jaExlbmd0aAUDbmlsBQlzZXBhcmF0b3IAD2tleUN1cnJlbnRFcG9jaAkAuQkCCQDMCAICAiVzCQDMCAICDGN1cnJlbnRFcG9jaAUDbmlsBQlzZXBhcmF0b3IAC2tleU1heERlcHRoCQC5CQIJAMwIAgICJXMJAMwIAgIIbWF4RGVwdGgFA25pbAUJc2VwYXJhdG9yACJrZXlWb3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0CQC5CQIJAMwIAgICJXMJAMwIAgIfdm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdAUDbmlsBQlzZXBhcmF0b3IAEmtleUZhY3RvcnlDb250cmFjdAkAuQkCCQDMCAICAiVzCQDMCAICD2ZhY3RvcnlDb250cmFjdAUDbmlsBQlzZXBhcmF0b3IAE2tleUJvb3N0aW5nQ29udHJhY3QJALkJAgkAzAgCAgIlcwkAzAgCAhBib29zdGluZ0NvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgASa2V5U3Rha2luZ0NvbnRyYWN0CQC5CQIJAMwIAgICJXMJAMwIAgIPc3Rha2luZ0NvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgAUa2V5RmluYWxpemF0aW9uU3RhZ2UJALkJAgkAzAgCAgIlcwkAzAgCAhFmaW5hbGl6YXRpb25TdGFnZQUDbmlsBQlzZXBhcmF0b3IAC2tleU5leHRQb29sCQC5CQIJAMwIAgICJXMJAMwIAgIIbmV4dFBvb2wFA25pbAUJc2VwYXJhdG9yAAtrZXlOZXh0VXNlcgkAuQkCCQDMCAICAiVzCQDMCAICCG5leHRVc2VyBQNuaWwFCXNlcGFyYXRvcgAOa2V5U3RhcnRIZWlnaHQJALkJAgkAzAgCAgIlcwkAzAgCAgtzdGFydEhlaWdodAUDbmlsBQlzZXBhcmF0b3IAEWtleUN1cnJlbnRFcG9jaFVpCQC5CQIJAMwIAgICJXMJAMwIAgIOY3VycmVudEVwb2NoVWkFA25pbAUJc2VwYXJhdG9yABBrZXlTdGFydEhlaWdodFVpCQC5CQIJAMwIAgICJXMJAMwIAgINc3RhcnRIZWlnaHRVaQUDbmlsBQlzZXBhcmF0b3IBFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaAEFZXBvY2gJALkJAgkAzAgCAgQlcyVkCQDMCAICC3N0YXJ0SGVpZ2h0CQDMCAIJAKQDAQUFZXBvY2gFA25pbAUJc2VwYXJhdG9yAQxrZXlGaW5hbGl6ZWQBBWVwb2NoCQC5CQIJAMwIAgIEJXMlZAkAzAgCAglmaW5hbGl6ZWQJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBCWtleUluTGlzdAEEcG9vbAQLJHQwMTQzNjE0NzYFBHBvb2wEDWFtb3VudEFzc2V0SWQIBQskdDAxNDM2MTQ3NgJfMQQMcHJpY2VBc3NldElkCAULJHQwMTQzNjE0NzYCXzIJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGaW5MaXN0CQDMCAIFDWFtb3VudEFzc2V0SWQJAMwIAgUMcHJpY2VBc3NldElkBQNuaWwFCXNlcGFyYXRvcgEHa2V5VXNlZAIHYWRkcmVzcwVlcG9jaAkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAgR1c2VkCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCCQCkAwEFBWVwb2NoBQNuaWwFCXNlcGFyYXRvcgEHa2V5Vm90ZQMEcG9vbAdhZGRyZXNzBWVwb2NoBAskdDAxNzUwMTc5MAUEcG9vbAQNYW1vdW50QXNzZXRJZAgFCyR0MDE3NTAxNzkwAl8xBAxwcmljZUFzc2V0SWQIBQskdDAxNzUwMTc5MAJfMgkAuQkCCQDMCAICCiVzJXMlcyVzJWQJAMwIAgIEdm90ZQkAzAgCBQ1hbW91bnRBc3NldElkCQDMCAIFDHByaWNlQXNzZXRJZAkAzAgCCQClCAEFB2FkZHJlc3MJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBD2tleVZvdGluZ1Jlc3VsdAIEcG9vbAVlcG9jaAQLJHQwMTk3MjIwMTIFBHBvb2wEDWFtb3VudEFzc2V0SWQIBQskdDAxOTcyMjAxMgJfMQQMcHJpY2VBc3NldElkCAULJHQwMTk3MjIwMTICXzIJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAgx2b3RpbmdSZXN1bHQJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBDGtleVBvb2xTaGFyZQIEcG9vbAVlcG9jaAQLJHQwMjE3NzIyMTcFBHBvb2wEDWFtb3VudEFzc2V0SWQIBQskdDAyMTc3MjIxNwJfMQQMcHJpY2VBc3NldElkCAULJHQwMjE3NzIyMTcCXzIJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAglwb29sU2hhcmUJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQJAMwIAgkApAMBBQVlcG9jaAUDbmlsBQlzZXBhcmF0b3IBDWtleVRvdGFsVm90ZXMBBWVwb2NoCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgp0b3RhbFZvdGVzCQDMCAIJAKQDAQUFZXBvY2gFA25pbAUJc2VwYXJhdG9yAQ5nZXRWYWx1ZU9yRmFpbAMHYWRkcmVzcwNrZXkEdHlwZQQFZXJyb3IJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIACQETdmFsdWVPckVycm9yTWVzc2FnZQIEByRtYXRjaDAFBHR5cGUDCQABAgUHJG1hdGNoMAIGU3RyaW5nBANzdHIFByRtYXRjaDAJAJ0IAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQDaW50BQckbWF0Y2gwCQCaCAIFB2FkZHJlc3MFA2tleQkAAgECEmludmFsaWQgZW50cnkgdHlwZQUFZXJyb3IBDGdldFN0ck9yRmFpbAIHYWRkcmVzcwNrZXkKAAFACQEOZ2V0VmFsdWVPckZhaWwDBQdhZGRyZXNzBQNrZXkCAAMJAAECBQFAAgZTdHJpbmcFAUAJAAIBCQCsAgIJAAMBCQEOZ2V0VmFsdWVPckZhaWwDBQdhZGRyZXNzBQNrZXkCAAIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nAQxnZXRJbnRPckZhaWwCB2FkZHJlc3MDa2V5CgABQAkBDmdldFZhbHVlT3JGYWlsAwUHYWRkcmVzcwUDa2V5AAADCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQkBDmdldFZhbHVlT3JGYWlsAwUHYWRkcmVzcwUDa2V5AAACGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAEMcG9vbFRvU3RyaW5nAQRwb29sCQCsAgIJAKwCAggFBHBvb2wCXzEFCXNlcGFyYXRvcggFBHBvb2wCXzIBDHN0cmluZ1RvUG9vbAEDc3RyBAVwYXJ0cwkAtQkCBQNzdHIFCXNlcGFyYXRvcgMJAAACCQCQAwEFBXBhcnRzAAIJAJQKAgkAkQMCBQVwYXJ0cwAACQCRAwIFBXBhcnRzAAEJAAIBAhNpbnZhbGlkIHBvb2wgc3RyaW5nAA1wb29sc0xpc3ROYW1lAgVwb29scwEQZ2V0Vm90ZXNMaXN0TmFtZQEEcG9vbAQLJHQwMzMyMzMzNjMFBHBvb2wEDWFtb3VudEFzc2V0SWQIBQskdDAzMzIzMzM2MwJfMQQMcHJpY2VBc3NldElkCAULJHQwMzMyMzMzNjMCXzIJALkJAgkAzAgCAgV2b3RlcwkAzAgCBQ1hbW91bnRBc3NldElkCQDMCAIFDHByaWNlQXNzZXRJZAUDbmlsBQlzZXBhcmF0b3IBC2tleUxpc3RIZWFkAQhsaXN0TmFtZQQEbWV0YQMJAAACBQhsaXN0TmFtZQUNcG9vbHNMaXN0TmFtZQIEJXMlcwIIJXMlcyVzJXMJALkJAgkAzAgCBQRtZXRhCQDMCAIFCGxpc3ROYW1lCQDMCAICBGhlYWQFA25pbAUJc2VwYXJhdG9yAQtrZXlMaXN0U2l6ZQEIbGlzdE5hbWUEBG1ldGEDCQAAAgUIbGlzdE5hbWUFDXBvb2xzTGlzdE5hbWUCBCVzJXMCCCVzJXMlcyVzCQC5CQIJAMwIAgUEbWV0YQkAzAgCBQhsaXN0TmFtZQkAzAgCAgRzaXplBQNuaWwFCXNlcGFyYXRvcgELa2V5TGlzdFByZXYCCGxpc3ROYW1lAmlkBARtZXRhAwkAAAIFCGxpc3ROYW1lBQ1wb29sc0xpc3ROYW1lAgglcyVzJXMlcwIKJXMlcyVzJXMlcwkAuQkCCQDMCAIFBG1ldGEJAMwIAgUIbGlzdE5hbWUJAMwIAgUCaWQJAMwIAgIEcHJldgUDbmlsBQlzZXBhcmF0b3IBC2tleUxpc3ROZXh0AghsaXN0TmFtZQJpZAQEbWV0YQMJAAACBQhsaXN0TmFtZQUNcG9vbHNMaXN0TmFtZQIIJXMlcyVzJXMCCiVzJXMlcyVzJXMJALkJAgkAzAgCBQRtZXRhCQDMCAIFCGxpc3ROYW1lCQDMCAIFAmlkCQDMCAICBG5leHQFA25pbAUJc2VwYXJhdG9yAQxjb250YWluc05vZGUCCGxpc3ROYW1lAmlkBApoZWFkT3JVbml0CQCdCAIFBHRoaXMJAQtrZXlMaXN0SGVhZAEFCGxpc3ROYW1lBApwcmV2T3JVbml0CQCdCAIFBHRoaXMJAQtrZXlMaXN0UHJldgIFCGxpc3ROYW1lBQJpZAQKbmV4dE9yVW5pdAkAnQgCBQR0aGlzCQELa2V5TGlzdE5leHQCBQhsaXN0TmFtZQUCaWQDAwkAAAIFAmlkCQELdmFsdWVPckVsc2UCBQpoZWFkT3JVbml0AgAGCQECIT0CBQpwcmV2T3JVbml0BQR1bml0BgkBAiE9AgUKbmV4dE9yVW5pdAUEdW5pdAERaW5zZXJ0Tm9kZUFjdGlvbnMCCGxpc3ROYW1lAmlkBApoZWFkT3JVbml0CQCdCAIFBHRoaXMJAQtrZXlMaXN0SGVhZAEFCGxpc3ROYW1lBAhsaXN0U2l6ZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQELa2V5TGlzdFNpemUBBQhsaXN0TmFtZQAABAljaGVja05vZGUDCQEBIQEJAQxjb250YWluc05vZGUCBQhsaXN0TmFtZQUCaWQGCQACAQILTm9kZSBleGlzdHMDCQAAAgUJY2hlY2tOb2RlBQljaGVja05vZGUJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQELa2V5TGlzdFNpemUBBQhsaXN0TmFtZQkAZAIFCGxpc3RTaXplAAEFA25pbAMJAQIhPQIFCmhlYWRPclVuaXQFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleUxpc3ROZXh0AgUIbGlzdE5hbWUFAmlkCQEFdmFsdWUBBQpoZWFkT3JVbml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlMaXN0UHJldgIFCGxpc3ROYW1lCQEFdmFsdWUBBQpoZWFkT3JVbml0BQJpZAUDbmlsBQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleUxpc3RIZWFkAQUIbGlzdE5hbWUFAmlkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BEWRlbGV0ZU5vZGVBY3Rpb25zAghsaXN0TmFtZQJpZAQKaGVhZE9yVW5pdAkAnQgCBQR0aGlzCQELa2V5TGlzdEhlYWQBBQhsaXN0TmFtZQQIbGlzdFNpemUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBC2tleUxpc3RTaXplAQUIbGlzdE5hbWUAAAQKcHJldk9yVW5pdAkAnQgCBQR0aGlzCQELa2V5TGlzdFByZXYCBQhsaXN0TmFtZQUCaWQECm5leHRPclVuaXQJAJ0IAgUEdGhpcwkBC2tleUxpc3ROZXh0AgUIbGlzdE5hbWUFAmlkCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQtrZXlMaXN0U2l6ZQEFCGxpc3ROYW1lCQBlAgUIbGlzdFNpemUAAQUDbmlsAwMJAQIhPQIFCnByZXZPclVuaXQFBHVuaXQJAQIhPQIFCm5leHRPclVuaXQFBHVuaXQHCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlMaXN0TmV4dAIFCGxpc3ROYW1lCQEFdmFsdWUBBQpwcmV2T3JVbml0CQEFdmFsdWUBBQpuZXh0T3JVbml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQtrZXlMaXN0UHJldgIFCGxpc3ROYW1lCQEFdmFsdWUBBQpuZXh0T3JVbml0CQEFdmFsdWUBBQpwcmV2T3JVbml0CQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlMaXN0UHJldgIFCGxpc3ROYW1lBQJpZAkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5TGlzdE5leHQCBQhsaXN0TmFtZQUCaWQFA25pbAMJAQIhPQIFCm5leHRPclVuaXQFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBC2tleUxpc3RIZWFkAQUIbGlzdE5hbWUJAQV2YWx1ZQEFCm5leHRPclVuaXQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleUxpc3ROZXh0AgUIbGlzdE5hbWUFAmlkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlMaXN0UHJldgIFCGxpc3ROYW1lCQEFdmFsdWUBBQpuZXh0T3JVbml0BQNuaWwDCQECIT0CBQpwcmV2T3JVbml0BQR1bml0CQDMCAIJAQtEZWxldGVFbnRyeQEJAQtrZXlMaXN0UHJldgIFCGxpc3ROYW1lBQJpZAkAzAgCCQELRGVsZXRlRW50cnkBCQELa2V5TGlzdE5leHQCBQhsaXN0TmFtZQkBBXZhbHVlAQUKcHJldk9yVW5pdAUDbmlsAwkAAAIFAmlkCQELdmFsdWVPckVsc2UCBQpoZWFkT3JVbml0AgAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBC2tleUxpc3RIZWFkAQUIbGlzdE5hbWUFA25pbAkAAgEJAKwCAgkArAICCQCsAgICDmludmFsaWQgbm9kZTogBQhsaXN0TmFtZQIBLgUCaWQBE2tleU1hbmFnZXJQdWJsaWNLZXkAAhQlc19fbWFuYWdlclB1YmxpY0tleQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQABAckbWF0Y2gwCQCiCAEJARNrZXlNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAQHJG1hdGNoMAkAoggBCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkA2QQBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgAVcGVybWlzc2lvbkRlbmllZEVycm9yCQACAQIRUGVybWlzc2lvbiBkZW5pZWQBCG11c3RUaGlzAQFpAwkAAAIIBQFpBmNhbGxlcgUEdGhpcwYFFXBlcm1pc3Npb25EZW5pZWRFcnJvcgELbXVzdE1hbmFnZXIBAWkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAMJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkFAnBrBgUVcGVybWlzc2lvbkRlbmllZEVycm9yAwkAAQIFByRtYXRjaDACBFVuaXQJAQhtdXN0VGhpcwEFAWkJAAIBAgtNYXRjaCBlcnJvchIBaQEKc2V0TWFuYWdlcgEXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkEC2NoZWNrQ2FsbGVyCQELbXVzdE1hbmFnZXIBBQFpAwkAAAIFC2NoZWNrQ2FsbGVyBQtjaGVja0NhbGxlcgQVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQDZBAEFF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AwkAAAIFFWNoZWNrTWFuYWdlclB1YmxpY0tleQUVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQDMCAIJAQtTdHJpbmdFbnRyeQIJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAFF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOY29uZmlybU1hbmFnZXIABAJwbQkBHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAQFaGFzUE0DCQEJaXNEZWZpbmVkAQUCcG0GCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFBWhhc1BNBQVoYXNQTQQHY2hlY2tQTQMJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAnBtBgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQdjaGVja1BNBQdjaGVja1BNCQDMCAIJAQtTdHJpbmdFbnRyeQIJARNrZXlNYW5hZ2VyUHVibGljS2V5AAkA2AQBCQEFdmFsdWUBBQJwbQkAzAgCCQELRGVsZXRlRW50cnkBCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0Agt1c2VyQWRkcmVzcwx0YXJnZXRIZWlnaHQEF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBDGdldFN0ck9yRmFpbAIFBHRoaXMFE2tleUJvb3N0aW5nQ29udHJhY3QCIWludmFsaWQgYm9vc3RpbmcgY29udHJhY3QgYWRkcmVzcwkAlAoCBQNuaWwKAAFACQD8BwQFF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzAiBnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHRSRUFET05MWQkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQx0YXJnZXRIZWlnaHQFA25pbAUDbmlsAwkAAQIFAUACA0ludAUBQAkAAgEJAKwCAgkAAwEJAPwHBAUXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MCIGdldFVzZXJHd3hBbW91bnRBdEhlaWdodFJFQURPTkxZCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDHRhcmdldEhlaWdodAUDbmlsBQNuaWwCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAFpAQtjb25zdHJ1Y3RvcgUPZmFjdG9yeUNvbnRyYWN0H3ZvdGluZ0VtaXNzaW9uQ2FuZGlkYXRlQ29udHJhY3QQYm9vc3RpbmdDb250cmFjdA9zdGFraW5nQ29udHJhY3QLZXBvY2hMZW5ndGgEBWNoZWtzCQDMCAIJAQttdXN0TWFuYWdlcgEFAWkJAMwIAgMJAQIhPQIJAKYIAQUPZmFjdG9yeUNvbnRyYWN0BQR1bml0BgIgaW52YWxpZCBmYWN0b3J5IGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAQIhPQIJAKYIAQUfdm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdAUEdW5pdAYCMmludmFsaWQgdm90aW5nIGVtaXNzaW9uIGNhbmRpZGF0ZSBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQECIT0CCQCmCAEFEGJvb3N0aW5nQ29udHJhY3QFBHVuaXQGAiFpbnZhbGlkIGJvb3N0aW5nIGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAQIhPQIJAKYIAQUPc3Rha2luZ0NvbnRyYWN0BQR1bml0BgIgaW52YWxpZCBzdGFraW5nIGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAGYCBQtlcG9jaExlbmd0aAAABgkAAgECFGludmFsaWQgZXBvY2ggbGVuZ3RoBQNuaWwDCQAAAgUFY2hla3MFBWNoZWtzCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUSa2V5RmFjdG9yeUNvbnRyYWN0BQ9mYWN0b3J5Q29udHJhY3QJAMwIAgkBC1N0cmluZ0VudHJ5AgUia2V5Vm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdAUfdm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdAkAzAgCCQELU3RyaW5nRW50cnkCBRNrZXlCb29zdGluZ0NvbnRyYWN0BRBib29zdGluZ0NvbnRyYWN0CQDMCAIJAQtTdHJpbmdFbnRyeQIFEmtleVN0YWtpbmdDb250cmFjdAUPc3Rha2luZ0NvbnRyYWN0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ5rZXlFcG9jaExlbmd0aAULZXBvY2hMZW5ndGgFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQZjcmVhdGUCDWFtb3VudEFzc2V0SWQMcHJpY2VBc3NldElkBAZjaGVja3MJAMwIAgMJAAACCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUia2V5Vm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdAIABgkBC211c3RNYW5hZ2VyAQUBaQUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBARwb29sCQCUCgIFDWFtb3VudEFzc2V0SWQFDHByaWNlQXNzZXRJZAQNaW5MaXN0QWN0aW9ucwkAzggCCQDMCAIJAQxCb29sZWFuRW50cnkCCQEJa2V5SW5MaXN0AQUEcG9vbAYFA25pbAkBEWluc2VydE5vZGVBY3Rpb25zAgUNcG9vbHNMaXN0TmFtZQkBDHBvb2xUb1N0cmluZwEFBHBvb2wEGGN1cnJlbnRFcG9jaElzTm90RGVmaW5lZAkAAAIJAJoIAgUEdGhpcwUPa2V5Q3VycmVudEVwb2NoBQR1bml0BBJzdGFydEhlaWdodEFjdGlvbnMDBRhjdXJyZW50RXBvY2hJc05vdERlZmluZWQEBWVwb2NoAAAJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tleUN1cnJlbnRFcG9jaAUFZXBvY2gJAMwIAgkBDEludGVnZXJFbnRyeQIJARVrZXlTdGFydEhlaWdodEJ5RXBvY2gBBQVlcG9jaAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ5rZXlTdGFydEhlaWdodAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrZXlDdXJyZW50RXBvY2hVaQUFZXBvY2gJAMwIAgkBDEludGVnZXJFbnRyeQIFEGtleVN0YXJ0SGVpZ2h0VWkFBmhlaWdodAUDbmlsBQNuaWwJAJQKAgkAzggCBQ1pbkxpc3RBY3Rpb25zBRJzdGFydEhlaWdodEFjdGlvbnMFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEEdm90ZQMNYW1vdW50QXNzZXRJZAxwcmljZUFzc2V0SWQGYW1vdW50BARwb29sCQCUCgIFDWFtb3VudEFzc2V0SWQFDHByaWNlQXNzZXRJZAQFZXBvY2gJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUPa2V5Q3VycmVudEVwb2NoAAAEC3N0YXJ0SGVpZ2h0CQEMZ2V0SW50T3JGYWlsAgUEdGhpcwkBFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaAEFBWVwb2NoBAtlcG9jaExlbmd0aAkBDGdldEludE9yRmFpbAIFBHRoaXMFDmtleUVwb2NoTGVuZ3RoBAllbmRIZWlnaHQJAGQCBQtzdGFydEhlaWdodAULZXBvY2hMZW5ndGgEF2ZpbmFsaXphdGlvblN0YWdlT3JVbml0CQCaCAIFBHRoaXMFFGtleUZpbmFsaXphdGlvblN0YWdlBAR1c2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQdrZXlVc2VkAggFAWkGY2FsbGVyBQVlcG9jaAAABAR2b3RlCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQdrZXlWb3RlAwUEcG9vbAgFAWkGY2FsbGVyBQVlcG9jaAAABApwb29sUmVzdWx0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ9rZXlWb3RpbmdSZXN1bHQCBQRwb29sBQVlcG9jaAAABAp0b3RhbFZvdGVzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ1rZXlUb3RhbFZvdGVzAQUFZXBvY2gAAAQTZ3d4QW1vdW50QXRFbmRUb3RhbAoAAUAJAPwHBAUEdGhpcwIYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0CQDMCAIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwkAzAgCBQllbmRIZWlnaHQFA25pbAUDbmlsAwkAAQIFAUACA0ludAUBQAkAAgEJAKwCAgkAAwEJAPwHBAUEdGhpcwIYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0CQDMCAIJANgEAQgIBQFpBmNhbGxlcgVieXRlcwkAzAgCBQllbmRIZWlnaHQFA25pbAUDbmlsAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQECWF2YWlsYWJsZQkAZQIFE2d3eEFtb3VudEF0RW5kVG90YWwFBHVzZWQEB25ld1ZvdGUJAGQCBQR2b3RlBQZhbW91bnQEBmNoZWNrcwkAzAgCAwkBAiE9AgkAoAgBCQEJa2V5SW5MaXN0AQUEcG9vbAUEdW5pdAYJAAIBAg5pbnZhbGlkIGFzc2V0cwkAzAgCAwkAZgIFCWVuZEhlaWdodAUGaGVpZ2h0BgkAAgECDmludmFsaWQgaGVpZ2h0CQDMCAIDCQAAAgUXZmluYWxpemF0aW9uU3RhZ2VPclVuaXQFBHVuaXQGCQACAQIYZmluYWxpemF0aW9uIGluIHByb2dyZXNzCQDMCAIDCQBmAgUTZ3d4QW1vdW50QXRFbmRUb3RhbAAABgkAAgECE3lvdSBkbyBub3QgaGF2ZSBnV1gJAMwIAgMDCQBmAgUGYW1vdW50AAAJAGcCBQlhdmFpbGFibGUFBmFtb3VudAcGCQACAQIOaW52YWxpZCBhbW91bnQFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQNdm90ZXNMaXN0TmFtZQkBEGdldFZvdGVzTGlzdE5hbWUBBQRwb29sBA51c2VyQWRkcmVzc1N0cgkApQgBCAUBaQZjYWxsZXIEEHZvdGVzTGlzdEFjdGlvbnMDCQEMY29udGFpbnNOb2RlAgUNdm90ZXNMaXN0TmFtZQUOdXNlckFkZHJlc3NTdHIFA25pbAkBEWluc2VydE5vZGVBY3Rpb25zAgUNdm90ZXNMaXN0TmFtZQUOdXNlckFkZHJlc3NTdHIJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEHa2V5VXNlZAIIBQFpBmNhbGxlcgUFZXBvY2gJAGQCBQR1c2VkBQZhbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQdrZXlWb3RlAwUEcG9vbAgFAWkGY2FsbGVyBQVlcG9jaAUHbmV3Vm90ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleVZvdGluZ1Jlc3VsdAIFBHBvb2wFBWVwb2NoCQBkAgUKcG9vbFJlc3VsdAUGYW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQENa2V5VG90YWxWb3RlcwEFBWVwb2NoCQBkAgUKdG90YWxWb3RlcwUGYW1vdW50BQNuaWwFEHZvdGVzTGlzdEFjdGlvbnMFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKY2FuY2VsVm90ZQINYW1vdW50QXNzZXRJZAxwcmljZUFzc2V0SWQEBHBvb2wJAJQKAgUNYW1vdW50QXNzZXRJZAUMcHJpY2VBc3NldElkBAVlcG9jaAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ9rZXlDdXJyZW50RXBvY2gAAAQLc3RhcnRIZWlnaHQJAQxnZXRJbnRPckZhaWwCBQR0aGlzCQEVa2V5U3RhcnRIZWlnaHRCeUVwb2NoAQUFZXBvY2gEC2Vwb2NoTGVuZ3RoCQEMZ2V0SW50T3JGYWlsAgUEdGhpcwUOa2V5RXBvY2hMZW5ndGgECWVuZEhlaWdodAkAZAIFC3N0YXJ0SGVpZ2h0BQtlcG9jaExlbmd0aAQXZmluYWxpemF0aW9uU3RhZ2VPclVuaXQJAJoIAgUEdGhpcwUUa2V5RmluYWxpemF0aW9uU3RhZ2UEBHVzZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBB2tleVVzZWQCCAUBaQZjYWxsZXIFBWVwb2NoAAAEBHZvdGUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBB2tleVZvdGUDBQRwb29sCAUBaQZjYWxsZXIFBWVwb2NoAAAECnBvb2xSZXN1bHQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBD2tleVZvdGluZ1Jlc3VsdAIFBHBvb2wFBWVwb2NoAAAECnRvdGFsVm90ZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBDWtleVRvdGFsVm90ZXMBBQVlcG9jaAAABAZjaGVja3MJAMwIAgMJAQIhPQIJAKAIAQkBCWtleUluTGlzdAEFBHBvb2wFBHVuaXQGCQACAQIOaW52YWxpZCBhc3NldHMJAMwIAgMJAGYCBQllbmRIZWlnaHQFBmhlaWdodAYJAAIBAg5pbnZhbGlkIGhlaWdodAkAzAgCAwkAAAIFF2ZpbmFsaXphdGlvblN0YWdlT3JVbml0BQR1bml0BgkAAgECGGZpbmFsaXphdGlvbiBpbiBwcm9ncmVzcwkAzAgCAwkAZgIFBHZvdGUAAAYJAAIBAgdubyB2b3RlBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEDXZvdGVzTGlzdE5hbWUJARBnZXRWb3Rlc0xpc3ROYW1lAQUEcG9vbAQOdXNlckFkZHJlc3NTdHIJAKUIAQgFAWkGY2FsbGVyCQCUCgIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBB2tleVVzZWQCCAUBaQZjYWxsZXIFBWVwb2NoCQCWAwEJAMwIAgkAZQIFBHVzZWQFBHZvdGUJAMwIAgAABQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBB2tleVZvdGUDBQRwb29sCAUBaQZjYWxsZXIFBWVwb2NoCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5Vm90aW5nUmVzdWx0AgUEcG9vbAUFZXBvY2gJAGUCBQpwb29sUmVzdWx0BQR2b3RlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQENa2V5VG90YWxWb3RlcwEFBWVwb2NoCQBlAgUKdG90YWxWb3RlcwUEdm90ZQUDbmlsCQERZGVsZXRlTm9kZUFjdGlvbnMCBQ12b3Rlc0xpc3ROYW1lBQ51c2VyQWRkcmVzc1N0cgUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ5zZXRFcG9jaExlbmd0aAEObmV3RXBvY2hMZW5ndGgEBWNoZWtzCQDMCAIJAQttdXN0TWFuYWdlcgEFAWkJAMwIAgMJAGYCBQ5uZXdFcG9jaExlbmd0aAAABgkAAgECFGludmFsaWQgZXBvY2ggbGVuZ3RoBQNuaWwDCQAAAgUFY2hla3MFBWNoZWtzCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtleUVwb2NoTGVuZ3RoBQ5uZXdFcG9jaExlbmd0aAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBC3NldE1heERlcHRoAQtuZXdNYXhEZXB0aAQFY2hla3MJAMwIAgkBC211c3RNYW5hZ2VyAQUBaQkAzAgCAwkAZgIFC25ld01heERlcHRoAAAGCQACAQIRaW52YWxpZCBtYXggZGVwdGgFA25pbAMJAAACBQVjaGVrcwUFY2hla3MJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgULa2V5TWF4RGVwdGgFC25ld01heERlcHRoBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQETcHJvY2Vzc1ZvdGVJTlRFUk5BTAIHcG9vbFN0cg51c2VyQWRkcmVzc1N0cgQLY2hlY2tDYWxsZXIJAQhtdXN0VGhpcwEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBAt1c2VyQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFDnVzZXJBZGRyZXNzU3RyCQCsAgICKnByb2Nlc3NWb3RlSU5URVJOQUw6IGludmFsaWQgdXNlciBhZGRyZXNzIAUOdXNlckFkZHJlc3NTdHIEBWVwb2NoCQEMZ2V0SW50T3JGYWlsAgUEdGhpcwUPa2V5Q3VycmVudEVwb2NoBA1lcG9jaFByZXZpb3VzCQBlAgUFZXBvY2gAAQQLZXBvY2hMZW5ndGgJAQxnZXRJbnRPckZhaWwCBQR0aGlzBQ5rZXlFcG9jaExlbmd0aAQLc3RhcnRIZWlnaHQJAQxnZXRJbnRPckZhaWwCBQR0aGlzCQEVa2V5U3RhcnRIZWlnaHRCeUVwb2NoAQUFZXBvY2gECWVuZEhlaWdodAkAZAIFC3N0YXJ0SGVpZ2h0BQtlcG9jaExlbmd0aAQTc3RhcnRIZWlnaHRQcmV2aW91cwkBDGdldEludE9yRmFpbAIFBHRoaXMJARVrZXlTdGFydEhlaWdodEJ5RXBvY2gBBQ1lcG9jaFByZXZpb3VzBBFlbmRIZWlnaHRQcmV2aW91cwkAZAIFE3N0YXJ0SGVpZ2h0UHJldmlvdXMFC2Vwb2NoTGVuZ3RoBBBjaGVja1RhcmdldEVwb2NoAwkAZwIFDWVwb2NoUHJldmlvdXMAAAYJAAIBAitwcm9jZXNzVm90ZUlOVEVSTkFMOiBpbnZhbGlkIHByZXZpb3VzIGVwb2NoAwkAAAIFEGNoZWNrVGFyZ2V0RXBvY2gFEGNoZWNrVGFyZ2V0RXBvY2gEBHBvb2wJAQxzdHJpbmdUb1Bvb2wBBQdwb29sU3RyBBNnd3hBbW91bnRBdEVuZFRvdGFsCgABQAkA/AcEBQR0aGlzAhhnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHQJAMwIAgUOdXNlckFkZHJlc3NTdHIJAMwIAgUJZW5kSGVpZ2h0BQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBCQD8BwQFBHRoaXMCGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAkAzAgCBQ51c2VyQWRkcmVzc1N0cgkAzAgCBQllbmRIZWlnaHQFA25pbAUDbmlsAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEG2d3eEFtb3VudEF0RW5kVG90YWxQcmV2aW91cwoAAUAJAPwHBAUEdGhpcwIYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0CQDMCAIFDnVzZXJBZGRyZXNzU3RyCQDMCAIFEWVuZEhlaWdodFByZXZpb3VzBQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBCQD8BwQFBHRoaXMCGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAkAzAgCBQ51c2VyQWRkcmVzc1N0cgkAzAgCBRFlbmRIZWlnaHRQcmV2aW91cwUDbmlsBQNuaWwCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQKdG90YWxWb3RlcwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQENa2V5VG90YWxWb3RlcwEFBWVwb2NoAAAEDHZvdGluZ1Jlc3VsdAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEPa2V5Vm90aW5nUmVzdWx0AgUEcG9vbAUFZXBvY2gAAAQMdm90ZVByZXZpb3VzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQkBB2tleVZvdGUDBQRwb29sBQt1c2VyQWRkcmVzcwUNZXBvY2hQcmV2aW91cwkArAICCQCsAgIJAKwCAgkArAICAhRwcm9jZXNzVm90ZUlOVEVSTkFMIAUHcG9vbFN0cgIBIAUOdXNlckFkZHJlc3NTdHICEjogbm8gcHJldmlvdXMgdm90ZQQEdXNlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEHa2V5VXNlZAIFC3VzZXJBZGRyZXNzBQVlcG9jaAAABAduZXdWb3RlCQBrAwUMdm90ZVByZXZpb3VzBRNnd3hBbW91bnRBdEVuZFRvdGFsBRtnd3hBbW91bnRBdEVuZFRvdGFsUHJldmlvdXMEB2FjdGlvbnMDCQBmAgUHbmV3Vm90ZQAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEHa2V5Vm90ZQMFBHBvb2wFC3VzZXJBZGRyZXNzBQVlcG9jaAUHbmV3Vm90ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDWtleVRvdGFsVm90ZXMBBQVlcG9jaAkAZAIFCnRvdGFsVm90ZXMFB25ld1ZvdGUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlWb3RpbmdSZXN1bHQCBQRwb29sBQVlcG9jaAkAZAIFDHZvdGluZ1Jlc3VsdAUHbmV3Vm90ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBB2tleVVzZWQCBQt1c2VyQWRkcmVzcwUFZXBvY2gJAGQCBQR1c2VkBQduZXdWb3RlBQNuaWwJARFkZWxldGVOb2RlQWN0aW9ucwIJARBnZXRWb3Rlc0xpc3ROYW1lAQUEcG9vbAUOdXNlckFkZHJlc3NTdHIJAJQKAgUHYWN0aW9ucwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARNwcm9jZXNzUG9vbElOVEVSTkFMAQdwb29sU3RyBAtjaGVja0NhbGxlcgkBCG11c3RUaGlzAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEC3RhcmdldEVwb2NoCQBlAgkBDGdldEludE9yRmFpbAIFBHRoaXMFD2tleUN1cnJlbnRFcG9jaAABBBBjaGVja1RhcmdldEVwb2NoAwkAZwIFC3RhcmdldEVwb2NoAAAGCQACAQIpcHJvY2Vzc1Bvb2xJTlRFUk5BTDogaW52YWxpZCB0YXJnZXQgZXBvY2gDCQAAAgUQY2hlY2tUYXJnZXRFcG9jaAUQY2hlY2tUYXJnZXRFcG9jaAQEcG9vbAkBDHN0cmluZ1RvUG9vbAEFB3Bvb2xTdHIEDSR0MDE3MDMwMTcwNzAFBHBvb2wEDWFtb3VudEFzc2V0SWQIBQ0kdDAxNzAzMDE3MDcwAl8xBAxwcmljZUFzc2V0SWQIBQ0kdDAxNzAzMDE3MDcwAl8yBA9zdGFraW5nQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQxnZXRTdHJPckZhaWwCBQR0aGlzBRJrZXlTdGFraW5nQ29udHJhY3QED2ZhY3RvcnlDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBDGdldFN0ck9yRmFpbAIFBHRoaXMFEmtleUZhY3RvcnlDb250cmFjdAQNJHQwMTcyNDgxNzQyMgoAAUAJAPwHBAUPZmFjdG9yeUNvbnRyYWN0AjBnZXRQb29sQ29udHJhY3RBZGRyZXNzQW5kTHBBc3NldEJ5QXNzZXRzUkVBRE9OTFkJAMwIAgUNYW1vdW50QXNzZXRJZAkAzAgCBQxwcmljZUFzc2V0SWQFA25pbAUDbmlsAwkAAQIFAUACEChTdHJpbmcsIFN0cmluZykFAUAJAAIBCQCsAgIJAAMBCQD8BwQFD2ZhY3RvcnlDb250cmFjdAIwZ2V0UG9vbENvbnRyYWN0QWRkcmVzc0FuZExwQXNzZXRCeUFzc2V0c1JFQURPTkxZCQDMCAIFDWFtb3VudEFzc2V0SWQJAMwIAgUMcHJpY2VBc3NldElkBQNuaWwFA25pbAIlIGNvdWxkbid0IGJlIGNhc3QgdG8gKFN0cmluZywgU3RyaW5nKQQTcG9vbENvbnRyYWN0QWRkcmVzcwgFDSR0MDE3MjQ4MTc0MjICXzEECWxwQXNzZXRJZAgFDSR0MDE3MjQ4MTc0MjICXzIEAXIKAAFACQD8BwQFD3N0YWtpbmdDb250cmFjdAISdXNlcnNMaXN0VHJhdmVyc2FsCQDMCAIFCWxwQXNzZXRJZAUDbmlsBQNuaWwDCQABAgUBQAIHQm9vbGVhbgUBQAkAAgEJAKwCAgkAAwEJAPwHBAUPc3Rha2luZ0NvbnRyYWN0AhJ1c2Vyc0xpc3RUcmF2ZXJzYWwJAMwIAgUJbHBBc3NldElkBQNuaWwFA25pbAIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgMJAAACBQFyBQFyAwUBcgkAlAoCBQNuaWwGBAp0b3RhbFZvdGVzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ1rZXlUb3RhbFZvdGVzAQULdGFyZ2V0RXBvY2gAAAQMdm90aW5nUmVzdWx0CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ9rZXlWb3RpbmdSZXN1bHQCBQRwb29sBQt0YXJnZXRFcG9jaAAABAVzaGFyZQMJAAACBQp0b3RhbFZvdGVzAAAAAAkAawMFDHZvdGluZ1Jlc3VsdAUOcG9vbFdlaWdodE11bHQFCnRvdGFsVm90ZXMED21vZGlmeVdlaWdodEludgkA/AcEBQ9mYWN0b3J5Q29udHJhY3QCDG1vZGlmeVdlaWdodAkAzAgCBQlscEFzc2V0SWQJAMwIAgUFc2hhcmUFA25pbAUDbmlsAwkAAAIFD21vZGlmeVdlaWdodEludgUPbW9kaWZ5V2VpZ2h0SW52CQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQxrZXlQb29sU2hhcmUCBQRwb29sBQt0YXJnZXRFcG9jaAUFc2hhcmUFA25pbAcJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOZmluYWxpemVIZWxwZXIABAVlcG9jaAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ9rZXlDdXJyZW50RXBvY2gAAAQNcHJldmlvdXNFcG9jaAkAZQIFBWVwb2NoAAEEC3N0YXJ0SGVpZ2h0CQEMZ2V0SW50T3JGYWlsAgUEdGhpcwkBFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaAEFBWVwb2NoBAtlcG9jaExlbmd0aAkBDGdldEludE9yRmFpbAIFBHRoaXMFDmtleUVwb2NoTGVuZ3RoBAllbmRIZWlnaHQJAGQCBQtzdGFydEhlaWdodAULZXBvY2hMZW5ndGgEF2ZpbmFsaXphdGlvblN0YWdlT3JVbml0CQCaCAIFBHRoaXMFFGtleUZpbmFsaXphdGlvblN0YWdlAwkAZwIFBmhlaWdodAUJZW5kSGVpZ2h0BAhuZXdFcG9jaAkAZAIFBWVwb2NoAAEJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaAEFCG5ld0Vwb2NoBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFDmtleVN0YXJ0SGVpZ2h0BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFD2tleUN1cnJlbnRFcG9jaAUIbmV3RXBvY2gJAMwIAgkBDEludGVnZXJFbnRyeQIFFGtleUZpbmFsaXphdGlvblN0YWdlBRZmaW5hbGl6YXRpb25TdGFnZVRvdGFsBQNuaWwGAwkAAAIFF2ZpbmFsaXphdGlvblN0YWdlT3JVbml0BQR1bml0CQCUCgIFA25pbAcDCQAAAgUXZmluYWxpemF0aW9uU3RhZ2VPclVuaXQFFmZpbmFsaXphdGlvblN0YWdlVG90YWwECnBvb2xPclVuaXQJAKIIAQULa2V5TmV4dFBvb2wECnVzZXJPclVuaXQJAKIIAQULa2V5TmV4dFVzZXIEByRtYXRjaDAFCnBvb2xPclVuaXQDCQABAgUHJG1hdGNoMAIEVW5pdAQHJG1hdGNoMQkAoggBCQELa2V5TGlzdEhlYWQBBQ1wb29sc0xpc3ROYW1lAwkAAQIFByRtYXRjaDECBFVuaXQJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUUa2V5RmluYWxpemF0aW9uU3RhZ2UFF2ZpbmFsaXphdGlvblN0YWdlU2hhcmVzCQDMCAIJAQtEZWxldGVFbnRyeQEFC2tleU5leHRQb29sCQDMCAIJAQtEZWxldGVFbnRyeQEFC2tleU5leHRVc2VyBQNuaWwGAwkAAQIFByRtYXRjaDECBlN0cmluZwQMcG9vbHNIZWFkU3RyBQckbWF0Y2gxCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgULa2V5TmV4dFBvb2wFDHBvb2xzSGVhZFN0cgUDbmlsBgkAAgECC01hdGNoIGVycm9yAwkAAQIFByRtYXRjaDACBlN0cmluZwQHcG9vbFN0cgUHJG1hdGNoMAQEcG9vbAkBDHN0cmluZ1RvUG9vbAEFB3Bvb2xTdHIEDm5leHRVc2VyT3JVbml0BAckbWF0Y2gxBQp1c2VyT3JVbml0AwkAAQIFByRtYXRjaDECBFVuaXQJAKIIAQkBC2tleUxpc3RIZWFkAQkBEGdldFZvdGVzTGlzdE5hbWUBBQRwb29sAwkAAQIFByRtYXRjaDECBlN0cmluZwQEdXNlcgUHJG1hdGNoMQQOcHJvY2Vzc1ZvdGVJbnYJAPwHBAUEdGhpcwITcHJvY2Vzc1ZvdGVJTlRFUk5BTAkAzAgCBQdwb29sU3RyCQDMCAIFBHVzZXIFA25pbAUDbmlsAwkAAAIFDnByb2Nlc3NWb3RlSW52BQ5wcm9jZXNzVm90ZUludgkAoggBCQELa2V5TGlzdE5leHQCCQEQZ2V0Vm90ZXNMaXN0TmFtZQEFBHBvb2wFBHVzZXIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAgtNYXRjaCBlcnJvcgQHJG1hdGNoMQUObmV4dFVzZXJPclVuaXQDCQABAgUHJG1hdGNoMQIEVW5pdAQObmV4dFBvb2xPclVuaXQJAKIIAQkBC2tleUxpc3ROZXh0AgUNcG9vbHNMaXN0TmFtZQUHcG9vbFN0cgQHJG1hdGNoMgUObmV4dFBvb2xPclVuaXQDCQABAgUHJG1hdGNoMgIEVW5pdAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRRrZXlGaW5hbGl6YXRpb25TdGFnZQUXZmluYWxpemF0aW9uU3RhZ2VTaGFyZXMJAMwIAgkBC0RlbGV0ZUVudHJ5AQULa2V5TmV4dFBvb2wJAMwIAgkBC0RlbGV0ZUVudHJ5AQULa2V5TmV4dFVzZXIFA25pbAYDCQABAgUHJG1hdGNoMgIGU3RyaW5nBAFzBQckbWF0Y2gyCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgULa2V5TmV4dFBvb2wFAXMJAMwIAgkBC0RlbGV0ZUVudHJ5AQULa2V5TmV4dFVzZXIFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQckbWF0Y2gxAgZTdHJpbmcECG5leHRVc2VyBQckbWF0Y2gxCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgULa2V5TmV4dFVzZXIFCG5leHRVc2VyBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IJAAIBAgtNYXRjaCBlcnJvcgMJAAACBRdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdAUXZmluYWxpemF0aW9uU3RhZ2VTaGFyZXMECnBvb2xPclVuaXQJAKIIAQULa2V5TmV4dFBvb2wEByRtYXRjaDAFCnBvb2xPclVuaXQDCQABAgUHJG1hdGNoMAIEVW5pdAQHJG1hdGNoMQkAoggBCQELa2V5TGlzdEhlYWQBBQ1wb29sc0xpc3ROYW1lAwkAAQIFByRtYXRjaDECBFVuaXQJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBBRRrZXlGaW5hbGl6YXRpb25TdGFnZQkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBDGtleUZpbmFsaXplZAEFDXByZXZpb3VzRXBvY2gGCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrZXlDdXJyZW50RXBvY2hVaQUFZXBvY2gJAMwIAgkBDEludGVnZXJFbnRyeQIFEGtleVN0YXJ0SGVpZ2h0VWkFC3N0YXJ0SGVpZ2h0BQNuaWwGAwkAAQIFByRtYXRjaDECBlN0cmluZwQLbmV4dFBvb2xTdHIFByRtYXRjaDEJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQtrZXlOZXh0UG9vbAULbmV4dFBvb2xTdHIFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEB3Bvb2xTdHIFByRtYXRjaDAEAXIKAAFACQD8BwQFBHRoaXMCE3Byb2Nlc3NQb29sSU5URVJOQUwJAMwIAgUHcG9vbFN0cgUDbmlsBQNuaWwDCQABAgUBQAIHQm9vbGVhbgUBQAkAAgEJAKwCAgkAAwEJAPwHBAUEdGhpcwITcHJvY2Vzc1Bvb2xJTlRFUk5BTAkAzAgCBQdwb29sU3RyBQNuaWwFA25pbAIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgMJAAACBQFyBQFyAwUBcgkAlAoCBQNuaWwGBA5uZXh0UG9vbE9yVW5pdAkAoggBCQELa2V5TGlzdE5leHQCBQ1wb29sc0xpc3ROYW1lBQdwb29sU3RyBAckbWF0Y2gxBQ5uZXh0UG9vbE9yVW5pdAMJAAECBQckbWF0Y2gxAgRVbml0CQCUCgIJAMwIAgkBC0RlbGV0ZUVudHJ5AQUUa2V5RmluYWxpemF0aW9uU3RhZ2UJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQxrZXlGaW5hbGl6ZWQBBQ1wcmV2aW91c0Vwb2NoBgkAzAgCCQEMSW50ZWdlckVudHJ5AgURa2V5Q3VycmVudEVwb2NoVWkFBWVwb2NoCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrZXlTdGFydEhlaWdodFVpBQtzdGFydEhlaWdodAkAzAgCCQELRGVsZXRlRW50cnkBBQtrZXlOZXh0UG9vbAUDbmlsBgMJAAECBQckbWF0Y2gxAgZTdHJpbmcEC25leHRQb29sU3RyBQckbWF0Y2gxCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgULa2V5TmV4dFBvb2wFC25leHRQb29sU3RyBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAgtNYXRjaCBlcnJvcgkAAgECFmZpbmFsaXphdGlvbiBpcyBicm9rZW4BaQEPZmluYWxpemVXcmFwcGVyAQdjb3VudGVyBAZyZXN1bHQKAAFACQD8BwQFBHRoaXMCDmZpbmFsaXplSGVscGVyBQNuaWwFA25pbAMJAAECBQFAAgdCb29sZWFuBQFACQACAQkArAICCQADAQkA/AcEBQR0aGlzAg5maW5hbGl6ZUhlbHBlcgUDbmlsBQNuaWwCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4DCQAAAgUGcmVzdWx0BQZyZXN1bHQDCQEBIQEFBnJlc3VsdAMJAAACBQdjb3VudGVyAAAJAAIBAh5DdXJyZW50IHZvdGluZyBpcyBub3Qgb3ZlciB5ZXQJAJQKAgUDbmlsBQR1bml0BAhtYXhEZXB0aAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQtrZXlNYXhEZXB0aAUPbWF4RGVwdGhEZWZhdWx0AwkAZgIFCG1heERlcHRoBQdjb3VudGVyBANpbnYJAPwHBAUEdGhpcwIPZmluYWxpemVXcmFwcGVyCQDMCAIJAGQCBQdjb3VudGVyAAEFA25pbAUDbmlsAwkAAAIFA2ludgUDaW52CQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIZmluYWxpemUABANpbnYJAPwHBAUEdGhpcwIPZmluYWxpemVXcmFwcGVyCQDMCAIAAAUDbmlsBQNuaWwDCQAAAgUDaW52BQNpbnYJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEm9uVmVyaWZpY2F0aW9uTG9zcwEHYXNzZXRJZAkAlAoCBQNuaWwFBHVuaXQBaQEUY29udGFpbnNOb2RlUkVBRE9OTFkCCGxpc3ROYW1lAmlkCQCUCgIFA25pbAkBDGNvbnRhaW5zTm9kZQIFCGxpc3ROYW1lBQJpZAFpAQppbnNlcnROb2RlAghsaXN0TmFtZQJpZAQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCQCUCgIJARFpbnNlcnROb2RlQWN0aW9ucwIFCGxpc3ROYW1lBQJpZAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpkZWxldGVOb2RlAghsaXN0TmFtZQJpZAQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyCQCUCgIJARFkZWxldGVOb2RlQWN0aW9ucwIFCGxpc3ROYW1lBQJpZAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAED3RhcmdldFB1YmxpY0tleQQHJG1hdGNoMAkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwBQJwawMJAAECBQckbWF0Y2gwAgRVbml0CAUCdHgPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFD3RhcmdldFB1YmxpY0tleXF/J7M=", "chainId": 84, "height": 2107539, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ELK4b5o9ABp9H6iJxgTtC9s365ch86usH4mwKL82yXw2 Next: 5onWkaJRBHfGjUcqGk4tUz1cA8dbDDN5R6GxnRP47dPB Diff:
OldNewDifferences
526526 let y = br._1
527527 let z = br._2
528528 let aK = addressFromStringValue(Q(this, l))
529+ let aH = addressFromStringValue(Q(this, j))
529530 let bs = {
530- let R = invoke(aK, "usersListTraversal", [y, z], nil)
531+ let R = invoke(aH, "getPoolContractAddressAndLpAssetByAssetsREADONLY", [y, z], nil)
532+ if ($isInstanceOf(R, "(String, String)"))
533+ then R
534+ else throw(($getType(invoke(aH, "getPoolContractAddressAndLpAssetByAssetsREADONLY", [y, z], nil)) + " couldn't be cast to (String, String)"))
535+ }
536+ let bt = bs._1
537+ let bu = bs._2
538+ let bv = {
539+ let R = invoke(aK, "usersListTraversal", [bu], nil)
531540 if ($isInstanceOf(R, "Boolean"))
532541 then R
533- else throw(($getType(invoke(aK, "usersListTraversal", [y, z], nil)) + " couldn't be cast to Boolean"))
542+ else throw(($getType(invoke(aK, "usersListTraversal", [bu], nil)) + " couldn't be cast to Boolean"))
534543 }
535- if ((bs == bs))
536- then if (bs)
544+ if ((bv == bv))
545+ then if (bv)
537546 then $Tuple2(nil, true)
538547 else {
539548 let aY = valueOrElse(getInteger(this, I(bq)), 0)
540549 let bn = valueOrElse(getInteger(this, E(w, bq)), 0)
541- let bt = if ((aY == 0))
550+ let bw = if ((aY == 0))
542551 then 0
543552 else fraction(bn, b, aY)
544- let aH = addressFromStringValue(Q(this, j))
545- let bu = invoke(aH, "modifyWeight", [y, z, bt], nil)
546- if ((bu == bu))
547- then $Tuple2([IntegerEntry(G(w, bq), bt)], false)
553+ let bx = invoke(aH, "modifyWeight", [bu, bw], nil)
554+ if ((bx == bx))
555+ then $Tuple2([IntegerEntry(G(w, bq), bw)], false)
548556 else throw("Strict value is not equal to itself.")
549557 }
550558 else throw("Strict value is not equal to itself.")
559567 @Callable(av)
560568 func finalizeHelper () = {
561569 let t = valueOrElse(getInteger(this, g), 0)
562- let bv = (t - 1)
570+ let by = (t - 1)
563571 let aS = S(this, s(t))
564572 let aL = S(this, f)
565573 let aT = (aS + aL)
566574 let aU = getInteger(this, m)
567575 if ((height >= aT))
568576 then {
569- let bw = (t + 1)
570- $Tuple2([IntegerEntry(s(bw), height), IntegerEntry(p, height), IntegerEntry(g, bw), IntegerEntry(m, d)], true)
577+ let bz = (t + 1)
578+ $Tuple2([IntegerEntry(s(bz), height), IntegerEntry(p, height), IntegerEntry(g, bz), IntegerEntry(m, d)], true)
571579 }
572580 else if ((aU == unit))
573581 then $Tuple2(nil, false)
574582 else if ((aU == d))
575583 then {
576- let bx = getString(n)
577- let by = getString(o)
578- let N = bx
584+ let bA = getString(n)
585+ let bB = getString(o)
586+ let N = bA
579587 if ($isInstanceOf(N, "Unit"))
580588 then {
581- let bz = getString(Z(W))
582- if ($isInstanceOf(bz, "Unit"))
589+ let bC = getString(Z(W))
590+ if ($isInstanceOf(bC, "Unit"))
583591 then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
584- else if ($isInstanceOf(bz, "String"))
592+ else if ($isInstanceOf(bC, "String"))
585593 then {
586- let bA = bz
587- $Tuple2([StringEntry(n, bA)], true)
594+ let bD = bC
595+ $Tuple2([StringEntry(n, bD)], true)
588596 }
589597 else throw("Match error")
590598 }
592600 then {
593601 let bh = N
594602 let w = U(bh)
595- let bB = {
596- let bz = by
597- if ($isInstanceOf(bz, "Unit"))
603+ let bE = {
604+ let bC = bB
605+ if ($isInstanceOf(bC, "Unit"))
598606 then getString(Z(X(w)))
599- else if ($isInstanceOf(bz, "String"))
607+ else if ($isInstanceOf(bC, "String"))
600608 then {
601- let bC = bz
602- let bD = invoke(this, "processVoteINTERNAL", [bh, bC], nil)
603- if ((bD == bD))
604- then getString(af(X(w), bC))
609+ let bF = bC
610+ let bG = invoke(this, "processVoteINTERNAL", [bh, bF], nil)
611+ if ((bG == bG))
612+ then getString(af(X(w), bF))
605613 else throw("Strict value is not equal to itself.")
606614 }
607615 else throw("Match error")
608616 }
609- let bz = bB
610- if ($isInstanceOf(bz, "Unit"))
617+ let bC = bE
618+ if ($isInstanceOf(bC, "Unit"))
611619 then {
612- let bE = getString(af(W, bh))
613- let bF = bE
614- if ($isInstanceOf(bF, "Unit"))
620+ let bH = getString(af(W, bh))
621+ let bI = bH
622+ if ($isInstanceOf(bI, "Unit"))
615623 then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
616- else if ($isInstanceOf(bF, "String"))
624+ else if ($isInstanceOf(bI, "String"))
617625 then {
618- let ar = bF
626+ let ar = bI
619627 $Tuple2([StringEntry(n, ar), DeleteEntry(o)], true)
620628 }
621629 else throw("Match error")
622630 }
623- else if ($isInstanceOf(bz, "String"))
631+ else if ($isInstanceOf(bC, "String"))
624632 then {
625- let bG = bz
626- $Tuple2([StringEntry(o, bG)], true)
633+ let bJ = bC
634+ $Tuple2([StringEntry(o, bJ)], true)
627635 }
628636 else throw("Match error")
629637 }
631639 }
632640 else if ((aU == e))
633641 then {
634- let bx = getString(n)
635- let N = bx
642+ let bA = getString(n)
643+ let N = bA
636644 if ($isInstanceOf(N, "Unit"))
637645 then {
638- let bz = getString(Z(W))
639- if ($isInstanceOf(bz, "Unit"))
640- then $Tuple2([DeleteEntry(m), BooleanEntry(u(bv), true), IntegerEntry(q, t), IntegerEntry(r, aS)], true)
641- else if ($isInstanceOf(bz, "String"))
646+ let bC = getString(Z(W))
647+ if ($isInstanceOf(bC, "Unit"))
648+ then $Tuple2([DeleteEntry(m), BooleanEntry(u(by), true), IntegerEntry(q, t), IntegerEntry(r, aS)], true)
649+ else if ($isInstanceOf(bC, "String"))
642650 then {
643- let bH = bz
644- $Tuple2([StringEntry(n, bH)], true)
651+ let bK = bC
652+ $Tuple2([StringEntry(n, bK)], true)
645653 }
646654 else throw("Match error")
647655 }
648656 else if ($isInstanceOf(N, "String"))
649657 then {
650658 let bh = N
651- let bs = {
659+ let bv = {
652660 let R = invoke(this, "processPoolINTERNAL", [bh], nil)
653661 if ($isInstanceOf(R, "Boolean"))
654662 then R
655663 else throw(($getType(invoke(this, "processPoolINTERNAL", [bh], nil)) + " couldn't be cast to Boolean"))
656664 }
657- if ((bs == bs))
658- then if (bs)
665+ if ((bv == bv))
666+ then if (bv)
659667 then $Tuple2(nil, true)
660668 else {
661- let bE = getString(af(W, bh))
662- let bz = bE
663- if ($isInstanceOf(bz, "Unit"))
664- then $Tuple2([DeleteEntry(m), BooleanEntry(u(bv), true), IntegerEntry(q, t), IntegerEntry(r, aS), DeleteEntry(n)], true)
665- else if ($isInstanceOf(bz, "String"))
669+ let bH = getString(af(W, bh))
670+ let bC = bH
671+ if ($isInstanceOf(bC, "Unit"))
672+ then $Tuple2([DeleteEntry(m), BooleanEntry(u(by), true), IntegerEntry(q, t), IntegerEntry(r, aS), DeleteEntry(n)], true)
673+ else if ($isInstanceOf(bC, "String"))
666674 then {
667- let bH = bz
668- $Tuple2([StringEntry(n, bH)], true)
675+ let bK = bC
676+ $Tuple2([StringEntry(n, bK)], true)
669677 }
670678 else throw("Match error")
671679 }
679687
680688
681689 @Callable(av)
682-func finalizeWrapper (bI) = {
683- let bJ = {
690+func finalizeWrapper (bL) = {
691+ let bM = {
684692 let R = invoke(this, "finalizeHelper", nil, nil)
685693 if ($isInstanceOf(R, "Boolean"))
686694 then R
687695 else throw(($getType(invoke(this, "finalizeHelper", nil, nil)) + " couldn't be cast to Boolean"))
688696 }
689- if ((bJ == bJ))
690- then if (!(bJ))
691- then if ((bI == 0))
697+ if ((bM == bM))
698+ then if (!(bM))
699+ then if ((bL == 0))
692700 then throw("Current voting is not over yet")
693701 else $Tuple2(nil, unit)
694702 else {
695- let bK = valueOrElse(getInteger(this, h), c)
696- if ((bK > bI))
703+ let bN = valueOrElse(getInteger(this, h), c)
704+ if ((bN > bL))
697705 then {
698- let bL = invoke(this, "finalizeWrapper", [(bI + 1)], nil)
699- if ((bL == bL))
706+ let bO = invoke(this, "finalizeWrapper", [(bL + 1)], nil)
707+ if ((bO == bO))
700708 then $Tuple2(nil, unit)
701709 else throw("Strict value is not equal to itself.")
702710 }
709717
710718 @Callable(av)
711719 func finalize () = {
712- let bL = invoke(this, "finalizeWrapper", [0], nil)
713- if ((bL == bL))
720+ let bO = invoke(this, "finalizeWrapper", [0], nil)
721+ if ((bO == bO))
714722 then $Tuple2(nil, unit)
715723 else throw("Strict value is not equal to itself.")
716724 }
718726
719727
720728 @Callable(av)
721-func onVerificationLoss (bM) = $Tuple2(nil, unit)
729+func onVerificationLoss (bP) = $Tuple2(nil, unit)
722730
723731
724732
746754 }
747755
748756
749-@Verifier(bN)
750-func bO () = {
751- let bP = {
757+@Verifier(bQ)
758+func bR () = {
759+ let bS = {
752760 let N = aq()
753761 if ($isInstanceOf(N, "ByteVector"))
754762 then {
756764 ax
757765 }
758766 else if ($isInstanceOf(N, "Unit"))
759- then bN.senderPublicKey
767+ then bQ.senderPublicKey
760768 else throw("Match error")
761769 }
762- sigVerify(bN.bodyBytes, bN.proofs[0], bP)
770+ sigVerify(bQ.bodyBytes, bQ.proofs[0], bS)
763771 }
764772
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 100000000
77
88 let c = 10
99
1010 let d = 0
1111
1212 let e = 1
1313
1414 let f = makeString(["%s", "epochLength"], a)
1515
1616 let g = makeString(["%s", "currentEpoch"], a)
1717
1818 let h = makeString(["%s", "maxDepth"], a)
1919
2020 let i = makeString(["%s", "votingEmissionCandidateContract"], a)
2121
2222 let j = makeString(["%s", "factoryContract"], a)
2323
2424 let k = makeString(["%s", "boostingContract"], a)
2525
2626 let l = makeString(["%s", "stakingContract"], a)
2727
2828 let m = makeString(["%s", "finalizationStage"], a)
2929
3030 let n = makeString(["%s", "nextPool"], a)
3131
3232 let o = makeString(["%s", "nextUser"], a)
3333
3434 let p = makeString(["%s", "startHeight"], a)
3535
3636 let q = makeString(["%s", "currentEpochUi"], a)
3737
3838 let r = makeString(["%s", "startHeightUi"], a)
3939
4040 func s (t) = makeString(["%s%d", "startHeight", toString(t)], a)
4141
4242
4343 func u (t) = makeString(["%s%d", "finalized", toString(t)], a)
4444
4545
4646 func v (w) = {
4747 let x = w
4848 let y = x._1
4949 let z = x._2
5050 makeString(["%s%s%s", "inList", y, z], a)
5151 }
5252
5353
5454 func A (B,t) = makeString(["%s%s%d", "used", toString(B), toString(t)], a)
5555
5656
5757 func C (w,B,t) = {
5858 let D = w
5959 let y = D._1
6060 let z = D._2
6161 makeString(["%s%s%s%s%d", "vote", y, z, toString(B), toString(t)], a)
6262 }
6363
6464
6565 func E (w,t) = {
6666 let F = w
6767 let y = F._1
6868 let z = F._2
6969 makeString(["%s%s%s%d", "votingResult", y, z, toString(t)], a)
7070 }
7171
7272
7373 func G (w,t) = {
7474 let H = w
7575 let y = H._1
7676 let z = H._2
7777 makeString(["%s%s%s%d", "poolShare", y, z, toString(t)], a)
7878 }
7979
8080
8181 func I (t) = makeString(["%s%d", "totalVotes", toString(t)], a)
8282
8383
8484 func J (B,K,L) = {
8585 let M = makeString(["mandatory ", toString(B), ".", K, " is not defined"], "")
8686 valueOrErrorMessage({
8787 let N = L
8888 if ($isInstanceOf(N, "String"))
8989 then {
9090 let O = N
9191 getString(B, K)
9292 }
9393 else if ($isInstanceOf(N, "Int"))
9494 then {
9595 let P = N
9696 getInteger(B, K)
9797 }
9898 else throw("invalid entry type")
9999 }, M)
100100 }
101101
102102
103103 func Q (B,K) = {
104104 let R = J(B, K, "")
105105 if ($isInstanceOf(R, "String"))
106106 then R
107107 else throw(($getType(J(B, K, "")) + " couldn't be cast to String"))
108108 }
109109
110110
111111 func S (B,K) = {
112112 let R = J(B, K, 0)
113113 if ($isInstanceOf(R, "Int"))
114114 then R
115115 else throw(($getType(J(B, K, 0)) + " couldn't be cast to Int"))
116116 }
117117
118118
119119 func T (w) = ((w._1 + a) + w._2)
120120
121121
122122 func U (O) = {
123123 let V = split(O, a)
124124 if ((size(V) == 2))
125125 then $Tuple2(V[0], V[1])
126126 else throw("invalid pool string")
127127 }
128128
129129
130130 let W = "pools"
131131
132132 func X (w) = {
133133 let Y = w
134134 let y = Y._1
135135 let z = Y._2
136136 makeString(["votes", y, z], a)
137137 }
138138
139139
140140 func Z (aa) = {
141141 let ab = if ((aa == W))
142142 then "%s%s"
143143 else "%s%s%s%s"
144144 makeString([ab, aa, "head"], a)
145145 }
146146
147147
148148 func ac (aa) = {
149149 let ab = if ((aa == W))
150150 then "%s%s"
151151 else "%s%s%s%s"
152152 makeString([ab, aa, "size"], a)
153153 }
154154
155155
156156 func ad (aa,ae) = {
157157 let ab = if ((aa == W))
158158 then "%s%s%s%s"
159159 else "%s%s%s%s%s"
160160 makeString([ab, aa, ae, "prev"], a)
161161 }
162162
163163
164164 func af (aa,ae) = {
165165 let ab = if ((aa == W))
166166 then "%s%s%s%s"
167167 else "%s%s%s%s%s"
168168 makeString([ab, aa, ae, "next"], a)
169169 }
170170
171171
172172 func ag (aa,ae) = {
173173 let ah = getString(this, Z(aa))
174174 let ai = getString(this, ad(aa, ae))
175175 let aj = getString(this, af(aa, ae))
176176 if (if ((ae == valueOrElse(ah, "")))
177177 then true
178178 else (ai != unit))
179179 then true
180180 else (aj != unit)
181181 }
182182
183183
184184 func ak (aa,ae) = {
185185 let ah = getString(this, Z(aa))
186186 let al = valueOrElse(getInteger(this, ac(aa)), 0)
187187 let am = if (!(ag(aa, ae)))
188188 then true
189189 else throw("Node exists")
190190 if ((am == am))
191191 then (([IntegerEntry(ac(aa), (al + 1))] ++ (if ((ah != unit))
192192 then [StringEntry(af(aa, ae), value(ah)), StringEntry(ad(aa, value(ah)), ae)]
193193 else nil)) ++ [StringEntry(Z(aa), ae)])
194194 else throw("Strict value is not equal to itself.")
195195 }
196196
197197
198198 func an (aa,ae) = {
199199 let ah = getString(this, Z(aa))
200200 let al = valueOrElse(getInteger(this, ac(aa)), 0)
201201 let ai = getString(this, ad(aa, ae))
202202 let aj = getString(this, af(aa, ae))
203203 ([IntegerEntry(ac(aa), (al - 1))] ++ (if (if ((ai != unit))
204204 then (aj != unit)
205205 else false)
206206 then [StringEntry(af(aa, value(ai)), value(aj)), StringEntry(ad(aa, value(aj)), value(ai)), DeleteEntry(ad(aa, ae)), DeleteEntry(af(aa, ae))]
207207 else if ((aj != unit))
208208 then [StringEntry(Z(aa), value(aj)), DeleteEntry(af(aa, ae)), DeleteEntry(ad(aa, value(aj)))]
209209 else if ((ai != unit))
210210 then [DeleteEntry(ad(aa, ae)), DeleteEntry(af(aa, value(ai)))]
211211 else if ((ae == valueOrElse(ah, "")))
212212 then [DeleteEntry(Z(aa))]
213213 else throw(((("invalid node: " + aa) + ".") + ae))))
214214 }
215215
216216
217217 func ao () = "%s__managerPublicKey"
218218
219219
220220 func ap () = "%s__pendingManagerPublicKey"
221221
222222
223223 func aq () = {
224224 let N = getString(ao())
225225 if ($isInstanceOf(N, "String"))
226226 then {
227227 let ar = N
228228 fromBase58String(ar)
229229 }
230230 else if ($isInstanceOf(N, "Unit"))
231231 then unit
232232 else throw("Match error")
233233 }
234234
235235
236236 func as () = {
237237 let N = getString(ap())
238238 if ($isInstanceOf(N, "String"))
239239 then {
240240 let ar = N
241241 fromBase58String(ar)
242242 }
243243 else if ($isInstanceOf(N, "Unit"))
244244 then unit
245245 else throw("Match error")
246246 }
247247
248248
249249 let at = throw("Permission denied")
250250
251251 func au (av) = if ((av.caller == this))
252252 then true
253253 else at
254254
255255
256256 func aw (av) = {
257257 let N = aq()
258258 if ($isInstanceOf(N, "ByteVector"))
259259 then {
260260 let ax = N
261261 if ((av.callerPublicKey == ax))
262262 then true
263263 else at
264264 }
265265 else if ($isInstanceOf(N, "Unit"))
266266 then au(av)
267267 else throw("Match error")
268268 }
269269
270270
271271 @Callable(av)
272272 func setManager (ay) = {
273273 let az = aw(av)
274274 if ((az == az))
275275 then {
276276 let aA = fromBase58String(ay)
277277 if ((aA == aA))
278278 then [StringEntry(ap(), ay)]
279279 else throw("Strict value is not equal to itself.")
280280 }
281281 else throw("Strict value is not equal to itself.")
282282 }
283283
284284
285285
286286 @Callable(av)
287287 func confirmManager () = {
288288 let aB = as()
289289 let aC = if (isDefined(aB))
290290 then true
291291 else throw("No pending manager")
292292 if ((aC == aC))
293293 then {
294294 let aD = if ((av.callerPublicKey == value(aB)))
295295 then true
296296 else throw("You are not pending manager")
297297 if ((aD == aD))
298298 then [StringEntry(ao(), toBase58String(value(aB))), DeleteEntry(ap())]
299299 else throw("Strict value is not equal to itself.")
300300 }
301301 else throw("Strict value is not equal to itself.")
302302 }
303303
304304
305305
306306 @Callable(av)
307307 func getUserGwxAmountAtHeight (aE,aF) = {
308308 let aG = valueOrErrorMessage(addressFromString(Q(this, k)), "invalid boosting contract address")
309309 $Tuple2(nil, {
310310 let R = invoke(aG, "getUserGwxAmountAtHeightREADONLY", [aE, aF], nil)
311311 if ($isInstanceOf(R, "Int"))
312312 then R
313313 else throw(($getType(invoke(aG, "getUserGwxAmountAtHeightREADONLY", [aE, aF], nil)) + " couldn't be cast to Int"))
314314 })
315315 }
316316
317317
318318
319319 @Callable(av)
320320 func constructor (aH,aI,aJ,aK,aL) = {
321321 let aM = [aw(av), if ((addressFromString(aH) != unit))
322322 then true
323323 else "invalid factory contract address", if ((addressFromString(aI) != unit))
324324 then true
325325 else "invalid voting emission candidate contract address", if ((addressFromString(aJ) != unit))
326326 then true
327327 else "invalid boosting contract address", if ((addressFromString(aK) != unit))
328328 then true
329329 else "invalid staking contract address", if ((aL > 0))
330330 then true
331331 else throw("invalid epoch length")]
332332 if ((aM == aM))
333333 then $Tuple2([StringEntry(j, aH), StringEntry(i, aI), StringEntry(k, aJ), StringEntry(l, aK), IntegerEntry(f, aL)], unit)
334334 else throw("Strict value is not equal to itself.")
335335 }
336336
337337
338338
339339 @Callable(av)
340340 func create (y,z) = {
341341 let aN = [if ((toBase58String(av.caller.bytes) == valueOrElse(getString(this, i), "")))
342342 then true
343343 else aw(av)]
344344 if ((aN == aN))
345345 then {
346346 let w = $Tuple2(y, z)
347347 let aO = ([BooleanEntry(v(w), true)] ++ ak(W, T(w)))
348348 let aP = (getInteger(this, g) == unit)
349349 let aQ = if (aP)
350350 then {
351351 let t = 0
352352 [IntegerEntry(g, t), IntegerEntry(s(t), height), IntegerEntry(p, height), IntegerEntry(q, t), IntegerEntry(r, height)]
353353 }
354354 else nil
355355 $Tuple2((aO ++ aQ), unit)
356356 }
357357 else throw("Strict value is not equal to itself.")
358358 }
359359
360360
361361
362362 @Callable(av)
363363 func vote (y,z,aR) = {
364364 let w = $Tuple2(y, z)
365365 let t = valueOrElse(getInteger(this, g), 0)
366366 let aS = S(this, s(t))
367367 let aL = S(this, f)
368368 let aT = (aS + aL)
369369 let aU = getInteger(this, m)
370370 let aV = valueOrElse(getInteger(this, A(av.caller, t)), 0)
371371 let aW = valueOrElse(getInteger(this, C(w, av.caller, t)), 0)
372372 let aX = valueOrElse(getInteger(this, E(w, t)), 0)
373373 let aY = valueOrElse(getInteger(this, I(t)), 0)
374374 let aZ = {
375375 let R = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(av.caller.bytes), aT], nil)
376376 if ($isInstanceOf(R, "Int"))
377377 then R
378378 else throw(($getType(invoke(this, "getUserGwxAmountAtHeight", [toBase58String(av.caller.bytes), aT], nil)) + " couldn't be cast to Int"))
379379 }
380380 let ba = (aZ - aV)
381381 let bb = (aW + aR)
382382 let aN = [if ((getBoolean(v(w)) != unit))
383383 then true
384384 else throw("invalid assets"), if ((aT > height))
385385 then true
386386 else throw("invalid height"), if ((aU == unit))
387387 then true
388388 else throw("finalization in progress"), if ((aZ > 0))
389389 then true
390390 else throw("you do not have gWX"), if (if ((aR > 0))
391391 then (ba >= aR)
392392 else false)
393393 then true
394394 else throw("invalid amount")]
395395 if ((aN == aN))
396396 then {
397397 let bc = X(w)
398398 let bd = toString(av.caller)
399399 let be = if (ag(bc, bd))
400400 then nil
401401 else ak(bc, bd)
402402 $Tuple2(([IntegerEntry(A(av.caller, t), (aV + aR)), IntegerEntry(C(w, av.caller, t), bb), IntegerEntry(E(w, t), (aX + aR)), IntegerEntry(I(t), (aY + aR))] ++ be), unit)
403403 }
404404 else throw("Strict value is not equal to itself.")
405405 }
406406
407407
408408
409409 @Callable(av)
410410 func cancelVote (y,z) = {
411411 let w = $Tuple2(y, z)
412412 let t = valueOrElse(getInteger(this, g), 0)
413413 let aS = S(this, s(t))
414414 let aL = S(this, f)
415415 let aT = (aS + aL)
416416 let aU = getInteger(this, m)
417417 let aV = valueOrElse(getInteger(this, A(av.caller, t)), 0)
418418 let aW = valueOrElse(getInteger(this, C(w, av.caller, t)), 0)
419419 let aX = valueOrElse(getInteger(this, E(w, t)), 0)
420420 let aY = valueOrElse(getInteger(this, I(t)), 0)
421421 let aN = [if ((getBoolean(v(w)) != unit))
422422 then true
423423 else throw("invalid assets"), if ((aT > height))
424424 then true
425425 else throw("invalid height"), if ((aU == unit))
426426 then true
427427 else throw("finalization in progress"), if ((aW > 0))
428428 then true
429429 else throw("no vote")]
430430 if ((aN == aN))
431431 then {
432432 let bc = X(w)
433433 let bd = toString(av.caller)
434434 $Tuple2(([IntegerEntry(A(av.caller, t), max([(aV - aW), 0])), DeleteEntry(C(w, av.caller, t)), IntegerEntry(E(w, t), (aX - aW)), IntegerEntry(I(t), (aY - aW))] ++ an(bc, bd)), unit)
435435 }
436436 else throw("Strict value is not equal to itself.")
437437 }
438438
439439
440440
441441 @Callable(av)
442442 func setEpochLength (bf) = {
443443 let aM = [aw(av), if ((bf > 0))
444444 then true
445445 else throw("invalid epoch length")]
446446 if ((aM == aM))
447447 then $Tuple2([IntegerEntry(f, bf)], unit)
448448 else throw("Strict value is not equal to itself.")
449449 }
450450
451451
452452
453453 @Callable(av)
454454 func setMaxDepth (bg) = {
455455 let aM = [aw(av), if ((bg > 0))
456456 then true
457457 else throw("invalid max depth")]
458458 if ((aM == aM))
459459 then $Tuple2([IntegerEntry(h, bg)], unit)
460460 else throw("Strict value is not equal to itself.")
461461 }
462462
463463
464464
465465 @Callable(av)
466466 func processVoteINTERNAL (bh,bd) = {
467467 let az = au(av)
468468 if ((az == az))
469469 then {
470470 let aE = valueOrErrorMessage(addressFromString(bd), ("processVoteINTERNAL: invalid user address " + bd))
471471 let t = S(this, g)
472472 let bi = (t - 1)
473473 let aL = S(this, f)
474474 let aS = S(this, s(t))
475475 let aT = (aS + aL)
476476 let bj = S(this, s(bi))
477477 let bk = (bj + aL)
478478 let bl = if ((bi >= 0))
479479 then true
480480 else throw("processVoteINTERNAL: invalid previous epoch")
481481 if ((bl == bl))
482482 then {
483483 let w = U(bh)
484484 let aZ = {
485485 let R = invoke(this, "getUserGwxAmountAtHeight", [bd, aT], nil)
486486 if ($isInstanceOf(R, "Int"))
487487 then R
488488 else throw(($getType(invoke(this, "getUserGwxAmountAtHeight", [bd, aT], nil)) + " couldn't be cast to Int"))
489489 }
490490 let bm = {
491491 let R = invoke(this, "getUserGwxAmountAtHeight", [bd, bk], nil)
492492 if ($isInstanceOf(R, "Int"))
493493 then R
494494 else throw(($getType(invoke(this, "getUserGwxAmountAtHeight", [bd, bk], nil)) + " couldn't be cast to Int"))
495495 }
496496 let aY = valueOrElse(getInteger(I(t)), 0)
497497 let bn = valueOrElse(getInteger(E(w, t)), 0)
498498 let bo = valueOrErrorMessage(getInteger(C(w, aE, bi)), (((("processVoteINTERNAL " + bh) + " ") + bd) + ": no previous vote"))
499499 let aV = valueOrElse(getInteger(this, A(aE, t)), 0)
500500 let bb = fraction(bo, aZ, bm)
501501 let bp = if ((bb > 0))
502502 then [IntegerEntry(C(w, aE, t), bb), IntegerEntry(I(t), (aY + bb)), IntegerEntry(E(w, t), (bn + bb)), IntegerEntry(A(aE, t), (aV + bb))]
503503 else an(X(w), bd)
504504 $Tuple2(bp, unit)
505505 }
506506 else throw("Strict value is not equal to itself.")
507507 }
508508 else throw("Strict value is not equal to itself.")
509509 }
510510
511511
512512
513513 @Callable(av)
514514 func processPoolINTERNAL (bh) = {
515515 let az = au(av)
516516 if ((az == az))
517517 then {
518518 let bq = (S(this, g) - 1)
519519 let bl = if ((bq >= 0))
520520 then true
521521 else throw("processPoolINTERNAL: invalid target epoch")
522522 if ((bl == bl))
523523 then {
524524 let w = U(bh)
525525 let br = w
526526 let y = br._1
527527 let z = br._2
528528 let aK = addressFromStringValue(Q(this, l))
529+ let aH = addressFromStringValue(Q(this, j))
529530 let bs = {
530- let R = invoke(aK, "usersListTraversal", [y, z], nil)
531+ let R = invoke(aH, "getPoolContractAddressAndLpAssetByAssetsREADONLY", [y, z], nil)
532+ if ($isInstanceOf(R, "(String, String)"))
533+ then R
534+ else throw(($getType(invoke(aH, "getPoolContractAddressAndLpAssetByAssetsREADONLY", [y, z], nil)) + " couldn't be cast to (String, String)"))
535+ }
536+ let bt = bs._1
537+ let bu = bs._2
538+ let bv = {
539+ let R = invoke(aK, "usersListTraversal", [bu], nil)
531540 if ($isInstanceOf(R, "Boolean"))
532541 then R
533- else throw(($getType(invoke(aK, "usersListTraversal", [y, z], nil)) + " couldn't be cast to Boolean"))
542+ else throw(($getType(invoke(aK, "usersListTraversal", [bu], nil)) + " couldn't be cast to Boolean"))
534543 }
535- if ((bs == bs))
536- then if (bs)
544+ if ((bv == bv))
545+ then if (bv)
537546 then $Tuple2(nil, true)
538547 else {
539548 let aY = valueOrElse(getInteger(this, I(bq)), 0)
540549 let bn = valueOrElse(getInteger(this, E(w, bq)), 0)
541- let bt = if ((aY == 0))
550+ let bw = if ((aY == 0))
542551 then 0
543552 else fraction(bn, b, aY)
544- let aH = addressFromStringValue(Q(this, j))
545- let bu = invoke(aH, "modifyWeight", [y, z, bt], nil)
546- if ((bu == bu))
547- then $Tuple2([IntegerEntry(G(w, bq), bt)], false)
553+ let bx = invoke(aH, "modifyWeight", [bu, bw], nil)
554+ if ((bx == bx))
555+ then $Tuple2([IntegerEntry(G(w, bq), bw)], false)
548556 else throw("Strict value is not equal to itself.")
549557 }
550558 else throw("Strict value is not equal to itself.")
551559 }
552560 else throw("Strict value is not equal to itself.")
553561 }
554562 else throw("Strict value is not equal to itself.")
555563 }
556564
557565
558566
559567 @Callable(av)
560568 func finalizeHelper () = {
561569 let t = valueOrElse(getInteger(this, g), 0)
562- let bv = (t - 1)
570+ let by = (t - 1)
563571 let aS = S(this, s(t))
564572 let aL = S(this, f)
565573 let aT = (aS + aL)
566574 let aU = getInteger(this, m)
567575 if ((height >= aT))
568576 then {
569- let bw = (t + 1)
570- $Tuple2([IntegerEntry(s(bw), height), IntegerEntry(p, height), IntegerEntry(g, bw), IntegerEntry(m, d)], true)
577+ let bz = (t + 1)
578+ $Tuple2([IntegerEntry(s(bz), height), IntegerEntry(p, height), IntegerEntry(g, bz), IntegerEntry(m, d)], true)
571579 }
572580 else if ((aU == unit))
573581 then $Tuple2(nil, false)
574582 else if ((aU == d))
575583 then {
576- let bx = getString(n)
577- let by = getString(o)
578- let N = bx
584+ let bA = getString(n)
585+ let bB = getString(o)
586+ let N = bA
579587 if ($isInstanceOf(N, "Unit"))
580588 then {
581- let bz = getString(Z(W))
582- if ($isInstanceOf(bz, "Unit"))
589+ let bC = getString(Z(W))
590+ if ($isInstanceOf(bC, "Unit"))
583591 then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
584- else if ($isInstanceOf(bz, "String"))
592+ else if ($isInstanceOf(bC, "String"))
585593 then {
586- let bA = bz
587- $Tuple2([StringEntry(n, bA)], true)
594+ let bD = bC
595+ $Tuple2([StringEntry(n, bD)], true)
588596 }
589597 else throw("Match error")
590598 }
591599 else if ($isInstanceOf(N, "String"))
592600 then {
593601 let bh = N
594602 let w = U(bh)
595- let bB = {
596- let bz = by
597- if ($isInstanceOf(bz, "Unit"))
603+ let bE = {
604+ let bC = bB
605+ if ($isInstanceOf(bC, "Unit"))
598606 then getString(Z(X(w)))
599- else if ($isInstanceOf(bz, "String"))
607+ else if ($isInstanceOf(bC, "String"))
600608 then {
601- let bC = bz
602- let bD = invoke(this, "processVoteINTERNAL", [bh, bC], nil)
603- if ((bD == bD))
604- then getString(af(X(w), bC))
609+ let bF = bC
610+ let bG = invoke(this, "processVoteINTERNAL", [bh, bF], nil)
611+ if ((bG == bG))
612+ then getString(af(X(w), bF))
605613 else throw("Strict value is not equal to itself.")
606614 }
607615 else throw("Match error")
608616 }
609- let bz = bB
610- if ($isInstanceOf(bz, "Unit"))
617+ let bC = bE
618+ if ($isInstanceOf(bC, "Unit"))
611619 then {
612- let bE = getString(af(W, bh))
613- let bF = bE
614- if ($isInstanceOf(bF, "Unit"))
620+ let bH = getString(af(W, bh))
621+ let bI = bH
622+ if ($isInstanceOf(bI, "Unit"))
615623 then $Tuple2([IntegerEntry(m, e), DeleteEntry(n), DeleteEntry(o)], true)
616- else if ($isInstanceOf(bF, "String"))
624+ else if ($isInstanceOf(bI, "String"))
617625 then {
618- let ar = bF
626+ let ar = bI
619627 $Tuple2([StringEntry(n, ar), DeleteEntry(o)], true)
620628 }
621629 else throw("Match error")
622630 }
623- else if ($isInstanceOf(bz, "String"))
631+ else if ($isInstanceOf(bC, "String"))
624632 then {
625- let bG = bz
626- $Tuple2([StringEntry(o, bG)], true)
633+ let bJ = bC
634+ $Tuple2([StringEntry(o, bJ)], true)
627635 }
628636 else throw("Match error")
629637 }
630638 else throw("Match error")
631639 }
632640 else if ((aU == e))
633641 then {
634- let bx = getString(n)
635- let N = bx
642+ let bA = getString(n)
643+ let N = bA
636644 if ($isInstanceOf(N, "Unit"))
637645 then {
638- let bz = getString(Z(W))
639- if ($isInstanceOf(bz, "Unit"))
640- then $Tuple2([DeleteEntry(m), BooleanEntry(u(bv), true), IntegerEntry(q, t), IntegerEntry(r, aS)], true)
641- else if ($isInstanceOf(bz, "String"))
646+ let bC = getString(Z(W))
647+ if ($isInstanceOf(bC, "Unit"))
648+ then $Tuple2([DeleteEntry(m), BooleanEntry(u(by), true), IntegerEntry(q, t), IntegerEntry(r, aS)], true)
649+ else if ($isInstanceOf(bC, "String"))
642650 then {
643- let bH = bz
644- $Tuple2([StringEntry(n, bH)], true)
651+ let bK = bC
652+ $Tuple2([StringEntry(n, bK)], true)
645653 }
646654 else throw("Match error")
647655 }
648656 else if ($isInstanceOf(N, "String"))
649657 then {
650658 let bh = N
651- let bs = {
659+ let bv = {
652660 let R = invoke(this, "processPoolINTERNAL", [bh], nil)
653661 if ($isInstanceOf(R, "Boolean"))
654662 then R
655663 else throw(($getType(invoke(this, "processPoolINTERNAL", [bh], nil)) + " couldn't be cast to Boolean"))
656664 }
657- if ((bs == bs))
658- then if (bs)
665+ if ((bv == bv))
666+ then if (bv)
659667 then $Tuple2(nil, true)
660668 else {
661- let bE = getString(af(W, bh))
662- let bz = bE
663- if ($isInstanceOf(bz, "Unit"))
664- then $Tuple2([DeleteEntry(m), BooleanEntry(u(bv), true), IntegerEntry(q, t), IntegerEntry(r, aS), DeleteEntry(n)], true)
665- else if ($isInstanceOf(bz, "String"))
669+ let bH = getString(af(W, bh))
670+ let bC = bH
671+ if ($isInstanceOf(bC, "Unit"))
672+ then $Tuple2([DeleteEntry(m), BooleanEntry(u(by), true), IntegerEntry(q, t), IntegerEntry(r, aS), DeleteEntry(n)], true)
673+ else if ($isInstanceOf(bC, "String"))
666674 then {
667- let bH = bz
668- $Tuple2([StringEntry(n, bH)], true)
675+ let bK = bC
676+ $Tuple2([StringEntry(n, bK)], true)
669677 }
670678 else throw("Match error")
671679 }
672680 else throw("Strict value is not equal to itself.")
673681 }
674682 else throw("Match error")
675683 }
676684 else throw("finalization is broken")
677685 }
678686
679687
680688
681689 @Callable(av)
682-func finalizeWrapper (bI) = {
683- let bJ = {
690+func finalizeWrapper (bL) = {
691+ let bM = {
684692 let R = invoke(this, "finalizeHelper", nil, nil)
685693 if ($isInstanceOf(R, "Boolean"))
686694 then R
687695 else throw(($getType(invoke(this, "finalizeHelper", nil, nil)) + " couldn't be cast to Boolean"))
688696 }
689- if ((bJ == bJ))
690- then if (!(bJ))
691- then if ((bI == 0))
697+ if ((bM == bM))
698+ then if (!(bM))
699+ then if ((bL == 0))
692700 then throw("Current voting is not over yet")
693701 else $Tuple2(nil, unit)
694702 else {
695- let bK = valueOrElse(getInteger(this, h), c)
696- if ((bK > bI))
703+ let bN = valueOrElse(getInteger(this, h), c)
704+ if ((bN > bL))
697705 then {
698- let bL = invoke(this, "finalizeWrapper", [(bI + 1)], nil)
699- if ((bL == bL))
706+ let bO = invoke(this, "finalizeWrapper", [(bL + 1)], nil)
707+ if ((bO == bO))
700708 then $Tuple2(nil, unit)
701709 else throw("Strict value is not equal to itself.")
702710 }
703711 else $Tuple2(nil, unit)
704712 }
705713 else throw("Strict value is not equal to itself.")
706714 }
707715
708716
709717
710718 @Callable(av)
711719 func finalize () = {
712- let bL = invoke(this, "finalizeWrapper", [0], nil)
713- if ((bL == bL))
720+ let bO = invoke(this, "finalizeWrapper", [0], nil)
721+ if ((bO == bO))
714722 then $Tuple2(nil, unit)
715723 else throw("Strict value is not equal to itself.")
716724 }
717725
718726
719727
720728 @Callable(av)
721-func onVerificationLoss (bM) = $Tuple2(nil, unit)
729+func onVerificationLoss (bP) = $Tuple2(nil, unit)
722730
723731
724732
725733 @Callable(av)
726734 func containsNodeREADONLY (aa,ae) = $Tuple2(nil, ag(aa, ae))
727735
728736
729737
730738 @Callable(av)
731739 func insertNode (aa,ae) = {
732740 let az = aw(av)
733741 if ((az == az))
734742 then $Tuple2(ak(aa, ae), unit)
735743 else throw("Strict value is not equal to itself.")
736744 }
737745
738746
739747
740748 @Callable(av)
741749 func deleteNode (aa,ae) = {
742750 let az = aw(av)
743751 if ((az == az))
744752 then $Tuple2(an(aa, ae), unit)
745753 else throw("Strict value is not equal to itself.")
746754 }
747755
748756
749-@Verifier(bN)
750-func bO () = {
751- let bP = {
757+@Verifier(bQ)
758+func bR () = {
759+ let bS = {
752760 let N = aq()
753761 if ($isInstanceOf(N, "ByteVector"))
754762 then {
755763 let ax = N
756764 ax
757765 }
758766 else if ($isInstanceOf(N, "Unit"))
759- then bN.senderPublicKey
767+ then bQ.senderPublicKey
760768 else throw("Match error")
761769 }
762- sigVerify(bN.bodyBytes, bN.proofs[0], bP)
770+ sigVerify(bQ.bodyBytes, bQ.proofs[0], bS)
763771 }
764772

github/deemru/w8io/169f3d6 
127.38 ms