tx · 2Lg6RbFJLZjLyx7EP5KjYbkTxoE37LvrQiGiaFEvLY1b

3Mxb9hg3VkxWWfcEPfniqSmk3iSQXkgeCVU:  -0.01800000 Waves

2022.10.27 13:04 [2290686] smart account 3Mxb9hg3VkxWWfcEPfniqSmk3iSQXkgeCVU > SELF 0.00000000 Waves

{ "type": 13, "id": "2Lg6RbFJLZjLyx7EP5KjYbkTxoE37LvrQiGiaFEvLY1b", "fee": 1800000, "feeAssetId": null, "timestamp": 1666865082680, "version": 2, "chainId": 84, "sender": "3Mxb9hg3VkxWWfcEPfniqSmk3iSQXkgeCVU", "senderPublicKey": "GZzJgGQU6QzA6LPQF8TWUqoDV2FS9ecA4BWmBusebnut", "proofs": [ "3orpTnGGzuYmi6oZHhRr2ZQuZvb9J23Tn2jRyXMRUjhiKSCLGsR6BepAvf66asYjawpSw3bArt3CmocwoRBXQhMZ" ], "script": "base64:BgJgCAISBAoCCAgSCAoGCAgICAgIEgkKBwgICAgICAgSAwoBCBIECgIICBIGCgQICAgIEggKBggICAEBARIJCgcICAgIAQEBEgUKAwgIBBIECgIICBIFCgMICAgSABIDCgEIMwAHVkVSU0lPTgIFMS4wLjABDmdldFN0cmluZ0J5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgAACHVzZXJEYXBwCQEFdmFsdWUBCQCmCAEJAQ5nZXRTdHJpbmdCeUtleQECD2NvbmZfdXNlcnNfZGFwcAALZmVlUmVjZWl2ZXIJAQ5nZXRTdHJpbmdCeUtleQECEWNvbmZfZmVlX3JlY2VpdmVyAAtzaWduQXNzZXRJZAkA2QQBCQEOZ2V0U3RyaW5nQnlLZXkBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X1NJR04ABWNocmlzCQEOZ2V0U3RyaW5nQnlLZXkBAgxjb25mX2FkbWluXzEBD2dldEludGVnZXJCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAQ9nZXRCb29sZWFuQnlLZXkBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQNrZXkHAAtkYXBwUnVubmluZwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQh1c2VyRGFwcAIUY29uZl9kYXBwX2lzX3J1bm5pbmcGAA5tYWludGVuYW5jZU1TRwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQh1c2VyRGFwcAIUY29uZl9tYWludGVuYW5jZV9tc2cCAAANdXNlclN1c3BlbmRlZAIJU1VTUEVOREVEABB1c2VyVW5yZWdpc3RlcmVkAgxVTlJFR0lTVEVSRUQBC3ZhbGlkYXRlQ0lEAQNjaWQDCQEIY29udGFpbnMCBQNjaWQCAS8DAwkAZgIATAkAsQIBBQNjaWQJAAACCQCxAgEJAJEDAgkAtQkCBQNjaWQCAS8AAAA7BwkAZgIAEAkAsQIBCQCRAwIJALUJAgUDY2lkAgEvAAEHBwAHc2lnbkN1dAACAQ1rZXlVc2VyU3RhdHVzAQZjYWxsZXIJAKwCAgIMdXNlcl9zdGF0dXNfBQZjYWxsZXIBFmtleUV2ZW50T3duZXJCeUV2ZW50SWQBB2V2ZW50SWQJAKwCAgIQZ2V0X2V2ZW50X293bmVyXwUHZXZlbnRJZAERa2V5RXZlbnRBZGRlZERhdGUCBmNhbGxlcgdldmVudElkCQCsAgIJAKwCAgkArAICAhBldmVudF9hZGRlZERhdGVfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50RGF0ZQIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X2RhdGVfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50TmFtZQIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X25hbWVfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50RGVzYwIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X2Rlc2NfBQdldmVudElkAgFfBQZjYWxsZXIBEmtleUV2ZW50RGlzcGxheUNpZAIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICEWV2ZW50X2Rpc3BsYXlDaWRfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50VGFncwIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X3RhZ3NfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50RmxhZwIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X2ZsYWdfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50Tm90ZQIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X25vdGVfBQdldmVudElkAgFfBQZjYWxsZXIBD2tleUV2ZW50Q3Jhd2xlcgIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICEWV2ZW50X2NyYXdsZXJDaWRfBQdldmVudElkAgFfBQZjYWxsZXIBGGtleUV2ZW50VG90YWxUaWNrZXRUeXBlcwIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICF2V2ZW50X3RvdGFsVGlja2V0VHlwZXNfBQdldmVudElkAgFfBQZjYWxsZXIBGmtleUV2ZW50VG90YWxUaWNrZXRzSXNzdWVkAgZjYWxsZXIHZXZlbnRJZAkArAICCQCsAgIJAKwCAgISZXZlbnRfdG90YWxJc3N1ZWRfBQdldmVudElkAgFfBQZjYWxsZXIBEGtleUV2ZW50Q2FuY2VsZWQCBmNhbGxlcgdldmVudElkCQCsAgIJAKwCAgkArAICAg9ldmVudF9jYW5jZWxlZF8FB2V2ZW50SWQCAV8FBmNhbGxlcgEWa2V5RXZlbnRDYW5jZWxlZFJlYXNvbgIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICFWV2ZW50X2NhbmNlbGVkUmVhc29uXwUHZXZlbnRJZAIBXwUGY2FsbGVyAQ1rZXlUaWNrZXROYW1lAwZjYWxsZXIHZXZlbnRJZAh0aWNrZXRJZAkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDHRpY2tldF9uYW1lXwUHZXZlbnRJZAIBXwUGY2FsbGVyAgFfBQh0aWNrZXRJZAENa2V5VGlja2V0RGVzYwMGY2FsbGVyB2V2ZW50SWQIdGlja2V0SWQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgx0aWNrZXRfZGVzY18FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQBDmtleVRpY2tldFByaWNlAwZjYWxsZXIHZXZlbnRJZAh0aWNrZXRJZAkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDXRpY2tldF9wcmljZV8FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQBDWtleVRpY2tldERhdGUDBmNhbGxlcgdldmVudElkCHRpY2tldElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIMdGlja2V0X2RhdGVfBQdldmVudElkAgFfBQZjYWxsZXICAV8FCHRpY2tldElkARVrZXlUaWNrZXRNYXhBdmFpbGFibGUDBmNhbGxlcgdldmVudElkCHRpY2tldElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIUdGlja2V0X21heEF2YWlsYWJsZV8FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQBDWtleVRpY2tldFNvbGQDBmNhbGxlcgdldmVudElkCHRpY2tldElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIMdGlja2V0X3NvbGRfBQdldmVudElkAgFfBQZjYWxsZXICAV8FCHRpY2tldElkAQ9rZXlUaWNrZXRPblNhbGUDBmNhbGxlcgdldmVudElkCHRpY2tldElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIOdGlja2V0X29uU2FsZV8FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQBE2tleVRpY2tldEFtb3VudFVzZWQEBmNhbGxlcgdldmVudElkCHRpY2tldElkBW5mdElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICEnRpY2tldF9hbW91bnRVc2VkXwUHZXZlbnRJZAIBXwUGY2FsbGVyAgFfBQh0aWNrZXRJZAIBXwUFbmZ0SWQBD2tleVRpY2tldE1heFVzZQMGY2FsbGVyB2V2ZW50SWQIdGlja2V0SWQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg50aWNrZXRfbWF4VXNlXwUHZXZlbnRJZAIBXwUGY2FsbGVyAgFfBQh0aWNrZXRJZAEUa2V5VGlja2V0VG90YWxJc3N1ZWQDBmNhbGxlcgdldmVudElkCHRpY2tldElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgITdGlja2V0X3RvdGFsSXNzdWVkXwUHZXZlbnRJZAIBXwUGY2FsbGVyAgFfBQh0aWNrZXRJZAEOdmFsaWRhdGVTdHJpbmcCA3N0cgNtYXgDCQAAAgkAsQIBBQNzdHIAAAkAAgECGEZpZWxkIGNhbm5vdCBiZSBpcyBlbXB0eQMJAGYCCQCxAgEFA3N0cgUDbWF4CQACAQkArAICBQNzdHICDCBpcyB0b28gbG9uZwYBC3ZhbGlkYXRlSW50AQNudW0JAGYCAAAFA251bQEWZ2V0RXZlbnRPd25lckJ5RXZlbnRJZAEHZXZlbnRJZAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEWa2V5RXZlbnRPd25lckJ5RXZlbnRJZAEFB2V2ZW50SWQCAAEMdmFsaWRhdGVVc2VyAQZjYWxsZXIECnVzZXJTdGF0dXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUIdXNlckRhcHAJAQ1rZXlVc2VyU3RhdHVzAQUGY2FsbGVyBRB1c2VyVW5yZWdpc3RlcmVkAwkAAAIFCnVzZXJTdGF0dXMFEHVzZXJVbnJlZ2lzdGVyZWQCLlJlZ2lzdGVyIHRoaXMgYWNjb3VudCBmaXJzdCB3aXRoICJBY2NvdW50IiB0YWIDCQAAAgUKdXNlclN0YXR1cwUNdXNlclN1c3BlbmRlZAIRQWNjb3VudCBzdXNwZW5kZWQCAAERdmFsaWRhdGVFdmVudERhdGEGBmNhbGxlcgpjaWREaXNwbGF5BG5hbWULZGVzY3JpcHRpb24EdGFncwRkYXRlBAljaGVja1VzZXIJAQx2YWxpZGF0ZVVzZXIBBQZjYWxsZXIDCQECIT0CBQljaGVja1VzZXICAAkAAgEFCWNoZWNrVXNlcgMJAAACCQCxAgEFCmNpZERpc3BsYXkAAAkAAgECG0Rpc3BsYXkgQ0lEIGNhbm5vdCBiZSBlbXB0eQMJAQEhAQkBC3ZhbGlkYXRlQ0lEAQUKY2lkRGlzcGxheQkAAgECEFByb2JsZW0gd2l0aCBDSUQDCQEBIQEJAQ52YWxpZGF0ZVN0cmluZwIFBG5hbWUArAIJAAIBAhIzMDAgQ2hhci4gbWF4IG5hbWUDCQEBIQEJAQ52YWxpZGF0ZVN0cmluZwIFC2Rlc2NyaXB0aW9uALgXCQACAQIaMzAwMCBDaGFyLiBtYXggZGVzY3JpcHRpb24DCQEBIQEJAQ52YWxpZGF0ZVN0cmluZwIFBGRhdGUA6AcJAAIBAhMxMDAwIENoYXIuIG1heCBkYXRlAwkAZgIJAJADAQkAtQkCBQR0YWdzAgEsAAUJAAIBAgs1IHRhZ3MgbWF4LgIAARJ2YWxpZGF0ZVRpY2tldERhdGEHB2V2ZW50SWQGY2FsbGVyBG5hbWULZGVzY3JpcHRpb24FcHJpY2UMbWF4QXZhaWxhYmxlBm1heFVzZQQJY2hlY2tVc2VyCQEMdmFsaWRhdGVVc2VyAQUGY2FsbGVyAwkBAiE9AgUJY2hlY2tVc2VyAgAJAAIBBQljaGVja1VzZXIDCQEBIQEJAQ52YWxpZGF0ZVN0cmluZwIFBG5hbWUAyAEJAAIBAhIxMDAgQ2hhci4gbWF4IG5hbWUDCQEBIQEJAQ52YWxpZGF0ZVN0cmluZwIFC2Rlc2NyaXB0aW9uAOgHCQACAQIaMTAwMCBDaGFyLiBtYXggZGVzY3JpcHRpb24DAwMJAQt2YWxpZGF0ZUludAEFBXByaWNlBgkBC3ZhbGlkYXRlSW50AQUGbWF4VXNlBgkBC3ZhbGlkYXRlSW50AQUMbWF4QXZhaWxhYmxlCQACAQIUUG9zaXRpdmUgYW1vdW50IG9ubHkDCQEBIQEJAQ52YWxpZGF0ZVN0cmluZwIFC2Rlc2NyaXB0aW9uAOgHCQACAQIaMTAwMCBDaGFyLiBtYXggZGVzY3JpcHRpb24CAAEMaWRDYWxsZXJEYXRlAQFpAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHCQCVCgMJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAEJaXNQYXltZW50AQFpAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECE05vIHBheW1lbnQgYXR0YWNoZWQEB3BheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQGYW1vdW50CQEFdmFsdWUBCAUHcGF5bWVudAZhbW91bnQJAJQKAgUHcGF5bWVudAUGYW1vdW50ARR2YWxpZGF0ZVByaWNlQXNzZXRJZAMBaQxwcmljZUFzc2V0SWQMYXJ0d29ya1ByaWNlBAskdDA2NTA4NjU0NAkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQskdDA2NTA4NjU0NAJfMQQGYW1vdW50CAULJHQwNjUwODY1NDQCXzIDCQEBIQEJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkCQACAQIUV3JvbmcgYXNzZXQgYXR0YWNoZWQEB2Fzc2V0SWQDAwkAZgIJALECAQUMcHJpY2VBc3NldElkAAAJAAACCQDYBAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQFDHByaWNlQXNzZXRJZAcIBQdwYXltZW50B2Fzc2V0SWQJAAIBAhRXcm9uZyBhc3NldCBhdHRhY2hlZAMJAQIhPQIFDGFydHdvcmtQcmljZQUGYW1vdW50CQACAQIaUGF5bWVudCBhbW91bnQgZG9uJ3QgbWF0Y2gJAJQKAgUGYW1vdW50BQdhc3NldElkAQxpc0V2ZW50T3duZXICB2V2ZW50SWQGY2FsbGVyBApldmVudE93bmVyCQEWZ2V0RXZlbnRPd25lckJ5RXZlbnRJZAEFB2V2ZW50SWQDCQAAAgUKZXZlbnRPd25lcgIACQACAQIPRXZlbnQgbm90IGZvdW5kCQAAAgUKZXZlbnRPd25lcgUGY2FsbGVyAQt0aWNrZXRFeGlzdAMGY2FsbGVyB2V2ZW50SWQIdGlja2V0SWQEBnRpY2tldAkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVRpY2tldE5hbWUDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQECIT0CCQCxAgEFBnRpY2tldAAAAQ9ldmVudElzQ2FuY2VsZWQCBmlzc3VlcgdldmVudElkCQEPZ2V0Qm9vbGVhbkJ5S2V5AQkBEGtleUV2ZW50Q2FuY2VsZWQCBQZpc3N1ZXIFB2V2ZW50SWQNBmludm9rZQEHc2V0Q29uZgIDa2V5A3ZhbAQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgMJAQhjb250YWlucwIFA2tleQIFY29uZl8JAMwIAgkBC1N0cmluZ0VudHJ5AgUDa2V5BQN2YWwFA25pbAkAAgECIEVudHJpZXMgc3RhcnRpbmcgd2l0aCBjb25mXyBvbmx5CQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwFpAQhhZGRFdmVudAYEbmFtZQtkZXNjcmlwdGlvbgR0YWdzCmNpZERpc3BsYXkHY3Jhd2xlcgRkYXRlBAskdDA3ODczNzkyMgkBDGlkQ2FsbGVyRGF0ZQEFAWkEB2V2ZW50SWQIBQskdDA3ODczNzkyMgJfMQQGY2FsbGVyCAULJHQwNzg3Mzc5MjICXzIECWFkZGVkRGF0ZQgFCyR0MDc4NzM3OTIyAl8zBAljaGVja1VzZXIJAQx2YWxpZGF0ZVVzZXIBBQZjYWxsZXIDCQECIT0CBQljaGVja1VzZXICAAkAAgEFCWNoZWNrVXNlcgQNdmFsaWRhdGVFdmVudAkBEXZhbGlkYXRlRXZlbnREYXRhBgUGY2FsbGVyBQpjaWREaXNwbGF5BQRuYW1lBQtkZXNjcmlwdGlvbgUEdGFncwUEZGF0ZQMJAQIhPQIFDXZhbGlkYXRlRXZlbnQCAAkAAgECFVNvbWV0aGluZyB3ZW50IHdyb25nIQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEWtleUV2ZW50QWRkZWREYXRlAgUGY2FsbGVyBQdldmVudElkBQlhZGRlZERhdGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleUV2ZW50RGF0ZQIFBmNhbGxlcgUHZXZlbnRJZAUEZGF0ZQkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5RXZlbnROYW1lAgUGY2FsbGVyBQdldmVudElkBQRuYW1lCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlFdmVudERlc2MCBQZjYWxsZXIFB2V2ZW50SWQFC2Rlc2NyaXB0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJARJrZXlFdmVudERpc3BsYXlDaWQCBQZjYWxsZXIFB2V2ZW50SWQFCmNpZERpc3BsYXkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleUV2ZW50VGFncwIFBmNhbGxlcgUHZXZlbnRJZAUEdGFncwkAzAgCCQELU3RyaW5nRW50cnkCCQEPa2V5RXZlbnRDcmF3bGVyAgUGY2FsbGVyBQdldmVudElkBQdjcmF3bGVyCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEaa2V5RXZlbnRUb3RhbFRpY2tldHNJc3N1ZWQCBQZjYWxsZXIFB2V2ZW50SWQAAAkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBEGtleUV2ZW50Q2FuY2VsZWQCBQZjYWxsZXIFB2V2ZW50SWQHCQDMCAIJAQtTdHJpbmdFbnRyeQIJARZrZXlFdmVudE93bmVyQnlFdmVudElkAQUHZXZlbnRJZAUGY2FsbGVyBQNuaWwBaQEJZWRpdEV2ZW50BwdldmVudElkBG5hbWULZGVzY3JpcHRpb24EdGFncwpjaWREaXNwbGF5B2NyYXdsZXIEZGF0ZQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQGY2FsbGVyCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMECWNoZWNrVXNlcgkBDHZhbGlkYXRlVXNlcgEFBmNhbGxlcgMJAQIhPQIFCWNoZWNrVXNlcgIACQACAQUJY2hlY2tVc2VyBA12YWxpZGF0ZUV2ZW50CQERdmFsaWRhdGVFdmVudERhdGEGBQZjYWxsZXIFCmNpZERpc3BsYXkFBG5hbWUFC2Rlc2NyaXB0aW9uBQR0YWdzBQRkYXRlAwkBAiE9AgUNdmFsaWRhdGVFdmVudAIACQACAQIVU29tZXRoaW5nIHdlbnQgd3JvbmchBAplbnRyeUV4aXN0CQEOZ2V0U3RyaW5nQnlLZXkBCQEMa2V5RXZlbnROYW1lAgUGY2FsbGVyBQdldmVudElkAwkAAAIFCmVudHJ5RXhpc3QCAAkAAgECD0VudHJ5IG5vdCBmb3VuZAQEZmxhZwkBDmdldFN0cmluZ0J5S2V5AQkBDGtleUV2ZW50RmxhZwIFBmNhbGxlcgUHZXZlbnRJZAMJAAACBQRmbGFnAgdJTExFR0FMCQACAQIbQ2Fubm90IHVwZGF0ZSBJTExFR0FMIEV2ZW50CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlFdmVudE5hbWUCBQZjYWxsZXIFB2V2ZW50SWQFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleUV2ZW50RGF0ZQIFBmNhbGxlcgUHZXZlbnRJZAUEZGF0ZQkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5RXZlbnREZXNjAgUGY2FsbGVyBQdldmVudElkBQtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5RXZlbnRUYWdzAgUGY2FsbGVyBQdldmVudElkBQR0YWdzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9rZXlFdmVudENyYXdsZXICBQZjYWxsZXIFB2V2ZW50SWQFB2NyYXdsZXIFA25pbAFpAQtkZWxldGVFdmVudAEHZXZlbnRJZAQNJHQwMTAxNDIxMDE4NgkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMTAxNDIxMDE4NgJfMQQGY2FsbGVyCAUNJHQwMTAxNDIxMDE4NgJfMgQJYWRkZWREYXRlCAUNJHQwMTAxNDIxMDE4NgJfMwQJY2hlY2tVc2VyCQEMdmFsaWRhdGVVc2VyAQUGY2FsbGVyAwkBAiE9AgUJY2hlY2tVc2VyAgAJAAIBBQljaGVja1VzZXIDCQEBIQEJAQxpc0V2ZW50T3duZXICBQdldmVudElkBQZjYWxsZXIJAAIBAiNZb3UgYXJlIG5vdCB0aGUgb3duZXIgb2YgdGhpcyBldmVudAQNZXZlbnRUb3RhbE5GVAkBD2dldEludGVnZXJCeUtleQEJARprZXlFdmVudFRvdGFsVGlja2V0c0lzc3VlZAIFBmNhbGxlcgUHZXZlbnRJZAMJAQIhPQIFDWV2ZW50VG90YWxORlQAAAkAAgECLUNhbm5vdCBkZWxldGUgZXZlbnQgd2l0aCBhbHJlYWR5IHNvbGQgdGlja2V0cwQXdG90YWxUaWNrZXRUeXBlRm9yRXZlbnQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEYa2V5RXZlbnRUb3RhbFRpY2tldFR5cGVzAgUGY2FsbGVyBQdldmVudElkAwkAZgIFF3RvdGFsVGlja2V0VHlwZUZvckV2ZW50AAAJAAIBAhhEZWxldGUgYWxsIHRpY2tldHMgZmlyc3QJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEWtleUV2ZW50QWRkZWREYXRlAgUGY2FsbGVyBQdldmVudElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQxrZXlFdmVudERhdGUCBQZjYWxsZXIFB2V2ZW50SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDGtleUV2ZW50TmFtZQIFBmNhbGxlcgUHZXZlbnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEMa2V5RXZlbnREZXNjAgUGY2FsbGVyBQdldmVudElkCQDMCAIJAQtEZWxldGVFbnRyeQEJARJrZXlFdmVudERpc3BsYXlDaWQCBQZjYWxsZXIFB2V2ZW50SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDGtleUV2ZW50VGFncwIFBmNhbGxlcgUHZXZlbnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEPa2V5RXZlbnRDcmF3bGVyAgUGY2FsbGVyBQdldmVudElkCQDMCAIJAQtEZWxldGVFbnRyeQEJARprZXlFdmVudFRvdGFsVGlja2V0c0lzc3VlZAIFBmNhbGxlcgUHZXZlbnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEQa2V5RXZlbnRDYW5jZWxlZAIFBmNhbGxlcgUHZXZlbnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEWa2V5RXZlbnRPd25lckJ5RXZlbnRJZAEFB2V2ZW50SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBGGtleUV2ZW50VG90YWxUaWNrZXRUeXBlcwIFBmNhbGxlcgUHZXZlbnRJZAUDbmlsAWkBC2NhbmNlbEV2ZW50AgdldmVudElkBnJlYXNvbgQNJHQwMTE1MjcxMTU3MQkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMTE1MjcxMTU3MQJfMQQGY2FsbGVyCAUNJHQwMTE1MjcxMTU3MQJfMgQJYWRkZWREYXRlCAUNJHQwMTE1MjcxMTU3MQJfMwQJY2hlY2tVc2VyCQEMdmFsaWRhdGVVc2VyAQUGY2FsbGVyAwkBAiE9AgUJY2hlY2tVc2VyAgAJAAIBBQljaGVja1VzZXIDCQEBIQEJAQxpc0V2ZW50T3duZXICBQdldmVudElkBQZjYWxsZXIJAAIBAiNZb3UgYXJlIG5vdCB0aGUgb3duZXIgb2YgdGhpcyBldmVudAkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBEGtleUV2ZW50Q2FuY2VsZWQCBQZjYWxsZXIFB2V2ZW50SWQGCQDMCAIJAQtTdHJpbmdFbnRyeQIJARZrZXlFdmVudENhbmNlbGVkUmVhc29uAgUGY2FsbGVyBQdldmVudElkBQZyZWFzb24FA25pbAFpAQlmbGFnRXZlbnQEB2V2ZW50SWQEYWRkcgRmbGFnBG5vdGUEDSR0MDEyMDA2MTIwMzkJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDEyMDA2MTIwMzkCXzEEBmNhbGxlcggFDSR0MDEyMDA2MTIwMzkCXzIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQVjaHJpcwkAzAgCCQClCAEFBHRoaXMFA25pbAUGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgIACQDMCAICD0NIQU5HRV9SRVFVSVJFRAkAzAgCAgdGTEFHR0VECQDMCAICB0lMTEVHQUwFA25pbAUEZmxhZwkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5RXZlbnRGbGFnAgUEYWRkcgUHZXZlbnRJZAUEZmxhZwkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5RXZlbnROb3RlAgUEYWRkcgUHZXZlbnRJZAUEbm90ZQUDbmlsCQACAQkArAICAg5Vbmtub3cgc3RhdHVzIAUEZmxhZwkAAgECE1lvdSBhcmUgbm90IGFsbG93ZWQBaQEJYWRkVGlja2V0BgdldmVudElkBG5hbWULZGVzY3JpcHRpb24FcHJpY2UMbWF4QXZhaWxhYmxlBk1heFVzZQQNJHQwMTI1NDAxMjU4MAkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMTI1NDAxMjU4MAJfMQQGY2FsbGVyCAUNJHQwMTI1NDAxMjU4MAJfMgQEZGF0ZQgFDSR0MDEyNTQwMTI1ODACXzMECWNoZWNrVXNlcgkBDHZhbGlkYXRlVXNlcgEFBmNhbGxlcgMJAQIhPQIFCWNoZWNrVXNlcgIACQACAQUJY2hlY2tVc2VyAwkBD2V2ZW50SXNDYW5jZWxlZAIFBmNhbGxlcgUHZXZlbnRJZAkAAgECGEV2ZW50IGhhdmUgYmVlbiBjYW5jZWxlZAMJAQEhAQkBDGlzRXZlbnRPd25lcgIFB2V2ZW50SWQFBmNhbGxlcgkAAgECI1lvdSBhcmUgbm90IHRoZSBvd25lciBvZiB0aGlzIGV2ZW50BA52YWxpZGF0ZVRpY2tldAkBEnZhbGlkYXRlVGlja2V0RGF0YQcFB2V2ZW50SWQFBmNhbGxlcgUEbmFtZQULZGVzY3JpcHRpb24FBXByaWNlBQxtYXhBdmFpbGFibGUFBk1heFVzZQMJAQIhPQIFDnZhbGlkYXRlVGlja2V0AgAJAAIBAhVTb21ldGhpbmcgd2VudCB3cm9uZyEEF3RvdGFsVGlja2V0VHlwZUZvckV2ZW50CQEPZ2V0SW50ZWdlckJ5S2V5AQkBGGtleUV2ZW50VG90YWxUaWNrZXRUeXBlcwIFBmNhbGxlcgUHZXZlbnRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VGlja2V0TmFtZQMFBmNhbGxlcgUHZXZlbnRJZAUCaWQFBG5hbWUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ1rZXlUaWNrZXREYXRlAwUGY2FsbGVyBQdldmVudElkBQJpZAUEZGF0ZQkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VGlja2V0RGVzYwMFBmNhbGxlcgUHZXZlbnRJZAUCaWQFC2Rlc2NyaXB0aW9uCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOa2V5VGlja2V0UHJpY2UDBQZjYWxsZXIFB2V2ZW50SWQFAmlkBQVwcmljZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFWtleVRpY2tldE1heEF2YWlsYWJsZQMFBmNhbGxlcgUHZXZlbnRJZAUCaWQFDG1heEF2YWlsYWJsZQkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBD2tleVRpY2tldE9uU2FsZQMFBmNhbGxlcgUHZXZlbnRJZAUCaWQGCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5VGlja2V0TWF4VXNlAwUGY2FsbGVyBQdldmVudElkBQJpZAUGTWF4VXNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5VGlja2V0VG90YWxJc3N1ZWQDBQZjYWxsZXIFB2V2ZW50SWQFAmlkAAAJAMwIAgkBDEludGVnZXJFbnRyeQIJARhrZXlFdmVudFRvdGFsVGlja2V0VHlwZXMCBQZjYWxsZXIFB2V2ZW50SWQJAGQCBRd0b3RhbFRpY2tldFR5cGVGb3JFdmVudAABBQNuaWwBaQEKZWRpdFRpY2tldAcIdGlja2V0SWQHZXZlbnRJZARuYW1lC2Rlc2NyaXB0aW9uBXByaWNlDG1heEF2YWlsYWJsZQZtYXhVc2UEDSR0MDEzOTE1MTM5NTUJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDEzOTE1MTM5NTUCXzEEBmNhbGxlcggFDSR0MDEzOTE1MTM5NTUCXzIEBGRhdGUIBQ0kdDAxMzkxNTEzOTU1Al8zBAljaGVja1VzZXIJAQx2YWxpZGF0ZVVzZXIBBQZjYWxsZXIDCQECIT0CBQljaGVja1VzZXICAAkAAgEFCWNoZWNrVXNlcgMJAQEhAQkBDGlzRXZlbnRPd25lcgIFB2V2ZW50SWQFBmNhbGxlcgkAAgECI1lvdSBhcmUgbm90IHRoZSBvd25lciBvZiB0aGlzIGV2ZW50AwkBASEBCQELdGlja2V0RXhpc3QDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQACAQIQVGlja2V0IG5vdCBmb3VuZAQOdmFsaWRhdGVUaWNrZXQJARJ2YWxpZGF0ZVRpY2tldERhdGEHBQdldmVudElkBQZjYWxsZXIFBG5hbWUFC2Rlc2NyaXB0aW9uBQVwcmljZQUMbWF4QXZhaWxhYmxlBQZtYXhVc2UDCQECIT0CBQ52YWxpZGF0ZVRpY2tldAIACQACAQIVU29tZXRoaW5nIHdlbnQgd3JvbmchBAp0aWNrZXRTb2xkCQELdmFsdWVPckVsc2UCCQCfCAEJAQ1rZXlUaWNrZXRTb2xkAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAAAAwkAZgIFCnRpY2tldFNvbGQFDG1heEF2YWlsYWJsZQkAAgECPk1heCB0aWNrZXRzIGF2YWlsYWJsZSBjYW5ub3QgYmUgbG93ZXIgdGhhbiBhbW91bnQgYWxyZWFkeSBzb2xkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlUaWNrZXROYW1lAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAUEbmFtZQkAzAgCCQELU3RyaW5nRW50cnkCCQENa2V5VGlja2V0RGVzYwMFBmNhbGxlcgUHZXZlbnRJZAUIdGlja2V0SWQFC2Rlc2NyaXB0aW9uCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOa2V5VGlja2V0UHJpY2UDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkBQVwcmljZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFWtleVRpY2tldE1heEF2YWlsYWJsZQMFBmNhbGxlcgUHZXZlbnRJZAUIdGlja2V0SWQFDG1heEF2YWlsYWJsZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleVRpY2tldE1heFVzZQMFBmNhbGxlcgUHZXZlbnRJZAUCaWQFBm1heFVzZQUDbmlsAWkBD3BhdXNlVGlja2V0U2FsZQMHZXZlbnRJZAh0aWNrZXRJZAZzdGF0dXMEDSR0MDE1MDg3MTUxMjcJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDE1MDg3MTUxMjcCXzEEBmNhbGxlcggFDSR0MDE1MDg3MTUxMjcCXzIEBGRhdGUIBQ0kdDAxNTA4NzE1MTI3Al8zBAljaGVja1VzZXIJAQx2YWxpZGF0ZVVzZXIBBQZjYWxsZXIDCQECIT0CBQljaGVja1VzZXICAAkAAgEFCWNoZWNrVXNlcgMJAQEhAQkBDGlzRXZlbnRPd25lcgIFB2V2ZW50SWQFBmNhbGxlcgkAAgECI1lvdSBhcmUgbm90IHRoZSBvd25lciBvZiB0aGlzIGV2ZW50AwkBASEBCQELdGlja2V0RXhpc3QDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQACAQIQVGlja2V0IG5vdCBmb3VuZAkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBD2tleVRpY2tldE9uU2FsZQMFBmNhbGxlcgUHZXZlbnRJZAUIdGlja2V0SWQFBnN0YXR1cwUDbmlsAWkBDGRlbGV0ZVRpY2tldAIIdGlja2V0SWQHZXZlbnRJZAQNJHQwMTU1OTAxNTYzMAkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMTU1OTAxNTYzMAJfMQQGY2FsbGVyCAUNJHQwMTU1OTAxNTYzMAJfMgQEZGF0ZQgFDSR0MDE1NTkwMTU2MzACXzMECWNoZWNrVXNlcgkBDHZhbGlkYXRlVXNlcgEFBmNhbGxlcgMJAQIhPQIFCWNoZWNrVXNlcgIACQACAQUJY2hlY2tVc2VyAwkBASEBCQEMaXNFdmVudE93bmVyAgUHZXZlbnRJZAUGY2FsbGVyCQACAQIjWW91IGFyZSBub3QgdGhlIG93bmVyIG9mIHRoaXMgZXZlbnQDCQEBIQEJAQt0aWNrZXRFeGlzdAMFBmNhbGxlcgUHZXZlbnRJZAUIdGlja2V0SWQJAAIBAhBUaWNrZXQgbm90IGZvdW5kBAphbW91bnRTb2xkCQEPZ2V0SW50ZWdlckJ5S2V5AQkBDWtleVRpY2tldFNvbGQDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkAwkBAiE9AgUKYW1vdW50U29sZAAACQACAQImQ2Fubm90IGRlbGV0ZSB0aWNrZXQgdGhhdCBzb2xkIGFscmVhZHkEF3RvdGFsVGlja2V0VHlwZUZvckV2ZW50CQEPZ2V0SW50ZWdlckJ5S2V5AQkBGGtleUV2ZW50VG90YWxUaWNrZXRUeXBlcwIFBmNhbGxlcgUHZXZlbnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQENa2V5VGlja2V0TmFtZQMFBmNhbGxlcgUHZXZlbnRJZAUIdGlja2V0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDWtleVRpY2tldERhdGUDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ1rZXlUaWNrZXREZXNjAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEOa2V5VGlja2V0UHJpY2UDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJARVrZXlUaWNrZXRNYXhBdmFpbGFibGUDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ9rZXlUaWNrZXRPblNhbGUDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ9rZXlUaWNrZXRNYXhVc2UDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJARRrZXlUaWNrZXRUb3RhbElzc3VlZAMFBmNhbGxlcgUHZXZlbnRJZAUIdGlja2V0SWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARhrZXlFdmVudFRvdGFsVGlja2V0VHlwZXMCBQZjYWxsZXIFB2V2ZW50SWQJAGUCBRd0b3RhbFRpY2tldFR5cGVGb3JFdmVudAABBQNuaWwBaQEJYnV5VGlja2V0Awh0aWNrZXRJZAdldmVudElkBmlzc3VlcgQNJHQwMTY4NTQxNjg5MgkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMTY4NTQxNjg5MgJfMQQGY2FsbGVyCAUNJHQwMTY4NTQxNjg5MgJfMgQEZGF0ZQgFDSR0MDE2ODU0MTY4OTICXzMECHRvdGFsTkZUCQELdmFsdWVPckVsc2UCCQEPZ2V0SW50ZWdlckJ5S2V5AQIUdG90YWxfdGlja2V0c19pc3N1ZWQAAAMJAQEhAQkBDGlzRXZlbnRPd25lcgIFB2V2ZW50SWQFBmlzc3VlcgkAAgECH0V2ZW50IElEIGFuZCBJc3N1ZXIgZG9uJ3QgbWF0Y2gDCQEBIQEJAQt0aWNrZXRFeGlzdAMFBmlzc3VlcgUHZXZlbnRJZAUIdGlja2V0SWQJAAIBAhBUaWNrZXQgbm90IGZvdW5kBAlldmVudE5hbWUJAQ5nZXRTdHJpbmdCeUtleQEJAQxrZXlFdmVudE5hbWUCBQZpc3N1ZXIFB2V2ZW50SWQDCQAAAgUJZXZlbnROYW1lAgAJAAIBAhFBcnQgZG9lc24ndCBleGlzdAMJAQ9ldmVudElzQ2FuY2VsZWQCBQZpc3N1ZXIFB2V2ZW50SWQJAAIBAhhFdmVudCBoYXZlIGJlZW4gY2FuY2VsZWQECGlzT25TYWxlCQEPZ2V0Qm9vbGVhbkJ5S2V5AQkBD2tleVRpY2tldE9uU2FsZQMFBmlzc3VlcgUHZXZlbnRJZAUIdGlja2V0SWQDCQEBIQEFCGlzT25TYWxlCQACAQIUVGlja2V0cyBub3QgZm9yIHNhbGUECmFtb3VudFNvbGQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQENa2V5VGlja2V0U29sZAMFBmlzc3VlcgUHZXZlbnRJZAUIdGlja2V0SWQEC3RpY2tldFByaWNlCQEPZ2V0SW50ZWdlckJ5S2V5AQkBDmtleVRpY2tldFByaWNlAwUGaXNzdWVyBQdldmVudElkBQh0aWNrZXRJZAQMcHJpY2VBc3NldElkCQDYBAEFC3NpZ25Bc3NldElkBA0kdDAxNzczODE3ODEyCQEUdmFsaWRhdGVQcmljZUFzc2V0SWQDBQFpBQxwcmljZUFzc2V0SWQFC3RpY2tldFByaWNlBAZhbW91bnQIBQ0kdDAxNzczODE3ODEyAl8xBAdhc3NldElkCAUNJHQwMTc3MzgxNzgxMgJfMgQKbWF4Q2FuU2VsbAkBD2dldEludGVnZXJCeUtleQEJARVrZXlUaWNrZXRNYXhBdmFpbGFibGUDBQZpc3N1ZXIFB2V2ZW50SWQFCHRpY2tldElkBA1hbW91bnRGb3JTaWduCQBrAwUGYW1vdW50BQdzaWduQ3V0AGQEEmFtb3VudEZvck9yZ2FuaXplcgkAZQIFBmFtb3VudAUNYW1vdW50Rm9yU2lnbgMJAAACBQphbW91bnRTb2xkBQptYXhDYW5TZWxsCQACAQIMQXJ0IHNvbGQgb3V0BA1uZXdBbW91bnRTb2xkCQBkAgUKYW1vdW50U29sZAABBAlpc3N1ZU1ldGEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgtPcmdhbml6ZXI6IAUGaXNzdWVyAgwsCiBFdmVudElEOiAFB2V2ZW50SWQCDSwKIFRpY2tldElEOiAFCHRpY2tldElkAg4sCiBFdmVudE5hbWU6IAUJZXZlbnROYW1lAgosCiBJc3N1ZTogCQCkAwEFDW5ld0Ftb3VudFNvbGQCAS8JAKQDAQUKbWF4Q2FuU2VsbAQIaXNzdWVORlQJAMIIBQkArAICAgNTVF8JAKQDAQkAZAIFCHRvdGFsTkZUAAEFCWlzc3VlTWV0YQABAAAHBAVpZE5GVAkAuAgBBQhpc3N1ZU5GVAQKc2VsbFN0YXR1cwMJAAACBQ1uZXdBbW91bnRTb2xkBQptYXhDYW5TZWxsBwYECnJlY2VpdmVORlQIBQFpBmNhbGxlcgQHc29sZEtleQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIMdGlja2V0X3NvbGRfCQCkAwEFDW5ld0Ftb3VudFNvbGQCBF9vZl8JAKQDAQUKbWF4Q2FuU2VsbAIBXwUHZXZlbnRJZAIBXwUGaXNzdWVyAgFfBQh0aWNrZXRJZAQJc29sZFZhbHVlCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkApQgBBQpyZWNlaXZlTkZUAgFfCQCkAwEFBGRhdGUCAV8FAmlkAgFfCQCkAwEFBmFtb3VudAIBXwkA2AQBBQVpZE5GVAQIc29sZERhdGEJAQtTdHJpbmdFbnRyeQIFB3NvbGRLZXkFCXNvbGRWYWx1ZQQNZXZlbnRUb3RhbE5GVAkBD2dldEludGVnZXJCeUtleQEJARprZXlFdmVudFRvdGFsVGlja2V0c0lzc3VlZAIFBmlzc3VlcgUHZXZlbnRJZAQOdGlja2V0VG90YWxORlQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEUa2V5VGlja2V0VG90YWxJc3N1ZWQDBQZpc3N1ZXIFB2V2ZW50SWQFCHRpY2tldElkBAZidXlSZXMJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ1rZXlUaWNrZXRTb2xkAwUGaXNzdWVyBQdldmVudElkBQh0aWNrZXRJZAUNbmV3QW1vdW50U29sZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgICBG5mdF8JANgEAQUFaWRORlQFB3NvbGRLZXkJAMwIAgkBDEludGVnZXJFbnRyeQICFHRvdGFsX3RpY2tldHNfaXNzdWVkCQBkAgUIdG90YWxORlQAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGmtleUV2ZW50VG90YWxUaWNrZXRzSXNzdWVkAgUGaXNzdWVyBQdldmVudElkCQBkAgUNZXZlbnRUb3RhbE5GVAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5VGlja2V0VG90YWxJc3N1ZWQDBQZpc3N1ZXIFB2V2ZW50SWQFCHRpY2tldElkCQBkAgUOdGlja2V0VG90YWxORlQAAQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIDU1RfCQCkAwEJAGQCBQh0b3RhbE5GVAABAghfYXNzZXRJZAkArAICCQCsAgIFCHRpY2tldElkAgFfCQDYBAEFBWlkTkZUCQDMCAIJAQxCb29sZWFuRW50cnkCCQEPa2V5VGlja2V0T25TYWxlAwUGaXNzdWVyBQdldmVudElkBQh0aWNrZXRJZAUKc2VsbFN0YXR1cwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBE2tleVRpY2tldEFtb3VudFVzZWQEBQZpc3N1ZXIFB2V2ZW50SWQFCHRpY2tldElkCQDYBAEFBWlkTkZUAAAJAMwIAgUIaXNzdWVORlQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmlzc3VlcgUSYW1vdW50Rm9yT3JnYW5pemVyBQdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFCnJlY2VpdmVORlQAAQUFaWRORlQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFC2ZlZVJlY2VpdmVyBQ1hbW91bnRGb3JTaWduBQdhc3NldElkBQNuaWwJAMwIAgUIc29sZERhdGEFBmJ1eVJlcwFpAQl1c2VUaWNrZXQABA0kdDAyMDA4NTIwMTIzCQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQ0kdDAyMDA4NTIwMTIzAl8xBAZjYWxsZXIIBQ0kdDAyMDA4NTIwMTIzAl8yBARkYXRlCAUNJHQwMjAwODUyMDEyMwJfMwQNJHQwMjAxMjkyMDE2NQkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQ0kdDAyMDEyOTIwMTY1Al8xBAZhbW91bnQIBQ0kdDAyMDEyOTIwMTY1Al8yAwkBASEBCQEJaXNEZWZpbmVkAQgFB3BheW1lbnQHYXNzZXRJZAkAAgECFFdyb25nIGFzc2V0IGF0dGFjaGVkBAlldmVudERhdGEJAQ5nZXRTdHJpbmdCeUtleQEJAKwCAgIEbmZ0XwkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkAwkAAAIJALECAQUJZXZlbnREYXRhAAAJAAIBAhRTb21ldGhpbmcgd2VudCB3cm9uZwQMZXZlbnREYXRhQXJyCQC1CQIFCWV2ZW50RGF0YQIBXwQGaXNzdWVyCQCRAwIFDGV2ZW50RGF0YUFycgAGBAdldmVudElkCQCRAwIFDGV2ZW50RGF0YUFycgAFBAh0aWNrZXRJZAkAkQMCBQxldmVudERhdGFBcnIABwMJAQEhAQkBC3RpY2tldEV4aXN0AwUGaXNzdWVyBQdldmVudElkBQh0aWNrZXRJZAkAAgECEFRpY2tldCBub3QgZm91bmQECmFtb3VudFVzZWQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQETa2V5VGlja2V0QW1vdW50VXNlZAQFBmlzc3VlcgUHZXZlbnRJZAUIdGlja2V0SWQJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAQMbWF4VXNpbmdUaW1lCQEPZ2V0SW50ZWdlckJ5S2V5AQkBD2tleVRpY2tldE1heFVzZQMFBmlzc3VlcgUHZXZlbnRJZAUIdGlja2V0SWQDCQAAAgUMbWF4VXNpbmdUaW1lBQphbW91bnRVc2VkCQACAQkArAICCQCsAgICDFRpY2tldCB1c2VkIAkApAMBBQphbW91bnRVc2VkAg4gdGltZXMgYWxyZWFkeQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBE2tleVRpY2tldEFtb3VudFVzZWQEBQZpc3N1ZXIFB2V2ZW50SWQFCHRpY2tldElkCQDYBAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQJAGQCBQphbW91bnRVc2VkAAEJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgABCAUHcGF5bWVudAdhc3NldElkBQNuaWwBaQELZGVsZXRlRW50cnkBBWVudHJ5BAZjYWxsZXIJAKUIAQgFAWkGY2FsbGVyAwkAAAIFBmNhbGxlcgUFY2hyaXMJAMwIAgkBC0RlbGV0ZUVudHJ5AQUFZW50cnkFA25pbAkAAgECAm5vAJ3Kmz8=", "height": 2290686, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CFsLPcPJSd1rxtx6zvLz5TYCsvW4d2Z4rxKDkmrZm5kT Next: none Diff:
OldNewDifferences
105105 func O (r,t,I) = ((((("ticket_onSale_" + t) + "_") + r) + "_") + I)
106106
107107
108-func P (r,t,I) = ((((("ticket_amountUsed_" + t) + "_") + r) + "_") + I)
108+func P (r,t,I,Q) = ((((((("ticket_amountUsed_" + t) + "_") + r) + "_") + I) + "_") + Q)
109109
110110
111-func Q (r,t,I) = ((((("ticket_maxUse_" + t) + "_") + r) + "_") + I)
111+func R (r,t,I) = ((((("ticket_maxUse_" + t) + "_") + r) + "_") + I)
112112
113113
114-func R (r,t,I) = ((((("ticket_totalIssued_" + t) + "_") + r) + "_") + I)
114+func S (r,t,I) = ((((("ticket_totalIssued_" + t) + "_") + r) + "_") + I)
115115
116116
117-func S (T,U) = if ((size(T) == 0))
117+func T (U,V) = if ((size(U) == 0))
118118 then throw("Field cannot be is empty")
119- else if ((size(T) > U))
120- then throw((T + " is too long"))
119+ else if ((size(U) > V))
120+ then throw((U + " is too long"))
121121 else true
122122
123123
124-func V (W) = (0 > W)
124+func W (X) = (0 > X)
125125
126126
127-func X (t) = valueOrElse(getString(this, s(t)), "")
127+func Y (t) = valueOrElse(getString(this, s(t)), "")
128128
129129
130-func Y (r) = {
131- let Z = valueOrElse(getString(d, q(r)), m)
132- if ((Z == m))
130+func Z (r) = {
131+ let aa = valueOrElse(getString(d, q(r)), m)
132+ if ((aa == m))
133133 then "Register this account first with \"Account\" tab"
134- else if ((Z == l))
134+ else if ((aa == l))
135135 then "Account suspended"
136136 else ""
137137 }
138138
139139
140-func aa (r,ab,ac,ad,ae,af) = {
141- let ag = Y(r)
142- if ((ag != ""))
143- then throw(ag)
144- else if ((size(ab) == 0))
140+func ab (r,ac,ad,ae,af,ag) = {
141+ let ah = Z(r)
142+ if ((ah != ""))
143+ then throw(ah)
144+ else if ((size(ac) == 0))
145145 then throw("Display CID cannot be empty")
146- else if (!(n(ab)))
146+ else if (!(n(ac)))
147147 then throw("Problem with CID")
148- else if (!(S(ac, 300)))
148+ else if (!(T(ad, 300)))
149149 then throw("300 Char. max name")
150- else if (!(S(ad, 3000)))
150+ else if (!(T(ae, 3000)))
151151 then throw("3000 Char. max description")
152- else if (!(S(af, 1000)))
152+ else if (!(T(ag, 1000)))
153153 then throw("1000 Char. max date")
154- else if ((size(split(ae, ",")) > 5))
154+ else if ((size(split(af, ",")) > 5))
155155 then throw("5 tags max.")
156156 else ""
157157 }
158158
159159
160-func ah (t,r,ac,ad,ai,aj,ak) = {
161- let ag = Y(r)
162- if ((ag != ""))
163- then throw(ag)
164- else if (!(S(ac, 200)))
160+func ai (t,r,ad,ae,aj,ak,al) = {
161+ let ah = Z(r)
162+ if ((ah != ""))
163+ then throw(ah)
164+ else if (!(T(ad, 200)))
165165 then throw("100 Char. max name")
166- else if (!(S(ad, 1000)))
166+ else if (!(T(ae, 1000)))
167167 then throw("1000 Char. max description")
168- else if (if (if (V(ai))
168+ else if (if (if (W(aj))
169169 then true
170- else V(ak))
170+ else W(al))
171171 then true
172- else V(aj))
172+ else W(ak))
173173 then throw("Positive amount only")
174- else if (!(S(ad, 1000)))
174+ else if (!(T(ae, 1000)))
175175 then throw("1000 Char. max description")
176176 else ""
177177 }
178178
179179
180-func al (am) = if (!(j))
180+func am (an) = if (!(j))
181181 then throw(k)
182- else $Tuple3(toBase58String(am.transactionId), toBase58String(am.caller.bytes), lastBlock.timestamp)
182+ else $Tuple3(toBase58String(an.transactionId), toBase58String(an.caller.bytes), lastBlock.timestamp)
183183
184184
185-func an (am) = if ((size(am.payments) == 0))
185+func ao (an) = if ((size(an.payments) == 0))
186186 then throw("No payment attached")
187187 else {
188- let ao = value(am.payments[0])
189- let ap = value(ao.amount)
190- $Tuple2(ao, ap)
188+ let ap = value(an.payments[0])
189+ let aq = value(ap.amount)
190+ $Tuple2(ap, aq)
191191 }
192192
193193
194-func aq (am,ar,as) = {
195- let at = an(am)
196- let ao = at._1
197- let ap = at._2
198- if (!(isDefined(ao.assetId)))
194+func ar (an,as,at) = {
195+ let au = ao(an)
196+ let ap = au._1
197+ let aq = au._2
198+ if (!(isDefined(ap.assetId)))
199199 then throw("Wrong asset attached")
200200 else {
201- let au = if (if ((size(ar) > 0))
202- then (toBase58String(value(ao.assetId)) == ar)
201+ let av = if (if ((size(as) > 0))
202+ then (toBase58String(value(ap.assetId)) == as)
203203 else false)
204- then ao.assetId
204+ then ap.assetId
205205 else throw("Wrong asset attached")
206- if ((as != ap))
206+ if ((at != aq))
207207 then throw("Payment amount don't match")
208- else $Tuple2(ap, au)
208+ else $Tuple2(aq, av)
209209 }
210210 }
211211
212212
213-func av (t,r) = {
214- let aw = X(t)
215- if ((aw == ""))
213+func aw (t,r) = {
214+ let ax = Y(t)
215+ if ((ax == ""))
216216 then throw("Event not found")
217- else (aw == r)
217+ else (ax == r)
218218 }
219219
220220
221-func ax (r,t,I) = {
222- let ay = b(H(r, t, I))
223- (size(ay) != 0)
221+func ay (r,t,I) = {
222+ let az = b(H(r, t, I))
223+ (size(az) != 0)
224224 }
225225
226226
227-func az (aA,t) = i(F(aA, t))
227+func aA (aB,t) = i(F(aB, t))
228228
229229
230-@Callable(aB)
231-func setConf (c,aC) = {
232- let r = toString(aB.caller)
230+@Callable(aC)
231+func setConf (c,aD) = {
232+ let r = toString(aC.caller)
233233 if (containsElement([g, toString(this)], r))
234234 then if (contains(c, "conf_"))
235- then [StringEntry(c, aC)]
235+ then [StringEntry(c, aD)]
236236 else throw("Entries starting with conf_ only")
237237 else throw("You are not allowed to change this")
238238 }
239239
240240
241241
242-@Callable(am)
243-func addEvent (ac,ad,ae,ab,aD,af) = {
244- let aE = al(am)
245- let t = aE._1
246- let r = aE._2
247- let aF = aE._3
248- let ag = Y(r)
249- if ((ag != ""))
250- then throw(ag)
242+@Callable(an)
243+func addEvent (ad,ae,af,ac,aE,ag) = {
244+ let aF = am(an)
245+ let t = aF._1
246+ let r = aF._2
247+ let aG = aF._3
248+ let ah = Z(r)
249+ if ((ah != ""))
250+ then throw(ah)
251251 else {
252- let aG = aa(r, ab, ac, ad, ae, af)
253- if ((aG != ""))
252+ let aH = ab(r, ac, ad, ae, af, ag)
253+ if ((aH != ""))
254254 then throw("Something went wrong!")
255- else [IntegerEntry(u(r, t), aF), StringEntry(v(r, t), af), StringEntry(w(r, t), ac), StringEntry(x(r, t), ad), StringEntry(y(r, t), ab), StringEntry(z(r, t), ae), StringEntry(C(r, t), aD), IntegerEntry(E(r, t), 0), BooleanEntry(F(r, t), false), StringEntry(s(t), r)]
255+ else [IntegerEntry(u(r, t), aG), StringEntry(v(r, t), ag), StringEntry(w(r, t), ad), StringEntry(x(r, t), ae), StringEntry(y(r, t), ac), StringEntry(z(r, t), af), StringEntry(C(r, t), aE), IntegerEntry(E(r, t), 0), BooleanEntry(F(r, t), false), StringEntry(s(t), r)]
256256 }
257257 }
258258
259259
260260
261-@Callable(am)
262-func editEvent (t,ac,ad,ae,ab,aD,af) = if (!(j))
261+@Callable(an)
262+func editEvent (t,ad,ae,af,ac,aE,ag) = if (!(j))
263263 then throw(k)
264264 else {
265- let r = toBase58String(am.caller.bytes)
266- let ag = Y(r)
267- if ((ag != ""))
268- then throw(ag)
265+ let r = toBase58String(an.caller.bytes)
266+ let ah = Z(r)
267+ if ((ah != ""))
268+ then throw(ah)
269269 else {
270- let aG = aa(r, ab, ac, ad, ae, af)
271- if ((aG != ""))
270+ let aH = ab(r, ac, ad, ae, af, ag)
271+ if ((aH != ""))
272272 then throw("Something went wrong!")
273273 else {
274- let aH = b(w(r, t))
275- if ((aH == ""))
274+ let aI = b(w(r, t))
275+ if ((aI == ""))
276276 then throw("Entry not found")
277277 else {
278- let aI = b(A(r, t))
279- if ((aI == "ILLEGAL"))
278+ let aJ = b(A(r, t))
279+ if ((aJ == "ILLEGAL"))
280280 then throw("Cannot update ILLEGAL Event")
281- else [StringEntry(w(r, t), ac), StringEntry(v(r, t), af), StringEntry(x(r, t), ad), StringEntry(z(r, t), ae), StringEntry(C(r, t), aD)]
281+ else [StringEntry(w(r, t), ad), StringEntry(v(r, t), ag), StringEntry(x(r, t), ae), StringEntry(z(r, t), af), StringEntry(C(r, t), aE)]
282282 }
283283 }
284284 }
286286
287287
288288
289-@Callable(am)
289+@Callable(an)
290290 func deleteEvent (t) = {
291- let aJ = al(am)
292- let aK = aJ._1
293- let r = aJ._2
294- let aF = aJ._3
295- let ag = Y(r)
296- if ((ag != ""))
297- then throw(ag)
298- else if (!(av(t, r)))
291+ let aK = am(an)
292+ let aL = aK._1
293+ let r = aK._2
294+ let aG = aK._3
295+ let ah = Z(r)
296+ if ((ah != ""))
297+ then throw(ah)
298+ else if (!(aw(t, r)))
299299 then throw("You are not the owner of this event")
300300 else {
301- let aL = h(E(r, t))
302- if ((aL != 0))
301+ let aM = h(E(r, t))
302+ if ((aM != 0))
303303 then throw("Cannot delete event with already sold tickets")
304304 else {
305- let aM = h(D(r, t))
306- if ((aM > 0))
305+ let aN = h(D(r, t))
306+ if ((aN > 0))
307307 then throw("Delete all tickets first")
308308 else [DeleteEntry(u(r, t)), DeleteEntry(v(r, t)), DeleteEntry(w(r, t)), DeleteEntry(x(r, t)), DeleteEntry(y(r, t)), DeleteEntry(z(r, t)), DeleteEntry(C(r, t)), DeleteEntry(E(r, t)), DeleteEntry(F(r, t)), DeleteEntry(s(t)), DeleteEntry(D(r, t))]
309309 }
312312
313313
314314
315-@Callable(am)
316-func cancelEvent (t,aN) = {
317- let aO = al(am)
318- let aK = aO._1
319- let r = aO._2
320- let aF = aO._3
321- let ag = Y(r)
322- if ((ag != ""))
323- then throw(ag)
324- else if (!(av(t, r)))
315+@Callable(an)
316+func cancelEvent (t,aO) = {
317+ let aP = am(an)
318+ let aL = aP._1
319+ let r = aP._2
320+ let aG = aP._3
321+ let ah = Z(r)
322+ if ((ah != ""))
323+ then throw(ah)
324+ else if (!(aw(t, r)))
325325 then throw("You are not the owner of this event")
326- else [BooleanEntry(F(r, t), true), StringEntry(G(r, t), aN)]
326+ else [BooleanEntry(F(r, t), true), StringEntry(G(r, t), aO)]
327327 }
328328
329329
330330
331-@Callable(am)
332-func flagEvent (t,aP,aI,aQ) = {
333- let aR = al(am)
334- let aK = aR._1
335- let r = aR._2
331+@Callable(an)
332+func flagEvent (t,aQ,aJ,aR) = {
333+ let aS = am(an)
334+ let aL = aS._1
335+ let r = aS._2
336336 if (containsElement([g, toString(this)], r))
337- then if (containsElement(["", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], aI))
338- then [StringEntry(A(aP, t), aI), StringEntry(B(aP, t), aQ)]
339- else throw(("Unknow status " + aI))
337+ then if (containsElement(["", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], aJ))
338+ then [StringEntry(A(aQ, t), aJ), StringEntry(B(aQ, t), aR)]
339+ else throw(("Unknow status " + aJ))
340340 else throw("You are not allowed")
341341 }
342342
343343
344344
345-@Callable(am)
346-func addTicket (t,ac,ad,ai,aj,aS) = {
347- let aT = al(am)
348- let aK = aT._1
349- let r = aT._2
350- let af = aT._3
351- let ag = Y(r)
352- if ((ag != ""))
353- then throw(ag)
354- else if (az(r, t))
345+@Callable(an)
346+func addTicket (t,ad,ae,aj,ak,aT) = {
347+ let aU = am(an)
348+ let aL = aU._1
349+ let r = aU._2
350+ let ag = aU._3
351+ let ah = Z(r)
352+ if ((ah != ""))
353+ then throw(ah)
354+ else if (aA(r, t))
355355 then throw("Event have been canceled")
356- else if (!(av(t, r)))
356+ else if (!(aw(t, r)))
357357 then throw("You are not the owner of this event")
358358 else {
359- let aU = ah(t, r, ac, ad, ai, aj, aS)
360- if ((aU != ""))
359+ let aV = ai(t, r, ad, ae, aj, ak, aT)
360+ if ((aV != ""))
361361 then throw("Something went wrong!")
362362 else {
363- let aM = h(D(r, t))
364-[StringEntry(H(r, t, aK), ac), IntegerEntry(L(r, t, aK), af), StringEntry(J(r, t, aK), ad), IntegerEntry(K(r, t, aK), ai), IntegerEntry(M(r, t, aK), aj), BooleanEntry(O(r, t, aK), true), IntegerEntry(Q(r, t, aK), aS), IntegerEntry(R(r, t, aK), 0), IntegerEntry(D(r, t), (aM + 1))]
363+ let aN = h(D(r, t))
364+[StringEntry(H(r, t, aL), ad), IntegerEntry(L(r, t, aL), ag), StringEntry(J(r, t, aL), ae), IntegerEntry(K(r, t, aL), aj), IntegerEntry(M(r, t, aL), ak), BooleanEntry(O(r, t, aL), true), IntegerEntry(R(r, t, aL), aT), IntegerEntry(S(r, t, aL), 0), IntegerEntry(D(r, t), (aN + 1))]
365365 }
366366 }
367367 }
368368
369369
370370
371-@Callable(am)
372-func editTicket (I,t,ac,ad,ai,aj,ak) = {
373- let aV = al(am)
374- let aK = aV._1
375- let r = aV._2
376- let af = aV._3
377- let ag = Y(r)
378- if ((ag != ""))
379- then throw(ag)
380- else if (!(av(t, r)))
371+@Callable(an)
372+func editTicket (I,t,ad,ae,aj,ak,al) = {
373+ let aW = am(an)
374+ let aL = aW._1
375+ let r = aW._2
376+ let ag = aW._3
377+ let ah = Z(r)
378+ if ((ah != ""))
379+ then throw(ah)
380+ else if (!(aw(t, r)))
381381 then throw("You are not the owner of this event")
382- else if (!(ax(r, t, I)))
382+ else if (!(ay(r, t, I)))
383383 then throw("Ticket not found")
384384 else {
385- let aU = ah(t, r, ac, ad, ai, aj, ak)
386- if ((aU != ""))
385+ let aV = ai(t, r, ad, ae, aj, ak, al)
386+ if ((aV != ""))
387387 then throw("Something went wrong!")
388388 else {
389- let aW = valueOrElse(getInteger(N(r, t, I)), 0)
390- if ((aW > aj))
389+ let aX = valueOrElse(getInteger(N(r, t, I)), 0)
390+ if ((aX > ak))
391391 then throw("Max tickets available cannot be lower than amount already sold")
392- else [StringEntry(H(r, t, I), ac), StringEntry(J(r, t, I), ad), IntegerEntry(K(r, t, I), ai), IntegerEntry(M(r, t, I), aj), IntegerEntry(Q(r, t, aK), ak)]
392+ else [StringEntry(H(r, t, I), ad), StringEntry(J(r, t, I), ae), IntegerEntry(K(r, t, I), aj), IntegerEntry(M(r, t, I), ak), IntegerEntry(R(r, t, aL), al)]
393393 }
394394 }
395395 }
396396
397397
398398
399-@Callable(am)
400-func pauseTicketSale (t,I,aX) = {
401- let aY = al(am)
402- let aK = aY._1
403- let r = aY._2
404- let af = aY._3
405- let ag = Y(r)
406- if ((ag != ""))
407- then throw(ag)
408- else if (!(av(t, r)))
399+@Callable(an)
400+func pauseTicketSale (t,I,aY) = {
401+ let aZ = am(an)
402+ let aL = aZ._1
403+ let r = aZ._2
404+ let ag = aZ._3
405+ let ah = Z(r)
406+ if ((ah != ""))
407+ then throw(ah)
408+ else if (!(aw(t, r)))
409409 then throw("You are not the owner of this event")
410- else if (!(ax(r, t, I)))
410+ else if (!(ay(r, t, I)))
411411 then throw("Ticket not found")
412- else [BooleanEntry(O(r, t, I), aX)]
412+ else [BooleanEntry(O(r, t, I), aY)]
413413 }
414414
415415
416416
417-@Callable(am)
417+@Callable(an)
418418 func deleteTicket (I,t) = {
419- let aZ = al(am)
420- let aK = aZ._1
421- let r = aZ._2
422- let af = aZ._3
423- let ag = Y(r)
424- if ((ag != ""))
425- then throw(ag)
426- else if (!(av(t, r)))
419+ let ba = am(an)
420+ let aL = ba._1
421+ let r = ba._2
422+ let ag = ba._3
423+ let ah = Z(r)
424+ if ((ah != ""))
425+ then throw(ah)
426+ else if (!(aw(t, r)))
427427 then throw("You are not the owner of this event")
428- else if (!(ax(r, t, I)))
428+ else if (!(ay(r, t, I)))
429429 then throw("Ticket not found")
430430 else {
431- let ba = h(N(r, t, I))
432- if ((ba != 0))
431+ let bb = h(N(r, t, I))
432+ if ((bb != 0))
433433 then throw("Cannot delete ticket that sold already")
434434 else {
435- let aM = h(D(r, t))
436-[DeleteEntry(H(r, t, I)), DeleteEntry(L(r, t, I)), DeleteEntry(J(r, t, I)), DeleteEntry(K(r, t, I)), DeleteEntry(M(r, t, I)), DeleteEntry(O(r, t, I)), DeleteEntry(Q(r, t, I)), DeleteEntry(R(r, t, I)), IntegerEntry(D(r, t), (aM - 1))]
435+ let aN = h(D(r, t))
436+[DeleteEntry(H(r, t, I)), DeleteEntry(L(r, t, I)), DeleteEntry(J(r, t, I)), DeleteEntry(K(r, t, I)), DeleteEntry(M(r, t, I)), DeleteEntry(O(r, t, I)), DeleteEntry(R(r, t, I)), DeleteEntry(S(r, t, I)), IntegerEntry(D(r, t), (aN - 1))]
437437 }
438438 }
439439 }
440440
441441
442442
443-@Callable(am)
444-func buyTicket (I,t,aA) = {
445- let bb = al(am)
446- let aK = bb._1
447- let r = bb._2
448- let af = bb._3
449- let bc = valueOrElse(h("total_tickets_issued"), 0)
450- if (!(av(t, aA)))
443+@Callable(an)
444+func buyTicket (I,t,aB) = {
445+ let bc = am(an)
446+ let aL = bc._1
447+ let r = bc._2
448+ let ag = bc._3
449+ let bd = valueOrElse(h("total_tickets_issued"), 0)
450+ if (!(aw(t, aB)))
451451 then throw("Event ID and Issuer don't match")
452- else if (!(ax(aA, t, I)))
452+ else if (!(ay(aB, t, I)))
453453 then throw("Ticket not found")
454454 else {
455- let bd = b(w(aA, t))
456- if ((bd == ""))
455+ let be = b(w(aB, t))
456+ if ((be == ""))
457457 then throw("Art doesn't exist")
458- else if (az(aA, t))
458+ else if (aA(aB, t))
459459 then throw("Event have been canceled")
460460 else {
461- let be = i(O(aA, t, I))
462- if (!(be))
461+ let bf = i(O(aB, t, I))
462+ if (!(bf))
463463 then throw("Tickets not for sale")
464464 else {
465- let ba = h(N(aA, t, I))
466- let bf = h(K(aA, t, I))
467- let ar = toBase58String(f)
468- let bg = aq(am, ar, bf)
469- let ap = bg._1
470- let au = bg._2
471- let bh = h(M(aA, t, I))
472- let bi = fraction(ap, p, 100)
473- let bj = (ap - bi)
474- if ((ba == bh))
465+ let bb = h(N(aB, t, I))
466+ let bg = h(K(aB, t, I))
467+ let as = toBase58String(f)
468+ let bh = ar(an, as, bg)
469+ let aq = bh._1
470+ let av = bh._2
471+ let bi = h(M(aB, t, I))
472+ let bj = fraction(aq, p, 100)
473+ let bk = (aq - bj)
474+ if ((bb == bi))
475475 then throw("Art sold out")
476476 else {
477- let bk = (ba + 1)
478- let bl = ((((((((((("Organizer: " + aA) + ",
477+ let bl = (bb + 1)
478+ let bm = ((((((((((("Organizer: " + aB) + ",
479479 EventID: ") + t) + ",
480480 TicketID: ") + I) + ",
481- EventName: ") + bd) + ",
482- Issue: ") + toString(bk)) + "/") + toString(bh))
483- let bm = Issue(("ST_" + toString((bc + 1))), bl, 1, 0, false)
484- let bn = calculateAssetId(bm)
485- let bo = if ((bk == bh))
481+ EventName: ") + be) + ",
482+ Issue: ") + toString(bl)) + "/") + toString(bi))
483+ let bn = Issue(("ST_" + toString((bd + 1))), bm, 1, 0, false)
484+ let bo = calculateAssetId(bn)
485+ let bp = if ((bl == bi))
486486 then false
487487 else true
488- let bp = am.caller
489- let bq = ((((((((("ticket_sold_" + toString(bk)) + "_of_") + toString(bh)) + "_") + t) + "_") + aA) + "_") + I)
490- let br = ((((((((toString(bp) + "_") + toString(af)) + "_") + aK) + "_") + toString(ap)) + "_") + toBase58String(bn))
491- let bs = StringEntry(bq, br)
492- let aL = h(E(aA, t))
493- let bt = h(R(aA, t, I))
494- let bu = [IntegerEntry(N(aA, t, I), bk), StringEntry(("nft_" + toBase58String(bn)), bq), IntegerEntry("total_tickets_issued", (bc + 1)), IntegerEntry(E(aA, t), (aL + 1)), IntegerEntry(R(aA, t, I), (bt + 1)), StringEntry((("ST_" + toString((bc + 1))) + "_assetId"), toBase58String(bn)), BooleanEntry(O(aA, t, I), bo), IntegerEntry(P(aA, t, I), 0), bm, ScriptTransfer(Address(fromBase58String(aA)), bj, au), ScriptTransfer(bp, 1, bn), ScriptTransfer(Address(fromBase58String(e)), bi, au)]
495-bs :: bu
488+ let bq = an.caller
489+ let br = ((((((((("ticket_sold_" + toString(bl)) + "_of_") + toString(bi)) + "_") + t) + "_") + aB) + "_") + I)
490+ let bs = ((((((((toString(bq) + "_") + toString(ag)) + "_") + aL) + "_") + toString(aq)) + "_") + toBase58String(bo))
491+ let bt = StringEntry(br, bs)
492+ let aM = h(E(aB, t))
493+ let bu = h(S(aB, t, I))
494+ let bv = [IntegerEntry(N(aB, t, I), bl), StringEntry(("nft_" + toBase58String(bo)), br), IntegerEntry("total_tickets_issued", (bd + 1)), IntegerEntry(E(aB, t), (aM + 1)), IntegerEntry(S(aB, t, I), (bu + 1)), StringEntry((("ST_" + toString((bd + 1))) + "_assetId"), ((I + "_") + toBase58String(bo))), BooleanEntry(O(aB, t, I), bp), IntegerEntry(P(aB, t, I, toBase58String(bo)), 0), bn, ScriptTransfer(Address(fromBase58String(aB)), bk, av), ScriptTransfer(bq, 1, bo), ScriptTransfer(Address(fromBase58String(e)), bj, av)]
495+bt :: bv
496496 }
497497 }
498498 }
501501
502502
503503
504-@Callable(am)
505-func useTicket (t,aA) = {
506- let bv = al(am)
507- let aK = bv._1
508- let r = bv._2
509- let af = bv._3
510- let bw = an(am)
511- let ao = bw._1
512- let ap = bw._2
513- if (!(isDefined(ao.assetId)))
504+@Callable(an)
505+func useTicket () = {
506+ let bw = am(an)
507+ let aL = bw._1
508+ let r = bw._2
509+ let ag = bw._3
510+ let bx = ao(an)
511+ let ap = bx._1
512+ let aq = bx._2
513+ if (!(isDefined(ap.assetId)))
514514 then throw("Wrong asset attached")
515515 else {
516- let I = toBase58String(value(ao.assetId))
517- if (!(ax(aA, t, I)))
518- then throw("Ticket not found")
516+ let by = b(("nft_" + toBase58String(value(ap.assetId))))
517+ if ((size(by) == 0))
518+ then throw("Something went wrong")
519519 else {
520- let bx = h(P(aA, t, I))
521- let by = h(Q(aA, t, I))
522- if ((by == bx))
523- then throw((("Ticket used " + toString(bx)) + " times already"))
524- else [IntegerEntry(P(aA, t, I), (bx + 1)), ScriptTransfer(Address(fromBase58String(r)), 1, ao.assetId)]
520+ let bz = split(by, "_")
521+ let aB = bz[6]
522+ let t = bz[5]
523+ let I = bz[7]
524+ if (!(ay(aB, t, I)))
525+ then throw("Ticket not found")
526+ else {
527+ let bA = h(P(aB, t, I, toBase58String(value(ap.assetId))))
528+ let bB = h(R(aB, t, I))
529+ if ((bB == bA))
530+ then throw((("Ticket used " + toString(bA)) + " times already"))
531+ else [IntegerEntry(P(aB, t, I, toBase58String(value(ap.assetId))), (bA + 1)), ScriptTransfer(Address(fromBase58String(r)), 1, ap.assetId)]
532+ }
525533 }
526534 }
527535 }
528536
529537
530538
531-@Callable(am)
532-func deleteEntry (bz) = {
533- let r = toString(am.caller)
539+@Callable(an)
540+func deleteEntry (bC) = {
541+ let r = toString(an.caller)
534542 if ((r == g))
535- then [DeleteEntry(bz)]
543+ then [DeleteEntry(bC)]
536544 else throw("no")
537545 }
538546
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "1.0.0"
55
66 func b (c) = valueOrElse(getString(this, c), "")
77
88
99 let d = value(addressFromString(b("conf_users_dapp")))
1010
1111 let e = b("conf_fee_receiver")
1212
1313 let f = fromBase58String(b("conf_accepted_asset_SIGN"))
1414
1515 let g = b("conf_admin_1")
1616
1717 func h (c) = valueOrElse(getInteger(this, c), 0)
1818
1919
2020 func i (c) = valueOrElse(getBoolean(this, c), false)
2121
2222
2323 let j = valueOrElse(getBoolean(d, "conf_dapp_is_running"), true)
2424
2525 let k = valueOrElse(getString(d, "conf_maintenance_msg"), "")
2626
2727 let l = "SUSPENDED"
2828
2929 let m = "UNREGISTERED"
3030
3131 func n (o) = if (contains(o, "/"))
3232 then if (if ((76 > size(o)))
3333 then (size(split(o, "/")[0]) == 59)
3434 else false)
3535 then (16 > size(split(o, "/")[1]))
3636 else false
3737 else false
3838
3939
4040 let p = 2
4141
4242 func q (r) = ("user_status_" + r)
4343
4444
4545 func s (t) = ("get_event_owner_" + t)
4646
4747
4848 func u (r,t) = ((("event_addedDate_" + t) + "_") + r)
4949
5050
5151 func v (r,t) = ((("event_date_" + t) + "_") + r)
5252
5353
5454 func w (r,t) = ((("event_name_" + t) + "_") + r)
5555
5656
5757 func x (r,t) = ((("event_desc_" + t) + "_") + r)
5858
5959
6060 func y (r,t) = ((("event_displayCid_" + t) + "_") + r)
6161
6262
6363 func z (r,t) = ((("event_tags_" + t) + "_") + r)
6464
6565
6666 func A (r,t) = ((("event_flag_" + t) + "_") + r)
6767
6868
6969 func B (r,t) = ((("event_note_" + t) + "_") + r)
7070
7171
7272 func C (r,t) = ((("event_crawlerCid_" + t) + "_") + r)
7373
7474
7575 func D (r,t) = ((("event_totalTicketTypes_" + t) + "_") + r)
7676
7777
7878 func E (r,t) = ((("event_totalIssued_" + t) + "_") + r)
7979
8080
8181 func F (r,t) = ((("event_canceled_" + t) + "_") + r)
8282
8383
8484 func G (r,t) = ((("event_canceledReason_" + t) + "_") + r)
8585
8686
8787 func H (r,t,I) = ((((("ticket_name_" + t) + "_") + r) + "_") + I)
8888
8989
9090 func J (r,t,I) = ((((("ticket_desc_" + t) + "_") + r) + "_") + I)
9191
9292
9393 func K (r,t,I) = ((((("ticket_price_" + t) + "_") + r) + "_") + I)
9494
9595
9696 func L (r,t,I) = ((((("ticket_date_" + t) + "_") + r) + "_") + I)
9797
9898
9999 func M (r,t,I) = ((((("ticket_maxAvailable_" + t) + "_") + r) + "_") + I)
100100
101101
102102 func N (r,t,I) = ((((("ticket_sold_" + t) + "_") + r) + "_") + I)
103103
104104
105105 func O (r,t,I) = ((((("ticket_onSale_" + t) + "_") + r) + "_") + I)
106106
107107
108-func P (r,t,I) = ((((("ticket_amountUsed_" + t) + "_") + r) + "_") + I)
108+func P (r,t,I,Q) = ((((((("ticket_amountUsed_" + t) + "_") + r) + "_") + I) + "_") + Q)
109109
110110
111-func Q (r,t,I) = ((((("ticket_maxUse_" + t) + "_") + r) + "_") + I)
111+func R (r,t,I) = ((((("ticket_maxUse_" + t) + "_") + r) + "_") + I)
112112
113113
114-func R (r,t,I) = ((((("ticket_totalIssued_" + t) + "_") + r) + "_") + I)
114+func S (r,t,I) = ((((("ticket_totalIssued_" + t) + "_") + r) + "_") + I)
115115
116116
117-func S (T,U) = if ((size(T) == 0))
117+func T (U,V) = if ((size(U) == 0))
118118 then throw("Field cannot be is empty")
119- else if ((size(T) > U))
120- then throw((T + " is too long"))
119+ else if ((size(U) > V))
120+ then throw((U + " is too long"))
121121 else true
122122
123123
124-func V (W) = (0 > W)
124+func W (X) = (0 > X)
125125
126126
127-func X (t) = valueOrElse(getString(this, s(t)), "")
127+func Y (t) = valueOrElse(getString(this, s(t)), "")
128128
129129
130-func Y (r) = {
131- let Z = valueOrElse(getString(d, q(r)), m)
132- if ((Z == m))
130+func Z (r) = {
131+ let aa = valueOrElse(getString(d, q(r)), m)
132+ if ((aa == m))
133133 then "Register this account first with \"Account\" tab"
134- else if ((Z == l))
134+ else if ((aa == l))
135135 then "Account suspended"
136136 else ""
137137 }
138138
139139
140-func aa (r,ab,ac,ad,ae,af) = {
141- let ag = Y(r)
142- if ((ag != ""))
143- then throw(ag)
144- else if ((size(ab) == 0))
140+func ab (r,ac,ad,ae,af,ag) = {
141+ let ah = Z(r)
142+ if ((ah != ""))
143+ then throw(ah)
144+ else if ((size(ac) == 0))
145145 then throw("Display CID cannot be empty")
146- else if (!(n(ab)))
146+ else if (!(n(ac)))
147147 then throw("Problem with CID")
148- else if (!(S(ac, 300)))
148+ else if (!(T(ad, 300)))
149149 then throw("300 Char. max name")
150- else if (!(S(ad, 3000)))
150+ else if (!(T(ae, 3000)))
151151 then throw("3000 Char. max description")
152- else if (!(S(af, 1000)))
152+ else if (!(T(ag, 1000)))
153153 then throw("1000 Char. max date")
154- else if ((size(split(ae, ",")) > 5))
154+ else if ((size(split(af, ",")) > 5))
155155 then throw("5 tags max.")
156156 else ""
157157 }
158158
159159
160-func ah (t,r,ac,ad,ai,aj,ak) = {
161- let ag = Y(r)
162- if ((ag != ""))
163- then throw(ag)
164- else if (!(S(ac, 200)))
160+func ai (t,r,ad,ae,aj,ak,al) = {
161+ let ah = Z(r)
162+ if ((ah != ""))
163+ then throw(ah)
164+ else if (!(T(ad, 200)))
165165 then throw("100 Char. max name")
166- else if (!(S(ad, 1000)))
166+ else if (!(T(ae, 1000)))
167167 then throw("1000 Char. max description")
168- else if (if (if (V(ai))
168+ else if (if (if (W(aj))
169169 then true
170- else V(ak))
170+ else W(al))
171171 then true
172- else V(aj))
172+ else W(ak))
173173 then throw("Positive amount only")
174- else if (!(S(ad, 1000)))
174+ else if (!(T(ae, 1000)))
175175 then throw("1000 Char. max description")
176176 else ""
177177 }
178178
179179
180-func al (am) = if (!(j))
180+func am (an) = if (!(j))
181181 then throw(k)
182- else $Tuple3(toBase58String(am.transactionId), toBase58String(am.caller.bytes), lastBlock.timestamp)
182+ else $Tuple3(toBase58String(an.transactionId), toBase58String(an.caller.bytes), lastBlock.timestamp)
183183
184184
185-func an (am) = if ((size(am.payments) == 0))
185+func ao (an) = if ((size(an.payments) == 0))
186186 then throw("No payment attached")
187187 else {
188- let ao = value(am.payments[0])
189- let ap = value(ao.amount)
190- $Tuple2(ao, ap)
188+ let ap = value(an.payments[0])
189+ let aq = value(ap.amount)
190+ $Tuple2(ap, aq)
191191 }
192192
193193
194-func aq (am,ar,as) = {
195- let at = an(am)
196- let ao = at._1
197- let ap = at._2
198- if (!(isDefined(ao.assetId)))
194+func ar (an,as,at) = {
195+ let au = ao(an)
196+ let ap = au._1
197+ let aq = au._2
198+ if (!(isDefined(ap.assetId)))
199199 then throw("Wrong asset attached")
200200 else {
201- let au = if (if ((size(ar) > 0))
202- then (toBase58String(value(ao.assetId)) == ar)
201+ let av = if (if ((size(as) > 0))
202+ then (toBase58String(value(ap.assetId)) == as)
203203 else false)
204- then ao.assetId
204+ then ap.assetId
205205 else throw("Wrong asset attached")
206- if ((as != ap))
206+ if ((at != aq))
207207 then throw("Payment amount don't match")
208- else $Tuple2(ap, au)
208+ else $Tuple2(aq, av)
209209 }
210210 }
211211
212212
213-func av (t,r) = {
214- let aw = X(t)
215- if ((aw == ""))
213+func aw (t,r) = {
214+ let ax = Y(t)
215+ if ((ax == ""))
216216 then throw("Event not found")
217- else (aw == r)
217+ else (ax == r)
218218 }
219219
220220
221-func ax (r,t,I) = {
222- let ay = b(H(r, t, I))
223- (size(ay) != 0)
221+func ay (r,t,I) = {
222+ let az = b(H(r, t, I))
223+ (size(az) != 0)
224224 }
225225
226226
227-func az (aA,t) = i(F(aA, t))
227+func aA (aB,t) = i(F(aB, t))
228228
229229
230-@Callable(aB)
231-func setConf (c,aC) = {
232- let r = toString(aB.caller)
230+@Callable(aC)
231+func setConf (c,aD) = {
232+ let r = toString(aC.caller)
233233 if (containsElement([g, toString(this)], r))
234234 then if (contains(c, "conf_"))
235- then [StringEntry(c, aC)]
235+ then [StringEntry(c, aD)]
236236 else throw("Entries starting with conf_ only")
237237 else throw("You are not allowed to change this")
238238 }
239239
240240
241241
242-@Callable(am)
243-func addEvent (ac,ad,ae,ab,aD,af) = {
244- let aE = al(am)
245- let t = aE._1
246- let r = aE._2
247- let aF = aE._3
248- let ag = Y(r)
249- if ((ag != ""))
250- then throw(ag)
242+@Callable(an)
243+func addEvent (ad,ae,af,ac,aE,ag) = {
244+ let aF = am(an)
245+ let t = aF._1
246+ let r = aF._2
247+ let aG = aF._3
248+ let ah = Z(r)
249+ if ((ah != ""))
250+ then throw(ah)
251251 else {
252- let aG = aa(r, ab, ac, ad, ae, af)
253- if ((aG != ""))
252+ let aH = ab(r, ac, ad, ae, af, ag)
253+ if ((aH != ""))
254254 then throw("Something went wrong!")
255- else [IntegerEntry(u(r, t), aF), StringEntry(v(r, t), af), StringEntry(w(r, t), ac), StringEntry(x(r, t), ad), StringEntry(y(r, t), ab), StringEntry(z(r, t), ae), StringEntry(C(r, t), aD), IntegerEntry(E(r, t), 0), BooleanEntry(F(r, t), false), StringEntry(s(t), r)]
255+ else [IntegerEntry(u(r, t), aG), StringEntry(v(r, t), ag), StringEntry(w(r, t), ad), StringEntry(x(r, t), ae), StringEntry(y(r, t), ac), StringEntry(z(r, t), af), StringEntry(C(r, t), aE), IntegerEntry(E(r, t), 0), BooleanEntry(F(r, t), false), StringEntry(s(t), r)]
256256 }
257257 }
258258
259259
260260
261-@Callable(am)
262-func editEvent (t,ac,ad,ae,ab,aD,af) = if (!(j))
261+@Callable(an)
262+func editEvent (t,ad,ae,af,ac,aE,ag) = if (!(j))
263263 then throw(k)
264264 else {
265- let r = toBase58String(am.caller.bytes)
266- let ag = Y(r)
267- if ((ag != ""))
268- then throw(ag)
265+ let r = toBase58String(an.caller.bytes)
266+ let ah = Z(r)
267+ if ((ah != ""))
268+ then throw(ah)
269269 else {
270- let aG = aa(r, ab, ac, ad, ae, af)
271- if ((aG != ""))
270+ let aH = ab(r, ac, ad, ae, af, ag)
271+ if ((aH != ""))
272272 then throw("Something went wrong!")
273273 else {
274- let aH = b(w(r, t))
275- if ((aH == ""))
274+ let aI = b(w(r, t))
275+ if ((aI == ""))
276276 then throw("Entry not found")
277277 else {
278- let aI = b(A(r, t))
279- if ((aI == "ILLEGAL"))
278+ let aJ = b(A(r, t))
279+ if ((aJ == "ILLEGAL"))
280280 then throw("Cannot update ILLEGAL Event")
281- else [StringEntry(w(r, t), ac), StringEntry(v(r, t), af), StringEntry(x(r, t), ad), StringEntry(z(r, t), ae), StringEntry(C(r, t), aD)]
281+ else [StringEntry(w(r, t), ad), StringEntry(v(r, t), ag), StringEntry(x(r, t), ae), StringEntry(z(r, t), af), StringEntry(C(r, t), aE)]
282282 }
283283 }
284284 }
285285 }
286286
287287
288288
289-@Callable(am)
289+@Callable(an)
290290 func deleteEvent (t) = {
291- let aJ = al(am)
292- let aK = aJ._1
293- let r = aJ._2
294- let aF = aJ._3
295- let ag = Y(r)
296- if ((ag != ""))
297- then throw(ag)
298- else if (!(av(t, r)))
291+ let aK = am(an)
292+ let aL = aK._1
293+ let r = aK._2
294+ let aG = aK._3
295+ let ah = Z(r)
296+ if ((ah != ""))
297+ then throw(ah)
298+ else if (!(aw(t, r)))
299299 then throw("You are not the owner of this event")
300300 else {
301- let aL = h(E(r, t))
302- if ((aL != 0))
301+ let aM = h(E(r, t))
302+ if ((aM != 0))
303303 then throw("Cannot delete event with already sold tickets")
304304 else {
305- let aM = h(D(r, t))
306- if ((aM > 0))
305+ let aN = h(D(r, t))
306+ if ((aN > 0))
307307 then throw("Delete all tickets first")
308308 else [DeleteEntry(u(r, t)), DeleteEntry(v(r, t)), DeleteEntry(w(r, t)), DeleteEntry(x(r, t)), DeleteEntry(y(r, t)), DeleteEntry(z(r, t)), DeleteEntry(C(r, t)), DeleteEntry(E(r, t)), DeleteEntry(F(r, t)), DeleteEntry(s(t)), DeleteEntry(D(r, t))]
309309 }
310310 }
311311 }
312312
313313
314314
315-@Callable(am)
316-func cancelEvent (t,aN) = {
317- let aO = al(am)
318- let aK = aO._1
319- let r = aO._2
320- let aF = aO._3
321- let ag = Y(r)
322- if ((ag != ""))
323- then throw(ag)
324- else if (!(av(t, r)))
315+@Callable(an)
316+func cancelEvent (t,aO) = {
317+ let aP = am(an)
318+ let aL = aP._1
319+ let r = aP._2
320+ let aG = aP._3
321+ let ah = Z(r)
322+ if ((ah != ""))
323+ then throw(ah)
324+ else if (!(aw(t, r)))
325325 then throw("You are not the owner of this event")
326- else [BooleanEntry(F(r, t), true), StringEntry(G(r, t), aN)]
326+ else [BooleanEntry(F(r, t), true), StringEntry(G(r, t), aO)]
327327 }
328328
329329
330330
331-@Callable(am)
332-func flagEvent (t,aP,aI,aQ) = {
333- let aR = al(am)
334- let aK = aR._1
335- let r = aR._2
331+@Callable(an)
332+func flagEvent (t,aQ,aJ,aR) = {
333+ let aS = am(an)
334+ let aL = aS._1
335+ let r = aS._2
336336 if (containsElement([g, toString(this)], r))
337- then if (containsElement(["", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], aI))
338- then [StringEntry(A(aP, t), aI), StringEntry(B(aP, t), aQ)]
339- else throw(("Unknow status " + aI))
337+ then if (containsElement(["", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], aJ))
338+ then [StringEntry(A(aQ, t), aJ), StringEntry(B(aQ, t), aR)]
339+ else throw(("Unknow status " + aJ))
340340 else throw("You are not allowed")
341341 }
342342
343343
344344
345-@Callable(am)
346-func addTicket (t,ac,ad,ai,aj,aS) = {
347- let aT = al(am)
348- let aK = aT._1
349- let r = aT._2
350- let af = aT._3
351- let ag = Y(r)
352- if ((ag != ""))
353- then throw(ag)
354- else if (az(r, t))
345+@Callable(an)
346+func addTicket (t,ad,ae,aj,ak,aT) = {
347+ let aU = am(an)
348+ let aL = aU._1
349+ let r = aU._2
350+ let ag = aU._3
351+ let ah = Z(r)
352+ if ((ah != ""))
353+ then throw(ah)
354+ else if (aA(r, t))
355355 then throw("Event have been canceled")
356- else if (!(av(t, r)))
356+ else if (!(aw(t, r)))
357357 then throw("You are not the owner of this event")
358358 else {
359- let aU = ah(t, r, ac, ad, ai, aj, aS)
360- if ((aU != ""))
359+ let aV = ai(t, r, ad, ae, aj, ak, aT)
360+ if ((aV != ""))
361361 then throw("Something went wrong!")
362362 else {
363- let aM = h(D(r, t))
364-[StringEntry(H(r, t, aK), ac), IntegerEntry(L(r, t, aK), af), StringEntry(J(r, t, aK), ad), IntegerEntry(K(r, t, aK), ai), IntegerEntry(M(r, t, aK), aj), BooleanEntry(O(r, t, aK), true), IntegerEntry(Q(r, t, aK), aS), IntegerEntry(R(r, t, aK), 0), IntegerEntry(D(r, t), (aM + 1))]
363+ let aN = h(D(r, t))
364+[StringEntry(H(r, t, aL), ad), IntegerEntry(L(r, t, aL), ag), StringEntry(J(r, t, aL), ae), IntegerEntry(K(r, t, aL), aj), IntegerEntry(M(r, t, aL), ak), BooleanEntry(O(r, t, aL), true), IntegerEntry(R(r, t, aL), aT), IntegerEntry(S(r, t, aL), 0), IntegerEntry(D(r, t), (aN + 1))]
365365 }
366366 }
367367 }
368368
369369
370370
371-@Callable(am)
372-func editTicket (I,t,ac,ad,ai,aj,ak) = {
373- let aV = al(am)
374- let aK = aV._1
375- let r = aV._2
376- let af = aV._3
377- let ag = Y(r)
378- if ((ag != ""))
379- then throw(ag)
380- else if (!(av(t, r)))
371+@Callable(an)
372+func editTicket (I,t,ad,ae,aj,ak,al) = {
373+ let aW = am(an)
374+ let aL = aW._1
375+ let r = aW._2
376+ let ag = aW._3
377+ let ah = Z(r)
378+ if ((ah != ""))
379+ then throw(ah)
380+ else if (!(aw(t, r)))
381381 then throw("You are not the owner of this event")
382- else if (!(ax(r, t, I)))
382+ else if (!(ay(r, t, I)))
383383 then throw("Ticket not found")
384384 else {
385- let aU = ah(t, r, ac, ad, ai, aj, ak)
386- if ((aU != ""))
385+ let aV = ai(t, r, ad, ae, aj, ak, al)
386+ if ((aV != ""))
387387 then throw("Something went wrong!")
388388 else {
389- let aW = valueOrElse(getInteger(N(r, t, I)), 0)
390- if ((aW > aj))
389+ let aX = valueOrElse(getInteger(N(r, t, I)), 0)
390+ if ((aX > ak))
391391 then throw("Max tickets available cannot be lower than amount already sold")
392- else [StringEntry(H(r, t, I), ac), StringEntry(J(r, t, I), ad), IntegerEntry(K(r, t, I), ai), IntegerEntry(M(r, t, I), aj), IntegerEntry(Q(r, t, aK), ak)]
392+ else [StringEntry(H(r, t, I), ad), StringEntry(J(r, t, I), ae), IntegerEntry(K(r, t, I), aj), IntegerEntry(M(r, t, I), ak), IntegerEntry(R(r, t, aL), al)]
393393 }
394394 }
395395 }
396396
397397
398398
399-@Callable(am)
400-func pauseTicketSale (t,I,aX) = {
401- let aY = al(am)
402- let aK = aY._1
403- let r = aY._2
404- let af = aY._3
405- let ag = Y(r)
406- if ((ag != ""))
407- then throw(ag)
408- else if (!(av(t, r)))
399+@Callable(an)
400+func pauseTicketSale (t,I,aY) = {
401+ let aZ = am(an)
402+ let aL = aZ._1
403+ let r = aZ._2
404+ let ag = aZ._3
405+ let ah = Z(r)
406+ if ((ah != ""))
407+ then throw(ah)
408+ else if (!(aw(t, r)))
409409 then throw("You are not the owner of this event")
410- else if (!(ax(r, t, I)))
410+ else if (!(ay(r, t, I)))
411411 then throw("Ticket not found")
412- else [BooleanEntry(O(r, t, I), aX)]
412+ else [BooleanEntry(O(r, t, I), aY)]
413413 }
414414
415415
416416
417-@Callable(am)
417+@Callable(an)
418418 func deleteTicket (I,t) = {
419- let aZ = al(am)
420- let aK = aZ._1
421- let r = aZ._2
422- let af = aZ._3
423- let ag = Y(r)
424- if ((ag != ""))
425- then throw(ag)
426- else if (!(av(t, r)))
419+ let ba = am(an)
420+ let aL = ba._1
421+ let r = ba._2
422+ let ag = ba._3
423+ let ah = Z(r)
424+ if ((ah != ""))
425+ then throw(ah)
426+ else if (!(aw(t, r)))
427427 then throw("You are not the owner of this event")
428- else if (!(ax(r, t, I)))
428+ else if (!(ay(r, t, I)))
429429 then throw("Ticket not found")
430430 else {
431- let ba = h(N(r, t, I))
432- if ((ba != 0))
431+ let bb = h(N(r, t, I))
432+ if ((bb != 0))
433433 then throw("Cannot delete ticket that sold already")
434434 else {
435- let aM = h(D(r, t))
436-[DeleteEntry(H(r, t, I)), DeleteEntry(L(r, t, I)), DeleteEntry(J(r, t, I)), DeleteEntry(K(r, t, I)), DeleteEntry(M(r, t, I)), DeleteEntry(O(r, t, I)), DeleteEntry(Q(r, t, I)), DeleteEntry(R(r, t, I)), IntegerEntry(D(r, t), (aM - 1))]
435+ let aN = h(D(r, t))
436+[DeleteEntry(H(r, t, I)), DeleteEntry(L(r, t, I)), DeleteEntry(J(r, t, I)), DeleteEntry(K(r, t, I)), DeleteEntry(M(r, t, I)), DeleteEntry(O(r, t, I)), DeleteEntry(R(r, t, I)), DeleteEntry(S(r, t, I)), IntegerEntry(D(r, t), (aN - 1))]
437437 }
438438 }
439439 }
440440
441441
442442
443-@Callable(am)
444-func buyTicket (I,t,aA) = {
445- let bb = al(am)
446- let aK = bb._1
447- let r = bb._2
448- let af = bb._3
449- let bc = valueOrElse(h("total_tickets_issued"), 0)
450- if (!(av(t, aA)))
443+@Callable(an)
444+func buyTicket (I,t,aB) = {
445+ let bc = am(an)
446+ let aL = bc._1
447+ let r = bc._2
448+ let ag = bc._3
449+ let bd = valueOrElse(h("total_tickets_issued"), 0)
450+ if (!(aw(t, aB)))
451451 then throw("Event ID and Issuer don't match")
452- else if (!(ax(aA, t, I)))
452+ else if (!(ay(aB, t, I)))
453453 then throw("Ticket not found")
454454 else {
455- let bd = b(w(aA, t))
456- if ((bd == ""))
455+ let be = b(w(aB, t))
456+ if ((be == ""))
457457 then throw("Art doesn't exist")
458- else if (az(aA, t))
458+ else if (aA(aB, t))
459459 then throw("Event have been canceled")
460460 else {
461- let be = i(O(aA, t, I))
462- if (!(be))
461+ let bf = i(O(aB, t, I))
462+ if (!(bf))
463463 then throw("Tickets not for sale")
464464 else {
465- let ba = h(N(aA, t, I))
466- let bf = h(K(aA, t, I))
467- let ar = toBase58String(f)
468- let bg = aq(am, ar, bf)
469- let ap = bg._1
470- let au = bg._2
471- let bh = h(M(aA, t, I))
472- let bi = fraction(ap, p, 100)
473- let bj = (ap - bi)
474- if ((ba == bh))
465+ let bb = h(N(aB, t, I))
466+ let bg = h(K(aB, t, I))
467+ let as = toBase58String(f)
468+ let bh = ar(an, as, bg)
469+ let aq = bh._1
470+ let av = bh._2
471+ let bi = h(M(aB, t, I))
472+ let bj = fraction(aq, p, 100)
473+ let bk = (aq - bj)
474+ if ((bb == bi))
475475 then throw("Art sold out")
476476 else {
477- let bk = (ba + 1)
478- let bl = ((((((((((("Organizer: " + aA) + ",
477+ let bl = (bb + 1)
478+ let bm = ((((((((((("Organizer: " + aB) + ",
479479 EventID: ") + t) + ",
480480 TicketID: ") + I) + ",
481- EventName: ") + bd) + ",
482- Issue: ") + toString(bk)) + "/") + toString(bh))
483- let bm = Issue(("ST_" + toString((bc + 1))), bl, 1, 0, false)
484- let bn = calculateAssetId(bm)
485- let bo = if ((bk == bh))
481+ EventName: ") + be) + ",
482+ Issue: ") + toString(bl)) + "/") + toString(bi))
483+ let bn = Issue(("ST_" + toString((bd + 1))), bm, 1, 0, false)
484+ let bo = calculateAssetId(bn)
485+ let bp = if ((bl == bi))
486486 then false
487487 else true
488- let bp = am.caller
489- let bq = ((((((((("ticket_sold_" + toString(bk)) + "_of_") + toString(bh)) + "_") + t) + "_") + aA) + "_") + I)
490- let br = ((((((((toString(bp) + "_") + toString(af)) + "_") + aK) + "_") + toString(ap)) + "_") + toBase58String(bn))
491- let bs = StringEntry(bq, br)
492- let aL = h(E(aA, t))
493- let bt = h(R(aA, t, I))
494- let bu = [IntegerEntry(N(aA, t, I), bk), StringEntry(("nft_" + toBase58String(bn)), bq), IntegerEntry("total_tickets_issued", (bc + 1)), IntegerEntry(E(aA, t), (aL + 1)), IntegerEntry(R(aA, t, I), (bt + 1)), StringEntry((("ST_" + toString((bc + 1))) + "_assetId"), toBase58String(bn)), BooleanEntry(O(aA, t, I), bo), IntegerEntry(P(aA, t, I), 0), bm, ScriptTransfer(Address(fromBase58String(aA)), bj, au), ScriptTransfer(bp, 1, bn), ScriptTransfer(Address(fromBase58String(e)), bi, au)]
495-bs :: bu
488+ let bq = an.caller
489+ let br = ((((((((("ticket_sold_" + toString(bl)) + "_of_") + toString(bi)) + "_") + t) + "_") + aB) + "_") + I)
490+ let bs = ((((((((toString(bq) + "_") + toString(ag)) + "_") + aL) + "_") + toString(aq)) + "_") + toBase58String(bo))
491+ let bt = StringEntry(br, bs)
492+ let aM = h(E(aB, t))
493+ let bu = h(S(aB, t, I))
494+ let bv = [IntegerEntry(N(aB, t, I), bl), StringEntry(("nft_" + toBase58String(bo)), br), IntegerEntry("total_tickets_issued", (bd + 1)), IntegerEntry(E(aB, t), (aM + 1)), IntegerEntry(S(aB, t, I), (bu + 1)), StringEntry((("ST_" + toString((bd + 1))) + "_assetId"), ((I + "_") + toBase58String(bo))), BooleanEntry(O(aB, t, I), bp), IntegerEntry(P(aB, t, I, toBase58String(bo)), 0), bn, ScriptTransfer(Address(fromBase58String(aB)), bk, av), ScriptTransfer(bq, 1, bo), ScriptTransfer(Address(fromBase58String(e)), bj, av)]
495+bt :: bv
496496 }
497497 }
498498 }
499499 }
500500 }
501501
502502
503503
504-@Callable(am)
505-func useTicket (t,aA) = {
506- let bv = al(am)
507- let aK = bv._1
508- let r = bv._2
509- let af = bv._3
510- let bw = an(am)
511- let ao = bw._1
512- let ap = bw._2
513- if (!(isDefined(ao.assetId)))
504+@Callable(an)
505+func useTicket () = {
506+ let bw = am(an)
507+ let aL = bw._1
508+ let r = bw._2
509+ let ag = bw._3
510+ let bx = ao(an)
511+ let ap = bx._1
512+ let aq = bx._2
513+ if (!(isDefined(ap.assetId)))
514514 then throw("Wrong asset attached")
515515 else {
516- let I = toBase58String(value(ao.assetId))
517- if (!(ax(aA, t, I)))
518- then throw("Ticket not found")
516+ let by = b(("nft_" + toBase58String(value(ap.assetId))))
517+ if ((size(by) == 0))
518+ then throw("Something went wrong")
519519 else {
520- let bx = h(P(aA, t, I))
521- let by = h(Q(aA, t, I))
522- if ((by == bx))
523- then throw((("Ticket used " + toString(bx)) + " times already"))
524- else [IntegerEntry(P(aA, t, I), (bx + 1)), ScriptTransfer(Address(fromBase58String(r)), 1, ao.assetId)]
520+ let bz = split(by, "_")
521+ let aB = bz[6]
522+ let t = bz[5]
523+ let I = bz[7]
524+ if (!(ay(aB, t, I)))
525+ then throw("Ticket not found")
526+ else {
527+ let bA = h(P(aB, t, I, toBase58String(value(ap.assetId))))
528+ let bB = h(R(aB, t, I))
529+ if ((bB == bA))
530+ then throw((("Ticket used " + toString(bA)) + " times already"))
531+ else [IntegerEntry(P(aB, t, I, toBase58String(value(ap.assetId))), (bA + 1)), ScriptTransfer(Address(fromBase58String(r)), 1, ap.assetId)]
532+ }
525533 }
526534 }
527535 }
528536
529537
530538
531-@Callable(am)
532-func deleteEntry (bz) = {
533- let r = toString(am.caller)
539+@Callable(an)
540+func deleteEntry (bC) = {
541+ let r = toString(an.caller)
534542 if ((r == g))
535- then [DeleteEntry(bz)]
543+ then [DeleteEntry(bC)]
536544 else throw("no")
537545 }
538546
539547

github/deemru/w8io/169f3d6 
182.94 ms