tx · 6FY627hQpwQbpuxPkTSiSRNDTg45vxDnJ46axyrwscfb

3N9Zi6AcWcGbM23jQJ4fnzFsoHoTsxYDznr:  -0.02300000 Waves

2023.12.29 12:35 [2907878] smart account 3N9Zi6AcWcGbM23jQJ4fnzFsoHoTsxYDznr > SELF 0.00000000 Waves

{ "type": 13, "id": "6FY627hQpwQbpuxPkTSiSRNDTg45vxDnJ46axyrwscfb", "fee": 2300000, "feeAssetId": null, "timestamp": 1703842557494, "version": 2, "chainId": 84, "sender": "3N9Zi6AcWcGbM23jQJ4fnzFsoHoTsxYDznr", "senderPublicKey": "GFbasS3jufhZkK4xR7tdTjjnP8K33KvJFEDHRtxXDkaJ", "proofs": [ "FQRvBfrBKMUoEvxVz3jpDNPUJWK3JZYSSCnwHTdhc92TGiGdduvEsCumdHY6kmyfDMZTFQ56xsaiVbTnxJN3S5b" ], "script": "base64:BgKRFwgCEgQKAggBEgcKBQgICAgBEgQKAggIEgUKAwgIARIECgIICBIDCgEBEgMKAQESBAoCCAgSBAoCCAQSABIDCgEBEgASBAoCCAgSBAoCCAgSBAoCCAgSABIECgIICCIJc2VwYXJhdG9yIg5wb29sV2VpZ2h0TXVsdCIPbWF4RGVwdGhEZWZhdWx0IhZmaW5hbGl6YXRpb25TdGFnZVRvdGFsIhdmaW5hbGl6YXRpb25TdGFnZVNoYXJlcyIOa2V5RXBvY2hMZW5ndGgiEWtleUVwb2NoTGVuZ3RoTmV3IhVrZXlFcG9jaExlbmd0aEJ5RXBvY2giBWVwb2NoIg9rZXlDdXJyZW50RXBvY2giC2tleU1heERlcHRoIiJrZXlWb3RpbmdFbWlzc2lvbkNhbmRpZGF0ZUNvbnRyYWN0Ih1rZXlWb3RpbmdFbWlzc2lvblJhdGVDb250cmFjdCISa2V5RmFjdG9yeUNvbnRyYWN0IhNrZXlCb29zdGluZ0NvbnRyYWN0IhJrZXlTdGFraW5nQ29udHJhY3QiFGtleUZpbmFsaXphdGlvblN0YWdlIgtrZXlOZXh0UG9vbCILa2V5TmV4dFVzZXIiDmtleVN0YXJ0SGVpZ2h0IhFrZXlDdXJyZW50RXBvY2hVaSIQa2V5U3RhcnRIZWlnaHRVaSIda2V5RmluYWxpemF0aW9uU2hvdWxkQmVGb3JjZWQiFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaCIMa2V5RmluYWxpemVkIglrZXlJbkxpc3QiBHBvb2wiCyR0MDE3ODgxODI4Ig1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiB2tleVVzZWQiB2FkZHJlc3MiB2tleVZvdGUiCyR0MDIxMDIyMTQyIg9rZXlWb3RpbmdSZXN1bHQiCyR0MDIzMjQyMzY0IhVrZXlWb3RpbmdSZXN1bHRTdGFrZWQiDGxwQXNzZXRJZFN0ciIMa2V5UG9vbFNoYXJlIgskdDAyNjg1MjcyNSINa2V5VG90YWxWb3RlcyIPa2V5U3Rha2VkQnlVc2VyIg51c2VyQWRkcmVzc1N0ciIHd3JhcEVyciIDbXNnIgh0aHJvd0VyciIOZ2V0VmFsdWVPckZhaWwiA2tleSIEdHlwZSIFZXJyb3IiByRtYXRjaDAiA3N0ciIDaW50IgxnZXRTdHJPckZhaWwiAUAiDGdldEludE9yRmFpbCIMcG9vbFRvU3RyaW5nIgxzdHJpbmdUb1Bvb2wiBXBhcnRzIg9mYWN0b3J5Q29udHJhY3QiGklkeEZhY3RvcnlDZmdHd3hSZXdhcmREYXBwIg1rZXlGYWN0b3J5Q2ZnIhRyZWFkRmFjdG9yeUNmZ09yRmFpbCIHZmFjdG9yeSIZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIWZ2V0THBBc3NldEJ5UG9vbEFzc2V0cyIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIilrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcyIYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyIhdpbnRlcm5hbFByaWNlQXNzZXRJZFN0ciIfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldCITcG9vbENvbnRyYWN0QWRkcmVzcyIVYW1vdW50QXNzZXRJbnRlcm5hbElkIhRwcmljZUFzc2V0SW50ZXJuYWxJZCIJbHBBc3NldElkIhhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwiCyR0MDU1NjU1NjA1IhBnd3hSZXdhcmREZXBvc2l0IhJnd3hSZXdhcmRzQ29udHJhY3QiDXBvb2xzTGlzdE5hbWUiEGdldFZvdGVzTGlzdE5hbWUiCyR0MDYwMjI2MDYyIgtrZXlMaXN0SGVhZCIIbGlzdE5hbWUiBG1ldGEiC2tleUxpc3RTaXplIgtrZXlMaXN0UHJldiICaWQiC2tleUxpc3ROZXh0Igxjb250YWluc05vZGUiCmhlYWRPclVuaXQiCnByZXZPclVuaXQiCm5leHRPclVuaXQiEWluc2VydE5vZGVBY3Rpb25zIghsaXN0U2l6ZSIJY2hlY2tOb2RlIhFkZWxldGVOb2RlQWN0aW9ucyIWa2V5TWFuYWdlclZhdWx0QWRkcmVzcyITa2V5TWFuYWdlclB1YmxpY0tleSIcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcyIBcyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCITbWFuYWdlclZhdWx0QWRkcmVzcyIJaXNNYW5hZ2VyIgFpIgJwayILbXVzdE1hbmFnZXIiCG11c3RUaGlzIgt1c2VyQWRkcmVzcyIMdGFyZ2V0SGVpZ2h0Ihdib29zdGluZ0NvbnRyYWN0QWRkcmVzcyIfdm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdCIQYm9vc3RpbmdDb250cmFjdCIPc3Rha2luZ0NvbnRyYWN0IgtlcG9jaExlbmd0aCIGY2hlY2tzIg1pbkxpc3RBY3Rpb25zIhhjdXJyZW50RXBvY2hJc05vdERlZmluZWQiEnN0YXJ0SGVpZ2h0QWN0aW9ucyIGYW1vdW50IgtzdGFydEhlaWdodCIJZW5kSGVpZ2h0IhdmaW5hbGl6YXRpb25TdGFnZU9yVW5pdCIEdXNlZCIEdm90ZSIKcG9vbFJlc3VsdCIKdG90YWxWb3RlcyITZ3d4QW1vdW50QXRFbmRUb3RhbCIJYXZhaWxhYmxlIgduZXdWb3RlIgp3eEVtaXNzaW9uIg12b3Rlc0xpc3ROYW1lIhB2b3Rlc0xpc3RBY3Rpb25zIg5uZXdFcG9jaExlbmd0aCILbmV3TWF4RGVwdGgiB3Bvb2xTdHIiC2NoZWNrQ2FsbGVyIg1lcG9jaFByZXZpb3VzIhNzdGFydEhlaWdodFByZXZpb3VzIhNlcG9jaExlbmd0aFByZXZpb3VzIhFlbmRIZWlnaHRQcmV2aW91cyIQY2hlY2tUYXJnZXRFcG9jaCINJHQwMTgwNjUxODEwNSIbZ3d4QW1vdW50QXRFbmRUb3RhbFByZXZpb3VzIgx2b3RpbmdSZXN1bHQiDHZvdGVQcmV2aW91cyIadm90aW5nUmVzdWx0U3Rha2VkUHJldmlvdXMiDHN0YWtlZEJ5VXNlciIZdm90aW5nUmVzdWx0U3Rha2VkQWN0aW9ucyILYmFsYW5jZUlzT2siB2FjdGlvbnMiBWZvcmNlIgt0YXJnZXRFcG9jaCIMY3VycmVudEVwb2NoIg0kdDAyMDY0MTIwNjgxIgFyIgVzaGFyZSIPbW9kaWZ5V2VpZ2h0SW52IhBwb29sc0xpc3RBY3Rpb25zIg1wcmV2aW91c0Vwb2NoIghuZXdFcG9jaCIUbmV3RXBvY2hMZW5ndGhPcHRpb24iFW5ld0Vwb2NoTGVuZ3RoQWN0aW9ucyIKcG9vbE9yVW5pdCIKdXNlck9yVW5pdCIHJG1hdGNoMSIMcG9vbHNIZWFkU3RyIg5uZXh0VXNlck9yVW5pdCIEdXNlciIEbmV4dCIOcHJvY2Vzc1ZvdGVJbnYiDm5leHRQb29sT3JVbml0IgckbWF0Y2gyIghuZXh0VXNlciITZ3d4UmV3YXJkRGVwb3NpdEludiILbmV4dFBvb2xTdHIiB2NvdW50ZXIiGnZvdGluZ0VtaXNzaW9uUmF0ZUNvbnRyYWN0IgZyZXN1bHQiA2ludiIIbWF4RGVwdGgiFmZpbmFsaXphdGlvbkluUHJvZ3Jlc3MiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleT8AAWECAl9fAAFiAIDC1y8AAWMACgABZAAAAAFlAAEAAWYJALkJAgkAzAgCAgIlcwkAzAgCAgtlcG9jaExlbmd0aAUDbmlsBQFhAAFnCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhBlcG9jaExlbmd0aF9fbmV3BQNuaWwFAWEBAWgBAWkJALkJAgkAzAgCAgQlcyVkCQDMCAICC2Vwb2NoTGVuZ3RoCQDMCAIJAKQDAQUBaQUDbmlsBQFhAAFqCQC5CQIJAMwIAgICJXMJAMwIAgIMY3VycmVudEVwb2NoBQNuaWwFAWEAAWsJALkJAgkAzAgCAgIlcwkAzAgCAghtYXhEZXB0aAUDbmlsBQFhAAFsCQC5CQIJAMwIAgICJXMJAMwIAgIfdm90aW5nRW1pc3Npb25DYW5kaWRhdGVDb250cmFjdAUDbmlsBQFhAAFtCQC5CQIJAMwIAgICJXMJAMwIAgIadm90aW5nRW1pc3Npb25SYXRlQ29udHJhY3QFA25pbAUBYQABbgkAuQkCCQDMCAICAiVzCQDMCAICD2ZhY3RvcnlDb250cmFjdAUDbmlsBQFhAAFvCQC5CQIJAMwIAgICJXMJAMwIAgIQYm9vc3RpbmdDb250cmFjdAUDbmlsBQFhAAFwCQC5CQIJAMwIAgICJXMJAMwIAgIPc3Rha2luZ0NvbnRyYWN0BQNuaWwFAWEAAXEJALkJAgkAzAgCAgIlcwkAzAgCAhFmaW5hbGl6YXRpb25TdGFnZQUDbmlsBQFhAAFyCQC5CQIJAMwIAgICJXMJAMwIAgIIbmV4dFBvb2wFA25pbAUBYQABcwkAuQkCCQDMCAICAiVzCQDMCAICCG5leHRVc2VyBQNuaWwFAWEAAXQJALkJAgkAzAgCAgIlcwkAzAgCAgtzdGFydEhlaWdodAUDbmlsBQFhAAF1CQC5CQIJAMwIAgICJXMJAMwIAgIOY3VycmVudEVwb2NoVWkFA25pbAUBYQABdgkAuQkCCQDMCAICAiVzCQDMCAICDXN0YXJ0SGVpZ2h0VWkFA25pbAUBYQABdwkAuQkCCQDMCAICAiVzCQDMCAICBWZvcmNlBQNuaWwFAWEBAXgBAWkJALkJAgkAzAgCAgQlcyVkCQDMCAICC3N0YXJ0SGVpZ2h0CQDMCAIJAKQDAQUBaQUDbmlsBQFhAQF5AQFpCQC5CQIJAMwIAgIEJXMlZAkAzAgCAglmaW5hbGl6ZWQJAMwIAgkApAMBBQFpBQNuaWwFAWEBAXoBAUEEAUIFAUEEAUMIBQFCAl8xBAFECAUBQgJfMgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZpbkxpc3QJAMwIAgUBQwkAzAgCBQFEBQNuaWwFAWEBAUUCAUYBaQkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAgR1c2VkCQDMCAIJAKUIAQUBRgkAzAgCCQCkAwEFAWkFA25pbAUBYQEBRwMBQQFGAWkEAUgFAUEEAUMIBQFIAl8xBAFECAUBSAJfMgkAuQkCCQDMCAICCiVzJXMlcyVzJWQJAMwIAgIEdm90ZQkAzAgCBQFDCQDMCAIFAUQJAMwIAgkApQgBBQFGCQDMCAIJAKQDAQUBaQUDbmlsBQFhAQFJAgFBAWkEAUoFAUEEAUMIBQFKAl8xBAFECAUBSgJfMgkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAICDHZvdGluZ1Jlc3VsdAkAzAgCBQFDCQDMCAIFAUQJAMwIAgkApAMBBQFpBQNuaWwFAWEBAUsCAUwBaQkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAhJ2b3RpbmdSZXN1bHRTdGFrZWQJAMwIAgUBTAkAzAgCCQCkAwEFAWkFA25pbAUBYQEBTQIBQQFpBAFOBQFBBAFDCAUBTgJfMQQBRAgFAU4CXzIJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAglwb29sU2hhcmUJAMwIAgUBQwkAzAgCBQFECQDMCAIJAKQDAQUBaQUDbmlsBQFhAQFPAQFpCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgp0b3RhbFZvdGVzCQDMCAIJAKQDAQUBaQUDbmlsBQFhAQFQAgFMAVEJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGc3Rha2VkCQDMCAIFAVEJAMwIAgUBTAUDbmlsBQFhAQFSAQFTCQC5CQIJAMwIAgIVdm90aW5nX2VtaXNzaW9uLnJpZGU6CQDMCAIFAVMFA25pbAIBIAEBVAEBUwkAAgEJAQFSAQUBUwEBVQMBRgFWAVcEAVgJAQFSAQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQFGCQDMCAICAS4JAMwIAgUBVgkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIACQETdmFsdWVPckVycm9yTWVzc2FnZQIEAVkFAVcDCQABAgUBWQIGU3RyaW5nBAFaBQFZCQCdCAIFAUYFAVYDCQABAgUBWQIDSW50BAJhYQUBWQkAmggCBQFGBQFWCQEBVAECEmludmFsaWQgZW50cnkgdHlwZQUBWAECYWICAUYBVgoAAmFjCQEBVQMFAUYFAVYCAAMJAAECBQJhYwIGU3RyaW5nBQJhYwkAAgEJAKwCAgkAAwEFAmFjAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcBAmFkAgFGAVYKAAJhYwkBAVUDBQFGBQFWAAADCQABAgUCYWMCA0ludAUCYWMJAAIBCQCsAgIJAAMBBQJhYwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AQJhZQEBQQkArAICCQCsAgIIBQFBAl8xBQFhCAUBQQJfMgECYWYBAVoEAmFnCQC1CQIFAVoFAWEDCQAAAgkAkAMBBQJhZwACCQCUCgIJAJEDAgUCYWcAAAkAkQMCBQJhZwABCQEBVAECE2ludmFsaWQgcG9vbCBzdHJpbmcAAmFoCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYWICBQR0aGlzBQFuAAJhaQAKAQJhagACESVzX19mYWN0b3J5Q29uZmlnAQJhawECYWwJALUJAgkBAmFiAgUCYWwJAQJhagAFAWEBAmFtAQJhbgkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhbgUCYWkBAmFvAgFDAUQKAQJhcAECYXEJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYXEKAQJhcgICYXMCYXQJAKwCAgkArAICCQCsAgIJAKwCAgIKJWQlZCVzJXNfXwkApAMBBQJhcwICX18JAKQDAQUCYXQCI19fbWFwcGluZ3NfX3Bvb2xBc3NldHMyUG9vbENvbnRyYWN0CgECYXUBAmF2CQCsAgIJAKwCAgIIJXMlcyVzX18FAmF2AiBfX21hcHBpbmdzX19wb29sQ29udHJhY3QyTHBBc3NldAQCYXcJAQJhZAIFAmFoCQECYXABBQFDBAJheAkBAmFkAgUCYWgJAQJhcAEFAUQEAmF2CQECYWICBQJhaAkBAmFyAgUCYXcFAmF4BAJheQkBAmFiAgUCYWgJAQJhdQEFAmF2BQJheQECYXoBAUEEAmFBBQFBBAFDCAUCYUECXzEEAUQIBQJhQQJfMgoAAmFjCQD8BwQFAmFoAhhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwJAMwIAgUBQwkAzAgCBQFEBQNuaWwFA25pbAMJAAECBQJhYwIHQm9vbGVhbgUCYWMJAAIBCQCsAgIJAAMBBQJhYwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgECYUIABAJhbgkBAmFrAQUCYWgEAmFDCQECYW0BBQJhbgkA/AcEBQJhQwIHZGVwb3NpdAUDbmlsBQNuaWwAAmFEAgVwb29scwECYUUBAUEEAmFGBQFBBAFDCAUCYUYCXzEEAUQIBQJhRgJfMgkAuQkCCQDMCAICBXZvdGVzCQDMCAIFAUMJAMwIAgUBRAUDbmlsBQFhAQJhRwECYUgEAmFJAwkAAAIFAmFIBQJhRAIEJXMlcwIIJXMlcyVzJXMJALkJAgkAzAgCBQJhSQkAzAgCBQJhSAkAzAgCAgRoZWFkBQNuaWwFAWEBAmFKAQJhSAQCYUkDCQAAAgUCYUgFAmFEAgQlcyVzAgglcyVzJXMlcwkAuQkCCQDMCAIFAmFJCQDMCAIFAmFICQDMCAICBHNpemUFA25pbAUBYQECYUsCAmFIAmFMBAJhSQMJAAACBQJhSAUCYUQCCCVzJXMlcyVzAgolcyVzJXMlcyVzCQC5CQIJAMwIAgUCYUkJAMwIAgUCYUgJAMwIAgUCYUwJAMwIAgIEcHJldgUDbmlsBQFhAQJhTQICYUgCYUwEAmFJAwkAAAIFAmFIBQJhRAIIJXMlcyVzJXMCCiVzJXMlcyVzJXMJALkJAgkAzAgCBQJhSQkAzAgCBQJhSAkAzAgCBQJhTAkAzAgCAgRuZXh0BQNuaWwFAWEBAmFOAgJhSAJhTAQCYU8JAJ0IAgUEdGhpcwkBAmFHAQUCYUgEAmFQCQCdCAIFBHRoaXMJAQJhSwIFAmFIBQJhTAQCYVEJAJ0IAgUEdGhpcwkBAmFNAgUCYUgFAmFMAwMJAAACBQJhTAkBC3ZhbHVlT3JFbHNlAgUCYU8CAAYJAQIhPQIFAmFQBQR1bml0BgkBAiE9AgUCYVEFBHVuaXQBAmFSAgJhSAJhTAQCYU8JAJ0IAgUEdGhpcwkBAmFHAQUCYUgEAmFTCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhSgEFAmFIAAAEAmFUAwkBASEBCQECYU4CBQJhSAUCYUwGCQEBVAECC05vZGUgZXhpc3RzAwkAAAIFAmFUBQJhVAkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhSgEFAmFICQBkAgUCYVMAAQUDbmlsAwkBAiE9AgUCYU8FBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFNAgUCYUgFAmFMCQEFdmFsdWUBBQJhTwkAzAgCCQELU3RyaW5nRW50cnkCCQECYUsCBQJhSAkBBXZhbHVlAQUCYU8FAmFMBQNuaWwFA25pbAkAzAgCCQELU3RyaW5nRW50cnkCCQECYUcBBQJhSAUCYUwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECYVUCAmFIAmFMBAJhTwkAnQgCBQR0aGlzCQECYUcBBQJhSAQCYVMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFKAQUCYUgAAAQCYVAJAJ0IAgUEdGhpcwkBAmFLAgUCYUgFAmFMBAJhUQkAnQgCBQR0aGlzCQECYU0CBQJhSAUCYUwJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFKAQUCYUgJAGUCBQJhUwABBQNuaWwDAwkBAiE9AgUCYVAFBHVuaXQJAQIhPQIFAmFRBQR1bml0BwkAzAgCCQELU3RyaW5nRW50cnkCCQECYU0CBQJhSAkBBXZhbHVlAQUCYVAJAQV2YWx1ZQEFAmFRCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhSwIFAmFICQEFdmFsdWUBBQJhUQkBBXZhbHVlAQUCYVAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFLAgUCYUgFAmFMCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhTQIFAmFIBQJhTAUDbmlsAwkBAiE9AgUCYVEFBHVuaXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFHAQUCYUgJAQV2YWx1ZQEFAmFRCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhTQIFAmFIBQJhTAkAzAgCCQELRGVsZXRlRW50cnkBCQECYUsCBQJhSAkBBXZhbHVlAQUCYVEFA25pbAMJAQIhPQIFAmFQBQR1bml0CQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhSwIFAmFIBQJhTAkAzAgCCQELRGVsZXRlRW50cnkBCQECYU0CBQJhSAkBBXZhbHVlAQUCYVAFA25pbAMJAAACBQJhTAkBC3ZhbHVlT3JFbHNlAgUCYU8CAAkAzAgCCQELRGVsZXRlRW50cnkBCQECYUcBBQJhSAUDbmlsCQEBVAEJAKwCAgkArAICCQCsAgICDmludmFsaWQgbm9kZTogBQJhSAIBLgUCYUwBAmFWAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBAmFXAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAmFYAAQBWQkAoggBCQECYVYAAwkAAQIFAVkCBlN0cmluZwQCYVkFAVkJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFZBQR0aGlzAQJhWgAEAmJhCQECYVgABAFZCQCdCAIFAmJhCQECYVcAAwkAAQIFAVkCBlN0cmluZwQCYVkFAVkJANkEAQUCYVkDCQABAgUBWQIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJiYgECYmMEAVkJAQJhWgADCQABAgUBWQIKQnl0ZVZlY3RvcgQCYmQFAVkJAAACCAUCYmMPY2FsbGVyUHVibGljS2V5BQJiZAMJAAECBQFZAgRVbml0CQAAAggFAmJjBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQJiZQECYmMDCQECYmIBBQJiYwYJAAIBAhFwZXJtaXNzaW9uIGRlbmllZAECYmYBAmJjAwkAAAIIBQJiYwZjYWxsZXIFBHRoaXMGCQACAQIRcGVybWlzc2lvbiBkZW5pZWQRAmJjARhnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHQCAmJnAmJoBAJiaQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAQJhYgIFBHRoaXMFAW8JAQFSAQIhaW52YWxpZCBib29zdGluZyBjb250cmFjdCBhZGRyZXNzCQCUCgIFA25pbAoAAmFjCQD8BwQFAmJpAiBnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHRSRUFET05MWQkAzAgCBQJiZwkAzAgCBQJiaAUDbmlsBQNuaWwDCQABAgUCYWMCA0ludAUCYWMJAAIBCQCsAgIJAAMBBQJhYwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AmJjAQtjb25zdHJ1Y3RvcgUCYWgCYmoCYmsCYmwCYm0EAmJuCQDMCAIJAQJiZQEFAmJjCQDMCAIDCQECIT0CCQCmCAEFAmFoBQR1bml0BgIgaW52YWxpZCBmYWN0b3J5IGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAQIhPQIJAKYIAQUCYmoFBHVuaXQGAjJpbnZhbGlkIHZvdGluZyBlbWlzc2lvbiBjYW5kaWRhdGUgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBAiE9AgkApggBBQJiawUEdW5pdAYCIWludmFsaWQgYm9vc3RpbmcgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBAiE9AgkApggBBQJibAUEdW5pdAYCIGludmFsaWQgc3Rha2luZyBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQBmAgUCYm0AAAYJAQFUAQIUaW52YWxpZCBlcG9jaCBsZW5ndGgFA25pbAMJAAACBQJibgUCYm4JAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQFuBQJhaAkAzAgCCQELU3RyaW5nRW50cnkCBQFsBQJiagkAzAgCCQELU3RyaW5nRW50cnkCBQFvBQJiawkAzAgCCQELU3RyaW5nRW50cnkCBQFwBQJibAkAzAgCCQEMSW50ZWdlckVudHJ5AgUBZgUCYm0FA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiYwEGY3JlYXRlAgFDAUQEAmJuCQDMCAIDCQAAAgkA2AQBCAgFAmJjBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQFsAgAGCQECYmUBBQJiYwUDbmlsAwkAAAIFAmJuBQJibgQBQQkAlAoCBQFDBQFEBAJibwkAzggCCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBegEFAUEGBQNuaWwJAQJhUgIFAmFECQECYWUBBQFBBAJicAkAAAIJAJoIAgUEdGhpcwUBagUEdW5pdAQCYnEDBQJicAQBaQAACQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFqBQFpCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBeAEFAWkFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUBdAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF1BQFpCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF2BQZoZWlnaHQFA25pbAUDbmlsCQCUCgIJAM4IAgUCYm8FAmJxBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJjAQR2b3RlAwFDAUQCYnIEAUEJAJQKAgUBQwUBRAQBaQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFqAAAEAmJzCQECYWQCBQR0aGlzCQEBeAEFAWkEAmJtCQECYWQCBQR0aGlzBQFmBAJidAkAZAIFAmJzBQJibQQCYnUJAJoIAgUEdGhpcwUBcQQCYnYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAUUCCAUCYmMGY2FsbGVyBQFpAAAEAmJ3CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFHAwUBQQgFAmJjBmNhbGxlcgUBaQAABAJieAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBSQIFAUEFAWkAAAQCYnkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAU8BBQFpAAAEAmJ6CgACYWMJAPwHBAUEdGhpcwIYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0CQDMCAIJANgEAQgIBQJiYwZjYWxsZXIFYnl0ZXMJAMwIAgUCYnQFA25pbAUDbmlsAwkAAQIFAmFjAgNJbnQFAmFjCQACAQkArAICCQADAQUCYWMCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCYkEJAGUCBQJiegUCYnYEAmJCCQBkAgUCYncFAmJyBAJiQwkBAmF6AQUBQQQCYm4JAMwIAgMJAQIhPQIJAKAIAQkBAXoBBQFBBQR1bml0BgkBAVQBAg5pbnZhbGlkIGFzc2V0cwkAzAgCAwkAZgIFAmJ0BQZoZWlnaHQGCQEBVAECDmludmFsaWQgaGVpZ2h0CQDMCAIDCQAAAgUCYnUFBHVuaXQGCQEBVAECGGZpbmFsaXphdGlvbiBpbiBwcm9ncmVzcwkAzAgCAwkAZgIFAmJ6AAAGCQEBVAECE3lvdSBkbyBub3QgaGF2ZSBnV1gJAMwIAgMDCQBmAgUCYnIAAAkAZwIFAmJBBQJicgcGCQEBVAECDmludmFsaWQgYW1vdW50CQDMCAIDBQJiQwYJAQFUAQIdcG9vbCBoYXNuJ3QgV1hfRU1JU1NJT04gbGFiZWwFA25pbAMJAAACBQJibgUCYm4EAmJECQECYUUBBQFBBAFRCQClCAEIBQJiYwZjYWxsZXIEAmJFAwkBAmFOAgUCYkQFAVEFA25pbAkBAmFSAgUCYkQFAVEJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBRQIIBQJiYwZjYWxsZXIFAWkJAGQCBQJidgUCYnIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFHAwUBQQgFAmJjBmNhbGxlcgUBaQUCYkIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFJAgUBQQUBaQkAZAIFAmJ4BQJicgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAU8BBQFpCQBkAgUCYnkFAmJyBQNuaWwFAmJFBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJjAQpjYW5jZWxWb3RlAgFDAUQEAUEJAJQKAgUBQwUBRAQBaQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFqAAAEAmJzCQECYWQCBQR0aGlzCQEBeAEFAWkEAmJtCQECYWQCBQR0aGlzBQFmBAJidAkAZAIFAmJzBQJibQQCYnUJAJoIAgUEdGhpcwUBcQQCYnYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAUUCCAUCYmMGY2FsbGVyBQFpAAAEAmJ3CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFHAwUBQQgFAmJjBmNhbGxlcgUBaQAABAJieAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBSQIFAUEFAWkAAAQCYnkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAU8BBQFpAAAEAmJuCQDMCAIDCQECIT0CCQCgCAEJAQF6AQUBQQUEdW5pdAYJAQFUAQIOaW52YWxpZCBhc3NldHMJAMwIAgMJAGYCBQJidAUGaGVpZ2h0BgkBAVQBAg5pbnZhbGlkIGhlaWdodAkAzAgCAwkAAAIFAmJ1BQR1bml0BgkBAVQBAhhmaW5hbGl6YXRpb24gaW4gcHJvZ3Jlc3MJAMwIAgMJAGYCBQJidwAABgkBAVQBAgdubyB2b3RlBQNuaWwDCQAAAgUCYm4FAmJuBAJiRAkBAmFFAQUBQQQBUQkApQgBCAUCYmMGY2FsbGVyCQCUCgIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUUCCAUCYmMGY2FsbGVyBQFpCQCWAwEJAMwIAgkAZQIFAmJ2BQJidwkAzAgCAAAFA25pbAkAzAgCCQELRGVsZXRlRW50cnkBCQEBRwMFAUEIBQJiYwZjYWxsZXIFAWkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFJAgUBQQUBaQkAZQIFAmJ4BQJidwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAU8BBQFpCQBlAgUCYnkFAmJ3BQNuaWwJAQJhVQIFAmJEBQFRBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJjAQ5zZXRFcG9jaExlbmd0aAECYkYEAmJuCQDMCAIJAQJiZQEFAmJjCQDMCAIDCQBmAgUCYkYAAAYJAQFUAQIUaW52YWxpZCBlcG9jaCBsZW5ndGgFA25pbAMJAAACBQJibgUCYm4JAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBZwUCYkYFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiYwELc2V0TWF4RGVwdGgBAmJHBAJibgkAzAgCCQECYmUBBQJiYwkAzAgCAwkAZgIFAmJHAAAGCQEBVAECEWludmFsaWQgbWF4IGRlcHRoBQNuaWwDCQAAAgUCYm4FAmJuCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFAWsFAmJHBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmMBE3Byb2Nlc3NWb3RlSU5URVJOQUwCAmJIAVEEAmJJCQECYmYBBQJiYwMJAAACBQJiSQUCYkkEAmJnCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQUBUQkBAVIBCQCsAgICKnByb2Nlc3NWb3RlSU5URVJOQUw6IGludmFsaWQgdXNlciBhZGRyZXNzIAUBUQQBaQkBAmFkAgUEdGhpcwUBagQCYkoJAGUCBQFpAAEEAmJtCQECYWQCBQR0aGlzBQFmBAJicwkBAmFkAgUEdGhpcwkBAXgBBQFpBAJidAkAZAIFAmJzBQJibQQCYksJAQJhZAIFBHRoaXMJAQF4AQUCYkoEAmJMCQECYWQCBQR0aGlzCQEBaAEFAmJKBAJiTQkAZAIFAmJLBQJiTAQCYk4DCQBnAgUCYkoAAAYJAQFUAQIrcHJvY2Vzc1ZvdGVJTlRFUk5BTDogaW52YWxpZCBwcmV2aW91cyBlcG9jaAMJAAACBQJiTgUCYk4EAUEJAQJhZgEFAmJIBAJiTwUBQQQBQwgFAmJPAl8xBAFECAUCYk8CXzIEAmJDCQECYXoBBQFBBAJiegoAAmFjCQD8BwQFBHRoaXMCGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAkAzAgCBQFRCQDMCAIFAmJ0BQNuaWwFA25pbAMJAAECBQJhYwIDSW50BQJhYwkAAgEJAKwCAgkAAwEFAmFjAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEAmJQCgACYWMJAPwHBAUEdGhpcwIYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0CQDMCAIFAVEJAMwIAgUCYk0FA25pbAUDbmlsAwkAAQIFAmFjAgNJbnQFAmFjCQACAQkArAICCQADAQUCYWMCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCYnkJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAU8BBQFpAAAEAmJRCQELdmFsdWVPckVsc2UCCQCfCAEJAQFJAgUBQQUBaQAABAJiUgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEJAQFHAwUBQQUCYmcFAmJKCQEBUgEJAKwCAgkArAICCQCsAgIJAKwCAgIUcHJvY2Vzc1ZvdGVJTlRFUk5BTCAFAmJIAgEgBQFRAhI6IG5vIHByZXZpb3VzIHZvdGUEAmJ2CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFFAgUCYmcFAWkAAAQBTAkBAmFvAgUBQwUBRAQCYlMJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAUsCBQFMBQJiSgAABAJibAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFiAgUEdGhpcwUBcAQCYlQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYmwJAQFQAgUBTAUBUQAABAJiVQMJAAACBQJiVAAABQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFLAgUBTAUCYkoJAGQCBQJiUwUCYlIFA25pbAQCYXkJAQJhbwIFAUMFAUQEAmJWCgACYWMJAPwHBAUCYWgCDGNoZWNrQmFsYW5jZQkAzAgCBQJheQUDbmlsBQNuaWwDCQABAgUCYWMCB0Jvb2xlYW4FAmFjCQACAQkArAICCQADAQUCYWMCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmJCAwkAZgIFAmJQAAAJAGsDBQJiUgUCYnoFAmJQAAAEAmJXAwMDCQBmAgUCYkIAAAUCYkMHBQJiVgcJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFHAwUBQQUCYmcFAWkFAmJCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBTwEFAWkJAGQCBQJieQUCYkIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFJAgUBQQUBaQkAZAIFAmJRBQJiQgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUUCBQJiZwUBaQkAZAIFAmJ2BQJiQgUDbmlsCQECYVUCCQECYUUBBQFBBQFRCQCUCgIJAM4IAgUCYlcFAmJVBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJjARNwcm9jZXNzUG9vbElOVEVSTkFMAgJiSAJiWAQCYkkJAQJiZgEFAmJjAwkAAAIFAmJJBQJiSQQCYlkEAmJaCQECYWQCBQR0aGlzBQFqAwUCYlgFAmJaCQBlAgUCYloAAQQCYk4DCQBnAgUCYlkAAAYJAQFUAQIpcHJvY2Vzc1Bvb2xJTlRFUk5BTDogaW52YWxpZCB0YXJnZXQgZXBvY2gDCQAAAgUCYk4FAmJOBAFBCQECYWYBBQJiSAQCY2EFAUEEAUMIBQJjYQJfMQQBRAgFAmNhAl8yBAJibAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFiAgUEdGhpcwUBcAQCYXkJAQJhbwIFAUMFAUQEAmNiCgACYWMJAPwHBAUCYmwCEnVzZXJzTGlzdFRyYXZlcnNhbAkAzAgCBQJheQUDbmlsBQNuaWwDCQABAgUCYWMCB0Jvb2xlYW4FAmFjCQACAQkArAICCQADAQUCYWMCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4DCQAAAgUCY2IFAmNiAwUCY2IJAJQKAgUDbmlsBgQCYkMJAQJhegEFAUEEAmJWCgACYWMJAPwHBAUCYWgCDGNoZWNrQmFsYW5jZQkAzAgCBQJheQUDbmlsBQNuaWwDCQABAgUCYWMCB0Jvb2xlYW4FAmFjCQACAQkArAICCQADAQUCYWMCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmJ5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFPAQUCYlkAAAQCYlEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAUkCBQFBBQJiWQAABAJjYwMDAwkAAAIFAmJ5AAAGCQEBIQEFAmJDBgkBASEBBQJiVgAACQBrAwUCYlEFAWIFAmJ5BAJjZAkA/AcEBQJhaAIMbW9kaWZ5V2VpZ2h0CQDMCAIFAmF5CQDMCAIFAmNjBQNuaWwFA25pbAMJAAACBQJjZAUCY2QEAmNlAwMFAmJDBgUCYlgFA25pbAkAzggCCQDMCAIJAQtEZWxldGVFbnRyeQEJAQF6AQUBQQUDbmlsCQECYVUCBQJhRAUCYkgJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBTQIFAUEFAmJZBQJjYwUDbmlsBQJjZQcJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYmMBDmZpbmFsaXplSGVscGVyAAQCYlgJAQt2YWx1ZU9yRWxzZQIJAKAIAQUBdwcEAWkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBagAABAJjZgkAZQIFAWkAAQQCYnMJAQJhZAIFBHRoaXMJAQF4AQUBaQQCYm0JAQJhZAIFBHRoaXMFAWYEAmJ0CQBkAgUCYnMFAmJtBAJidQkAmggCBQR0aGlzBQFxAwMDCQBnAgUGaGVpZ2h0BQJidAkAAAIFAmJ1BQR1bml0BwkBASEBBQJiWAcEAmNnCQBkAgUBaQABBAJjaAkAmggCBQR0aGlzBQFnBAJjaQQBWQUCY2gDCQABAgUBWQIDSW50BAJiRgUBWQkAzAgCCQEMSW50ZWdlckVudHJ5AgUBZgUCYkYJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBZwUDbmlsAwkAAQIFAVkCBFVuaXQFA25pbAkAAgECC01hdGNoIGVycm9yCQCUCgIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAXgBBQJjZwUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF0BQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFAWoFAmNnCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFxBQFkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBaAEFAWkFAmJtBQNuaWwFAmNpBgMDBQJiWAkAAAIFAmJ1BQR1bml0BwkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFxBQFlBQNuaWwGAwkAAAIFAmJ1BQR1bml0CQCUCgIFA25pbAcDCQAAAgUCYnUFAWQEAmNqCQCiCAEFAXIEAmNrCQCiCAEFAXMEAVkFAmNqAwkAAQIFAVkCBFVuaXQEAmNsCQCiCAEJAQJhRwEFAmFEAwkAAQIFAmNsAgRVbml0CQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFAXEFAWUJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBcgkAzAgCCQELRGVsZXRlRW50cnkBBQFzBQNuaWwGAwkAAQIFAmNsAgZTdHJpbmcEAmNtBQJjbAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFAXIFAmNtBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IDCQABAgUBWQIGU3RyaW5nBAJiSAUBWQQBQQkBAmFmAQUCYkgEAmNuBAJjbAUCY2sDCQABAgUCY2wCBFVuaXQJAKIIAQkBAmFHAQkBAmFFAQUBQQMJAAECBQJjbAIGU3RyaW5nBAJjbwUCY2wEAmNwCQCiCAEJAQJhTQIJAQJhRQEFAUEFAmNvAwkAAAIFAmNwBQJjcAQCY3EJAPwHBAUEdGhpcwITcHJvY2Vzc1ZvdGVJTlRFUk5BTAkAzAgCBQJiSAkAzAgCBQJjbwUDbmlsBQNuaWwDCQAAAgUCY3EFAmNxBQJjcAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECC01hdGNoIGVycm9yBAJjbAUCY24DCQABAgUCY2wCBFVuaXQEAmNyCQCiCAEJAQJhTQIFAmFEBQJiSAQCY3MFAmNyAwkAAQIFAmNzAgRVbml0CQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFAXEFAWUJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBcgkAzAgCCQELRGVsZXRlRW50cnkBBQFzBQNuaWwGAwkAAQIFAmNzAgZTdHJpbmcEAmFZBQJjcwkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFAXIFAmFZCQDMCAIJAQtEZWxldGVFbnRyeQEFAXMFA25pbAYJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQJjbAIGU3RyaW5nBAJjdAUCY2wJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQFzBQJjdAUDbmlsBgkAAgECC01hdGNoIGVycm9yCQACAQILTWF0Y2ggZXJyb3IDCQAAAgUCYnUFAWUEAmNqCQCiCAEFAXIEAVkFAmNqAwkAAQIFAVkCBFVuaXQEAmNsCQCiCAEJAQJhRwEFAmFEAwkAAQIFAmNsAgRVbml0BAJiVwMFAmJYCQDMCAIJAQtEZWxldGVFbnRyeQEFAXEJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBdwUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEFAXEJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQF5AQUCY2YGCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF1BQFpCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQF2BQJicwUDbmlsBAJjdQkBAmFCAAMJAAACBQJjdQUCY3UJAJQKAgUCYlcGCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAQIFAmNsAgZTdHJpbmcEAmN2BQJjbAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFAXIFAmN2BQNuaWwGCQACAQILTWF0Y2ggZXJyb3IDCQABAgUBWQIGU3RyaW5nBAJiSAUBWQQCY3IJAKIIAQkBAmFNAgUCYUQFAmJIAwkAAAIFAmNyBQJjcgQCY2IKAAJhYwkA/AcEBQR0aGlzAhNwcm9jZXNzUG9vbElOVEVSTkFMCQDMCAIFAmJICQDMCAIFAmJYBQNuaWwFA25pbAMJAAECBQJhYwIHQm9vbGVhbgUCYWMJAAIBCQCsAgIJAAMBBQJhYwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgMJAAACBQJjYgUCY2IDBQJjYgkAlAoCBQNuaWwGBAJjbAUCY3IDCQABAgUCY2wCBFVuaXQEAmJXAwUCYlgJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBcQkAzAgCCQELRGVsZXRlRW50cnkBBQF3CQDMCAIJAQtEZWxldGVFbnRyeQEFAXIFA25pbAkAzAgCCQELRGVsZXRlRW50cnkBBQFxCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBeQEFAmNmBgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBdQUBaQkAzAgCCQEMSW50ZWdlckVudHJ5AgUBdgUCYnMJAMwIAgkBC0RlbGV0ZUVudHJ5AQUBcgUDbmlsBAJjdQkBAmFCAAMJAAACBQJjdQUCY3UJAJQKAgUCYlcGCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAQIFAmNsAgZTdHJpbmcEAmN2BQJjbAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFAXIFAmN2BQNuaWwGCQACAQILTWF0Y2ggZXJyb3IJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAgtNYXRjaCBlcnJvcgkBAVQBAhZmaW5hbGl6YXRpb24gaXMgYnJva2VuAmJjAQ9maW5hbGl6ZVdyYXBwZXIBAmN3BAJjeAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUBbQQCY3kKAAJhYwkA/AcEBQR0aGlzAg5maW5hbGl6ZUhlbHBlcgUDbmlsBQNuaWwDCQABAgUCYWMCB0Jvb2xlYW4FAmFjCQACAQkArAICCQADAQUCYWMCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4DCQAAAgUCY3kFAmN5AwkBASEBBQJjeQMJAAACBQJjdwAACQEBVAECHkN1cnJlbnQgdm90aW5nIGlzIG5vdCBvdmVyIHlldAQCY3oJAPwHBAUCY3gCCGZpbmFsaXplBQNuaWwFA25pbAMJAAACBQJjegUCY3oJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAJjQQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFrBQFjAwkAZgIFAmNBBQJjdwQCY3oJAPwHBAUEdGhpcwIPZmluYWxpemVXcmFwcGVyCQDMCAIJAGQCBQJjdwABBQNuaWwFA25pbAMJAAACBQJjegUCY3oJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiYwEIZmluYWxpemUABAJjegkA/AcEBQR0aGlzAg9maW5hbGl6ZVdyYXBwZXIJAMwIAgAABQNuaWwFA25pbAMJAAACBQJjegUCY3oJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJjARRjb250YWluc05vZGVSRUFET05MWQICYUgCYUwJAJQKAgUDbmlsCQECYU4CBQJhSAUCYUwCYmMBCmluc2VydE5vZGUCAmFIAmFMBAJiSQkBAmJlAQUCYmMDCQAAAgUCYkkFAmJJCQCUCgIJAQJhUgIFAmFIBQJhTAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiYwEKZGVsZXRlTm9kZQICYUgCYUwEAmJJCQECYmUBBQJiYwMJAAACBQJiSQUCYkkJAJQKAgkBAmFVAgUCYUgFAmFMBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJjARhpc0ZpbmFsaXphdGlvbkluUHJvZ3Jlc3MABAJidQkAmggCBQR0aGlzBQFxBAJjQgkBAiE9AgUCYnUFBHVuaXQJAJQKAgUDbmlsBQJjQgJiYwEKZGVsZXRlUG9vbAIBQwFEBAJiSQMDCQAAAggFAmJjBmNhbGxlcgUCYWgGCQECYmUBBQJiYwYJAQFUAQIRUGVybWlzc2lvbiBkZW5pZWQDCQAAAgUCYkkFAmJJBAJhSAIFcG9vbHMEAUEJAJQKAgUBQwUBRAQCYUwJALkJAgkAzAgCBQFDCQDMCAIFAUQFA25pbAUBYQQCYlcDCQECYU4CBQJhSAUCYUwJAQJhVQIFAmFIBQJhTAUDbmlsCQDOCAIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAXoBBQFBBQNuaWwFAmJXCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJjQwECY0QABAJjRQQBWQkBAmFaAAMJAAECBQFZAgpCeXRlVmVjdG9yBAJiZAUBWQUCYmQDCQABAgUBWQIEVW5pdAgFAmNDD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJjQwlib2R5Qnl0ZXMJAJEDAggFAmNDBnByb29mcwAABQJjRdXyxME=", "height": 2907878, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AV9cwwPTu77YCvGsy8F1tpDhsgUJqzGJ7YTdqUT21x2M Next: Gf6pwhR3UYk3PnoMQGNGJTH1ioev6wyS3FTEY5qj9AC3 Diff:
OldNewDifferences
602602 then if (cb)
603603 then $Tuple2(nil, true)
604604 else {
605+ let bC = az(A)
605606 let bV = {
606607 let ac = invoke(ah, "checkBalance", [ay], nil)
607608 if ($isInstanceOf(ac, "Boolean"))
608609 then ac
609610 else throw(($getType(ac) + " couldn't be cast to Boolean"))
610611 }
611- let cc = if (bV)
612- then unit
613- else invoke(ah, "deleteWxEmissionPoolLabel", [C, D], nil)
614- if ((cc == cc))
612+ let by = valueOrElse(getInteger(this, O(bY)), 0)
613+ let bQ = valueOrElse(getInteger(this, I(A, bY)), 0)
614+ let cc = if (if (if ((by == 0))
615+ then true
616+ else !(bC))
617+ then true
618+ else !(bV))
619+ then 0
620+ else fraction(bQ, b, by)
621+ let cd = invoke(ah, "modifyWeight", [ay, cc], nil)
622+ if ((cd == cd))
615623 then {
616- let bC = az(A)
617- let by = valueOrElse(getInteger(this, O(bY)), 0)
618- let bQ = valueOrElse(getInteger(this, I(A, bY)), 0)
619- let cd = if (if ((by == 0))
624+ let ce = if (if (bC)
620625 then true
621- else !(bC))
622- then 0
623- else fraction(bQ, b, by)
624- let ce = invoke(ah, "modifyWeight", [ay, cd], nil)
625- if ((ce == ce))
626- then {
627- let cf = if (if (bC)
628- then true
629- else bX)
630- then nil
631- else ([DeleteEntry(z(A))] ++ aU(aD, bH))
632- $Tuple2(([IntegerEntry(M(A, bY), cd)] ++ cf), false)
633- }
634- else throw("Strict value is not equal to itself.")
626+ else bX)
627+ then nil
628+ else ([DeleteEntry(z(A))] ++ aU(aD, bH))
629+ $Tuple2(([IntegerEntry(M(A, bY), cc)] ++ ce), false)
635630 }
636631 else throw("Strict value is not equal to itself.")
637632 }
648643 func finalizeHelper () = {
649644 let bX = valueOrElse(getBoolean(w), false)
650645 let i = valueOrElse(getInteger(this, j), 0)
651- let cg = (i - 1)
646+ let cf = (i - 1)
652647 let bs = ad(this, x(i))
653648 let bm = ad(this, f)
654649 let bt = (bs + bm)
659654 then !(bX)
660655 else false)
661656 then {
662- let ch = (i + 1)
663- let ci = getInteger(this, g)
664- let cj = {
665- let Y = ci
657+ let cg = (i + 1)
658+ let ch = getInteger(this, g)
659+ let ci = {
660+ let Y = ch
666661 if ($isInstanceOf(Y, "Int"))
667662 then {
668663 let bF = Y
672667 then nil
673668 else throw("Match error")
674669 }
675- $Tuple2(([IntegerEntry(x(ch), height), IntegerEntry(t, height), IntegerEntry(j, ch), IntegerEntry(q, d), IntegerEntry(h(i), bm)] ++ cj), true)
670+ $Tuple2(([IntegerEntry(x(cg), height), IntegerEntry(t, height), IntegerEntry(j, cg), IntegerEntry(q, d), IntegerEntry(h(i), bm)] ++ ci), true)
676671 }
677672 else if (if (bX)
678673 then (bu == unit)
682677 then $Tuple2(nil, false)
683678 else if ((bu == d))
684679 then {
685- let ck = getString(r)
686- let cl = getString(s)
687- let Y = ck
680+ let cj = getString(r)
681+ let ck = getString(s)
682+ let Y = cj
688683 if ($isInstanceOf(Y, "Unit"))
689684 then {
690- let cm = getString(aG(aD))
691- if ($isInstanceOf(cm, "Unit"))
685+ let cl = getString(aG(aD))
686+ if ($isInstanceOf(cl, "Unit"))
692687 then $Tuple2([IntegerEntry(q, e), DeleteEntry(r), DeleteEntry(s)], true)
693- else if ($isInstanceOf(cm, "String"))
688+ else if ($isInstanceOf(cl, "String"))
694689 then {
695- let cn = cm
696- $Tuple2([StringEntry(r, cn)], true)
690+ let cm = cl
691+ $Tuple2([StringEntry(r, cm)], true)
697692 }
698693 else throw("Match error")
699694 }
701696 then {
702697 let bH = Y
703698 let A = af(bH)
704- let co = {
705- let cm = cl
706- if ($isInstanceOf(cm, "Unit"))
699+ let cn = {
700+ let cl = ck
701+ if ($isInstanceOf(cl, "Unit"))
707702 then getString(aG(aE(A)))
708- else if ($isInstanceOf(cm, "String"))
703+ else if ($isInstanceOf(cl, "String"))
709704 then {
710- let cp = cm
711- let cq = getString(aM(aE(A), cp))
712- if ((cq == cq))
705+ let co = cl
706+ let cp = getString(aM(aE(A), co))
707+ if ((cp == cp))
713708 then {
714- let cr = invoke(this, "processVoteINTERNAL", [bH, cp], nil)
715- if ((cr == cr))
716- then cq
709+ let cq = invoke(this, "processVoteINTERNAL", [bH, co], nil)
710+ if ((cq == cq))
711+ then cp
717712 else throw("Strict value is not equal to itself.")
718713 }
719714 else throw("Strict value is not equal to itself.")
720715 }
721716 else throw("Match error")
722717 }
723- let cm = co
724- if ($isInstanceOf(cm, "Unit"))
718+ let cl = cn
719+ if ($isInstanceOf(cl, "Unit"))
725720 then {
726- let cs = getString(aM(aD, bH))
727- let ct = cs
728- if ($isInstanceOf(ct, "Unit"))
721+ let cr = getString(aM(aD, bH))
722+ let cs = cr
723+ if ($isInstanceOf(cs, "Unit"))
729724 then $Tuple2([IntegerEntry(q, e), DeleteEntry(r), DeleteEntry(s)], true)
730- else if ($isInstanceOf(ct, "String"))
725+ else if ($isInstanceOf(cs, "String"))
731726 then {
732- let aY = ct
727+ let aY = cs
733728 $Tuple2([StringEntry(r, aY), DeleteEntry(s)], true)
734729 }
735730 else throw("Match error")
736731 }
737- else if ($isInstanceOf(cm, "String"))
732+ else if ($isInstanceOf(cl, "String"))
738733 then {
739- let cu = cm
740- $Tuple2([StringEntry(s, cu)], true)
734+ let ct = cl
735+ $Tuple2([StringEntry(s, ct)], true)
741736 }
742737 else throw("Match error")
743738 }
745740 }
746741 else if ((bu == e))
747742 then {
748- let ck = getString(r)
749- let Y = ck
743+ let cj = getString(r)
744+ let Y = cj
750745 if ($isInstanceOf(Y, "Unit"))
751746 then {
752- let cm = getString(aG(aD))
753- if ($isInstanceOf(cm, "Unit"))
747+ let cl = getString(aG(aD))
748+ if ($isInstanceOf(cl, "Unit"))
754749 then {
755750 let bW = if (bX)
756751 then [DeleteEntry(q), DeleteEntry(w)]
757- else [DeleteEntry(q), BooleanEntry(y(cg), true), IntegerEntry(u, i), IntegerEntry(v, bs)]
758- let cv = aB()
759- if ((cv == cv))
752+ else [DeleteEntry(q), BooleanEntry(y(cf), true), IntegerEntry(u, i), IntegerEntry(v, bs)]
753+ let cu = aB()
754+ if ((cu == cu))
760755 then $Tuple2(bW, true)
761756 else throw("Strict value is not equal to itself.")
762757 }
763- else if ($isInstanceOf(cm, "String"))
758+ else if ($isInstanceOf(cl, "String"))
764759 then {
765- let cw = cm
766- $Tuple2([StringEntry(r, cw)], true)
760+ let cv = cl
761+ $Tuple2([StringEntry(r, cv)], true)
767762 }
768763 else throw("Match error")
769764 }
770765 else if ($isInstanceOf(Y, "String"))
771766 then {
772767 let bH = Y
773- let cs = getString(aM(aD, bH))
774- if ((cs == cs))
768+ let cr = getString(aM(aD, bH))
769+ if ((cr == cr))
775770 then {
776771 let cb = {
777772 let ac = invoke(this, "processPoolINTERNAL", [bH, bX], nil)
783778 then if (cb)
784779 then $Tuple2(nil, true)
785780 else {
786- let cm = cs
787- if ($isInstanceOf(cm, "Unit"))
781+ let cl = cr
782+ if ($isInstanceOf(cl, "Unit"))
788783 then {
789784 let bW = if (bX)
790785 then [DeleteEntry(q), DeleteEntry(w), DeleteEntry(r)]
791- else [DeleteEntry(q), BooleanEntry(y(cg), true), IntegerEntry(u, i), IntegerEntry(v, bs), DeleteEntry(r)]
792- let cv = aB()
793- if ((cv == cv))
786+ else [DeleteEntry(q), BooleanEntry(y(cf), true), IntegerEntry(u, i), IntegerEntry(v, bs), DeleteEntry(r)]
787+ let cu = aB()
788+ if ((cu == cu))
794789 then $Tuple2(bW, true)
795790 else throw("Strict value is not equal to itself.")
796791 }
797- else if ($isInstanceOf(cm, "String"))
792+ else if ($isInstanceOf(cl, "String"))
798793 then {
799- let cw = cm
800- $Tuple2([StringEntry(r, cw)], true)
794+ let cv = cl
795+ $Tuple2([StringEntry(r, cv)], true)
801796 }
802797 else throw("Match error")
803798 }
813808
814809
815810 @Callable(bc)
816-func finalizeWrapper (cx) = {
817- let cy = addressFromStringValue(getStringValue(this, m))
818- let cz = {
811+func finalizeWrapper (cw) = {
812+ let cx = addressFromStringValue(getStringValue(this, m))
813+ let cy = {
819814 let ac = invoke(this, "finalizeHelper", nil, nil)
820815 if ($isInstanceOf(ac, "Boolean"))
821816 then ac
822817 else throw(($getType(ac) + " couldn't be cast to Boolean"))
823818 }
824- if ((cz == cz))
825- then if (!(cz))
826- then if ((cx == 0))
819+ if ((cy == cy))
820+ then if (!(cy))
821+ then if ((cw == 0))
827822 then T("Current voting is not over yet")
828823 else {
829- let cA = invoke(cy, "finalize", nil, nil)
830- if ((cA == cA))
824+ let cz = invoke(cx, "finalize", nil, nil)
825+ if ((cz == cz))
831826 then $Tuple2(nil, unit)
832827 else throw("Strict value is not equal to itself.")
833828 }
834829 else {
835- let cB = valueOrElse(getInteger(this, k), c)
836- if ((cB > cx))
830+ let cA = valueOrElse(getInteger(this, k), c)
831+ if ((cA > cw))
837832 then {
838- let cA = invoke(this, "finalizeWrapper", [(cx + 1)], nil)
839- if ((cA == cA))
833+ let cz = invoke(this, "finalizeWrapper", [(cw + 1)], nil)
834+ if ((cz == cz))
840835 then $Tuple2(nil, unit)
841836 else throw("Strict value is not equal to itself.")
842837 }
849844
850845 @Callable(bc)
851846 func finalize () = {
852- let cA = invoke(this, "finalizeWrapper", [0], nil)
853- if ((cA == cA))
847+ let cz = invoke(this, "finalizeWrapper", [0], nil)
848+ if ((cz == cz))
854849 then $Tuple2(nil, unit)
855850 else throw("Strict value is not equal to itself.")
856851 }
885880 @Callable(bc)
886881 func isFinalizationInProgress () = {
887882 let bu = getInteger(this, q)
888- let cC = (bu != unit)
889- $Tuple2(nil, cC)
883+ let cB = (bu != unit)
884+ $Tuple2(nil, cB)
890885 }
891886
892887
912907 }
913908
914909
915-@Verifier(cD)
916-func cE () = {
917- let cF = {
910+@Verifier(cC)
911+func cD () = {
912+ let cE = {
918913 let Y = aZ()
919914 if ($isInstanceOf(Y, "ByteVector"))
920915 then {
922917 bd
923918 }
924919 else if ($isInstanceOf(Y, "Unit"))
925- then cD.senderPublicKey
920+ then cC.senderPublicKey
926921 else throw("Match error")
927922 }
928- sigVerify(cD.bodyBytes, cD.proofs[0], cF)
923+ sigVerify(cC.bodyBytes, cC.proofs[0], cE)
929924 }
930925
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%s", "epochLength__new"], a)
1717
1818 func h (i) = makeString(["%s%d", "epochLength", toString(i)], a)
1919
2020
2121 let j = makeString(["%s", "currentEpoch"], a)
2222
2323 let k = makeString(["%s", "maxDepth"], a)
2424
2525 let l = makeString(["%s", "votingEmissionCandidateContract"], a)
2626
2727 let m = makeString(["%s", "votingEmissionRateContract"], a)
2828
2929 let n = makeString(["%s", "factoryContract"], a)
3030
3131 let o = makeString(["%s", "boostingContract"], a)
3232
3333 let p = makeString(["%s", "stakingContract"], a)
3434
3535 let q = makeString(["%s", "finalizationStage"], a)
3636
3737 let r = makeString(["%s", "nextPool"], a)
3838
3939 let s = makeString(["%s", "nextUser"], a)
4040
4141 let t = makeString(["%s", "startHeight"], a)
4242
4343 let u = makeString(["%s", "currentEpochUi"], a)
4444
4545 let v = makeString(["%s", "startHeightUi"], a)
4646
4747 let w = makeString(["%s", "force"], a)
4848
4949 func x (i) = makeString(["%s%d", "startHeight", toString(i)], a)
5050
5151
5252 func y (i) = makeString(["%s%d", "finalized", toString(i)], a)
5353
5454
5555 func z (A) = {
5656 let B = A
5757 let C = B._1
5858 let D = B._2
5959 makeString(["%s%s%s", "inList", C, D], a)
6060 }
6161
6262
6363 func E (F,i) = makeString(["%s%s%d", "used", toString(F), toString(i)], a)
6464
6565
6666 func G (A,F,i) = {
6767 let H = A
6868 let C = H._1
6969 let D = H._2
7070 makeString(["%s%s%s%s%d", "vote", C, D, toString(F), toString(i)], a)
7171 }
7272
7373
7474 func I (A,i) = {
7575 let J = A
7676 let C = J._1
7777 let D = J._2
7878 makeString(["%s%s%s%d", "votingResult", C, D, toString(i)], a)
7979 }
8080
8181
8282 func K (L,i) = makeString(["%s%s%d", "votingResultStaked", L, toString(i)], a)
8383
8484
8585 func M (A,i) = {
8686 let N = A
8787 let C = N._1
8888 let D = N._2
8989 makeString(["%s%s%s%d", "poolShare", C, D, toString(i)], a)
9090 }
9191
9292
9393 func O (i) = makeString(["%s%d", "totalVotes", toString(i)], a)
9494
9595
9696 func P (L,Q) = makeString(["%s%s%s", "staked", Q, L], a)
9797
9898
9999 func R (S) = makeString(["voting_emission.ride:", S], " ")
100100
101101
102102 func T (S) = throw(R(S))
103103
104104
105105 func U (F,V,W) = {
106106 let X = R(makeString(["mandatory ", toString(F), ".", V, " is not defined"], ""))
107107 valueOrErrorMessage({
108108 let Y = W
109109 if ($isInstanceOf(Y, "String"))
110110 then {
111111 let Z = Y
112112 getString(F, V)
113113 }
114114 else if ($isInstanceOf(Y, "Int"))
115115 then {
116116 let aa = Y
117117 getInteger(F, V)
118118 }
119119 else T("invalid entry type")
120120 }, X)
121121 }
122122
123123
124124 func ab (F,V) = {
125125 let ac = U(F, V, "")
126126 if ($isInstanceOf(ac, "String"))
127127 then ac
128128 else throw(($getType(ac) + " couldn't be cast to String"))
129129 }
130130
131131
132132 func ad (F,V) = {
133133 let ac = U(F, V, 0)
134134 if ($isInstanceOf(ac, "Int"))
135135 then ac
136136 else throw(($getType(ac) + " couldn't be cast to Int"))
137137 }
138138
139139
140140 func ae (A) = ((A._1 + a) + A._2)
141141
142142
143143 func af (Z) = {
144144 let ag = split(Z, a)
145145 if ((size(ag) == 2))
146146 then $Tuple2(ag[0], ag[1])
147147 else T("invalid pool string")
148148 }
149149
150150
151151 let ah = addressFromStringValue(ab(this, n))
152152
153153 let ai = 10
154154
155155 func aj () = "%s__factoryConfig"
156156
157157
158158 func ak (al) = split(ab(al, aj()), a)
159159
160160
161161 func am (an) = addressFromStringValue(an[ai])
162162
163163
164164 func ao (C,D) = {
165165 func ap (aq) = ("%s%s%s__mappings__baseAsset2internalId__" + aq)
166166
167167 func ar (as,at) = (((("%d%d%s%s__" + toString(as)) + "__") + toString(at)) + "__mappings__poolAssets2PoolContract")
168168
169169 func au (av) = (("%s%s%s__" + av) + "__mappings__poolContract2LpAsset")
170170
171171 let aw = ad(ah, ap(C))
172172 let ax = ad(ah, ap(D))
173173 let av = ab(ah, ar(aw, ax))
174174 let ay = ab(ah, au(av))
175175 ay
176176 }
177177
178178
179179 func az (A) = {
180180 let aA = A
181181 let C = aA._1
182182 let D = aA._2
183183 let ac = invoke(ah, "checkWxEmissionPoolLabel", [C, D], nil)
184184 if ($isInstanceOf(ac, "Boolean"))
185185 then ac
186186 else throw(($getType(ac) + " couldn't be cast to Boolean"))
187187 }
188188
189189
190190 func aB () = {
191191 let an = ak(ah)
192192 let aC = am(an)
193193 invoke(aC, "deposit", nil, nil)
194194 }
195195
196196
197197 let aD = "pools"
198198
199199 func aE (A) = {
200200 let aF = A
201201 let C = aF._1
202202 let D = aF._2
203203 makeString(["votes", C, D], a)
204204 }
205205
206206
207207 func aG (aH) = {
208208 let aI = if ((aH == aD))
209209 then "%s%s"
210210 else "%s%s%s%s"
211211 makeString([aI, aH, "head"], a)
212212 }
213213
214214
215215 func aJ (aH) = {
216216 let aI = if ((aH == aD))
217217 then "%s%s"
218218 else "%s%s%s%s"
219219 makeString([aI, aH, "size"], a)
220220 }
221221
222222
223223 func aK (aH,aL) = {
224224 let aI = if ((aH == aD))
225225 then "%s%s%s%s"
226226 else "%s%s%s%s%s"
227227 makeString([aI, aH, aL, "prev"], a)
228228 }
229229
230230
231231 func aM (aH,aL) = {
232232 let aI = if ((aH == aD))
233233 then "%s%s%s%s"
234234 else "%s%s%s%s%s"
235235 makeString([aI, aH, aL, "next"], a)
236236 }
237237
238238
239239 func aN (aH,aL) = {
240240 let aO = getString(this, aG(aH))
241241 let aP = getString(this, aK(aH, aL))
242242 let aQ = getString(this, aM(aH, aL))
243243 if (if ((aL == valueOrElse(aO, "")))
244244 then true
245245 else (aP != unit))
246246 then true
247247 else (aQ != unit)
248248 }
249249
250250
251251 func aR (aH,aL) = {
252252 let aO = getString(this, aG(aH))
253253 let aS = valueOrElse(getInteger(this, aJ(aH)), 0)
254254 let aT = if (!(aN(aH, aL)))
255255 then true
256256 else T("Node exists")
257257 if ((aT == aT))
258258 then (([IntegerEntry(aJ(aH), (aS + 1))] ++ (if ((aO != unit))
259259 then [StringEntry(aM(aH, aL), value(aO)), StringEntry(aK(aH, value(aO)), aL)]
260260 else nil)) ++ [StringEntry(aG(aH), aL)])
261261 else throw("Strict value is not equal to itself.")
262262 }
263263
264264
265265 func aU (aH,aL) = {
266266 let aO = getString(this, aG(aH))
267267 let aS = valueOrElse(getInteger(this, aJ(aH)), 0)
268268 let aP = getString(this, aK(aH, aL))
269269 let aQ = getString(this, aM(aH, aL))
270270 ([IntegerEntry(aJ(aH), (aS - 1))] ++ (if (if ((aP != unit))
271271 then (aQ != unit)
272272 else false)
273273 then [StringEntry(aM(aH, value(aP)), value(aQ)), StringEntry(aK(aH, value(aQ)), value(aP)), DeleteEntry(aK(aH, aL)), DeleteEntry(aM(aH, aL))]
274274 else if ((aQ != unit))
275275 then [StringEntry(aG(aH), value(aQ)), DeleteEntry(aM(aH, aL)), DeleteEntry(aK(aH, value(aQ)))]
276276 else if ((aP != unit))
277277 then [DeleteEntry(aK(aH, aL)), DeleteEntry(aM(aH, value(aP)))]
278278 else if ((aL == valueOrElse(aO, "")))
279279 then [DeleteEntry(aG(aH))]
280280 else T(((("invalid node: " + aH) + ".") + aL))))
281281 }
282282
283283
284284 func aV () = "%s__managerVaultAddress"
285285
286286
287287 func aW () = "%s__managerPublicKey"
288288
289289
290290 func aX () = {
291291 let Y = getString(aV())
292292 if ($isInstanceOf(Y, "String"))
293293 then {
294294 let aY = Y
295295 addressFromStringValue(aY)
296296 }
297297 else this
298298 }
299299
300300
301301 func aZ () = {
302302 let ba = aX()
303303 let Y = getString(ba, aW())
304304 if ($isInstanceOf(Y, "String"))
305305 then {
306306 let aY = Y
307307 fromBase58String(aY)
308308 }
309309 else if ($isInstanceOf(Y, "Unit"))
310310 then unit
311311 else throw("Match error")
312312 }
313313
314314
315315 func bb (bc) = {
316316 let Y = aZ()
317317 if ($isInstanceOf(Y, "ByteVector"))
318318 then {
319319 let bd = Y
320320 (bc.callerPublicKey == bd)
321321 }
322322 else if ($isInstanceOf(Y, "Unit"))
323323 then (bc.caller == this)
324324 else throw("Match error")
325325 }
326326
327327
328328 func be (bc) = if (bb(bc))
329329 then true
330330 else throw("permission denied")
331331
332332
333333 func bf (bc) = if ((bc.caller == this))
334334 then true
335335 else throw("permission denied")
336336
337337
338338 @Callable(bc)
339339 func getUserGwxAmountAtHeight (bg,bh) = {
340340 let bi = valueOrErrorMessage(addressFromString(ab(this, o)), R("invalid boosting contract address"))
341341 $Tuple2(nil, {
342342 let ac = invoke(bi, "getUserGwxAmountAtHeightREADONLY", [bg, bh], nil)
343343 if ($isInstanceOf(ac, "Int"))
344344 then ac
345345 else throw(($getType(ac) + " couldn't be cast to Int"))
346346 })
347347 }
348348
349349
350350
351351 @Callable(bc)
352352 func constructor (ah,bj,bk,bl,bm) = {
353353 let bn = [be(bc), if ((addressFromString(ah) != unit))
354354 then true
355355 else "invalid factory contract address", if ((addressFromString(bj) != unit))
356356 then true
357357 else "invalid voting emission candidate contract address", if ((addressFromString(bk) != unit))
358358 then true
359359 else "invalid boosting contract address", if ((addressFromString(bl) != unit))
360360 then true
361361 else "invalid staking contract address", if ((bm > 0))
362362 then true
363363 else T("invalid epoch length")]
364364 if ((bn == bn))
365365 then $Tuple2([StringEntry(n, ah), StringEntry(l, bj), StringEntry(o, bk), StringEntry(p, bl), IntegerEntry(f, bm)], unit)
366366 else throw("Strict value is not equal to itself.")
367367 }
368368
369369
370370
371371 @Callable(bc)
372372 func create (C,D) = {
373373 let bn = [if ((toBase58String(bc.caller.bytes) == valueOrElse(getString(this, l), "")))
374374 then true
375375 else be(bc)]
376376 if ((bn == bn))
377377 then {
378378 let A = $Tuple2(C, D)
379379 let bo = ([BooleanEntry(z(A), true)] ++ aR(aD, ae(A)))
380380 let bp = (getInteger(this, j) == unit)
381381 let bq = if (bp)
382382 then {
383383 let i = 0
384384 [IntegerEntry(j, i), IntegerEntry(x(i), height), IntegerEntry(t, height), IntegerEntry(u, i), IntegerEntry(v, height)]
385385 }
386386 else nil
387387 $Tuple2((bo ++ bq), unit)
388388 }
389389 else throw("Strict value is not equal to itself.")
390390 }
391391
392392
393393
394394 @Callable(bc)
395395 func vote (C,D,br) = {
396396 let A = $Tuple2(C, D)
397397 let i = valueOrElse(getInteger(this, j), 0)
398398 let bs = ad(this, x(i))
399399 let bm = ad(this, f)
400400 let bt = (bs + bm)
401401 let bu = getInteger(this, q)
402402 let bv = valueOrElse(getInteger(this, E(bc.caller, i)), 0)
403403 let bw = valueOrElse(getInteger(this, G(A, bc.caller, i)), 0)
404404 let bx = valueOrElse(getInteger(this, I(A, i)), 0)
405405 let by = valueOrElse(getInteger(this, O(i)), 0)
406406 let bz = {
407407 let ac = invoke(this, "getUserGwxAmountAtHeight", [toBase58String(bc.caller.bytes), bt], nil)
408408 if ($isInstanceOf(ac, "Int"))
409409 then ac
410410 else throw(($getType(ac) + " couldn't be cast to Int"))
411411 }
412412 let bA = (bz - bv)
413413 let bB = (bw + br)
414414 let bC = az(A)
415415 let bn = [if ((getBoolean(z(A)) != unit))
416416 then true
417417 else T("invalid assets"), if ((bt > height))
418418 then true
419419 else T("invalid height"), if ((bu == unit))
420420 then true
421421 else T("finalization in progress"), if ((bz > 0))
422422 then true
423423 else T("you do not have gWX"), if (if ((br > 0))
424424 then (bA >= br)
425425 else false)
426426 then true
427427 else T("invalid amount"), if (bC)
428428 then true
429429 else T("pool hasn't WX_EMISSION label")]
430430 if ((bn == bn))
431431 then {
432432 let bD = aE(A)
433433 let Q = toString(bc.caller)
434434 let bE = if (aN(bD, Q))
435435 then nil
436436 else aR(bD, Q)
437437 $Tuple2(([IntegerEntry(E(bc.caller, i), (bv + br)), IntegerEntry(G(A, bc.caller, i), bB), IntegerEntry(I(A, i), (bx + br)), IntegerEntry(O(i), (by + br))] ++ bE), unit)
438438 }
439439 else throw("Strict value is not equal to itself.")
440440 }
441441
442442
443443
444444 @Callable(bc)
445445 func cancelVote (C,D) = {
446446 let A = $Tuple2(C, D)
447447 let i = valueOrElse(getInteger(this, j), 0)
448448 let bs = ad(this, x(i))
449449 let bm = ad(this, f)
450450 let bt = (bs + bm)
451451 let bu = getInteger(this, q)
452452 let bv = valueOrElse(getInteger(this, E(bc.caller, i)), 0)
453453 let bw = valueOrElse(getInteger(this, G(A, bc.caller, i)), 0)
454454 let bx = valueOrElse(getInteger(this, I(A, i)), 0)
455455 let by = valueOrElse(getInteger(this, O(i)), 0)
456456 let bn = [if ((getBoolean(z(A)) != unit))
457457 then true
458458 else T("invalid assets"), if ((bt > height))
459459 then true
460460 else T("invalid height"), if ((bu == unit))
461461 then true
462462 else T("finalization in progress"), if ((bw > 0))
463463 then true
464464 else T("no vote")]
465465 if ((bn == bn))
466466 then {
467467 let bD = aE(A)
468468 let Q = toString(bc.caller)
469469 $Tuple2(([IntegerEntry(E(bc.caller, i), max([(bv - bw), 0])), DeleteEntry(G(A, bc.caller, i)), IntegerEntry(I(A, i), (bx - bw)), IntegerEntry(O(i), (by - bw))] ++ aU(bD, Q)), unit)
470470 }
471471 else throw("Strict value is not equal to itself.")
472472 }
473473
474474
475475
476476 @Callable(bc)
477477 func setEpochLength (bF) = {
478478 let bn = [be(bc), if ((bF > 0))
479479 then true
480480 else T("invalid epoch length")]
481481 if ((bn == bn))
482482 then $Tuple2([IntegerEntry(g, bF)], unit)
483483 else throw("Strict value is not equal to itself.")
484484 }
485485
486486
487487
488488 @Callable(bc)
489489 func setMaxDepth (bG) = {
490490 let bn = [be(bc), if ((bG > 0))
491491 then true
492492 else T("invalid max depth")]
493493 if ((bn == bn))
494494 then $Tuple2([IntegerEntry(k, bG)], unit)
495495 else throw("Strict value is not equal to itself.")
496496 }
497497
498498
499499
500500 @Callable(bc)
501501 func processVoteINTERNAL (bH,Q) = {
502502 let bI = bf(bc)
503503 if ((bI == bI))
504504 then {
505505 let bg = valueOrErrorMessage(addressFromString(Q), R(("processVoteINTERNAL: invalid user address " + Q)))
506506 let i = ad(this, j)
507507 let bJ = (i - 1)
508508 let bm = ad(this, f)
509509 let bs = ad(this, x(i))
510510 let bt = (bs + bm)
511511 let bK = ad(this, x(bJ))
512512 let bL = ad(this, h(bJ))
513513 let bM = (bK + bL)
514514 let bN = if ((bJ >= 0))
515515 then true
516516 else T("processVoteINTERNAL: invalid previous epoch")
517517 if ((bN == bN))
518518 then {
519519 let A = af(bH)
520520 let bO = A
521521 let C = bO._1
522522 let D = bO._2
523523 let bC = az(A)
524524 let bz = {
525525 let ac = invoke(this, "getUserGwxAmountAtHeight", [Q, bt], nil)
526526 if ($isInstanceOf(ac, "Int"))
527527 then ac
528528 else throw(($getType(ac) + " couldn't be cast to Int"))
529529 }
530530 let bP = {
531531 let ac = invoke(this, "getUserGwxAmountAtHeight", [Q, bM], nil)
532532 if ($isInstanceOf(ac, "Int"))
533533 then ac
534534 else throw(($getType(ac) + " couldn't be cast to Int"))
535535 }
536536 let by = valueOrElse(getInteger(O(i)), 0)
537537 let bQ = valueOrElse(getInteger(I(A, i)), 0)
538538 let bR = valueOrErrorMessage(getInteger(G(A, bg, bJ)), R((((("processVoteINTERNAL " + bH) + " ") + Q) + ": no previous vote")))
539539 let bv = valueOrElse(getInteger(this, E(bg, i)), 0)
540540 let L = ao(C, D)
541541 let bS = valueOrElse(getInteger(K(L, bJ)), 0)
542542 let bl = addressFromStringValue(ab(this, p))
543543 let bT = valueOrElse(getInteger(bl, P(L, Q)), 0)
544544 let bU = if ((bT == 0))
545545 then nil
546546 else [IntegerEntry(K(L, bJ), (bS + bR))]
547547 let ay = ao(C, D)
548548 let bV = {
549549 let ac = invoke(ah, "checkBalance", [ay], nil)
550550 if ($isInstanceOf(ac, "Boolean"))
551551 then ac
552552 else throw(($getType(ac) + " couldn't be cast to Boolean"))
553553 }
554554 let bB = if ((bP > 0))
555555 then fraction(bR, bz, bP)
556556 else 0
557557 let bW = if (if (if ((bB > 0))
558558 then bC
559559 else false)
560560 then bV
561561 else false)
562562 then [IntegerEntry(G(A, bg, i), bB), IntegerEntry(O(i), (by + bB)), IntegerEntry(I(A, i), (bQ + bB)), IntegerEntry(E(bg, i), (bv + bB))]
563563 else aU(aE(A), Q)
564564 $Tuple2((bW ++ bU), unit)
565565 }
566566 else throw("Strict value is not equal to itself.")
567567 }
568568 else throw("Strict value is not equal to itself.")
569569 }
570570
571571
572572
573573 @Callable(bc)
574574 func processPoolINTERNAL (bH,bX) = {
575575 let bI = bf(bc)
576576 if ((bI == bI))
577577 then {
578578 let bY = {
579579 let bZ = ad(this, j)
580580 if (bX)
581581 then bZ
582582 else (bZ - 1)
583583 }
584584 let bN = if ((bY >= 0))
585585 then true
586586 else T("processPoolINTERNAL: invalid target epoch")
587587 if ((bN == bN))
588588 then {
589589 let A = af(bH)
590590 let ca = A
591591 let C = ca._1
592592 let D = ca._2
593593 let bl = addressFromStringValue(ab(this, p))
594594 let ay = ao(C, D)
595595 let cb = {
596596 let ac = invoke(bl, "usersListTraversal", [ay], nil)
597597 if ($isInstanceOf(ac, "Boolean"))
598598 then ac
599599 else throw(($getType(ac) + " couldn't be cast to Boolean"))
600600 }
601601 if ((cb == cb))
602602 then if (cb)
603603 then $Tuple2(nil, true)
604604 else {
605+ let bC = az(A)
605606 let bV = {
606607 let ac = invoke(ah, "checkBalance", [ay], nil)
607608 if ($isInstanceOf(ac, "Boolean"))
608609 then ac
609610 else throw(($getType(ac) + " couldn't be cast to Boolean"))
610611 }
611- let cc = if (bV)
612- then unit
613- else invoke(ah, "deleteWxEmissionPoolLabel", [C, D], nil)
614- if ((cc == cc))
612+ let by = valueOrElse(getInteger(this, O(bY)), 0)
613+ let bQ = valueOrElse(getInteger(this, I(A, bY)), 0)
614+ let cc = if (if (if ((by == 0))
615+ then true
616+ else !(bC))
617+ then true
618+ else !(bV))
619+ then 0
620+ else fraction(bQ, b, by)
621+ let cd = invoke(ah, "modifyWeight", [ay, cc], nil)
622+ if ((cd == cd))
615623 then {
616- let bC = az(A)
617- let by = valueOrElse(getInteger(this, O(bY)), 0)
618- let bQ = valueOrElse(getInteger(this, I(A, bY)), 0)
619- let cd = if (if ((by == 0))
624+ let ce = if (if (bC)
620625 then true
621- else !(bC))
622- then 0
623- else fraction(bQ, b, by)
624- let ce = invoke(ah, "modifyWeight", [ay, cd], nil)
625- if ((ce == ce))
626- then {
627- let cf = if (if (bC)
628- then true
629- else bX)
630- then nil
631- else ([DeleteEntry(z(A))] ++ aU(aD, bH))
632- $Tuple2(([IntegerEntry(M(A, bY), cd)] ++ cf), false)
633- }
634- else throw("Strict value is not equal to itself.")
626+ else bX)
627+ then nil
628+ else ([DeleteEntry(z(A))] ++ aU(aD, bH))
629+ $Tuple2(([IntegerEntry(M(A, bY), cc)] ++ ce), false)
635630 }
636631 else throw("Strict value is not equal to itself.")
637632 }
638633 else throw("Strict value is not equal to itself.")
639634 }
640635 else throw("Strict value is not equal to itself.")
641636 }
642637 else throw("Strict value is not equal to itself.")
643638 }
644639
645640
646641
647642 @Callable(bc)
648643 func finalizeHelper () = {
649644 let bX = valueOrElse(getBoolean(w), false)
650645 let i = valueOrElse(getInteger(this, j), 0)
651- let cg = (i - 1)
646+ let cf = (i - 1)
652647 let bs = ad(this, x(i))
653648 let bm = ad(this, f)
654649 let bt = (bs + bm)
655650 let bu = getInteger(this, q)
656651 if (if (if ((height >= bt))
657652 then (bu == unit)
658653 else false)
659654 then !(bX)
660655 else false)
661656 then {
662- let ch = (i + 1)
663- let ci = getInteger(this, g)
664- let cj = {
665- let Y = ci
657+ let cg = (i + 1)
658+ let ch = getInteger(this, g)
659+ let ci = {
660+ let Y = ch
666661 if ($isInstanceOf(Y, "Int"))
667662 then {
668663 let bF = Y
669664 [IntegerEntry(f, bF), DeleteEntry(g)]
670665 }
671666 else if ($isInstanceOf(Y, "Unit"))
672667 then nil
673668 else throw("Match error")
674669 }
675- $Tuple2(([IntegerEntry(x(ch), height), IntegerEntry(t, height), IntegerEntry(j, ch), IntegerEntry(q, d), IntegerEntry(h(i), bm)] ++ cj), true)
670+ $Tuple2(([IntegerEntry(x(cg), height), IntegerEntry(t, height), IntegerEntry(j, cg), IntegerEntry(q, d), IntegerEntry(h(i), bm)] ++ ci), true)
676671 }
677672 else if (if (bX)
678673 then (bu == unit)
679674 else false)
680675 then $Tuple2([IntegerEntry(q, e)], true)
681676 else if ((bu == unit))
682677 then $Tuple2(nil, false)
683678 else if ((bu == d))
684679 then {
685- let ck = getString(r)
686- let cl = getString(s)
687- let Y = ck
680+ let cj = getString(r)
681+ let ck = getString(s)
682+ let Y = cj
688683 if ($isInstanceOf(Y, "Unit"))
689684 then {
690- let cm = getString(aG(aD))
691- if ($isInstanceOf(cm, "Unit"))
685+ let cl = getString(aG(aD))
686+ if ($isInstanceOf(cl, "Unit"))
692687 then $Tuple2([IntegerEntry(q, e), DeleteEntry(r), DeleteEntry(s)], true)
693- else if ($isInstanceOf(cm, "String"))
688+ else if ($isInstanceOf(cl, "String"))
694689 then {
695- let cn = cm
696- $Tuple2([StringEntry(r, cn)], true)
690+ let cm = cl
691+ $Tuple2([StringEntry(r, cm)], true)
697692 }
698693 else throw("Match error")
699694 }
700695 else if ($isInstanceOf(Y, "String"))
701696 then {
702697 let bH = Y
703698 let A = af(bH)
704- let co = {
705- let cm = cl
706- if ($isInstanceOf(cm, "Unit"))
699+ let cn = {
700+ let cl = ck
701+ if ($isInstanceOf(cl, "Unit"))
707702 then getString(aG(aE(A)))
708- else if ($isInstanceOf(cm, "String"))
703+ else if ($isInstanceOf(cl, "String"))
709704 then {
710- let cp = cm
711- let cq = getString(aM(aE(A), cp))
712- if ((cq == cq))
705+ let co = cl
706+ let cp = getString(aM(aE(A), co))
707+ if ((cp == cp))
713708 then {
714- let cr = invoke(this, "processVoteINTERNAL", [bH, cp], nil)
715- if ((cr == cr))
716- then cq
709+ let cq = invoke(this, "processVoteINTERNAL", [bH, co], nil)
710+ if ((cq == cq))
711+ then cp
717712 else throw("Strict value is not equal to itself.")
718713 }
719714 else throw("Strict value is not equal to itself.")
720715 }
721716 else throw("Match error")
722717 }
723- let cm = co
724- if ($isInstanceOf(cm, "Unit"))
718+ let cl = cn
719+ if ($isInstanceOf(cl, "Unit"))
725720 then {
726- let cs = getString(aM(aD, bH))
727- let ct = cs
728- if ($isInstanceOf(ct, "Unit"))
721+ let cr = getString(aM(aD, bH))
722+ let cs = cr
723+ if ($isInstanceOf(cs, "Unit"))
729724 then $Tuple2([IntegerEntry(q, e), DeleteEntry(r), DeleteEntry(s)], true)
730- else if ($isInstanceOf(ct, "String"))
725+ else if ($isInstanceOf(cs, "String"))
731726 then {
732- let aY = ct
727+ let aY = cs
733728 $Tuple2([StringEntry(r, aY), DeleteEntry(s)], true)
734729 }
735730 else throw("Match error")
736731 }
737- else if ($isInstanceOf(cm, "String"))
732+ else if ($isInstanceOf(cl, "String"))
738733 then {
739- let cu = cm
740- $Tuple2([StringEntry(s, cu)], true)
734+ let ct = cl
735+ $Tuple2([StringEntry(s, ct)], true)
741736 }
742737 else throw("Match error")
743738 }
744739 else throw("Match error")
745740 }
746741 else if ((bu == e))
747742 then {
748- let ck = getString(r)
749- let Y = ck
743+ let cj = getString(r)
744+ let Y = cj
750745 if ($isInstanceOf(Y, "Unit"))
751746 then {
752- let cm = getString(aG(aD))
753- if ($isInstanceOf(cm, "Unit"))
747+ let cl = getString(aG(aD))
748+ if ($isInstanceOf(cl, "Unit"))
754749 then {
755750 let bW = if (bX)
756751 then [DeleteEntry(q), DeleteEntry(w)]
757- else [DeleteEntry(q), BooleanEntry(y(cg), true), IntegerEntry(u, i), IntegerEntry(v, bs)]
758- let cv = aB()
759- if ((cv == cv))
752+ else [DeleteEntry(q), BooleanEntry(y(cf), true), IntegerEntry(u, i), IntegerEntry(v, bs)]
753+ let cu = aB()
754+ if ((cu == cu))
760755 then $Tuple2(bW, true)
761756 else throw("Strict value is not equal to itself.")
762757 }
763- else if ($isInstanceOf(cm, "String"))
758+ else if ($isInstanceOf(cl, "String"))
764759 then {
765- let cw = cm
766- $Tuple2([StringEntry(r, cw)], true)
760+ let cv = cl
761+ $Tuple2([StringEntry(r, cv)], true)
767762 }
768763 else throw("Match error")
769764 }
770765 else if ($isInstanceOf(Y, "String"))
771766 then {
772767 let bH = Y
773- let cs = getString(aM(aD, bH))
774- if ((cs == cs))
768+ let cr = getString(aM(aD, bH))
769+ if ((cr == cr))
775770 then {
776771 let cb = {
777772 let ac = invoke(this, "processPoolINTERNAL", [bH, bX], nil)
778773 if ($isInstanceOf(ac, "Boolean"))
779774 then ac
780775 else throw(($getType(ac) + " couldn't be cast to Boolean"))
781776 }
782777 if ((cb == cb))
783778 then if (cb)
784779 then $Tuple2(nil, true)
785780 else {
786- let cm = cs
787- if ($isInstanceOf(cm, "Unit"))
781+ let cl = cr
782+ if ($isInstanceOf(cl, "Unit"))
788783 then {
789784 let bW = if (bX)
790785 then [DeleteEntry(q), DeleteEntry(w), DeleteEntry(r)]
791- else [DeleteEntry(q), BooleanEntry(y(cg), true), IntegerEntry(u, i), IntegerEntry(v, bs), DeleteEntry(r)]
792- let cv = aB()
793- if ((cv == cv))
786+ else [DeleteEntry(q), BooleanEntry(y(cf), true), IntegerEntry(u, i), IntegerEntry(v, bs), DeleteEntry(r)]
787+ let cu = aB()
788+ if ((cu == cu))
794789 then $Tuple2(bW, true)
795790 else throw("Strict value is not equal to itself.")
796791 }
797- else if ($isInstanceOf(cm, "String"))
792+ else if ($isInstanceOf(cl, "String"))
798793 then {
799- let cw = cm
800- $Tuple2([StringEntry(r, cw)], true)
794+ let cv = cl
795+ $Tuple2([StringEntry(r, cv)], true)
801796 }
802797 else throw("Match error")
803798 }
804799 else throw("Strict value is not equal to itself.")
805800 }
806801 else throw("Strict value is not equal to itself.")
807802 }
808803 else throw("Match error")
809804 }
810805 else T("finalization is broken")
811806 }
812807
813808
814809
815810 @Callable(bc)
816-func finalizeWrapper (cx) = {
817- let cy = addressFromStringValue(getStringValue(this, m))
818- let cz = {
811+func finalizeWrapper (cw) = {
812+ let cx = addressFromStringValue(getStringValue(this, m))
813+ let cy = {
819814 let ac = invoke(this, "finalizeHelper", nil, nil)
820815 if ($isInstanceOf(ac, "Boolean"))
821816 then ac
822817 else throw(($getType(ac) + " couldn't be cast to Boolean"))
823818 }
824- if ((cz == cz))
825- then if (!(cz))
826- then if ((cx == 0))
819+ if ((cy == cy))
820+ then if (!(cy))
821+ then if ((cw == 0))
827822 then T("Current voting is not over yet")
828823 else {
829- let cA = invoke(cy, "finalize", nil, nil)
830- if ((cA == cA))
824+ let cz = invoke(cx, "finalize", nil, nil)
825+ if ((cz == cz))
831826 then $Tuple2(nil, unit)
832827 else throw("Strict value is not equal to itself.")
833828 }
834829 else {
835- let cB = valueOrElse(getInteger(this, k), c)
836- if ((cB > cx))
830+ let cA = valueOrElse(getInteger(this, k), c)
831+ if ((cA > cw))
837832 then {
838- let cA = invoke(this, "finalizeWrapper", [(cx + 1)], nil)
839- if ((cA == cA))
833+ let cz = invoke(this, "finalizeWrapper", [(cw + 1)], nil)
834+ if ((cz == cz))
840835 then $Tuple2(nil, unit)
841836 else throw("Strict value is not equal to itself.")
842837 }
843838 else $Tuple2(nil, unit)
844839 }
845840 else throw("Strict value is not equal to itself.")
846841 }
847842
848843
849844
850845 @Callable(bc)
851846 func finalize () = {
852- let cA = invoke(this, "finalizeWrapper", [0], nil)
853- if ((cA == cA))
847+ let cz = invoke(this, "finalizeWrapper", [0], nil)
848+ if ((cz == cz))
854849 then $Tuple2(nil, unit)
855850 else throw("Strict value is not equal to itself.")
856851 }
857852
858853
859854
860855 @Callable(bc)
861856 func containsNodeREADONLY (aH,aL) = $Tuple2(nil, aN(aH, aL))
862857
863858
864859
865860 @Callable(bc)
866861 func insertNode (aH,aL) = {
867862 let bI = be(bc)
868863 if ((bI == bI))
869864 then $Tuple2(aR(aH, aL), unit)
870865 else throw("Strict value is not equal to itself.")
871866 }
872867
873868
874869
875870 @Callable(bc)
876871 func deleteNode (aH,aL) = {
877872 let bI = be(bc)
878873 if ((bI == bI))
879874 then $Tuple2(aU(aH, aL), unit)
880875 else throw("Strict value is not equal to itself.")
881876 }
882877
883878
884879
885880 @Callable(bc)
886881 func isFinalizationInProgress () = {
887882 let bu = getInteger(this, q)
888- let cC = (bu != unit)
889- $Tuple2(nil, cC)
883+ let cB = (bu != unit)
884+ $Tuple2(nil, cB)
890885 }
891886
892887
893888
894889 @Callable(bc)
895890 func deletePool (C,D) = {
896891 let bI = if (if ((bc.caller == ah))
897892 then true
898893 else be(bc))
899894 then true
900895 else T("Permission denied")
901896 if ((bI == bI))
902897 then {
903898 let aH = "pools"
904899 let A = $Tuple2(C, D)
905900 let aL = makeString([C, D], a)
906901 let bW = if (aN(aH, aL))
907902 then aU(aH, aL)
908903 else nil
909904 ([DeleteEntry(z(A))] ++ bW)
910905 }
911906 else throw("Strict value is not equal to itself.")
912907 }
913908
914909
915-@Verifier(cD)
916-func cE () = {
917- let cF = {
910+@Verifier(cC)
911+func cD () = {
912+ let cE = {
918913 let Y = aZ()
919914 if ($isInstanceOf(Y, "ByteVector"))
920915 then {
921916 let bd = Y
922917 bd
923918 }
924919 else if ($isInstanceOf(Y, "Unit"))
925- then cD.senderPublicKey
920+ then cC.senderPublicKey
926921 else throw("Match error")
927922 }
928- sigVerify(cD.bodyBytes, cD.proofs[0], cF)
923+ sigVerify(cC.bodyBytes, cC.proofs[0], cE)
929924 }
930925

github/deemru/w8io/169f3d6 
196.58 ms