tx · 7BYVJCXYojv1CdGqitGL3T34cCogjEaBwRf1sZ8dXZJL

3Mswdgqx1w8LGXoJvQdWFz8X4AJAoztpdmy:  -0.01800000 Waves

2022.10.27 11:23 [2290583] smart account 3Mswdgqx1w8LGXoJvQdWFz8X4AJAoztpdmy > SELF 0.00000000 Waves

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

github/deemru/w8io/873ac7e 
122.02 ms