tx · 7rAHTwAPXdSpS2PdZ2sEpTsW15RdJ4e9YnVeFkvVboF6

3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE:  -0.02200000 Waves

2022.09.14 17:41 [2228905] smart account 3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE > SELF 0.00000000 Waves

{ "type": 13, "id": "7rAHTwAPXdSpS2PdZ2sEpTsW15RdJ4e9YnVeFkvVboF6", "fee": 2200000, "feeAssetId": null, "timestamp": 1663166506672, "version": 2, "chainId": 84, "sender": "3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE", "senderPublicKey": "G349Uq3FTox7dRNLeAfAQeoACvwZ9iEnVSaHcEYn6j8J", "proofs": [ "5Jy8kuDtfgogYgpjjg5CAvasTW4ieTb4VcmaGk2i6GGRKeWbz4J84qbp5hfC1iWg34cWNbyBSsXWzawXp89U1DSz" ], "script": "base64:BgJhCAISBAoCCAESABIDCgEBEgASABIAEgMKAQgSAwoBCBIDCgEIEgUKAwEBARIFCgMBAQESABIDCgEIEgcKBQgICAgIEgoKCAgICAgICAgIEgoKCAgICAgICAgIEgMKAQgSAE8AA1NFUAICX18ABVNDQUxFAOgHAAVNVUxUOACAwtcvAAp6ZXJvQmlnSW50CQC2AgEAAAAUcHJvY2Vzc2luZ1N0YWdlVG90YWwAAAAVcHJvY2Vzc2luZ1N0YWdlU2hhcmVzAAEBDmdldE51bWJlckJ5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUDa2V5AAABD2dldE51bWJlck9yRmFpbAEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUDa2V5CQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQNrZXkCDyBpcyBub3QgZGVmaW5lZAEOZ2V0U3RyaW5nQnlLZXkBA2tleQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQNrZXkCAAEPZ2V0U3RyaW5nT3JGYWlsAQNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQNrZXkJAKwCAgkArAICAg9tYW5kYXRvcnkgdGhpcy4FA2tleQIPIGlzIG5vdCBkZWZpbmVkAQNhYnMBA3ZhbAMJAGYCAAAFA3ZhbAkBAS0BBQN2YWwFA3ZhbAEJYWJzQmlnSW50AQN2YWwDCQC/AgIFCnplcm9CaWdJbnQFA3ZhbAkAvgIBBQN2YWwFA3ZhbAALa2V5TWF4RGVwdGgCDCVzX19tYXhEZXB0aAAPbWF4RGVwdGhEZWZhdWx0AB4ACG1heERlcHRoCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC2tleU1heERlcHRoBQ9tYXhEZXB0aERlZmF1bHQBEWtleUZhY3RvcnlBZGRyZXNzAAIcJXMlc19fY29uZmlnX19mYWN0b3J5QWRkcmVzcwARZmFjdG9yeUFkZHJlc3NTdHIJAQ9nZXRTdHJpbmdPckZhaWwBCQERa2V5RmFjdG9yeUFkZHJlc3MAAA9mYWN0b3J5Q29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEFEWZhY3RvcnlBZGRyZXNzU3RyARJrZXlFbWlzc2lvbkFkZHJlc3MAAh0lcyVzX19jb25maWdfX2VtaXNzaW9uQWRkcmVzcwETa2V5TnVtVG9Vc2VyTWFwcGluZwEDbnVtCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICB21hcHBpbmcJAMwIAgIIbnVtMnVzZXIJAMwIAgkApAMBBQNudW0FA25pbAUDU0VQABZrZXlSZWZlcnJhbFByb2dyYW1OYW1lCQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAgtwcm9ncmFtTmFtZQUDbmlsBQNTRVAAGnJlZmVycmFsUHJvZ3JhbU5hbWVEZWZhdWx0AgZ3eGxvY2sAE3JlZmVycmFsUHJvZ3JhbU5hbWUJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUWa2V5UmVmZXJyYWxQcm9ncmFtTmFtZQUacmVmZXJyYWxQcm9ncmFtTmFtZURlZmF1bHQAF2tleVJlZmVycmFsTWluR1d4QW1vdW50CQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAgxtaW5HV3hBbW91bnQFA25pbAUDU0VQABtyZWZlcnJhbE1pbkdXeEFtb3VudERlZmF1bHQJAGgCAPQDBQVNVUxUOAAUcmVmZXJyYWxNaW5HV3hBbW91bnQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUXa2V5UmVmZXJyYWxNaW5HV3hBbW91bnQFG3JlZmVycmFsTWluR1d4QW1vdW50RGVmYXVsdAAZa2V5UmVmZXJyZXJSZXdhcmRQZXJtaWxsZQkAuQkCCQDMCAICBCVzJXMJAMwIAgIIcmVmZXJyYWwJAMwIAgIWcmVmZXJyZXJSZXdhcmRQZXJtaWxsZQUDbmlsBQNTRVAAHXJlZmVycmVyUmV3YXJkUGVybWlsbGVEZWZhdWx0ADIAFnJlZmVycmVyUmV3YXJkUGVybWlsbGUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUZa2V5UmVmZXJyZXJSZXdhcmRQZXJtaWxsZQUdcmVmZXJyZXJSZXdhcmRQZXJtaWxsZURlZmF1bHQAGWtleVJlZmVycmFsUmV3YXJkUGVybWlsbGUJALkJAgkAzAgCAgQlcyVzCQDMCAICCHJlZmVycmFsCQDMCAICFnJlZmVycmFsUmV3YXJkUGVybWlsbGUFA25pbAUDU0VQAB1yZWZlcnJhbFJld2FyZFBlcm1pbGxlRGVmYXVsdAAyABZyZWZlcnJhbFJld2FyZFBlcm1pbGxlCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFGWtleVJlZmVycmFsUmV3YXJkUGVybWlsbGUFHXJlZmVycmFsUmV3YXJkUGVybWlsbGVEZWZhdWx0AQtrZXlSZWZlcnJlcgEPcmVmZXJyYWxBZGRyZXNzCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCHJlZmVycmVyCQDMCAIFE3JlZmVycmFsUHJvZ3JhbU5hbWUJAMwIAgUPcmVmZXJyYWxBZGRyZXNzBQNuaWwFA1NFUAEUa2V5VW5jbGFpbWVkUmVmZXJyYWwCC3Byb2dyYW1OYW1lDmNsYWltZXJBZGRyZXNzCQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgIRdW5jbGFpbWVkUmVmZXJyYWwJAMwIAgULcHJvZ3JhbU5hbWUJAMwIAgUOY2xhaW1lckFkZHJlc3MFA25pbAUDU0VQABJlbWlzc2lvbkFkZHJlc3NTdHIJAQ9nZXRTdHJpbmdPckZhaWwBCQESa2V5RW1pc3Npb25BZGRyZXNzAAAQZW1pc3Npb25Db250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQUSZW1pc3Npb25BZGRyZXNzU3RyAA1JZHhDZmdBc3NldElkAAEAFklkeENmZ1BhY2VtYWtlckFkZHJlc3MAAgAWSWR4Q2ZnQm9vc3RpbmdDb250cmFjdAADAA5JZHhDZmdNYXhEZXB0aAAEAQlrZXlDb25maWcAAgolc19fY29uZmlnARVyZWFkQ29uZmlnQXJyYXlPckZhaWwACQC1CQIJAQ9nZXRTdHJpbmdPckZhaWwBCQEJa2V5Q29uZmlnAAUDU0VQAQxmb3JtYXRDb25maWcEDHd4QXNzZXRJZFN0chptYXRjaGVyUGFjZW1ha2VyQWRkcmVzc1N0chpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0cghtYXhEZXB0aAkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAIFDHd4QXNzZXRJZFN0cgkAzAgCBRptYXRjaGVyUGFjZW1ha2VyQWRkcmVzc1N0cgkAzAgCBRpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0cgkAzAgCCQCkAwEFCG1heERlcHRoBQNuaWwFA1NFUAEWYm9vc3RpbmdDb250cmFjdE9yRmFpbAAECGNmZ0FycmF5CQEVcmVhZENvbmZpZ0FycmF5T3JGYWlsAAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUIY2ZnQXJyYXkFFklkeENmZ0Jvb3N0aW5nQ29udHJhY3QCKGJvb3N0aW5nIGNvbnRyYWN0IGFkZHJlc3MgaXMgbm90IGRlZmluZWQBH2tleUd3eFJld2FyZEVtaXNzaW9uU3RhcnRIZWlnaHQAAiglcyVzX19nd3hSZXdhcmRFbWlzc2lvblBhcnRfX3N0YXJ0SGVpZ2h0AQ1rZXlVc2Vyc0NvdW50AAIPJXNfX25leHRVc2VyTnVtARZrZXlSYXRlUGVyQmxvY2tDdXJyZW50AAIbJXMlc19fcmF0ZVBlckJsb2NrX19jdXJyZW50ARRrZXlQb29sV2VpZ2h0VmlydHVhbAACICVzJXNfX3Bvb2xXZWlnaHRfX0dXWHZpcnR1YWxQT09MARRrZXlOZXh0UHJvY2Vzc2VkVXNlcgACFSVzX19uZXh0UHJvY2Vzc2VkVXNlcgEPa2V5TGF0ZXN0UGVyaW9kAAIQJXNfX2xhdGVzdFBlcmlvZAENa2V5TmV4dFBlcmlvZAACDiVzX19uZXh0UGVyaW9kARJrZXlQcm9jZXNzaW5nU3RhZ2UAAhMlc19fcHJvY2Vzc2luZ1N0YWdlARZrZXlOZXh0UHJvY2Vzc2VkUGVyaW9kAAIXJXNfX25leHRQcm9jZXNzZWRQZXJpb2QBEGtleVVzZXJVbmNsYWltZWQBCXVzZXJJbmRleAkAuQkCCQDMCAICBCVzJWQJAMwIAgINdXNlclVuY2xhaW1lZAkAzAgCCQCkAwEFCXVzZXJJbmRleAUDbmlsBQNTRVABG2tleU5leHRVbmxhaW1lZFBlcmlvZE9mVXNlcgEJdXNlckluZGV4CQC5CQIJAMwIAgIXJXMlZF9fbmV4dENsYWltZWRQZXJpb2QJAMwIAgkApAMBBQl1c2VySW5kZXgFA25pbAUDU0VQARxrZXlMYXN0UHJvY2Vzc2VkUGVyaW9kT2ZVc2VyAQl1c2VySW5kZXgJALkJAgkAzAgCAhklcyVkX19sYXN0UHJvY2Vzc2VkUGVyaW9kCQDMCAIJAKQDAQUJdXNlckluZGV4BQNuaWwFA1NFUAESa2V5SGVpZ2h0Rm9yUGVyaW9kAQZwZXJpb2QJALkJAgkAzAgCAholcyVkX19zdGFydEhlaWdodEZvclBlcmlvZAkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABHWtleUF1eEVtaXNzaW9uUmV3YXJkRm9yUGVyaW9kAQZwZXJpb2QJALkJAgkAzAgCAhclcyVkX19hdXhFbWlzc2lvblJld2FyZAkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABF2tleVRvdGFsQW1vdW50Rm9yUGVyaW9kAQZwZXJpb2QJALkJAgkAzAgCAholcyVkX190b3RhbEFtb3VudEZvclBlcmlvZAkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABEWtleUxhc3RQYXlvdXRJbmZvAAISJXNfX2xhc3RQYXlvdXRJbmZvARBQZXJpb2RQYXlvdXRJbmZvAwZwZXJpb2QNbWF0Y2hlclJld2FyZA5lbWlzc2lvblJld2FyZAkAuQkCCQDMCAICBiVkJWQlZAkAzAgCCQCkAwEFBnBlcmlvZAkAzAgCCQCkAwEFDW1hdGNoZXJSZXdhcmQJAMwIAgkApAMBBQ5lbWlzc2lvblJld2FyZAUDbmlsBQNTRVABFGtleVBheW91dEhpc3RvcnlJbmZvAQZwZXJpb2QJALkJAgkAzAgCAhglcyVzJWRfX3BheW91dHNfX2hpc3RvcnkJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARdrZXlUb3RhbFdlaWdodEZvclBlcmlvZAEGcGVyaW9kCQC5CQIJAMwIAgIaJXMlZF9fdG90YWxXZWlnaHRGb3JQZXJpb2QJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARZrZXlVc2VyS1ZhbHVlRm9yUGVyaW9kAgZwZXJpb2QJdXNlckluZGV4CQC5CQIJAMwIAgIXJXMlZCVzJWRfX3BhcmFtQnlQZXJpb2QJAMwIAgkApAMBBQl1c2VySW5kZXgJAMwIAgIBawkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABFmtleVVzZXJCVmFsdWVGb3JQZXJpb2QCBnBlcmlvZAl1c2VySW5kZXgJALkJAgkAzAgCAhclcyVkJXMlZF9fcGFyYW1CeVBlcmlvZAkAzAgCCQCkAwEFCXVzZXJJbmRleAkAzAgCAgFiCQDMCAIJAKQDAQUGcGVyaW9kBQNuaWwFA1NFUAEWa2V5VXNlcldlaWdodEZvclBlcmlvZAIGcGVyaW9kCXVzZXJJbmRleAkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIJAKQDAQUJdXNlckluZGV4CQDMCAICBndlaWdodAkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABG2tleVJlZmVycmFsc0NvbnRyYWN0QWRkcmVzcwAJALkJAgkAzAgCAgQlcyVzCQDMCAICBmNvbmZpZwkAzAgCAhhyZWZlcnJhbHNDb250cmFjdEFkZHJlc3MFA25pbAUDU0VQAB5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQ9nZXRTdHJpbmdPckZhaWwBCQEba2V5UmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzAAEMSGlzdG9yeUVudHJ5BAR0eXBlBHVzZXIGYW1vdW50AWkECmhpc3RvcnlLRVkJALkJAgkAzAgCAhElcyVzJXMlc19faGlzdG9yeQkAzAgCBQR0eXBlCQDMCAIFBHVzZXIJAMwIAgkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBQNuaWwFA1NFUAQLaGlzdG9yeURBVEEJALkJAgkAzAgCAgwlZCVkJWQlZCVkJWQJAMwIAgkApAMBCAUJbGFzdEJsb2NrBmhlaWdodAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAKQDAQUGYW1vdW50BQNuaWwFA1NFUAkBC1N0cmluZ0VudHJ5AgUKaGlzdG9yeUtFWQULaGlzdG9yeURBVEEBE2tleU1hbmFnZXJQdWJsaWNLZXkAAhQlc19fbWFuYWdlclB1YmxpY0tleQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQABAckbWF0Y2gwCQCiCAEJARNrZXlNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAQHJG1hdGNoMAkAoggBCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkA2QQBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgELbXVzdE1hbmFnZXIBAWkEAnBkCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAMJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkFAnBrBgUCcGQDCQABAgUHJG1hdGNoMAIEVW5pdAMJAAACCAUBaQZjYWxsZXIFBHRoaXMGBQJwZAkAAgECC01hdGNoIGVycm9yAQ5jYWxjVXNlcldlaWdodAQXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MPaGVpZ2h0Rm9yUGVyaW9kBnBlcmlvZAl1c2VySW5kZXgEBWtMYXN0CQEca2V5TGFzdFByb2Nlc3NlZFBlcmlvZE9mVXNlcgEFCXVzZXJJbmRleAQEa0tleQkBFmtleVVzZXJLVmFsdWVGb3JQZXJpb2QCBQZwZXJpb2QFCXVzZXJJbmRleAQEa1JhdwkAmggCBRdib29zdGluZ0NvbnRyYWN0QWRkcmVzcwUEa0tleQQLa1VzZXJXZWlnaHQJARZrZXlVc2VyV2VpZ2h0Rm9yUGVyaW9kAgUGcGVyaW9kBQl1c2VySW5kZXgDCQEJaXNEZWZpbmVkAQUEa1JhdwQBawkBBXZhbHVlAQUEa1JhdwQBYgkBBXZhbHVlAQkAmggCBRdib29zdGluZ0NvbnRyYWN0QWRkcmVzcwkBFmtleVVzZXJCVmFsdWVGb3JQZXJpb2QCBQZwZXJpb2QFCXVzZXJJbmRleAQBdwkAZAIJAGgCBQFrBQ9oZWlnaHRGb3JQZXJpb2QFAWIDCQBmAgUBdwAACQCUCgIJAGkCBQF3BQVTQ0FMRQkAzAgCCQEMSW50ZWdlckVudHJ5AgUFa0xhc3QFBnBlcmlvZAkAzAgCCQEMSW50ZWdlckVudHJ5AgULa1VzZXJXZWlnaHQFAXcFA25pbAkAlAoCAAAFA25pbAQBcAkAmggCBQR0aGlzBQVrTGFzdAMDCQEJaXNEZWZpbmVkAQUBcAkAZwIFBnBlcmlvZAkBBXZhbHVlAQUBcAcEAnB2CQEFdmFsdWUBBQFwBAFrCQEFdmFsdWUBCQCaCAIFF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzCQEWa2V5VXNlcktWYWx1ZUZvclBlcmlvZAIFAnB2BQl1c2VySW5kZXgEAWIJAQV2YWx1ZQEJAJoIAgUXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MJARZrZXlVc2VyQlZhbHVlRm9yUGVyaW9kAgUCcHYFCXVzZXJJbmRleAQBdwkAZAIJAGgCBQFrBQ9oZWlnaHRGb3JQZXJpb2QFAWIDCQBmAgUBdwAACQCUCgIJAGkCBQF3BQVTQ0FMRQkAzAgCCQEMSW50ZWdlckVudHJ5AgULa1VzZXJXZWlnaHQFAXcFA25pbAkAlAoCAAAFA25pbAkAlAoCAAAFA25pbAEWY2FsY1VzZXJXZWlnaHRGb3JDbGFpbQQXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MPaGVpZ2h0Rm9yUGVyaW9kBnBlcmlvZAl1c2VySW5kZXgEC2tVc2VyV2VpZ2h0CQEWa2V5VXNlcldlaWdodEZvclBlcmlvZAIFBnBlcmlvZAUJdXNlckluZGV4BBB1c2VyV2VpZ2h0T3JVbml0CQCfCAEFC2tVc2VyV2VpZ2h0BAckbWF0Y2gwBRB1c2VyV2VpZ2h0T3JVbml0AwkAAQIFByRtYXRjaDACBFVuaXQAAAMJAAECBQckbWF0Y2gwAgNJbnQEAXcFByRtYXRjaDAJAGkCBQF3BQVTQ0FMRQkAAgECC01hdGNoIGVycm9yARVnZXRVc2VySW5kZXhCeUFkZHJlc3MCGmJvb3N0aW5nQ29udHJhY3RBZGRyZXNzU3RyC3VzZXJBZGRyZXNzBANrZXkJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIHbWFwcGluZwkAzAgCAgh1c2VyMm51bQkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVAJAQ1wYXJzZUludFZhbHVlAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQdBZGRyZXNzAQkA2QQBBRpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0cgUDa2V5CQCsAgIJAKwCAgkArAICAg1Vc2VyIGFkZHJlc3MgBQt1c2VyQWRkcmVzcwItIGlzIG5vdCBmb3VuZCBpbiBib29zdGluZyBjb250cmFjdCBkYXRhLCBrZXk9BQNrZXkBCm5leHRQZXJpb2QACQEOZ2V0TnVtYmVyQnlLZXkBCQENa2V5TmV4dFBlcmlvZAABEWNvbW1vbkNsYWltUmV3YXJkAQt1c2VyQWRkcmVzcwQIY2ZnQXJyYXkJARVyZWFkQ29uZmlnQXJyYXlPckZhaWwABAd1c2VySWR4CQEVZ2V0VXNlckluZGV4QnlBZGRyZXNzAgkAkQMCBQhjZmdBcnJheQUWSWR4Q2ZnQm9vc3RpbmdDb250cmFjdAULdXNlckFkZHJlc3MEE3VzZXJVbmNsYWltZWRPcHRpb24JAJ8IAQkBEGtleVVzZXJVbmNsYWltZWQBBQd1c2VySWR4BAckbWF0Y2gwBRN1c2VyVW5jbGFpbWVkT3B0aW9uAwkAAQIFByRtYXRjaDACBFVuaXQJAJQKAgAABQNuaWwDCQABAgUHJG1hdGNoMAIDSW50BAF1BQckbWF0Y2gwCQCUCgIFAXUJAMwIAgkBDEludGVnZXJFbnRyeQIJARBrZXlVc2VyVW5jbGFpbWVkAQUHdXNlcklkeAAABQNuaWwJAAIBAgtNYXRjaCBlcnJvchIBaQEWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQILdXNlckFkZHJlc3MOZ1d4QW1vdW50U3RhcnQECHJlZmVycmVyCQCdCAIFHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbAkBC2tleVJlZmVycmVyAQULdXNlckFkZHJlc3MEEWFjdGl2ZVJlZmVycmFsSW52AwkAAAIFCHJlZmVycmVyBQR1bml0BQR1bml0CQD8BwQFHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbAIWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQkAzAgCBRNyZWZlcnJhbFByb2dyYW1OYW1lCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIJAGcCBQ5nV3hBbW91bnRTdGFydAUUcmVmZXJyYWxNaW5HV3hBbW91bnQFA25pbAUDbmlsAwkAAAIFEWFjdGl2ZVJlZmVycmFsSW52BRFhY3RpdmVSZWZlcnJhbEludgkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEOZmluYWxpemVIZWxwZXIABA9wcm9jZXNzaW5nU3RhZ2UJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBEmtleVByb2Nlc3NpbmdTdGFnZQAFFHByb2Nlc3NpbmdTdGFnZVRvdGFsBA1jdXJyZW50UGVyaW9kCQEOZ2V0TnVtYmVyQnlLZXkBCQEWa2V5TmV4dFByb2Nlc3NlZFBlcmlvZAAEC2N1cnJlbnRVc2VyCQEOZ2V0TnVtYmVyQnlLZXkBCQEUa2V5TmV4dFByb2Nlc3NlZFVzZXIABAxsYXRlc3RQZXJpb2QJAQ5nZXROdW1iZXJCeUtleQEJAQ9rZXlMYXRlc3RQZXJpb2QABAp1c2Vyc0NvdW50CQELdmFsdWVPckVsc2UCCQCaCAIJARZib29zdGluZ0NvbnRyYWN0T3JGYWlsAAkBDWtleVVzZXJzQ291bnQAAAAEDnRvdGFsV2VpZ2h0S2V5CQEXa2V5VG90YWxXZWlnaHRGb3JQZXJpb2QBBQ1jdXJyZW50UGVyaW9kBAt0b3RhbFdlaWdodAkBDmdldE51bWJlckJ5S2V5AQkBF2tleVRvdGFsV2VpZ2h0Rm9yUGVyaW9kAQUNY3VycmVudFBlcmlvZAQPaGVpZ2h0Rm9yUGVyaW9kCQEOZ2V0TnVtYmVyQnlLZXkBCQESa2V5SGVpZ2h0Rm9yUGVyaW9kAQUNY3VycmVudFBlcmlvZAMJAGYCBQ1jdXJyZW50UGVyaW9kBQxsYXRlc3RQZXJpb2QJAJQKAgUDbmlsBwMJAAACBQ9wcm9jZXNzaW5nU3RhZ2UFFHByb2Nlc3NpbmdTdGFnZVRvdGFsBA0kdDAxMjA4NDEyMjAwCQEOY2FsY1VzZXJXZWlnaHQECQEWYm9vc3RpbmdDb250cmFjdE9yRmFpbAAFD2hlaWdodEZvclBlcmlvZAUNY3VycmVudFBlcmlvZAULY3VycmVudFVzZXIECnVzZXJXZWlnaHQIBQ0kdDAxMjA4NDEyMjAwAl8xBAt1c2VyQWN0aW9ucwgFDSR0MDEyMDg0MTIyMDACXzIEDnRvdGFsV2VpZ2h0TmV3CQBkAgULdG90YWxXZWlnaHQFCnVzZXJXZWlnaHQEEXByb2Nlc3NpbmdBY3Rpb25zAwkAZgIJAGUCBQp1c2Vyc0NvdW50AAEFC2N1cnJlbnRVc2VyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5TmV4dFByb2Nlc3NlZFVzZXIACQBkAgULY3VycmVudFVzZXIAAQUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESa2V5UHJvY2Vzc2luZ1N0YWdlAAUVcHJvY2Vzc2luZ1N0YWdlU2hhcmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5TmV4dFByb2Nlc3NlZFVzZXIAAAAFA25pbAkAlAoCCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUOdG90YWxXZWlnaHRLZXkFDnRvdGFsV2VpZ2h0TmV3BQNuaWwFEXByb2Nlc3NpbmdBY3Rpb25zBQt1c2VyQWN0aW9ucwYDCQAAAgUPcHJvY2Vzc2luZ1N0YWdlBRVwcm9jZXNzaW5nU3RhZ2VTaGFyZXMECnVzZXJXZWlnaHQJARZjYWxjVXNlcldlaWdodEZvckNsYWltBAkBFmJvb3N0aW5nQ29udHJhY3RPckZhaWwABQ9oZWlnaHRGb3JQZXJpb2QFDWN1cnJlbnRQZXJpb2QFC2N1cnJlbnRVc2VyBBp1c2VyQW1vdW50TWF0Y2hlckZvclBlcmlvZAkAawMJAQ5nZXROdW1iZXJCeUtleQEJARdrZXlUb3RhbEFtb3VudEZvclBlcmlvZAEFDWN1cnJlbnRQZXJpb2QFCnVzZXJXZWlnaHQFC3RvdGFsV2VpZ2h0BBt1c2VyQW1vdW50RW1pc3Npb25Gb3JQZXJpb2QJAGsDCQEOZ2V0TnVtYmVyQnlLZXkBCQEda2V5QXV4RW1pc3Npb25SZXdhcmRGb3JQZXJpb2QBBQ1jdXJyZW50UGVyaW9kBQp1c2VyV2VpZ2h0BQt0b3RhbFdlaWdodAQPdXNlclRvdGFsQW1vdW50CQBkAgUbdXNlckFtb3VudEVtaXNzaW9uRm9yUGVyaW9kBRp1c2VyQW1vdW50TWF0Y2hlckZvclBlcmlvZAQTdXNlclVuY2xhaW1lZE9wdGlvbgkAnwgBCQEQa2V5VXNlclVuY2xhaW1lZAEFC2N1cnJlbnRVc2VyBAt1c2VyQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNTMpAgkBFmJvb3N0aW5nQ29udHJhY3RPckZhaWwACQETa2V5TnVtVG9Vc2VyTWFwcGluZwEFC2N1cnJlbnRVc2VyBAhyZWZlcnJlcgkAnQgCBR5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwJAQtrZXlSZWZlcnJlcgEFC3VzZXJBZGRyZXNzBBFhY3RpdmVSZWZlcnJhbEludgMJAAACBQhyZWZlcnJlcgUEdW5pdAUEdW5pdAkA/AcEBR5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwCFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkJAMwIAgUTcmVmZXJyYWxQcm9ncmFtTmFtZQkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCCQBnAgUKdXNlcldlaWdodAUUcmVmZXJyYWxNaW5HV3hBbW91bnQFA25pbAUDbmlsAwkAAAIFEWFjdGl2ZVJlZmVycmFsSW52BRFhY3RpdmVSZWZlcnJhbEludgQLcmVmZXJyYWxJbnYDAwkAAAIFCHJlZmVycmVyBQR1bml0BgkAZgIFFHJlZmVycmFsTWluR1d4QW1vdW50BQp1c2VyV2VpZ2h0BQR1bml0BA5yZWZlcnJlclJld2FyZAkAawMFD3VzZXJUb3RhbEFtb3VudAUWcmVmZXJyZXJSZXdhcmRQZXJtaWxsZQUFU0NBTEUEDnJlZmVycmFsUmV3YXJkCQBrAwUPdXNlclRvdGFsQW1vdW50BRZyZWZlcnJhbFJld2FyZFBlcm1pbGxlBQVTQ0FMRQkA/AcEBR5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwCDGluY1VuY2xhaW1lZAkAzAgCBRNyZWZlcnJhbFByb2dyYW1OYW1lCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIFDnJlZmVycmVyUmV3YXJkCQDMCAIFDnJlZmVycmFsUmV3YXJkBQNuaWwFA25pbAMJAAACBQtyZWZlcnJhbEludgULcmVmZXJyYWxJbnYEEHVuY2xhaW1lZEFjdGlvbnMJAMwIAgkBDEludGVnZXJFbnRyeQIJARBrZXlVc2VyVW5jbGFpbWVkAQULY3VycmVudFVzZXIJAGQCCQELdmFsdWVPckVsc2UCBRN1c2VyVW5jbGFpbWVkT3B0aW9uAAAFD3VzZXJUb3RhbEFtb3VudAUDbmlsBBFwcm9jZXNzaW5nQWN0aW9ucwMJAGYCCQBlAgUKdXNlcnNDb3VudAABBQtjdXJyZW50VXNlcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleU5leHRQcm9jZXNzZWRVc2VyAAkAZAIFC2N1cnJlbnRVc2VyAAEFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleU5leHRQcm9jZXNzZWRQZXJpb2QACQBkAgUNY3VycmVudFBlcmlvZAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5TmV4dFByb2Nlc3NlZFVzZXIAAAAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEmtleVByb2Nlc3NpbmdTdGFnZQAFA25pbAkAlAoCCQDOCAIFEHVuY2xhaW1lZEFjdGlvbnMFEXByb2Nlc3NpbmdBY3Rpb25zBgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECGGludmFsaWQgcHJvY2Vzc2luZyBzdGFnZQFpAQ9maW5hbGl6ZVdyYXBwZXIBB2NvdW50ZXIEBnJlc3VsdAoAAUAJAPwHBAUEdGhpcwIOZmluYWxpemVIZWxwZXIFA25pbAUDbmlsAwkAAQIFAUACB0Jvb2xlYW4FAUAJAAIBCQCsAgIJAAMBCQD8BwQFBHRoaXMCDmZpbmFsaXplSGVscGVyBQNuaWwFA25pbAIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgMJAAACBQZyZXN1bHQFBnJlc3VsdAMJAQEhAQUGcmVzdWx0AwkAAAIFB2NvdW50ZXIFCG1heERlcHRoCQACAQISTm90aGluZyB0byBwcm9jZXNzCQCUCgIFA25pbAUEdW5pdAMJAGYCBQdjb3VudGVyAAAJAJQKAgUDbmlsCQD8BwQFBHRoaXMCD2ZpbmFsaXplV3JhcHBlcgkAzAgCCQBlAgUHY291bnRlcgABBQNuaWwFA25pbAkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEdcHJvY2Vzc1BlbmRpbmdQZXJpb2RzQW5kVXNlcnMACQCUCgIFA25pbAkA/AcEBQR0aGlzAg9maW5hbGl6ZVdyYXBwZXIJAMwIAgUIbWF4RGVwdGgFA25pbAUDbmlsAWkBB2RlcG9zaXQABAhjZmdBcnJheQkBFXJlYWRDb25maWdBcnJheU9yRmFpbAADCQECIT0CCAUBaQZjYWxsZXIJAQdBZGRyZXNzAQkA2QQBCQCRAwIFCGNmZ0FycmF5BRZJZHhDZmdQYWNlbWFrZXJBZGRyZXNzCQACAQIUV3JvbmcgY2FsbGVyIGFkZHJlc3MEB2Fzc2V0SWQJAQV2YWx1ZQEICQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAMJAQIhPQIFB2Fzc2V0SWQJANkEAQkAkQMCBQhjZmdBcnJheQUNSWR4Q2ZnQXNzZXRJZAkAAgECE1dyb25nIHBheW1lbnQgYXNzZXQEBnBlcmlvZAkBCm5leHRQZXJpb2QABAZkZWx0YUgJAGUCBQZoZWlnaHQJAQ9nZXROdW1iZXJPckZhaWwBCQEfa2V5R3d4UmV3YXJkRW1pc3Npb25TdGFydEhlaWdodAAEDGVtaXNzaW9uUmF0ZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFEGVtaXNzaW9uQ29udHJhY3QJARZrZXlSYXRlUGVyQmxvY2tDdXJyZW50AAkArAICCQCsAgICHG1hbmRhdG9yeSBlbWlzc2lvbl9jb250cmFjdC4JARZrZXlSYXRlUGVyQmxvY2tDdXJyZW50AAIPIGlzIG5vdCBkZWZpbmVkBAZ3ZWlnaHQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQ9mYWN0b3J5Q29udHJhY3QJARRrZXlQb29sV2VpZ2h0VmlydHVhbAAJAKwCAgkArAICAhttYW5kYXRvcnkgZmFjdG9yeV9jb250cmFjdC4JARRrZXlQb29sV2VpZ2h0VmlydHVhbAACDyBpcyBub3QgZGVmaW5lZAQJYXV4QW1vdW50CQBrAwkAaAIFBmRlbHRhSAUGd2VpZ2h0BQxlbWlzc2lvblJhdGUFBU1VTFQ4BAJlbQkA/AcEBRBlbWlzc2lvbkNvbnRyYWN0AgRlbWl0CQDMCAIFCWF1eEFtb3VudAUDbmlsBQNuaWwDCQAAAgUCZW0FAmVtBAttYXRjaGVyUGFydAgJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQECnBheW91dEluZm8JARBQZXJpb2RQYXlvdXRJbmZvAwUGcGVyaW9kBQttYXRjaGVyUGFydAUJYXV4QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5TGF0ZXN0UGVyaW9kAAUGcGVyaW9kCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESa2V5SGVpZ2h0Rm9yUGVyaW9kAQUGcGVyaW9kBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJAR1rZXlBdXhFbWlzc2lvblJld2FyZEZvclBlcmlvZAEFBnBlcmlvZAUJYXV4QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEfa2V5R3d4UmV3YXJkRW1pc3Npb25TdGFydEhlaWdodAAFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBF2tleVRvdGFsQW1vdW50Rm9yUGVyaW9kAQUGcGVyaW9kBQttYXRjaGVyUGFydAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDWtleU5leHRQZXJpb2QACQBkAgUGcGVyaW9kAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEWtleUxhc3RQYXlvdXRJbmZvAAUKcGF5b3V0SW5mbwkAzAgCCQELU3RyaW5nRW50cnkCCQEUa2V5UGF5b3V0SGlzdG9yeUluZm8BBQZwZXJpb2QFCnBheW91dEluZm8FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQtjbGFpbVJld2FyZAAECGNmZ0FycmF5CQEVcmVhZENvbmZpZ0FycmF5T3JGYWlsAAQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEDSR0MDE3NTQyMTc1OTIJARFjb21tb25DbGFpbVJld2FyZAEFB2FkZHJlc3MEBmFtb3VudAgFDSR0MDE3NTQyMTc1OTICXzEEB2FjdGlvbnMIBQ0kdDAxNzU0MjE3NTkyAl8yBAtjaGVja0Ftb3VudAMJAGYCBQZhbW91bnQAAAYJAAIBAhBOb3RoaW5nIHRvIGNsYWltAwkAAAIFC2NoZWNrQW1vdW50BQtjaGVja0Ftb3VudAQSYW1vdW50RnJvbUVtaXNzaW9uAAAED2NsYWltZWRSZWZlcnJhbAoAAUAJAPwHBAUecmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzT3JGYWlsAgVjbGFpbQkAzAgCBRNyZWZlcnJhbFByb2dyYW1OYW1lBQNuaWwFA25pbAMJAAECBQFAAgNJbnQFAUAJAAIBCQCsAgIJAAMBCQD8BwQFHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbAIFY2xhaW0JAMwIAgUTcmVmZXJyYWxQcm9ncmFtTmFtZQUDbmlsBQNuaWwCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQLdG90YWxBbW91bnQJAGQCBQZhbW91bnQFD2NsYWltZWRSZWZlcnJhbAkAlAoCCQDOCAIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQt0b3RhbEFtb3VudAkA2QQBCQCRAwIFCGNmZ0FycmF5BQ1JZHhDZmdBc3NldElkCQDMCAIJAQxIaXN0b3J5RW50cnkEAgVjbGFpbQUHYWRkcmVzcwUGYW1vdW50BQFpBQNuaWwFB2FjdGlvbnMJAMwIAgULdG90YWxBbW91bnQJAMwIAgUSYW1vdW50RnJvbUVtaXNzaW9uBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQETY2xhaW1SZXdhcmRSRUFET05MWQEHYWRkcmVzcwQNJHQwMTgxNjUxODIxNQkBEWNvbW1vbkNsYWltUmV3YXJkAQUHYWRkcmVzcwQGYW1vdW50CAUNJHQwMTgxNjUxODIxNQJfMQQHYWN0aW9ucwgFDSR0MDE4MTY1MTgyMTUCXzIEEXJlZmVycmFsVW5jbGFpbWVkCQELdmFsdWVPckVsc2UCCQCaCAIFHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbAkBFGtleVVuY2xhaW1lZFJlZmVycmFsAgUTcmVmZXJyYWxQcm9ncmFtTmFtZQUHYWRkcmVzcwAABAt0b3RhbEFtb3VudAkAZAIFBmFtb3VudAURcmVmZXJyYWxVbmNsYWltZWQJAJQKAgUDbmlsBQt0b3RhbEFtb3VudAFpAR1sYXRlc3RGaW5hbGl6ZWRQZXJpb2RSRUFET05MWQEHYWRkcmVzcwkAlAoCBQNuaWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBD2tleUxhdGVzdFBlcmlvZAAA////////////AQFpASFsYXRlc3RGaW5hbGl6ZWRQZXJpb2RJbmZvUkVBRE9OTFkBB2FkZHJlc3MJAJQKAgUDbmlsCQEOZ2V0U3RyaW5nQnlLZXkBCQERa2V5TGFzdFBheW91dEluZm8AAWkBFWNhbGNHd3hQYXJhbXNSRUFET05MWQMOZ3d4QW1vdW50U3RhcnQPbG9ja1N0YXJ0SGVpZ2h0EmxvY2tEdXJhdGlvbkJsb2NrcwQNbG9ja0VuZEhlaWdodAkAZAIFD2xvY2tTdGFydEhlaWdodAUSbG9ja0R1cmF0aW9uQmxvY2tzBAxzY2FsZThQYXJhbUsJAQEtAQkAawMFDmd3eEFtb3VudFN0YXJ0BQVTQ0FMRQUSbG9ja0R1cmF0aW9uQmxvY2tzBAxzY2FsZThQYXJhbUIJAGgCCQBrAwUOZ3d4QW1vdW50U3RhcnQFBVNDQUxFBRJsb2NrRHVyYXRpb25CbG9ja3MFDWxvY2tFbmRIZWlnaHQJAJQKAgUDbmlsCQDMCAIFDHNjYWxlOFBhcmFtSwkAzAgCBQxzY2FsZThQYXJhbUIJAMwIAgkBCm5leHRQZXJpb2QABQNuaWwBaQEaY2FsY0d3eEFtb3VudFN0YXJ0UkVBRE9OTFkDDHd4TG9ja0Ftb3VudAxsb2NrRHVyYXRpb24PbWF4TG9ja0R1cmF0aW9uBAdjb2VmZlg4CQBrAwUMbG9ja0R1cmF0aW9uBQVNVUxUOAUPbWF4TG9ja0R1cmF0aW9uBA5nV3hBbW91bnRTdGFydAkAawMFDHd4TG9ja0Ftb3VudAUHY29lZmZYOAUFTVVMVDgJAJQKAgUDbmlsCQDMCAIFDmdXeEFtb3VudFN0YXJ0BQNuaWwBaQEVb25FbWlzc2lvbkZvckd3eFN0YXJ0AAMJAQIhPQIIBQFpBmNhbGxlcgUPZmFjdG9yeUNvbnRyYWN0CQACAQIScGVybWlzc2lvbnMgZGVuaWVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEfa2V5R3d4UmV3YXJkRW1pc3Npb25TdGFydEhlaWdodAAFBmhlaWdodAUDbmlsAWkBI2xhdGVzdFBlcmlvZEVtaXNzaW9uUmV3YXJkc1JFQURPTkxZAQdhZGRyZXNzBAZwZXJpb2QJAQpuZXh0UGVyaW9kAAkAlAoCBQNuaWwJAMwIAgkBDmdldE51bWJlckJ5S2V5AQkBHWtleUF1eEVtaXNzaW9uUmV3YXJkRm9yUGVyaW9kAQUGcGVyaW9kBQNuaWwBaQEFY2FsY0QFC3gxQmlnSW50U3RyC3gyQmlnSW50U3RyDGFtcEJpZ0ludFN0chNhUHJlY2lzaW9uQmlnSW50U3RyGHRhcmdldFByZWNpc2lvbkJpZ0ludFN0cgQGbkNvaW5zCQC2AgEAAgQKYVByZWNpc2lvbgkApwMBBRNhUHJlY2lzaW9uQmlnSW50U3RyBA90YXJnZXRQcmVjaXNpb24JAKcDAQUYdGFyZ2V0UHJlY2lzaW9uQmlnSW50U3RyBAJ4MQkApwMBBQt4MUJpZ0ludFN0cgQCeDIJAKcDAQULeDJCaWdJbnRTdHIEA2FtcAkAuQICCQCnAwEFDGFtcEJpZ0ludFN0cgUKYVByZWNpc2lvbgQBcwkAtwICBQJ4MQUCeDIDCQAAAgUBcwUKemVyb0JpZ0ludAkAlAoCBQNuaWwJAKYDAQUKemVyb0JpZ0ludAQDYW5uCQC5AgIFA2FtcAUGbkNvaW5zBANhcnIJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYJAMwIAgAHBQNuaWwKAQRjYWxjAgNhY2MDY3VyBA0kdDAyMDgzODIxMDI3BQNhY2MEAWQIBQ0kdDAyMDgzODIxMDI3Al8xBAVkUHJldggFDSR0MDIwODM4MjEwMjcCXzIEAmRwCQC6AgIJALkCAgkAuQICBQFkBQFkBQFkCQC5AgIJALkCAgkAuQICBQJ4MQUCeDIFBm5Db2lucwUGbkNvaW5zBAVkTmV4dAkAugICCQC5AgIJALcCAgkAugICCQC5AgIFA2FubgUBcwUKYVByZWNpc2lvbgkAuQICBQJkcAUGbkNvaW5zBQFkCQC3AgIJALoCAgkAuQICCQC4AgIFA2FubgUKYVByZWNpc2lvbgUBZAUKYVByZWNpc2lvbgkAuQICCQC3AgIFBm5Db2lucwkAtgIBAAEFAmRwCQCUCgIFBWROZXh0BQFkBA0kdDAyMTI0MDIxMjkwCgACJGwFA2FycgoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgUBcwUEdW5pdAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEEY2FsYwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNwkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHBAVkTmV4dAgFDSR0MDIxMjQwMjEyOTACXzEEBWRQcmV2CAUNJHQwMjEyNDAyMTI5MAJfMgQFZERpZmYJAQlhYnNCaWdJbnQBCQC4AgIFBWROZXh0CQEFdmFsdWUBBQVkUHJldgMJAMACAgUPdGFyZ2V0UHJlY2lzaW9uBQVkRGlmZgkAlAoCBQNuaWwJAKYDAQUFZE5leHQJAAIBCQCsAgICHUQgY2FsY3VsYXRpb24gZXJyb3IsIGREaWZmID0gCQCmAwEFBWREaWZmAWkBDGNhbGNQdXRYT25seQgaYW1vdW50QXNzZXRBbW91bnRCaWdJbnRTdHIbYW1vdW50QXNzZXRCYWxhbmNlQmlnSW50U3RyGnByaWNlQXNzZXRCYWxhbmNlQmlnSW50U3RyCmRCaWdJbnRTdHIVYW1wbGlmaWNhdG9yQmlnSW50U3RyHmFtcGxpZmljYXRvclByZWNpc2lvbkJpZ0ludFN0chl0YXJnZXRYUHJlY2lzaW9uQmlnSW50U3RyGXRhcmdldERQcmVjaXNpb25CaWdJbnRTdHIEBm5Db2lucwkAtgIBAAIECmFQcmVjaXNpb24JAKcDAQUeYW1wbGlmaWNhdG9yUHJlY2lzaW9uQmlnSW50U3RyBA90YXJnZXRQcmVjaXNpb24JAKcDAQUZdGFyZ2V0WFByZWNpc2lvbkJpZ0ludFN0cgQBWAkApwMBBRthbW91bnRBc3NldEJhbGFuY2VCaWdJbnRTdHIEAVkJAKcDAQUacHJpY2VBc3NldEJhbGFuY2VCaWdJbnRTdHIEAWQDCQAAAgUKZEJpZ0ludFN0cgIACQCnAwEKAAFACQD8BwQFBHRoaXMCBWNhbGNECQDMCAIFG2Ftb3VudEFzc2V0QmFsYW5jZUJpZ0ludFN0cgkAzAgCBRpwcmljZUFzc2V0QmFsYW5jZUJpZ0ludFN0cgkAzAgCBRVhbXBsaWZpY2F0b3JCaWdJbnRTdHIJAMwIAgUeYW1wbGlmaWNhdG9yUHJlY2lzaW9uQmlnSW50U3RyCQDMCAIFGXRhcmdldERQcmVjaXNpb25CaWdJbnRTdHIFA25pbAUDbmlsAwkAAQIFAUACBlN0cmluZwUBQAkAAgEJAKwCAgkAAwEJAPwHBAUEdGhpcwIFY2FsY0QJAMwIAgUbYW1vdW50QXNzZXRCYWxhbmNlQmlnSW50U3RyCQDMCAIFGnByaWNlQXNzZXRCYWxhbmNlQmlnSW50U3RyCQDMCAIFFWFtcGxpZmljYXRvckJpZ0ludFN0cgkAzAgCBR5hbXBsaWZpY2F0b3JQcmVjaXNpb25CaWdJbnRTdHIJAMwIAgUZdGFyZ2V0RFByZWNpc2lvbkJpZ0ludFN0cgUDbmlsBQNuaWwCGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwkApwMBBQpkQmlnSW50U3RyBANhbXAJALkCAgkApwMBBRVhbXBsaWZpY2F0b3JCaWdJbnRTdHIFCmFQcmVjaXNpb24EAVMJAKcDAQUaYW1vdW50QXNzZXRBbW91bnRCaWdJbnRTdHIEA2FubgkAuQICBQNhbXAFBm5Db2lucwQDYXJyCQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgkAzAgCAAcJAMwIAgAICQDMCAIACQUDbmlsCgEEY2FsYwIDYWNjA2N1cgQNJHQwMjI4NTcyMjg3NwUDYWNjBAF4CAUNJHQwMjI4NTcyMjg3NwJfMQQFeFByZXYIBQ0kdDAyMjg1NzIyODc3Al8yBARuZXdYCQC4AgIJALcCAgUBWAUBUwUBeAQEbmV3WQkAuAICBQFZCQC6AgIJALkCAgUBeAUBWQUBWAQCZHAJALoCAgkAuQICCQC5AgIFAWQFAWQFAWQJALkCAgkAuQICCQC5AgIFBG5ld1gFBG5ld1kFBm5Db2lucwUGbkNvaW5zBAV4TmV4dAkAtwICBQF4CQC6AgIJALgCAgkAtwICCQC3AgIJALoCAgkAuQICCQC+AgEFAWQFA2FubgUKYVByZWNpc2lvbgUBZAkAugICCQC5AgIFA2FubgkAtwICBQRuZXdYBQRuZXdZBQphUHJlY2lzaW9uBQJkcAkAtwICCQC3AgIJALoCAgkAuQICCQC+AgEFA2FubgkAuAICCQC2AgEA////////////AQkAugICBQFZBQFYBQphUHJlY2lzaW9uCQC6AgIFAmRwBQRuZXdYCQC6AgIJALkCAgUBWQUCZHAJALkCAgUBWAUEbmV3WQkAlAoCBQV4TmV4dAUBeAQNJHQwMjMxODAyMzI0MAoAAiRsBQNhcnIKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFCnplcm9CaWdJbnQFBHVuaXQKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBGNhbGMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoEBXhOZXh0CAUNJHQwMjMxODAyMzI0MAJfMQQFeFByZXYIBQ0kdDAyMzE4MDIzMjQwAl8yBAV4RGlmZgkBCWFic0JpZ0ludAEJALgCAgUFeE5leHQJAQV2YWx1ZQEFBXhQcmV2AwkAwAICBQ90YXJnZXRQcmVjaXNpb24FBXhEaWZmCQCUCgIFA25pbAkAlAoCCQCgAwEFBXhOZXh0CQCgAwEJALwCAwUFeE5leHQFAVkFAVgJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIdWCBjYWxjdWxhdGlvbiBlcnJvciwgeERpZmYgPSAJAKYDAQUFeERpZmYCCiwgeE5leHQgPSAJAKYDAQUFeE5leHQCCiwgeFByZXYgPSAJAKYDAQkBBXZhbHVlAQUFeFByZXYBaQEMY2FsY1N3YXBYVG9ZCBphbW91bnRBc3NldEFtb3VudEJpZ0ludFN0chthbW91bnRBc3NldEJhbGFuY2VCaWdJbnRTdHIacHJpY2VBc3NldEJhbGFuY2VCaWdJbnRTdHIKZEJpZ0ludFN0chVhbXBsaWZpY2F0b3JCaWdJbnRTdHIeYW1wbGlmaWNhdG9yUHJlY2lzaW9uQmlnSW50U3RyGXRhcmdldFhQcmVjaXNpb25CaWdJbnRTdHIZdGFyZ2V0RFByZWNpc2lvbkJpZ0ludFN0cgQGbkNvaW5zCQC2AgEAAgQKYVByZWNpc2lvbgkApwMBBR5hbXBsaWZpY2F0b3JQcmVjaXNpb25CaWdJbnRTdHIED3RhcmdldFByZWNpc2lvbgkApwMBBRl0YXJnZXRYUHJlY2lzaW9uQmlnSW50U3RyBAFYCQCnAwEFG2Ftb3VudEFzc2V0QmFsYW5jZUJpZ0ludFN0cgQBWQkApwMBBRpwcmljZUFzc2V0QmFsYW5jZUJpZ0ludFN0cgQBeAkApwMBBRphbW91bnRBc3NldEFtb3VudEJpZ0ludFN0cgQBZAMJAAACBQpkQmlnSW50U3RyAgAJAKcDAQoAAUAJAPwHBAUEdGhpcwIFY2FsY0QJAMwIAgUbYW1vdW50QXNzZXRCYWxhbmNlQmlnSW50U3RyCQDMCAIFGnByaWNlQXNzZXRCYWxhbmNlQmlnSW50U3RyCQDMCAIFFWFtcGxpZmljYXRvckJpZ0ludFN0cgkAzAgCBR5hbXBsaWZpY2F0b3JQcmVjaXNpb25CaWdJbnRTdHIJAMwIAgUZdGFyZ2V0RFByZWNpc2lvbkJpZ0ludFN0cgUDbmlsBQNuaWwDCQABAgUBQAIGU3RyaW5nBQFACQACAQkArAICCQADAQkA/AcEBQR0aGlzAgVjYWxjRAkAzAgCBRthbW91bnRBc3NldEJhbGFuY2VCaWdJbnRTdHIJAMwIAgUacHJpY2VBc3NldEJhbGFuY2VCaWdJbnRTdHIJAMwIAgUVYW1wbGlmaWNhdG9yQmlnSW50U3RyCQDMCAIFHmFtcGxpZmljYXRvclByZWNpc2lvbkJpZ0ludFN0cgkAzAgCBRl0YXJnZXREUHJlY2lzaW9uQmlnSW50U3RyBQNuaWwFA25pbAIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nCQCnAwEFCmRCaWdJbnRTdHIEA2FtcAkAuQICCQCnAwEFFWFtcGxpZmljYXRvckJpZ0ludFN0cgUKYVByZWNpc2lvbgQBUwkApwMBBRphbW91bnRBc3NldEFtb3VudEJpZ0ludFN0cgQDYW5uCQC5AgIFA2FtcAUGbkNvaW5zBANhcnIJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJBQNuaWwKAQRjYWxjAgNhY2MDY3VyBA0kdDAyNDkxMzI0OTMzBQNhY2MEAXkIBQ0kdDAyNDkxMzI0OTMzAl8xBAV5UHJldggFDSR0MDI0OTEzMjQ5MzMCXzIEBG5ld1gJALcCAgUBWAUBeAQEbmV3WQkAuAICBQFZBQF5BAJkcAkAugICCQC5AgIJALkCAgUBZAUBZAUBZAkAuQICCQC5AgIJALkCAgUEbmV3WAUEbmV3WQUGbkNvaW5zBQZuQ29pbnMEBXlOZXh0CQC3AgIFAXkJALoCAgkAuAICCQC3AgIJALcCAgkAugICCQC5AgIJAL4CAQUBZAUDYW5uBQphUHJlY2lzaW9uBQFkCQC6AgIJALkCAgUDYW5uCQC3AgIFBG5ld1gFBG5ld1kFCmFQcmVjaXNpb24FAmRwCQC3AgIJALoCAgUDYW5uBQphUHJlY2lzaW9uCQC6AgIFAmRwBQRuZXdZCQCUCgIFBXlOZXh0BQF5BA0kdDAyNTE3NTI1MjM1CgACJGwFA2FycgoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgUKemVyb0JpZ0ludAUEdW5pdAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEEY2FsYwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgQFeU5leHQIBQ0kdDAyNTE3NTI1MjM1Al8xBAV5UHJldggFDSR0MDI1MTc1MjUyMzUCXzIEBXhEaWZmCQEJYWJzQmlnSW50AQkAuAICBQV5TmV4dAkBBXZhbHVlAQUFeVByZXYDCQDAAgIFD3RhcmdldFByZWNpc2lvbgUFeERpZmYJAJQKAgUDbmlsCQCgAwEFBXlOZXh0CQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgICHVkgY2FsY3VsYXRpb24gZXJyb3IsIHlEaWZmID0gCQCmAwEFBXhEaWZmAgosIHlOZXh0ID0gCQCmAwEFBXlOZXh0AgosIHlQcmV2ID0gCQCmAwEJAQV2YWx1ZQEFBXlQcmV2AWkBCnNldE1hbmFnZXIBF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BAtjaGVja0NhbGxlcgkBC211c3RNYW5hZ2VyAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIEFWNoZWNrTWFuYWdlclB1YmxpY0tleQkA2QQBBRdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQMJAAACBRVjaGVja01hbmFnZXJQdWJsaWNLZXkFFWNoZWNrTWFuYWdlclB1YmxpY0tleQkAzAgCCQELU3RyaW5nRW50cnkCCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkABRdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmNvbmZpcm1NYW5hZ2VyAAQCcG0JAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEBWhhc1BNAwkBCWlzRGVmaW5lZAEFAnBtBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQVoYXNQTQUFaGFzUE0EB2NoZWNrUE0DCQAAAggFAWkPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJwbQYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUHY2hlY2tQTQUHY2hlY2tQTQkAzAgCCQELU3RyaW5nRW50cnkCCQETa2V5TWFuYWdlclB1YmxpY0tleQAJANgEAQkBBXZhbHVlAQUCcG0JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAQPdGFyZ2V0UHVibGljS2V5BAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDAFAnBrAwkAAQIFByRtYXRjaDACBFVuaXQIBQJ0eA9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUPdGFyZ2V0UHVibGljS2V5SzTBzg==", "height": 2228905, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BZSFryMfz8AkGdNhA9wYR5HVjyNpQd1B2GzMwqqLDxEA Next: 8bgwTfUnRA5atSxnUQXvb9V72WixCXyAE9Uybn2qr6xc Diff:
OldNewDifferences
2525 func k (h) = valueOrErrorMessage(getString(this, h), (("mandatory this." + h) + " is not defined"))
2626
2727
28-func l (m) = if ((d > m))
28+func l (m) = if ((0 > m))
2929 then -(m)
3030 else m
3131
3232
33-let n = "%s__maxDepth"
34-
35-let o = 30
36-
37-let p = valueOrElse(getInteger(this, n), o)
38-
39-func q () = "%s%s__config__factoryAddress"
33+func n (m) = if ((d > m))
34+ then -(m)
35+ else m
4036
4137
42-let r = k(q())
38+let o = "%s__maxDepth"
4339
44-let s = addressFromStringValue(r)
40+let p = 30
4541
46-func t () = "%s%s__config__emissionAddress"
42+let q = valueOrElse(getInteger(this, o), p)
43+
44+func r () = "%s%s__config__factoryAddress"
4745
4846
49-func u (v) = makeString(["%s%s%s", "mapping", "num2user", toString(v)], a)
47+let s = k(r())
48+
49+let t = addressFromStringValue(s)
50+
51+func u () = "%s%s__config__emissionAddress"
5052
5153
52-let w = makeString(["%s%s", "referral", "programName"], a)
53-
54-let x = "wxlock"
55-
56-let y = valueOrElse(getString(this, w), x)
57-
58-let z = makeString(["%s%s", "referral", "minGWxAmount"], a)
59-
60-let A = (500 * c)
61-
62-let B = valueOrElse(getInteger(this, z), A)
63-
64-let C = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
65-
66-let D = 50
67-
68-let E = valueOrElse(getInteger(this, C), D)
69-
70-let F = makeString(["%s%s", "referral", "referralRewardPermille"], a)
71-
72-let G = 50
73-
74-let H = valueOrElse(getInteger(this, F), G)
75-
76-func I (J) = makeString(["%s%s%s", "referrer", y, J], a)
54+func v (w) = makeString(["%s%s%s", "mapping", "num2user", toString(w)], a)
7755
7856
79-func K (L,M) = makeString(["%s%s%s%s", "unclaimedReferral", L, M], a)
57+let x = makeString(["%s%s", "referral", "programName"], a)
58+
59+let y = "wxlock"
60+
61+let z = valueOrElse(getString(this, x), y)
62+
63+let A = makeString(["%s%s", "referral", "minGWxAmount"], a)
64+
65+let B = (500 * c)
66+
67+let C = valueOrElse(getInteger(this, A), B)
68+
69+let D = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
70+
71+let E = 50
72+
73+let F = valueOrElse(getInteger(this, D), E)
74+
75+let G = makeString(["%s%s", "referral", "referralRewardPermille"], a)
76+
77+let H = 50
78+
79+let I = valueOrElse(getInteger(this, G), H)
80+
81+func J (K) = makeString(["%s%s%s", "referrer", z, K], a)
8082
8183
82-let N = k(t())
83-
84-let O = addressFromStringValue(N)
85-
86-let P = 1
87-
88-let Q = 2
89-
90-let R = 3
91-
92-let S = 4
93-
94-func T () = "%s__config"
84+func L (M,N) = makeString(["%s%s%s%s", "unclaimedReferral", M, N], a)
9585
9686
97-func U () = split(k(T()), a)
87+let O = k(u())
88+
89+let P = addressFromStringValue(O)
90+
91+let Q = 1
92+
93+let R = 2
94+
95+let S = 3
96+
97+let T = 4
98+
99+func U () = "%s__config"
98100
99101
100-func V (W,X,Y,p) = makeString(["%s%s%s%d", W, X, Y, toString(p)], a)
102+func V () = split(k(U()), a)
101103
102104
103-func Z () = {
104- let aa = U()
105- valueOrErrorMessage(addressFromString(aa[R]), "boosting contract address is not defined")
105+func W (X,Y,Z,q) = makeString(["%s%s%s%d", X, Y, Z, toString(q)], a)
106+
107+
108+func aa () = {
109+ let ab = V()
110+ valueOrErrorMessage(addressFromString(ab[S]), "boosting contract address is not defined")
106111 }
107112
108113
109-func ab () = "%s%s__gwxRewardEmissionPart__startHeight"
114+func ac () = "%s%s__gwxRewardEmissionPart__startHeight"
110115
111116
112-func ac () = "%s__nextUserNum"
117+func ad () = "%s__nextUserNum"
113118
114119
115-func ad () = "%s%s__ratePerBlock__current"
120+func ae () = "%s%s__ratePerBlock__current"
116121
117122
118-func ae () = "%s%s__poolWeight__GWXvirtualPOOL"
123+func af () = "%s%s__poolWeight__GWXvirtualPOOL"
119124
120125
121-func af () = "%s__nextProcessedUser"
126+func ag () = "%s__nextProcessedUser"
122127
123128
124-func ag () = "%s__latestPeriod"
129+func ah () = "%s__latestPeriod"
125130
126131
127-func ah () = "%s__nextPeriod"
132+func ai () = "%s__nextPeriod"
128133
129134
130-func ai () = "%s__processingStage"
135+func aj () = "%s__processingStage"
131136
132137
133-func aj () = "%s__nextProcessedPeriod"
138+func ak () = "%s__nextProcessedPeriod"
134139
135140
136-func ak (al) = makeString(["%s%d", "userUnclaimed", toString(al)], a)
141+func al (am) = makeString(["%s%d", "userUnclaimed", toString(am)], a)
137142
138143
139-func am (al) = makeString(["%s%d__nextClaimedPeriod", toString(al)], a)
144+func an (am) = makeString(["%s%d__nextClaimedPeriod", toString(am)], a)
140145
141146
142-func an (al) = makeString(["%s%d__lastProcessedPeriod", toString(al)], a)
147+func ao (am) = makeString(["%s%d__lastProcessedPeriod", toString(am)], a)
143148
144149
145-func ao (ap) = makeString(["%s%d__startHeightForPeriod", toString(ap)], a)
150+func ap (aq) = makeString(["%s%d__startHeightForPeriod", toString(aq)], a)
146151
147152
148-func aq (ap) = makeString(["%s%d__auxEmissionReward", toString(ap)], a)
153+func ar (aq) = makeString(["%s%d__auxEmissionReward", toString(aq)], a)
149154
150155
151-func ar (ap) = makeString(["%s%d__totalAmountForPeriod", toString(ap)], a)
156+func as (aq) = makeString(["%s%d__totalAmountForPeriod", toString(aq)], a)
152157
153158
154-func as () = "%s__lastPayoutInfo"
159+func at () = "%s__lastPayoutInfo"
155160
156161
157-func at (ap,au,av) = makeString(["%d%d%d", toString(ap), toString(au), toString(av)], a)
162+func au (aq,av,aw) = makeString(["%d%d%d", toString(aq), toString(av), toString(aw)], a)
158163
159164
160-func aw (ap) = makeString(["%s%s%d__payouts__history", toString(ap)], a)
165+func ax (aq) = makeString(["%s%s%d__payouts__history", toString(aq)], a)
161166
162167
163-func ax (ap) = makeString(["%s%d__totalWeightForPeriod", toString(ap)], a)
168+func ay (aq) = makeString(["%s%d__totalWeightForPeriod", toString(aq)], a)
164169
165170
166-func ay (ap,al) = makeString(["%s%d%s%d__paramByPeriod", toString(al), "k", toString(ap)], a)
171+func az (aq,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "k", toString(aq)], a)
167172
168173
169-func az (ap,al) = makeString(["%s%d%s%d__paramByPeriod", toString(al), "b", toString(ap)], a)
174+func aA (aq,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "b", toString(aq)], a)
170175
171176
172-func aA (ap,al) = makeString(["%s%d%s%d__paramByPeriod", toString(al), "weight", toString(ap)], a)
177+func aB (aq,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "weight", toString(aq)], a)
173178
174179
175-func aB () = makeString(["%s%s", "config", "referralsContractAddress"], a)
180+func aC () = makeString(["%s%s", "config", "referralsContractAddress"], a)
176181
177182
178-let aC = addressFromStringValue(k(aB()))
183+let aD = addressFromStringValue(k(aC()))
179184
180-func aD (aE,aF,aG,aH) = {
181- let aI = makeString(["%s%s%s%s__history", aE, aF, toBase58String(aH.transactionId)], a)
182- let aJ = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aG)], a)
183- StringEntry(aI, aJ)
185+func aE (aF,aG,aH,aI) = {
186+ let aJ = makeString(["%s%s%s%s__history", aF, aG, toBase58String(aI.transactionId)], a)
187+ let aK = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aH)], a)
188+ StringEntry(aJ, aK)
184189 }
185190
186191
187-func aK () = "%s__managerPublicKey"
192+func aL () = "%s__managerPublicKey"
188193
189194
190-func aL () = "%s__pendingManagerPublicKey"
195+func aM () = "%s__pendingManagerPublicKey"
191196
192197
193-func aM () = {
194- let aN = getString(aK())
195- if ($isInstanceOf(aN, "String"))
198+func aN () = {
199+ let aO = getString(aL())
200+ if ($isInstanceOf(aO, "String"))
196201 then {
197- let aO = aN
198- fromBase58String(aO)
202+ let aP = aO
203+ fromBase58String(aP)
199204 }
200- else if ($isInstanceOf(aN, "Unit"))
205+ else if ($isInstanceOf(aO, "Unit"))
201206 then unit
202207 else throw("Match error")
203208 }
204209
205210
206-func aP () = {
207- let aN = getString(aL())
208- if ($isInstanceOf(aN, "String"))
211+func aQ () = {
212+ let aO = getString(aM())
213+ if ($isInstanceOf(aO, "String"))
209214 then {
210- let aO = aN
211- fromBase58String(aO)
215+ let aP = aO
216+ fromBase58String(aP)
212217 }
213- else if ($isInstanceOf(aN, "Unit"))
218+ else if ($isInstanceOf(aO, "Unit"))
214219 then unit
215220 else throw("Match error")
216221 }
217222
218223
219-func aQ (aH) = {
220- let aR = throw("Permission denied")
221- let aN = aM()
222- if ($isInstanceOf(aN, "ByteVector"))
224+func aR (aI) = {
225+ let aS = throw("Permission denied")
226+ let aO = aN()
227+ if ($isInstanceOf(aO, "ByteVector"))
223228 then {
224- let aS = aN
225- if ((aH.callerPublicKey == aS))
229+ let aT = aO
230+ if ((aI.callerPublicKey == aT))
226231 then true
227- else aR
232+ else aS
228233 }
229- else if ($isInstanceOf(aN, "Unit"))
230- then if ((aH.caller == this))
234+ else if ($isInstanceOf(aO, "Unit"))
235+ then if ((aI.caller == this))
231236 then true
232- else aR
237+ else aS
233238 else throw("Match error")
234239 }
235240
236241
237-func aT (aU,aV,ap,al) = {
238- let aW = an(al)
239- let aX = ay(ap, al)
240- let aY = getInteger(aU, aX)
241- let aZ = aA(ap, al)
242- if (isDefined(aY))
242+func aU (aV,aW,aq,am) = {
243+ let aX = ao(am)
244+ let aY = az(aq, am)
245+ let aZ = getInteger(aV, aY)
246+ let ba = aB(aq, am)
247+ if (isDefined(aZ))
243248 then {
244- let ba = value(aY)
245- let bb = value(getInteger(aU, az(ap, al)))
246- let bc = ((ba * aV) + bb)
247- if ((bc > 0))
248- then $Tuple2((bc / b), [IntegerEntry(aW, ap), IntegerEntry(aZ, bc)])
249+ let bb = value(aZ)
250+ let bc = value(getInteger(aV, aA(aq, am)))
251+ let bd = ((bb * aW) + bc)
252+ if ((bd > 0))
253+ then $Tuple2((bd / b), [IntegerEntry(aX, aq), IntegerEntry(ba, bd)])
249254 else $Tuple2(0, nil)
250255 }
251256 else {
252- let bd = getInteger(this, aW)
253- if (if (isDefined(bd))
254- then (ap >= value(bd))
257+ let be = getInteger(this, aX)
258+ if (if (isDefined(be))
259+ then (aq >= value(be))
255260 else false)
256261 then {
257- let be = value(bd)
258- let ba = value(getInteger(aU, ay(be, al)))
259- let bb = value(getInteger(aU, az(be, al)))
260- let bc = ((ba * aV) + bb)
261- if ((bc > 0))
262- then $Tuple2((bc / b), [IntegerEntry(aZ, bc)])
262+ let bf = value(be)
263+ let bb = value(getInteger(aV, az(bf, am)))
264+ let bc = value(getInteger(aV, aA(bf, am)))
265+ let bd = ((bb * aW) + bc)
266+ if ((bd > 0))
267+ then $Tuple2((bd / b), [IntegerEntry(ba, bd)])
263268 else $Tuple2(0, nil)
264269 }
265270 else $Tuple2(0, nil)
267272 }
268273
269274
270-func bf (aU,aV,ap,al) = {
271- let aZ = aA(ap, al)
272- let bg = getInteger(aZ)
273- let aN = bg
274- if ($isInstanceOf(aN, "Unit"))
275+func bg (aV,aW,aq,am) = {
276+ let ba = aB(aq, am)
277+ let bh = getInteger(ba)
278+ let aO = bh
279+ if ($isInstanceOf(aO, "Unit"))
275280 then 0
276- else if ($isInstanceOf(aN, "Int"))
281+ else if ($isInstanceOf(aO, "Int"))
277282 then {
278- let bc = aN
279- (bc / b)
283+ let bd = aO
284+ (bd / b)
280285 }
281286 else throw("Match error")
282287 }
283288
284289
285-func bh (Y,bi) = {
286- let h = makeString(["%s%s%s", "mapping", "user2num", bi], a)
287- parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(Y)), h), ((("User address " + bi) + " is not found in boosting contract data, key=") + h)))
290+func bi (Z,bj) = {
291+ let h = makeString(["%s%s%s", "mapping", "user2num", bj], a)
292+ parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(Z)), h), ((("User address " + bj) + " is not found in boosting contract data, key=") + h)))
288293 }
289294
290295
291-func bj () = g(ah())
296+func bk () = g(ai())
292297
293298
294-func bk (bi) = {
295- let aa = U()
296- let bl = bh(aa[R], bi)
297- let bm = getInteger(ak(bl))
298- let aN = bm
299- if ($isInstanceOf(aN, "Unit"))
299+func bl (bj) = {
300+ let ab = V()
301+ let bm = bi(ab[S], bj)
302+ let bn = getInteger(al(bm))
303+ let aO = bn
304+ if ($isInstanceOf(aO, "Unit"))
300305 then $Tuple2(0, nil)
301- else if ($isInstanceOf(aN, "Int"))
306+ else if ($isInstanceOf(aO, "Int"))
302307 then {
303- let bn = aN
304- $Tuple2(bn, [IntegerEntry(ak(bl), 0)])
308+ let bo = aO
309+ $Tuple2(bo, [IntegerEntry(al(bm), 0)])
305310 }
306311 else throw("Match error")
307312 }
308313
309314
310-@Callable(aH)
311-func updateReferralActivity (bi,bo) = {
312- let bp = getString(aC, I(bi))
313- let bq = if ((bp == unit))
315+@Callable(aI)
316+func updateReferralActivity (bj,bp) = {
317+ let bq = getString(aD, J(bj))
318+ let br = if ((bq == unit))
314319 then unit
315- else invoke(aC, "updateReferralActivity", [y, bi, (bo >= B)], nil)
316- if ((bq == bq))
320+ else invoke(aD, "updateReferralActivity", [z, bj, (bp >= C)], nil)
321+ if ((br == br))
317322 then $Tuple2(nil, unit)
318323 else throw("Strict value is not equal to itself.")
319324 }
320325
321326
322327
323-@Callable(aH)
328+@Callable(aI)
324329 func finalizeHelper () = {
325- let br = valueOrElse(getInteger(ai()), e)
326- let bs = g(aj())
327- let bt = g(af())
330+ let bs = valueOrElse(getInteger(aj()), e)
331+ let bt = g(ak())
328332 let bu = g(ag())
329- let bv = valueOrElse(getInteger(Z(), ac()), 0)
330- let bw = ax(bs)
331- let bx = g(ax(bs))
332- let aV = g(ao(bs))
333- if ((bs > bu))
333+ let bv = g(ah())
334+ let bw = valueOrElse(getInteger(aa(), ad()), 0)
335+ let bx = ay(bt)
336+ let by = g(ay(bt))
337+ let aW = g(ap(bt))
338+ if ((bt > bv))
334339 then $Tuple2(nil, false)
335- else if ((br == e))
340+ else if ((bs == e))
336341 then {
337- let by = aT(Z(), aV, bs, bt)
338- let bz = by._1
339- let bA = by._2
340- let bB = (bx + bz)
341- let bC = if (((bv - 1) > bt))
342- then [IntegerEntry(af(), (bt + 1))]
343- else [IntegerEntry(ai(), f), IntegerEntry(af(), 0)]
344- $Tuple2((([IntegerEntry(bw, bB)] ++ bC) ++ bA), true)
342+ let bz = aU(aa(), aW, bt, bu)
343+ let bA = bz._1
344+ let bB = bz._2
345+ let bC = (by + bA)
346+ let bD = if (((bw - 1) > bu))
347+ then [IntegerEntry(ag(), (bu + 1))]
348+ else [IntegerEntry(aj(), f), IntegerEntry(ag(), 0)]
349+ $Tuple2((([IntegerEntry(bx, bC)] ++ bD) ++ bB), true)
345350 }
346- else if ((br == f))
351+ else if ((bs == f))
347352 then {
348- let bz = bf(Z(), aV, bs, bt)
349- let bD = fraction(g(ar(bs)), bz, bx)
350- let bE = fraction(g(aq(bs)), bz, bx)
351- let bF = (bE + bD)
352- let bm = getInteger(ak(bt))
353- let bi = getStringValue(Z(), u(bt))
354- let bp = getString(aC, I(bi))
355- let bq = if ((bp == unit))
353+ let bA = bg(aa(), aW, bt, bu)
354+ let bE = fraction(g(as(bt)), bA, by)
355+ let bF = fraction(g(ar(bt)), bA, by)
356+ let bG = (bF + bE)
357+ let bn = getInteger(al(bu))
358+ let bj = getStringValue(aa(), v(bu))
359+ let bq = getString(aD, J(bj))
360+ let br = if ((bq == unit))
356361 then unit
357- else invoke(aC, "updateReferralActivity", [y, bi, (bz >= B)], nil)
358- if ((bq == bq))
362+ else invoke(aD, "updateReferralActivity", [z, bj, (bA >= C)], nil)
363+ if ((br == br))
359364 then {
360- let bG = if (if ((bp == unit))
365+ let bH = if (if ((bq == unit))
361366 then true
362- else (B > bz))
367+ else (C > bA))
363368 then unit
364369 else {
365- let bH = fraction(bF, E, b)
366- let bI = fraction(bF, H, b)
367- invoke(aC, "incUnclaimed", [y, bi, bH, bI], nil)
370+ let bI = fraction(bG, F, b)
371+ let bJ = fraction(bG, I, b)
372+ invoke(aD, "incUnclaimed", [z, bj, bI, bJ], nil)
368373 }
369- if ((bG == bG))
374+ if ((bH == bH))
370375 then {
371- let bJ = [IntegerEntry(ak(bt), (valueOrElse(bm, 0) + bF))]
372- let bC = if (((bv - 1) > bt))
373- then [IntegerEntry(af(), (bt + 1))]
374- else [IntegerEntry(aj(), (bs + 1)), IntegerEntry(af(), 0), DeleteEntry(ai())]
375- $Tuple2((bJ ++ bC), true)
376+ let bK = [IntegerEntry(al(bu), (valueOrElse(bn, 0) + bG))]
377+ let bD = if (((bw - 1) > bu))
378+ then [IntegerEntry(ag(), (bu + 1))]
379+ else [IntegerEntry(ak(), (bt + 1)), IntegerEntry(ag(), 0), DeleteEntry(aj())]
380+ $Tuple2((bK ++ bD), true)
376381 }
377382 else throw("Strict value is not equal to itself.")
378383 }
383388
384389
385390
386-@Callable(aH)
387-func finalizeWrapper (bK) = {
388- let bL = {
389- let bM = invoke(this, "finalizeHelper", nil, nil)
390- if ($isInstanceOf(bM, "Boolean"))
391- then bM
391+@Callable(aI)
392+func finalizeWrapper (bL) = {
393+ let bM = {
394+ let bN = invoke(this, "finalizeHelper", nil, nil)
395+ if ($isInstanceOf(bN, "Boolean"))
396+ then bN
392397 else throw(($getType(invoke(this, "finalizeHelper", nil, nil)) + " couldn't be cast to Boolean"))
393398 }
394- if ((bL == bL))
395- then if (!(bL))
396- then if ((bK == p))
399+ if ((bM == bM))
400+ then if (!(bM))
401+ then if ((bL == q))
397402 then throw("Nothing to process")
398403 else $Tuple2(nil, unit)
399- else if ((bK > 0))
400- then $Tuple2(nil, invoke(this, "finalizeWrapper", [(bK - 1)], nil))
404+ else if ((bL > 0))
405+ then $Tuple2(nil, invoke(this, "finalizeWrapper", [(bL - 1)], nil))
401406 else $Tuple2(nil, unit)
402407 else throw("Strict value is not equal to itself.")
403408 }
404409
405410
406411
407-@Callable(aH)
408-func processPendingPeriodsAndUsers () = $Tuple2(nil, invoke(this, "finalizeWrapper", [p], nil))
412+@Callable(aI)
413+func processPendingPeriodsAndUsers () = $Tuple2(nil, invoke(this, "finalizeWrapper", [q], nil))
409414
410415
411416
412-@Callable(aH)
417+@Callable(aI)
413418 func deposit () = {
414- let aa = U()
415- if ((aH.caller != Address(fromBase58String(aa[Q]))))
419+ let ab = V()
420+ if ((aI.caller != Address(fromBase58String(ab[R]))))
416421 then throw("Wrong caller address")
417422 else {
418- let bN = value(value(aH.payments[0]).assetId)
419- if ((bN != fromBase58String(aa[P])))
423+ let bO = value(value(aI.payments[0]).assetId)
424+ if ((bO != fromBase58String(ab[Q])))
420425 then throw("Wrong payment asset")
421426 else {
422- let ap = bj()
423- let bO = (height - i(ab()))
424- let bP = valueOrErrorMessage(getInteger(O, ad()), (("mandatory emission_contract." + ad()) + " is not defined"))
425- let bQ = valueOrErrorMessage(getInteger(s, ae()), (("mandatory factory_contract." + ae()) + " is not defined"))
426- let bR = fraction((bO * bQ), bP, c)
427- let bS = invoke(O, "emit", [bR], nil)
428- if ((bS == bS))
427+ let aq = bk()
428+ let bP = (height - i(ac()))
429+ let bQ = valueOrErrorMessage(getInteger(P, ae()), (("mandatory emission_contract." + ae()) + " is not defined"))
430+ let bR = valueOrErrorMessage(getInteger(t, af()), (("mandatory factory_contract." + af()) + " is not defined"))
431+ let bS = fraction((bP * bR), bQ, c)
432+ let bT = invoke(P, "emit", [bS], nil)
433+ if ((bT == bT))
429434 then {
430- let bT = value(aH.payments[0]).amount
431- let bU = at(ap, bT, bR)
432-[IntegerEntry(ag(), ap), IntegerEntry(ao(ap), height), IntegerEntry(aq(ap), bR), IntegerEntry(ab(), height), IntegerEntry(ar(ap), bT), IntegerEntry(ah(), (ap + 1)), StringEntry(as(), bU), StringEntry(aw(ap), bU)]
435+ let bU = value(aI.payments[0]).amount
436+ let bV = au(aq, bU, bS)
437+[IntegerEntry(ah(), aq), IntegerEntry(ap(aq), height), IntegerEntry(ar(aq), bS), IntegerEntry(ac(), height), IntegerEntry(as(aq), bU), IntegerEntry(ai(), (aq + 1)), StringEntry(at(), bV), StringEntry(ax(aq), bV)]
433438 }
434439 else throw("Strict value is not equal to itself.")
435440 }
438443
439444
440445
441-@Callable(aH)
446+@Callable(aI)
442447 func claimReward () = {
443- let aa = U()
444- let bV = toString(aH.caller)
445- let bW = bk(bV)
446- let aG = bW._1
447- let bX = bW._2
448- let bY = if ((aG > 0))
448+ let ab = V()
449+ let bW = toString(aI.caller)
450+ let bX = bl(bW)
451+ let aH = bX._1
452+ let bY = bX._2
453+ let bZ = if ((aH > 0))
449454 then true
450455 else throw("Nothing to claim")
451- if ((bY == bY))
456+ if ((bZ == bZ))
452457 then {
453- let bZ = 0
454- let ca = {
455- let bM = invoke(aC, "claim", [y], nil)
456- if ($isInstanceOf(bM, "Int"))
457- then bM
458- else throw(($getType(invoke(aC, "claim", [y], nil)) + " couldn't be cast to Int"))
458+ let ca = 0
459+ let cb = {
460+ let bN = invoke(aD, "claim", [z], nil)
461+ if ($isInstanceOf(bN, "Int"))
462+ then bN
463+ else throw(($getType(invoke(aD, "claim", [z], nil)) + " couldn't be cast to Int"))
459464 }
460- let cb = (aG + ca)
461- $Tuple2(([ScriptTransfer(aH.caller, cb, fromBase58String(aa[P])), aD("claim", bV, aG, aH)] ++ bX), [cb, bZ])
465+ let cc = (aH + cb)
466+ $Tuple2(([ScriptTransfer(aI.caller, cc, fromBase58String(ab[Q])), aE("claim", bW, aH, aI)] ++ bY), [cc, ca])
462467 }
463468 else throw("Strict value is not equal to itself.")
464469 }
465470
466471
467472
468-@Callable(aH)
469-func claimRewardREADONLY (bV) = {
470- let cc = bk(bV)
471- let aG = cc._1
472- let bX = cc._2
473- let cd = valueOrElse(getInteger(aC, K(y, bV)), 0)
474- let cb = (aG + cd)
475- $Tuple2(nil, cb)
473+@Callable(aI)
474+func claimRewardREADONLY (bW) = {
475+ let cd = bl(bW)
476+ let aH = cd._1
477+ let bY = cd._2
478+ let ce = valueOrElse(getInteger(aD, L(z, bW)), 0)
479+ let cc = (aH + ce)
480+ $Tuple2(nil, cc)
476481 }
477482
478483
479484
480-@Callable(aH)
481-func latestFinalizedPeriodREADONLY (bV) = $Tuple2(nil, valueOrElse(getInteger(this, ag()), -1))
485+@Callable(aI)
486+func latestFinalizedPeriodREADONLY (bW) = $Tuple2(nil, valueOrElse(getInteger(this, ah()), -1))
482487
483488
484489
485-@Callable(aH)
486-func latestFinalizedPeriodInfoREADONLY (bV) = $Tuple2(nil, j(as()))
490+@Callable(aI)
491+func latestFinalizedPeriodInfoREADONLY (bW) = $Tuple2(nil, j(at()))
487492
488493
489494
490-@Callable(aH)
491-func calcGwxParamsREADONLY (ce,cf,cg) = {
492- let ch = (cf + cg)
493- let ci = -(fraction(ce, b, cg))
494- let cj = (fraction(ce, b, cg) * ch)
495- $Tuple2(nil, [ci, cj, bj()])
495+@Callable(aI)
496+func calcGwxParamsREADONLY (cf,cg,ch) = {
497+ let ci = (cg + ch)
498+ let cj = -(fraction(cf, b, ch))
499+ let ck = (fraction(cf, b, ch) * ci)
500+ $Tuple2(nil, [cj, ck, bk()])
496501 }
497502
498503
499504
500-@Callable(aH)
501-func calcGwxAmountStartREADONLY (ck,cl,cm) = {
502- let cn = fraction(cl, c, cm)
503- let bo = fraction(ck, cn, c)
504- $Tuple2(nil, [bo])
505+@Callable(aI)
506+func calcGwxAmountStartREADONLY (cl,cm,cn) = {
507+ let co = fraction(cm, c, cn)
508+ let bp = fraction(cl, co, c)
509+ $Tuple2(nil, [bp])
505510 }
506511
507512
508513
509-@Callable(aH)
510-func onEmissionForGwxStart () = if ((aH.caller != s))
514+@Callable(aI)
515+func onEmissionForGwxStart () = if ((aI.caller != t))
511516 then throw("permissions denied")
512- else [IntegerEntry(ab(), height)]
517+ else [IntegerEntry(ac(), height)]
513518
514519
515520
516-@Callable(aH)
517-func latestPeriodEmissionRewardsREADONLY (bV) = {
518- let ap = bj()
519- $Tuple2(nil, [g(aq(ap))])
521+@Callable(aI)
522+func latestPeriodEmissionRewardsREADONLY (bW) = {
523+ let aq = bk()
524+ $Tuple2(nil, [g(ar(aq))])
520525 }
521526
522527
523528
524-@Callable(aH)
525-func calcD (co,cp,cq,cr,cs) = {
526- let ct = toBigInt(2)
527- let cu = parseBigIntValue(cr)
529+@Callable(aI)
530+func calcD (cp,cq,cr,cs,ct) = {
531+ let cu = toBigInt(2)
528532 let cv = parseBigIntValue(cs)
529- let cw = parseBigIntValue(co)
533+ let cw = parseBigIntValue(ct)
530534 let cx = parseBigIntValue(cp)
531- let cy = (parseBigIntValue(cq) * cu)
532- let aO = (cw + cx)
533- if ((aO == d))
535+ let cy = parseBigIntValue(cq)
536+ let cz = (parseBigIntValue(cr) * cv)
537+ let aP = (cx + cy)
538+ if ((aP == d))
534539 then $Tuple2(nil, toString(d))
535540 else {
536- let cz = (cy * ct)
537- let cA = [1, 2, 3, 4, 5, 6, 7]
538- func cB (cC,cD) = {
539- let cE = cC
540- let cF = cE._1
541- let cG = cE._2
542- let cH = (((cF * cF) * cF) / (((cw * cx) * ct) * ct))
543- let cI = (((((cz * aO) / cu) + (cH * ct)) * cF) / ((((cz - cu) * cF) / cu) + ((ct + toBigInt(1)) * cH)))
544- $Tuple2(cI, cF)
541+ let cA = (cz * cu)
542+ let cB = [1, 2, 3, 4, 5, 6, 7]
543+ func cC (cD,cE) = {
544+ let cF = cD
545+ let cG = cF._1
546+ let cH = cF._2
547+ let cI = (((cG * cG) * cG) / (((cx * cy) * cu) * cu))
548+ let cJ = (((((cA * aP) / cv) + (cI * cu)) * cG) / ((((cA - cv) * cG) / cv) + ((cu + toBigInt(1)) * cI)))
549+ $Tuple2(cJ, cG)
545550 }
546551
547- let cJ = {
548- let cK = cA
549- let cL = size(cK)
550- let cM = $Tuple2(aO, unit)
551- func cN (cO,cP) = if ((cP >= cL))
552- then cO
553- else cB(cO, cK[cP])
552+ let cK = {
553+ let cL = cB
554+ let cM = size(cL)
555+ let cN = $Tuple2(aP, unit)
556+ func cO (cP,cQ) = if ((cQ >= cM))
557+ then cP
558+ else cC(cP, cL[cQ])
554559
555- func cQ (cO,cP) = if ((cP >= cL))
556- then cO
560+ func cR (cP,cQ) = if ((cQ >= cM))
561+ then cP
557562 else throw("List size exceeds 7")
558563
559- cQ(cN(cN(cN(cN(cN(cN(cN(cM, 0), 1), 2), 3), 4), 5), 6), 7)
564+ cR(cO(cO(cO(cO(cO(cO(cO(cN, 0), 1), 2), 3), 4), 5), 6), 7)
560565 }
561- let cI = cJ._1
562- let cG = cJ._2
563- let cR = l((cI - value(cG)))
564- if ((cv >= cR))
565- then $Tuple2(nil, toString(cI))
566- else throw(("D calculation error, dDiff = " + toString(cR)))
566+ let cJ = cK._1
567+ let cH = cK._2
568+ let cS = n((cJ - value(cH)))
569+ if ((cw >= cS))
570+ then $Tuple2(nil, toString(cJ))
571+ else throw(("D calculation error, dDiff = " + toString(cS)))
567572 }
568573 }
569574
570575
571576
572-@Callable(aH)
573-func setManager (cS) = {
574- let cT = aQ(aH)
575- if ((cT == cT))
577+@Callable(aI)
578+func calcPutXOnly (cT,cU,cV,cW,cX,cY,cZ,da) = {
579+ let cu = toBigInt(2)
580+ let cv = parseBigIntValue(cY)
581+ let cw = parseBigIntValue(cZ)
582+ let db = parseBigIntValue(cU)
583+ let dc = parseBigIntValue(cV)
584+ let cG = if ((cW == ""))
585+ then parseBigIntValue({
586+ let bN = invoke(this, "calcD", [cU, cV, cX, cY, da], nil)
587+ if ($isInstanceOf(bN, "String"))
588+ then bN
589+ else throw(($getType(invoke(this, "calcD", [cU, cV, cX, cY, da], nil)) + " couldn't be cast to String"))
590+ })
591+ else parseBigIntValue(cW)
592+ let cz = (parseBigIntValue(cX) * cv)
593+ let dd = parseBigIntValue(cT)
594+ let cA = (cz * cu)
595+ let cB = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
596+ func cC (cD,cE) = {
597+ let de = cD
598+ let df = de._1
599+ let dg = de._2
600+ let dh = ((db + dd) - df)
601+ let di = (dc - ((df * dc) / db))
602+ let cI = (((cG * cG) * cG) / (((dh * di) * cu) * cu))
603+ let dj = (df + ((((((-(cG) * cA) / cv) + cG) + ((cA * (dh + di)) / cv)) - cI) / ((((-(cA) * (toBigInt(-1) - (dc / db))) / cv) + (cI / dh)) + ((dc * cI) / (db * di)))))
604+ $Tuple2(dj, df)
605+ }
606+
607+ let dk = {
608+ let cL = cB
609+ let cM = size(cL)
610+ let cN = $Tuple2(d, unit)
611+ func cO (cP,cQ) = if ((cQ >= cM))
612+ then cP
613+ else cC(cP, cL[cQ])
614+
615+ func cR (cP,cQ) = if ((cQ >= cM))
616+ then cP
617+ else throw("List size exceeds 10")
618+
619+ cR(cO(cO(cO(cO(cO(cO(cO(cO(cO(cO(cN, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
620+ }
621+ let dj = dk._1
622+ let dg = dk._2
623+ let dl = n((dj - value(dg)))
624+ if ((cw >= dl))
625+ then $Tuple2(nil, $Tuple2(toInt(dj), toInt(fraction(dj, dc, db))))
626+ else throw(((((("X calculation error, xDiff = " + toString(dl)) + ", xNext = ") + toString(dj)) + ", xPrev = ") + toString(value(dg))))
627+ }
628+
629+
630+
631+@Callable(aI)
632+func calcSwapXToY (cT,cU,cV,cW,cX,cY,cZ,da) = {
633+ let cu = toBigInt(2)
634+ let cv = parseBigIntValue(cY)
635+ let cw = parseBigIntValue(cZ)
636+ let db = parseBigIntValue(cU)
637+ let dc = parseBigIntValue(cV)
638+ let df = parseBigIntValue(cT)
639+ let cG = if ((cW == ""))
640+ then parseBigIntValue({
641+ let bN = invoke(this, "calcD", [cU, cV, cX, cY, da], nil)
642+ if ($isInstanceOf(bN, "String"))
643+ then bN
644+ else throw(($getType(invoke(this, "calcD", [cU, cV, cX, cY, da], nil)) + " couldn't be cast to String"))
645+ })
646+ else parseBigIntValue(cW)
647+ let cz = (parseBigIntValue(cX) * cv)
648+ let dd = parseBigIntValue(cT)
649+ let cA = (cz * cu)
650+ let cB = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
651+ func cC (cD,cE) = {
652+ let dm = cD
653+ let dn = dm._1
654+ let do = dm._2
655+ let dh = (db + df)
656+ let di = (dc - dn)
657+ let cI = (((cG * cG) * cG) / (((dh * di) * cu) * cu))
658+ let dp = (dn + ((((((-(cG) * cA) / cv) + cG) + ((cA * (dh + di)) / cv)) - cI) / ((cA / cv) + (cI / di))))
659+ $Tuple2(dp, dn)
660+ }
661+
662+ let dq = {
663+ let cL = cB
664+ let cM = size(cL)
665+ let cN = $Tuple2(d, unit)
666+ func cO (cP,cQ) = if ((cQ >= cM))
667+ then cP
668+ else cC(cP, cL[cQ])
669+
670+ func cR (cP,cQ) = if ((cQ >= cM))
671+ then cP
672+ else throw("List size exceeds 10")
673+
674+ cR(cO(cO(cO(cO(cO(cO(cO(cO(cO(cO(cN, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
675+ }
676+ let dp = dq._1
677+ let do = dq._2
678+ let dl = n((dp - value(do)))
679+ if ((cw >= dl))
680+ then $Tuple2(nil, toInt(dp))
681+ else throw(((((("Y calculation error, yDiff = " + toString(dl)) + ", yNext = ") + toString(dp)) + ", yPrev = ") + toString(value(do))))
682+ }
683+
684+
685+
686+@Callable(aI)
687+func setManager (dr) = {
688+ let ds = aR(aI)
689+ if ((ds == ds))
576690 then {
577- let cU = fromBase58String(cS)
578- if ((cU == cU))
579- then [StringEntry(aL(), cS)]
691+ let dt = fromBase58String(dr)
692+ if ((dt == dt))
693+ then [StringEntry(aM(), dr)]
580694 else throw("Strict value is not equal to itself.")
581695 }
582696 else throw("Strict value is not equal to itself.")
584698
585699
586700
587-@Callable(aH)
701+@Callable(aI)
588702 func confirmManager () = {
589- let cV = aP()
590- let cW = if (isDefined(cV))
703+ let du = aQ()
704+ let dv = if (isDefined(du))
591705 then true
592706 else throw("No pending manager")
593- if ((cW == cW))
707+ if ((dv == dv))
594708 then {
595- let cX = if ((aH.callerPublicKey == value(cV)))
709+ let dw = if ((aI.callerPublicKey == value(du)))
596710 then true
597711 else throw("You are not pending manager")
598- if ((cX == cX))
599- then [StringEntry(aK(), toBase58String(value(cV))), DeleteEntry(aL())]
712+ if ((dw == dw))
713+ then [StringEntry(aL(), toBase58String(value(du))), DeleteEntry(aM())]
600714 else throw("Strict value is not equal to itself.")
601715 }
602716 else throw("Strict value is not equal to itself.")
603717 }
604718
605719
606-@Verifier(cY)
607-func cZ () = {
608- let da = {
609- let aN = aM()
610- if ($isInstanceOf(aN, "ByteVector"))
720+@Verifier(dx)
721+func dy () = {
722+ let dz = {
723+ let aO = aN()
724+ if ($isInstanceOf(aO, "ByteVector"))
611725 then {
612- let aS = aN
613- aS
726+ let aT = aO
727+ aT
614728 }
615- else if ($isInstanceOf(aN, "Unit"))
616- then cY.senderPublicKey
729+ else if ($isInstanceOf(aO, "Unit"))
730+ then dx.senderPublicKey
617731 else throw("Match error")
618732 }
619- sigVerify(cY.bodyBytes, cY.proofs[0], da)
733+ sigVerify(dx.bodyBytes, dx.proofs[0], dz)
620734 }
621735
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 1000
77
88 let c = 100000000
99
1010 let d = toBigInt(0)
1111
1212 let e = 0
1313
1414 let f = 1
1515
1616 func g (h) = valueOrElse(getInteger(this, h), 0)
1717
1818
1919 func i (h) = valueOrErrorMessage(getInteger(this, h), (("mandatory this." + h) + " is not defined"))
2020
2121
2222 func j (h) = valueOrElse(getString(this, h), "")
2323
2424
2525 func k (h) = valueOrErrorMessage(getString(this, h), (("mandatory this." + h) + " is not defined"))
2626
2727
28-func l (m) = if ((d > m))
28+func l (m) = if ((0 > m))
2929 then -(m)
3030 else m
3131
3232
33-let n = "%s__maxDepth"
34-
35-let o = 30
36-
37-let p = valueOrElse(getInteger(this, n), o)
38-
39-func q () = "%s%s__config__factoryAddress"
33+func n (m) = if ((d > m))
34+ then -(m)
35+ else m
4036
4137
42-let r = k(q())
38+let o = "%s__maxDepth"
4339
44-let s = addressFromStringValue(r)
40+let p = 30
4541
46-func t () = "%s%s__config__emissionAddress"
42+let q = valueOrElse(getInteger(this, o), p)
43+
44+func r () = "%s%s__config__factoryAddress"
4745
4846
49-func u (v) = makeString(["%s%s%s", "mapping", "num2user", toString(v)], a)
47+let s = k(r())
48+
49+let t = addressFromStringValue(s)
50+
51+func u () = "%s%s__config__emissionAddress"
5052
5153
52-let w = makeString(["%s%s", "referral", "programName"], a)
53-
54-let x = "wxlock"
55-
56-let y = valueOrElse(getString(this, w), x)
57-
58-let z = makeString(["%s%s", "referral", "minGWxAmount"], a)
59-
60-let A = (500 * c)
61-
62-let B = valueOrElse(getInteger(this, z), A)
63-
64-let C = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
65-
66-let D = 50
67-
68-let E = valueOrElse(getInteger(this, C), D)
69-
70-let F = makeString(["%s%s", "referral", "referralRewardPermille"], a)
71-
72-let G = 50
73-
74-let H = valueOrElse(getInteger(this, F), G)
75-
76-func I (J) = makeString(["%s%s%s", "referrer", y, J], a)
54+func v (w) = makeString(["%s%s%s", "mapping", "num2user", toString(w)], a)
7755
7856
79-func K (L,M) = makeString(["%s%s%s%s", "unclaimedReferral", L, M], a)
57+let x = makeString(["%s%s", "referral", "programName"], a)
58+
59+let y = "wxlock"
60+
61+let z = valueOrElse(getString(this, x), y)
62+
63+let A = makeString(["%s%s", "referral", "minGWxAmount"], a)
64+
65+let B = (500 * c)
66+
67+let C = valueOrElse(getInteger(this, A), B)
68+
69+let D = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
70+
71+let E = 50
72+
73+let F = valueOrElse(getInteger(this, D), E)
74+
75+let G = makeString(["%s%s", "referral", "referralRewardPermille"], a)
76+
77+let H = 50
78+
79+let I = valueOrElse(getInteger(this, G), H)
80+
81+func J (K) = makeString(["%s%s%s", "referrer", z, K], a)
8082
8183
82-let N = k(t())
83-
84-let O = addressFromStringValue(N)
85-
86-let P = 1
87-
88-let Q = 2
89-
90-let R = 3
91-
92-let S = 4
93-
94-func T () = "%s__config"
84+func L (M,N) = makeString(["%s%s%s%s", "unclaimedReferral", M, N], a)
9585
9686
97-func U () = split(k(T()), a)
87+let O = k(u())
88+
89+let P = addressFromStringValue(O)
90+
91+let Q = 1
92+
93+let R = 2
94+
95+let S = 3
96+
97+let T = 4
98+
99+func U () = "%s__config"
98100
99101
100-func V (W,X,Y,p) = makeString(["%s%s%s%d", W, X, Y, toString(p)], a)
102+func V () = split(k(U()), a)
101103
102104
103-func Z () = {
104- let aa = U()
105- valueOrErrorMessage(addressFromString(aa[R]), "boosting contract address is not defined")
105+func W (X,Y,Z,q) = makeString(["%s%s%s%d", X, Y, Z, toString(q)], a)
106+
107+
108+func aa () = {
109+ let ab = V()
110+ valueOrErrorMessage(addressFromString(ab[S]), "boosting contract address is not defined")
106111 }
107112
108113
109-func ab () = "%s%s__gwxRewardEmissionPart__startHeight"
114+func ac () = "%s%s__gwxRewardEmissionPart__startHeight"
110115
111116
112-func ac () = "%s__nextUserNum"
117+func ad () = "%s__nextUserNum"
113118
114119
115-func ad () = "%s%s__ratePerBlock__current"
120+func ae () = "%s%s__ratePerBlock__current"
116121
117122
118-func ae () = "%s%s__poolWeight__GWXvirtualPOOL"
123+func af () = "%s%s__poolWeight__GWXvirtualPOOL"
119124
120125
121-func af () = "%s__nextProcessedUser"
126+func ag () = "%s__nextProcessedUser"
122127
123128
124-func ag () = "%s__latestPeriod"
129+func ah () = "%s__latestPeriod"
125130
126131
127-func ah () = "%s__nextPeriod"
132+func ai () = "%s__nextPeriod"
128133
129134
130-func ai () = "%s__processingStage"
135+func aj () = "%s__processingStage"
131136
132137
133-func aj () = "%s__nextProcessedPeriod"
138+func ak () = "%s__nextProcessedPeriod"
134139
135140
136-func ak (al) = makeString(["%s%d", "userUnclaimed", toString(al)], a)
141+func al (am) = makeString(["%s%d", "userUnclaimed", toString(am)], a)
137142
138143
139-func am (al) = makeString(["%s%d__nextClaimedPeriod", toString(al)], a)
144+func an (am) = makeString(["%s%d__nextClaimedPeriod", toString(am)], a)
140145
141146
142-func an (al) = makeString(["%s%d__lastProcessedPeriod", toString(al)], a)
147+func ao (am) = makeString(["%s%d__lastProcessedPeriod", toString(am)], a)
143148
144149
145-func ao (ap) = makeString(["%s%d__startHeightForPeriod", toString(ap)], a)
150+func ap (aq) = makeString(["%s%d__startHeightForPeriod", toString(aq)], a)
146151
147152
148-func aq (ap) = makeString(["%s%d__auxEmissionReward", toString(ap)], a)
153+func ar (aq) = makeString(["%s%d__auxEmissionReward", toString(aq)], a)
149154
150155
151-func ar (ap) = makeString(["%s%d__totalAmountForPeriod", toString(ap)], a)
156+func as (aq) = makeString(["%s%d__totalAmountForPeriod", toString(aq)], a)
152157
153158
154-func as () = "%s__lastPayoutInfo"
159+func at () = "%s__lastPayoutInfo"
155160
156161
157-func at (ap,au,av) = makeString(["%d%d%d", toString(ap), toString(au), toString(av)], a)
162+func au (aq,av,aw) = makeString(["%d%d%d", toString(aq), toString(av), toString(aw)], a)
158163
159164
160-func aw (ap) = makeString(["%s%s%d__payouts__history", toString(ap)], a)
165+func ax (aq) = makeString(["%s%s%d__payouts__history", toString(aq)], a)
161166
162167
163-func ax (ap) = makeString(["%s%d__totalWeightForPeriod", toString(ap)], a)
168+func ay (aq) = makeString(["%s%d__totalWeightForPeriod", toString(aq)], a)
164169
165170
166-func ay (ap,al) = makeString(["%s%d%s%d__paramByPeriod", toString(al), "k", toString(ap)], a)
171+func az (aq,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "k", toString(aq)], a)
167172
168173
169-func az (ap,al) = makeString(["%s%d%s%d__paramByPeriod", toString(al), "b", toString(ap)], a)
174+func aA (aq,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "b", toString(aq)], a)
170175
171176
172-func aA (ap,al) = makeString(["%s%d%s%d__paramByPeriod", toString(al), "weight", toString(ap)], a)
177+func aB (aq,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "weight", toString(aq)], a)
173178
174179
175-func aB () = makeString(["%s%s", "config", "referralsContractAddress"], a)
180+func aC () = makeString(["%s%s", "config", "referralsContractAddress"], a)
176181
177182
178-let aC = addressFromStringValue(k(aB()))
183+let aD = addressFromStringValue(k(aC()))
179184
180-func aD (aE,aF,aG,aH) = {
181- let aI = makeString(["%s%s%s%s__history", aE, aF, toBase58String(aH.transactionId)], a)
182- let aJ = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aG)], a)
183- StringEntry(aI, aJ)
185+func aE (aF,aG,aH,aI) = {
186+ let aJ = makeString(["%s%s%s%s__history", aF, aG, toBase58String(aI.transactionId)], a)
187+ let aK = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aH)], a)
188+ StringEntry(aJ, aK)
184189 }
185190
186191
187-func aK () = "%s__managerPublicKey"
192+func aL () = "%s__managerPublicKey"
188193
189194
190-func aL () = "%s__pendingManagerPublicKey"
195+func aM () = "%s__pendingManagerPublicKey"
191196
192197
193-func aM () = {
194- let aN = getString(aK())
195- if ($isInstanceOf(aN, "String"))
198+func aN () = {
199+ let aO = getString(aL())
200+ if ($isInstanceOf(aO, "String"))
196201 then {
197- let aO = aN
198- fromBase58String(aO)
202+ let aP = aO
203+ fromBase58String(aP)
199204 }
200- else if ($isInstanceOf(aN, "Unit"))
205+ else if ($isInstanceOf(aO, "Unit"))
201206 then unit
202207 else throw("Match error")
203208 }
204209
205210
206-func aP () = {
207- let aN = getString(aL())
208- if ($isInstanceOf(aN, "String"))
211+func aQ () = {
212+ let aO = getString(aM())
213+ if ($isInstanceOf(aO, "String"))
209214 then {
210- let aO = aN
211- fromBase58String(aO)
215+ let aP = aO
216+ fromBase58String(aP)
212217 }
213- else if ($isInstanceOf(aN, "Unit"))
218+ else if ($isInstanceOf(aO, "Unit"))
214219 then unit
215220 else throw("Match error")
216221 }
217222
218223
219-func aQ (aH) = {
220- let aR = throw("Permission denied")
221- let aN = aM()
222- if ($isInstanceOf(aN, "ByteVector"))
224+func aR (aI) = {
225+ let aS = throw("Permission denied")
226+ let aO = aN()
227+ if ($isInstanceOf(aO, "ByteVector"))
223228 then {
224- let aS = aN
225- if ((aH.callerPublicKey == aS))
229+ let aT = aO
230+ if ((aI.callerPublicKey == aT))
226231 then true
227- else aR
232+ else aS
228233 }
229- else if ($isInstanceOf(aN, "Unit"))
230- then if ((aH.caller == this))
234+ else if ($isInstanceOf(aO, "Unit"))
235+ then if ((aI.caller == this))
231236 then true
232- else aR
237+ else aS
233238 else throw("Match error")
234239 }
235240
236241
237-func aT (aU,aV,ap,al) = {
238- let aW = an(al)
239- let aX = ay(ap, al)
240- let aY = getInteger(aU, aX)
241- let aZ = aA(ap, al)
242- if (isDefined(aY))
242+func aU (aV,aW,aq,am) = {
243+ let aX = ao(am)
244+ let aY = az(aq, am)
245+ let aZ = getInteger(aV, aY)
246+ let ba = aB(aq, am)
247+ if (isDefined(aZ))
243248 then {
244- let ba = value(aY)
245- let bb = value(getInteger(aU, az(ap, al)))
246- let bc = ((ba * aV) + bb)
247- if ((bc > 0))
248- then $Tuple2((bc / b), [IntegerEntry(aW, ap), IntegerEntry(aZ, bc)])
249+ let bb = value(aZ)
250+ let bc = value(getInteger(aV, aA(aq, am)))
251+ let bd = ((bb * aW) + bc)
252+ if ((bd > 0))
253+ then $Tuple2((bd / b), [IntegerEntry(aX, aq), IntegerEntry(ba, bd)])
249254 else $Tuple2(0, nil)
250255 }
251256 else {
252- let bd = getInteger(this, aW)
253- if (if (isDefined(bd))
254- then (ap >= value(bd))
257+ let be = getInteger(this, aX)
258+ if (if (isDefined(be))
259+ then (aq >= value(be))
255260 else false)
256261 then {
257- let be = value(bd)
258- let ba = value(getInteger(aU, ay(be, al)))
259- let bb = value(getInteger(aU, az(be, al)))
260- let bc = ((ba * aV) + bb)
261- if ((bc > 0))
262- then $Tuple2((bc / b), [IntegerEntry(aZ, bc)])
262+ let bf = value(be)
263+ let bb = value(getInteger(aV, az(bf, am)))
264+ let bc = value(getInteger(aV, aA(bf, am)))
265+ let bd = ((bb * aW) + bc)
266+ if ((bd > 0))
267+ then $Tuple2((bd / b), [IntegerEntry(ba, bd)])
263268 else $Tuple2(0, nil)
264269 }
265270 else $Tuple2(0, nil)
266271 }
267272 }
268273
269274
270-func bf (aU,aV,ap,al) = {
271- let aZ = aA(ap, al)
272- let bg = getInteger(aZ)
273- let aN = bg
274- if ($isInstanceOf(aN, "Unit"))
275+func bg (aV,aW,aq,am) = {
276+ let ba = aB(aq, am)
277+ let bh = getInteger(ba)
278+ let aO = bh
279+ if ($isInstanceOf(aO, "Unit"))
275280 then 0
276- else if ($isInstanceOf(aN, "Int"))
281+ else if ($isInstanceOf(aO, "Int"))
277282 then {
278- let bc = aN
279- (bc / b)
283+ let bd = aO
284+ (bd / b)
280285 }
281286 else throw("Match error")
282287 }
283288
284289
285-func bh (Y,bi) = {
286- let h = makeString(["%s%s%s", "mapping", "user2num", bi], a)
287- parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(Y)), h), ((("User address " + bi) + " is not found in boosting contract data, key=") + h)))
290+func bi (Z,bj) = {
291+ let h = makeString(["%s%s%s", "mapping", "user2num", bj], a)
292+ parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(Z)), h), ((("User address " + bj) + " is not found in boosting contract data, key=") + h)))
288293 }
289294
290295
291-func bj () = g(ah())
296+func bk () = g(ai())
292297
293298
294-func bk (bi) = {
295- let aa = U()
296- let bl = bh(aa[R], bi)
297- let bm = getInteger(ak(bl))
298- let aN = bm
299- if ($isInstanceOf(aN, "Unit"))
299+func bl (bj) = {
300+ let ab = V()
301+ let bm = bi(ab[S], bj)
302+ let bn = getInteger(al(bm))
303+ let aO = bn
304+ if ($isInstanceOf(aO, "Unit"))
300305 then $Tuple2(0, nil)
301- else if ($isInstanceOf(aN, "Int"))
306+ else if ($isInstanceOf(aO, "Int"))
302307 then {
303- let bn = aN
304- $Tuple2(bn, [IntegerEntry(ak(bl), 0)])
308+ let bo = aO
309+ $Tuple2(bo, [IntegerEntry(al(bm), 0)])
305310 }
306311 else throw("Match error")
307312 }
308313
309314
310-@Callable(aH)
311-func updateReferralActivity (bi,bo) = {
312- let bp = getString(aC, I(bi))
313- let bq = if ((bp == unit))
315+@Callable(aI)
316+func updateReferralActivity (bj,bp) = {
317+ let bq = getString(aD, J(bj))
318+ let br = if ((bq == unit))
314319 then unit
315- else invoke(aC, "updateReferralActivity", [y, bi, (bo >= B)], nil)
316- if ((bq == bq))
320+ else invoke(aD, "updateReferralActivity", [z, bj, (bp >= C)], nil)
321+ if ((br == br))
317322 then $Tuple2(nil, unit)
318323 else throw("Strict value is not equal to itself.")
319324 }
320325
321326
322327
323-@Callable(aH)
328+@Callable(aI)
324329 func finalizeHelper () = {
325- let br = valueOrElse(getInteger(ai()), e)
326- let bs = g(aj())
327- let bt = g(af())
330+ let bs = valueOrElse(getInteger(aj()), e)
331+ let bt = g(ak())
328332 let bu = g(ag())
329- let bv = valueOrElse(getInteger(Z(), ac()), 0)
330- let bw = ax(bs)
331- let bx = g(ax(bs))
332- let aV = g(ao(bs))
333- if ((bs > bu))
333+ let bv = g(ah())
334+ let bw = valueOrElse(getInteger(aa(), ad()), 0)
335+ let bx = ay(bt)
336+ let by = g(ay(bt))
337+ let aW = g(ap(bt))
338+ if ((bt > bv))
334339 then $Tuple2(nil, false)
335- else if ((br == e))
340+ else if ((bs == e))
336341 then {
337- let by = aT(Z(), aV, bs, bt)
338- let bz = by._1
339- let bA = by._2
340- let bB = (bx + bz)
341- let bC = if (((bv - 1) > bt))
342- then [IntegerEntry(af(), (bt + 1))]
343- else [IntegerEntry(ai(), f), IntegerEntry(af(), 0)]
344- $Tuple2((([IntegerEntry(bw, bB)] ++ bC) ++ bA), true)
342+ let bz = aU(aa(), aW, bt, bu)
343+ let bA = bz._1
344+ let bB = bz._2
345+ let bC = (by + bA)
346+ let bD = if (((bw - 1) > bu))
347+ then [IntegerEntry(ag(), (bu + 1))]
348+ else [IntegerEntry(aj(), f), IntegerEntry(ag(), 0)]
349+ $Tuple2((([IntegerEntry(bx, bC)] ++ bD) ++ bB), true)
345350 }
346- else if ((br == f))
351+ else if ((bs == f))
347352 then {
348- let bz = bf(Z(), aV, bs, bt)
349- let bD = fraction(g(ar(bs)), bz, bx)
350- let bE = fraction(g(aq(bs)), bz, bx)
351- let bF = (bE + bD)
352- let bm = getInteger(ak(bt))
353- let bi = getStringValue(Z(), u(bt))
354- let bp = getString(aC, I(bi))
355- let bq = if ((bp == unit))
353+ let bA = bg(aa(), aW, bt, bu)
354+ let bE = fraction(g(as(bt)), bA, by)
355+ let bF = fraction(g(ar(bt)), bA, by)
356+ let bG = (bF + bE)
357+ let bn = getInteger(al(bu))
358+ let bj = getStringValue(aa(), v(bu))
359+ let bq = getString(aD, J(bj))
360+ let br = if ((bq == unit))
356361 then unit
357- else invoke(aC, "updateReferralActivity", [y, bi, (bz >= B)], nil)
358- if ((bq == bq))
362+ else invoke(aD, "updateReferralActivity", [z, bj, (bA >= C)], nil)
363+ if ((br == br))
359364 then {
360- let bG = if (if ((bp == unit))
365+ let bH = if (if ((bq == unit))
361366 then true
362- else (B > bz))
367+ else (C > bA))
363368 then unit
364369 else {
365- let bH = fraction(bF, E, b)
366- let bI = fraction(bF, H, b)
367- invoke(aC, "incUnclaimed", [y, bi, bH, bI], nil)
370+ let bI = fraction(bG, F, b)
371+ let bJ = fraction(bG, I, b)
372+ invoke(aD, "incUnclaimed", [z, bj, bI, bJ], nil)
368373 }
369- if ((bG == bG))
374+ if ((bH == bH))
370375 then {
371- let bJ = [IntegerEntry(ak(bt), (valueOrElse(bm, 0) + bF))]
372- let bC = if (((bv - 1) > bt))
373- then [IntegerEntry(af(), (bt + 1))]
374- else [IntegerEntry(aj(), (bs + 1)), IntegerEntry(af(), 0), DeleteEntry(ai())]
375- $Tuple2((bJ ++ bC), true)
376+ let bK = [IntegerEntry(al(bu), (valueOrElse(bn, 0) + bG))]
377+ let bD = if (((bw - 1) > bu))
378+ then [IntegerEntry(ag(), (bu + 1))]
379+ else [IntegerEntry(ak(), (bt + 1)), IntegerEntry(ag(), 0), DeleteEntry(aj())]
380+ $Tuple2((bK ++ bD), true)
376381 }
377382 else throw("Strict value is not equal to itself.")
378383 }
379384 else throw("Strict value is not equal to itself.")
380385 }
381386 else throw("invalid processing stage")
382387 }
383388
384389
385390
386-@Callable(aH)
387-func finalizeWrapper (bK) = {
388- let bL = {
389- let bM = invoke(this, "finalizeHelper", nil, nil)
390- if ($isInstanceOf(bM, "Boolean"))
391- then bM
391+@Callable(aI)
392+func finalizeWrapper (bL) = {
393+ let bM = {
394+ let bN = invoke(this, "finalizeHelper", nil, nil)
395+ if ($isInstanceOf(bN, "Boolean"))
396+ then bN
392397 else throw(($getType(invoke(this, "finalizeHelper", nil, nil)) + " couldn't be cast to Boolean"))
393398 }
394- if ((bL == bL))
395- then if (!(bL))
396- then if ((bK == p))
399+ if ((bM == bM))
400+ then if (!(bM))
401+ then if ((bL == q))
397402 then throw("Nothing to process")
398403 else $Tuple2(nil, unit)
399- else if ((bK > 0))
400- then $Tuple2(nil, invoke(this, "finalizeWrapper", [(bK - 1)], nil))
404+ else if ((bL > 0))
405+ then $Tuple2(nil, invoke(this, "finalizeWrapper", [(bL - 1)], nil))
401406 else $Tuple2(nil, unit)
402407 else throw("Strict value is not equal to itself.")
403408 }
404409
405410
406411
407-@Callable(aH)
408-func processPendingPeriodsAndUsers () = $Tuple2(nil, invoke(this, "finalizeWrapper", [p], nil))
412+@Callable(aI)
413+func processPendingPeriodsAndUsers () = $Tuple2(nil, invoke(this, "finalizeWrapper", [q], nil))
409414
410415
411416
412-@Callable(aH)
417+@Callable(aI)
413418 func deposit () = {
414- let aa = U()
415- if ((aH.caller != Address(fromBase58String(aa[Q]))))
419+ let ab = V()
420+ if ((aI.caller != Address(fromBase58String(ab[R]))))
416421 then throw("Wrong caller address")
417422 else {
418- let bN = value(value(aH.payments[0]).assetId)
419- if ((bN != fromBase58String(aa[P])))
423+ let bO = value(value(aI.payments[0]).assetId)
424+ if ((bO != fromBase58String(ab[Q])))
420425 then throw("Wrong payment asset")
421426 else {
422- let ap = bj()
423- let bO = (height - i(ab()))
424- let bP = valueOrErrorMessage(getInteger(O, ad()), (("mandatory emission_contract." + ad()) + " is not defined"))
425- let bQ = valueOrErrorMessage(getInteger(s, ae()), (("mandatory factory_contract." + ae()) + " is not defined"))
426- let bR = fraction((bO * bQ), bP, c)
427- let bS = invoke(O, "emit", [bR], nil)
428- if ((bS == bS))
427+ let aq = bk()
428+ let bP = (height - i(ac()))
429+ let bQ = valueOrErrorMessage(getInteger(P, ae()), (("mandatory emission_contract." + ae()) + " is not defined"))
430+ let bR = valueOrErrorMessage(getInteger(t, af()), (("mandatory factory_contract." + af()) + " is not defined"))
431+ let bS = fraction((bP * bR), bQ, c)
432+ let bT = invoke(P, "emit", [bS], nil)
433+ if ((bT == bT))
429434 then {
430- let bT = value(aH.payments[0]).amount
431- let bU = at(ap, bT, bR)
432-[IntegerEntry(ag(), ap), IntegerEntry(ao(ap), height), IntegerEntry(aq(ap), bR), IntegerEntry(ab(), height), IntegerEntry(ar(ap), bT), IntegerEntry(ah(), (ap + 1)), StringEntry(as(), bU), StringEntry(aw(ap), bU)]
435+ let bU = value(aI.payments[0]).amount
436+ let bV = au(aq, bU, bS)
437+[IntegerEntry(ah(), aq), IntegerEntry(ap(aq), height), IntegerEntry(ar(aq), bS), IntegerEntry(ac(), height), IntegerEntry(as(aq), bU), IntegerEntry(ai(), (aq + 1)), StringEntry(at(), bV), StringEntry(ax(aq), bV)]
433438 }
434439 else throw("Strict value is not equal to itself.")
435440 }
436441 }
437442 }
438443
439444
440445
441-@Callable(aH)
446+@Callable(aI)
442447 func claimReward () = {
443- let aa = U()
444- let bV = toString(aH.caller)
445- let bW = bk(bV)
446- let aG = bW._1
447- let bX = bW._2
448- let bY = if ((aG > 0))
448+ let ab = V()
449+ let bW = toString(aI.caller)
450+ let bX = bl(bW)
451+ let aH = bX._1
452+ let bY = bX._2
453+ let bZ = if ((aH > 0))
449454 then true
450455 else throw("Nothing to claim")
451- if ((bY == bY))
456+ if ((bZ == bZ))
452457 then {
453- let bZ = 0
454- let ca = {
455- let bM = invoke(aC, "claim", [y], nil)
456- if ($isInstanceOf(bM, "Int"))
457- then bM
458- else throw(($getType(invoke(aC, "claim", [y], nil)) + " couldn't be cast to Int"))
458+ let ca = 0
459+ let cb = {
460+ let bN = invoke(aD, "claim", [z], nil)
461+ if ($isInstanceOf(bN, "Int"))
462+ then bN
463+ else throw(($getType(invoke(aD, "claim", [z], nil)) + " couldn't be cast to Int"))
459464 }
460- let cb = (aG + ca)
461- $Tuple2(([ScriptTransfer(aH.caller, cb, fromBase58String(aa[P])), aD("claim", bV, aG, aH)] ++ bX), [cb, bZ])
465+ let cc = (aH + cb)
466+ $Tuple2(([ScriptTransfer(aI.caller, cc, fromBase58String(ab[Q])), aE("claim", bW, aH, aI)] ++ bY), [cc, ca])
462467 }
463468 else throw("Strict value is not equal to itself.")
464469 }
465470
466471
467472
468-@Callable(aH)
469-func claimRewardREADONLY (bV) = {
470- let cc = bk(bV)
471- let aG = cc._1
472- let bX = cc._2
473- let cd = valueOrElse(getInteger(aC, K(y, bV)), 0)
474- let cb = (aG + cd)
475- $Tuple2(nil, cb)
473+@Callable(aI)
474+func claimRewardREADONLY (bW) = {
475+ let cd = bl(bW)
476+ let aH = cd._1
477+ let bY = cd._2
478+ let ce = valueOrElse(getInteger(aD, L(z, bW)), 0)
479+ let cc = (aH + ce)
480+ $Tuple2(nil, cc)
476481 }
477482
478483
479484
480-@Callable(aH)
481-func latestFinalizedPeriodREADONLY (bV) = $Tuple2(nil, valueOrElse(getInteger(this, ag()), -1))
485+@Callable(aI)
486+func latestFinalizedPeriodREADONLY (bW) = $Tuple2(nil, valueOrElse(getInteger(this, ah()), -1))
482487
483488
484489
485-@Callable(aH)
486-func latestFinalizedPeriodInfoREADONLY (bV) = $Tuple2(nil, j(as()))
490+@Callable(aI)
491+func latestFinalizedPeriodInfoREADONLY (bW) = $Tuple2(nil, j(at()))
487492
488493
489494
490-@Callable(aH)
491-func calcGwxParamsREADONLY (ce,cf,cg) = {
492- let ch = (cf + cg)
493- let ci = -(fraction(ce, b, cg))
494- let cj = (fraction(ce, b, cg) * ch)
495- $Tuple2(nil, [ci, cj, bj()])
495+@Callable(aI)
496+func calcGwxParamsREADONLY (cf,cg,ch) = {
497+ let ci = (cg + ch)
498+ let cj = -(fraction(cf, b, ch))
499+ let ck = (fraction(cf, b, ch) * ci)
500+ $Tuple2(nil, [cj, ck, bk()])
496501 }
497502
498503
499504
500-@Callable(aH)
501-func calcGwxAmountStartREADONLY (ck,cl,cm) = {
502- let cn = fraction(cl, c, cm)
503- let bo = fraction(ck, cn, c)
504- $Tuple2(nil, [bo])
505+@Callable(aI)
506+func calcGwxAmountStartREADONLY (cl,cm,cn) = {
507+ let co = fraction(cm, c, cn)
508+ let bp = fraction(cl, co, c)
509+ $Tuple2(nil, [bp])
505510 }
506511
507512
508513
509-@Callable(aH)
510-func onEmissionForGwxStart () = if ((aH.caller != s))
514+@Callable(aI)
515+func onEmissionForGwxStart () = if ((aI.caller != t))
511516 then throw("permissions denied")
512- else [IntegerEntry(ab(), height)]
517+ else [IntegerEntry(ac(), height)]
513518
514519
515520
516-@Callable(aH)
517-func latestPeriodEmissionRewardsREADONLY (bV) = {
518- let ap = bj()
519- $Tuple2(nil, [g(aq(ap))])
521+@Callable(aI)
522+func latestPeriodEmissionRewardsREADONLY (bW) = {
523+ let aq = bk()
524+ $Tuple2(nil, [g(ar(aq))])
520525 }
521526
522527
523528
524-@Callable(aH)
525-func calcD (co,cp,cq,cr,cs) = {
526- let ct = toBigInt(2)
527- let cu = parseBigIntValue(cr)
529+@Callable(aI)
530+func calcD (cp,cq,cr,cs,ct) = {
531+ let cu = toBigInt(2)
528532 let cv = parseBigIntValue(cs)
529- let cw = parseBigIntValue(co)
533+ let cw = parseBigIntValue(ct)
530534 let cx = parseBigIntValue(cp)
531- let cy = (parseBigIntValue(cq) * cu)
532- let aO = (cw + cx)
533- if ((aO == d))
535+ let cy = parseBigIntValue(cq)
536+ let cz = (parseBigIntValue(cr) * cv)
537+ let aP = (cx + cy)
538+ if ((aP == d))
534539 then $Tuple2(nil, toString(d))
535540 else {
536- let cz = (cy * ct)
537- let cA = [1, 2, 3, 4, 5, 6, 7]
538- func cB (cC,cD) = {
539- let cE = cC
540- let cF = cE._1
541- let cG = cE._2
542- let cH = (((cF * cF) * cF) / (((cw * cx) * ct) * ct))
543- let cI = (((((cz * aO) / cu) + (cH * ct)) * cF) / ((((cz - cu) * cF) / cu) + ((ct + toBigInt(1)) * cH)))
544- $Tuple2(cI, cF)
541+ let cA = (cz * cu)
542+ let cB = [1, 2, 3, 4, 5, 6, 7]
543+ func cC (cD,cE) = {
544+ let cF = cD
545+ let cG = cF._1
546+ let cH = cF._2
547+ let cI = (((cG * cG) * cG) / (((cx * cy) * cu) * cu))
548+ let cJ = (((((cA * aP) / cv) + (cI * cu)) * cG) / ((((cA - cv) * cG) / cv) + ((cu + toBigInt(1)) * cI)))
549+ $Tuple2(cJ, cG)
545550 }
546551
547- let cJ = {
548- let cK = cA
549- let cL = size(cK)
550- let cM = $Tuple2(aO, unit)
551- func cN (cO,cP) = if ((cP >= cL))
552- then cO
553- else cB(cO, cK[cP])
552+ let cK = {
553+ let cL = cB
554+ let cM = size(cL)
555+ let cN = $Tuple2(aP, unit)
556+ func cO (cP,cQ) = if ((cQ >= cM))
557+ then cP
558+ else cC(cP, cL[cQ])
554559
555- func cQ (cO,cP) = if ((cP >= cL))
556- then cO
560+ func cR (cP,cQ) = if ((cQ >= cM))
561+ then cP
557562 else throw("List size exceeds 7")
558563
559- cQ(cN(cN(cN(cN(cN(cN(cN(cM, 0), 1), 2), 3), 4), 5), 6), 7)
564+ cR(cO(cO(cO(cO(cO(cO(cO(cN, 0), 1), 2), 3), 4), 5), 6), 7)
560565 }
561- let cI = cJ._1
562- let cG = cJ._2
563- let cR = l((cI - value(cG)))
564- if ((cv >= cR))
565- then $Tuple2(nil, toString(cI))
566- else throw(("D calculation error, dDiff = " + toString(cR)))
566+ let cJ = cK._1
567+ let cH = cK._2
568+ let cS = n((cJ - value(cH)))
569+ if ((cw >= cS))
570+ then $Tuple2(nil, toString(cJ))
571+ else throw(("D calculation error, dDiff = " + toString(cS)))
567572 }
568573 }
569574
570575
571576
572-@Callable(aH)
573-func setManager (cS) = {
574- let cT = aQ(aH)
575- if ((cT == cT))
577+@Callable(aI)
578+func calcPutXOnly (cT,cU,cV,cW,cX,cY,cZ,da) = {
579+ let cu = toBigInt(2)
580+ let cv = parseBigIntValue(cY)
581+ let cw = parseBigIntValue(cZ)
582+ let db = parseBigIntValue(cU)
583+ let dc = parseBigIntValue(cV)
584+ let cG = if ((cW == ""))
585+ then parseBigIntValue({
586+ let bN = invoke(this, "calcD", [cU, cV, cX, cY, da], nil)
587+ if ($isInstanceOf(bN, "String"))
588+ then bN
589+ else throw(($getType(invoke(this, "calcD", [cU, cV, cX, cY, da], nil)) + " couldn't be cast to String"))
590+ })
591+ else parseBigIntValue(cW)
592+ let cz = (parseBigIntValue(cX) * cv)
593+ let dd = parseBigIntValue(cT)
594+ let cA = (cz * cu)
595+ let cB = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
596+ func cC (cD,cE) = {
597+ let de = cD
598+ let df = de._1
599+ let dg = de._2
600+ let dh = ((db + dd) - df)
601+ let di = (dc - ((df * dc) / db))
602+ let cI = (((cG * cG) * cG) / (((dh * di) * cu) * cu))
603+ let dj = (df + ((((((-(cG) * cA) / cv) + cG) + ((cA * (dh + di)) / cv)) - cI) / ((((-(cA) * (toBigInt(-1) - (dc / db))) / cv) + (cI / dh)) + ((dc * cI) / (db * di)))))
604+ $Tuple2(dj, df)
605+ }
606+
607+ let dk = {
608+ let cL = cB
609+ let cM = size(cL)
610+ let cN = $Tuple2(d, unit)
611+ func cO (cP,cQ) = if ((cQ >= cM))
612+ then cP
613+ else cC(cP, cL[cQ])
614+
615+ func cR (cP,cQ) = if ((cQ >= cM))
616+ then cP
617+ else throw("List size exceeds 10")
618+
619+ cR(cO(cO(cO(cO(cO(cO(cO(cO(cO(cO(cN, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
620+ }
621+ let dj = dk._1
622+ let dg = dk._2
623+ let dl = n((dj - value(dg)))
624+ if ((cw >= dl))
625+ then $Tuple2(nil, $Tuple2(toInt(dj), toInt(fraction(dj, dc, db))))
626+ else throw(((((("X calculation error, xDiff = " + toString(dl)) + ", xNext = ") + toString(dj)) + ", xPrev = ") + toString(value(dg))))
627+ }
628+
629+
630+
631+@Callable(aI)
632+func calcSwapXToY (cT,cU,cV,cW,cX,cY,cZ,da) = {
633+ let cu = toBigInt(2)
634+ let cv = parseBigIntValue(cY)
635+ let cw = parseBigIntValue(cZ)
636+ let db = parseBigIntValue(cU)
637+ let dc = parseBigIntValue(cV)
638+ let df = parseBigIntValue(cT)
639+ let cG = if ((cW == ""))
640+ then parseBigIntValue({
641+ let bN = invoke(this, "calcD", [cU, cV, cX, cY, da], nil)
642+ if ($isInstanceOf(bN, "String"))
643+ then bN
644+ else throw(($getType(invoke(this, "calcD", [cU, cV, cX, cY, da], nil)) + " couldn't be cast to String"))
645+ })
646+ else parseBigIntValue(cW)
647+ let cz = (parseBigIntValue(cX) * cv)
648+ let dd = parseBigIntValue(cT)
649+ let cA = (cz * cu)
650+ let cB = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
651+ func cC (cD,cE) = {
652+ let dm = cD
653+ let dn = dm._1
654+ let do = dm._2
655+ let dh = (db + df)
656+ let di = (dc - dn)
657+ let cI = (((cG * cG) * cG) / (((dh * di) * cu) * cu))
658+ let dp = (dn + ((((((-(cG) * cA) / cv) + cG) + ((cA * (dh + di)) / cv)) - cI) / ((cA / cv) + (cI / di))))
659+ $Tuple2(dp, dn)
660+ }
661+
662+ let dq = {
663+ let cL = cB
664+ let cM = size(cL)
665+ let cN = $Tuple2(d, unit)
666+ func cO (cP,cQ) = if ((cQ >= cM))
667+ then cP
668+ else cC(cP, cL[cQ])
669+
670+ func cR (cP,cQ) = if ((cQ >= cM))
671+ then cP
672+ else throw("List size exceeds 10")
673+
674+ cR(cO(cO(cO(cO(cO(cO(cO(cO(cO(cO(cN, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
675+ }
676+ let dp = dq._1
677+ let do = dq._2
678+ let dl = n((dp - value(do)))
679+ if ((cw >= dl))
680+ then $Tuple2(nil, toInt(dp))
681+ else throw(((((("Y calculation error, yDiff = " + toString(dl)) + ", yNext = ") + toString(dp)) + ", yPrev = ") + toString(value(do))))
682+ }
683+
684+
685+
686+@Callable(aI)
687+func setManager (dr) = {
688+ let ds = aR(aI)
689+ if ((ds == ds))
576690 then {
577- let cU = fromBase58String(cS)
578- if ((cU == cU))
579- then [StringEntry(aL(), cS)]
691+ let dt = fromBase58String(dr)
692+ if ((dt == dt))
693+ then [StringEntry(aM(), dr)]
580694 else throw("Strict value is not equal to itself.")
581695 }
582696 else throw("Strict value is not equal to itself.")
583697 }
584698
585699
586700
587-@Callable(aH)
701+@Callable(aI)
588702 func confirmManager () = {
589- let cV = aP()
590- let cW = if (isDefined(cV))
703+ let du = aQ()
704+ let dv = if (isDefined(du))
591705 then true
592706 else throw("No pending manager")
593- if ((cW == cW))
707+ if ((dv == dv))
594708 then {
595- let cX = if ((aH.callerPublicKey == value(cV)))
709+ let dw = if ((aI.callerPublicKey == value(du)))
596710 then true
597711 else throw("You are not pending manager")
598- if ((cX == cX))
599- then [StringEntry(aK(), toBase58String(value(cV))), DeleteEntry(aL())]
712+ if ((dw == dw))
713+ then [StringEntry(aL(), toBase58String(value(du))), DeleteEntry(aM())]
600714 else throw("Strict value is not equal to itself.")
601715 }
602716 else throw("Strict value is not equal to itself.")
603717 }
604718
605719
606-@Verifier(cY)
607-func cZ () = {
608- let da = {
609- let aN = aM()
610- if ($isInstanceOf(aN, "ByteVector"))
720+@Verifier(dx)
721+func dy () = {
722+ let dz = {
723+ let aO = aN()
724+ if ($isInstanceOf(aO, "ByteVector"))
611725 then {
612- let aS = aN
613- aS
726+ let aT = aO
727+ aT
614728 }
615- else if ($isInstanceOf(aN, "Unit"))
616- then cY.senderPublicKey
729+ else if ($isInstanceOf(aO, "Unit"))
730+ then dx.senderPublicKey
617731 else throw("Match error")
618732 }
619- sigVerify(cY.bodyBytes, cY.proofs[0], da)
733+ sigVerify(dx.bodyBytes, dx.proofs[0], dz)
620734 }
621735

github/deemru/w8io/026f985 
197.28 ms