tx · 9jaF9N5DF3y3uosa7EGQZq4bjCL1uJX25fE82VQJrEoN

3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv:  -0.01800000 Waves

2024.11.25 16:55 [3387030] smart account 3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv > SELF 0.00000000 Waves

{ "type": 13, "id": "9jaF9N5DF3y3uosa7EGQZq4bjCL1uJX25fE82VQJrEoN", "fee": 1800000, "feeAssetId": null, "timestamp": 1732542954477, "version": 2, "chainId": 84, "sender": "3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv", "senderPublicKey": "2fNSk5gmWbXBDTkSYSKd66xSgVvAYzrJnP9YSAFNvTwC", "proofs": [ "44NTsCWU6QKNejG5BQ5qdojchk7wsZmcPnFxu1TjCVztRyVXj2ESi7RJNzLnaESMrczckmMdAhhJVmPTbgDLBt9D" ], "script": "base64:BgIbCAISAwoBGBIDCgEIEgMKAQgSAwoBCBIDCgEIcwADU0VQAgJfXwAFY2hhaW4JAMkBAgkAygECCAUEdGhpcwVieXRlcwABAAEACkRBWV9CTE9DS1MEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAAoAsDCQAAAgEBVAUHJG1hdGNoMAA8CQACAQINVW5rbm93biBjaGFpbgALV0VFS19CTE9DS1MEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAA4E4DCQAAAgEBVAUHJG1hdGNoMAC0AQkAAgECDVVua25vd24gY2hhaW4AClZSRl9PRkZTRVQEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAAAAMJAAACAQFUBQckbWF0Y2gwAJD5RQkAAgECDVVua25vd24gY2hhaW4AC3VzZHRBc3NldElkBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwASCE2nqyCAM/TtG7yo7ui5O8yYLdC136B5ao1CP5qA//uQMJAAACAQFUBQckbWF0Y2gwASBVsdifcoeC7+XjW42sBatl3ppDoS8WuwXzGreHpfHFGAkAAgECDVVua25vd24gY2hhaW4AFmRlZmF1bHRSZXN0MkFkZHJlc3NTdHIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDACIzNQRndZdGE4YmlFejMxenBlRmU1REpLOHdFNXRyU3BRVkY4AwkAAAIBAVQFByRtYXRjaDACIzNON1V1WWFyNjI2NFA1OEZCaFZXS1BRQWg0WXVhMmhnbmd2CQACAQINVW5rbm93biBjaGFpbgAVb2xkU3Rha2luZ0NvbnRyYWN0U3RyBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAiMzUExuY1h0UzFVODNENmNRYkZEM0g4ckJIUExnenhTRktaMQMJAAACAQFUBQckbWF0Y2gwAiMzTkRDeUJHNXE4NUp1YVJpaWdVZUV0YWlueWpDUVQzWHBabQkAAgECDVVua25vd24gY2hhaW4BD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAABBJZHhDZmdBY3JlczJEYXBwAAEADUlkeENmZ1dsZ0RhcHAAAgAUSWR4Q2ZnUHV6emxlUG9vbERhcHAABAAUSWR4Q2ZnSW52ZXN0RnVuZERhcHAABQEKa2V5UmVzdENmZwACDiVzX19yZXN0Q29uZmlnAQ9rZXlSZXN0MkFkZHJlc3MAAg0lc19fcmVzdDJBZGRyARFyZWFkUmVzdENmZ09yRmFpbAEEcmVzdAkAvAkCCQEPZ2V0U3RyaW5nT3JGYWlsAgUEcmVzdAkBCmtleVJlc3RDZmcABQNTRVABGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIIcmVzdDJDZmcDaWR4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQhyZXN0MkNmZwUDaWR4CQCsAgICKlJlc3QgY2ZnIGRvZXNuJ3QgY29udGFpbiBhZGRyZXNzIGF0IGluZGV4IAkApAMBBQNpZHgADXJlc3QyQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBD2tleVJlc3QyQWRkcmVzcwAFFmRlZmF1bHRSZXN0MkFkZHJlc3NTdHIACHJlc3QyQ2ZnCQERcmVhZFJlc3RDZmdPckZhaWwBBQ1yZXN0MkNvbnRyYWN0AA5hY3JlczJDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCHJlc3QyQ2ZnBRBJZHhDZmdBY3JlczJEYXBwAAt3bGdDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCHJlc3QyQ2ZnBQ1JZHhDZmdXbGdEYXBwABJwdXp6bGVQb29sQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQhyZXN0MkNmZwUUSWR4Q2ZnUHV6emxlUG9vbERhcHAAEmludmVzdEZ1bmRDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFCHJlc3QyQ2ZnBRRJZHhDZmdJbnZlc3RGdW5kRGFwcAATb2xkQWNyZXNDb250cmFjdEtleQIQb2xkQWNyZXNDb250cmFjdAEVa2V5TGFzdFdlZWtUeElkQnlVc2VyAQRhZGRyCQCsAgICE2xhc3RXZWVrVHhJZEJ5VXNlcl8FBGFkZHIBFGtleUN1cldlZWtUeElkQnlVc2VyAQRhZGRyCQCsAgICEmN1cldlZWtUeElkQnlVc2VyXwUEYWRkcgANd2xnQXNzZXRJZEtleQILd2xnX2Fzc2V0SWQACndsZ0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCBQt3bGdDb250cmFjdAUNd2xnQXNzZXRJZEtleQIYV0xHT0xEIGlzIG5vdCBpc3N1ZWQgeWV0AA9hY3Jlc0Fzc2V0SWRLZXkCDGFjcmVzQXNzZXRJZAAMYWNyZXNBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJwIAgUOYWNyZXMyQ29udHJhY3QFD2FjcmVzQXNzZXRJZEtleQIXQUNSRVMgaXMgbm90IGlzc3VlZCB5ZXQBFGtleVN0YWtlZER1Y2tCeU93bmVyAQlvd25lckFkZHIJAKwCAgISc3Rha2VkRHVja0J5T3duZXJfBQlvd25lckFkZHIBFmtleUFkZHJlc3NUb0N1c3RvbU5hbWUBBGFkZHIJAKwCAgIYYWNjb3VudEN1c3RvbU5hbWVCeUFkZHJfBQRhZGRyAQ9rZXlBZGRyZXNzUmVmQnkBBGFkZHIJAKwCAgIJYWNjUmVmQnlfBQRhZGRyARNrZXlBZGRyZXNzUmVmZXJyYWxzAQRhZGRyCQCsAgICDWFjY1JlZmVycmFsc18FBGFkZHIBCmtleVVzZXJCZXQBBGFkZHIJAKwCAgIIdXNlckJldF8FBGFkZHIBEmtleVVzZXJXZWVrVGlja2V0cwIEYWRkcgR3ZWVrCQCsAgIJAKwCAgkArAICAhB1c2VyV2Vla1RpY2tldHNfBQRhZGRyAgFfCQCkAwEFBHdlZWsBE2tleVRvdGFsV2Vla1RpY2tldHMBBHdlZWsJAKwCAgIRdG90YWxXZWVrVGlja2V0c18JAKQDAQUEd2VlawEKd2lubmluZ0JldAEDZGF5BAFiCQBoAgUDZGF5BQpEQVlfQkxPQ0tTBAFoAwkAZgIFAWIFClZSRl9PRkZTRVQFAWIJAGQCBQFiBQpWUkZfT0ZGU0VUCQBqAgkAsQkBCQEFdmFsdWUBCAkBBXZhbHVlAQkA7QcBCQBkAgkAaAIFA2RheQUKREFZX0JMT0NLUwUKVlJGX09GRlNFVAN2cmYABAEMYXNUdXBsZTRJbnRzAQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAhQoSW50LCBJbnQsIEludCwgSW50KQQBdAUHJG1hdGNoMAUBdAkAAgECJmZhaWwgdG8gY2FzdCBpbnRvIChJbnQsIEludCwgSW50LCBJbnQpAQxhc1R1cGxlM0ludHMBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACDyhJbnQsIEludCwgSW50KQQBdAUHJG1hdGNoMAUBdAkAAgECIWZhaWwgdG8gY2FzdCBpbnRvIChJbnQsIEludCwgSW50KQEMYXNUdXBsZTJJbnRzAQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgooSW50LCBJbnQpBAF0BQckbWF0Y2gwBQF0CQACAQIcZmFpbCB0byBjYXN0IGludG8gKEludCwgSW50KQADTTZfAMCEPQADTThfAIDC1y8AClRFQU1fU0hBUkUAwJoMAA5BQ1RJVklUWV9TSEFSRQCgjQYADFBMQVlFUl9TSEFSRQCAtRgAC1lFQVJfTUlMTElTAICG68d1AAZEQVlfTVMAgLiZKQAHSVNTVUUxMACAlOvcAwAPUExBWUVSUzEwX1NIQVJFAIDqMAARTUFSS0VUSU5HMTBfU0hBUkUAoI0GAAxURUFNMTBfU0hBUkUAoI0GABFORVdfU1RBS0lOR19TVEFSVACA87jCsTIACnRlYW1BZHJLZXkCCHRlYW1BZGRyAA5sYXN0VGVhbVRpbUtleQIUbGFzdENsYWltZWRUaW1lX3RlYW0ADnRlYW1BbXRMZWZ0S2V5Ag50ZWFtQW1vdW50TGVmdAAUbGFzdEFjdGl2aXRpZXNUaW1LZXkCGmxhc3RDbGFpbWVkVGltZV9hY3Rpdml0aWVzAA1hY3RBbXRMZWZ0S2V5AhRhY3Rpdml0aWVzQW1vdW50TGVmdAARc3Rha2Vyc0FtdExlZnRLZXkCEXN0YWtlcnNBbW91bnRMZWZ0ARZrZXlMYXN0Q2xhaW1UaW1lQnlVc2VyAQRhZGRyCQCsAgICFGxhc3RDbGFpbWVkVGltZVVzZXJfBQRhZGRyAQ1kaXN0ckJ5UGVyaW9kAgxpc3N1ZWRBbW91bnQGcGVyaW9kCQBrAwUMaXNzdWVkQW1vdW50CQBoAgUMUExBWUVSX1NIQVJFCQBkAgUGcGVyaW9kAAEJAGgCAAYFA002XwARd2xnSXNzdWUxMFRpbWVLZXkCD3dsZ19pc3N1ZTEwVGltZQAOd2xnSXNzdWVUaW1LZXkCDXdsZ19pc3N1ZVRpbWUAD3dsZ0lzc3VlZEFtdEtleQIQd2xnX2lzc3VlZEFtb3VudAAOemJJc3N1ZWRBbXRLZXkCEnpiaWxsX2lzc3VlZEFtb3VudAEXa2V5QWNyZXNTdGFrZWRBbXRCeVVzZXIBBGFkZHIJAKwCAgIYYWNyZXNTdGFrZWRBbW91bnRCeVVzZXJfBQRhZGRyABJhY3Jlc1N0YWtkVG90YWxLZXkCFmFjcmVzU3Rha2VkQW1vdW50VG90YWwAFHRvdGFsRmFybWluZ1Bvd2VyS2V5AhF0b3RhbEZhcm1pbmdQb3dlcgAJZGFwcDJSZXN0AAAADGRhcHAyU3Rha2luZwABAAhkYXBwMldsZwACAAtkYXBwMlB1enpsZQADAA9kYXBwMkludmVzdEZ1bmQABAEQa2V5VXNlckZ1bGxCb251cwEEYWRkcgkArAICAg51c2VyRnVsbEJvbnVzXwUEYWRkcgAKbGV2ZWxBY3JlcwkAzAgCAAAJAMwIAgAKCQDMCAIAFAkAzAgCACgJAMwIAgBQCQDMCAIAlgEJAMwIAgD6AQkAzAgCAJADCQDMCAIAvAUJAMwIAgDoBwUDbmlsAQ9nZXRMZXZlbEJ5QWNyZXMBBWFjcmVzBANhY3IJAGkCCQBkAgUFYWNyZXMA/8HXLwUDTThfCgEHY2hlY2tlcgIDYWNjBGl0ZW0DCQBnAgUEaXRlbQUDYWNyBQNhY2MJAGQCBQNhY2MAAQoAAiRsBQpsZXZlbEFjcmVzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdjaGVja2VyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKARZnZXRGYXJtaW5nUG93ZXJCeUFjcmVzAQVhY3JlcwkAaAIJAGgCBQVhY3JlcwAUCQBkAgkBD2dldExldmVsQnlBY3JlcwEFBWFjcmVzAAQBHmdldEZhcm1pbmdQb3dlckJ5QWNyZXNBbmRCb251cwIFYWNyZXMGYm9udXM2BApub3RCb251c2VkCQEWZ2V0RmFybWluZ1Bvd2VyQnlBY3JlcwEFBWFjcmVzCQCUCgIJAGsDBQpub3RCb251c2VkCQBkAgUDTTZfBQZib251czYFA002XwUKbm90Qm9udXNlZAEQZ2V0RmFybWluZ1Bvd2VycwISdXNlckFkZHJTdHJPckVtcHR5DmFjcmVzMkNvbnRyYWN0BAd0b3RhbEZQCQELdmFsdWVPckVsc2UCCQCaCAIFDmFjcmVzMkNvbnRyYWN0BRR0b3RhbEZhcm1pbmdQb3dlcktleQAABAl1c2VyQWNyZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOYWNyZXMyQ29udHJhY3QJARdrZXlBY3Jlc1N0YWtlZEFtdEJ5VXNlcgEFEnVzZXJBZGRyU3RyT3JFbXB0eQAABAl1c2VyQm9udXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOYWNyZXMyQ29udHJhY3QJARBrZXlVc2VyRnVsbEJvbnVzAQUSdXNlckFkZHJTdHJPckVtcHR5AAAECCR0MDc5MTE5CQEeZ2V0RmFybWluZ1Bvd2VyQnlBY3Jlc0FuZEJvbnVzAgUJdXNlckFjcmVzBQl1c2VyQm9udXMEDXVzZXJGUGJvbnVzZWQIBQgkdDA3OTExOQJfMQQQdXNlckZQbm90Qm9udXNlZAgFCCR0MDc5MTE5Al8yCQDMCAIFB3RvdGFsRlAJAMwIAgUNdXNlckZQYm9udXNlZAkAzAgCBRB1c2VyRlBub3RCb251c2VkCQDMCAIFCXVzZXJCb251cwUDbmlsAAppZHhUb3RhbEZQAAAAEGlkeFVzZXJGUGJvbnVzZWQAAQALaXhXbGdBbW91bnQAAAAIaXhXbGdXbGcAAQAKaXhXbGdQcmljZQACAAppeFdsZ0Z1bmRzAAMADWl4V2xnQWN0aXZpdHkABAALaXhXbGdBY3JlczIABQAOaXhXbGdBcmJpdHJhZ2UABgAJaXhXbGdQb29sAAcADml4V2xnSXNzdWVUaW1lAAgAFGl4V2xnTGFzdFRlYW1BY3RUaW1lAAkADml4V2xnVGVhbVRvdGFsAAoAD2l4V2xnVGVhbUFtTGVmdAALABNpeFdsZ1RlYW1BbUF2YWlsTm93AAwAD2l4V2xnVGVhbVdsZ29sZAANAA1peFdsZ0FjdFRvdGFsAA4ADml4V2xnQWN0QW1MZWZ0AA8AEml4V2xnQWN0QW1BdmFpbE5vdwAQAA5peFdsZ0FjdFdsZ29sZAARAA5peFdsZ0N1clBlcmlvZAASABBpeFdsZ0FtTGVmdFRvdGFsABMAGml4V2xnQ3VyUGVyaW9kRGlzdHJpYnV0aW9uABQAEWl4V2xnTGFzdFVzZXJUaW1lABUAFWl4V2xnSW52ZXN0RnVuZEFtb3VudAAWABNpeFdsZ1VzZXJBbUF2YWlsTm93ABcAEGl4V2xnRWZmVXNlclRpbWUAGAASaXhXbGdJc3N1ZTEwQW1vdW50ABkAG2l4V2xnTWFya2V0aW5nSXNzdWUxMEFtb3VudAAaABZpeFdsZ1RlYW1Jc3N1ZTEwQW1vdW50ABsAD2l4V2xnVXNlcjEwcGFydAAcABBpeFdsZ0lzc3VlMTBUaW1lAB0AFml4V2xnVG90YWxGYXJtaW5nUG93ZXIAHgAVaXhXbGdBY3Jlc1N0YWtlZFRvdGFsAB8BDGdldFdsZ1N0YXRzMgQLdXNlckFkZHJPcHQJY29udHJhY3RzBnVzZHRJZBV1c2R0QmFsYW5jZUNvcnJlY3Rpb24EDGlzc3VlZEFtb3VudAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwUPd2xnSXNzdWVkQW10S2V5AhhXTEdPTEQgaXMgbm90IGlzc3VlZCB5ZXQEB3Jlc3RVc2QJAPAHAgkAkQMCBQljb250cmFjdHMFCWRhcHAyUmVzdAUGdXNkdElkBAZ3bGdVc2QJAGUCCQDwBwIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwUGdXNkdElkBRV1c2R0QmFsYW5jZUNvcnJlY3Rpb24ECXB1enpsZVVzZAkA8AcCCQCRAwIFCWNvbnRyYWN0cwULZGFwcDJQdXp6bGUFBnVzZHRJZAQJYWNyZXMyVXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQxkYXBwMlN0YWtpbmcFBnVzZHRJZAQRaW52ZXN0Rm5kQ29udHJhY3QJAJEDAgUJY29udHJhY3RzBQ9kYXBwMkludmVzdEZ1bmQED2ludmVzdEZ1bmRUb3RhbAkAZAIJAPAHAgURaW52ZXN0Rm5kQ29udHJhY3QFBnVzZHRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBRFpbnZlc3RGbmRDb250cmFjdAUOemJJc3N1ZWRBbXRLZXkAAAQNdG90YWxGdW5kc1VzZAkAZAIJAGQCBQlhY3JlczJVc2QFBndsZ1VzZAUPaW52ZXN0RnVuZFRvdGFsBAV3bGdJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCcCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwILd2xnX2Fzc2V0SWQCE05vdCBpbml0aWFsaXplZCB5ZXQEA25vdwgFCWxhc3RCbG9jawl0aW1lc3RhbXAECWlzc3VlVGltZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwUOd2xnSXNzdWVUaW1LZXkCD05vdCBpbml0aWFsaXplZAQGd2xnV2xnCQDwBwIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwUFd2xnSWQECXRlYW1Ub3RhbAkAawMFDGlzc3VlZEFtb3VudAUKVEVBTV9TSEFSRQUDTTZfBA50ZWFtQW1vdW50TGVmdAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFDnRlYW1BbXRMZWZ0S2V5BQl0ZWFtVG90YWwEDGxhc3RUZWFtVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFDmxhc3RUZWFtVGltS2V5BQlpc3N1ZVRpbWUECHRlYW1BZGRyCQERQGV4dHJOYXRpdmUoMTA2MikBCQEFdmFsdWUBCQCdCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwUKdGVhbUFkcktleQQWdGVhbUFtb3VudEF2YWlsYWJsZU5vdwkAlwMBCQDMCAIJAGsDBQl0ZWFtVG90YWwJAGUCBQNub3cFDGxhc3RUZWFtVGltZQkAaAIAAwULWUVBUl9NSUxMSVMJAMwIAgUOdGVhbUFtb3VudExlZnQFA25pbAQKdGVhbVdsZ29sZAkA8AcCBQh0ZWFtQWRkcgUFd2xnSWQECGFjdFRvdGFsCQBrAwUMaXNzdWVkQW1vdW50BQ5BQ1RJVklUWV9TSEFSRQUDTTZfBA1hY3RBbW91bnRMZWZ0CQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwUNYWN0QW10TGVmdEtleQUIYWN0VG90YWwEEmxhc3RBY3Rpdml0aWVzVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFFGxhc3RBY3Rpdml0aWVzVGltS2V5BQlpc3N1ZVRpbWUEFWFjdEFtb3VudEF2YWlsYWJsZU5vdwkAlwMBCQDMCAIJAGsDBQhhY3RUb3RhbAkAZQIFA25vdwUSbGFzdEFjdGl2aXRpZXNUaW1lCQBoAgADBQtZRUFSX01JTExJUwkAzAgCBQ1hY3RBbW91bnRMZWZ0BQNuaWwECWFjdFdsZ29sZAkA8AcCCQCRAwIFCWNvbnRyYWN0cwUJZGFwcDJSZXN0BQV3bGdJZAQMbGFzdFVzZXJUaW1lCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQhkYXBwMldsZwkBFmtleUxhc3RDbGFpbVRpbWVCeVVzZXIBBQt1c2VyQWRkck9wdAUJaXNzdWVUaW1lBA5sYXN0VXNlclBlcmlvZAkAaQIJAGUCBQxsYXN0VXNlclRpbWUFCWlzc3VlVGltZQULWUVBUl9NSUxMSVMECm5vd0xpbWl0ZWQJAJcDAQkAzAgCBQNub3cJAMwIAgkAZAIFCWlzc3VlVGltZQkAaAIAAwULWUVBUl9NSUxMSVMFA25pbAQJY3VyUGVyaW9kCQCXAwEJAMwIAgkAaQIJAGUCBQNub3cFCWlzc3VlVGltZQULWUVBUl9NSUxMSVMJAMwIAgACBQNuaWwEA2VmZgkBEGdldEZhcm1pbmdQb3dlcnMCBQt1c2VyQWRkck9wdAkAkQMCBQljb250cmFjdHMFDGRhcHAyU3Rha2luZwQVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQENZGlzdHJCeVBlcmlvZAIFDGlzc3VlZEFtb3VudAUJY3VyUGVyaW9kBA1wcmV2UGVyaW9kRW5kCQBkAgUJaXNzdWVUaW1lCQBoAgULWUVBUl9NSUxMSVMFCWN1clBlcmlvZAQRcHJldlByZXZQZXJpb2RFbmQJAGQCBQlpc3N1ZVRpbWUJAGgCBQtZRUFSX01JTExJUwkAZQIFCWN1clBlcmlvZAABBAJhMAkAawMFFWN1clBlcmlvZERpc3RyaWJ1dGlvbgkAZQIFCm5vd0xpbWl0ZWQFDGxhc3RVc2VyVGltZQULWUVBUl9NSUxMSVMEDXVzZXJBdmFpbGFibGUDCQAAAgUObGFzdFVzZXJQZXJpb2QFCWN1clBlcmlvZAUCYTADCQAAAgUObGFzdFVzZXJQZXJpb2QJAGUCBQljdXJQZXJpb2QAAQQCYTEJAGsDCQENZGlzdHJCeVBlcmlvZAIFDGlzc3VlZEFtb3VudAkAZQIFCWN1clBlcmlvZAABCQBlAgUNcHJldlBlcmlvZEVuZAUMbGFzdFVzZXJUaW1lBQtZRUFSX01JTExJUwkAZAIFAmExBQJhMAQCYTIJAGsDCQENZGlzdHJCeVBlcmlvZAIFDGlzc3VlZEFtb3VudAkAZQIFCWN1clBlcmlvZAACCQBlAgURcHJldlByZXZQZXJpb2RFbmQFDGxhc3RVc2VyVGltZQULWUVBUl9NSUxMSVMEAmExCQENZGlzdHJCeVBlcmlvZAIFDGlzc3VlZEFtb3VudAkAZQIFCWN1clBlcmlvZAABCQBkAgkAZAIFAmEyBQJhMQUCYTAED2Ftb3VudExlZnRUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFEXN0YWtlcnNBbXRMZWZ0S2V5AAAECnVzZXJBbW91bnQDCQECIT0CCQCRAwIFA2VmZgUKaWR4VG90YWxGUAAACQBrAwUNdXNlckF2YWlsYWJsZQkAkQMCBQNlZmYFEGlkeFVzZXJGUGJvbnVzZWQJAJEDAgUDZWZmBQppZHhUb3RhbEZQAAAED2xhc3RJc3N1ZTEwVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUIZGFwcDJXbGcFEXdsZ0lzc3VlMTBUaW1lS2V5BRFORVdfU1RBS0lOR19TVEFSVAQNaXNzdWUxMEFtb3VudAkAawMFB0lTU1VFMTAJAJYDAQkAzAgCCQBlAgUDbm93BQ9sYXN0SXNzdWUxMFRpbWUJAMwIAgAABQNuaWwFBkRBWV9NUwQWbWFya2V0aW5nSXNzdWUxMEFtb3VudAkAawMFDWlzc3VlMTBBbW91bnQFEU1BUktFVElORzEwX1NIQVJFBQNNNl8EEXRlYW1Jc3N1ZTEwQW1vdW50CQBrAwUNaXNzdWUxMEFtb3VudAUMVEVBTTEwX1NIQVJFBQNNNl8EDnVzZXIxMEludGVydmFsCQCWAwEJAMwIAgkAZQIFA25vdwkAlgMBCQDMCAIFEU5FV19TVEFLSU5HX1NUQVJUCQDMCAIFDGxhc3RVc2VyVGltZQUDbmlsCQDMCAIAAAUDbmlsBAp1c2VyMTBwYXJ0AwkBAiE9AgkAkQMCBQNlZmYFCmlkeFRvdGFsRlAAAAkAawMJAGsDCQBrAwUHSVNTVUUxMAUOdXNlcjEwSW50ZXJ2YWwFBkRBWV9NUwkAkQMCBQNlZmYFEGlkeFVzZXJGUGJvbnVzZWQJAJEDAgUDZWZmBQppZHhUb3RhbEZQBQ9QTEFZRVJTMTBfU0hBUkUFA002XwAABA5uZXdJc3N1ZTEwVGltZQkAlgMBCQDMCAIFEU5FV19TVEFLSU5HX1NUQVJUCQDMCAIFA25vdwUDbmlsBBBhY3Jlc1N0YWtlZFRvdGFsCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQxkYXBwMlN0YWtpbmcFEmFjcmVzU3Rha2RUb3RhbEtleQAACQDMCAIFDGlzc3VlZEFtb3VudAkAzAgCBQZ3bGdXbGcJAMwIAgkAawMFDXRvdGFsRnVuZHNVc2QFA004XwUMaXNzdWVkQW1vdW50CQDMCAIFDXRvdGFsRnVuZHNVc2QJAMwIAgUHcmVzdFVzZAkAzAgCBQlhY3JlczJVc2QJAMwIAgUGd2xnVXNkCQDMCAIFCXB1enpsZVVzZAkAzAgCBQlpc3N1ZVRpbWUJAMwIAgUMbGFzdFRlYW1UaW1lCQDMCAIFCXRlYW1Ub3RhbAkAzAgCBQ50ZWFtQW1vdW50TGVmdAkAzAgCBRZ0ZWFtQW1vdW50QXZhaWxhYmxlTm93CQDMCAIFCnRlYW1XbGdvbGQJAMwIAgUIYWN0VG90YWwJAMwIAgUNYWN0QW1vdW50TGVmdAkAzAgCBRVhY3RBbW91bnRBdmFpbGFibGVOb3cJAMwIAgUJYWN0V2xnb2xkCQDMCAIFCWN1clBlcmlvZAkAzAgCBQ9hbW91bnRMZWZ0VG90YWwJAMwIAgUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQDMCAIFDGxhc3RVc2VyVGltZQkAzAgCBQ9pbnZlc3RGdW5kVG90YWwJAMwIAgUKdXNlckFtb3VudAkAzAgCBQpub3dMaW1pdGVkCQDMCAIFDWlzc3VlMTBBbW91bnQJAMwIAgUWbWFya2V0aW5nSXNzdWUxMEFtb3VudAkAzAgCBRF0ZWFtSXNzdWUxMEFtb3VudAkAzAgCBQp1c2VyMTBwYXJ0CQDMCAIFDm5ld0lzc3VlMTBUaW1lCQDMCAIJAJEDAgUDZWZmBQppZHhUb3RhbEZQCQDMCAIFEGFjcmVzU3Rha2VkVG90YWwFA25pbAEOd2FsbGV0SW50ZXJuYWwBDnVzZXJBZGRyZXNzT3B0BARhZGRyCQCmCAEFDnVzZXJBZGRyZXNzT3B0BAdiYWxhbmNlAwkBCWlzRGVmaW5lZAEFBGFkZHIJAO8HAQkBBXZhbHVlAQUEYWRkcgkBDkJhbGFuY2VEZXRhaWxzBAAAAAAAAAAABAt1c2R0QmFsYW5jZQMJAQlpc0RlZmluZWQBBQRhZGRyCQDwBwIJAQV2YWx1ZQEFBGFkZHIFC3VzZHRBc3NldElkAAAEDXdsZ29sZEJhbGFuY2UDCQEJaXNEZWZpbmVkAQUEYWRkcgkA8AcCCQEFdmFsdWUBBQRhZGRyBQp3bGdBc3NldElkAAAECmN1c3RvbU5hbWUJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUOYWNyZXMyQ29udHJhY3QJARZrZXlBZGRyZXNzVG9DdXN0b21OYW1lAQUOdXNlckFkZHJlc3NPcHQFDnVzZXJBZGRyZXNzT3B0BAhyZWZCeUtleQkBD2tleUFkZHJlc3NSZWZCeQEFDnVzZXJBZGRyZXNzT3B0BAVyZWZCeQkAnQgCBQ5hY3JlczJDb250cmFjdAUIcmVmQnlLZXkEBHJlZnMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUOYWNyZXMyQ29udHJhY3QJARNrZXlBZGRyZXNzUmVmZXJyYWxzAQUOdXNlckFkZHJlc3NPcHQCAAQIbGFzdFR4SWQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUOYWNyZXMyQ29udHJhY3QJARVrZXlMYXN0V2Vla1R4SWRCeVVzZXIBBQ51c2VyQWRkcmVzc09wdAIABAdjdXJUeElkCQELdmFsdWVPckVsc2UCCQCdCAIFDmFjcmVzMkNvbnRyYWN0CQEUa2V5Q3VyV2Vla1R4SWRCeVVzZXIBBQ51c2VyQWRkcmVzc09wdAIABAxhY3Jlc0JhbGFuY2UDCQEJaXNEZWZpbmVkAQUEYWRkcgkA8AcCCQEFdmFsdWUBBQRhZGRyBQxhY3Jlc0Fzc2V0SWQAAAQLc3Rha2VkQWNyZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOYWNyZXMyQ29udHJhY3QJARdrZXlBY3Jlc1N0YWtlZEFtdEJ5VXNlcgEFDnVzZXJBZGRyZXNzT3B0AAAEA2x2bAkBD2dldExldmVsQnlBY3JlcwEFC3N0YWtlZEFjcmVzBAJmcAkBEGdldEZhcm1pbmdQb3dlcnMCBQ51c2VyQWRkcmVzc09wdAUOYWNyZXMyQ29udHJhY3QEDmFjcmVzVG9OZXh0THZsAwkAZwIFA2x2bAkAkAMBBQpsZXZlbEFjcmVzAAAJAGUCCQBkAgkAaAIJAJEDAgUKbGV2ZWxBY3JlcwUDbHZsBQNNOF8AAQULc3Rha2VkQWNyZXMJAMwIAgkArAICAhIlcyVzX19jdXN0b21OYW1lX18FCmN1c3RvbU5hbWUJAMwIAgkArAICAhIlcyVzX19yZWZlcnJlZEJ5X18JAQt2YWx1ZU9yRWxzZQIFBXJlZkJ5AgAJAMwIAgkArAICAhElcyVzX19yZWZlcnJhbHNfXwUEcmVmcwkAzAgCCQCsAgICFCVzJXNfX2xhc3RXZWVrVHhJZF9fBQhsYXN0VHhJZAkAzAgCCQCsAgICEyVzJXNfX2N1cldlZWtUeElkX18FCGxhc3RUeElkCQDMCAIJAKwCAgIUJXMlZF9fd2F2ZXNCYWxhbmNlX18JAKQDAQgFB2JhbGFuY2UJYXZhaWxhYmxlCQDMCAIJAKwCAgITJXMlZF9fdXNkdEJhbGFuY2VfXwkApAMBBQt1c2R0QmFsYW5jZQkAzAgCCQCsAgICFSVzJWRfX3dsZ29sZEJhbGFuY2VfXwkApAMBBQ13bGdvbGRCYWxhbmNlCQDMCAIJAKwCAgIUJXMlZF9fYWNyZXNCYWxhbmNlX18JAKQDAQUMYWNyZXNCYWxhbmNlCQDMCAIJAKwCAgITJXMlZF9fc3Rha2VkQWNyZXNfXwkApAMBBQtzdGFrZWRBY3JlcwkAzAgCCQCsAgICEiVzJWRfX2N1cnJlbnRMdmxfXwkApAMBBQNsdmwJAMwIAgkArAICAhYlcyVkX19hY3Jlc1RvTmV4dEx2bF9fCQCkAwEFDmFjcmVzVG9OZXh0THZsCQDMCAIJAKwCAgIYJXMlZF9fdXNlckZhcm1pbmdQb3dlcl9fCQCkAwEJAJEDAgUCZnAFEGlkeFVzZXJGUGJvbnVzZWQJAMwIAgkArAICAhklcyVkX190b3RhbEZhcm1pbmdQb3dlcl9fCQCkAwEJAJEDAgUCZnAFCmlkeFRvdGFsRlAFA25pbAUBaQENY29uc3RydWN0b3JWMQEJY29udHJhY3RzAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIScGVybWlzc2lvbnMgZGVuaWVkCgEKZGVzY3JpcHRvcgIDYWNjC2lnbm9yZWRJdGVtCQCsAgIFA2FjYwICJXMEBWRlc2NyCgACJGwFCWNvbnRyYWN0cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzACAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEKZGVzY3JpcHRvcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgkAzAgCCQELU3RyaW5nRW50cnkCCQEKa2V5UmVzdENmZwAJALkJAgkAzAgCBQVkZXNjcgUJY29udHJhY3RzBQNTRVAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVJlc3QyQWRkcmVzcwAJAKUIAQUEdGhpcwUDbmlsAWkBEndhbGxldEluZm9SRUFET05MWQEOdXNlckFkZHJlc3NPcHQJAJQKAgUDbmlsCQEOd2FsbGV0SW50ZXJuYWwBBQ51c2VyQWRkcmVzc09wdAFpARZjb252ZXJzaW9uSW5mb1JFQURPTkxZAQ51c2VyQWRkcmVzc09wdAQPb2xkQWNyZXNBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQ5hY3JlczJDb250cmFjdAUTb2xkQWNyZXNDb250cmFjdEtleQQLJHQwNDY5NTQ4MTcJAQxhc1R1cGxlMkludHMBCQD8BwQFD29sZEFjcmVzQWRkcmVzcwIXdW5zdGFrZUFsbEFjcmVzUkVBRE9OTFkJAMwIAgUOdXNlckFkZHJlc3NPcHQFA25pbAUDbmlsBA11bnN0YWtlZEFjcmVzCAULJHQwNDY5NTQ4MTcCXzEEDGNsYWltZWRBY3JlcwgFCyR0MDQ2OTU0ODE3Al8yBAskdDA0ODIwNDk2OQkBDGFzVHVwbGU0SW50cwEJAPwHBAUOYWNyZXMyQ29udHJhY3QCFHVuc3Rha2VMYW5kc1JFQURPTkxZCQDMCAIFDnVzZXJBZGRyZXNzT3B0BQNuaWwFA25pbAQPYWNyZXNGcm9tUGllY2VzCAULJHQwNDgyMDQ5NjkCXzEEDGFjcmVzRnJvbVJlcwgFCyR0MDQ4MjA0OTY5Al8yBAxhY3Jlc0Zyb21NYXQIBQskdDA0ODIwNDk2OQJfMwQNYWNyZXNGcm9tUHJvZAgFCyR0MDQ4MjA0OTY5Al80BBFvbGRTdGFraW5nQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQUVb2xkU3Rha2luZ0NvbnRyYWN0U3RyBAtkdWNrQXNzZXRJZAkBC3ZhbHVlT3JFbHNlAgkAnQgCBRFvbGRTdGFraW5nQWRkcmVzcwkBFGtleVN0YWtlZER1Y2tCeU93bmVyAQUOdXNlckFkZHJlc3NPcHQCAAQLJHQwNTE0NzUzNjkDCQECIT0CBQtkdWNrQXNzZXRJZAIACQEMYXNUdXBsZTNJbnRzAQkA/AcEBRFvbGRTdGFraW5nQWRkcmVzcwITdW5zdGFrZUR1Y2tSRUFET05MWQkAzAgCBQtkdWNrQXNzZXRJZAkAzAgCBQ51c2VyQWRkcmVzc09wdAUDbmlsBQNuaWwJAJUKAwAAAAAAAAQQYWNyZXNGcm9tRHVja1JlcwgFCyR0MDUxNDc1MzY5Al8xBBBhY3Jlc0Zyb21EdWNrTWF0CAULJHQwNTE0NzUzNjkCXzIEEWFjcmVzRnJvbUR1Y2tQcm9kCAULJHQwNTE0NzUzNjkCXzMJAJQKAgUDbmlsCQDMCAIJAKwCAgIVJXMlZF9fdW5zdGFrZWRBY3Jlc19fCQCkAwEFDXVuc3Rha2VkQWNyZXMJAMwIAgkArAICAhQlcyVkX19jbGFpbWVkQWNyZXNfXwkApAMBBQxjbGFpbWVkQWNyZXMJAMwIAgkArAICAhclcyVkX19hY3Jlc0Zyb21QaWVjZXNfXwkApAMBBQ9hY3Jlc0Zyb21QaWVjZXMJAMwIAgkArAICAhQlcyVkX19hY3Jlc0Zyb21SZXNfXwkApAMBBQxhY3Jlc0Zyb21SZXMJAMwIAgkArAICAhQlcyVkX19hY3Jlc0Zyb21NYXRfXwkApAMBBQxhY3Jlc0Zyb21NYXQJAMwIAgkArAICAhUlcyVkX19hY3Jlc0Zyb21Qcm9kX18JAKQDAQUNYWNyZXNGcm9tUHJvZAkAzAgCCQCsAgICGCVzJWRfX2FjcmVzRnJvbUR1Y2tSZXNfXwkApAMBBRBhY3Jlc0Zyb21EdWNrUmVzCQDMCAIJAKwCAgIYJXMlZF9fYWNyZXNGcm9tRHVja01hdF9fCQCkAwEFEGFjcmVzRnJvbUR1Y2tNYXQJAMwIAgkArAICAhklcyVkX19hY3Jlc0Zyb21EdWNrUHJvZF9fCQCkAwEFEWFjcmVzRnJvbUR1Y2tQcm9kBQNuaWwBaQEQd2xnU3RhdHNSRUFET05MWQELdXNlckFkZHJPcHQECGN1clN0YXRzCQEMZ2V0V2xnU3RhdHMyBAULdXNlckFkZHJPcHQJAMwIAgUNcmVzdDJDb250cmFjdAkAzAgCBQ5hY3JlczJDb250cmFjdAkAzAgCBQt3bGdDb250cmFjdAkAzAgCBRJwdXp6bGVQb29sQ29udHJhY3QJAMwIAgUSaW52ZXN0RnVuZENvbnRyYWN0BQNuaWwFC3VzZHRBc3NldElkAAAJAJQKAgUDbmlsCQDMCAIJAKwCAgIRJXMlZF9fd2xnQW1vdW50X18JAKQDAQkAkQMCBQhjdXJTdGF0cwULaXhXbGdBbW91bnQJAMwIAgkArAICAg4lcyVkX193bGdXbGdfXwkApAMBCQCRAwIFCGN1clN0YXRzBQhpeFdsZ1dsZwkAzAgCCQCsAgICECVzJWRfX3dsZ1ByaWNlX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUKaXhXbGdQcmljZQkAzAgCCQCsAgICESVzJWRfX3VzZHRGdW5kc19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFCml4V2xnRnVuZHMJAMwIAgkArAICAhQlcyVkX191c2R0QWN0aXZpdHlfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ1peFdsZ0FjdGl2aXR5CQDMCAIJAKwCAgITJXMlZF9fdXNkdFN0YWtpbmdfXwkApAMBCQCRAwIFCGN1clN0YXRzBQtpeFdsZ0FjcmVzMgkAzAgCCQCsAgICFSVzJWRfX3VzZHRBcmJpdHJhZ2VfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ5peFdsZ0FyYml0cmFnZQkAzAgCCQCsAgICECVzJWRfX3VzZHRQb29sX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUJaXhXbGdQb29sCQDMCAIJAKwCAgIUJXMlZF9fd2xnSXNzdWVUaW1lX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUOaXhXbGdJc3N1ZVRpbWUJAMwIAgkArAICAholcyVkX193bGdMYXN0VGVhbUFjdFRpbWVfXwkApAMBCQCRAwIFCGN1clN0YXRzBRRpeFdsZ0xhc3RUZWFtQWN0VGltZQkAzAgCCQCsAgICFCVzJWRfX3dsZ1RlYW1Ub3RhbF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDml4V2xnVGVhbVRvdGFsCQDMCAIJAKwCAgIVJXMlZF9fd2xnVGVhbUFtTGVmdF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFD2l4V2xnVGVhbUFtTGVmdAkAzAgCCQCsAgICGSVzJWRfX3dsZ1RlYW1BbUF2YWlsTm93X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUTaXhXbGdUZWFtQW1BdmFpbE5vdwkAzAgCCQCsAgICFSVzJWRfX3dsZ1RlYW1XbGdvbGRfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ9peFdsZ1RlYW1XbGdvbGQJAMwIAgkArAICAhMlcyVkX193bGdBY3RUb3RhbF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDWl4V2xnQWN0VG90YWwJAMwIAgkArAICAhQlcyVkX193bGdBY3RBbUxlZnRfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ5peFdsZ0FjdEFtTGVmdAkAzAgCCQCsAgICGCVzJWRfX3dsZ0FjdEFtQXZhaWxOb3dfXwkApAMBCQCRAwIFCGN1clN0YXRzBRJpeFdsZ0FjdEFtQXZhaWxOb3cJAMwIAgkArAICAhQlcyVkX193bGdBY3RXbGdvbGRfXwkApAMBCQCRAwIFCGN1clN0YXRzBQ5peFdsZ0FjdFdsZ29sZAkAzAgCCQCsAgICFCVzJWRfX3dsZ0N1clBlcmlvZF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFDml4V2xnQ3VyUGVyaW9kCQDMCAIJAKwCAgIWJXMlZF9fd2xnQW1MZWZ0VG90YWxfXwkApAMBCQCRAwIFCGN1clN0YXRzBRBpeFdsZ0FtTGVmdFRvdGFsCQDMCAIJAKwCAgIgJXMlZF9fd2xnQ3VyUGVyaW9kRGlzdHJpYnV0aW9uX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUaaXhXbGdDdXJQZXJpb2REaXN0cmlidXRpb24JAMwIAgkArAICAhclcyVkX193bGdMYXN0VXNlclRpbWVfXwkApAMBCQCRAwIFCGN1clN0YXRzBRFpeFdsZ0xhc3RVc2VyVGltZQkAzAgCCQCsAgICGiVzJWRfX3dsZ0ludmVzdEZ1bmRUb3RhbF9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFWl4V2xnSW52ZXN0RnVuZEFtb3VudAkAzAgCCQCsAgICGSVzJWRfX3dsZ1VzZXJBbUF2YWlsTm93X18JAKQDAQkAkQMCBQhjdXJTdGF0cwUTaXhXbGdVc2VyQW1BdmFpbE5vdwkAzAgCCQCsAgICFiVzJWRfX3dsZ0VmZlVzZXJUaW1lX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUQaXhXbGdFZmZVc2VyVGltZQkAzAgCCQCsAgICGiVzJWRfX3dsZ0lzc3VlMTBBdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFEml4V2xnSXNzdWUxMEFtb3VudAkAzAgCCQCsAgICIyVzJWRfX3dsZ01hcmtldGluZ0lzc3VlMTBBdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFG2l4V2xnTWFya2V0aW5nSXNzdWUxMEFtb3VudAkAzAgCCQCsAgICHiVzJWRfX3dsZ1RlYW1Jc3N1ZTEwQXZhaWxOb3dfXwkApAMBCQCRAwIFCGN1clN0YXRzBRZpeFdsZ1RlYW1Jc3N1ZTEwQW1vdW50CQDMCAIJAKwCAgIeJXMlZF9fd2xnVXNlcklzc3VlMTBBdmFpbE5vd19fCQCkAwEJAJEDAgUIY3VyU3RhdHMFD2l4V2xnVXNlcjEwcGFydAkAzAgCCQCsAgICGiVzJWRfX3dsZ0xhc3RJc3N1ZTEwVGltZV9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFEGl4V2xnSXNzdWUxMFRpbWUJAMwIAgkArAICAhwlcyVkX193bGdUb3RhbEZhcm1pbmdQb3dlcl9fCQCkAwEJAJEDAgUIY3VyU3RhdHMFFml4V2xnVG90YWxGYXJtaW5nUG93ZXIJAMwIAgkArAICAhslcyVkX193bGdBY3Jlc1N0YWtlZFRvdGFsX18JAKQDAQkAkQMCBQhjdXJTdGF0cwUVaXhXbGdBY3Jlc1N0YWtlZFRvdGFsBQNuaWwBaQEUbG90dGVyeVN0YXRzUkVBRE9OTFkBC3VzZXJBZGRyT3B0BAV0b2RheQkAaQIFBmhlaWdodAUKREFZX0JMT0NLUwQEd2VlawkAaQIFBmhlaWdodAULV0VFS19CTE9DS1MECGxhc3RXZWVrCQBlAgUEd2VlawABBA5jdXJXZWVrVGlja2V0cwkBC3ZhbHVlT3JFbHNlAgkAmggCBQt3bGdDb250cmFjdAkBEmtleVVzZXJXZWVrVGlja2V0cwIFC3VzZXJBZGRyT3B0BQR3ZWVrAAAED2xhc3RXZWVrVGlja2V0cwkBC3ZhbHVlT3JFbHNlAgkAmggCBQt3bGdDb250cmFjdAkBEmtleVVzZXJXZWVrVGlja2V0cwIFC3VzZXJBZGRyT3B0BQhsYXN0V2VlawAABBNjdXJXZWVrVG90YWxUaWNrZXRzCQELdmFsdWVPckVsc2UCCQCaCAIFC3dsZ0NvbnRyYWN0CQETa2V5VG90YWxXZWVrVGlja2V0cwEFBHdlZWsAAAQUbGFzdFdlZWtUb3RhbFRpY2tldHMJAQt2YWx1ZU9yRWxzZQIJAJoIAgULd2xnQ29udHJhY3QJARNrZXlUb3RhbFdlZWtUaWNrZXRzAQUIbGFzdFdlZWsAAAQIdXNlcnNCZXQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgULd2xnQ29udHJhY3QJAQprZXlVc2VyQmV0AQULdXNlckFkZHJPcHQCAAkAlAoCBQNuaWwJAMwIAgkArAICCQCsAgIJAKwCAgIWJXMlZCVkX190b3RhbFRpY2tldHNfXwkApAMBBRRsYXN0V2Vla1RvdGFsVGlja2V0cwUDU0VQCQCkAwEFE2N1cldlZWtUb3RhbFRpY2tldHMJAMwIAgkArAICCQCsAgIJAKwCAgIVJXMlZCVkX191c2VyVGlja2V0c19fCQCkAwEFD2xhc3RXZWVrVGlja2V0cwUDU0VQCQCkAwEFDmN1cldlZWtUaWNrZXRzCQDMCAIJAKwCAgIWJXMlZF9fYmxvY2tjaGFpbldlZWtfXwkApAMBBQR3ZWVrCQDMCAIJAKwCAgIVJXMlZF9fYmxvY2tjaGFpbkRheV9fCQCkAwEFBXRvZGF5CQDMCAIJAKwCAgIYJXMlZF9fYmxvY2tjaGFpbk1pbnV0ZV9fCQCkAwEJAGoCBQZoZWlnaHQFCkRBWV9CTE9DS1MJAMwIAgkArAICAhclcyVkX193aW5uaW5nQmV0VG9kYXlfXwkApAMBCQEKd2lubmluZ0JldAEFBXRvZGF5CQDMCAIJAKwCAgIQJXMlc19fdXNlcnNCZXRfXwUIdXNlcnNCZXQFA25pbAAPdQDw", "height": 3387030, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GovWwQwuVtCwDcw3X3AXQkfYN9495bgKL75pnnifBvC4 Next: 5anAW5CCUTRhpHEJtc1kQjcDSvwbfpE4aEJCKyuC3oPo Diff:
OldNewDifferences
131131 func S (R) = ("totalWeekTickets_" + toString(R))
132132
133133
134-func T (U) = (toInt(value(value(blockInfoByHeight(((U * c) + f))).vrf)) % 4)
134+func T (U) = {
135+ let V = (U * c)
136+ let W = if ((V > f))
137+ then V
138+ else (V + f)
139+ (toInt(value(value(blockInfoByHeight(((U * c) + f))).vrf)) % 4)
140+ }
135141
136142
137-func V (W) = {
138- let d = W
143+func X (Y) = {
144+ let d = Y
139145 if ($isInstanceOf(d, "(Int, Int, Int, Int)"))
140146 then {
141- let X = d
142- X
147+ let Z = d
148+ Z
143149 }
144150 else throw("fail to cast into (Int, Int, Int, Int)")
145151 }
146152
147153
148-func Y (W) = {
149- let d = W
154+func aa (Y) = {
155+ let d = Y
150156 if ($isInstanceOf(d, "(Int, Int, Int)"))
151157 then {
152- let X = d
153- X
158+ let Z = d
159+ Z
154160 }
155161 else throw("fail to cast into (Int, Int, Int)")
156162 }
157163
158164
159-func Z (W) = {
160- let d = W
165+func ab (Y) = {
166+ let d = Y
161167 if ($isInstanceOf(d, "(Int, Int)"))
162168 then {
163- let X = d
164- X
169+ let Z = d
170+ Z
165171 }
166172 else throw("fail to cast into (Int, Int)")
167173 }
168174
169175
170-let aa = 1000000
176+let ac = 1000000
171177
172-let ab = 100000000
178+let ad = 100000000
173179
174-let ac = 200000
180+let ae = 200000
175181
176-let ad = 100000
182+let af = 100000
177183
178-let ae = 400000
184+let ag = 400000
179185
180-let af = 31557600000
186+let ah = 31557600000
181187
182-let ag = 86400000
188+let ai = 86400000
183189
184-let ah = 1000000000
190+let aj = 1000000000
185191
186-let ai = 800000
192+let ak = 800000
187193
188-let aj = 100000
194+let al = 100000
189195
190-let ak = 100000
196+let am = 100000
191197
192-let al = 1731279600000
198+let an = 1731279600000
193199
194-let am = "teamAddr"
200+let ao = "teamAddr"
195201
196-let an = "lastClaimedTime_team"
202+let ap = "lastClaimedTime_team"
197203
198-let ao = "teamAmountLeft"
204+let aq = "teamAmountLeft"
199205
200-let ap = "lastClaimedTime_activities"
206+let ar = "lastClaimedTime_activities"
201207
202-let aq = "activitiesAmountLeft"
208+let as = "activitiesAmountLeft"
203209
204-let ar = "stakersAmountLeft"
210+let at = "stakersAmountLeft"
205211
206-func as (E) = ("lastClaimedTimeUser_" + E)
212+func au (E) = ("lastClaimedTimeUser_" + E)
207213
208214
209-func at (au,av) = fraction(au, (ae * (av + 1)), (6 * aa))
215+func av (aw,ax) = fraction(aw, (ag * (ax + 1)), (6 * ac))
210216
211217
212-let aw = "wlg_issue10Time"
218+let ay = "wlg_issue10Time"
213219
214-let ax = "wlg_issueTime"
220+let az = "wlg_issueTime"
215221
216-let ay = "wlg_issuedAmount"
222+let aA = "wlg_issuedAmount"
217223
218-let az = "zbill_issuedAmount"
224+let aB = "zbill_issuedAmount"
219225
220-func aA (E) = ("acresStakedAmountByUser_" + E)
226+func aC (E) = ("acresStakedAmountByUser_" + E)
221227
222228
223-let aB = "acresStakedAmountTotal"
229+let aD = "acresStakedAmountTotal"
224230
225-let aC = "totalFarmingPower"
231+let aE = "totalFarmingPower"
226232
227-let aD = 0
233+let aF = 0
228234
229-let aE = 1
235+let aG = 1
230236
231-let aF = 2
237+let aH = 2
232238
233-let aG = 3
239+let aI = 3
234240
235-let aH = 4
241+let aJ = 4
236242
237-func aI (E) = ("userFullBonus_" + E)
243+func aK (E) = ("userFullBonus_" + E)
238244
239245
240-let aJ = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
246+let aL = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
241247
242-func aK (aL) = {
243- let aM = ((aL + 99999999) / ab)
244- func aN (aO,aP) = if ((aP >= aM))
245- then aO
246- else (aO + 1)
248+func aM (aN) = {
249+ let aO = ((aN + 99999999) / ad)
250+ func aP (aQ,aR) = if ((aR >= aO))
251+ then aQ
252+ else (aQ + 1)
247253
248- let aQ = aJ
249- let aR = size(aQ)
250- let aS = 0
251- func aT (aU,aV) = if ((aV >= aR))
252- then aU
253- else aN(aU, aQ[aV])
254+ let aS = aL
255+ let aT = size(aS)
256+ let aU = 0
257+ func aV (aW,aX) = if ((aX >= aT))
258+ then aW
259+ else aP(aW, aS[aX])
254260
255- func aW (aU,aV) = if ((aV >= aR))
256- then aU
261+ func aY (aW,aX) = if ((aX >= aT))
262+ then aW
257263 else throw("List size exceeds 10")
258264
259- aW(aT(aT(aT(aT(aT(aT(aT(aT(aT(aT(aS, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
265+ aY(aV(aV(aV(aV(aV(aV(aV(aV(aV(aV(aU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
260266 }
261267
262268
263-func aX (aL) = ((aL * 20) * (aK(aL) + 4))
269+func aZ (aN) = ((aN * 20) * (aM(aN) + 4))
264270
265271
266-func aY (aL,aZ) = {
267- let ba = aX(aL)
268- $Tuple2(fraction(ba, (aa + aZ), aa), ba)
272+func ba (aN,bb) = {
273+ let bc = aZ(aN)
274+ $Tuple2(fraction(bc, (ac + bb), ac), bc)
269275 }
270276
271277
272-func bb (bc,y) = {
273- let bd = valueOrElse(getInteger(y, aC), 0)
274- let be = valueOrElse(getInteger(y, aA(bc)), 0)
275- let bf = valueOrElse(getInteger(y, aI(bc)), 0)
276- let bg = aY(be, bf)
277- let bh = bg._1
278- let bi = bg._2
279-[bd, bh, bi, bf]
278+func bd (be,y) = {
279+ let bf = valueOrElse(getInteger(y, aE), 0)
280+ let bg = valueOrElse(getInteger(y, aC(be)), 0)
281+ let bh = valueOrElse(getInteger(y, aK(be)), 0)
282+ let bi = ba(bg, bh)
283+ let bj = bi._1
284+ let bk = bi._2
285+[bf, bj, bk, bh]
280286 }
281287
282-
283-let bj = 0
284-
285-let bk = 1
286288
287289 let bl = 0
288290
289291 let bm = 1
290292
291-let bn = 2
293+let bn = 0
292294
293-let bo = 3
295+let bo = 1
294296
295-let bp = 4
297+let bp = 2
296298
297-let bq = 5
299+let bq = 3
298300
299-let br = 6
301+let br = 4
300302
301-let bs = 7
303+let bs = 5
302304
303-let bt = 8
305+let bt = 6
304306
305-let bu = 9
307+let bu = 7
306308
307-let bv = 10
309+let bv = 8
308310
309-let bw = 11
311+let bw = 9
310312
311-let bx = 12
313+let bx = 10
312314
313-let by = 13
315+let by = 11
314316
315-let bz = 14
317+let bz = 12
316318
317-let bA = 15
319+let bA = 13
318320
319-let bB = 16
321+let bB = 14
320322
321-let bC = 17
323+let bC = 15
322324
323-let bD = 18
325+let bD = 16
324326
325-let bE = 19
327+let bE = 17
326328
327-let bF = 20
329+let bF = 18
328330
329-let bG = 21
331+let bG = 19
330332
331-let bH = 22
333+let bH = 20
332334
333-let bI = 23
335+let bI = 21
334336
335-let bJ = 24
337+let bJ = 22
336338
337-let bK = 25
339+let bK = 23
338340
339-let bL = 26
341+let bL = 24
340342
341-let bM = 27
343+let bM = 25
342344
343-let bN = 28
345+let bN = 26
344346
345-let bO = 29
347+let bO = 27
346348
347-let bP = 30
349+let bP = 28
348350
349-let bQ = 31
351+let bQ = 29
350352
351-func bR (bS,bT,bU,bV) = {
352- let au = valueOrErrorMessage(getInteger(bT[aF], ay), "WLGOLD is not issued yet")
353- let bW = assetBalance(bT[aD], bU)
354- let bX = (assetBalance(bT[aF], bU) - bV)
355- let bY = assetBalance(bT[aG], bU)
356- let bZ = assetBalance(bT[aE], bU)
357- let ca = bT[aH]
358- let cb = (assetBalance(ca, bU) + valueOrElse(getInteger(ca, az), 0))
359- let cc = ((bZ + bX) + cb)
360- let cd = valueOrErrorMessage(getBinary(bT[aF], "wlg_assetId"), "Not initialized yet")
361- let ce = lastBlock.timestamp
362- let cf = valueOrErrorMessage(getInteger(bT[aF], ax), "Not initialized")
363- let cg = assetBalance(bT[aF], cd)
364- let ch = fraction(au, ac, aa)
365- let ci = valueOrElse(getInteger(bT[aF], ao), ch)
366- let cj = valueOrElse(getInteger(bT[aF], an), cf)
367- let ck = addressFromStringValue(value(getString(bT[aF], am)))
368- let cl = min([fraction(ch, (ce - cj), (3 * af)), ci])
369- let cm = assetBalance(ck, cd)
370- let cn = fraction(au, ad, aa)
371- let co = valueOrElse(getInteger(bT[aF], aq), cn)
372- let cp = valueOrElse(getInteger(bT[aF], ap), cf)
373- let cq = min([fraction(cn, (ce - cp), (3 * af)), co])
374- let cr = assetBalance(bT[aD], cd)
375- let cs = valueOrElse(getInteger(bT[aF], as(bS)), cf)
376- let ct = ((cs - cf) / af)
377- let cu = min([ce, (cf + (3 * af))])
378- let cv = min([((ce - cf) / af), 2])
379- let cw = bb(bS, bT[aE])
380- let cx = at(au, cv)
381- let cy = (cf + (af * cv))
382- let cz = (cf + (af * (cv - 1)))
383- let cA = fraction(cx, (cu - cs), af)
384- let cB = if ((ct == cv))
385- then cA
386- else if ((ct == (cv - 1)))
353+let bR = 30
354+
355+let bS = 31
356+
357+func bT (bU,bV,bW,bX) = {
358+ let aw = valueOrErrorMessage(getInteger(bV[aH], aA), "WLGOLD is not issued yet")
359+ let bY = assetBalance(bV[aF], bW)
360+ let bZ = (assetBalance(bV[aH], bW) - bX)
361+ let ca = assetBalance(bV[aI], bW)
362+ let cb = assetBalance(bV[aG], bW)
363+ let cc = bV[aJ]
364+ let cd = (assetBalance(cc, bW) + valueOrElse(getInteger(cc, aB), 0))
365+ let ce = ((cb + bZ) + cd)
366+ let cf = valueOrErrorMessage(getBinary(bV[aH], "wlg_assetId"), "Not initialized yet")
367+ let cg = lastBlock.timestamp
368+ let ch = valueOrErrorMessage(getInteger(bV[aH], az), "Not initialized")
369+ let ci = assetBalance(bV[aH], cf)
370+ let cj = fraction(aw, ae, ac)
371+ let ck = valueOrElse(getInteger(bV[aH], aq), cj)
372+ let cl = valueOrElse(getInteger(bV[aH], ap), ch)
373+ let cm = addressFromStringValue(value(getString(bV[aH], ao)))
374+ let cn = min([fraction(cj, (cg - cl), (3 * ah)), ck])
375+ let co = assetBalance(cm, cf)
376+ let cp = fraction(aw, af, ac)
377+ let cq = valueOrElse(getInteger(bV[aH], as), cp)
378+ let cr = valueOrElse(getInteger(bV[aH], ar), ch)
379+ let cs = min([fraction(cp, (cg - cr), (3 * ah)), cq])
380+ let ct = assetBalance(bV[aF], cf)
381+ let cu = valueOrElse(getInteger(bV[aH], au(bU)), ch)
382+ let cv = ((cu - ch) / ah)
383+ let cw = min([cg, (ch + (3 * ah))])
384+ let cx = min([((cg - ch) / ah), 2])
385+ let cy = bd(bU, bV[aG])
386+ let cz = av(aw, cx)
387+ let cA = (ch + (ah * cx))
388+ let cB = (ch + (ah * (cx - 1)))
389+ let cC = fraction(cz, (cw - cu), ah)
390+ let cD = if ((cv == cx))
391+ then cC
392+ else if ((cv == (cx - 1)))
387393 then {
388- let cC = fraction(at(au, (cv - 1)), (cy - cs), af)
389- (cC + cA)
394+ let cE = fraction(av(aw, (cx - 1)), (cA - cu), ah)
395+ (cE + cC)
390396 }
391397 else {
392- let cD = fraction(at(au, (cv - 2)), (cz - cs), af)
393- let cC = at(au, (cv - 1))
394- ((cD + cC) + cA)
398+ let cF = fraction(av(aw, (cx - 2)), (cB - cu), ah)
399+ let cE = av(aw, (cx - 1))
400+ ((cF + cE) + cC)
395401 }
396- let cE = valueOrElse(getInteger(bT[aF], ar), 0)
397- let cF = if ((cw[bj] != 0))
398- then fraction(cB, cw[bk], cw[bj])
402+ let cG = valueOrElse(getInteger(bV[aH], at), 0)
403+ let cH = if ((cy[bl] != 0))
404+ then fraction(cD, cy[bm], cy[bl])
399405 else 0
400- let cG = valueOrElse(getInteger(bT[aF], aw), al)
401- let cH = fraction(ah, max([(ce - cG), 0]), ag)
402- let cI = fraction(cH, aj, aa)
403- let cJ = fraction(cH, ak, aa)
404- let cK = max([(ce - max([al, cs])), 0])
405- let cL = if ((cw[bj] != 0))
406- then fraction(fraction(fraction(ah, cK, ag), cw[bk], cw[bj]), ai, aa)
406+ let cI = valueOrElse(getInteger(bV[aH], ay), an)
407+ let cJ = fraction(aj, max([(cg - cI), 0]), ai)
408+ let cK = fraction(cJ, al, ac)
409+ let cL = fraction(cJ, am, ac)
410+ let cM = max([(cg - max([an, cu])), 0])
411+ let cN = if ((cy[bl] != 0))
412+ then fraction(fraction(fraction(aj, cM, ai), cy[bm], cy[bl]), ak, ac)
407413 else 0
408- let cM = max([al, ce])
409- let cN = valueOrElse(getInteger(bT[aE], aB), 0)
410-[au, cg, fraction(cc, ab, au), cc, bW, bZ, bX, bY, cf, cj, ch, ci, cl, cm, cn, co, cq, cr, cv, cE, cx, cs, cb, cF, cu, cH, cI, cJ, cL, cM, cw[bj], cN]
414+ let cO = max([an, cg])
415+ let cP = valueOrElse(getInteger(bV[aG], aD), 0)
416+[aw, ci, fraction(ce, ad, aw), ce, bY, cb, bZ, ca, ch, cl, cj, ck, cn, co, cp, cq, cs, ct, cx, cG, cz, cu, cd, cH, cw, cJ, cK, cL, cN, cO, cy[bl], cP]
411417 }
412418
413419
414-func cO (cP) = {
415- let E = addressFromString(cP)
416- let cQ = if (isDefined(E))
420+func cQ (cR) = {
421+ let E = addressFromString(cR)
422+ let cS = if (isDefined(E))
417423 then wavesBalance(value(E))
418424 else BalanceDetails(0, 0, 0, 0)
419- let cR = if (isDefined(E))
425+ let cT = if (isDefined(E))
420426 then assetBalance(value(E), g)
421427 else 0
422- let cS = if (isDefined(E))
428+ let cU = if (isDefined(E))
423429 then assetBalance(value(E), H)
424430 else 0
425- let cT = valueOrElse(getString(y, M(cP)), cP)
426- let cU = N(cP)
427- let cV = getString(y, cU)
428- let cW = valueOrElse(getString(y, O(cP)), "")
429- let cX = valueOrElse(getString(y, D(cP)), "")
430- let cY = valueOrElse(getString(y, F(cP)), "")
431- let cZ = if (isDefined(E))
431+ let cV = valueOrElse(getString(y, M(cR)), cR)
432+ let cW = N(cR)
433+ let cX = getString(y, cW)
434+ let cY = valueOrElse(getString(y, O(cR)), "")
435+ let cZ = valueOrElse(getString(y, D(cR)), "")
436+ let da = valueOrElse(getString(y, F(cR)), "")
437+ let db = if (isDefined(E))
432438 then assetBalance(value(E), J)
433439 else 0
434- let da = valueOrElse(getInteger(y, aA(cP)), 0)
435- let db = aK(da)
436- let dc = bb(cP, y)
437- let dd = if ((db >= size(aJ)))
440+ let dc = valueOrElse(getInteger(y, aC(cR)), 0)
441+ let dd = aM(dc)
442+ let de = bd(cR, y)
443+ let df = if ((dd >= size(aL)))
438444 then 0
439- else (((aJ[db] * ab) + 1) - da)
440-[("%s%s__customName__" + cT), ("%s%s__referredBy__" + valueOrElse(cV, "")), ("%s%s__referrals__" + cW), ("%s%s__lastWeekTxId__" + cX), ("%s%s__curWeekTxId__" + cX), ("%s%d__wavesBalance__" + toString(cQ.available)), ("%s%d__usdtBalance__" + toString(cR)), ("%s%d__wlgoldBalance__" + toString(cS)), ("%s%d__acresBalance__" + toString(cZ)), ("%s%d__stakedAcres__" + toString(da)), ("%s%d__currentLvl__" + toString(db)), ("%s%d__acresToNextLvl__" + toString(dd)), ("%s%d__userFarmingPower__" + toString(dc[bk])), ("%s%d__totalFarmingPower__" + toString(dc[bj]))]
445+ else (((aL[dd] * ad) + 1) - dc)
446+[("%s%s__customName__" + cV), ("%s%s__referredBy__" + valueOrElse(cX, "")), ("%s%s__referrals__" + cY), ("%s%s__lastWeekTxId__" + cZ), ("%s%s__curWeekTxId__" + cZ), ("%s%d__wavesBalance__" + toString(cS.available)), ("%s%d__usdtBalance__" + toString(cT)), ("%s%d__wlgoldBalance__" + toString(cU)), ("%s%d__acresBalance__" + toString(db)), ("%s%d__stakedAcres__" + toString(dc)), ("%s%d__currentLvl__" + toString(dd)), ("%s%d__acresToNextLvl__" + toString(df)), ("%s%d__userFarmingPower__" + toString(de[bm])), ("%s%d__totalFarmingPower__" + toString(de[bl]))]
441447 }
442448
443449
444-@Callable(de)
445-func constructorV1 (bT) = if ((de.caller != this))
450+@Callable(dg)
451+func constructorV1 (bV) = if ((dg.caller != this))
446452 then throw("permissions denied")
447453 else {
448- func df (aO,dg) = (aO + "%s")
454+ func dh (aQ,di) = (aQ + "%s")
449455
450- let dh = {
451- let aQ = bT
452- let aR = size(aQ)
453- let aS = ""
454- func aT (aU,aV) = if ((aV >= aR))
455- then aU
456- else df(aU, aQ[aV])
456+ let dj = {
457+ let aS = bV
458+ let aT = size(aS)
459+ let aU = ""
460+ func aV (aW,aX) = if ((aX >= aT))
461+ then aW
462+ else dh(aW, aS[aX])
457463
458- func aW (aU,aV) = if ((aV >= aR))
459- then aU
464+ func aY (aW,aX) = if ((aX >= aT))
465+ then aW
460466 else throw("List size exceeds 10")
461467
462- aW(aT(aT(aT(aT(aT(aT(aT(aT(aT(aT(aS, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
468+ aY(aV(aV(aV(aV(aV(aV(aV(aV(aV(aV(aU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
463469 }
464-[StringEntry(q(), makeString(dh :: bT, a)), StringEntry(r(), toString(this))]
470+[StringEntry(q(), makeString(dj :: bV, a)), StringEntry(r(), toString(this))]
465471 }
466472
467473
468474
469-@Callable(de)
470-func walletInfoREADONLY (cP) = $Tuple2(nil, cO(cP))
475+@Callable(dg)
476+func walletInfoREADONLY (cR) = $Tuple2(nil, cQ(cR))
471477
472478
473479
474-@Callable(de)
475-func conversionInfoREADONLY (cP) = {
476- let di = addressFromStringValue(getStringValue(y, C))
477- let dj = Z(invoke(di, "unstakeAllAcresREADONLY", [cP], nil))
478- let dk = dj._1
479- let dl = dj._2
480- let dm = V(invoke(y, "unstakeLandsREADONLY", [cP], nil))
481- let dn = dm._1
482- let do = dm._2
483- let dp = dm._3
484- let dq = dm._4
485- let dr = addressFromStringValue(i)
486- let ds = valueOrElse(getString(dr, K(cP)), "")
487- let dt = if ((ds != ""))
488- then Y(invoke(dr, "unstakeDuckREADONLY", [ds, cP], nil))
480+@Callable(dg)
481+func conversionInfoREADONLY (cR) = {
482+ let dk = addressFromStringValue(getStringValue(y, C))
483+ let dl = ab(invoke(dk, "unstakeAllAcresREADONLY", [cR], nil))
484+ let dm = dl._1
485+ let dn = dl._2
486+ let do = X(invoke(y, "unstakeLandsREADONLY", [cR], nil))
487+ let dp = do._1
488+ let dq = do._2
489+ let dr = do._3
490+ let ds = do._4
491+ let dt = addressFromStringValue(i)
492+ let du = valueOrElse(getString(dt, K(cR)), "")
493+ let dv = if ((du != ""))
494+ then aa(invoke(dt, "unstakeDuckREADONLY", [du, cR], nil))
489495 else $Tuple3(0, 0, 0)
490- let du = dt._1
491- let dv = dt._2
492- let dw = dt._3
493- $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(dk)), ("%s%d__claimedAcres__" + toString(dl)), ("%s%d__acresFromPieces__" + toString(dn)), ("%s%d__acresFromRes__" + toString(do)), ("%s%d__acresFromMat__" + toString(dp)), ("%s%d__acresFromProd__" + toString(dq)), ("%s%d__acresFromDuckRes__" + toString(du)), ("%s%d__acresFromDuckMat__" + toString(dv)), ("%s%d__acresFromDuckProd__" + toString(dw))])
496+ let dw = dv._1
497+ let dx = dv._2
498+ let dy = dv._3
499+ $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(dm)), ("%s%d__claimedAcres__" + toString(dn)), ("%s%d__acresFromPieces__" + toString(dp)), ("%s%d__acresFromRes__" + toString(dq)), ("%s%d__acresFromMat__" + toString(dr)), ("%s%d__acresFromProd__" + toString(ds)), ("%s%d__acresFromDuckRes__" + toString(dw)), ("%s%d__acresFromDuckMat__" + toString(dx)), ("%s%d__acresFromDuckProd__" + toString(dy))])
494500 }
495501
496502
497503
498-@Callable(de)
499-func wlgStatsREADONLY (bS) = {
500- let dx = bR(bS, [x, y, z, A, B], g, 0)
501- $Tuple2(nil, [("%s%d__wlgAmount__" + toString(dx[bl])), ("%s%d__wlgWlg__" + toString(dx[bm])), ("%s%d__wlgPrice__" + toString(dx[bn])), ("%s%d__usdtFunds__" + toString(dx[bo])), ("%s%d__usdtActivity__" + toString(dx[bp])), ("%s%d__usdtStaking__" + toString(dx[bq])), ("%s%d__usdtArbitrage__" + toString(dx[br])), ("%s%d__usdtPool__" + toString(dx[bs])), ("%s%d__wlgIssueTime__" + toString(dx[bt])), ("%s%d__wlgLastTeamActTime__" + toString(dx[bu])), ("%s%d__wlgTeamTotal__" + toString(dx[bv])), ("%s%d__wlgTeamAmLeft__" + toString(dx[bw])), ("%s%d__wlgTeamAmAvailNow__" + toString(dx[bx])), ("%s%d__wlgTeamWlgold__" + toString(dx[by])), ("%s%d__wlgActTotal__" + toString(dx[bz])), ("%s%d__wlgActAmLeft__" + toString(dx[bA])), ("%s%d__wlgActAmAvailNow__" + toString(dx[bB])), ("%s%d__wlgActWlgold__" + toString(dx[bC])), ("%s%d__wlgCurPeriod__" + toString(dx[bD])), ("%s%d__wlgAmLeftTotal__" + toString(dx[bE])), ("%s%d__wlgCurPeriodDistribution__" + toString(dx[bF])), ("%s%d__wlgLastUserTime__" + toString(dx[bG])), ("%s%d__wlgInvestFundTotal__" + toString(dx[bH])), ("%s%d__wlgUserAmAvailNow__" + toString(dx[bI])), ("%s%d__wlgEffUserTime__" + toString(dx[bJ])), ("%s%d__wlgIssue10AvailNow__" + toString(dx[bK])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(dx[bL])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(dx[bM])), ("%s%d__wlgUserIssue10AvailNow__" + toString(dx[bN])), ("%s%d__wlgLastIssue10Time__" + toString(dx[bO])), ("%s%d__wlgTotalFarmingPower__" + toString(dx[bP])), ("%s%d__wlgAcresStakedTotal__" + toString(dx[bQ]))])
504+@Callable(dg)
505+func wlgStatsREADONLY (bU) = {
506+ let dz = bT(bU, [x, y, z, A, B], g, 0)
507+ $Tuple2(nil, [("%s%d__wlgAmount__" + toString(dz[bn])), ("%s%d__wlgWlg__" + toString(dz[bo])), ("%s%d__wlgPrice__" + toString(dz[bp])), ("%s%d__usdtFunds__" + toString(dz[bq])), ("%s%d__usdtActivity__" + toString(dz[br])), ("%s%d__usdtStaking__" + toString(dz[bs])), ("%s%d__usdtArbitrage__" + toString(dz[bt])), ("%s%d__usdtPool__" + toString(dz[bu])), ("%s%d__wlgIssueTime__" + toString(dz[bv])), ("%s%d__wlgLastTeamActTime__" + toString(dz[bw])), ("%s%d__wlgTeamTotal__" + toString(dz[bx])), ("%s%d__wlgTeamAmLeft__" + toString(dz[by])), ("%s%d__wlgTeamAmAvailNow__" + toString(dz[bz])), ("%s%d__wlgTeamWlgold__" + toString(dz[bA])), ("%s%d__wlgActTotal__" + toString(dz[bB])), ("%s%d__wlgActAmLeft__" + toString(dz[bC])), ("%s%d__wlgActAmAvailNow__" + toString(dz[bD])), ("%s%d__wlgActWlgold__" + toString(dz[bE])), ("%s%d__wlgCurPeriod__" + toString(dz[bF])), ("%s%d__wlgAmLeftTotal__" + toString(dz[bG])), ("%s%d__wlgCurPeriodDistribution__" + toString(dz[bH])), ("%s%d__wlgLastUserTime__" + toString(dz[bI])), ("%s%d__wlgInvestFundTotal__" + toString(dz[bJ])), ("%s%d__wlgUserAmAvailNow__" + toString(dz[bK])), ("%s%d__wlgEffUserTime__" + toString(dz[bL])), ("%s%d__wlgIssue10AvailNow__" + toString(dz[bM])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(dz[bN])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(dz[bO])), ("%s%d__wlgUserIssue10AvailNow__" + toString(dz[bP])), ("%s%d__wlgLastIssue10Time__" + toString(dz[bQ])), ("%s%d__wlgTotalFarmingPower__" + toString(dz[bR])), ("%s%d__wlgAcresStakedTotal__" + toString(dz[bS]))])
502508 }
503509
504510
505511
506-@Callable(de)
507-func lotteryStatsREADONLY (bS) = {
508- let dy = (height / c)
512+@Callable(dg)
513+func lotteryStatsREADONLY (bU) = {
514+ let dA = (height / c)
509515 let R = (height / e)
510- let dz = (R - 1)
511- let dA = valueOrElse(getInteger(z, Q(bS, R)), 0)
512- let dB = valueOrElse(getInteger(z, Q(bS, dz)), 0)
513- let dC = valueOrElse(getInteger(z, S(R)), 0)
514- let dD = valueOrElse(getInteger(z, S(dz)), 0)
515- let dE = valueOrElse(getString(z, P(bS)), "")
516- $Tuple2(nil, [((("%s%d%d__totalTickets__" + toString(dD)) + a) + toString(dC)), ((("%s%d%d__userTickets__" + toString(dB)) + a) + toString(dA)), ("%s%d__blockchainWeek__" + toString(R)), ("%s%d__blockchainDay__" + toString(dy)), ("%s%d__blockchainMinute__" + toString((height % c))), ("%s%d__winningBetToday__" + toString(T(dy))), ("%s%s__usersBet__" + dE)])
516+ let dB = (R - 1)
517+ let dC = valueOrElse(getInteger(z, Q(bU, R)), 0)
518+ let dD = valueOrElse(getInteger(z, Q(bU, dB)), 0)
519+ let dE = valueOrElse(getInteger(z, S(R)), 0)
520+ let dF = valueOrElse(getInteger(z, S(dB)), 0)
521+ let dG = valueOrElse(getString(z, P(bU)), "")
522+ $Tuple2(nil, [((("%s%d%d__totalTickets__" + toString(dF)) + a) + toString(dE)), ((("%s%d%d__userTickets__" + toString(dD)) + a) + toString(dC)), ("%s%d__blockchainWeek__" + toString(R)), ("%s%d__blockchainDay__" + toString(dA)), ("%s%d__blockchainMinute__" + toString((height % c))), ("%s%d__winningBetToday__" + toString(T(dA))), ("%s%s__usersBet__" + dG)])
517523 }
518524
519525
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = take(drop(this.bytes, 1), 1)
77
88 let c = {
99 let d = b
1010 if ((base58'2W' == d))
1111 then 1440
1212 else if ((base58'2T' == d))
1313 then 60
1414 else throw("Unknown chain")
1515 }
1616
1717 let e = {
1818 let d = b
1919 if ((base58'2W' == d))
2020 then 10080
2121 else if ((base58'2T' == d))
2222 then 180
2323 else throw("Unknown chain")
2424 }
2525
2626 let f = {
2727 let d = b
2828 if ((base58'2W' == d))
2929 then 0
3030 else if ((base58'2T' == d))
3131 then 1146000
3232 else throw("Unknown chain")
3333 }
3434
3535 let g = {
3636 let d = b
3737 if ((base58'2W' == d))
3838 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
3939 else if ((base58'2T' == d))
4040 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
4141 else throw("Unknown chain")
4242 }
4343
4444 let h = {
4545 let d = b
4646 if ((base58'2W' == d))
4747 then "3PFwYta8biEz31zpeFe5DJK8wE5trSpQVF8"
4848 else if ((base58'2T' == d))
4949 then "3N7UuYar6264P58FBhVWKPQAh4Yua2hgngv"
5050 else throw("Unknown chain")
5151 }
5252
5353 let i = {
5454 let d = b
5555 if ((base58'2W' == d))
5656 then "3PLncXtS1U83D6cQbFD3H8rBHPLgzxSFKZ1"
5757 else if ((base58'2T' == d))
5858 then "3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm"
5959 else throw("Unknown chain")
6060 }
6161
6262 func j (k,l) = valueOrErrorMessage(getString(k, l), makeString(["mandatory ", toString(k), ".", l, " is not defined"], ""))
6363
6464
6565 let m = 1
6666
6767 let n = 2
6868
6969 let o = 4
7070
7171 let p = 5
7272
7373 func q () = "%s__restConfig"
7474
7575
7676 func r () = "%s__rest2Addr"
7777
7878
7979 func s (t) = split_4C(j(t, q()), a)
8080
8181
8282 func u (v,w) = valueOrErrorMessage(addressFromString(v[w]), ("Rest cfg doesn't contain address at index " + toString(w)))
8383
8484
8585 let x = addressFromStringValue(valueOrElse(getString(this, r()), h))
8686
8787 let v = s(x)
8888
8989 let y = u(v, m)
9090
9191 let z = u(v, n)
9292
9393 let A = u(v, o)
9494
9595 let B = u(v, p)
9696
9797 let C = "oldAcresContract"
9898
9999 func D (E) = ("lastWeekTxIdByUser_" + E)
100100
101101
102102 func F (E) = ("curWeekTxIdByUser_" + E)
103103
104104
105105 let G = "wlg_assetId"
106106
107107 let H = valueOrErrorMessage(getBinary(z, G), "WLGOLD is not issued yet")
108108
109109 let I = "acresAssetId"
110110
111111 let J = valueOrErrorMessage(getBinary(y, I), "ACRES is not issued yet")
112112
113113 func K (L) = ("stakedDuckByOwner_" + L)
114114
115115
116116 func M (E) = ("accountCustomNameByAddr_" + E)
117117
118118
119119 func N (E) = ("accRefBy_" + E)
120120
121121
122122 func O (E) = ("accReferrals_" + E)
123123
124124
125125 func P (E) = ("userBet_" + E)
126126
127127
128128 func Q (E,R) = ((("userWeekTickets_" + E) + "_") + toString(R))
129129
130130
131131 func S (R) = ("totalWeekTickets_" + toString(R))
132132
133133
134-func T (U) = (toInt(value(value(blockInfoByHeight(((U * c) + f))).vrf)) % 4)
134+func T (U) = {
135+ let V = (U * c)
136+ let W = if ((V > f))
137+ then V
138+ else (V + f)
139+ (toInt(value(value(blockInfoByHeight(((U * c) + f))).vrf)) % 4)
140+ }
135141
136142
137-func V (W) = {
138- let d = W
143+func X (Y) = {
144+ let d = Y
139145 if ($isInstanceOf(d, "(Int, Int, Int, Int)"))
140146 then {
141- let X = d
142- X
147+ let Z = d
148+ Z
143149 }
144150 else throw("fail to cast into (Int, Int, Int, Int)")
145151 }
146152
147153
148-func Y (W) = {
149- let d = W
154+func aa (Y) = {
155+ let d = Y
150156 if ($isInstanceOf(d, "(Int, Int, Int)"))
151157 then {
152- let X = d
153- X
158+ let Z = d
159+ Z
154160 }
155161 else throw("fail to cast into (Int, Int, Int)")
156162 }
157163
158164
159-func Z (W) = {
160- let d = W
165+func ab (Y) = {
166+ let d = Y
161167 if ($isInstanceOf(d, "(Int, Int)"))
162168 then {
163- let X = d
164- X
169+ let Z = d
170+ Z
165171 }
166172 else throw("fail to cast into (Int, Int)")
167173 }
168174
169175
170-let aa = 1000000
176+let ac = 1000000
171177
172-let ab = 100000000
178+let ad = 100000000
173179
174-let ac = 200000
180+let ae = 200000
175181
176-let ad = 100000
182+let af = 100000
177183
178-let ae = 400000
184+let ag = 400000
179185
180-let af = 31557600000
186+let ah = 31557600000
181187
182-let ag = 86400000
188+let ai = 86400000
183189
184-let ah = 1000000000
190+let aj = 1000000000
185191
186-let ai = 800000
192+let ak = 800000
187193
188-let aj = 100000
194+let al = 100000
189195
190-let ak = 100000
196+let am = 100000
191197
192-let al = 1731279600000
198+let an = 1731279600000
193199
194-let am = "teamAddr"
200+let ao = "teamAddr"
195201
196-let an = "lastClaimedTime_team"
202+let ap = "lastClaimedTime_team"
197203
198-let ao = "teamAmountLeft"
204+let aq = "teamAmountLeft"
199205
200-let ap = "lastClaimedTime_activities"
206+let ar = "lastClaimedTime_activities"
201207
202-let aq = "activitiesAmountLeft"
208+let as = "activitiesAmountLeft"
203209
204-let ar = "stakersAmountLeft"
210+let at = "stakersAmountLeft"
205211
206-func as (E) = ("lastClaimedTimeUser_" + E)
212+func au (E) = ("lastClaimedTimeUser_" + E)
207213
208214
209-func at (au,av) = fraction(au, (ae * (av + 1)), (6 * aa))
215+func av (aw,ax) = fraction(aw, (ag * (ax + 1)), (6 * ac))
210216
211217
212-let aw = "wlg_issue10Time"
218+let ay = "wlg_issue10Time"
213219
214-let ax = "wlg_issueTime"
220+let az = "wlg_issueTime"
215221
216-let ay = "wlg_issuedAmount"
222+let aA = "wlg_issuedAmount"
217223
218-let az = "zbill_issuedAmount"
224+let aB = "zbill_issuedAmount"
219225
220-func aA (E) = ("acresStakedAmountByUser_" + E)
226+func aC (E) = ("acresStakedAmountByUser_" + E)
221227
222228
223-let aB = "acresStakedAmountTotal"
229+let aD = "acresStakedAmountTotal"
224230
225-let aC = "totalFarmingPower"
231+let aE = "totalFarmingPower"
226232
227-let aD = 0
233+let aF = 0
228234
229-let aE = 1
235+let aG = 1
230236
231-let aF = 2
237+let aH = 2
232238
233-let aG = 3
239+let aI = 3
234240
235-let aH = 4
241+let aJ = 4
236242
237-func aI (E) = ("userFullBonus_" + E)
243+func aK (E) = ("userFullBonus_" + E)
238244
239245
240-let aJ = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
246+let aL = [0, 10, 20, 40, 80, 150, 250, 400, 700, 1000]
241247
242-func aK (aL) = {
243- let aM = ((aL + 99999999) / ab)
244- func aN (aO,aP) = if ((aP >= aM))
245- then aO
246- else (aO + 1)
248+func aM (aN) = {
249+ let aO = ((aN + 99999999) / ad)
250+ func aP (aQ,aR) = if ((aR >= aO))
251+ then aQ
252+ else (aQ + 1)
247253
248- let aQ = aJ
249- let aR = size(aQ)
250- let aS = 0
251- func aT (aU,aV) = if ((aV >= aR))
252- then aU
253- else aN(aU, aQ[aV])
254+ let aS = aL
255+ let aT = size(aS)
256+ let aU = 0
257+ func aV (aW,aX) = if ((aX >= aT))
258+ then aW
259+ else aP(aW, aS[aX])
254260
255- func aW (aU,aV) = if ((aV >= aR))
256- then aU
261+ func aY (aW,aX) = if ((aX >= aT))
262+ then aW
257263 else throw("List size exceeds 10")
258264
259- aW(aT(aT(aT(aT(aT(aT(aT(aT(aT(aT(aS, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
265+ aY(aV(aV(aV(aV(aV(aV(aV(aV(aV(aV(aU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
260266 }
261267
262268
263-func aX (aL) = ((aL * 20) * (aK(aL) + 4))
269+func aZ (aN) = ((aN * 20) * (aM(aN) + 4))
264270
265271
266-func aY (aL,aZ) = {
267- let ba = aX(aL)
268- $Tuple2(fraction(ba, (aa + aZ), aa), ba)
272+func ba (aN,bb) = {
273+ let bc = aZ(aN)
274+ $Tuple2(fraction(bc, (ac + bb), ac), bc)
269275 }
270276
271277
272-func bb (bc,y) = {
273- let bd = valueOrElse(getInteger(y, aC), 0)
274- let be = valueOrElse(getInteger(y, aA(bc)), 0)
275- let bf = valueOrElse(getInteger(y, aI(bc)), 0)
276- let bg = aY(be, bf)
277- let bh = bg._1
278- let bi = bg._2
279-[bd, bh, bi, bf]
278+func bd (be,y) = {
279+ let bf = valueOrElse(getInteger(y, aE), 0)
280+ let bg = valueOrElse(getInteger(y, aC(be)), 0)
281+ let bh = valueOrElse(getInteger(y, aK(be)), 0)
282+ let bi = ba(bg, bh)
283+ let bj = bi._1
284+ let bk = bi._2
285+[bf, bj, bk, bh]
280286 }
281287
282-
283-let bj = 0
284-
285-let bk = 1
286288
287289 let bl = 0
288290
289291 let bm = 1
290292
291-let bn = 2
293+let bn = 0
292294
293-let bo = 3
295+let bo = 1
294296
295-let bp = 4
297+let bp = 2
296298
297-let bq = 5
299+let bq = 3
298300
299-let br = 6
301+let br = 4
300302
301-let bs = 7
303+let bs = 5
302304
303-let bt = 8
305+let bt = 6
304306
305-let bu = 9
307+let bu = 7
306308
307-let bv = 10
309+let bv = 8
308310
309-let bw = 11
311+let bw = 9
310312
311-let bx = 12
313+let bx = 10
312314
313-let by = 13
315+let by = 11
314316
315-let bz = 14
317+let bz = 12
316318
317-let bA = 15
319+let bA = 13
318320
319-let bB = 16
321+let bB = 14
320322
321-let bC = 17
323+let bC = 15
322324
323-let bD = 18
325+let bD = 16
324326
325-let bE = 19
327+let bE = 17
326328
327-let bF = 20
329+let bF = 18
328330
329-let bG = 21
331+let bG = 19
330332
331-let bH = 22
333+let bH = 20
332334
333-let bI = 23
335+let bI = 21
334336
335-let bJ = 24
337+let bJ = 22
336338
337-let bK = 25
339+let bK = 23
338340
339-let bL = 26
341+let bL = 24
340342
341-let bM = 27
343+let bM = 25
342344
343-let bN = 28
345+let bN = 26
344346
345-let bO = 29
347+let bO = 27
346348
347-let bP = 30
349+let bP = 28
348350
349-let bQ = 31
351+let bQ = 29
350352
351-func bR (bS,bT,bU,bV) = {
352- let au = valueOrErrorMessage(getInteger(bT[aF], ay), "WLGOLD is not issued yet")
353- let bW = assetBalance(bT[aD], bU)
354- let bX = (assetBalance(bT[aF], bU) - bV)
355- let bY = assetBalance(bT[aG], bU)
356- let bZ = assetBalance(bT[aE], bU)
357- let ca = bT[aH]
358- let cb = (assetBalance(ca, bU) + valueOrElse(getInteger(ca, az), 0))
359- let cc = ((bZ + bX) + cb)
360- let cd = valueOrErrorMessage(getBinary(bT[aF], "wlg_assetId"), "Not initialized yet")
361- let ce = lastBlock.timestamp
362- let cf = valueOrErrorMessage(getInteger(bT[aF], ax), "Not initialized")
363- let cg = assetBalance(bT[aF], cd)
364- let ch = fraction(au, ac, aa)
365- let ci = valueOrElse(getInteger(bT[aF], ao), ch)
366- let cj = valueOrElse(getInteger(bT[aF], an), cf)
367- let ck = addressFromStringValue(value(getString(bT[aF], am)))
368- let cl = min([fraction(ch, (ce - cj), (3 * af)), ci])
369- let cm = assetBalance(ck, cd)
370- let cn = fraction(au, ad, aa)
371- let co = valueOrElse(getInteger(bT[aF], aq), cn)
372- let cp = valueOrElse(getInteger(bT[aF], ap), cf)
373- let cq = min([fraction(cn, (ce - cp), (3 * af)), co])
374- let cr = assetBalance(bT[aD], cd)
375- let cs = valueOrElse(getInteger(bT[aF], as(bS)), cf)
376- let ct = ((cs - cf) / af)
377- let cu = min([ce, (cf + (3 * af))])
378- let cv = min([((ce - cf) / af), 2])
379- let cw = bb(bS, bT[aE])
380- let cx = at(au, cv)
381- let cy = (cf + (af * cv))
382- let cz = (cf + (af * (cv - 1)))
383- let cA = fraction(cx, (cu - cs), af)
384- let cB = if ((ct == cv))
385- then cA
386- else if ((ct == (cv - 1)))
353+let bR = 30
354+
355+let bS = 31
356+
357+func bT (bU,bV,bW,bX) = {
358+ let aw = valueOrErrorMessage(getInteger(bV[aH], aA), "WLGOLD is not issued yet")
359+ let bY = assetBalance(bV[aF], bW)
360+ let bZ = (assetBalance(bV[aH], bW) - bX)
361+ let ca = assetBalance(bV[aI], bW)
362+ let cb = assetBalance(bV[aG], bW)
363+ let cc = bV[aJ]
364+ let cd = (assetBalance(cc, bW) + valueOrElse(getInteger(cc, aB), 0))
365+ let ce = ((cb + bZ) + cd)
366+ let cf = valueOrErrorMessage(getBinary(bV[aH], "wlg_assetId"), "Not initialized yet")
367+ let cg = lastBlock.timestamp
368+ let ch = valueOrErrorMessage(getInteger(bV[aH], az), "Not initialized")
369+ let ci = assetBalance(bV[aH], cf)
370+ let cj = fraction(aw, ae, ac)
371+ let ck = valueOrElse(getInteger(bV[aH], aq), cj)
372+ let cl = valueOrElse(getInteger(bV[aH], ap), ch)
373+ let cm = addressFromStringValue(value(getString(bV[aH], ao)))
374+ let cn = min([fraction(cj, (cg - cl), (3 * ah)), ck])
375+ let co = assetBalance(cm, cf)
376+ let cp = fraction(aw, af, ac)
377+ let cq = valueOrElse(getInteger(bV[aH], as), cp)
378+ let cr = valueOrElse(getInteger(bV[aH], ar), ch)
379+ let cs = min([fraction(cp, (cg - cr), (3 * ah)), cq])
380+ let ct = assetBalance(bV[aF], cf)
381+ let cu = valueOrElse(getInteger(bV[aH], au(bU)), ch)
382+ let cv = ((cu - ch) / ah)
383+ let cw = min([cg, (ch + (3 * ah))])
384+ let cx = min([((cg - ch) / ah), 2])
385+ let cy = bd(bU, bV[aG])
386+ let cz = av(aw, cx)
387+ let cA = (ch + (ah * cx))
388+ let cB = (ch + (ah * (cx - 1)))
389+ let cC = fraction(cz, (cw - cu), ah)
390+ let cD = if ((cv == cx))
391+ then cC
392+ else if ((cv == (cx - 1)))
387393 then {
388- let cC = fraction(at(au, (cv - 1)), (cy - cs), af)
389- (cC + cA)
394+ let cE = fraction(av(aw, (cx - 1)), (cA - cu), ah)
395+ (cE + cC)
390396 }
391397 else {
392- let cD = fraction(at(au, (cv - 2)), (cz - cs), af)
393- let cC = at(au, (cv - 1))
394- ((cD + cC) + cA)
398+ let cF = fraction(av(aw, (cx - 2)), (cB - cu), ah)
399+ let cE = av(aw, (cx - 1))
400+ ((cF + cE) + cC)
395401 }
396- let cE = valueOrElse(getInteger(bT[aF], ar), 0)
397- let cF = if ((cw[bj] != 0))
398- then fraction(cB, cw[bk], cw[bj])
402+ let cG = valueOrElse(getInteger(bV[aH], at), 0)
403+ let cH = if ((cy[bl] != 0))
404+ then fraction(cD, cy[bm], cy[bl])
399405 else 0
400- let cG = valueOrElse(getInteger(bT[aF], aw), al)
401- let cH = fraction(ah, max([(ce - cG), 0]), ag)
402- let cI = fraction(cH, aj, aa)
403- let cJ = fraction(cH, ak, aa)
404- let cK = max([(ce - max([al, cs])), 0])
405- let cL = if ((cw[bj] != 0))
406- then fraction(fraction(fraction(ah, cK, ag), cw[bk], cw[bj]), ai, aa)
406+ let cI = valueOrElse(getInteger(bV[aH], ay), an)
407+ let cJ = fraction(aj, max([(cg - cI), 0]), ai)
408+ let cK = fraction(cJ, al, ac)
409+ let cL = fraction(cJ, am, ac)
410+ let cM = max([(cg - max([an, cu])), 0])
411+ let cN = if ((cy[bl] != 0))
412+ then fraction(fraction(fraction(aj, cM, ai), cy[bm], cy[bl]), ak, ac)
407413 else 0
408- let cM = max([al, ce])
409- let cN = valueOrElse(getInteger(bT[aE], aB), 0)
410-[au, cg, fraction(cc, ab, au), cc, bW, bZ, bX, bY, cf, cj, ch, ci, cl, cm, cn, co, cq, cr, cv, cE, cx, cs, cb, cF, cu, cH, cI, cJ, cL, cM, cw[bj], cN]
414+ let cO = max([an, cg])
415+ let cP = valueOrElse(getInteger(bV[aG], aD), 0)
416+[aw, ci, fraction(ce, ad, aw), ce, bY, cb, bZ, ca, ch, cl, cj, ck, cn, co, cp, cq, cs, ct, cx, cG, cz, cu, cd, cH, cw, cJ, cK, cL, cN, cO, cy[bl], cP]
411417 }
412418
413419
414-func cO (cP) = {
415- let E = addressFromString(cP)
416- let cQ = if (isDefined(E))
420+func cQ (cR) = {
421+ let E = addressFromString(cR)
422+ let cS = if (isDefined(E))
417423 then wavesBalance(value(E))
418424 else BalanceDetails(0, 0, 0, 0)
419- let cR = if (isDefined(E))
425+ let cT = if (isDefined(E))
420426 then assetBalance(value(E), g)
421427 else 0
422- let cS = if (isDefined(E))
428+ let cU = if (isDefined(E))
423429 then assetBalance(value(E), H)
424430 else 0
425- let cT = valueOrElse(getString(y, M(cP)), cP)
426- let cU = N(cP)
427- let cV = getString(y, cU)
428- let cW = valueOrElse(getString(y, O(cP)), "")
429- let cX = valueOrElse(getString(y, D(cP)), "")
430- let cY = valueOrElse(getString(y, F(cP)), "")
431- let cZ = if (isDefined(E))
431+ let cV = valueOrElse(getString(y, M(cR)), cR)
432+ let cW = N(cR)
433+ let cX = getString(y, cW)
434+ let cY = valueOrElse(getString(y, O(cR)), "")
435+ let cZ = valueOrElse(getString(y, D(cR)), "")
436+ let da = valueOrElse(getString(y, F(cR)), "")
437+ let db = if (isDefined(E))
432438 then assetBalance(value(E), J)
433439 else 0
434- let da = valueOrElse(getInteger(y, aA(cP)), 0)
435- let db = aK(da)
436- let dc = bb(cP, y)
437- let dd = if ((db >= size(aJ)))
440+ let dc = valueOrElse(getInteger(y, aC(cR)), 0)
441+ let dd = aM(dc)
442+ let de = bd(cR, y)
443+ let df = if ((dd >= size(aL)))
438444 then 0
439- else (((aJ[db] * ab) + 1) - da)
440-[("%s%s__customName__" + cT), ("%s%s__referredBy__" + valueOrElse(cV, "")), ("%s%s__referrals__" + cW), ("%s%s__lastWeekTxId__" + cX), ("%s%s__curWeekTxId__" + cX), ("%s%d__wavesBalance__" + toString(cQ.available)), ("%s%d__usdtBalance__" + toString(cR)), ("%s%d__wlgoldBalance__" + toString(cS)), ("%s%d__acresBalance__" + toString(cZ)), ("%s%d__stakedAcres__" + toString(da)), ("%s%d__currentLvl__" + toString(db)), ("%s%d__acresToNextLvl__" + toString(dd)), ("%s%d__userFarmingPower__" + toString(dc[bk])), ("%s%d__totalFarmingPower__" + toString(dc[bj]))]
445+ else (((aL[dd] * ad) + 1) - dc)
446+[("%s%s__customName__" + cV), ("%s%s__referredBy__" + valueOrElse(cX, "")), ("%s%s__referrals__" + cY), ("%s%s__lastWeekTxId__" + cZ), ("%s%s__curWeekTxId__" + cZ), ("%s%d__wavesBalance__" + toString(cS.available)), ("%s%d__usdtBalance__" + toString(cT)), ("%s%d__wlgoldBalance__" + toString(cU)), ("%s%d__acresBalance__" + toString(db)), ("%s%d__stakedAcres__" + toString(dc)), ("%s%d__currentLvl__" + toString(dd)), ("%s%d__acresToNextLvl__" + toString(df)), ("%s%d__userFarmingPower__" + toString(de[bm])), ("%s%d__totalFarmingPower__" + toString(de[bl]))]
441447 }
442448
443449
444-@Callable(de)
445-func constructorV1 (bT) = if ((de.caller != this))
450+@Callable(dg)
451+func constructorV1 (bV) = if ((dg.caller != this))
446452 then throw("permissions denied")
447453 else {
448- func df (aO,dg) = (aO + "%s")
454+ func dh (aQ,di) = (aQ + "%s")
449455
450- let dh = {
451- let aQ = bT
452- let aR = size(aQ)
453- let aS = ""
454- func aT (aU,aV) = if ((aV >= aR))
455- then aU
456- else df(aU, aQ[aV])
456+ let dj = {
457+ let aS = bV
458+ let aT = size(aS)
459+ let aU = ""
460+ func aV (aW,aX) = if ((aX >= aT))
461+ then aW
462+ else dh(aW, aS[aX])
457463
458- func aW (aU,aV) = if ((aV >= aR))
459- then aU
464+ func aY (aW,aX) = if ((aX >= aT))
465+ then aW
460466 else throw("List size exceeds 10")
461467
462- aW(aT(aT(aT(aT(aT(aT(aT(aT(aT(aT(aS, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
468+ aY(aV(aV(aV(aV(aV(aV(aV(aV(aV(aV(aU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
463469 }
464-[StringEntry(q(), makeString(dh :: bT, a)), StringEntry(r(), toString(this))]
470+[StringEntry(q(), makeString(dj :: bV, a)), StringEntry(r(), toString(this))]
465471 }
466472
467473
468474
469-@Callable(de)
470-func walletInfoREADONLY (cP) = $Tuple2(nil, cO(cP))
475+@Callable(dg)
476+func walletInfoREADONLY (cR) = $Tuple2(nil, cQ(cR))
471477
472478
473479
474-@Callable(de)
475-func conversionInfoREADONLY (cP) = {
476- let di = addressFromStringValue(getStringValue(y, C))
477- let dj = Z(invoke(di, "unstakeAllAcresREADONLY", [cP], nil))
478- let dk = dj._1
479- let dl = dj._2
480- let dm = V(invoke(y, "unstakeLandsREADONLY", [cP], nil))
481- let dn = dm._1
482- let do = dm._2
483- let dp = dm._3
484- let dq = dm._4
485- let dr = addressFromStringValue(i)
486- let ds = valueOrElse(getString(dr, K(cP)), "")
487- let dt = if ((ds != ""))
488- then Y(invoke(dr, "unstakeDuckREADONLY", [ds, cP], nil))
480+@Callable(dg)
481+func conversionInfoREADONLY (cR) = {
482+ let dk = addressFromStringValue(getStringValue(y, C))
483+ let dl = ab(invoke(dk, "unstakeAllAcresREADONLY", [cR], nil))
484+ let dm = dl._1
485+ let dn = dl._2
486+ let do = X(invoke(y, "unstakeLandsREADONLY", [cR], nil))
487+ let dp = do._1
488+ let dq = do._2
489+ let dr = do._3
490+ let ds = do._4
491+ let dt = addressFromStringValue(i)
492+ let du = valueOrElse(getString(dt, K(cR)), "")
493+ let dv = if ((du != ""))
494+ then aa(invoke(dt, "unstakeDuckREADONLY", [du, cR], nil))
489495 else $Tuple3(0, 0, 0)
490- let du = dt._1
491- let dv = dt._2
492- let dw = dt._3
493- $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(dk)), ("%s%d__claimedAcres__" + toString(dl)), ("%s%d__acresFromPieces__" + toString(dn)), ("%s%d__acresFromRes__" + toString(do)), ("%s%d__acresFromMat__" + toString(dp)), ("%s%d__acresFromProd__" + toString(dq)), ("%s%d__acresFromDuckRes__" + toString(du)), ("%s%d__acresFromDuckMat__" + toString(dv)), ("%s%d__acresFromDuckProd__" + toString(dw))])
496+ let dw = dv._1
497+ let dx = dv._2
498+ let dy = dv._3
499+ $Tuple2(nil, [("%s%d__unstakedAcres__" + toString(dm)), ("%s%d__claimedAcres__" + toString(dn)), ("%s%d__acresFromPieces__" + toString(dp)), ("%s%d__acresFromRes__" + toString(dq)), ("%s%d__acresFromMat__" + toString(dr)), ("%s%d__acresFromProd__" + toString(ds)), ("%s%d__acresFromDuckRes__" + toString(dw)), ("%s%d__acresFromDuckMat__" + toString(dx)), ("%s%d__acresFromDuckProd__" + toString(dy))])
494500 }
495501
496502
497503
498-@Callable(de)
499-func wlgStatsREADONLY (bS) = {
500- let dx = bR(bS, [x, y, z, A, B], g, 0)
501- $Tuple2(nil, [("%s%d__wlgAmount__" + toString(dx[bl])), ("%s%d__wlgWlg__" + toString(dx[bm])), ("%s%d__wlgPrice__" + toString(dx[bn])), ("%s%d__usdtFunds__" + toString(dx[bo])), ("%s%d__usdtActivity__" + toString(dx[bp])), ("%s%d__usdtStaking__" + toString(dx[bq])), ("%s%d__usdtArbitrage__" + toString(dx[br])), ("%s%d__usdtPool__" + toString(dx[bs])), ("%s%d__wlgIssueTime__" + toString(dx[bt])), ("%s%d__wlgLastTeamActTime__" + toString(dx[bu])), ("%s%d__wlgTeamTotal__" + toString(dx[bv])), ("%s%d__wlgTeamAmLeft__" + toString(dx[bw])), ("%s%d__wlgTeamAmAvailNow__" + toString(dx[bx])), ("%s%d__wlgTeamWlgold__" + toString(dx[by])), ("%s%d__wlgActTotal__" + toString(dx[bz])), ("%s%d__wlgActAmLeft__" + toString(dx[bA])), ("%s%d__wlgActAmAvailNow__" + toString(dx[bB])), ("%s%d__wlgActWlgold__" + toString(dx[bC])), ("%s%d__wlgCurPeriod__" + toString(dx[bD])), ("%s%d__wlgAmLeftTotal__" + toString(dx[bE])), ("%s%d__wlgCurPeriodDistribution__" + toString(dx[bF])), ("%s%d__wlgLastUserTime__" + toString(dx[bG])), ("%s%d__wlgInvestFundTotal__" + toString(dx[bH])), ("%s%d__wlgUserAmAvailNow__" + toString(dx[bI])), ("%s%d__wlgEffUserTime__" + toString(dx[bJ])), ("%s%d__wlgIssue10AvailNow__" + toString(dx[bK])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(dx[bL])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(dx[bM])), ("%s%d__wlgUserIssue10AvailNow__" + toString(dx[bN])), ("%s%d__wlgLastIssue10Time__" + toString(dx[bO])), ("%s%d__wlgTotalFarmingPower__" + toString(dx[bP])), ("%s%d__wlgAcresStakedTotal__" + toString(dx[bQ]))])
504+@Callable(dg)
505+func wlgStatsREADONLY (bU) = {
506+ let dz = bT(bU, [x, y, z, A, B], g, 0)
507+ $Tuple2(nil, [("%s%d__wlgAmount__" + toString(dz[bn])), ("%s%d__wlgWlg__" + toString(dz[bo])), ("%s%d__wlgPrice__" + toString(dz[bp])), ("%s%d__usdtFunds__" + toString(dz[bq])), ("%s%d__usdtActivity__" + toString(dz[br])), ("%s%d__usdtStaking__" + toString(dz[bs])), ("%s%d__usdtArbitrage__" + toString(dz[bt])), ("%s%d__usdtPool__" + toString(dz[bu])), ("%s%d__wlgIssueTime__" + toString(dz[bv])), ("%s%d__wlgLastTeamActTime__" + toString(dz[bw])), ("%s%d__wlgTeamTotal__" + toString(dz[bx])), ("%s%d__wlgTeamAmLeft__" + toString(dz[by])), ("%s%d__wlgTeamAmAvailNow__" + toString(dz[bz])), ("%s%d__wlgTeamWlgold__" + toString(dz[bA])), ("%s%d__wlgActTotal__" + toString(dz[bB])), ("%s%d__wlgActAmLeft__" + toString(dz[bC])), ("%s%d__wlgActAmAvailNow__" + toString(dz[bD])), ("%s%d__wlgActWlgold__" + toString(dz[bE])), ("%s%d__wlgCurPeriod__" + toString(dz[bF])), ("%s%d__wlgAmLeftTotal__" + toString(dz[bG])), ("%s%d__wlgCurPeriodDistribution__" + toString(dz[bH])), ("%s%d__wlgLastUserTime__" + toString(dz[bI])), ("%s%d__wlgInvestFundTotal__" + toString(dz[bJ])), ("%s%d__wlgUserAmAvailNow__" + toString(dz[bK])), ("%s%d__wlgEffUserTime__" + toString(dz[bL])), ("%s%d__wlgIssue10AvailNow__" + toString(dz[bM])), ("%s%d__wlgMarketingIssue10AvailNow__" + toString(dz[bN])), ("%s%d__wlgTeamIssue10AvailNow__" + toString(dz[bO])), ("%s%d__wlgUserIssue10AvailNow__" + toString(dz[bP])), ("%s%d__wlgLastIssue10Time__" + toString(dz[bQ])), ("%s%d__wlgTotalFarmingPower__" + toString(dz[bR])), ("%s%d__wlgAcresStakedTotal__" + toString(dz[bS]))])
502508 }
503509
504510
505511
506-@Callable(de)
507-func lotteryStatsREADONLY (bS) = {
508- let dy = (height / c)
512+@Callable(dg)
513+func lotteryStatsREADONLY (bU) = {
514+ let dA = (height / c)
509515 let R = (height / e)
510- let dz = (R - 1)
511- let dA = valueOrElse(getInteger(z, Q(bS, R)), 0)
512- let dB = valueOrElse(getInteger(z, Q(bS, dz)), 0)
513- let dC = valueOrElse(getInteger(z, S(R)), 0)
514- let dD = valueOrElse(getInteger(z, S(dz)), 0)
515- let dE = valueOrElse(getString(z, P(bS)), "")
516- $Tuple2(nil, [((("%s%d%d__totalTickets__" + toString(dD)) + a) + toString(dC)), ((("%s%d%d__userTickets__" + toString(dB)) + a) + toString(dA)), ("%s%d__blockchainWeek__" + toString(R)), ("%s%d__blockchainDay__" + toString(dy)), ("%s%d__blockchainMinute__" + toString((height % c))), ("%s%d__winningBetToday__" + toString(T(dy))), ("%s%s__usersBet__" + dE)])
516+ let dB = (R - 1)
517+ let dC = valueOrElse(getInteger(z, Q(bU, R)), 0)
518+ let dD = valueOrElse(getInteger(z, Q(bU, dB)), 0)
519+ let dE = valueOrElse(getInteger(z, S(R)), 0)
520+ let dF = valueOrElse(getInteger(z, S(dB)), 0)
521+ let dG = valueOrElse(getString(z, P(bU)), "")
522+ $Tuple2(nil, [((("%s%d%d__totalTickets__" + toString(dF)) + a) + toString(dE)), ((("%s%d%d__userTickets__" + toString(dD)) + a) + toString(dC)), ("%s%d__blockchainWeek__" + toString(R)), ("%s%d__blockchainDay__" + toString(dA)), ("%s%d__blockchainMinute__" + toString((height % c))), ("%s%d__winningBetToday__" + toString(T(dA))), ("%s%s__usersBet__" + dG)])
517523 }
518524
519525

github/deemru/w8io/169f3d6 
312.33 ms