tx · 2zdvycWQd3mC5j7QTTSbJ9m9RXmyj3upDjbg8DBsJ44k

3N1rgNAEfetRH87WQqJan6zSy7Wp1byercW:  -0.01800000 Waves

2022.10.26 08:02 [2288936] smart account 3N1rgNAEfetRH87WQqJan6zSy7Wp1byercW > SELF 0.00000000 Waves

{ "type": 13, "id": "2zdvycWQd3mC5j7QTTSbJ9m9RXmyj3upDjbg8DBsJ44k", "fee": 1800000, "feeAssetId": null, "timestamp": 1666760543465, "version": 2, "chainId": 84, "sender": "3N1rgNAEfetRH87WQqJan6zSy7Wp1byercW", "senderPublicKey": "4dLVvLszUGcr1uHnDX72QuZxqaZTntQWRbbhn8YQDgA4", "proofs": [ "XT2BR38CLRScQn3G7nHodRVa6RKFnxjofmwCegP2Kp8USXuKPF7hWcTtUo898oe5GgomA7xvvGDSu1TTaEnmTSa" ], "script": "base64:BgJmCAISBAoCCAgSCQoHCAgICAgICBIKCggICAgICAgICBIDCgEIEgQKAggIEgYKBAgICAgSCAoGCAgIAQEBEgkKBwgICAgBAQESBQoDCAEEEgQKAggIEgUKAwgICBIECgIICBIDCgEINQAHVkVSU0lPTgIFMS4wLjABDmdldFN0cmluZ0J5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgAACHVzZXJEYXBwCQEFdmFsdWUBCQCmCAEJAQ5nZXRTdHJpbmdCeUtleQECD2NvbmZfdXNlcnNfZGFwcAALZmVlUmVjZWl2ZXIJAQ5nZXRTdHJpbmdCeUtleQECEWNvbmZfZmVlX3JlY2VpdmVyAAtzaWduQXNzZXRJZAkA2QQBCQEOZ2V0U3RyaW5nQnlLZXkBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X1NJR04ABWNocmlzCQEOZ2V0U3RyaW5nQnlLZXkBAgxjb25mX2FkbWluXzEBD2dldEludGVnZXJCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAQ9nZXRCb29sZWFuQnlLZXkBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQNrZXkHAAtkYXBwUnVubmluZwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQh1c2VyRGFwcAIUY29uZl9kYXBwX2lzX3J1bm5pbmcGAA5tYWludGVuYW5jZU1TRwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQh1c2VyRGFwcAIUY29uZl9tYWludGVuYW5jZV9tc2cCAAANdXNlclN1c3BlbmRlZAIJU1VTUEVOREVEABB1c2VyVW5yZWdpc3RlcmVkAgxVTlJFR0lTVEVSRUQBC3ZhbGlkYXRlQ0lEAQNjaWQDCQEIY29udGFpbnMCBQNjaWQCAS8DAwkAZgIATAkAsQIBBQNjaWQJAAACCQCxAgEJAJEDAgkAtQkCBQNjaWQCAS8AAAA7BwkAZgIAEAkAsQIBCQCRAwIJALUJAgUDY2lkAgEvAAEHBwAHc2lnbkN1dAACAQ1rZXlVc2VyU3RhdHVzAQZjYWxsZXIJAKwCAgIMdXNlcl9zdGF0dXNfBQZjYWxsZXIBFmtleUV2ZW50T3duZXJCeUV2ZW50SWQBB2V2ZW50SWQJAKwCAgIQZ2V0X2V2ZW50X293bmVyXwUHZXZlbnRJZAERa2V5RXZlbnRBZGRlZERhdGUCBmNhbGxlcgdldmVudElkCQCsAgIJAKwCAgkArAICAhBldmVudF9hZGRlZERhdGVfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50RGF0ZQIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X2RhdGVfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50TmFtZQIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X25hbWVfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50RGVzYwIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X2Rlc2NfBQdldmVudElkAgFfBQZjYWxsZXIBEmtleUV2ZW50RGlzcGxheUNpZAIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICEWV2ZW50X2Rpc3BsYXlDaWRfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50VGFncwIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X3RhZ3NfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50RmxhZwIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X2ZsYWdfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50Tm90ZQIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X25vdGVfBQdldmVudElkAgFfBQZjYWxsZXIBD2tleUV2ZW50Q3Jhd2xlcgIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICEWV2ZW50X2NyYXdsZXJDaWRfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50VHlwZQIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X3R5cGVfBQdldmVudElkAgFfBQZjYWxsZXIBGGtleUV2ZW50VG90YWxUaWNrZXRUeXBlcwIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICF2V2ZW50X3RvdGFsVGlja2V0VHlwZXNfBQdldmVudElkAgFfBQZjYWxsZXIBGmtleUV2ZW50VG90YWxUaWNrZXRzSXNzdWVkAgZjYWxsZXIHZXZlbnRJZAkArAICCQCsAgIJAKwCAgISZXZlbnRfdG90YWxJc3N1ZWRfBQdldmVudElkAgFfBQZjYWxsZXIBEGtleUV2ZW50Q2FuY2VsZWQCBmNhbGxlcgdldmVudElkCQCsAgIJAKwCAgkArAICAg9ldmVudF9jYW5jZWxlZF8FB2V2ZW50SWQCAV8FBmNhbGxlcgEWa2V5RXZlbnRDYW5jZWxlZFJlYXNvbgIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICFWV2ZW50X2NhbmNlbGVkUmVhc29uXwUHZXZlbnRJZAIBXwUGY2FsbGVyAQ1rZXlUaWNrZXROYW1lAwZjYWxsZXIHZXZlbnRJZAh0aWNrZXRJZAkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDHRpY2tldF9uYW1lXwUHZXZlbnRJZAIBXwUGY2FsbGVyAgFfBQh0aWNrZXRJZAENa2V5VGlja2V0RGVzYwMGY2FsbGVyB2V2ZW50SWQIdGlja2V0SWQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgx0aWNrZXRfZGVzY18FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQBDmtleVRpY2tldFByaWNlAwZjYWxsZXIHZXZlbnRJZAh0aWNrZXRJZAkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDXRpY2tldF9wcmljZV8FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQBDWtleVRpY2tldERhdGUDBmNhbGxlcgdldmVudElkCHRpY2tldElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIMdGlja2V0X2RhdGVfBQdldmVudElkAgFfBQZjYWxsZXICAV8FCHRpY2tldElkARVrZXlUaWNrZXRNYXhBdmFpbGFibGUDBmNhbGxlcgdldmVudElkCHRpY2tldElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIUdGlja2V0X21heEF2YWlsYWJsZV8FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQBDWtleVRpY2tldFNvbGQDBmNhbGxlcgdldmVudElkCHRpY2tldElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIMdGlja2V0X3NvbGRfBQdldmVudElkAgFfBQZjYWxsZXICAV8FCHRpY2tldElkAQ9rZXlUaWNrZXRPblNhbGUDBmNhbGxlcgdldmVudElkCHRpY2tldElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIOdGlja2V0X29uU2FsZV8FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQBE2tleVRpY2tldEFtb3VudFVzZWQDBmNhbGxlcgdldmVudElkCHRpY2tldElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgISdGlja2V0X2Ftb3VudFVzZWRfBQdldmVudElkAgFfBQZjYWxsZXICAV8FCHRpY2tldElkAQ9rZXlUaWNrZXRNYXhVc2UDBmNhbGxlcgdldmVudElkCHRpY2tldElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIOdGlja2V0X21heFVzZV8FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQBFGtleVRpY2tldFRvdGFsSXNzdWVkAwZjYWxsZXIHZXZlbnRJZAh0aWNrZXRJZAkArAICCQCsAgIJAKwCAgkArAICCQCsAgICE3RpY2tldF90b3RhbElzc3VlZF8FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQBDnZhbGlkYXRlU3RyaW5nAgNzdHIDbWF4AwkAAAIJALECAQUDc3RyAAAJAAIBAhhGaWVsZCBjYW5ub3QgYmUgaXMgZW1wdHkDCQBmAgkAsQIBBQNzdHIFA21heAkAAgEJAKwCAgUDc3RyAgwgaXMgdG9vIGxvbmcGAQt2YWxpZGF0ZUludAEDbnVtCQBmAgAABQNudW0BFmdldEV2ZW50T3duZXJCeUV2ZW50SWQBB2V2ZW50SWQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBFmtleUV2ZW50T3duZXJCeUV2ZW50SWQBBQdldmVudElkAgABDHZhbGlkYXRlVXNlcgEGY2FsbGVyBAp1c2VyU3RhdHVzCQELdmFsdWVPckVsc2UCCQCdCAIFCHVzZXJEYXBwCQENa2V5VXNlclN0YXR1cwEFBmNhbGxlcgUQdXNlclVucmVnaXN0ZXJlZAMJAAACBQp1c2VyU3RhdHVzBRB1c2VyVW5yZWdpc3RlcmVkAi5SZWdpc3RlciB0aGlzIGFjY291bnQgZmlyc3Qgd2l0aCAiQWNjb3VudCIgdGFiAwkAAAIFCnVzZXJTdGF0dXMFDXVzZXJTdXNwZW5kZWQCEUFjY291bnQgc3VzcGVuZGVkAgABDHZhbGlkYXRlVHlwZQEEdHlwZQkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgIGb25saW5lCQDMCAICB29mZmxpbmUJAMwIAgIEYm90aAUDbmlsBQR0eXBlARF2YWxpZGF0ZUV2ZW50RGF0YQcGY2FsbGVyCmNpZERpc3BsYXkEbmFtZQtkZXNjcmlwdGlvbgR0YWdzBHR5cGUEZGF0ZQQJY2hlY2tVc2VyCQEMdmFsaWRhdGVVc2VyAQUGY2FsbGVyAwkBAiE9AgUJY2hlY2tVc2VyAgAJAAIBBQljaGVja1VzZXIDCQAAAgkAsQIBBQpjaWREaXNwbGF5AAAJAAIBAhtEaXNwbGF5IENJRCBjYW5ub3QgYmUgZW1wdHkDCQEBIQEJAQt2YWxpZGF0ZUNJRAEFCmNpZERpc3BsYXkJAAIBAhBQcm9ibGVtIHdpdGggQ0lEAwkBASEBCQEOdmFsaWRhdGVTdHJpbmcCBQRuYW1lAMgBCQACAQISMTAwIENoYXIuIG1heCBuYW1lAwkBASEBCQEMdmFsaWRhdGVUeXBlAQUEdHlwZQkAAgECEFdyb25nIGV2ZW50IHR5cGUDCQEBIQEJAQ52YWxpZGF0ZVN0cmluZwIFC2Rlc2NyaXB0aW9uAOgHCQACAQIaMTAwMCBDaGFyLiBtYXggZGVzY3JpcHRpb24DCQEBIQEJAQ52YWxpZGF0ZVN0cmluZwIFBGRhdGUA6AcJAAIBAhMxMDAwIENoYXIuIG1heCBkYXRlAwkAZgIJAJADAQkAtQkCBQR0YWdzAgEsAAUJAAIBAgs1IHRhZ3MgbWF4LgIAARJ2YWxpZGF0ZVRpY2tldERhdGEHB2V2ZW50SWQGY2FsbGVyBG5hbWULZGVzY3JpcHRpb24FcHJpY2UMbWF4QXZhaWxhYmxlBm1heFVzZQQJY2hlY2tVc2VyCQEMdmFsaWRhdGVVc2VyAQUGY2FsbGVyAwkBAiE9AgUJY2hlY2tVc2VyAgAJAAIBBQljaGVja1VzZXIDCQEBIQEJAQ52YWxpZGF0ZVN0cmluZwIFBG5hbWUAyAEJAAIBAhIxMDAgQ2hhci4gbWF4IG5hbWUDCQEBIQEJAQ52YWxpZGF0ZVN0cmluZwIFC2Rlc2NyaXB0aW9uAOgHCQACAQIaMTAwMCBDaGFyLiBtYXggZGVzY3JpcHRpb24DAwMJAQt2YWxpZGF0ZUludAEFBXByaWNlBgkBC3ZhbGlkYXRlSW50AQUGbWF4VXNlBgkBC3ZhbGlkYXRlSW50AQUMbWF4QXZhaWxhYmxlCQACAQIUUG9zaXRpdmUgYW1vdW50IG9ubHkDCQEBIQEJAQ52YWxpZGF0ZVN0cmluZwIFC2Rlc2NyaXB0aW9uAOgHCQACAQIaMTAwMCBDaGFyLiBtYXggZGVzY3JpcHRpb24CAAEMaWRDYWxsZXJEYXRlAQFpAwkBASEBBQtkYXBwUnVubmluZwkAAgEFDm1haW50ZW5hbmNlTVNHCQCVCgMJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAEJaXNQYXltZW50AQFpAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECE05vIHBheW1lbnQgYXR0YWNoZWQEB3BheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQGYW1vdW50CQEFdmFsdWUBCAUHcGF5bWVudAZhbW91bnQJAJQKAgUHcGF5bWVudAUGYW1vdW50ARR2YWxpZGF0ZVByaWNlQXNzZXRJZAMBaQxwcmljZUFzc2V0SWQMYXJ0d29ya1ByaWNlBAskdDA2NzM5Njc3NQkBCWlzUGF5bWVudAEFAWkEB3BheW1lbnQIBQskdDA2NzM5Njc3NQJfMQQGYW1vdW50CAULJHQwNjczOTY3NzUCXzIDCQEBIQEJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkCQACAQIUV3JvbmcgYXNzZXQgYXR0YWNoZWQEB2Fzc2V0SWQDAwkAZgIJALECAQUMcHJpY2VBc3NldElkAAAJAAACCQDYBAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQFDHByaWNlQXNzZXRJZAcIBQdwYXltZW50B2Fzc2V0SWQJAAIBAhRXcm9uZyBhc3NldCBhdHRhY2hlZAMJAQIhPQIFDGFydHdvcmtQcmljZQUGYW1vdW50CQACAQIaUGF5bWVudCBhbW91bnQgZG9uJ3QgbWF0Y2gJAJQKAgUGYW1vdW50BQdhc3NldElkAQxpc0V2ZW50T3duZXICB2V2ZW50SWQGY2FsbGVyBApldmVudE93bmVyCQEWZ2V0RXZlbnRPd25lckJ5RXZlbnRJZAEFB2V2ZW50SWQDCQAAAgUKZXZlbnRPd25lcgIACQACAQIPRXZlbnQgbm90IGZvdW5kCQAAAgUKZXZlbnRPd25lcgUGY2FsbGVyAQt0aWNrZXRFeGlzdAMGY2FsbGVyB2V2ZW50SWQIdGlja2V0SWQEBnRpY2tldAkBDmdldFN0cmluZ0J5S2V5AQkBDWtleVRpY2tldE5hbWUDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQECIT0CCQCxAgEFBnRpY2tldAAAAQ9ldmVudElzQ2FuY2VsZWQCBmlzc3VlcgdldmVudElkCQEPZ2V0Qm9vbGVhbkJ5S2V5AQkBEGtleUV2ZW50Q2FuY2VsZWQCBQZpc3N1ZXIFB2V2ZW50SWQNBmludm9rZQEHc2V0Q29uZgIDa2V5A3ZhbAQGY2FsbGVyCQClCAEIBQZpbnZva2UGY2FsbGVyAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgMJAQhjb250YWlucwIFA2tleQIFY29uZl8JAMwIAgkBC1N0cmluZ0VudHJ5AgUDa2V5BQN2YWwFA25pbAkAAgECIEVudHJpZXMgc3RhcnRpbmcgd2l0aCBjb25mXyBvbmx5CQACAQIiWW91IGFyZSBub3QgYWxsb3dlZCB0byBjaGFuZ2UgdGhpcwFpAQhhZGRFdmVudAcEbmFtZQtkZXNjcmlwdGlvbgR0YWdzCmNpZERpc3BsYXkHY3Jhd2xlcgR0eXBlBGRhdGUECyR0MDgxMTg4MTY3CQEMaWRDYWxsZXJEYXRlAQUBaQQHZXZlbnRJZAgFCyR0MDgxMTg4MTY3Al8xBAZjYWxsZXIIBQskdDA4MTE4ODE2NwJfMgQJYWRkZWREYXRlCAULJHQwODExODgxNjcCXzMECWNoZWNrVXNlcgkBDHZhbGlkYXRlVXNlcgEFBmNhbGxlcgMJAQIhPQIFCWNoZWNrVXNlcgIACQACAQUJY2hlY2tVc2VyBA12YWxpZGF0ZUV2ZW50CQERdmFsaWRhdGVFdmVudERhdGEHBQZjYWxsZXIFCmNpZERpc3BsYXkFBG5hbWUFC2Rlc2NyaXB0aW9uBQR0YWdzBQR0eXBlBQRkYXRlAwkBAiE9AgUNdmFsaWRhdGVFdmVudAIACQACAQIVU29tZXRoaW5nIHdlbnQgd3JvbmchCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQERa2V5RXZlbnRBZGRlZERhdGUCBQZjYWxsZXIFB2V2ZW50SWQFCWFkZGVkRGF0ZQkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5RXZlbnREYXRlAgUGY2FsbGVyBQdldmVudElkBQRkYXRlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlFdmVudE5hbWUCBQZjYWxsZXIFB2V2ZW50SWQFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleUV2ZW50RGVzYwIFBmNhbGxlcgUHZXZlbnRJZAULZGVzY3JpcHRpb24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBEmtleUV2ZW50RGlzcGxheUNpZAIFBmNhbGxlcgUHZXZlbnRJZAUKY2lkRGlzcGxheQkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5RXZlbnRUYWdzAgUGY2FsbGVyBQdldmVudElkBQR0YWdzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9rZXlFdmVudENyYXdsZXICBQZjYWxsZXIFB2V2ZW50SWQFB2NyYXdsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleUV2ZW50VHlwZQIFBmNhbGxlcgUHZXZlbnRJZAUEdHlwZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGmtleUV2ZW50VG90YWxUaWNrZXRzSXNzdWVkAgUGY2FsbGVyBQdldmVudElkAAAJAMwIAgkBDEJvb2xlYW5FbnRyeQIJARBrZXlFdmVudENhbmNlbGVkAgUGY2FsbGVyBQdldmVudElkBwkAzAgCCQELU3RyaW5nRW50cnkCCQEWa2V5RXZlbnRPd25lckJ5RXZlbnRJZAEFB2V2ZW50SWQFBmNhbGxlcgUDbmlsAWkBCWVkaXRFdmVudAgHZXZlbnRJZARuYW1lC2Rlc2NyaXB0aW9uBHRhZ3MKY2lkRGlzcGxheQdjcmF3bGVyBHR5cGUEZGF0ZQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwQGY2FsbGVyCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMECWNoZWNrVXNlcgkBDHZhbGlkYXRlVXNlcgEFBmNhbGxlcgMJAQIhPQIFCWNoZWNrVXNlcgIACQACAQUJY2hlY2tVc2VyBA12YWxpZGF0ZUV2ZW50CQERdmFsaWRhdGVFdmVudERhdGEHBQZjYWxsZXIFCmNpZERpc3BsYXkFBG5hbWUFC2Rlc2NyaXB0aW9uBQR0YWdzBQR0eXBlBQRkYXRlAwkBAiE9AgUNdmFsaWRhdGVFdmVudAIACQACAQIVU29tZXRoaW5nIHdlbnQgd3JvbmchBAplbnRyeUV4aXN0CQEOZ2V0U3RyaW5nQnlLZXkBCQEMa2V5RXZlbnROYW1lAgUGY2FsbGVyBQdldmVudElkAwkAAAIFCmVudHJ5RXhpc3QCAAkAAgECD0VudHJ5IG5vdCBmb3VuZAQEZmxhZwkBDmdldFN0cmluZ0J5S2V5AQkBDGtleUV2ZW50RmxhZwIFBmNhbGxlcgUHZXZlbnRJZAMJAAACBQRmbGFnAgdJTExFR0FMCQACAQIbQ2Fubm90IHVwZGF0ZSBJTExFR0FMIEV2ZW50CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlFdmVudE5hbWUCBQZjYWxsZXIFB2V2ZW50SWQFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleUV2ZW50RGF0ZQIFBmNhbGxlcgUHZXZlbnRJZAUEZGF0ZQkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5RXZlbnREZXNjAgUGY2FsbGVyBQdldmVudElkBQtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5RXZlbnRUYWdzAgUGY2FsbGVyBQdldmVudElkBQR0YWdzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlFdmVudFR5cGUCBQZjYWxsZXIFB2V2ZW50SWQFBHR5cGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleUV2ZW50Q3Jhd2xlcgIFBmNhbGxlcgUHZXZlbnRJZAUHY3Jhd2xlcgUDbmlsAWkBC2RlbGV0ZUV2ZW50AQdldmVudElkBA0kdDAxMDUzMTEwNTc1CQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQ0kdDAxMDUzMTEwNTc1Al8xBAZjYWxsZXIIBQ0kdDAxMDUzMTEwNTc1Al8yBAlhZGRlZERhdGUIBQ0kdDAxMDUzMTEwNTc1Al8zBAljaGVja1VzZXIJAQx2YWxpZGF0ZVVzZXIBBQZjYWxsZXIDCQECIT0CBQljaGVja1VzZXICAAkAAgEFCWNoZWNrVXNlcgMJAQEhAQkBDGlzRXZlbnRPd25lcgIFB2V2ZW50SWQFBmNhbGxlcgkAAgECI1lvdSBhcmUgbm90IHRoZSBvd25lciBvZiB0aGlzIGV2ZW50BA1ldmVudFRvdGFsTkZUCQEPZ2V0SW50ZWdlckJ5S2V5AQkBGmtleUV2ZW50VG90YWxUaWNrZXRzSXNzdWVkAgUGY2FsbGVyBQdldmVudElkAwkBAiE9AgUNZXZlbnRUb3RhbE5GVAAACQACAQItQ2Fubm90IGRlbGV0ZSBldmVudCB3aXRoIGFscmVhZHkgc29sZCB0aWNrZXRzBBd0b3RhbFRpY2tldFR5cGVGb3JFdmVudAkBD2dldEludGVnZXJCeUtleQEJARhrZXlFdmVudFRvdGFsVGlja2V0VHlwZXMCBQZjYWxsZXIFB2V2ZW50SWQDCQBmAgUXdG90YWxUaWNrZXRUeXBlRm9yRXZlbnQAAAkAAgECGERlbGV0ZSBhbGwgdGlja2V0cyBmaXJzdAkAzAgCCQELRGVsZXRlRW50cnkBCQERa2V5RXZlbnRBZGRlZERhdGUCBQZjYWxsZXIFB2V2ZW50SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDGtleUV2ZW50RGF0ZQIFBmNhbGxlcgUHZXZlbnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEMa2V5RXZlbnROYW1lAgUGY2FsbGVyBQdldmVudElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQxrZXlFdmVudERlc2MCBQZjYWxsZXIFB2V2ZW50SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEmtleUV2ZW50RGlzcGxheUNpZAIFBmNhbGxlcgUHZXZlbnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEMa2V5RXZlbnRUYWdzAgUGY2FsbGVyBQdldmVudElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ9rZXlFdmVudENyYXdsZXICBQZjYWxsZXIFB2V2ZW50SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDGtleUV2ZW50VHlwZQIFBmNhbGxlcgUHZXZlbnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEaa2V5RXZlbnRUb3RhbFRpY2tldHNJc3N1ZWQCBQZjYWxsZXIFB2V2ZW50SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEGtleUV2ZW50Q2FuY2VsZWQCBQZjYWxsZXIFB2V2ZW50SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBFmtleUV2ZW50T3duZXJCeUV2ZW50SWQBBQdldmVudElkBQNuaWwBaQELY2FuY2VsRXZlbnQCB2V2ZW50SWQGcmVhc29uBA0kdDAxMTkwNDExOTQ4CQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQ0kdDAxMTkwNDExOTQ4Al8xBAZjYWxsZXIIBQ0kdDAxMTkwNDExOTQ4Al8yBAlhZGRlZERhdGUIBQ0kdDAxMTkwNDExOTQ4Al8zBAljaGVja1VzZXIJAQx2YWxpZGF0ZVVzZXIBBQZjYWxsZXIDCQECIT0CBQljaGVja1VzZXICAAkAAgEFCWNoZWNrVXNlcgMJAQEhAQkBDGlzRXZlbnRPd25lcgIFB2V2ZW50SWQFBmNhbGxlcgkAAgECI1lvdSBhcmUgbm90IHRoZSBvd25lciBvZiB0aGlzIGV2ZW50CQDMCAIJAQxCb29sZWFuRW50cnkCCQEQa2V5RXZlbnRDYW5jZWxlZAIFBmNhbGxlcgUHZXZlbnRJZAYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBFmtleUV2ZW50Q2FuY2VsZWRSZWFzb24CBQZjYWxsZXIFB2V2ZW50SWQFBnJlYXNvbgUDbmlsAWkBCWZsYWdFdmVudAQHZXZlbnRJZARhZGRyBGZsYWcEbm90ZQQNJHQwMTIzODMxMjQxNgkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMTIzODMxMjQxNgJfMQQGY2FsbGVyCAUNJHQwMTIzODMxMjQxNgJfMgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCAgAJAMwIAgIPQ0hBTkdFX1JFUVVJUkVECQDMCAICB0ZMQUdHRUQJAMwIAgIHSUxMRUdBTAUDbmlsBQRmbGFnCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlFdmVudEZsYWcCBQRhZGRyBQdldmVudElkBQRmbGFnCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlFdmVudE5vdGUCBQRhZGRyBQdldmVudElkBQRub3RlBQNuaWwJAAIBCQCsAgICDlVua25vdyBzdGF0dXMgBQRmbGFnCQACAQITWW91IGFyZSBub3QgYWxsb3dlZAFpAQlhZGRUaWNrZXQGB2V2ZW50SWQEbmFtZQtkZXNjcmlwdGlvbgVwcmljZQxtYXhBdmFpbGFibGUGTWF4VXNlBA0kdDAxMjkxNzEyOTU3CQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQ0kdDAxMjkxNzEyOTU3Al8xBAZjYWxsZXIIBQ0kdDAxMjkxNzEyOTU3Al8yBARkYXRlCAUNJHQwMTI5MTcxMjk1NwJfMwQJY2hlY2tVc2VyCQEMdmFsaWRhdGVVc2VyAQUGY2FsbGVyAwkBAiE9AgUJY2hlY2tVc2VyAgAJAAIBBQljaGVja1VzZXIDCQEPZXZlbnRJc0NhbmNlbGVkAgUGY2FsbGVyBQdldmVudElkCQACAQIYRXZlbnQgaGF2ZSBiZWVuIGNhbmNlbGVkAwkBASEBCQEMaXNFdmVudE93bmVyAgUHZXZlbnRJZAUGY2FsbGVyCQACAQIjWW91IGFyZSBub3QgdGhlIG93bmVyIG9mIHRoaXMgZXZlbnQEDnZhbGlkYXRlVGlja2V0CQESdmFsaWRhdGVUaWNrZXREYXRhBwUHZXZlbnRJZAUGY2FsbGVyBQRuYW1lBQtkZXNjcmlwdGlvbgUFcHJpY2UFDG1heEF2YWlsYWJsZQUGTWF4VXNlAwkBAiE9AgUOdmFsaWRhdGVUaWNrZXQCAAkAAgECFVNvbWV0aGluZyB3ZW50IHdyb25nIQQXdG90YWxUaWNrZXRUeXBlRm9yRXZlbnQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEYa2V5RXZlbnRUb3RhbFRpY2tldFR5cGVzAgUGY2FsbGVyBQdldmVudElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlUaWNrZXROYW1lAwUGY2FsbGVyBQdldmVudElkBQJpZAUEbmFtZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDWtleVRpY2tldERhdGUDBQZjYWxsZXIFB2V2ZW50SWQFAmlkBQRkYXRlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlUaWNrZXREZXNjAwUGY2FsbGVyBQdldmVudElkBQJpZAULZGVzY3JpcHRpb24JAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5rZXlUaWNrZXRQcmljZQMFBmNhbGxlcgUHZXZlbnRJZAUCaWQFBXByaWNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEVa2V5VGlja2V0TWF4QXZhaWxhYmxlAwUGY2FsbGVyBQdldmVudElkBQJpZAUMbWF4QXZhaWxhYmxlCQDMCAIJAQxCb29sZWFuRW50cnkCCQEPa2V5VGlja2V0T25TYWxlAwUGY2FsbGVyBQdldmVudElkBQJpZAYJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlUaWNrZXRNYXhVc2UDBQZjYWxsZXIFB2V2ZW50SWQFAmlkBQZNYXhVc2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlUaWNrZXRUb3RhbElzc3VlZAMFBmNhbGxlcgUHZXZlbnRJZAUCaWQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGGtleUV2ZW50VG90YWxUaWNrZXRUeXBlcwIFBmNhbGxlcgUHZXZlbnRJZAkAZAIFF3RvdGFsVGlja2V0VHlwZUZvckV2ZW50AAEFA25pbAFpAQplZGl0VGlja2V0Bwh0aWNrZXRJZAdldmVudElkBG5hbWULZGVzY3JpcHRpb24FcHJpY2UMbWF4QXZhaWxhYmxlBm1heFVzZQQNJHQwMTQyOTIxNDMzMgkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMTQyOTIxNDMzMgJfMQQGY2FsbGVyCAUNJHQwMTQyOTIxNDMzMgJfMgQEZGF0ZQgFDSR0MDE0MjkyMTQzMzICXzMECWNoZWNrVXNlcgkBDHZhbGlkYXRlVXNlcgEFBmNhbGxlcgMJAQIhPQIFCWNoZWNrVXNlcgIACQACAQUJY2hlY2tVc2VyAwkBASEBCQEMaXNFdmVudE93bmVyAgUHZXZlbnRJZAUGY2FsbGVyCQACAQIjWW91IGFyZSBub3QgdGhlIG93bmVyIG9mIHRoaXMgZXZlbnQDCQEBIQEJAQt0aWNrZXRFeGlzdAMFBmNhbGxlcgUHZXZlbnRJZAUIdGlja2V0SWQJAAIBAhBUaWNrZXQgbm90IGZvdW5kBA52YWxpZGF0ZVRpY2tldAkBEnZhbGlkYXRlVGlja2V0RGF0YQcFB2V2ZW50SWQFBmNhbGxlcgUEbmFtZQULZGVzY3JpcHRpb24FBXByaWNlBQxtYXhBdmFpbGFibGUFBm1heFVzZQMJAQIhPQIFDnZhbGlkYXRlVGlja2V0AgAJAAIBAhVTb21ldGhpbmcgd2VudCB3cm9uZyEECnRpY2tldFNvbGQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBDWtleVRpY2tldFNvbGQDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkAAADCQBmAgUKdGlja2V0U29sZAUMbWF4QXZhaWxhYmxlCQACAQI+TWF4IHRpY2tldHMgYXZhaWxhYmxlIGNhbm5vdCBiZSBsb3dlciB0aGFuIGFtb3VudCBhbHJlYWR5IHNvbGQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVRpY2tldE5hbWUDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkBQRuYW1lCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlUaWNrZXREZXNjAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAULZGVzY3JpcHRpb24JAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5rZXlUaWNrZXRQcmljZQMFBmNhbGxlcgUHZXZlbnRJZAUIdGlja2V0SWQFBXByaWNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEVa2V5VGlja2V0TWF4QXZhaWxhYmxlAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAUMbWF4QXZhaWxhYmxlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5VGlja2V0TWF4VXNlAwUGY2FsbGVyBQdldmVudElkBQJpZAUGbWF4VXNlBQNuaWwBaQEPcGF1c2VUaWNrZXRTYWxlAwdldmVudElkCHRpY2tldElkBnN0YXR1cwQNJHQwMTU0NjExNTUwMQkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMTU0NjExNTUwMQJfMQQGY2FsbGVyCAUNJHQwMTU0NjExNTUwMQJfMgQEZGF0ZQgFDSR0MDE1NDYxMTU1MDECXzMECWNoZWNrVXNlcgkBDHZhbGlkYXRlVXNlcgEFBmNhbGxlcgMJAQIhPQIFCWNoZWNrVXNlcgIACQACAQUJY2hlY2tVc2VyAwkBASEBCQEMaXNFdmVudE93bmVyAgUHZXZlbnRJZAUGY2FsbGVyCQACAQIjWW91IGFyZSBub3QgdGhlIG93bmVyIG9mIHRoaXMgZXZlbnQJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQ9rZXlUaWNrZXRPblNhbGUDBQZjYWxsZXIFB2V2ZW50SWQFAmlkBQZzdGF0dXMFA25pbAFpAQxkZWxldGVUaWNrZXQCCHRpY2tldElkB2V2ZW50SWQEDSR0MDE1ODc1MTU5MTUJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDE1ODc1MTU5MTUCXzEEBmNhbGxlcggFDSR0MDE1ODc1MTU5MTUCXzIEBGRhdGUIBQ0kdDAxNTg3NTE1OTE1Al8zBAljaGVja1VzZXIJAQx2YWxpZGF0ZVVzZXIBBQZjYWxsZXIDCQECIT0CBQljaGVja1VzZXICAAkAAgEFCWNoZWNrVXNlcgMJAQEhAQkBDGlzRXZlbnRPd25lcgIFB2V2ZW50SWQFBmNhbGxlcgkAAgECI1lvdSBhcmUgbm90IHRoZSBvd25lciBvZiB0aGlzIGV2ZW50AwkBASEBCQELdGlja2V0RXhpc3QDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQACAQIQVGlja2V0IG5vdCBmb3VuZAQKYW1vdW50U29sZAkBD2dldEludGVnZXJCeUtleQEJAQ1rZXlUaWNrZXRTb2xkAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAMJAQIhPQIFCmFtb3VudFNvbGQAAAkAAgECJkNhbm5vdCBkZWxldGUgdGlja2V0IHRoYXQgc29sZCBhbHJlYWR5BBd0b3RhbFRpY2tldFR5cGVGb3JFdmVudAkBD2dldEludGVnZXJCeUtleQEJARhrZXlFdmVudFRvdGFsVGlja2V0VHlwZXMCBQZjYWxsZXIFB2V2ZW50SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDWtleVRpY2tldE5hbWUDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ1rZXlUaWNrZXREYXRlAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQENa2V5VGlja2V0RGVzYwMFBmNhbGxlcgUHZXZlbnRJZAUIdGlja2V0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDmtleVRpY2tldFByaWNlAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEVa2V5VGlja2V0TWF4QXZhaWxhYmxlAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEPa2V5VGlja2V0T25TYWxlAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEPa2V5VGlja2V0TWF4VXNlAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEUa2V5VGlja2V0VG90YWxJc3N1ZWQDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEYa2V5RXZlbnRUb3RhbFRpY2tldFR5cGVzAgUGY2FsbGVyBQdldmVudElkCQBlAgUXdG90YWxUaWNrZXRUeXBlRm9yRXZlbnQAAQUDbmlsAWkBCWJ1eVRpY2tldAMIdGlja2V0SWQHZXZlbnRJZAZpc3N1ZXIEDSR0MDE3MTM5MTcxNzcJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDE3MTM5MTcxNzcCXzEEBmNhbGxlcggFDSR0MDE3MTM5MTcxNzcCXzIEBGRhdGUIBQ0kdDAxNzEzOTE3MTc3Al8zBAh0b3RhbE5GVAkBC3ZhbHVlT3JFbHNlAgkBD2dldEludGVnZXJCeUtleQECFHRvdGFsX3RpY2tldHNfaXNzdWVkAAADCQEBIQEJAQxpc0V2ZW50T3duZXICBQdldmVudElkBQZpc3N1ZXIJAAIBAh9FdmVudCBJRCBhbmQgSXNzdWVyIGRvbid0IG1hdGNoAwkBASEBCQELdGlja2V0RXhpc3QDBQZpc3N1ZXIFB2V2ZW50SWQFCHRpY2tldElkCQACAQIQVGlja2V0IG5vdCBmb3VuZAQJZXZlbnROYW1lCQEOZ2V0U3RyaW5nQnlLZXkBCQEMa2V5RXZlbnROYW1lAgUGaXNzdWVyBQdldmVudElkAwkAAAIFCWV2ZW50TmFtZQIACQACAQIRQXJ0IGRvZXNuJ3QgZXhpc3QDCQEPZXZlbnRJc0NhbmNlbGVkAgUGaXNzdWVyBQdldmVudElkCQACAQIYRXZlbnQgaGF2ZSBiZWVuIGNhbmNlbGVkBAhpc09uU2FsZQkBD2dldEJvb2xlYW5CeUtleQEJAQ9rZXlUaWNrZXRPblNhbGUDBQZpc3N1ZXIFB2V2ZW50SWQFCHRpY2tldElkAwkBASEBBQhpc09uU2FsZQkAAgECFFRpY2tldHMgbm90IGZvciBzYWxlBAphbW91bnRTb2xkCQEPZ2V0SW50ZWdlckJ5S2V5AQkBDWtleVRpY2tldFNvbGQDBQZpc3N1ZXIFB2V2ZW50SWQFCHRpY2tldElkBAt0aWNrZXRQcmljZQkBD2dldEludGVnZXJCeUtleQEJAQ5rZXlUaWNrZXRQcmljZQMFBmlzc3VlcgUHZXZlbnRJZAUIdGlja2V0SWQEDHByaWNlQXNzZXRJZAkA2AQBBQtzaWduQXNzZXRJZAQNJHQwMTgwMjMxODA5NwkBFHZhbGlkYXRlUHJpY2VBc3NldElkAwUBaQUMcHJpY2VBc3NldElkBQt0aWNrZXRQcmljZQQGYW1vdW50CAUNJHQwMTgwMjMxODA5NwJfMQQHYXNzZXRJZAgFDSR0MDE4MDIzMTgwOTcCXzIECm1heENhblNlbGwJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEVa2V5VGlja2V0TWF4QXZhaWxhYmxlAwUGaXNzdWVyBQdldmVudElkBQh0aWNrZXRJZAQNYW1vdW50Rm9yU2lnbgkAawMFBmFtb3VudAUHc2lnbkN1dABkBBJhbW91bnRGb3JPcmdhbml6ZXIJAGUCBQZhbW91bnQFDWFtb3VudEZvclNpZ24DCQAAAgUKYW1vdW50U29sZAUKbWF4Q2FuU2VsbAkAAgECDEFydCBzb2xkIG91dAQNbmV3QW1vdW50U29sZAkAZAIFCmFtb3VudFNvbGQAAQQJaXNzdWVNZXRhCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgILT3JnYW5pemVyOiAFBmlzc3VlcgIMLAogRXZlbnRJRDogBQdldmVudElkAg0sCiBUaWNrZXRJRDogBQh0aWNrZXRJZAIOLAogRXZlbnROYW1lOiAFCWV2ZW50TmFtZQIKLAogSXNzdWU6IAkApAMBBQ1uZXdBbW91bnRTb2xkAgEvCQCkAwEFCm1heENhblNlbGwECGlzc3VlTkZUCQDCCAUJAKwCAgIDU1RfCQCkAwEJAGQCBQh0b3RhbE5GVAABBQlpc3N1ZU1ldGEAAQAABwQFaWRORlQJALgIAQUIaXNzdWVORlQECnNlbGxTdGF0dXMDCQAAAgUNbmV3QW1vdW50U29sZAUKbWF4Q2FuU2VsbAcGBApyZWNlaXZlTkZUCAUBaQZjYWxsZXIEB3NvbGRLZXkJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDHRpY2tldF9zb2xkXwkApAMBBQ1uZXdBbW91bnRTb2xkAgRfb2ZfCQCkAwEFCm1heENhblNlbGwCAV8FB2V2ZW50SWQCAV8FBmlzc3VlcgIBXwUIdGlja2V0SWQECXNvbGRWYWx1ZQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKUIAQUKcmVjZWl2ZU5GVAIBXwkApAMBBQRkYXRlAgFfBQJpZAIBXwkApAMBBQZhbW91bnQCAV8JANgEAQUFaWRORlQECHNvbGREYXRhCQELU3RyaW5nRW50cnkCBQdzb2xkS2V5BQlzb2xkVmFsdWUEDWV2ZW50VG90YWxORlQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEaa2V5RXZlbnRUb3RhbFRpY2tldHNJc3N1ZWQCBQZpc3N1ZXIFB2V2ZW50SWQEDnRpY2tldFRvdGFsTkZUCQEPZ2V0SW50ZWdlckJ5S2V5AQkBFGtleVRpY2tldFRvdGFsSXNzdWVkAwUGaXNzdWVyBQdldmVudElkBQh0aWNrZXRJZAQGYnV5UmVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQENa2V5VGlja2V0U29sZAMFBmlzc3VlcgUHZXZlbnRJZAUIdGlja2V0SWQFDW5ld0Ftb3VudFNvbGQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICAgRuZnRfCQDYBAEFBWlkTkZUBQdzb2xkS2V5CQDMCAIJAQxJbnRlZ2VyRW50cnkCAhB0b3RhbF9uZnRfaXNzdWVkCQBkAgUIdG90YWxORlQAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGmtleUV2ZW50VG90YWxUaWNrZXRzSXNzdWVkAgUGaXNzdWVyBQdldmVudElkCQBkAgUNZXZlbnRUb3RhbE5GVAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5VGlja2V0VG90YWxJc3N1ZWQDBQZpc3N1ZXIFB2V2ZW50SWQFCHRpY2tldElkCQBkAgUOdGlja2V0VG90YWxORlQAAQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIDU1RfCQCkAwEJAGQCBQh0b3RhbE5GVAABAghfYXNzZXRJZAkA2AQBBQVpZE5GVAkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBD2tleVRpY2tldE9uU2FsZQMFBmlzc3VlcgUHZXZlbnRJZAUIdGlja2V0SWQFCnNlbGxTdGF0dXMJAMwIAgkBDEludGVnZXJFbnRyeQIJARNrZXlUaWNrZXRBbW91bnRVc2VkAwUGaXNzdWVyBQdldmVudElkBQh0aWNrZXRJZAAACQDMCAIFCGlzc3VlTkZUCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQZpc3N1ZXIFEmFtb3VudEZvck9yZ2FuaXplcgUHYXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQpyZWNlaXZlTkZUAAEFBWlkTkZUCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQtmZWVSZWNlaXZlcgUNYW1vdW50Rm9yU2lnbgUHYXNzZXRJZAUDbmlsCQDMCAIFCHNvbGREYXRhBQZidXlSZXMBaQEJdXNlVGlja2V0AgdldmVudElkBmlzc3VlcgQNJHQwMjAzNzYyMDQxNAkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMjAzNzYyMDQxNAJfMQQGY2FsbGVyCAUNJHQwMjAzNzYyMDQxNAJfMgQEZGF0ZQgFDSR0MDIwMzc2MjA0MTQCXzMEDSR0MDIwNDIwMjA0NTYJAQlpc1BheW1lbnQBBQFpBAdwYXltZW50CAUNJHQwMjA0MjAyMDQ1NgJfMQQGYW1vdW50CAUNJHQwMjA0MjAyMDQ1NgJfMgMJAQEhAQkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQJAAIBAhRXcm9uZyBhc3NldCBhdHRhY2hlZAQIdGlja2V0SWQJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAMJAQEhAQkBC3RpY2tldEV4aXN0AwUGaXNzdWVyBQdldmVudElkBQh0aWNrZXRJZAkAAgECEFRpY2tldCBub3QgZm91bmQECmFtb3VudFVzZWQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQETa2V5VGlja2V0QW1vdW50VXNlZAMFBmlzc3VlcgUHZXZlbnRJZAUIdGlja2V0SWQEDG1heFVzaW5nVGltZQkBD2dldEludGVnZXJCeUtleQEJAQ9rZXlUaWNrZXRNYXhVc2UDBQZpc3N1ZXIFB2V2ZW50SWQFCHRpY2tldElkAwkAAAIFDG1heFVzaW5nVGltZQUKYW1vdW50VXNlZAkAAgEJAKwCAgkArAICAgxUaWNrZXQgdXNlZCAJAKQDAQUKYW1vdW50VXNlZAIOIHRpbWVzIGFscmVhZHkJAMwIAgkBDEludGVnZXJFbnRyeQIJARNrZXlUaWNrZXRBbW91bnRVc2VkAwUGaXNzdWVyBQdldmVudElkBQh0aWNrZXRJZAkAZAIFCmFtb3VudFVzZWQAAQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGY2FsbGVyAAEIBQdwYXltZW50B2Fzc2V0SWQFA25pbAFpAQtkZWxldGVFbnRyeQEFZW50cnkEBmNhbGxlcgkApQgBCAUBaQZjYWxsZXIDCQAAAgUGY2FsbGVyBQVjaHJpcwkAzAgCCQELRGVsZXRlRW50cnkBBQVlbnRyeQUDbmlsCQACAQICbm8Ar3Sm+g==", "height": 2288936, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FM3GR4mX8F3GfyxApi8R7fPotqqREwvNcJ9MR8GciHC Next: EPdFjWDJjqVsMnkfaNxDDRo7eZmfhrsD4bo7GWqCWGHx Diff:
OldNewDifferences
439439 then throw("Cannot delete ticket that sold already")
440440 else {
441441 let aP = h(E(r, t))
442-[DeleteEntry(I(r, t, J)), DeleteEntry(M(r, t, J)), DeleteEntry(K(r, t, J)), DeleteEntry(L(r, t, J)), DeleteEntry(N(r, t, J)), DeleteEntry(P(r, t, J)), DeleteEntry(R(r, t, J)), IntegerEntry(E(r, t), (aP - 1))]
442+[DeleteEntry(I(r, t, J)), DeleteEntry(M(r, t, J)), DeleteEntry(K(r, t, J)), DeleteEntry(L(r, t, J)), DeleteEntry(N(r, t, J)), DeleteEntry(P(r, t, J)), DeleteEntry(R(r, t, J)), DeleteEntry(S(r, t, J)), IntegerEntry(E(r, t), (aP - 1))]
443443 }
444444 }
445445 }
533533 }
534534
535535
536+
537+@Callable(ap)
538+func deleteEntry (bC) = {
539+ let r = toString(ap.caller)
540+ if ((r == g))
541+ then [DeleteEntry(bC)]
542+ else throw("no")
543+ }
544+
545+
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_type_" + t) + "_") + r)
7676
7777
7878 func E (r,t) = ((("event_totalTicketTypes_" + t) + "_") + r)
7979
8080
8181 func F (r,t) = ((("event_totalIssued_" + t) + "_") + r)
8282
8383
8484 func G (r,t) = ((("event_canceled_" + t) + "_") + r)
8585
8686
8787 func H (r,t) = ((("event_canceledReason_" + t) + "_") + r)
8888
8989
9090 func I (r,t,J) = ((((("ticket_name_" + t) + "_") + r) + "_") + J)
9191
9292
9393 func K (r,t,J) = ((((("ticket_desc_" + t) + "_") + r) + "_") + J)
9494
9595
9696 func L (r,t,J) = ((((("ticket_price_" + t) + "_") + r) + "_") + J)
9797
9898
9999 func M (r,t,J) = ((((("ticket_date_" + t) + "_") + r) + "_") + J)
100100
101101
102102 func N (r,t,J) = ((((("ticket_maxAvailable_" + t) + "_") + r) + "_") + J)
103103
104104
105105 func O (r,t,J) = ((((("ticket_sold_" + t) + "_") + r) + "_") + J)
106106
107107
108108 func P (r,t,J) = ((((("ticket_onSale_" + t) + "_") + r) + "_") + J)
109109
110110
111111 func Q (r,t,J) = ((((("ticket_amountUsed_" + t) + "_") + r) + "_") + J)
112112
113113
114114 func R (r,t,J) = ((((("ticket_maxUse_" + t) + "_") + r) + "_") + J)
115115
116116
117117 func S (r,t,J) = ((((("ticket_totalIssued_" + t) + "_") + r) + "_") + J)
118118
119119
120120 func T (U,V) = if ((size(U) == 0))
121121 then throw("Field cannot be is empty")
122122 else if ((size(U) > V))
123123 then throw((U + " is too long"))
124124 else true
125125
126126
127127 func W (X) = (0 > X)
128128
129129
130130 func Y (t) = valueOrElse(getString(this, s(t)), "")
131131
132132
133133 func Z (r) = {
134134 let aa = valueOrElse(getString(d, q(r)), m)
135135 if ((aa == m))
136136 then "Register this account first with \"Account\" tab"
137137 else if ((aa == l))
138138 then "Account suspended"
139139 else ""
140140 }
141141
142142
143143 func ab (ac) = containsElement(["online", "offline", "both"], ac)
144144
145145
146146 func ad (r,ae,af,ag,ah,ac,ai) = {
147147 let aj = Z(r)
148148 if ((aj != ""))
149149 then throw(aj)
150150 else if ((size(ae) == 0))
151151 then throw("Display CID cannot be empty")
152152 else if (!(n(ae)))
153153 then throw("Problem with CID")
154154 else if (!(T(af, 200)))
155155 then throw("100 Char. max name")
156156 else if (!(ab(ac)))
157157 then throw("Wrong event type")
158158 else if (!(T(ag, 1000)))
159159 then throw("1000 Char. max description")
160160 else if (!(T(ai, 1000)))
161161 then throw("1000 Char. max date")
162162 else if ((size(split(ah, ",")) > 5))
163163 then throw("5 tags max.")
164164 else ""
165165 }
166166
167167
168168 func ak (t,r,af,ag,al,am,an) = {
169169 let aj = Z(r)
170170 if ((aj != ""))
171171 then throw(aj)
172172 else if (!(T(af, 200)))
173173 then throw("100 Char. max name")
174174 else if (!(T(ag, 1000)))
175175 then throw("1000 Char. max description")
176176 else if (if (if (W(al))
177177 then true
178178 else W(an))
179179 then true
180180 else W(am))
181181 then throw("Positive amount only")
182182 else if (!(T(ag, 1000)))
183183 then throw("1000 Char. max description")
184184 else ""
185185 }
186186
187187
188188 func ao (ap) = if (!(j))
189189 then throw(k)
190190 else $Tuple3(toBase58String(ap.transactionId), toBase58String(ap.caller.bytes), lastBlock.timestamp)
191191
192192
193193 func aq (ap) = if ((size(ap.payments) == 0))
194194 then throw("No payment attached")
195195 else {
196196 let ar = value(ap.payments[0])
197197 let as = value(ar.amount)
198198 $Tuple2(ar, as)
199199 }
200200
201201
202202 func at (ap,au,av) = {
203203 let aw = aq(ap)
204204 let ar = aw._1
205205 let as = aw._2
206206 if (!(isDefined(ar.assetId)))
207207 then throw("Wrong asset attached")
208208 else {
209209 let ax = if (if ((size(au) > 0))
210210 then (toBase58String(value(ar.assetId)) == au)
211211 else false)
212212 then ar.assetId
213213 else throw("Wrong asset attached")
214214 if ((av != as))
215215 then throw("Payment amount don't match")
216216 else $Tuple2(as, ax)
217217 }
218218 }
219219
220220
221221 func ay (t,r) = {
222222 let az = Y(t)
223223 if ((az == ""))
224224 then throw("Event not found")
225225 else (az == r)
226226 }
227227
228228
229229 func aA (r,t,J) = {
230230 let aB = b(I(r, t, J))
231231 (size(aB) != 0)
232232 }
233233
234234
235235 func aC (aD,t) = i(G(aD, t))
236236
237237
238238 @Callable(aE)
239239 func setConf (c,aF) = {
240240 let r = toString(aE.caller)
241241 if (containsElement([g, toString(this)], r))
242242 then if (contains(c, "conf_"))
243243 then [StringEntry(c, aF)]
244244 else throw("Entries starting with conf_ only")
245245 else throw("You are not allowed to change this")
246246 }
247247
248248
249249
250250 @Callable(ap)
251251 func addEvent (af,ag,ah,ae,aG,ac,ai) = {
252252 let aH = ao(ap)
253253 let t = aH._1
254254 let r = aH._2
255255 let aI = aH._3
256256 let aj = Z(r)
257257 if ((aj != ""))
258258 then throw(aj)
259259 else {
260260 let aJ = ad(r, ae, af, ag, ah, ac, ai)
261261 if ((aJ != ""))
262262 then throw("Something went wrong!")
263263 else [IntegerEntry(u(r, t), aI), StringEntry(v(r, t), ai), StringEntry(w(r, t), af), StringEntry(x(r, t), ag), StringEntry(y(r, t), ae), StringEntry(z(r, t), ah), StringEntry(C(r, t), aG), StringEntry(D(r, t), ac), IntegerEntry(F(r, t), 0), BooleanEntry(G(r, t), false), StringEntry(s(t), r)]
264264 }
265265 }
266266
267267
268268
269269 @Callable(ap)
270270 func editEvent (t,af,ag,ah,ae,aG,ac,ai) = if (!(j))
271271 then throw(k)
272272 else {
273273 let r = toBase58String(ap.caller.bytes)
274274 let aj = Z(r)
275275 if ((aj != ""))
276276 then throw(aj)
277277 else {
278278 let aJ = ad(r, ae, af, ag, ah, ac, ai)
279279 if ((aJ != ""))
280280 then throw("Something went wrong!")
281281 else {
282282 let aK = b(w(r, t))
283283 if ((aK == ""))
284284 then throw("Entry not found")
285285 else {
286286 let aL = b(A(r, t))
287287 if ((aL == "ILLEGAL"))
288288 then throw("Cannot update ILLEGAL Event")
289289 else [StringEntry(w(r, t), af), StringEntry(v(r, t), ai), StringEntry(x(r, t), ag), StringEntry(z(r, t), ah), StringEntry(D(r, t), ac), StringEntry(C(r, t), aG)]
290290 }
291291 }
292292 }
293293 }
294294
295295
296296
297297 @Callable(ap)
298298 func deleteEvent (t) = {
299299 let aM = ao(ap)
300300 let aN = aM._1
301301 let r = aM._2
302302 let aI = aM._3
303303 let aj = Z(r)
304304 if ((aj != ""))
305305 then throw(aj)
306306 else if (!(ay(t, r)))
307307 then throw("You are not the owner of this event")
308308 else {
309309 let aO = h(F(r, t))
310310 if ((aO != 0))
311311 then throw("Cannot delete event with already sold tickets")
312312 else {
313313 let aP = h(E(r, t))
314314 if ((aP > 0))
315315 then throw("Delete all tickets first")
316316 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(D(r, t)), DeleteEntry(F(r, t)), DeleteEntry(G(r, t)), DeleteEntry(s(t))]
317317 }
318318 }
319319 }
320320
321321
322322
323323 @Callable(ap)
324324 func cancelEvent (t,aQ) = {
325325 let aR = ao(ap)
326326 let aN = aR._1
327327 let r = aR._2
328328 let aI = aR._3
329329 let aj = Z(r)
330330 if ((aj != ""))
331331 then throw(aj)
332332 else if (!(ay(t, r)))
333333 then throw("You are not the owner of this event")
334334 else [BooleanEntry(G(r, t), true), StringEntry(H(r, t), aQ)]
335335 }
336336
337337
338338
339339 @Callable(ap)
340340 func flagEvent (t,aS,aL,aT) = {
341341 let aU = ao(ap)
342342 let aN = aU._1
343343 let r = aU._2
344344 if (containsElement([g, toString(this)], r))
345345 then if (containsElement(["", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], aL))
346346 then [StringEntry(A(aS, t), aL), StringEntry(B(aS, t), aT)]
347347 else throw(("Unknow status " + aL))
348348 else throw("You are not allowed")
349349 }
350350
351351
352352
353353 @Callable(ap)
354354 func addTicket (t,af,ag,al,am,aV) = {
355355 let aW = ao(ap)
356356 let aN = aW._1
357357 let r = aW._2
358358 let ai = aW._3
359359 let aj = Z(r)
360360 if ((aj != ""))
361361 then throw(aj)
362362 else if (aC(r, t))
363363 then throw("Event have been canceled")
364364 else if (!(ay(t, r)))
365365 then throw("You are not the owner of this event")
366366 else {
367367 let aX = ak(t, r, af, ag, al, am, aV)
368368 if ((aX != ""))
369369 then throw("Something went wrong!")
370370 else {
371371 let aP = h(E(r, t))
372372 [StringEntry(I(r, t, aN), af), IntegerEntry(M(r, t, aN), ai), StringEntry(K(r, t, aN), ag), IntegerEntry(L(r, t, aN), al), IntegerEntry(N(r, t, aN), am), BooleanEntry(P(r, t, aN), true), IntegerEntry(R(r, t, aN), aV), IntegerEntry(S(r, t, aN), 0), IntegerEntry(E(r, t), (aP + 1))]
373373 }
374374 }
375375 }
376376
377377
378378
379379 @Callable(ap)
380380 func editTicket (J,t,af,ag,al,am,an) = {
381381 let aY = ao(ap)
382382 let aN = aY._1
383383 let r = aY._2
384384 let ai = aY._3
385385 let aj = Z(r)
386386 if ((aj != ""))
387387 then throw(aj)
388388 else if (!(ay(t, r)))
389389 then throw("You are not the owner of this event")
390390 else if (!(aA(r, t, J)))
391391 then throw("Ticket not found")
392392 else {
393393 let aX = ak(t, r, af, ag, al, am, an)
394394 if ((aX != ""))
395395 then throw("Something went wrong!")
396396 else {
397397 let aZ = valueOrElse(getInteger(O(r, t, J)), 0)
398398 if ((aZ > am))
399399 then throw("Max tickets available cannot be lower than amount already sold")
400400 else [StringEntry(I(r, t, J), af), StringEntry(K(r, t, J), ag), IntegerEntry(L(r, t, J), al), IntegerEntry(N(r, t, J), am), IntegerEntry(R(r, t, aN), an)]
401401 }
402402 }
403403 }
404404
405405
406406
407407 @Callable(ap)
408408 func pauseTicketSale (t,J,ba) = {
409409 let bb = ao(ap)
410410 let aN = bb._1
411411 let r = bb._2
412412 let ai = bb._3
413413 let aj = Z(r)
414414 if ((aj != ""))
415415 then throw(aj)
416416 else if (!(ay(t, r)))
417417 then throw("You are not the owner of this event")
418418 else [BooleanEntry(P(r, t, aN), ba)]
419419 }
420420
421421
422422
423423 @Callable(ap)
424424 func deleteTicket (J,t) = {
425425 let bc = ao(ap)
426426 let aN = bc._1
427427 let r = bc._2
428428 let ai = bc._3
429429 let aj = Z(r)
430430 if ((aj != ""))
431431 then throw(aj)
432432 else if (!(ay(t, r)))
433433 then throw("You are not the owner of this event")
434434 else if (!(aA(r, t, J)))
435435 then throw("Ticket not found")
436436 else {
437437 let bd = h(O(r, t, J))
438438 if ((bd != 0))
439439 then throw("Cannot delete ticket that sold already")
440440 else {
441441 let aP = h(E(r, t))
442-[DeleteEntry(I(r, t, J)), DeleteEntry(M(r, t, J)), DeleteEntry(K(r, t, J)), DeleteEntry(L(r, t, J)), DeleteEntry(N(r, t, J)), DeleteEntry(P(r, t, J)), DeleteEntry(R(r, t, J)), IntegerEntry(E(r, t), (aP - 1))]
442+[DeleteEntry(I(r, t, J)), DeleteEntry(M(r, t, J)), DeleteEntry(K(r, t, J)), DeleteEntry(L(r, t, J)), DeleteEntry(N(r, t, J)), DeleteEntry(P(r, t, J)), DeleteEntry(R(r, t, J)), DeleteEntry(S(r, t, J)), IntegerEntry(E(r, t), (aP - 1))]
443443 }
444444 }
445445 }
446446
447447
448448
449449 @Callable(ap)
450450 func buyTicket (J,t,aD) = {
451451 let be = ao(ap)
452452 let aN = be._1
453453 let r = be._2
454454 let ai = be._3
455455 let bf = valueOrElse(h("total_tickets_issued"), 0)
456456 if (!(ay(t, aD)))
457457 then throw("Event ID and Issuer don't match")
458458 else if (!(aA(aD, t, J)))
459459 then throw("Ticket not found")
460460 else {
461461 let bg = b(w(aD, t))
462462 if ((bg == ""))
463463 then throw("Art doesn't exist")
464464 else if (aC(aD, t))
465465 then throw("Event have been canceled")
466466 else {
467467 let bh = i(P(aD, t, J))
468468 if (!(bh))
469469 then throw("Tickets not for sale")
470470 else {
471471 let bd = h(O(aD, t, J))
472472 let bi = h(L(aD, t, J))
473473 let au = toBase58String(f)
474474 let bj = at(ap, au, bi)
475475 let as = bj._1
476476 let ax = bj._2
477477 let bk = h(N(aD, t, J))
478478 let bl = fraction(as, p, 100)
479479 let bm = (as - bl)
480480 if ((bd == bk))
481481 then throw("Art sold out")
482482 else {
483483 let bn = (bd + 1)
484484 let bo = ((((((((((("Organizer: " + aD) + ",
485485 EventID: ") + t) + ",
486486 TicketID: ") + J) + ",
487487 EventName: ") + bg) + ",
488488 Issue: ") + toString(bn)) + "/") + toString(bk))
489489 let bp = Issue(("ST_" + toString((bf + 1))), bo, 1, 0, false)
490490 let bq = calculateAssetId(bp)
491491 let br = if ((bn == bk))
492492 then false
493493 else true
494494 let bs = ap.caller
495495 let bt = ((((((((("ticket_sold_" + toString(bn)) + "_of_") + toString(bk)) + "_") + t) + "_") + aD) + "_") + J)
496496 let bu = ((((((((toString(bs) + "_") + toString(ai)) + "_") + aN) + "_") + toString(as)) + "_") + toBase58String(bq))
497497 let bv = StringEntry(bt, bu)
498498 let aO = h(F(aD, t))
499499 let bw = h(S(aD, t, J))
500500 let bx = [IntegerEntry(O(aD, t, J), bn), StringEntry(("nft_" + toBase58String(bq)), bt), IntegerEntry("total_nft_issued", (bf + 1)), IntegerEntry(F(aD, t), (aO + 1)), IntegerEntry(S(aD, t, J), (bw + 1)), StringEntry((("ST_" + toString((bf + 1))) + "_assetId"), toBase58String(bq)), BooleanEntry(P(aD, t, J), br), IntegerEntry(Q(aD, t, J), 0), bp, ScriptTransfer(Address(fromBase58String(aD)), bm, ax), ScriptTransfer(bs, 1, bq), ScriptTransfer(Address(fromBase58String(e)), bl, ax)]
501501 bv :: bx
502502 }
503503 }
504504 }
505505 }
506506 }
507507
508508
509509
510510 @Callable(ap)
511511 func useTicket (t,aD) = {
512512 let by = ao(ap)
513513 let aN = by._1
514514 let r = by._2
515515 let ai = by._3
516516 let bz = aq(ap)
517517 let ar = bz._1
518518 let as = bz._2
519519 if (!(isDefined(ar.assetId)))
520520 then throw("Wrong asset attached")
521521 else {
522522 let J = toBase58String(value(ar.assetId))
523523 if (!(aA(aD, t, J)))
524524 then throw("Ticket not found")
525525 else {
526526 let bA = h(Q(aD, t, J))
527527 let bB = h(R(aD, t, J))
528528 if ((bB == bA))
529529 then throw((("Ticket used " + toString(bA)) + " times already"))
530530 else [IntegerEntry(Q(aD, t, J), (bA + 1)), ScriptTransfer(Address(fromBase58String(r)), 1, ar.assetId)]
531531 }
532532 }
533533 }
534534
535535
536+
537+@Callable(ap)
538+func deleteEntry (bC) = {
539+ let r = toString(ap.caller)
540+ if ((r == g))
541+ then [DeleteEntry(bC)]
542+ else throw("no")
543+ }
544+
545+

github/deemru/w8io/169f3d6 
72.63 ms