tx · Au35qn3LW4ZRrqtPmTYt4Kxug4GDGtSvURfGQtthm8bZ

3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy:  -0.02200000 Waves

2022.10.20 11:14 [2280469] smart account 3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy > SELF 0.00000000 Waves

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

github/deemru/w8io/169f3d6 
80.89 ms