tx · B4JoVjz2hkN18EtBsEns8Lfj9Y5EzdHXY63Sq4enN4q2

3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz:  -0.02200000 Waves

2023.01.24 13:55 [2418951] smart account 3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz > SELF 0.00000000 Waves

{ "type": 13, "id": "B4JoVjz2hkN18EtBsEns8Lfj9Y5EzdHXY63Sq4enN4q2", "fee": 2200000, "feeAssetId": null, "timestamp": 1674557731979, "version": 1, "sender": "3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz", "senderPublicKey": "D28XoueZWsMfm8Y5pa6C5ZFuYoWgre2Wm8tzJANJgMnq", "proofs": [ "gdb298PntVvfsbbu2tNS8JqSjvs9KTAMy97VxE5p3TQoYS18gD5LYBN9mDyV8KA7nZNZkjeUhKbaZ7z2Y1XnefD" ], "script": "base64:BgL1HggCEgMKAQgSAwoBCBIDCgEIEgASABIECgIIARIDCgEIEgQKAggIEgYKBAEYCBgSBAoCGAgSBAoCCAgSAwoBCBIECgIICCIGU0NBTEU4IgVNVUxUOCIHU0NBTEUxOCIGTVVMVDE4IgNTRVAiDlBPT0xXRUlHSFRNVUxUIgp6ZXJvQmlnSW50IglvbmVCaWdJbnQiCWFzQW55TGlzdCIDdmFsIgckbWF0Y2gwIgp2YWxBbnlMeXN0IgVhc0ludCIGdmFsSW50Ighhc1N0cmluZyIGdmFsU3RyIgxhc0J5dGVWZWN0b3IiBnZhbEJpbiIPZ2V0U3RyaW5nT3JGYWlsIgdhZGRyZXNzIgNrZXkiGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbCIMZ2V0SW50T3JaZXJvIg9nZXRJbnRPckRlZmF1bHQiCmRlZmF1bHRWYWwiDGdldEludE9yRmFpbCIZZ2V0QmlnSW50RnJvbVN0cmluZ09yWmVybyIcZ2V0QmlnSW50RnJvbVN0cmluZ09yRGVmYXVsdCIBcyIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiB2Zyb21YMTgiD3Jlc3VsdFNjYWxlTXVsdCIRa2V5RmFjdG9yeUFkZHJlc3MiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcCIZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcCIUSWR4RmFjdG9yeUNmZ0lkb0RhcHAiFUlkeEZhY3RvcnlDZmdUZWFtRGFwcCIZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcCIVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwIhlJZHhGYWN0b3J5Q2ZnU2xpcHBhZ2VEYXBwIg1rZXlGYWN0b3J5Q2ZnIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIWa2V5U3RhYmxlUG9vbEFkZG9uQWRkciIMa2V5QWRkb25BZGRyIhprZXlGYWN0b3J5THAyQXNzZXRzTWFwcGluZyIKbHBBc3NldFN0ciIQa2V5RmFjdG9yeUxwTGlzdCIma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MiFGtleUZhY3RvcnlQb29sV2VpZ2h0Ig9jb250cmFjdEFkZHJlc3MiCnJlYWRMcExpc3QiB2ZhY3RvcnkiFHJlYWRGYWN0b3J5Q2ZnT3JGYWlsIhhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwiCmZhY3RvcnlDZmciGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbCIXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwiHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudCIha2V5RW1pc3Npb25SYXRlUGVyQmxvY2tNYXhDdXJyZW50IhVrZXlFbWlzc2lvblN0YXJ0QmxvY2siG2tleUVtaXNzaW9uRHVyYXRpb25JbkJsb2NrcyITa2V5RW1pc3Npb25FbmRCbG9jayIPa2V5U3Rha2VkQnlVc2VyIg51c2VyQWRkcmVzc1N0ciIMbHBBc3NldElkU3RyIg5rZXlTdGFrZWRUb3RhbCIQa2V5Q2xhaW1lZEJ5VXNlciIZa2V5Q2xhaW1lZEJ5VXNlck1pblJld2FyZCIba2V5Q2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkIg9rZXlDbGFpbWVkVG90YWwiCnJlYWRTdGFrZWQiFWtleUxhc3RUb3RhbExwQmFsYW5jZSIJbHBBc3NldElkIhRrZXlMYXN0VXNlckxwQmFsYW5jZSILdXNlckFkZHJlc3MiGWtleVRvdGFsTHBCYWxhbmNlSW50ZWdyYWwiGGtleVVzZXJMcEJhbGFuY2VJbnRlZ3JhbCIma2V5VG90YWxMcEJhbGFuY2VJbnRlZ3JhbExhc3RVcGRIZWlnaHQiJWtleVVzZXJMcEJhbGFuY2VJbnRlZ3JhbExhc3RVcGRIZWlnaHQiEmtleVd4UGVyTHBJbnRlZ3JhbCIfa2V5V3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodCIQa2V5V3hUb0NsYWltVXNlciIja2V5V3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHQiCmtleVd4UGVyTHAiDWtleVd4UGVyTHBYMTgiGmtleVd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0IhlrZXlPcGVyYXRpb25IaXN0b3J5UmVjb3JkIgR0eXBlIgZ0eElkNTgiE2Zvcm1hdEhpc3RvcnlSZWNvcmQiBmFtb3VudCIVT3BlcmF0aW9uSGlzdG9yeUVudHJ5IgR0eElkIg5mYWN0b3J5QWRkcmVzcyIPZmFjdG9yeUNvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0IhBib29zdGluZ0NvbnRyYWN0IgtrZXlOZXh0VXNlciIQZ2V0VXNlcnNMaXN0TmFtZSILa2V5TGlzdEhlYWQiCGxpc3ROYW1lIgtrZXlMaXN0U2l6ZSILa2V5TGlzdFByZXYiAmlkIgtrZXlMaXN0TmV4dCIMY29udGFpbnNOb2RlIgpoZWFkT3JVbml0IgpwcmV2T3JVbml0IgpuZXh0T3JVbml0IhFpbnNlcnROb2RlQWN0aW9ucyIIbGlzdFNpemUiCWNoZWNrTm9kZSIRZGVsZXRlTm9kZUFjdGlvbnMiG2NhbGNXeFBlckxwSW50ZWdyYWxVc2VyTGFzdCIMc3Rha2VkQnlVc2VyIiZ3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE9yWmVybyISd3hQZXJMcEludGVncmFsTmV3Ihp3eFBlckxwSW50ZWdyYWxVc2VyTGFzdEtFWSIUcmVmcmVzaFBvb2xJTlRFR1JBTFMiDnBvb2xBZGRyZXNzU3RyIg1scERlbHRhQW1vdW50Ig5zdGFrZWRUb3RhbEtFWSILc3Rha2VkVG90YWwiEm5vblplcm9TdGFrZWRUb3RhbCIKcG9vbFdlaWdodCISZW1pc3Npb25TdGFydEJsb2NrIgVNVUxUMyIUd3hFbWlzc2lvblBlckJsb2NrWDMiGHBvb2xXeEVtaXNzaW9uUGVyQmxvY2tYMyISd3hQZXJMcEludGVncmFsS0VZIh93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0S0VZIgp3eFBlckxwS0VZIhx3eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0Ig93eFBlckxwSW50ZWdyYWwiD3d4UGVyTHBPclplcm9YMyICZGgiCXd4UGVyTHBYMyIOc3Rha2VkVG90YWxOZXciFW5vblplcm9TdGFrZWRUb3RhbE5ldyIMd3hQZXJMcFgzTmV3Ih93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0TmV3IgVkZWJ1ZyIQcmVmcmVzaElOVEVHUkFMUyINJHQwMTQyNzQxNDM5NiIRcG9vbEludGVncmFsU1RBVEUiCXBvb2xERUJVRyIPc3Rha2VkQnlVc2VyS0VZIhB3eFRvQ2xhaW1Vc2VyS0VZIiN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodEtFWSINd3hUb0NsYWltVXNlciIXd3hQZXJMcEludGVncmFsVXNlckxhc3QiBk1VTFQxMSIQd3hUb0NsYWltVXNlck5ldyIad3hQZXJMcEludGVncmFsVXNlckxhc3ROZXciI3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0TmV3IhZtYW5hZ2VyUHVibGljS2V5T3JVbml0Ih1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCIVcGVybWlzc2lvbkRlbmllZEVycm9yIghtdXN0VGhpcyIBaSILbXVzdE1hbmFnZXIiAnBrIhFmYWN0b3J5QWRkcmVzc1N0ciILY2hlY2tDYWxsZXIiFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QiBWNoZWtzIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iA3BtdCIJY2FsbGVyU3RyIg0kdDAxODgzMjE4OTQ5Ig1pbnRlZ3JhbFNUQVRFIgtsaXN0QWN0aW9ucyIJcG9vbEFkZG9uIhZjbGFpbWVkQnlVc2VyTWluUmV3YXJkIgtwb29sQWRkcmVzcyIQYXZhaWxhYmxlVG9DbGFpbSIBciIGcmVzdWx0IhBjbGFpbWVkQnlVc2VyS0VZIg9jbGFpbWVkVG90YWxLRVkiGWNsYWltZWRCeVVzZXJNaW5SZXdhcmRLRVkiG2NsYWltZWRCeVVzZXJCb29zdFJld2FyZEtFWSINY2xhaW1lZEJ5VXNlciIYY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkIgxjbGFpbWVkVG90YWwiDSR0MDIyODE0MjI5MjYiEnd4QW1vdW50Qm9vc3RUb3RhbCINbWluUmV3YXJkUGFydCIPYm9vc3RSZXdhcmRQYXJ0Igl3eEFzc2V0SWQiCWVtaXRCb29zdCISY2xhaW1lZEJ5VXNlclZhbHVlIh5jbGFpbWVkQnlVc2VyTWluUmV3YXJkUGx1c1BhcnQiK2NsYWltZWRCeVVzZXJCb29zdFJld2FyZFBsdXNCb29zdFJld2FyZFBhcnQiIGNsYWltZWRUb3RhbFBsdXNBdmFpbGFibGVUb0NsYWltIgtjdXJyZW50SXRlciIKbHBBc3NldElkcyIGcmVzQWNjIgRpbmZvIgFAIgl1bmNsYWltZWQiB2NsYWltZWQiA3JlcyIDaW52IhJ3eEVtaXNzaW9uUGVyQmxvY2siDHBhc3NlZEJsb2NrcyIOcG9vbFd4RW1pc3Npb24iDHVzZXJXeFJld2FyZCINJHQwMjY1ODQyNjY5NiIOYm9vc3RJbnZSZXN1bHQiCmJvb3N0RGVidWciC3RvdGFsUmV3YXJkIgp1c2VyT3JVbml0IgckbWF0Y2gxIgRoZWFkIg5uZXh0VXNlck9yVW5pdCIIbmV4dFVzZXIiDSR0MDI5MDMyMjkxNDIiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleV4AAWEACAABYgCAwtcvAAFjABIAAWQJALYCAQCAgJC7utat8A0AAWUCAl9fAAFmBQFiAAFnCQC2AgEAAAABaAkAtgIBAAEBAWkBAWoEAWsFAWoDCQABAgUBawIJTGlzdFtBbnldBAFsBQFrBQFsCQACAQIbZmFpbCB0byBjYXN0IGludG8gTGlzdFtBbnldAQFtAQFqBAFrBQFqAwkAAQIFAWsCA0ludAQBbgUBawUBbgkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEBbwEBagQBawUBagMJAAECBQFrAgZTdHJpbmcEAXAFAWsFAXAJAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBAXEBAWoEAWsFAWoDCQABAgUBawIKQnl0ZVZlY3RvcgQBcgUBawUBcgkAAgECFWZhaWwgdG8gY2FzdCBpbnRvIEludAEBcwIBdAF1CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUBdAUBdQkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUBdQIPIGlzIG5vdCBkZWZpbmVkAQF2AgF0AXUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQF0BQF1CQCsAgIJAKwCAgkArAICCQCsAgICCm1hbmRhdG9yeSAJAKUIAQUBdAIBLgUBdQIPIGlzIG5vdCBkZWZpbmVkAQF3AgF0AXUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUBdAUBdQAAAQF4AwF0AXUBeQkBC3ZhbHVlT3JFbHNlAgkAmggCBQF0BQF1BQF5AQF6AgF0AXUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQF0BQF1CQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQF1Ag8gaXMgbm90IGRlZmluZWQBAUECAXQBdQkBBXZhbHVlAQkAqAMBCQELdmFsdWVPckVsc2UCCQCdCAIFAXQFAXUCATABAUIDAXQBdQF5BAFrCQCdCAIFAXQFAXUDCQABAgUBawIGU3RyaW5nBAFDBQFrCQEFdmFsdWUBCQCoAwEFAUMDCQABAgUBawIEVW5pdAUBeQkAAgECC01hdGNoIGVycm9yAQFEAgFFAUYJALwCAwkAtgIBBQFFBQFkCQC2AgEFAUYBAUcCAWoBSAkAoAMBCQC8AgMFAWoJALYCAQUBSAUBZAEBSQACHCVzJXNfX2NvbmZpZ19fZmFjdG9yeUFkZHJlc3MBAUoAAholc19fdm90aW5nRW1pc3Npb25Db250cmFjdAABSwABAAFMAAIAAU0AAwABTgAEAAFPAAUAAVAABgABUQAHAQFSAAIRJXNfX2ZhY3RvcnlDb25maWcBAVMAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBVAACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBVQACFyVzX19zdGFibGVQb29sQWRkb25BZGRyAQFWAAINJXNfX2FkZG9uQWRkcgEBVwEBWAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQFYCQDMCAICHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUDbmlsBQFlAQFZAAIQJXNfX2xwVG9rZW5zTGlzdAEBWgEBWAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQFYCQDMCAICHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUDbmlsBQFlAQJhYQECYWIJALkJAgkAzAgCAgQlcyVzCQDMCAICCnBvb2xXZWlnaHQJAMwIAgUCYWIFA25pbAUBZQECYWMBAmFkCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUCYWQJAQFZAAIABQFlAQJhZQECYWQJALUJAgkBAXYCBQJhZAkBAVIABQFlAQJhZgECYWcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYWcFAUwBAmFoAQJhZwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhZwUBTwECYWkBAmFnCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFnBQFLAQJhagACGyVzJXNfX3JhdGVQZXJCbG9ja19fY3VycmVudAECYWsAAh4lcyVzX19yYXRlUGVyQmxvY2tNYXhfX2N1cnJlbnQBAmFsAAIaJXMlc19fZW1pc3Npb25fX3N0YXJ0QmxvY2sBAmFtAAIYJXMlc19fZW1pc3Npb25fX2R1cmF0aW9uAQJhbgACGCVzJXNfX2VtaXNzaW9uX19lbmRCbG9jawECYW8CAmFwAmFxCQC5CQIJAMwIAgIOJXMlcyVzX19zdGFrZWQJAMwIAgUCYXAJAMwIAgUCYXEFA25pbAUBZQECYXIBAmFxCQCsAgICFyVzJXMlc19fc3Rha2VkX190b3RhbF9fBQJhcQECYXMCAmFxAmFwCQC5CQIJAMwIAgIPJXMlcyVzX19jbGFpbWVkCQDMCAIFAmFwCQDMCAIFAmFxBQNuaWwFAWUBAmF0AgJhcQJhcAkAuQkCCQDMCAICGCVzJXMlc19fY2xhaW1lZE1pblJld2FyZAkAzAgCBQJhcAkAzAgCBQJhcQUDbmlsBQFlAQJhdQICYXECYXAJALkJAgkAzAgCAholcyVzJXNfX2NsYWltZWRCb29zdFJld2FyZAkAzAgCBQJhcAkAzAgCBQJhcQUDbmlsBQFlAQJhdgECYXEJALkJAgkAzAgCAhYlcyVzJXNfX2NsYWltZWRfX3RvdGFsCQDMCAIFAmFxBQNuaWwFAWUBAmF3AQF1CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAXUAAAECYXgBAmF5CQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAmF5CQDMCAICBXRvdGFsCQDMCAICA2JhbAUDbmlsBQFlAQJhegICYXkCYUEJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYXkJAMwIAgUCYUEJAMwIAgIDYmFsBQNuaWwFAWUBAmFCAQJheQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQJheQkAzAgCAgV0b3RhbAkAzAgCAgZiYWxJTlQFA25pbAUBZQECYUMCAmF5AmFBCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAmF5CQDMCAIFAmFBCQDMCAICBmJhbElOVAUDbmlsBQFlAQJhRAECYXkJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYXkJAMwIAgIFdG90YWwJAMwIAgIHbGFzdFVwZAUDbmlsBQFlAQJhRQICYXkCYUEJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYXkJAMwIAgUCYUEJAMwIAgIHbGFzdFVwZAUDbmlsBQFlAQJhRgECYXkJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJheQkAzAgCAgZjb21tb24JAMwIAgIFbHBJbnQFA25pbAUBZQECYUcBAmF5CQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgUCYXkJAMwIAgIGY29tbW9uCQDMCAICBmxwSW50SAUDbmlsBQFlAQJhSAICYXkCYUEJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJheQkAzAgCBQJhQQkAzAgCAgVscEludAUDbmlsBQFlAQJhSQICYXkCYUEJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJheQkAzAgCBQJhQQkAzAgCAgZscEludEgFA25pbAUBZQECYUoBAmF5CQC5CQIJAMwIAgICJXMJAMwIAgUCYXkJAMwIAgIHd3hQZXJMcAUDbmlsBQFlAQJhSwECYXkJALkJAgkAzAgCAgIlcwkAzAgCBQJheQkAzAgCAgp3eFBlckxwWDE4BQNuaWwFAWUBAmFMAgJheQJhQQkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAIFAmF5CQDMCAIFAmFBCQDMCAICBXVJbnRMBQNuaWwFAWUBAmFNAwJhTgJhQQJhTwkAuQkCCQDMCAICESVzJXMlcyVzX19oaXN0b3J5CQDMCAIFAmFOCQDMCAIFAmFBCQDMCAIFAmFPBQNuaWwFAWUBAmFQBAJhQQJheQJhTgJhUQkAuQkCCQDMCAICDCVzJXMlcyVkJWQlZAkAzAgCBQJhQQkAzAgCBQJheQkAzAgCBQJhTgkAzAgCCQCkAwEFBmhlaWdodAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAKQDAQUCYVEFA25pbAUBZQECYVIFAmFOAmFBAmF5AmFRAmFTCQELU3RyaW5nRW50cnkCCQECYU0DBQJhTgUCYUEJANgEAQUCYVMJAQJhUAQFAmFBBQJheQUCYU4FAmFRAAJhVAkBAXMCBQR0aGlzCQEBSQAAAmFVCQERQGV4dHJOYXRpdmUoMTA2MikBBQJhVAACYWcJAQJhZQEFAmFVAAJhVgkBAmFoAQUCYWcAAmFXCQECYWYBBQJhZwECYVgBAmF5CQC5CQIJAMwIAgIEJXMlcwkAzAgCBQJheQkAzAgCAghuZXh0VXNlcgUDbmlsBQFlAQJhWQECYXkJALkJAgkAzAgCAgV1c2VycwkAzAgCBQJheQUDbmlsBQFlAQJhWgECYmEJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYmEJAMwIAgIEaGVhZAUDbmlsBQFlAQJiYgECYmEJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUCYmEJAMwIAgIEc2l6ZQUDbmlsBQFlAQJiYwICYmECYmQJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCBQJiYQkAzAgCBQJiZAkAzAgCAgRwcmV2BQNuaWwFAWUBAmJlAgJiYQJiZAkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAIFAmJhCQDMCAIFAmJkCQDMCAICBG5leHQFA25pbAUBZQECYmYCAmJhAmJkBAJiZwkAnQgCBQR0aGlzCQECYVoBBQJiYQQCYmgJAJ0IAgUEdGhpcwkBAmJjAgUCYmEFAmJkBAJiaQkAnQgCBQR0aGlzCQECYmUCBQJiYQUCYmQDAwkAAAIFAmJkCQELdmFsdWVPckVsc2UCBQJiZwIABgkBAiE9AgUCYmgFBHVuaXQGCQECIT0CBQJiaQUEdW5pdAECYmoCAmJhAmJkBAJiZwkAnQgCBQR0aGlzCQECYVoBBQJiYQQCYmsJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJiAQUCYmEAAAQCYmwDCQEBIQEJAQJiZgIFAmJhBQJiZAYJAAIBAgtOb2RlIGV4aXN0cwMJAAACBQJibAUCYmwJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYmIBBQJiYQkAZAIFAmJrAAEFA25pbAMJAQIhPQIFAmJnBQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiZQIFAmJhBQJiZAkBBXZhbHVlAQUCYmcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJjAgUCYmEJAQV2YWx1ZQEFAmJnBQJiZAUDbmlsBQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFaAQUCYmEFAmJkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmJtAgJiYQJiZAQCYmcJAJ0IAgUEdGhpcwkBAmFaAQUCYmEEAmJrCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiYgEFAmJhAAAEAmJoCQCdCAIFBHRoaXMJAQJiYwIFAmJhBQJiZAQCYmkJAJ0IAgUEdGhpcwkBAmJlAgUCYmEFAmJkCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiYgEFAmJhCQBlAgUCYmsAAQUDbmlsAwMJAQIhPQIFAmJoBQR1bml0CQECIT0CBQJiaQUEdW5pdAcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJlAgUCYmEJAQV2YWx1ZQEFAmJoCQEFdmFsdWUBBQJiaQkAzAgCCQELU3RyaW5nRW50cnkCCQECYmMCBQJiYQkBBXZhbHVlAQUCYmkJAQV2YWx1ZQEFAmJoCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJiYwIFAmJhBQJiZAkAzAgCCQELRGVsZXRlRW50cnkBCQECYmUCBQJiYQUCYmQFA25pbAMJAQIhPQIFAmJpBQR1bml0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhWgEFAmJhCQEFdmFsdWUBBQJiaQkAzAgCCQELRGVsZXRlRW50cnkBCQECYmUCBQJiYQUCYmQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmJjAgUCYmEJAQV2YWx1ZQEFAmJpBQNuaWwDCQECIT0CBQJiaAUEdW5pdAkAzAgCCQELRGVsZXRlRW50cnkBCQECYmMCBQJiYQUCYmQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmJlAgUCYmEJAQV2YWx1ZQEFAmJoBQNuaWwDCQAAAgUCYmQJAQt2YWx1ZU9yRWxzZQIFAmJnAgAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFaAQUCYmEFA25pbAkAAgEJAKwCAgkArAICCQCsAgICDmludmFsaWQgbm9kZTogBQJiYQIBLgUCYmQBAmJuBAJibwJicAJicQJicgMDCQAAAgUCYnAFAWcJAL8CAgUCYm8FAWcHBQFnAwkAAAIFAmJvBQFnBQJicQMDCQC/AgIFAmJwBQFnCQC/AgIFAmJvBQFnBwkBBXZhbHVlAQkAqAMBCQEBcwIFBHRoaXMFAmJyCQACAQItY2FsY1d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0OiB1bmV4cGVjdGVkIHN0YXRlAQJicwMCYXECYnQCYnUEAmJ2CQECYXIBBQJhcQQCYncJALYCAQkBAmF3AQUCYnYEAmJ4AwkAAAIFAmJ3BQFnBQFoBQJidwQCYnkJARFAZXh0ck5hdGl2ZSgxMDUwKQIFAmFVCQECYWEBBQJidAQCYnoJAQF6AgUCYVYJAQJhbAAEAmJBAOgHBAJiQgkAaAIJAQF6AgUCYVYJAQJhagAFAmJBBAJiQwkAawMFAmJCBQJieQkAaAIFAWYAAwQCYkQJAQJhRgEFAmFxBAJiRQkBAmFHAQUCYXEEAmJGCQECYUoBBQJhcQQCYkcJAQF4AwUEdGhpcwUCYkUFAmJ6BAJiSAkBAUECBQR0aGlzBQJiRAQCYkkAAAQCYkoJAJYDAQkAzAgCCQBlAgUGaGVpZ2h0BQJiRwkAzAgCAAAFA25pbAQCYksDCQECIT0CBQJiSQAACQC2AgEFAmJJCQC8AgMJALYCAQUCYkMJALYCAQUBYgUCYngEAmJMCQC3AgIFAmJ3CQC2AgEFAmJ1BAJiTQMJAAACBQJiTAUBZwUBaAUCYkwEAmJxCQC3AgIFAmJICQC5AgIFAmJLCQC2AgEFAmJKBAJiTgkAugICCQC2AgEFAmJDBQJiTQQCYk8FBmhlaWdodAQCYlAJALkJAgkAzAgCCQCmAwEFAmJxCQDMCAIJAKQDAQUCYkoJAMwIAgkApgMBBQJiSwkAzAgCCQCmAwEFAmJ3CQDMCAIJAKQDAQUCYkMJAMwIAgkApAMBBQJiQgkAzAgCCQCkAwEFAmJ5BQNuaWwCAjo6CQCVCgMFAmJxCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmJECQCmAwEFAmJxCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJiRQUCYk8JAMwIAgkBC1N0cmluZ0VudHJ5AgUCYkYJAKYDAQUCYk4FA25pbAUCYlABAmJRBAJhcQJhcAJidAJidQQCYlIJAQJicwMFAmFxBQJidAUCYnUEAmJxCAUCYlICXzEEAmJTCAUCYlICXzIEAmJUCAUCYlICXzMEAmJBAOgHBAJiVQkBAmFvAgUCYXAFAmFxBAJibwkBAmF3AQUCYlUEAmJWCQECYUgCBQJhcQUCYXAEAmJXCQECYUkCBQJhcQUCYXAEAmJyCQECYUwCBQJhcQUCYXAEAmJYCQEBQQIFBHRoaXMFAmJWBAJicAkBAXcCBQR0aGlzBQJiVwQCYlkJAQJibgQJALYCAQUCYm8JALYCAQUCYnAFAmJxBQJicgQCYloJAGgCBQFiBQJiQQQCY2EJAJgDAQkAzAgCCQC3AgIFAmJYCQC8AgMJALgCAgUCYnEFAmJZCQC2AgEFAmJvCQC2AgEFAmJaCQDMCAIFAWcFA25pbAQCY2IFAmJxBAJjYwUGaGVpZ2h0BAJiUAkAuQkCCQDMCAIJAKYDAQUCYlgJAMwIAgkApgMBBQJiWQkAzAgCCQCkAwEFAmJvCQDMCAIFAmJUCQDMCAIJAKQDAQUGaGVpZ2h0BQNuaWwCAjo6CQCVCgMFAmNhCQDOCAIFAmJTCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmJWCQCmAwEFAmNhCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJiVwUCY2MJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYnIJAKYDAQUCY2IFA25pbAUCYlABAmNkAAQBawkAoggBCQEBUwADCQABAgUBawIGU3RyaW5nBAFDBQFrCQDZBAEFAUMDCQABAgUBawIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJjZQAEAWsJAKIIAQkBAVQAAwkAAQIFAWsCBlN0cmluZwQBQwUBawkA2QQBBQFDAwkAAQIFAWsCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgACY2YJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAECY2cBAmNoAwkAAAIIBQJjaAZjYWxsZXIFBHRoaXMGBQJjZgECY2kBAmNoBAFrCQECY2QAAwkAAQIFAWsCCkJ5dGVWZWN0b3IEAmNqBQFrAwkAAAIIBQJjaA9jYWxsZXJQdWJsaWNLZXkFAmNqBgUCY2YDCQABAgUBawIEVW5pdAMJAAACCAUCY2gGY2FsbGVyBQR0aGlzBgUCY2YJAAIBAgtNYXRjaCBlcnJvcg0CY2gBC2NvbnN0cnVjdG9yAQJjawQCY2wJAQJjaQEFAmNoAwkAAAIFAmNsBQJjbAkAzAgCCQELU3RyaW5nRW50cnkCCQEBSQAFAmNrBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY2gBDWNvbnN0cnVjdG9yVjIBAmNtBAJjbgkAzAgCCQECY2kBBQJjaAkAzAgCAwkBAiE9AgkApggBBQJjbQUEdW5pdAYCKGludmFsaWQgdm90aW5nIGVtaXNzaW9uIGNvbnRyYWN0IGFkZHJlc3MFA25pbAMJAAACBQJjbgUCY24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUoABQJjbQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNoAQpzZXRNYW5hZ2VyAQJjbwQCY2wJAQJjaQEFAmNoAwkAAAIFAmNsBQJjbAQCY3AJANkEAQUCY28DCQAAAgUCY3AFAmNwCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFUAAUCY28FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjaAEOY29uZmlybU1hbmFnZXIABAJjcQkBAmNlAAQCY3IDCQEJaXNEZWZpbmVkAQUCY3EGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmNyBQJjcgQCY3MDCQAAAggFAmNoD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCY3EGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmNzBQJjcwkAzAgCCQELU3RyaW5nRW50cnkCCQEBUwAJANgEAQkBBXZhbHVlAQUCY3EJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVQABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY2gBBXN0YWtlAAMJAQIhPQIJAJADAQgFAmNoCHBheW1lbnRzAAEJAAIBAjRpbnZhbGlkIHBheW1lbnQgLSBleGFjdCBvbmUgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBAJjdAkAkQMCCAUCY2gIcGF5bWVudHMAAAQCYXkJAQV2YWx1ZQEIBQJjdAdhc3NldElkBAJhcQkA2AQBBQJheQQCYVEIBQJjdAZhbW91bnQEAmJ0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYVUJAQFXAQUCYXEJAKwCAgIVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQJhcQQCY3UJAKUIAQgFAmNoBmNhbGxlcgQCYXADCQAAAgUCY3UFAmJ0CQClCAEIBQJjaAxvcmlnaW5DYWxsZXIFAmN1BAJiVQkBAmFvAgUCYXAFAmFxBAJidgkBAmFyAQUCYXEEAmJvCQECYXcBBQJiVQQCYncJAQJhdwEFAmJ2BAJjdgkBAmJRBAUCYXEFAmFwBQJidAUCYVEEAmNhCAUCY3YCXzEEAmN3CAUCY3YCXzIEAmJQCAUCY3YCXzMEAmJhCQECYVkBBQJhcQQCY3gDCQECYmYCBQJiYQUCYXAFA25pbAkBAmJqAgUCYmEFAmFwCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYlUJAGQCBQJibwUCYVEJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJ2CQBkAgUCYncFAmFRCQDMCAIJAQJhUgUCBXN0YWtlBQJhcAUCYXEFAmFRCAUCY2gNdHJhbnNhY3Rpb25JZAUDbmlsBQJjdwUCY3gCY2gBB3Vuc3Rha2UCAmFxAmFRBAJheQkA2QQBBQJhcQQCYnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhVQkBAVcBBQJhcQkArAICAhV1bnN1cHBvcnRlZCBscCBhc3NldCAFAmFxBAJjeQkBC3ZhbHVlT3JFbHNlAgkAnQgCCQERQGV4dHJOYXRpdmUoMTA2MikBBQJidAkBAVYABQJidAQCY3UJAKUIAQgFAmNoBmNhbGxlcgQCYXADAwkAAAIFAmN1BQJidAYJAAACBQJjdQUCY3kJAKUIAQgFAmNoDG9yaWdpbkNhbGxlcgUCY3UEAmJVCQECYW8CBQJhcAUCYXEEAmJ2CQECYXIBBQJhcQQCYm8JAQJhdwEFAmJVBAJidwkBAmF3AQUCYnYEAmN3CAkBAmJRBAUCYXEFAmFwBQJidAkBAS0BBQJhUQJfMgQCYmEJAQJhWQEFAmFxBAJjeAMDCQECYmYCBQJiYQUCYXAJAAACBQJhUQUCYm8HCQECYm0CBQJiYQUCYXAFA25pbAQCY3oJAQFBAgUEdGhpcwkBAmF0AgUCYXEFAmFwBAJjQQkBAXYCBQJhVQkBAVoBBQJhcQQCY2EICQECYlEEBQJhcQUCYXAFAmNBAAACXzEEAmNCCQC4AgIFAmNhBQJjegQCY0MDCQC/AgIFAmNCBQFnCQD8BwQFBHRoaXMCD2NsYWltV3hJTlRFUk5BTAkAzAgCBQJhcQkAzAgCBQJhcAUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCY0MFAmNDAwkAZgIFAmFRBQJibwkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIOcGFzc2VkIGFtb3VudD0JAKQDAQUCYVECGyBpcyBncmVhdGVyIHRoYW4gYXZhaWxhYmxlPQkApAMBBQJibwIMLiBscEFzc2V0SWQ9BQJhcQISLiBzdGFrZWRCeVVzZXJLRVk9BQJiVQkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJVCQBlAgUCYm8FAmFRCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJidgkAZQIFAmJ3BQJhUQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCY2gGY2FsbGVyBQJhUQUCYXkJAMwIAgkBAmFSBQIHdW5zdGFrZQUCYXAFAmFxBQJhUQgFAmNoDXRyYW5zYWN0aW9uSWQFA25pbAUCY3cFAmN4CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNoAQdjbGFpbVd4AQJhcQQCYXAJAKUIAQgFAmNoBmNhbGxlcgQCY0QJAPwHBAUEdGhpcwIPY2xhaW1XeElOVEVSTkFMCQDMCAIFAmFxCQDMCAIFAmFwBQNuaWwFA25pbAkAlAoCBQNuaWwFAmNEAmNoAQ9jbGFpbVd4SU5URVJOQUwCAmFxAmFwBAJjbAkBAmNnAQUCY2gDCQAAAgUCY2wFAmNsBAJhQQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFAmFwAiVjbGFpbVd4SU5URVJOQUw6IGludmFsaWQgdXNlciBhZGRyZXNzBAJidAkBAXYCBQJhVQkBAVoBBQJhcQQCY0UJAQJhcwIFAmFxBQJhcAQCY0YJAQJhdgEFAmFxBAJjRwkBAmF0AgUCYXEFAmFwBAJjSAkBAmF1AgUCYXEFAmFwBAJjSQkBAUECBQR0aGlzBQJjRQQCY3oJAQFBAgUEdGhpcwUCY0cEAmNKCQEBQQIFBHRoaXMFAmNIBAJjSwkBAUECBQR0aGlzBQJjRgQCY0wJAQJiUQQFAmFxBQJhcAUCYnQAAAQCY2EIBQJjTAJfMQQCY3cIBQJjTAJfMgQCYlAIBQJjTAJfMwQCY0IJAJgDAQkAzAgCCQC4AgIFAmNhBQJjegkAzAgCBQFnBQNuaWwDCQDAAgIFAWcFAmNCCQACAQIQbm90aGluZyB0byBjbGFpbQQCY00JAJYDAQkAzAgCCQEBbQEJAJEDAgkBAWkBCQD8BwQFAmFXAgxjbGFpbVd4Qm9vc3QJAMwIAgUCYXEJAMwIAgUCYXAFA25pbAUDbmlsAAAJAMwIAgAABQNuaWwEAmNOBQJjQgQCY08JAJkDAQkAzAgCCQC5AgIFAmNOCQC2AgEAAgkAzAgCCQC2AgEFAmNNBQNuaWwEAmNQCQEBcQEJAJEDAgkBAWkBCQD8BwQFAmFWAgRlbWl0CQDMCAIJAKADAQUCY04FA25pbAUDbmlsAAAEAmNRCQEBaQEJAPwHBAUCYVYCBGVtaXQJAMwIAgkAoAMBBQJjTwUDbmlsBQNuaWwDCQAAAgUCY1EFAmNRBAJjUgkAtwICCQC3AgIFAmNJBQJjTgUCY08EAmNTCQC3AgIFAmN6BQJjTgQCY1QJALcCAgUCY0oFAmNPBAJjVQkAtwICBQJjSwUCY0IJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY0UJAKYDAQUCY1IJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY0cJAKYDAQUCY1MJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY0gJAKYDAQUCY1QJAMwIAgkBC1N0cmluZ0VudHJ5AgUCY0YJAKYDAQUCY1UJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUEJAKADAQUCY04FAmNQCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFBCQCgAwEFAmNPBQJjUAkAzAgCCQECYVIFAgVjbGFpbQUCYXAFAmFxCQCgAwEFAmNCCAUCY2gNdHJhbnNhY3Rpb25JZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNoARtjbGFpbVd4QnVsa0ludGVybmFsUkVBRE9OTFkEAmNWAmNXAmFwAmNYAwkAAAIFAmNWCQCQAwEFAmNXCQCUCgIFA25pbAUCY1gEAmF5CQCRAwIFAmNXBQJjVgQCY1kJALUJAgoAAmNaCQD8BwQFBHRoaXMCD2NsYWltV3hSRUFET05MWQkAzAgCBQJheQkAzAgCBQJhcAUDbmlsBQNuaWwDCQABAgUCY1oCBlN0cmluZwUCY1oJAAIBCQCsAgIJAAMBBQJjWgIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nBQFlBAJkYQkAkQMCBQJjWQADBAJkYgkAkQMCBQJjWQAEBAJkYwkAzQgCBQJjWAkAuQkCCQDMCAICBCVkJWQJAMwIAgUCZGEJAMwIAgUCZGIFA25pbAUBZQQCZGQKAAJjWgkA/AcEBQR0aGlzAhtjbGFpbVd4QnVsa0ludGVybmFsUkVBRE9OTFkJAMwIAgkAZAIFAmNWAAEJAMwIAgUCY1cJAMwIAgUCYXAJAMwIAgUCZGMFA25pbAUDbmlsAwkAAQIFAmNaAglMaXN0W0FueV0FAmNaCQACAQkArAICCQADAQUCY1oCHiBjb3VsZG4ndCBiZSBjYXN0IHRvIExpc3RbQW55XQMJAAACBQJkZAUCZGQJAJQKAgUDbmlsBQJkZAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjaAETY2xhaW1XeEJ1bGtSRUFET05MWQICY1cCYXAEAmRjCQD8BwQFBHRoaXMCG2NsYWltV3hCdWxrSW50ZXJuYWxSRUFET05MWQkAzAgCAAAJAMwIAgUCY1cJAMwIAgUCYXAJAMwIAgUDbmlsBQNuaWwFA25pbAkAlAoCBQNuaWwFAmRjAmNoAQ9jbGFpbVd4UkVBRE9OTFkCAmFxAmFwBAJiVQkBAmFvAgUCYXAFAmFxBAJidgkBAmFyAQUCYXEEAmNFCQECYXMCBQJhcQUCYXAEAmNHCQECYXQCBQJhcQUCYXAEAmJvCQECYXcBBQJiVQQCYncJAQJhdwEFAmJ2BAJjSQkBAUECBQR0aGlzBQJjRQQCY3oJAQFBAgUEdGhpcwUCY0cEAmJ0CQEBdgIFAmFVCQEBWgEFAmFxBAJieQkBEUBleHRyTmF0aXZlKDEwNTApAgUCYVUJAQJhYQEFAmJ0BAJkZQkBAXoCBQJhVgkBAmFqAAQCYnoJAQF6AgUCYVYJAQJhbAAEAmRmAwkAZgIFAmJ6BQZoZWlnaHQAAAkAZQIFBmhlaWdodAUCYnoEAmRnCQBrAwkAaAIFAmRlBQJkZgUCYnkFAWYEAmRoCQBrAwUCZGcFAmJvBQJidwQCZGkJAQJiUQQFAmFxBQJhcAUCYnQAAAQCY2EIBQJkaQJfMQQCY3cIBQJkaQJfMgQCYlAIBQJkaQJfMwQCY0IJAJgDAQkAzAgCCQC4AgIFAmNhBQJjegkAzAgCBQFnBQNuaWwEAmRqCQEBaQEJAPwHBAUCYVcCFGNsYWltV3hCb29zdFJFQURPTkxZCQDMCAIFAmFxCQDMCAIFAmFwBQNuaWwFA25pbAQCY00JAJYDAQkAzAgCCQEBbQEJAJEDAgUCZGoAAAkAzAgCAAAFA25pbAQCZGsJAQFvAQkAkQMCBQJkagABBAJjTgUCY0IEAmNPCQCZAwEJAMwIAgkAuQICBQJjTgkAtgIBAAIJAMwIAgkAtgIBBQJjTQUDbmlsBAJkbAkAtwICBQJjTgUCY08JAJQKAgUDbmlsCQC5CQIJAMwIAgIOJXMlcyVkJWQlZCVkJXMJAMwIAgUCYXEJAMwIAgUCYXAJAMwIAgkApgMBBQJkbAkAzAgCCQCmAwEFAmNJCQDMCAIJAKYDAQUCY04JAMwIAgkApgMBBQJjTwkAzAgCAgRzb29uBQNuaWwFAWUCY2gBEnVzZXJzTGlzdFRyYXZlcnNhbAECYXkEAmNsAwkAAAIJANgEAQgIBQJjaAZjYWxsZXIFYnl0ZXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAUoAAgAGCQECY2kBBQJjaAMJAAACBQJjbAUCY2wEAmJhCQECYVkBBQJheQQCZG0JAKIIAQkBAmFYAQUCYXkEAmJnCQCiCAEJAQJhWgEFAmJhBAFrBQJkbQMJAAECBQFrAgRVbml0BAJkbgUCYmcDCQABAgUCZG4CBFVuaXQJAJQKAgUDbmlsBwMJAAECBQJkbgIGU3RyaW5nBAJkbwUCZG4JAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQECYVgBBQJheQUCZG8FA25pbAYJAAIBAgtNYXRjaCBlcnJvcgMJAAECBQFrAgZTdHJpbmcEAmFBBQFrBAJjegkBAUECBQR0aGlzCQECYXQCBQJheQUCYUEEAmNBCQEBdgIFAmFVCQEBWgEFAmF5BAJjYQgJAQJiUQQFAmF5BQJhQQUCY0EAAAJfMQQCY0IJALgCAgUCY2EFAmN6BAJjQwMJAL8CAgUCY0IFAWcJAPwHBAUEdGhpcwIPY2xhaW1XeElOVEVSTkFMCQDMCAIFAmF5CQDMCAIFAmFBBQNuaWwFA25pbAUEdW5pdAMJAAACBQJjQwUCY0MEAmRwCQCiCAEJAQJiZQIFAmJhBQJhQQQCZG4FAmRwAwkAAQIFAmRuAgRVbml0CQCUCgIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFYAQUCYXkFA25pbAcDCQABAgUCZG4CBlN0cmluZwQCZHEFAmRuCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFYAQUCYXkFAmRxBQNuaWwGCQACAQILTWF0Y2ggZXJyb3IJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAgtNYXRjaCBlcnJvcgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjaAEOb25Nb2RpZnlXZWlnaHQCAmFxAmJ0AwkBAiE9AggFAmNoBmNhbGxlcgUCYVUJAAIBAhJwZXJtaXNzaW9ucyBkZW5pZWQEAmRyCQECYnMDBQJhcQUCYnQAAAQCYnEIBQJkcgJfMQQCYlMIBQJkcgJfMgQCYlQIBQJkcgJfMwUCYlMBAmRzAQJkdAAEAmR1BAFrCQECY2QAAwkAAQIFAWsCCkJ5dGVWZWN0b3IEAmNqBQFrBQJjagMJAAECBQFrAgRVbml0CAUCZHMPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmRzCWJvZHlCeXRlcwkAkQMCCAUCZHMGcHJvb2ZzAAAFAmR1A+fPaQ==", "chainId": 84, "height": 2418951, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8KcTorLHmiqeazT8V1X7DNSSqMo7PrMWHbU6zgavxKQj Next: 8ywZkHJH22jUj9X8d67V77XCQJqNjQVXAT1wDGmWeA6k Diff:
OldNewDifferences
545545 else false)
546546 then bm(ba, ap)
547547 else nil
548- let cz = A(this, as(aq, ap))
548+ let cz = A(this, at(aq, ap))
549549 let cA = v(aU, Z(aq))
550550 let ca = bQ(aq, ap, cA, 0)._1
551551 let cB = (ca - cz)
581581 let cF = av(aq)
582582 let cG = at(aq, ap)
583583 let cH = au(aq, ap)
584- let cz = A(this, cE)
585- let cI = A(this, cG)
584+ let cI = A(this, cE)
585+ let cz = A(this, cG)
586586 let cJ = A(this, cH)
587587 let cK = A(this, cF)
588588 let cL = bQ(aq, ap, bt, 0)
589589 let ca = cL._1
590590 let cw = cL._2
591591 let bP = cL._3
592- let cB = max([(ca - cI), g])
592+ let cB = max([(ca - cz), g])
593593 if ((g >= cB))
594594 then throw("nothing to claim")
595595 else {
600600 let cQ = i(invoke(aV, "emit", [toInt(cO)], nil))
601601 if ((cQ == cQ))
602602 then {
603- let cR = ((cz + cN) + cO)
604- let cS = (cI + cN)
603+ let cR = ((cI + cN) + cO)
604+ let cS = (cz + cN)
605605 let cT = (cJ + cO)
606606 let cU = (cK + cB)
607607 [StringEntry(cE, toString(cR)), StringEntry(cG, toString(cS)), StringEntry(cH, toString(cT)), StringEntry(cF, toString(cU)), ScriptTransfer(aA, toInt(cN), cP), ScriptTransfer(aA, toInt(cO), cP), aR("claim", ap, aq, toInt(cB), ch.transactionId)]
657657 let cG = at(aq, ap)
658658 let bo = aw(bU)
659659 let bw = aw(bv)
660- let cz = A(this, cE)
661- let cI = A(this, cG)
660+ let cI = A(this, cE)
661+ let cz = A(this, cG)
662662 let bt = v(aU, Z(aq))
663663 let by = getIntegerValue(aU, aa(bt))
664664 let de = z(aV, aj())
672672 let ca = di._1
673673 let cw = di._2
674674 let bP = di._3
675- let cB = max([(ca - cI), g])
675+ let cB = max([(ca - cz), g])
676676 let dj = i(invoke(aW, "claimWxBoostREADONLY", [aq, ap], nil))
677677 let cM = max([m(dj[0]), 0])
678678 let dk = o(dj[1])
679679 let cN = cB
680680 let cO = min([(cN * toBigInt(2)), toBigInt(cM)])
681681 let dl = (cN + cO)
682- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", aq, ap, toString(dl), toString(cz), toString(cN), toString(cO), "soon"], e))
682+ $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", aq, ap, toString(dl), toString(cI), toString(cN), toString(cO), "soon"], e))
683683 }
684684
685685
710710 else if ($isInstanceOf(k, "String"))
711711 then {
712712 let aA = k
713- let cz = A(this, as(ay, aA))
713+ let cz = A(this, at(ay, aA))
714714 let cA = v(aU, Z(ay))
715715 let ca = bQ(ay, aA, cA, 0)._1
716716 let cB = (ca - cz)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = "__"
1313
1414 let f = b
1515
1616 let g = toBigInt(0)
1717
1818 let h = toBigInt(1)
1919
2020 func i (j) = {
2121 let k = j
2222 if ($isInstanceOf(k, "List[Any]"))
2323 then {
2424 let l = k
2525 l
2626 }
2727 else throw("fail to cast into List[Any]")
2828 }
2929
3030
3131 func m (j) = {
3232 let k = j
3333 if ($isInstanceOf(k, "Int"))
3434 then {
3535 let n = k
3636 n
3737 }
3838 else throw("fail to cast into Int")
3939 }
4040
4141
4242 func o (j) = {
4343 let k = j
4444 if ($isInstanceOf(k, "String"))
4545 then {
4646 let p = k
4747 p
4848 }
4949 else throw("fail to cast into Int")
5050 }
5151
5252
5353 func q (j) = {
5454 let k = j
5555 if ($isInstanceOf(k, "ByteVector"))
5656 then {
5757 let r = k
5858 r
5959 }
6060 else throw("fail to cast into Int")
6161 }
6262
6363
6464 func s (t,u) = valueOrErrorMessage(getString(t, u), (("mandatory this." + u) + " is not defined"))
6565
6666
6767 func v (t,u) = valueOrErrorMessage(getString(t, u), (((("mandatory " + toString(t)) + ".") + u) + " is not defined"))
6868
6969
7070 func w (t,u) = valueOrElse(getInteger(t, u), 0)
7171
7272
7373 func x (t,u,y) = valueOrElse(getInteger(t, u), y)
7474
7575
7676 func z (t,u) = valueOrErrorMessage(getInteger(t, u), (("mandatory this." + u) + " is not defined"))
7777
7878
7979 func A (t,u) = value(parseBigInt(valueOrElse(getString(t, u), "0")))
8080
8181
8282 func B (t,u,y) = {
8383 let k = getString(t, u)
8484 if ($isInstanceOf(k, "String"))
8585 then {
8686 let C = k
8787 value(parseBigInt(C))
8888 }
8989 else if ($isInstanceOf(k, "Unit"))
9090 then y
9191 else throw("Match error")
9292 }
9393
9494
9595 func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
9696
9797
9898 func G (j,H) = toInt(fraction(j, toBigInt(H), d))
9999
100100
101101 func I () = "%s%s__config__factoryAddress"
102102
103103
104104 func J () = "%s__votingEmissionContract"
105105
106106
107107 let K = 1
108108
109109 let L = 2
110110
111111 let M = 3
112112
113113 let N = 4
114114
115115 let O = 5
116116
117117 let P = 6
118118
119119 let Q = 7
120120
121121 func R () = "%s__factoryConfig"
122122
123123
124124 func S () = "%s__managerPublicKey"
125125
126126
127127 func T () = "%s__pendingManagerPublicKey"
128128
129129
130130 func U () = "%s__stablePoolAddonAddr"
131131
132132
133133 func V () = "%s__addonAddr"
134134
135135
136136 func W (X) = makeString(["%s%s%s", X, "mappings__lpAsset2PoolContract"], e)
137137
138138
139139 func Y () = "%s__lpTokensList"
140140
141141
142142 func Z (X) = makeString(["%s%s%s", X, "mappings__lpAsset2PoolContract"], e)
143143
144144
145145 func aa (ab) = makeString(["%s%s", "poolWeight", ab], e)
146146
147147
148148 func ac (ad) = split(valueOrElse(getString(ad, Y()), ""), e)
149149
150150
151151 func ae (ad) = split(v(ad, R()), e)
152152
153153
154154 func af (ag) = addressFromStringValue(ag[L])
155155
156156
157157 func ah (ag) = addressFromStringValue(ag[O])
158158
159159
160160 func ai (ag) = addressFromStringValue(ag[K])
161161
162162
163163 func aj () = "%s%s__ratePerBlock__current"
164164
165165
166166 func ak () = "%s%s__ratePerBlockMax__current"
167167
168168
169169 func al () = "%s%s__emission__startBlock"
170170
171171
172172 func am () = "%s%s__emission__duration"
173173
174174
175175 func an () = "%s%s__emission__endBlock"
176176
177177
178178 func ao (ap,aq) = makeString(["%s%s%s__staked", ap, aq], e)
179179
180180
181181 func ar (aq) = ("%s%s%s__staked__total__" + aq)
182182
183183
184184 func as (aq,ap) = makeString(["%s%s%s__claimed", ap, aq], e)
185185
186186
187187 func at (aq,ap) = makeString(["%s%s%s__claimedMinReward", ap, aq], e)
188188
189189
190190 func au (aq,ap) = makeString(["%s%s%s__claimedBoostReward", ap, aq], e)
191191
192192
193193 func av (aq) = makeString(["%s%s%s__claimed__total", aq], e)
194194
195195
196196 func aw (u) = valueOrElse(getInteger(this, u), 0)
197197
198198
199199 func ax (ay) = makeString(["%s%s%s", ay, "total", "bal"], e)
200200
201201
202202 func az (ay,aA) = makeString(["%s%s%s", ay, aA, "bal"], e)
203203
204204
205205 func aB (ay) = makeString(["%s%s%s", ay, "total", "balINT"], e)
206206
207207
208208 func aC (ay,aA) = makeString(["%s%s%s", ay, aA, "balINT"], e)
209209
210210
211211 func aD (ay) = makeString(["%s%s%s", ay, "total", "lastUpd"], e)
212212
213213
214214 func aE (ay,aA) = makeString(["%s%s%s", ay, aA, "lastUpd"], e)
215215
216216
217217 func aF (ay) = makeString(["%s%s%s%s", ay, "common", "lpInt"], e)
218218
219219
220220 func aG (ay) = makeString(["%s%s%s%s", ay, "common", "lpIntH"], e)
221221
222222
223223 func aH (ay,aA) = makeString(["%s%s%s%s", ay, aA, "lpInt"], e)
224224
225225
226226 func aI (ay,aA) = makeString(["%s%s%s%s", ay, aA, "lpIntH"], e)
227227
228228
229229 func aJ (ay) = makeString(["%s", ay, "wxPerLp"], e)
230230
231231
232232 func aK (ay) = makeString(["%s", ay, "wxPerLpX18"], e)
233233
234234
235235 func aL (ay,aA) = makeString(["%s%s%s%s", ay, aA, "uIntL"], e)
236236
237237
238238 func aM (aN,aA,aO) = makeString(["%s%s%s%s__history", aN, aA, aO], e)
239239
240240
241241 func aP (aA,ay,aN,aQ) = makeString(["%s%s%s%d%d%d", aA, ay, aN, toString(height), toString(lastBlock.timestamp), toString(aQ)], e)
242242
243243
244244 func aR (aN,aA,ay,aQ,aS) = StringEntry(aM(aN, aA, toBase58String(aS)), aP(aA, ay, aN, aQ))
245245
246246
247247 let aT = s(this, I())
248248
249249 let aU = addressFromStringValue(aT)
250250
251251 let ag = ae(aU)
252252
253253 let aV = ah(ag)
254254
255255 let aW = af(ag)
256256
257257 func aX (ay) = makeString(["%s%s", ay, "nextUser"], e)
258258
259259
260260 func aY (ay) = makeString(["users", ay], e)
261261
262262
263263 func aZ (ba) = makeString(["%s%s%s", ba, "head"], e)
264264
265265
266266 func bb (ba) = makeString(["%s%s%s", ba, "size"], e)
267267
268268
269269 func bc (ba,bd) = makeString(["%s%s%s%s", ba, bd, "prev"], e)
270270
271271
272272 func be (ba,bd) = makeString(["%s%s%s%s", ba, bd, "next"], e)
273273
274274
275275 func bf (ba,bd) = {
276276 let bg = getString(this, aZ(ba))
277277 let bh = getString(this, bc(ba, bd))
278278 let bi = getString(this, be(ba, bd))
279279 if (if ((bd == valueOrElse(bg, "")))
280280 then true
281281 else (bh != unit))
282282 then true
283283 else (bi != unit)
284284 }
285285
286286
287287 func bj (ba,bd) = {
288288 let bg = getString(this, aZ(ba))
289289 let bk = valueOrElse(getInteger(this, bb(ba)), 0)
290290 let bl = if (!(bf(ba, bd)))
291291 then true
292292 else throw("Node exists")
293293 if ((bl == bl))
294294 then (([IntegerEntry(bb(ba), (bk + 1))] ++ (if ((bg != unit))
295295 then [StringEntry(be(ba, bd), value(bg)), StringEntry(bc(ba, value(bg)), bd)]
296296 else nil)) ++ [StringEntry(aZ(ba), bd)])
297297 else throw("Strict value is not equal to itself.")
298298 }
299299
300300
301301 func bm (ba,bd) = {
302302 let bg = getString(this, aZ(ba))
303303 let bk = valueOrElse(getInteger(this, bb(ba)), 0)
304304 let bh = getString(this, bc(ba, bd))
305305 let bi = getString(this, be(ba, bd))
306306 ([IntegerEntry(bb(ba), (bk - 1))] ++ (if (if ((bh != unit))
307307 then (bi != unit)
308308 else false)
309309 then [StringEntry(be(ba, value(bh)), value(bi)), StringEntry(bc(ba, value(bi)), value(bh)), DeleteEntry(bc(ba, bd)), DeleteEntry(be(ba, bd))]
310310 else if ((bi != unit))
311311 then [StringEntry(aZ(ba), value(bi)), DeleteEntry(be(ba, bd)), DeleteEntry(bc(ba, value(bi)))]
312312 else if ((bh != unit))
313313 then [DeleteEntry(bc(ba, bd)), DeleteEntry(be(ba, value(bh)))]
314314 else if ((bd == valueOrElse(bg, "")))
315315 then [DeleteEntry(aZ(ba))]
316316 else throw(((("invalid node: " + ba) + ".") + bd))))
317317 }
318318
319319
320320 func bn (bo,bp,bq,br) = if (if ((bp == g))
321321 then (bo > g)
322322 else false)
323323 then g
324324 else if ((bo == g))
325325 then bq
326326 else if (if ((bp > g))
327327 then (bo > g)
328328 else false)
329329 then value(parseBigInt(s(this, br)))
330330 else throw("calcWxPerLpIntegralUserLast: unexpected state")
331331
332332
333333 func bs (aq,bt,bu) = {
334334 let bv = ar(aq)
335335 let bw = toBigInt(aw(bv))
336336 let bx = if ((bw == g))
337337 then h
338338 else bw
339339 let by = getIntegerValue(aU, aa(bt))
340340 let bz = z(aV, al())
341341 let bA = 1000
342342 let bB = (z(aV, aj()) * bA)
343343 let bC = fraction(bB, by, (f * 3))
344344 let bD = aF(aq)
345345 let bE = aG(aq)
346346 let bF = aJ(aq)
347347 let bG = x(this, bE, bz)
348348 let bH = A(this, bD)
349349 let bI = 0
350350 let bJ = max([(height - bG), 0])
351351 let bK = if ((bI != 0))
352352 then toBigInt(bI)
353353 else fraction(toBigInt(bC), toBigInt(b), bx)
354354 let bL = (bw + toBigInt(bu))
355355 let bM = if ((bL == g))
356356 then h
357357 else bL
358358 let bq = (bH + (bK * toBigInt(bJ)))
359359 let bN = (toBigInt(bC) / bM)
360360 let bO = height
361361 let bP = makeString([toString(bq), toString(bJ), toString(bK), toString(bw), toString(bC), toString(bB), toString(by)], "::")
362362 $Tuple3(bq, [StringEntry(bD, toString(bq)), IntegerEntry(bE, bO), StringEntry(bF, toString(bN))], bP)
363363 }
364364
365365
366366 func bQ (aq,ap,bt,bu) = {
367367 let bR = bs(aq, bt, bu)
368368 let bq = bR._1
369369 let bS = bR._2
370370 let bT = bR._3
371371 let bA = 1000
372372 let bU = ao(ap, aq)
373373 let bo = aw(bU)
374374 let bV = aH(aq, ap)
375375 let bW = aI(aq, ap)
376376 let br = aL(aq, ap)
377377 let bX = A(this, bV)
378378 let bp = w(this, bW)
379379 let bY = bn(toBigInt(bo), toBigInt(bp), bq, br)
380380 let bZ = (b * bA)
381381 let ca = max([(bX + fraction((bq - bY), toBigInt(bo), toBigInt(bZ))), g])
382382 let cb = bq
383383 let cc = height
384384 let bP = makeString([toString(bX), toString(bY), toString(bo), bT, toString(height)], "::")
385385 $Tuple3(ca, (bS ++ [StringEntry(bV, toString(ca)), IntegerEntry(bW, cc), StringEntry(br, toString(cb))]), bP)
386386 }
387387
388388
389389 func cd () = {
390390 let k = getString(S())
391391 if ($isInstanceOf(k, "String"))
392392 then {
393393 let C = k
394394 fromBase58String(C)
395395 }
396396 else if ($isInstanceOf(k, "Unit"))
397397 then unit
398398 else throw("Match error")
399399 }
400400
401401
402402 func ce () = {
403403 let k = getString(T())
404404 if ($isInstanceOf(k, "String"))
405405 then {
406406 let C = k
407407 fromBase58String(C)
408408 }
409409 else if ($isInstanceOf(k, "Unit"))
410410 then unit
411411 else throw("Match error")
412412 }
413413
414414
415415 let cf = throw("Permission denied")
416416
417417 func cg (ch) = if ((ch.caller == this))
418418 then true
419419 else cf
420420
421421
422422 func ci (ch) = {
423423 let k = cd()
424424 if ($isInstanceOf(k, "ByteVector"))
425425 then {
426426 let cj = k
427427 if ((ch.callerPublicKey == cj))
428428 then true
429429 else cf
430430 }
431431 else if ($isInstanceOf(k, "Unit"))
432432 then if ((ch.caller == this))
433433 then true
434434 else cf
435435 else throw("Match error")
436436 }
437437
438438
439439 @Callable(ch)
440440 func constructor (ck) = {
441441 let cl = ci(ch)
442442 if ((cl == cl))
443443 then [StringEntry(I(), ck)]
444444 else throw("Strict value is not equal to itself.")
445445 }
446446
447447
448448
449449 @Callable(ch)
450450 func constructorV2 (cm) = {
451451 let cn = [ci(ch), if ((addressFromString(cm) != unit))
452452 then true
453453 else "invalid voting emission contract address"]
454454 if ((cn == cn))
455455 then [StringEntry(J(), cm)]
456456 else throw("Strict value is not equal to itself.")
457457 }
458458
459459
460460
461461 @Callable(ch)
462462 func setManager (co) = {
463463 let cl = ci(ch)
464464 if ((cl == cl))
465465 then {
466466 let cp = fromBase58String(co)
467467 if ((cp == cp))
468468 then [StringEntry(T(), co)]
469469 else throw("Strict value is not equal to itself.")
470470 }
471471 else throw("Strict value is not equal to itself.")
472472 }
473473
474474
475475
476476 @Callable(ch)
477477 func confirmManager () = {
478478 let cq = ce()
479479 let cr = if (isDefined(cq))
480480 then true
481481 else throw("No pending manager")
482482 if ((cr == cr))
483483 then {
484484 let cs = if ((ch.callerPublicKey == value(cq)))
485485 then true
486486 else throw("You are not pending manager")
487487 if ((cs == cs))
488488 then [StringEntry(S(), toBase58String(value(cq))), DeleteEntry(T())]
489489 else throw("Strict value is not equal to itself.")
490490 }
491491 else throw("Strict value is not equal to itself.")
492492 }
493493
494494
495495
496496 @Callable(ch)
497497 func stake () = if ((size(ch.payments) != 1))
498498 then throw("invalid payment - exact one payment must be attached")
499499 else {
500500 let ct = ch.payments[0]
501501 let ay = value(ct.assetId)
502502 let aq = toBase58String(ay)
503503 let aQ = ct.amount
504504 let bt = valueOrErrorMessage(getString(aU, W(aq)), ("unsupported lp asset " + aq))
505505 let cu = toString(ch.caller)
506506 let ap = if ((cu == bt))
507507 then toString(ch.originCaller)
508508 else cu
509509 let bU = ao(ap, aq)
510510 let bv = ar(aq)
511511 let bo = aw(bU)
512512 let bw = aw(bv)
513513 let cv = bQ(aq, ap, bt, aQ)
514514 let ca = cv._1
515515 let cw = cv._2
516516 let bP = cv._3
517517 let ba = aY(aq)
518518 let cx = if (bf(ba, ap))
519519 then nil
520520 else bj(ba, ap)
521521 (([IntegerEntry(bU, (bo + aQ)), IntegerEntry(bv, (bw + aQ)), aR("stake", ap, aq, aQ, ch.transactionId)] ++ cw) ++ cx)
522522 }
523523
524524
525525
526526 @Callable(ch)
527527 func unstake (aq,aQ) = {
528528 let ay = fromBase58String(aq)
529529 let bt = valueOrErrorMessage(getString(aU, W(aq)), ("unsupported lp asset " + aq))
530530 let cy = valueOrElse(getString(addressFromStringValue(bt), V()), bt)
531531 let cu = toString(ch.caller)
532532 let ap = if (if ((cu == bt))
533533 then true
534534 else (cu == cy))
535535 then toString(ch.originCaller)
536536 else cu
537537 let bU = ao(ap, aq)
538538 let bv = ar(aq)
539539 let bo = aw(bU)
540540 let bw = aw(bv)
541541 let cw = bQ(aq, ap, bt, -(aQ))._2
542542 let ba = aY(aq)
543543 let cx = if (if (bf(ba, ap))
544544 then (aQ == bo)
545545 else false)
546546 then bm(ba, ap)
547547 else nil
548- let cz = A(this, as(aq, ap))
548+ let cz = A(this, at(aq, ap))
549549 let cA = v(aU, Z(aq))
550550 let ca = bQ(aq, ap, cA, 0)._1
551551 let cB = (ca - cz)
552552 let cC = if ((cB > g))
553553 then invoke(this, "claimWxINTERNAL", [aq, ap], nil)
554554 else unit
555555 if ((cC == cC))
556556 then if ((aQ > bo))
557557 then throw(((((((("passed amount=" + toString(aQ)) + " is greater than available=") + toString(bo)) + ". lpAssetId=") + aq) + ". stakedByUserKEY=") + bU))
558558 else (([IntegerEntry(bU, (bo - aQ)), IntegerEntry(bv, (bw - aQ)), ScriptTransfer(ch.caller, aQ, ay), aR("unstake", ap, aq, aQ, ch.transactionId)] ++ cw) ++ cx)
559559 else throw("Strict value is not equal to itself.")
560560 }
561561
562562
563563
564564 @Callable(ch)
565565 func claimWx (aq) = {
566566 let ap = toString(ch.caller)
567567 let cD = invoke(this, "claimWxINTERNAL", [aq, ap], nil)
568568 $Tuple2(nil, cD)
569569 }
570570
571571
572572
573573 @Callable(ch)
574574 func claimWxINTERNAL (aq,ap) = {
575575 let cl = cg(ch)
576576 if ((cl == cl))
577577 then {
578578 let aA = valueOrErrorMessage(addressFromString(ap), "claimWxINTERNAL: invalid user address")
579579 let bt = v(aU, Z(aq))
580580 let cE = as(aq, ap)
581581 let cF = av(aq)
582582 let cG = at(aq, ap)
583583 let cH = au(aq, ap)
584- let cz = A(this, cE)
585- let cI = A(this, cG)
584+ let cI = A(this, cE)
585+ let cz = A(this, cG)
586586 let cJ = A(this, cH)
587587 let cK = A(this, cF)
588588 let cL = bQ(aq, ap, bt, 0)
589589 let ca = cL._1
590590 let cw = cL._2
591591 let bP = cL._3
592- let cB = max([(ca - cI), g])
592+ let cB = max([(ca - cz), g])
593593 if ((g >= cB))
594594 then throw("nothing to claim")
595595 else {
596596 let cM = max([m(i(invoke(aW, "claimWxBoost", [aq, ap], nil))[0]), 0])
597597 let cN = cB
598598 let cO = min([(cN * toBigInt(2)), toBigInt(cM)])
599599 let cP = q(i(invoke(aV, "emit", [toInt(cN)], nil))[0])
600600 let cQ = i(invoke(aV, "emit", [toInt(cO)], nil))
601601 if ((cQ == cQ))
602602 then {
603- let cR = ((cz + cN) + cO)
604- let cS = (cI + cN)
603+ let cR = ((cI + cN) + cO)
604+ let cS = (cz + cN)
605605 let cT = (cJ + cO)
606606 let cU = (cK + cB)
607607 [StringEntry(cE, toString(cR)), StringEntry(cG, toString(cS)), StringEntry(cH, toString(cT)), StringEntry(cF, toString(cU)), ScriptTransfer(aA, toInt(cN), cP), ScriptTransfer(aA, toInt(cO), cP), aR("claim", ap, aq, toInt(cB), ch.transactionId)]
608608 }
609609 else throw("Strict value is not equal to itself.")
610610 }
611611 }
612612 else throw("Strict value is not equal to itself.")
613613 }
614614
615615
616616
617617 @Callable(ch)
618618 func claimWxBulkInternalREADONLY (cV,cW,ap,cX) = if ((cV == size(cW)))
619619 then $Tuple2(nil, cX)
620620 else {
621621 let ay = cW[cV]
622622 let cY = split({
623623 let cZ = invoke(this, "claimWxREADONLY", [ay, ap], nil)
624624 if ($isInstanceOf(cZ, "String"))
625625 then cZ
626626 else throw(($getType(cZ) + " couldn't be cast to String"))
627627 }, e)
628628 let da = cY[3]
629629 let db = cY[4]
630630 let dc = (cX :+ makeString(["%d%d", da, db], e))
631631 let dd = {
632632 let cZ = invoke(this, "claimWxBulkInternalREADONLY", [(cV + 1), cW, ap, dc], nil)
633633 if ($isInstanceOf(cZ, "List[Any]"))
634634 then cZ
635635 else throw(($getType(cZ) + " couldn't be cast to List[Any]"))
636636 }
637637 if ((dd == dd))
638638 then $Tuple2(nil, dd)
639639 else throw("Strict value is not equal to itself.")
640640 }
641641
642642
643643
644644 @Callable(ch)
645645 func claimWxBulkREADONLY (cW,ap) = {
646646 let dc = invoke(this, "claimWxBulkInternalREADONLY", [0, cW, ap, nil], nil)
647647 $Tuple2(nil, dc)
648648 }
649649
650650
651651
652652 @Callable(ch)
653653 func claimWxREADONLY (aq,ap) = {
654654 let bU = ao(ap, aq)
655655 let bv = ar(aq)
656656 let cE = as(aq, ap)
657657 let cG = at(aq, ap)
658658 let bo = aw(bU)
659659 let bw = aw(bv)
660- let cz = A(this, cE)
661- let cI = A(this, cG)
660+ let cI = A(this, cE)
661+ let cz = A(this, cG)
662662 let bt = v(aU, Z(aq))
663663 let by = getIntegerValue(aU, aa(bt))
664664 let de = z(aV, aj())
665665 let bz = z(aV, al())
666666 let df = if ((bz > height))
667667 then 0
668668 else (height - bz)
669669 let dg = fraction((de * df), by, f)
670670 let dh = fraction(dg, bo, bw)
671671 let di = bQ(aq, ap, bt, 0)
672672 let ca = di._1
673673 let cw = di._2
674674 let bP = di._3
675- let cB = max([(ca - cI), g])
675+ let cB = max([(ca - cz), g])
676676 let dj = i(invoke(aW, "claimWxBoostREADONLY", [aq, ap], nil))
677677 let cM = max([m(dj[0]), 0])
678678 let dk = o(dj[1])
679679 let cN = cB
680680 let cO = min([(cN * toBigInt(2)), toBigInt(cM)])
681681 let dl = (cN + cO)
682- $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", aq, ap, toString(dl), toString(cz), toString(cN), toString(cO), "soon"], e))
682+ $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", aq, ap, toString(dl), toString(cI), toString(cN), toString(cO), "soon"], e))
683683 }
684684
685685
686686
687687 @Callable(ch)
688688 func usersListTraversal (ay) = {
689689 let cl = if ((toBase58String(ch.caller.bytes) == valueOrElse(getString(this, J()), "")))
690690 then true
691691 else ci(ch)
692692 if ((cl == cl))
693693 then {
694694 let ba = aY(ay)
695695 let dm = getString(aX(ay))
696696 let bg = getString(aZ(ba))
697697 let k = dm
698698 if ($isInstanceOf(k, "Unit"))
699699 then {
700700 let dn = bg
701701 if ($isInstanceOf(dn, "Unit"))
702702 then $Tuple2(nil, false)
703703 else if ($isInstanceOf(dn, "String"))
704704 then {
705705 let do = dn
706706 $Tuple2([StringEntry(aX(ay), do)], true)
707707 }
708708 else throw("Match error")
709709 }
710710 else if ($isInstanceOf(k, "String"))
711711 then {
712712 let aA = k
713- let cz = A(this, as(ay, aA))
713+ let cz = A(this, at(ay, aA))
714714 let cA = v(aU, Z(ay))
715715 let ca = bQ(ay, aA, cA, 0)._1
716716 let cB = (ca - cz)
717717 let cC = if ((cB > g))
718718 then invoke(this, "claimWxINTERNAL", [ay, aA], nil)
719719 else unit
720720 if ((cC == cC))
721721 then {
722722 let dp = getString(be(ba, aA))
723723 let dn = dp
724724 if ($isInstanceOf(dn, "Unit"))
725725 then $Tuple2([DeleteEntry(aX(ay))], false)
726726 else if ($isInstanceOf(dn, "String"))
727727 then {
728728 let dq = dn
729729 $Tuple2([StringEntry(aX(ay), dq)], true)
730730 }
731731 else throw("Match error")
732732 }
733733 else throw("Strict value is not equal to itself.")
734734 }
735735 else throw("Match error")
736736 }
737737 else throw("Strict value is not equal to itself.")
738738 }
739739
740740
741741
742742 @Callable(ch)
743743 func onModifyWeight (aq,bt) = if ((ch.caller != aU))
744744 then throw("permissions denied")
745745 else {
746746 let dr = bs(aq, bt, 0)
747747 let bq = dr._1
748748 let bS = dr._2
749749 let bT = dr._3
750750 bS
751751 }
752752
753753
754754 @Verifier(ds)
755755 func dt () = {
756756 let du = {
757757 let k = cd()
758758 if ($isInstanceOf(k, "ByteVector"))
759759 then {
760760 let cj = k
761761 cj
762762 }
763763 else if ($isInstanceOf(k, "Unit"))
764764 then ds.senderPublicKey
765765 else throw("Match error")
766766 }
767767 sigVerify(ds.bodyBytes, ds.proofs[0], du)
768768 }
769769

github/deemru/w8io/873ac7e 
96.18 ms