tx · HJTv82ngsDQSNaJdGAGZKc1XuHg7Aip4LEU8UgXmY7A9

3N1ZfechNGoBTZyzvCAxGXPKchL4C6438dr:  -0.03300000 Waves

2024.10.09 03:05 [3318549] smart account 3N1ZfechNGoBTZyzvCAxGXPKchL4C6438dr > SELF 0.00000000 Waves

{ "type": 13, "id": "HJTv82ngsDQSNaJdGAGZKc1XuHg7Aip4LEU8UgXmY7A9", "fee": 3300000, "feeAssetId": null, "timestamp": 1728432342687, "version": 2, "chainId": 84, "sender": "3N1ZfechNGoBTZyzvCAxGXPKchL4C6438dr", "senderPublicKey": "9JhgPDL4uV7b9tRjpNxGkGVDsbQ2qkEWfjt64wysYmKQ", "proofs": [ "5hbxL1TALLq42dcZ6xxRXodxRpFBP2SYCeWmgu6EEJtUURk11P4sbN24vpEZ4J48a3Esg6GQWSBykFVqMXYBPAs3" ], "script": "base64:BgJbCAISABIDCgEIEgMKAQgSBAoCCAESAwoBCBIECgIBCBIECgIBCBIDCgEIEgMKAQgSBAoCCAgSABIAEgASABIECgIICBIFCgMICAESAwoBARIKCggBCAEECAEBAU4BF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAIUc3RhdGljX29yYWNsZUFkZHJlc3MBGHN0YXRpY0tleV9icmVlZGVyQWRkcmVzcwACFXN0YXRpY19icmVlZGVyQWRkcmVzcwEUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAAhFzdGF0aWNfZWdnQXNzZXRJZAEac3RhdGljS2V5X3RydXN0ZWRDb250cmFjdHMAAhdzdGF0aWNfdHJ1c3RlZENvbnRyYWN0cwEYc3RhdGljS2V5X3JlYmlydGhBZGRyZXNzAAIVc3RhdGljX3JlYmlydGhBZGRyZXNzAR5zdGF0aWNLZXlfdHVydGxlUmViaXJ0aEFkZHJlc3MAAhtzdGF0aWNfdHVydGxlUmViaXJ0aEFkZHJlc3MBFnN0YXRpY0tleV9waXBlbGluZVVzZXIAAhNzdGF0aWNfcGlwZWxpbmVVc2VyARJzdGF0aWNLZXlfZXh0cmFGZWUAAg9zdGF0aWNfZXh0cmFGZWUBF3N0YXRpY0tleV9mZWVBZ2dyZWdhdG9yAAIUc3RhdGljX2ZlZUFnZ3JlZ2F0b3IBG3N0YXRpY0tleV9odW50RGlzdHJvQWRkcmVzcwACGHN0YXRpY19odW50RGlzdHJvQWRkcmVzcwESc3RhdGljS2V5X3dhcnNQS2V5AAIPc3RhdGljX3dhcnNQS2V5ARdzdGF0aWNLZXlfZHVwbGljYXRvckZlZQACFHN0YXRpY19kdXBsaWNhdG9yRmVlAR5zdGF0aWNLZXlfY2FuaW5lUmViaXJ0aEFkZHJlc3MAAhtzdGF0aWNfY2FuaW5lUmViaXJ0aEFkZHJlc3MBHnN0YXRpY0tleV9mZWxpbmVSZWJpcnRoQWRkcmVzcwACG3N0YXRpY19mZWxpbmVSZWJpcnRoQWRkcmVzcwEZc3RhdGljS2V5X2JhYnlEdWNrQWRkcmVzcwACFnN0YXRpY19iYWJ5RHVja0FkZHJlc3MBFXN0YXRpY0tleV9idXJuQWRkcmVzcwACEnN0YXRpY19idXJuQWRkcmVzcwERa2V5X2FydGVmYWN0T3duZXICDGFydGVmYWN0TmFtZQVvd25lcgkArAICCQCsAgIJAKwCAgUMYXJ0ZWZhY3ROYW1lAgFfBQVvd25lcgIGX293bmVyARFrZXlfdW5zdGFrZUhlaWdodAIMYXJ0ZWZhY3ROYW1lCmFydGVmYWN0SWQJAKwCAgkArAICCQCsAgIFDGFydGVmYWN0TmFtZQIBXwUKYXJ0ZWZhY3RJZAIPX3Vuc3Rha2VfaGVpZ2h0ARVrZXlfZXh0ZXJuYWxCb29zdER1Y2sBBmR1Y2tJZAkArAICBQZkdWNrSWQCFF9kdWNrX2V4dGVybmFsX2Jvb3N0ARhrZXlfZXh0ZXJuYWxCb29zdEFkZHJlc3MBB2FkZHJlc3MJAKwCAgUHYWRkcmVzcwIUX3VzZXJfZXh0ZXJuYWxfYm9vc3QBEWtleV9wcmljZUNvc21ldGljAQRpdGVtCQCsAgICEGRpcmVjdF9jb3NtZXRpY18FBGl0ZW0BFGtleV9tYXhTYWxlc0Nvc21ldGljAQRpdGVtCQCsAgIJAKwCAgIQZGlyZWN0X2Nvc21ldGljXwUEaXRlbQIKX21heF9zYWxlcwEQa2V5X3NhbGVDb3NtZXRpYwEEaXRlbQkArAICCQCsAgICEGRpcmVjdF9jb3NtZXRpY18FBGl0ZW0CBV9zYWxlARZrZXlfcHJpY2VBc3NldENvc21ldGljAQRpdGVtCQCsAgIJAKwCAgIQZGlyZWN0X2Nvc21ldGljXwUEaXRlbQILX3ByaWNlQXNzZXQBGmtleV9ncm93UGVyY2VudGFnZUNvc21ldGljAQRpdGVtCQCsAgIJAKwCAgIQZGlyZWN0X2Nvc21ldGljXwUEaXRlbQITX2dyb3dpbmdfcGVyY2VudGFnZQEQa2V5X3NvbGRDb3NtZXRpYwEEaXRlbQkArAICCQCsAgICEGRpcmVjdF9jb3NtZXRpY18FBGl0ZW0CBV9zb2xkARVrZXlfbGFzdFByaWNlQ29zbWV0aWMBBGl0ZW0JAKwCAgkArAICAhBkaXJlY3RfY29zbWV0aWNfBQRpdGVtAgtfbGFzdF9wcmljZQETa2V5X3N0YXJ0VHNDb3NtZXRpYwEEaXRlbQkArAICCQCsAgICEGRpcmVjdF9jb3NtZXRpY18FBGl0ZW0CCF9zdGFydFRzARFrZXlfZW5kVHNDb3NtZXRpYwEEaXRlbQkArAICCQCsAgICEGRpcmVjdF9jb3NtZXRpY18FBGl0ZW0CBl9lbmRUcwEXa2V5X3Byb2Nlc3NGaW5pc2hIZWlnaHQCB2FkZHJlc3MEdHhJZAkArAICCQCsAgIJAKwCAgUHYWRkcmVzcwIBXwkA2AQBBQR0eElkAgNfZmgBGHN0YXRpY0tleV9jb3Vwb25zQWRkcmVzcwACFXN0YXRpY19jb3Vwb25zQWRkcmVzcwALYWxsQXJ0ZWZhY3QJAMwIAgIIQVJULUxBS0UJAMwIAgIJQVJULUhPVVNFCQDMCAICDEFSVC1CSUdIT1VTRQkAzAgCAgtBUlQtRklYR0VORQkAzAgCAgxBUlQtRlJFRUdFTkUJAMwIAgIKQVJULU1JUlJPUgkAzAgCAghBUlQtUE9NUAkAzAgCAghBUlQtQ0FQRQkAzAgCAgdBUlQtSEFUCQDMCAICDkFSVC1DVVNUT01EVUNLCQDMCAICCkFSVC1YTUlTVEwJAMwIAgIIQVJULVhIQVQJAMwIAgIKQVJULVhTQ0FSRgkAzAgCAgxBUlQtWFNXRUFURVIJAMwIAgIJQVJULVhTT0NLCQDMCAICCUFSVC1YVFJFRQUDbmlsAA1zbm93X2Jvb3N0ZXJzCQDMCAICCkFSVC1USU5TRUwJAMwIAgIKQVJULUZFRUQxMAkAzAgCAg5BUlQtR05HUl9CUkVBRAkAzAgCAgxBUlQtU05PV0JBTEwJAMwIAgIOQVJULUdJRlRfRE9VQkwFA25pbAAOaHdlZW5fYm9vc3RlcnMJAMwIAgIMQVJULUhXUkVTQ1VFCQDMCAICC0FSVC1IV0VSQVNFCQDMCAICCkFSVC1GRUVEMTAJAMwIAgIKQVJULUZFRUQxNQkAzAgCAgpBUlQtRkVFRDIwCQDMCAICCkFSVC1GRUVEMjUJAMwIAgIOQVJULUdJRlRfRE9VQkwFA25pbAAOc2hha2VfYXJ0ZWZhY3QJAMwIAgINQVJULVNOV19HTEJFUwkAzAgCAgxBUlQtU0tFTEVUT04FA25pbAALR2VuZXJhdGlvbnMJAMwIAgIBRwkAzAgCAgFICQDMCAICAUkJAMwIAgIBSwkAzAgCAgFMCQDMCAICAU0JAMwIAgIBTgkAzAgCAgFPBQNuaWwBDXRyeUdldEJvb2xlYW4BA2tleQQHJG1hdGNoMAkAmwgCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYgUHJG1hdGNoMAUBYgcBDHRyeUdldFN0cmluZwEDa2V5BAckbWF0Y2gwCQCdCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECAAENdHJ5R2V0SW50ZWdlcgEDa2V5BAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAEVdHJ5R2V0SW50ZWdlckV4dGVybmFsAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAmggCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiAAABD2dldFJhbmRvbU51bWJlcgQIdmFyaWFudHMEdHhJZAxmaW5pc2hIZWlnaHQGb2Zmc2V0BA9yYW5kb21TZWVkQmxvY2sJAQV2YWx1ZQEJAO0HAQkAZQIFDGZpbmlzaEhlaWdodAABBApyYW5kb21IYXNoCQD3AwEJAMsBAgkAywECAQQcQX3mBQR0eElkCQEFdmFsdWUBCAUPcmFuZG9tU2VlZEJsb2NrA3ZyZgkAagIJALIJAgUKcmFuZG9tSGFzaAUGb2Zmc2V0BQh2YXJpYW50cwEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCB2FkZHJlc3MDa2V5BAckbWF0Y2gwCQCdCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECAAEJZ2V0T3JhY2xlAAkBB0FkZHJlc3MBCQDZBAEJAQx0cnlHZXRTdHJpbmcBCQEXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAARFnZXRCcmVlZGVyQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBGHN0YXRpY0tleV9icmVlZGVyQWRkcmVzcwABDWdldEVnZ0Fzc2V0SWQACQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAARNnZXRUcnVzdGVkQ29udHJhY3RzAAkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARpzdGF0aWNLZXlfdHJ1c3RlZENvbnRyYWN0cwABEWdldFJlYmlydGhBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEYc3RhdGljS2V5X3JlYmlydGhBZGRyZXNzAAEXZ2V0VHVydGxlUmViaXJ0aEFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJAR5zdGF0aWNLZXlfdHVydGxlUmViaXJ0aEFkZHJlc3MAARdnZXRDYW5pbmVSZWJpcnRoQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBHnN0YXRpY0tleV9jYW5pbmVSZWJpcnRoQWRkcmVzcwABGGdldEZlbGluZWVSZWJpcnRoQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBHnN0YXRpY0tleV9mZWxpbmVSZWJpcnRoQWRkcmVzcwABEGdldEZlZUFnZ3JlZ2F0b3IACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgABFGdldEh1bnREaXN0cm9BZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEbc3RhdGljS2V5X2h1bnREaXN0cm9BZGRyZXNzAAELZ2V0V2Fyc1BLZXkACQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQESc3RhdGljS2V5X3dhcnNQS2V5AAEQZ2V0RHVwbGljYXRvckZlZQAJARV0cnlHZXRJbnRlZ2VyRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBF3N0YXRpY0tleV9kdXBsaWNhdG9yRmVlAAERZ2V0Q291cG9uc0FkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARhzdGF0aWNLZXlfY291cG9uc0FkZHJlc3MAARJnZXRCYWJ5ZHVja0FkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARlzdGF0aWNLZXlfYmFieUR1Y2tBZGRyZXNzAAEOZ2V0QnVybkFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARVzdGF0aWNLZXlfYnVybkFkZHJlc3MAARd0cnlHZXRDb3NtZXRpY0l0ZW1QcmljZQEEaXRlbQQDa2V5CQERa2V5X3ByaWNlQ29zbWV0aWMBBQRpdGVtBAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEJAAIBCQCsAgIJAKwCAgIISVRHQ0lQOiAFBGl0ZW0CHyBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBzdG9yZSEBCGFzU3RyaW5nAQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZzdHJpbmcFByRtYXRjaDAFBnN0cmluZwkAAgECHHdyb25nIHR5cGUsIGV4cGVjdGVkOiBTdHJpbmcBBWFzSW50AQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIDSW50BANpbnQFByRtYXRjaDAFA2ludAkAAgECGXdyb25nIHR5cGUsIGV4cGVjdGVkOiBJbnQBDm1hbmlwdWxhdGVOYW1lAwlhc3NldE5hbWUIcG9zaXRpb24EY2hhcgkArAICCQCsAgIJAK8CAgUJYXNzZXROYW1lCQBlAgUIcG9zaXRpb24AAQUEY2hhcgkAsgICBQlhc3NldE5hbWUJAGUCABAFCHBvc2l0aW9uARBpdGVtSXNJbkNvb2xEb3duAgxhcnRlZmFjdE5hbWUKYXJ0ZWZhY3RJZAQRdW5zdGFrZUhlaWdodExhc3QJAQ10cnlHZXRJbnRlZ2VyAQkBEWtleV91bnN0YWtlSGVpZ2h0AgUMYXJ0ZWZhY3ROYW1lBQphcnRlZmFjdElkBA5jb29sZG93blBlcmlvZADwAQMJAGYCBQZoZWlnaHQJAGQCBRF1bnN0YWtlSGVpZ2h0TGFzdAUOY29vbGRvd25QZXJpb2QHBgEJaXNUZXN0RW52AAkBDXRyeUdldEJvb2xlYW4BAgdURVNURU5WARZjaGVja0FkZGl0aW9uYWxQYXltZW50AQdwYXltZW50AwkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQJAAIBAhlXQ0FQOiBQbGVhc2UgYXR0YWNoIHdhdmVzBAlmZWVBbW91bnQJARFAZXh0ck5hdGl2ZSgxMDUwKQIJAQlnZXRPcmFjbGUACQESc3RhdGljS2V5X2V4dHJhRmVlAAMJAQIhPQIIBQdwYXltZW50BmFtb3VudAUJZmVlQW1vdW50CQACAQkArAICCQCsAgICHFdDQVA6IFBsZWFzZSBhdHRhY2ggZXhhY3RseSAJAKQDAQUJZmVlQW1vdW50AhMgYW1vdW50IG9mIHdhdmVsZXRzCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARBnZXRGZWVBZ2dyZWdhdG9yAAUJZmVlQW1vdW50BQR1bml0BQNuaWwBCWlzc3VlSXRlbQMEdHlwZQVub25jZQdhZGRyZXNzBAhhcnRlZmFjdAkAwwgHBQR0eXBlAiFORlQgYXJ0ZWZhY3Qgb2YgV2F2ZXMgRHVja3MgZ2FtZS4AAQAABwUEdW5pdAUFbm9uY2UECmFydGVmYWN0SWQJALgIAQUIYXJ0ZWZhY3QJAJQKAgkAzAgCBQhhcnRlZmFjdAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIJYXJ0ZWZhY3RfCQDYBAEFCmFydGVmYWN0SWQCBV90eXBlBQR0eXBlCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFB2FkZHJlc3MAAQUKYXJ0ZWZhY3RJZAUDbmlsCQDYBAEFCmFydGVmYWN0SWQBCml0ZW1NZXJnZXINCGJhc2VJdGVtDmFtb3VudEJhc2VJdGVtB2VuZEl0ZW0IcGF5bWVudHMJZmVlQW1vdW50CmZlZUFzc2V0SWQJcmVjaXBpZW50DWluc3RhbnRGaW5pc2gEdHhJZA1zZWNvbmRhcnlJdGVtE2Ftb3VudFNlY29uZGFyeUl0ZW0QZHVja2xpbmdzUGVyY2VudAhnZW5WYWx1ZQMJAQIhPQIJAJADAQUIcGF5bWVudHMJAGQCBQ5hbW91bnRCYXNlSXRlbQABCQACAQkArAICCQCsAgICE0lJRDogUGxlYXNlIGF0dGFjaCAJAKQDAQkAZAIFDmFtb3VudEJhc2VJdGVtAAICCiBwYXltZW50cyEKAQppc0Jhc2VJdGVtAgthY2N1bXVsYXRlZANwYXkDAwkAAAIIBQNwYXkHYXNzZXRJZAUEdW5pdAYJAAACCAUDcGF5B2Fzc2V0SWQJAQ1nZXRFZ2dBc3NldElkAAkAlwoFCAULYWNjdW11bGF0ZWQCXzEIBQthY2N1bXVsYXRlZAJfMggFC2FjY3VtdWxhdGVkAl8zCAULYWNjdW11bGF0ZWQCXzQIBQthY2N1bXVsYXRlZAJfNQQHYXNzZXRJZAkBBXZhbHVlAQgFA3BheQdhc3NldElkAwkAAAIICQEFdmFsdWUBCQDsBwEJAQV2YWx1ZQEFB2Fzc2V0SWQGaXNzdWVyCQERZ2V0QnJlZWRlckFkZHJlc3MABAhzcGxpdHRlZAkAtQkCCAkBBXZhbHVlAQkA7AcBCQEFdmFsdWUBBQdhc3NldElkBG5hbWUCAAQDZ2VuCQCRAwIFCHNwbGl0dGVkAA4EBWdlbk5yCQEFdmFsdWUBCQDPCAIFC0dlbmVyYXRpb25zBQNnZW4JAJcKBQgFC2FjY3VtdWxhdGVkAl8xCAULYWNjdW11bGF0ZWQCXzIIBQthY2N1bXVsYXRlZAJfMwgFC2FjY3VtdWxhdGVkAl80CQBkAggFC2FjY3VtdWxhdGVkAl81BQVnZW5OcgMJAAACCAkBBXZhbHVlAQkA7AcBCQEFdmFsdWUBBQdhc3NldElkBmlzc3VlcgkBEmdldEJhYnlkdWNrQWRkcmVzcwAED3N0YXJ0UGVyY2VudGFnZQkBFXRyeUdldEludGVnZXJFeHRlcm5hbAIJARJnZXRCYWJ5ZHVja0FkZHJlc3MACQCsAgIJAKwCAgIJZHVja2xpbmdfCQDYBAEFB2Fzc2V0SWQCEF9zdGFydFBlcmNlbnRhZ2UEBWxpbWl0AwkAZgIACgUPc3RhcnRQZXJjZW50YWdlAAoFD3N0YXJ0UGVyY2VudGFnZQQIYnVybkNhbGwJAPwHBAkBDmdldEJ1cm5BZGRyZXNzAAIMYnVybkR1Y2tsaW5nCQDMCAIJAKUIAQUJcmVjaXBpZW50BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB2Fzc2V0SWQAAQUDbmlsAwkAAAIFCGJ1cm5DYWxsBQhidXJuQ2FsbAkAlwoFCAULYWNjdW11bGF0ZWQCXzEIBQthY2N1bXVsYXRlZAJfMggFC2FjY3VtdWxhdGVkAl8zCQBkAggFC2FjY3VtdWxhdGVkAl80BQVsaW1pdAgFC2FjY3VtdWxhdGVkAl81CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAhhcnRlZmFjdAkBCGFzU3RyaW5nAQkA/AcEBQR0aGlzAhRjaGVja0FydGVmYWN0RGV0YWlscwkAzAgCCQDYBAEFB2Fzc2V0SWQFA25pbAUDbmlsAwkAAAIFCGFydGVmYWN0BQhhcnRlZmFjdAMJAAACBQhhcnRlZmFjdAUIYmFzZUl0ZW0JAJcKBQkAzggCCAULYWNjdW11bGF0ZWQCXzEJAMwIAgkBBEJ1cm4CBQdhc3NldElkAAEFA25pbAkAZAIIBQthY2N1bXVsYXRlZAJfMgABCAULYWNjdW11bGF0ZWQCXzMIBQthY2N1bXVsYXRlZAJfNAgFC2FjY3VtdWxhdGVkAl81AwkAAAIFCGFydGVmYWN0BQ1zZWNvbmRhcnlJdGVtCQCXCgUJAM4IAggFC2FjY3VtdWxhdGVkAl8xCQDMCAIJAQRCdXJuAgUHYXNzZXRJZAABBQNuaWwIBQthY2N1bXVsYXRlZAJfMgkAZAIIBQthY2N1bXVsYXRlZAJfMwABCAULYWNjdW11bGF0ZWQCXzQIBQthY2N1bXVsYXRlZAJfNQkAlwoFCAULYWNjdW11bGF0ZWQCXzEIBQthY2N1bXVsYXRlZAJfMggFC2FjY3VtdWxhdGVkAl8zCAULYWNjdW11bGF0ZWQCXzQIBQthY2N1bXVsYXRlZAJfNQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQNdG90YWxCYXNlSXRlbQoAAiRsBQhwYXltZW50cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJcKBQUDbmlsAAAAAAAAAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCmlzQmFzZUl0ZW0CBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoDCQECIT0CCAUNdG90YWxCYXNlSXRlbQJfMgUOYW1vdW50QmFzZUl0ZW0JAAIBCQCsAgIJAKwCAgkArAICAhNJSUQ6IFBsZWFzZSBhdHRhY2ggCQCkAwEFDmFtb3VudEJhc2VJdGVtAhMgYXJ0ZWZhY3RzIG9mIHR5cGUgBQhiYXNlSXRlbQMDCQECIT0CBQ1zZWNvbmRhcnlJdGVtAgAJAQIhPQIIBQ10b3RhbEJhc2VJdGVtAl8zBRNhbW91bnRTZWNvbmRhcnlJdGVtBwkAAgEJAKwCAgkArAICCQCsAgICE0lJRDogUGxlYXNlIGF0dGFjaCAJAKQDAQUTYW1vdW50U2Vjb25kYXJ5SXRlbQITIGFydGVmYWN0cyBvZiB0eXBlIAUNc2Vjb25kYXJ5SXRlbQMDCQECIT0CBRBkdWNrbGluZ3NQZXJjZW50AAAJAQIhPQIIBQ10b3RhbEJhc2VJdGVtAl80BRBkdWNrbGluZ3NQZXJjZW50BwkAAgEJAKwCAgkArAICCQCsAgICE0lJRDogUGxlYXNlIGF0dGFjaCAJAKQDAQUQZHVja2xpbmdzUGVyY2VudAITIGdyb3d0aCwgeW91IGFkZGVkIAkApAMBCAUNdG90YWxCYXNlSXRlbQJfNAMDCQECIT0CBQhnZW5WYWx1ZQAACQECIT0CCAUNdG90YWxCYXNlSXRlbQJfNQUIZ2VuVmFsdWUHCQACAQkArAICCQCsAgIJAKwCAgITSUlEOiBQbGVhc2UgYXR0YWNoIAkApAMBBQhnZW5WYWx1ZQIWIGdlbiB2YWx1ZSwgeW91IGFkZGVkIAkApAMBCAUNdG90YWxCYXNlSXRlbQJfNQQIdmFsaWRhdGUDCQECIT0CBQlmZWVBbW91bnQAAAQKZmVlUGF5bWVudAkAkQMCBQhwYXltZW50cwUOYW1vdW50QmFzZUl0ZW0DCQECIT0CCAUKZmVlUGF5bWVudAdhc3NldElkBQpmZWVBc3NldElkCQACAQIlSUlEOiBZb3UgbWlzcyBhIHBheW1lbnQgd2l0aCB0aGUgZmVlIQMJAQIhPQIIBQpmZWVQYXltZW50BmFtb3VudAUJZmVlQW1vdW50CQACAQIvSUlEOiBZb3UgZGlkIG5vdCBhdHRhY2ggdGhlIGNvcnJlY3QgZmVlIGFtb3VudCEJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEGdldEZlZUFnZ3JlZ2F0b3IABQlmZWVBbW91bnQIBQpmZWVQYXltZW50B2Fzc2V0SWQFA25pbAUDbmlsAwkAAAIFCHZhbGlkYXRlBQh2YWxpZGF0ZQQIYXJ0ZWZhY3QJAMMIBwUHZW5kSXRlbQkArAICAiJORlQgYXJ0ZWZhY3Qgb2YgV2F2ZXMgRHVja3MgZ2FtZTogBQdlbmRJdGVtAAEAAAcFBHVuaXQAAAQKYXJ0ZWZhY3RJZAkAuAgBBQhhcnRlZmFjdAQHaW5zdGFudAMFDWluc3RhbnRGaW5pc2gJAQlpc3N1ZUl0ZW0DBQdlbmRJdGVtAAAFCXJlY2lwaWVudAkAlAoCBQNuaWwCAAkAlAoCCQDOCAIJAM4IAgkAzggCCQDMCAIJAQxCb29sZWFuRW50cnkCCQCsAgIJAKwCAgIGbWVyZ2VfBQR0eElkAghfaW5zdGFudAUNaW5zdGFudEZpbmlzaAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIGbWVyZ2VfBQR0eElkAgdfcmV3YXJkBQdlbmRJdGVtCQDMCAIJAQxCb29sZWFuRW50cnkCCQCsAgIJAKwCAgIGbWVyZ2VfBQR0eElkAglfZmluaXNoZWQFDWluc3RhbnRGaW5pc2gFA25pbAgFB2luc3RhbnQCXzEIBQ10b3RhbEJhc2VJdGVtAl8xBQh2YWxpZGF0ZQgFB2luc3RhbnQCXzIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BC2dldEJhc2VJdGVtAQhiYXNlSXRlbQkBEUBleHRyTmF0aXZlKDEwNTgpAQkArAICCQCsAgICBm1lcmdlXwUIYmFzZUl0ZW0CCV9iYXNlSXRlbQERZ2V0QW1vdW50QmFzZUl0ZW0BCGJhc2VJdGVtCQERQGV4dHJOYXRpdmUoMTA1NSkBCQCsAgIJAKwCAgIGbWVyZ2VfBQhiYXNlSXRlbQIHX2Ftb3VudAEQZ2V0U2Vjb25kYXJ5SXRlbQEIYmFzZUl0ZW0JAQx0cnlHZXRTdHJpbmcBCQCsAgIJAKwCAgIGbWVyZ2VfBQhiYXNlSXRlbQIOX3NlY29uZGFyeUl0ZW0BFmdldEFtb3VudFNlY29uZGFyeUl0ZW0BCGJhc2VJdGVtCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgZtZXJnZV8FCGJhc2VJdGVtAhRfYW1vdW50U2Vjb25kYXJ5SXRlbQELZ2V0R2VuVmFsdWUBCGJhc2VJdGVtCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgZtZXJnZV8FCGJhc2VJdGVtAglfZ2VuVmFsdWUBE2dldER1Y2tsaW5nc1BlcmNlbnQBCGJhc2VJdGVtCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgZtZXJnZV8FCGJhc2VJdGVtAhFfZHVja2xpbmdzUGVyY2VudAEKZ2V0RW5kSXRlbQEIYmFzZUl0ZW0JARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkArAICAgZtZXJnZV8FCGJhc2VJdGVtAghfZW5kSXRlbQEIZ2V0UHJpY2UBCGJhc2VJdGVtCQERQGV4dHJOYXRpdmUoMTA1NSkBCQCsAgIJAKwCAgIGbWVyZ2VfBQhiYXNlSXRlbQIGX3ByaWNlAQpnZXRJbnN0YW50AQhiYXNlSXRlbQkBEUBleHRyTmF0aXZlKDEwNTYpAQkArAICCQCsAgICBm1lcmdlXwUIYmFzZUl0ZW0CCF9pbnN0YW50AQhnZXRBc3NldAEIYmFzZUl0ZW0EBWFzc2V0CQERQGV4dHJOYXRpdmUoMTA1OCkBCQCsAgIJAKwCAgIGbWVyZ2VfBQhiYXNlSXRlbQIGX2Fzc2V0AwkAAAIFBWFzc2V0AgVXQVZFUwUEdW5pdAkA2QQBBQVhc3NldAEOdXNlckV4cGVyaWVuY2UBBHVzZXIJAKwCAgUEdXNlcgILX2V4cGVyaWVuY2UBGWZpbmlzaFNoYWtlSXRCYWJ5SW50ZXJuYWwDBmluaXRUeAdhZGRyZXNzB3BheW1lbnQEBHR5cGUJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCBV90eXBlBAdleHBTdGVwAwkAAAIFBHR5cGUCDUFSVC1TTldfR0xCRVMAZAMJAAACBQR0eXBlAgxBUlQtU0tFTEVUT04AyAEJAAIBAhFGU0k6IEludmFsaWQgdHlwZQQFc3RlcHMDCQAAAgUEdHlwZQINQVJULVNOV19HTEJFUwkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgUDbmlsAwkAAAIFBHR5cGUCDEFSVC1TS0VMRVRPTgkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgkAzAgCAAcFA25pbAkAAgECEUZTSTogSW52YWxpZCB0eXBlBAdtYXhTdGVwCQCQAwEFBXN0ZXBzBAdyZXdhcmRzAwkAAAIFBHR5cGUCDUFSVC1TTldfR0xCRVMFDXNub3dfYm9vc3RlcnMDCQAAAgUEdHlwZQIMQVJULVNLRUxFVE9OBQ5od2Vlbl9ib29zdGVycwkAAgECEUZTSTogSW52YWxpZCB0eXBlBAdleHBVc2VyCQEVdHJ5R2V0SW50ZWdlckV4dGVybmFsAgkBEWdldENvdXBvbnNBZGRyZXNzAAkBDnVzZXJFeHBlcmllbmNlAQUHYWRkcmVzcwQKbXVsdGlwbGllcgkAlwMBCQDMCAIJAGQCCQBpAgUHZXhwVXNlcgUHZXhwU3RlcAABCQDMCAIFB21heFN0ZXAFA25pbAQGZmluaXNoCQERQGV4dHJOYXRpdmUoMTA1NSkBCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgxfZmluaXNoQmxvY2sDCQBmAgUGZmluaXNoBQZoZWlnaHQJAAIBAilQbGVhc2Ugd2FpdCB0aWxsIHRoZSBzaGFraW5nIGlzIGZpbmlzaGVkIQMJAQIhPQIJAQx0cnlHZXRTdHJpbmcBCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4Agdfc3RhdHVzAgRvcGVuCQACAQImRlNJOiBPbmx5IG9wZW4gc3RhdHVzIGNhbiBiZSBmaW5pc2hlZCEKAQpoYW5kbGVNaW50AgNhY2MFaW5kZXgDCQBnAgUKbXVsdGlwbGllcgUFaW5kZXgEDnJhbmRvbVBvc2l0aW9uCQEPZ2V0UmFuZG9tTnVtYmVyBAkAkAMBBQdyZXdhcmRzCQDZBAEFBmluaXRUeAUGZmluaXNoBQVpbmRleAQDd2luCQCRAwIFB3Jld2FyZHMFDnJhbmRvbVBvc2l0aW9uCQDOCAIJAM4IAgUDYWNjCAkBCWlzc3VlSXRlbQMFA3dpbgkAZQIFBWluZGV4AAEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB2FkZHJlc3MCXzEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4AgRfd2luCQCkAwEJAGUCBQVpbmRleAABBQN3aW4FA25pbAUDYWNjCQDOCAIKAAIkbAUFc3RlcHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCmhhbmRsZU1pbnQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDcJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgICCGFkZHJlc3NfBQdhZGRyZXNzAghfaW5pdFR4XwUGaW5pdFR4Agdfc3RhdHVzAgZmaW5pc2gFA25pbBIBaQEQc3RhcnRTaGFrZUl0QmFieQAEC2l0ZW1QYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEDHZhbGlkUGF5bWVudAkBFmNoZWNrQWRkaXRpb25hbFBheW1lbnQBCQCRAwIIBQFpCHBheW1lbnRzAAEEC2l0ZW1Bc3NldElkCQDYBAEJAQV2YWx1ZQEIBQtpdGVtUGF5bWVudAdhc3NldElkAwkBAiE9AggFC2l0ZW1QYXltZW50BmFtb3VudAABCQACAQIdSUlEOiBJdGVtIE5GVCBpcyBub3QgYXR0YWNoZWQEDWdsb2JlQXJ0ZWZhY3QJAQhhc1N0cmluZwEJAPwHBAUEdGhpcwIUY2hlY2tBcnRlZmFjdERldGFpbHMJAMwIAgULaXRlbUFzc2V0SWQFA25pbAUDbmlsAwkAAAIFDWdsb2JlQXJ0ZWZhY3QFDWdsb2JlQXJ0ZWZhY3QDCQAAAgkAzwgCBQ5zaGFrZV9hcnRlZmFjdAUNZ2xvYmVBcnRlZmFjdAUEdW5pdAkAAgECKElJRDogWW91IG5lZWQgdG8gYXR0YWNoIGEgdmFsaWQgYXJ0ZWZhY3QEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyBAZpbml0VHgJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkAzAgCCQEEQnVybgIJAQV2YWx1ZQEIBQtpdGVtUGF5bWVudAdhc3NldElkAAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCDF9maW5pc2hCbG9jawkAZAIFBmhlaWdodAACCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCB19zdGF0dXMCBG9wZW4JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgkArAICAghhZGRyZXNzXwUHYWRkcmVzcwIIX2luaXRUeF8FBmluaXRUeAIIX2Fzc2V0SWQFC2l0ZW1Bc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgIIYWRkcmVzc18FB2FkZHJlc3MCCF9pbml0VHhfBQZpbml0VHgCBV90eXBlBQ1nbG9iZUFydGVmYWN0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERZmluaXNoU2hha2VJdEJhYnkBBmluaXRUeAkBGWZpbmlzaFNoYWtlSXRCYWJ5SW50ZXJuYWwDBQZpbml0VHgJAKUIAQgFAWkGY2FsbGVyCQCRAwIIBQFpCHBheW1lbnRzAAABaQEPaW5zdGFuTWVyZ2VJdGVtAQtyZWNlaXB0TmFtZQMJAAACCQEMdHJ5R2V0U3RyaW5nAQkArAICCQCsAgICBm1lcmdlXwULcmVjZWlwdE5hbWUCCF9lbmRJdGVtAgAJAAIBAiZJSUQ6IE9ubHkgY2VydGFpbiBpdGVtcyBjYW4gYmUgbWVyZ2VkIQQGcGFyYW1zCQCcCgoJARFnZXRBbW91bnRCYXNlSXRlbQEFC3JlY2VpcHROYW1lCQEKZ2V0RW5kSXRlbQEFC3JlY2VpcHROYW1lCQEIZ2V0UHJpY2UBBQtyZWNlaXB0TmFtZQkBCGdldEFzc2V0AQULcmVjZWlwdE5hbWUJAQpnZXRJbnN0YW50AQULcmVjZWlwdE5hbWUJARBnZXRTZWNvbmRhcnlJdGVtAQULcmVjZWlwdE5hbWUJARZnZXRBbW91bnRTZWNvbmRhcnlJdGVtAQULcmVjZWlwdE5hbWUJARNnZXREdWNrbGluZ3NQZXJjZW50AQULcmVjZWlwdE5hbWUJAQtnZXRCYXNlSXRlbQEFC3JlY2VpcHROYW1lCQELZ2V0R2VuVmFsdWUBBQtyZWNlaXB0TmFtZQQIZ3JhbnRFeHAJAPwHBAkBEWdldENvdXBvbnNBZGRyZXNzAAILaW5jcmVhc2VFeHAJAMwIAgkApQgBCAUBaQZjYWxsZXIFA25pbAUDbmlsAwkAAAIFCGdyYW50RXhwBQhncmFudEV4cAkBCml0ZW1NZXJnZXINCAUGcGFyYW1zAl85CAUGcGFyYW1zAl8xCAUGcGFyYW1zAl8yCAUBaQhwYXltZW50cwgFBnBhcmFtcwJfMwgFBnBhcmFtcwJfNAgFAWkGY2FsbGVyCAUGcGFyYW1zAl81CQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQIBQZwYXJhbXMCXzYIBQZwYXJhbXMCXzcIBQZwYXJhbXMCXzgIBQZwYXJhbXMDXzEwCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBFWRpcmVjdEJ1eUl0ZW1NdWx0aXBsZQIIaXRlbU5hbWUKaXRlbUFtb3VudAQFYXJyYXkJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJCQDMCAIACgkAzAgCAAsJAMwIAgAMCQDMCAIADQkAzAgCAA4JAMwIAgAPCQDMCAIAEAkAzAgCABEJAMwIAgASCQDMCAIAEwkAzAgCABQJAMwIAgAVCQDMCAIAFgkAzAgCABcJAMwIAgAYCQDMCAIAGQkAzAgCABoJAMwIAgAbCQDMCAIAHAkAzAgCAB0FA25pbAQJYmFzZVByaWNlCQEXdHJ5R2V0Q29zbWV0aWNJdGVtUHJpY2UBBQhpdGVtTmFtZQQEZ3JvdwkBDXRyeUdldEludGVnZXIBCQEaa2V5X2dyb3dQZXJjZW50YWdlQ29zbWV0aWMBBQhpdGVtTmFtZQQHc3RhcnRUcwkBDXRyeUdldEludGVnZXIBCQETa2V5X3N0YXJ0VHNDb3NtZXRpYwEFCGl0ZW1OYW1lBAVlbmRUcwkBDXRyeUdldEludGVnZXIBCQERa2V5X2VuZFRzQ29zbWV0aWMBBQhpdGVtTmFtZQMDCQECIT0CBQdzdGFydFRzAAAJAGYCBQdzdGFydFRzCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAcJAAIBAiFJREJJOiBUaGUgc2FsZSBkaWQgbm90IHN0YXJ0IHlldCEDAwkBAiE9AgUFZW5kVHMAAAkAZgIIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQVlbmRUcwcJAAIBAiRJREJJOiBUaGUgc2FsZSBoYXMgYWxyZWFkeSBmaW5pc2hlZCEDCQEBIQEJAQ10cnlHZXRCb29sZWFuAQkBEGtleV9zYWxlQ29zbWV0aWMBBQhpdGVtTmFtZQkAAgEJAKwCAgIfSURCSTogSXRlbSBub3QgZm9yIHNhbGUgYW55bW9yZQkBEGtleV9zYWxlQ29zbWV0aWMBBQhpdGVtTmFtZQQNbWF4U2FsZXNWYWx1ZQkBDXRyeUdldEludGVnZXIBCQEUa2V5X21heFNhbGVzQ29zbWV0aWMBBQhpdGVtTmFtZQQJc29sZFZhbHVlCQENdHJ5R2V0SW50ZWdlcgEJARBrZXlfc29sZENvc21ldGljAQUIaXRlbU5hbWUDCQBmAgUKaXRlbUFtb3VudAkAkAMBBQVhcnJheQkAAgEJAKwCAgIdSURCSTogTWF4IGFtb3VudCB0byBpc3N1ZSBpcyAJAKQDAQkAkAMBBQVhcnJheQQFcHJpY2UDCQAAAgUEZ3JvdwAACQBoAgUJYmFzZVByaWNlBQppdGVtQW1vdW50CQACAQI6SURCSTogSXRlbXMgdGhhdCBncm93IGluIHByaWNlIGNhbiBub3QgYmUgYm91Z2h0IGluIGJhdGNoIQMDCQECIT0CBQ1tYXhTYWxlc1ZhbHVlAAAJAGcCBQlzb2xkVmFsdWUFDW1heFNhbGVzVmFsdWUHCQACAQIYSURCSTogTWF4IGVkaXRpb25zIHNvbGQhBAdhc3NldElkAwkAAAIJAQx0cnlHZXRTdHJpbmcBCQEWa2V5X3ByaWNlQXNzZXRDb3NtZXRpYwEFCGl0ZW1OYW1lAgAJAQ1nZXRFZ2dBc3NldElkAAMJAAACCQEMdHJ5R2V0U3RyaW5nAQkBFmtleV9wcmljZUFzc2V0Q29zbWV0aWMBBQhpdGVtTmFtZQIFV0FWRVMFBHVuaXQJANkEAQkBDHRyeUdldFN0cmluZwEJARZrZXlfcHJpY2VBc3NldENvc21ldGljAQUIaXRlbU5hbWUEDHZhbGlkUGF5bWVudAkBFmNoZWNrQWRkaXRpb25hbFBheW1lbnQBCQCRAwIIBQFpCHBheW1lbnRzAAAEDGZpcnN0UGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwABBAZhbW91bnQIBQxmaXJzdFBheW1lbnQGYW1vdW50AwkBAiE9AggFDGZpcnN0UGF5bWVudAdhc3NldElkBQdhc3NldElkCQACAQI6SURCSTogWW91IGNhbiBhdHRhY2ggb25seSB0b2tlbnMgd2l0aCB0aGUgY29ycmVjdCBwYXltZW50IAMJAQIhPQIFBmFtb3VudAUFcHJpY2UJAAIBCQCsAgICKklEQkk6IFBsZWFzZSBhdHRhY2ggdGhlIGV4YWN0IGFzc2V0IGFtb3VudAkApAMBBQVwcmljZQQHdHhJZFN0cgkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAdhZGRyZXNzCAUBaQxvcmlnaW5DYWxsZXIKAQpoYW5kbGVNaW50AgNhY2MFaW5kZXgDCQBmAgUKaXRlbUFtb3VudAUFaW5kZXgJAM4IAgUDYWNjCAkBCWlzc3VlSXRlbQMFCGl0ZW1OYW1lBQVpbmRleAUHYWRkcmVzcwJfMQUDYWNjBAZpc3N1ZXMKAAIkbAUFYXJyYXkKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCmhhbmRsZU1pbnQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDMwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFWtleV9sYXN0UHJpY2VDb3NtZXRpYwEFCGl0ZW1OYW1lBQliYXNlUHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARBrZXlfc29sZENvc21ldGljAQUIaXRlbU5hbWUJAGQCBQlzb2xkVmFsdWUFCml0ZW1BbW91bnQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEGdldEZlZUFnZ3JlZ2F0b3IABQZhbW91bnQFB2Fzc2V0SWQFA25pbAUMdmFsaWRQYXltZW50BQZpc3N1ZXMBaQENZGlyZWN0QnV5SXRlbQEIaXRlbU5hbWUECWJhc2VQcmljZQkBF3RyeUdldENvc21ldGljSXRlbVByaWNlAQUIaXRlbU5hbWUEBGdyb3cJAQ10cnlHZXRJbnRlZ2VyAQkBGmtleV9ncm93UGVyY2VudGFnZUNvc21ldGljAQUIaXRlbU5hbWUEB3N0YXJ0VHMJAQ10cnlHZXRJbnRlZ2VyAQkBE2tleV9zdGFydFRzQ29zbWV0aWMBBQhpdGVtTmFtZQQFZW5kVHMJAQ10cnlHZXRJbnRlZ2VyAQkBEWtleV9lbmRUc0Nvc21ldGljAQUIaXRlbU5hbWUDAwkBAiE9AgUHc3RhcnRUcwAACQBmAgUHc3RhcnRUcwgFCWxhc3RCbG9jawl0aW1lc3RhbXAHCQACAQIhSURCSTogVGhlIHNhbGUgZGlkIG5vdCBzdGFydCB5ZXQhAwMJAQIhPQIFBWVuZFRzAAAJAGYCCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUFZW5kVHMHCQACAQIkSURCSTogVGhlIHNhbGUgaGFzIGFscmVhZHkgZmluaXNoZWQhAwkBASEBCQENdHJ5R2V0Qm9vbGVhbgEJARBrZXlfc2FsZUNvc21ldGljAQUIaXRlbU5hbWUJAAIBCQCsAgICH0lEQkk6IEl0ZW0gbm90IGZvciBzYWxlIGFueW1vcmUJARBrZXlfc2FsZUNvc21ldGljAQUIaXRlbU5hbWUEDW1heFNhbGVzVmFsdWUJAQ10cnlHZXRJbnRlZ2VyAQkBFGtleV9tYXhTYWxlc0Nvc21ldGljAQUIaXRlbU5hbWUECXNvbGRWYWx1ZQkBDXRyeUdldEludGVnZXIBCQEQa2V5X3NvbGRDb3NtZXRpYwEFCGl0ZW1OYW1lBAVwcmljZQMJAAACBQRncm93AAAFCWJhc2VQcmljZQkAZAIFCWJhc2VQcmljZQkAaAIJAGkCBQliYXNlUHJpY2UAZAkAaAIFCXNvbGRWYWx1ZQUEZ3JvdwMDCQECIT0CBQ1tYXhTYWxlc1ZhbHVlAAAJAGcCBQlzb2xkVmFsdWUFDW1heFNhbGVzVmFsdWUHCQACAQIYSURCSTogTWF4IGVkaXRpb25zIHNvbGQhBAdhc3NldElkAwkAAAIJAQx0cnlHZXRTdHJpbmcBCQEWa2V5X3ByaWNlQXNzZXRDb3NtZXRpYwEFCGl0ZW1OYW1lAgAJAQ1nZXRFZ2dBc3NldElkAAMJAAACCQEMdHJ5R2V0U3RyaW5nAQkBFmtleV9wcmljZUFzc2V0Q29zbWV0aWMBBQhpdGVtTmFtZQIFV0FWRVMFBHVuaXQJANkEAQkBDHRyeUdldFN0cmluZwEJARZrZXlfcHJpY2VBc3NldENvc21ldGljAQUIaXRlbU5hbWUEDHZhbGlkUGF5bWVudAkBFmNoZWNrQWRkaXRpb25hbFBheW1lbnQBCQCRAwIIBQFpCHBheW1lbnRzAAAEDGZpcnN0UGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwABBAZhbW91bnQIBQxmaXJzdFBheW1lbnQGYW1vdW50AwkBAiE9AggFDGZpcnN0UGF5bWVudAdhc3NldElkBQdhc3NldElkCQACAQI6SURCSTogWW91IGNhbiBhdHRhY2ggb25seSB0b2tlbnMgd2l0aCB0aGUgY29ycmVjdCBwYXltZW50IAMJAQIhPQIFBmFtb3VudAUFcHJpY2UJAAIBCQCsAgICKklEQkk6IFBsZWFzZSBhdHRhY2ggdGhlIGV4YWN0IGFzc2V0IGFtb3VudAkApAMBBQVwcmljZQQHdHhJZFN0cgkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBAdhZGRyZXNzCAUBaQxvcmlnaW5DYWxsZXIECGFydGVmYWN0CQDDCAcFCGl0ZW1OYW1lCQCsAgICIk5GVCBhcnRlZmFjdCBvZiBXYXZlcyBEdWNrcyBnYW1lOiAFCGl0ZW1OYW1lAAEAAAcFBHVuaXQAAAQKYXJ0ZWZhY3RJZAkAuAgBBQhhcnRlZmFjdAkAlAoCCQDOCAIJAMwIAgUIYXJ0ZWZhY3QJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICCWFydGVmYWN0XwkA2AQBBQphcnRlZmFjdElkAgVfdHlwZQUIaXRlbU5hbWUJAMwIAgkBDEludGVnZXJFbnRyeQIJARVrZXlfbGFzdFByaWNlQ29zbWV0aWMBBQhpdGVtTmFtZQUFcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARBrZXlfc29sZENvc21ldGljAQUIaXRlbU5hbWUJAGQCBQlzb2xkVmFsdWUAAQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQdhZGRyZXNzAAEFCmFydGVmYWN0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEGdldEZlZUFnZ3JlZ2F0b3IABQZhbW91bnQFB2Fzc2V0SWQFA25pbAUMdmFsaWRQYXltZW50CQDYBAEFCmFydGVmYWN0SWQBaQEPbWFuaXB1bGF0ZUJvb3N0AgVib29zdAZkdWNrSWQEEGFsbG93ZWRDb250cmFjdHMJARNnZXRUcnVzdGVkQ29udHJhY3RzAAQUYWxsb3dlZENvbnRyYWN0c0xpc3QJALUJAgUQYWxsb3dlZENvbnRyYWN0cwIBOwQKZGFwcFRvQ2FsbAkApQgBCAUBaQZjYWxsZXIDCQAAAgkAzwgCBRRhbGxvd2VkQ29udHJhY3RzTGlzdAUKZGFwcFRvQ2FsbAUEdW5pdAkAAgECNElNQjogVGhpcyBzbWFydCBjb250cmFjdCBjYW4ndCBtYW5pcHVsYXRlIHRoZSBib29zdCEEA2tleQkBFWtleV9leHRlcm5hbEJvb3N0RHVjawEFBmR1Y2tJZAQLYWN0aXZlQm9vc3QJAQ10cnlHZXRJbnRlZ2VyAQUDa2V5BAhuZXdCb29zdAkAZAIFC2FjdGl2ZUJvb3N0BQVib29zdAMJAGYCAAAFCG5ld0Jvb3N0CQACAQJASU1COiBTb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIGJvb3N0LCBwbGVhc2UgY29udGFjdCB0aGUgYWRtaW5zIQkAzAgCCQEMSW50ZWdlckVudHJ5AgUDa2V5BQhuZXdCb29zdAUDbmlsAWkBFm1hbmlwdWxhdGVCb29zdEFjY291bnQCBWJvb3N0B2FkZHJlc3MEEGFsbG93ZWRDb250cmFjdHMJARNnZXRUcnVzdGVkQ29udHJhY3RzAAQUYWxsb3dlZENvbnRyYWN0c0xpc3QJALUJAgUQYWxsb3dlZENvbnRyYWN0cwIBOwQKZGFwcFRvQ2FsbAkApQgBCAUBaQZjYWxsZXIDCQAAAgkAzwgCBRRhbGxvd2VkQ29udHJhY3RzTGlzdAUKZGFwcFRvQ2FsbAUEdW5pdAkAAgECNUlNQkE6IFRoaXMgc21hcnQgY29udHJhY3QgY2FuJ3QgbWFuaXB1bGF0ZSB0aGUgYm9vc3QhBANrZXkJARhrZXlfZXh0ZXJuYWxCb29zdEFkZHJlc3MBBQdhZGRyZXNzBAthY3RpdmVCb29zdAkBDXRyeUdldEludGVnZXIBBQNrZXkECG5ld0Jvb3N0CQBkAgULYWN0aXZlQm9vc3QFBWJvb3N0AwkAZgIAAAUIbmV3Qm9vc3QJAAIBAkFJTUJBOiBTb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIGJvb3N0LCBwbGVhc2UgY29udGFjdCB0aGUgYWRtaW5zIQkAzAgCCQEMSW50ZWdlckVudHJ5AgUDa2V5BQhuZXdCb29zdAUDbmlsAWkBFGNoZWNrQXJ0ZWZhY3REZXRhaWxzAQdhc3NldElkBAVhc3NldAkBBXZhbHVlAQkA7AcBCQDZBAEFB2Fzc2V0SWQECWFzc2V0TmFtZQkBBXZhbHVlAQgFBWFzc2V0BG5hbWUDAwMJAQ9jb250YWluc0VsZW1lbnQCBQthbGxBcnRlZmFjdAUJYXNzZXROYW1lBgkBCWlzRGVmaW5lZAEJARd0cnlHZXRDb3NtZXRpY0l0ZW1QcmljZQEFCWFzc2V0TmFtZQkAAAIIBQVhc3NldAZpc3N1ZXIFBHRoaXMHCQCUCgIFA25pbAUJYXNzZXROYW1lCQACAQIQSW52YWxpZCBhcnRlZmFjdAFpAQ9jb25maWd1cmVPcmFjbGUBBm9yYWNsZQMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECDklDOiBhZG1pbiBvbmx5CQDMCAIJAQtTdHJpbmdFbnRyeQIJARdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwAFBm9yYWNsZQUDbmlsAWkBGmNhbGN1bGF0ZUZhcm1pbmdQb3dlckJvb3N0AgZkdWNrSWQHYWRkcmVzcwQRZXh0ZXJuYWxCb29zdER1Y2sJAQ10cnlHZXRJbnRlZ2VyAQkBFWtleV9leHRlcm5hbEJvb3N0RHVjawEFBmR1Y2tJZAQUZXh0ZXJuYWxCb29zdEFkZHJlc3MJAQ10cnlHZXRJbnRlZ2VyAQkBGGtleV9leHRlcm5hbEJvb3N0QWRkcmVzcwEFB2FkZHJlc3MECnRvdGFsQm9vc3QJAGQCBRFleHRlcm5hbEJvb3N0RHVjawUUZXh0ZXJuYWxCb29zdEFkZHJlc3MJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQZkdWNrSWQCC19sYXN0X2Jvb3N0BQp0b3RhbEJvb3N0BQNuaWwFCnRvdGFsQm9vc3QBaQEOaXRlbUR1cGxpY2F0b3IAAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAECQACAQIeSUlEOiBGb3VyIHBheW1lbnRzIGFyZSBuZWVkZWQhBBFkdXBsaWNhdG9yUGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAtpdGVtUGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwABBAplZ2dQYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAIEDHZhbGlkUGF5bWVudAkBFmNoZWNrQWRkaXRpb25hbFBheW1lbnQBCQCRAwIIBQFpCHBheW1lbnRzAAMEEWR1cGxpY2F0b3JBc3NldElkCQDYBAEJAQV2YWx1ZQEIBRFkdXBsaWNhdG9yUGF5bWVudAdhc3NldElkAwkBAiE9AggFEWR1cGxpY2F0b3JQYXltZW50BmFtb3VudAABCQACAQIjSUlEOiBEdXBsaWNhdG9yIE5GVCBpcyBub3QgYXR0YWNoZWQEC2l0ZW1Bc3NldElkCQDYBAEJAQV2YWx1ZQEIBQtpdGVtUGF5bWVudAdhc3NldElkAwkBAiE9AggFC2l0ZW1QYXltZW50BmFtb3VudAABCQACAQIdSUlEOiBJdGVtIE5GVCBpcyBub3QgYXR0YWNoZWQECmVnZ0Fzc2V0SWQJAQV2YWx1ZQEIBQplZ2dQYXltZW50B2Fzc2V0SWQDCQECIT0CBQplZ2dBc3NldElkCQENZ2V0RWdnQXNzZXRJZAAJAAIBAhhJSUQ6IFBsZWFzZSBhdHRhY2ggZWdncyEDCQBmAgkBEGdldER1cGxpY2F0b3JGZWUACAUKZWdnUGF5bWVudAZhbW91bnQJAAIBCQCsAgICRUlJRDogdG8gZHVwbGljYXRlIGFuIGl0ZW1zIHlvdSBuZWVkIHRoZSBmb2xsb3dpbmcgYW1vdW50IG9mIGVnZ2xldHM6IAkApAMBCQEQZ2V0RHVwbGljYXRvckZlZQAEEmR1cGxpY2F0b3JBcnRlZmFjdAkBCGFzU3RyaW5nAQkA/AcEBQR0aGlzAhRjaGVja0FydGVmYWN0RGV0YWlscwkAzAgCBRFkdXBsaWNhdG9yQXNzZXRJZAUDbmlsBQNuaWwDCQAAAgUSZHVwbGljYXRvckFydGVmYWN0BRJkdXBsaWNhdG9yQXJ0ZWZhY3QDCQECIT0CBRJkdXBsaWNhdG9yQXJ0ZWZhY3QCDkFSVC1JVEVNX0RVUExJCQACAQIxSUlEOiBZb3UgbmVlZCB0byBhdHRhY2ggYSBBUlQtSVRFTV9EVVBMSSBhcnRlZmFjdAQMYXJ0ZWZhY3ROYW1lCQEIYXNTdHJpbmcBCQD8BwQFBHRoaXMCFGNoZWNrQXJ0ZWZhY3REZXRhaWxzCQDMCAIFC2l0ZW1Bc3NldElkBQNuaWwFA25pbAMJAAACBQxhcnRlZmFjdE5hbWUFDGFydGVmYWN0TmFtZQQIYXJ0ZWZhY3QJAMMIBwUMYXJ0ZWZhY3ROYW1lCQCsAgICIk5GVCBhcnRlZmFjdCBvZiBXYXZlcyBEdWNrcyBnYW1lOiAFDGFydGVmYWN0TmFtZQABAAAHBQR1bml0AAAECmFydGVmYWN0SWQJALgIAQUIYXJ0ZWZhY3QJAJQKAgkAzggCCQDMCAIFCGFydGVmYWN0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAglhcnRlZmFjdF8JANgEAQUKYXJ0ZWZhY3RJZAIFX3R5cGUFDGFydGVmYWN0TmFtZQkAzAgCCQEEQnVybgIJAQV2YWx1ZQEIBRFkdXBsaWNhdG9yUGF5bWVudAdhc3NldElkAAEJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkMb3JpZ2luQ2FsbGVyAAEIBQtpdGVtUGF5bWVudAdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpDG9yaWdpbkNhbGxlcgABBQphcnRlZmFjdElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARBnZXRGZWVBZ2dyZWdhdG9yAAgFCmVnZ1BheW1lbnQGYW1vdW50CAUKZWdnUGF5bWVudAdhc3NldElkBQNuaWwFDHZhbGlkUGF5bWVudAkA2AQBBQphcnRlZmFjdElkCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCGNvcHlEdWNrAAQMZmlyc3RQYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEDXNlY29uZFBheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAQQMdmFsaWRQYXltZW50CQEWY2hlY2tBZGRpdGlvbmFsUGF5bWVudAEJAJEDAggFAWkIcGF5bWVudHMAAgQMZmlyc3RBc3NldElkCQDYBAEJAQV2YWx1ZQEIBQxmaXJzdFBheW1lbnQHYXNzZXRJZAQIY2hpbGRyZW4JAQVhc0ludAEJAPwHBAkBEWdldEJyZWVkZXJBZGRyZXNzAAIWdmFsaWRhdGVBbmRHZXRDaGlsZHJlbgkAzAgCBQxmaXJzdEFzc2V0SWQFA25pbAUDbmlsAwkAAAIFCGNoaWxkcmVuBQhjaGlsZHJlbgMDCQECIT0CCAUMZmlyc3RQYXltZW50BmFtb3VudAABBgkBAiE9AggFDXNlY29uZFBheW1lbnQGYW1vdW50AAEJAAIBAhNORlQgaXMgbm90IGF0dGFjaGVkBAhhcnRlZmFjdAkBCGFzU3RyaW5nAQkA/AcEBQR0aGlzAhRjaGVja0FydGVmYWN0RGV0YWlscwkAzAgCCQDYBAEJAQV2YWx1ZQEIBQ1zZWNvbmRQYXltZW50B2Fzc2V0SWQFA25pbAUDbmlsAwkAAAIFCGFydGVmYWN0BQhhcnRlZmFjdAMJAQIhPQIFCGFydGVmYWN0AgpBUlQtTUlSUk9SCQACAQIoWW91IG5lZWQgdG8gYXR0YWNoIGEgQVJULU1JUlJPUiBhcnRlZmFjdAQHbmZ0SW5mbwkBBXZhbHVlAQkA7AcBCQEFdmFsdWUBCAUMZmlyc3RQYXltZW50B2Fzc2V0SWQECWFzc2V0MUdlbgkAtQkCCAUHbmZ0SW5mbwRuYW1lAgADAwkAAAIJAJEDAgUJYXNzZXQxR2VuAA4CAUcGCQAAAgkAkQMCBQlhc3NldDFHZW4ADgIBSgkAAgECGllvdSBjYW4ndCBtaXJyb3IgdGhpcyBkdWNrBAdkdWNrR2VuCAUHbmZ0SW5mbwRuYW1lBARjYWxsCQD8BwQJARFnZXRCcmVlZGVyQWRkcmVzcwACFmNyZWF0ZUR1Y2tTcGVjaWFsR2VuZXMJAMwIAggIBQFpBmNhbGxlcgVieXRlcwkAzAgCBQdkdWNrR2VuCQDMCAIFCGNoaWxkcmVuBQNuaWwFA25pbAMJAAACBQRjYWxsBQRjYWxsCQDOCAIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEIBQxmaXJzdFBheW1lbnQHYXNzZXRJZAkAzAgCCQEEQnVybgIJAQV2YWx1ZQEIBQ1zZWNvbmRQYXltZW50B2Fzc2V0SWQAAQUDbmlsBQx2YWxpZFBheW1lbnQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERYWRkQXJ0ZUZhY3RUb0R1Y2sABAxmaXJzdFBheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQNc2Vjb25kUGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwABBAx2YWxpZFBheW1lbnQJARZjaGVja0FkZGl0aW9uYWxQYXltZW50AQkAkQMCCAUBaQhwYXltZW50cwACBAxmaXJzdEFzc2V0SWQJANgEAQkBBXZhbHVlAQgFDGZpcnN0UGF5bWVudAdhc3NldElkAwMJAQIhPQIIBQxmaXJzdFBheW1lbnQGYW1vdW50AAEGCQECIT0CCAUNc2Vjb25kUGF5bWVudAZhbW91bnQAAQkAAgECE05GVCBpcyBub3QgYXR0YWNoZWQECGNoaWxkcmVuCQEFYXNJbnQBCQD8BwQJARFnZXRCcmVlZGVyQWRkcmVzcwACFnZhbGlkYXRlQW5kR2V0Q2hpbGRyZW4JAMwIAgUMZmlyc3RBc3NldElkBQNuaWwFA25pbAMJAAACBQhjaGlsZHJlbgUIY2hpbGRyZW4DCQAAAgUIY2hpbGRyZW4AAAkAAgECJFlvdSBjYW4gb25seSBwaWNrIGEgc3RlcmlsZSBORlQtZHVjawQIYXJ0ZWZhY3QJAQhhc1N0cmluZwEJAPwHBAUEdGhpcwIUY2hlY2tBcnRlZmFjdERldGFpbHMJAMwIAgkA2AQBCQEFdmFsdWUBCAUNc2Vjb25kUGF5bWVudAdhc3NldElkBQNuaWwFA25pbAMJAAACBQhhcnRlZmFjdAUIYXJ0ZWZhY3QDAwkBAiE9AgUIYXJ0ZWZhY3QCCEFSVC1YSEFUCQECIT0CBQhhcnRlZmFjdAIIQVJULVBPTVAHCQACAQIyWW91IG5lZWQgdG8gYXR0YWNoIGEgQVJULVhIQVQgb3IgQVJULVBPTVAgYXJ0ZWZhY3QEB25mdEluZm8JAQV2YWx1ZQEJAOwHAQkBBXZhbHVlAQgFDGZpcnN0UGF5bWVudAdhc3NldElkBAlhc3NldDFHZW4JALUJAggFB25mdEluZm8EbmFtZQIAAwMJAAACCQCRAwIFCWFzc2V0MUdlbgAOAgFHBgkAAAIJAJEDAgUJYXNzZXQxR2VuAA4CAUoJAAIBAhpZb3UgY2FuJ3QgbWlycm9yIHRoaXMgZHVjawMDCQAAAgkAkQMCBQlhc3NldDFHZW4ABQIBUwYJAAACCQCRAwIFCWFzc2V0MUdlbgAFAgFUCQACAQIfeW91IGFscmVhZHkgYXR0YWNoZWQgYSBhcnRlZmFjdAQEY2hhcgMJAAACBQhhcnRlZmFjdAIIQVJULVhIQVQCAVQDCQAAAgUIYXJ0ZWZhY3QCCEFSVC1QT01QAgFTCQACAQIPTm8gY2hhciBkZWZpbmVkBApvbGREdWNrR2VuCAUHbmZ0SW5mbwRuYW1lBApvbGRGYXJtR2VuCQEIYXNTdHJpbmcBCQD8BwQJARFnZXRCcmVlZGVyQWRkcmVzcwACDmdldEdlbkZyb21OYW1lCQDMCAIFCm9sZER1Y2tHZW4FA25pbAUDbmlsAwkAAAIFCm9sZEZhcm1HZW4FCm9sZEZhcm1HZW4EB2R1Y2tHZW4JAQ5tYW5pcHVsYXRlTmFtZQMFCm9sZER1Y2tHZW4ABgUEY2hhcgQEY2FsbAkA/AcECQERZ2V0QnJlZWRlckFkZHJlc3MAAhZjcmVhdGVEdWNrU3BlY2lhbEdlbmVzCQDMCAIICAUBaQZjYWxsZXIFYnl0ZXMJAMwIAgUHZHVja0dlbgkAzAgCBQhjaGlsZHJlbgUDbmlsBQNuaWwDCQAAAgUEY2FsbAUEY2FsbAQKY2FsbFJlZHVjZQkA/AcECQERZ2V0QnJlZWRlckFkZHJlc3MAAgxyZWR1Y2VSYXJpdHkJAMwIAgUMZmlyc3RBc3NldElkCQDMCAIFCm9sZEZhcm1HZW4FA25pbAUDbmlsAwkAAAIFCmNhbGxSZWR1Y2UFCmNhbGxSZWR1Y2UJAM4IAgkAzAgCCQEEQnVybgIJAQV2YWx1ZQEIBQxmaXJzdFBheW1lbnQHYXNzZXRJZAABCQDMCAIJAQRCdXJuAgkBBXZhbHVlAQgFDXNlY29uZFBheW1lbnQHYXNzZXRJZAABBQNuaWwFDHZhbGlkUGF5bWVudAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQdwcmVJbml0AAkAzAgCCQEMSW50ZWdlckVudHJ5AgIcc3RhdGljX0FSVC1MQUtFX2Zhcm1pbmdTbG90cwDIAQkAzAgCCQEMSW50ZWdlckVudHJ5AgIcc3RhdGljX0FSVC1MQUtFX2Zhcm1pbmdCb29zdAACCQDMCAIJAQxJbnRlZ2VyRW50cnkCAh1zdGF0aWNfQVJULUhPVVNFX2Zhcm1pbmdTbG90cwAECQDMCAIJAQxJbnRlZ2VyRW50cnkCAh1zdGF0aWNfQVJULUhPVVNFX2Zhcm1pbmdCb29zdAAeCQDMCAIJAQxJbnRlZ2VyRW50cnkCAiBzdGF0aWNfQVJULUJJR0hPVVNFX2Zhcm1pbmdTbG90cwAKCQDMCAIJAQxJbnRlZ2VyRW50cnkCAiBzdGF0aWNfQVJULUJJR0hPVVNFX2Zhcm1pbmdCb29zdAAPBQNuaWwBaQENaXNzdWVBcnRlZmFjdAIEdHlwZQhyZWNlaXZlcgMDAwMDAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQECIT0CCAUBaQZjYWxsZXIJARFnZXRSZWJpcnRoQWRkcmVzcwAHCQECIT0CCAUBaQZjYWxsZXIJARdnZXRUdXJ0bGVSZWJpcnRoQWRkcmVzcwAHCQECIT0CCAUBaQZjYWxsZXIJARdnZXRDYW5pbmVSZWJpcnRoQWRkcmVzcwAHCQECIT0CCAUBaQZjYWxsZXIJARRnZXRIdW50RGlzdHJvQWRkcmVzcwAHCQECIT0CCAUBaQ9jYWxsZXJQdWJsaWNLZXkJAQtnZXRXYXJzUEtleQAHCQACAQIPSUlBOiBhZG1pbiBvbmx5AwMDAwkAAAIIBQFpBmNhbGxlcgkBFGdldEh1bnREaXN0cm9BZGRyZXNzAAYJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkJAQtnZXRXYXJzUEtleQAJAQEhAQkBCGNvbnRhaW5zAgUEdHlwZQIJQVJULUZJUkVfBwkBASEBCQENdHJ5R2V0Qm9vbGVhbgEJAKwCAgUEdHlwZQIGX2lzc3VlBwkAAgECHUZJUkUgQU5EIFdISVRFTElTVCBJVEVNIE9OTFkhBAdhZGRyZXNzCQEHQWRkcmVzcwEJANkEAQUIcmVjZWl2ZXIJAQlpc3N1ZUl0ZW0DBQR0eXBlAAAFB2FkZHJlc3MBaQESaXNzdWVBcnRlZmFjdEluZGV4AwR0eXBlCHJlY2VpdmVyBW5vbmNlAwMDAwMDAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQECIT0CCAUBaQZjYWxsZXIJARFnZXRSZWJpcnRoQWRkcmVzcwAHCQECIT0CCAUBaQZjYWxsZXIJARdnZXRUdXJ0bGVSZWJpcnRoQWRkcmVzcwAHCQECIT0CCAUBaQZjYWxsZXIJARdnZXRDYW5pbmVSZWJpcnRoQWRkcmVzcwAHCQECIT0CCAUBaQZjYWxsZXIJARhnZXRGZWxpbmVlUmViaXJ0aEFkZHJlc3MABwkBAiE9AggFAWkGY2FsbGVyCQEUZ2V0SHVudERpc3Ryb0FkZHJlc3MABwkBAiE9AggFAWkPY2FsbGVyUHVibGljS2V5CQELZ2V0V2Fyc1BLZXkABwkAAgECEElJQUk6IGFkbWluIG9ubHkDAwMDCQAAAggFAWkGY2FsbGVyCQEUZ2V0SHVudERpc3Ryb0FkZHJlc3MABgkAAAIIBQFpD2NhbGxlclB1YmxpY0tleQkBC2dldFdhcnNQS2V5AAkBASEBCQEIY29udGFpbnMCBQR0eXBlAglBUlQtRklSRV8HCQEBIQEJAQ10cnlHZXRCb29sZWFuAQkArAICBQR0eXBlAgZfaXNzdWUHCQACAQIdRklSRSBBTkQgV0hJVEVMSVNUIElURU0gT05MWSEEB2FkZHJlc3MJAQdBZGRyZXNzAQkA2QQBBQhyZWNlaXZlcgQLaXNzdWVSZXN1bHQJAQlpc3N1ZUl0ZW0DBQR0eXBlBQVub25jZQUHYWRkcmVzcwULaXNzdWVSZXN1bHQBaQEHc2V0TG9jawEBbgMJAAACCAUBaQZjYWxsZXIFBHRoaXMJAMwIAgkBDEludGVnZXJFbnRyeQICDWdsb2JhbF9sb2NrZWQFAW4FA25pbAkAAgECCmFkbWluIG9ubHkBaQEOYWRkSXRlbVRvU3RvcmUIBXByaWNlBGl0ZW0IbWF4U2FsZXMEc2FsZQlwcmljZXNzZXQQZ3Jvd3RoUGVyY2VudGFnZQdzdGFydFRzBWVuZFRzAwkBAiE9AggFAWkGY2FsbGVyCQERQGV4dHJOYXRpdmUoMTA2MikBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBFnN0YXRpY0tleV9waXBlbGluZVVzZXIACQACAQIeSUFJVFM6IE9ubHkgZm9yIHRydXN0ZWQgdXNlcnMhCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQERa2V5X3ByaWNlQ29zbWV0aWMBBQRpdGVtBQVwcmljZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleV9tYXhTYWxlc0Nvc21ldGljAQUEaXRlbQUIbWF4U2FsZXMJAMwIAgkBDEJvb2xlYW5FbnRyeQIJARBrZXlfc2FsZUNvc21ldGljAQUEaXRlbQUEc2FsZQkAzAgCCQELU3RyaW5nRW50cnkCCQEWa2V5X3ByaWNlQXNzZXRDb3NtZXRpYwEFBGl0ZW0FCXByaWNlc3NldAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGmtleV9ncm93UGVyY2VudGFnZUNvc21ldGljAQUEaXRlbQUQZ3Jvd3RoUGVyY2VudGFnZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBE2tleV9zdGFydFRzQ29zbWV0aWMBBQRpdGVtBQdzdGFydFRzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQERa2V5X2VuZFRzQ29zbWV0aWMBBQRpdGVtBQVlbmRUcwUDbmlsAQJ0eAEGdmVyaWZ5AAMJAQlpc1Rlc3RFbnYACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5BAlmaXJzdFVzZXIBIFEc5P1m/xJp0vFaFJ87suL0O3/By2gnojRebDjXV91tBApzZWNvbmRVc2VyASBccg5LrvEhT2bmGUX6aqKx7bE2KVlfGczMsOFNQYhqfQQJdGhpcmRVc2VyASCgr5HlLXlDYWEyEq2OufoYWVGdLVNJNsPQo/eoYBk7TgQPZmlyc3RVc2VyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUJZmlyc3RVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQlmaXJzdFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFCWZpcnN0VXNlcgABAAAEEHNlY29uZFVzZXJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQpzZWNvbmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQpzZWNvbmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQpzZWNvbmRVc2VyAAEAAAQPdGhpcmRVc2VyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUJdGhpcmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQl0aGlyZFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFCXRoaXJkVXNlcgABAAAED3NpZ25hdHVyZXNDb3VudAkAZAIJAGQCBQ9maXJzdFVzZXJTaWduZWQFEHNlY29uZFVzZXJTaWduZWQFD3RoaXJkVXNlclNpZ25lZAQHJG1hdGNoMAUCdHgJAGcCBQ9zaWduYXR1cmVzQ291bnQAAvpy5Yo=", "height": 3318549, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 93g2co95sghb5iPLgjv12oq7AVWZFT56zPihGHJxmLpg Next: none Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a () = "static_oracleAddress"
55
66
77 func b () = "static_breederAddress"
88
99
1010 func c () = "static_eggAssetId"
1111
1212
1313 func d () = "static_trustedContracts"
1414
1515
1616 func e () = "static_rebirthAddress"
1717
1818
1919 func f () = "static_turtleRebirthAddress"
2020
2121
2222 func g () = "static_pipelineUser"
2323
2424
2525 func h () = "static_extraFee"
2626
2727
2828 func i () = "static_feeAggregator"
2929
3030
3131 func j () = "static_huntDistroAddress"
3232
3333
3434 func k () = "static_warsPKey"
3535
3636
3737 func l () = "static_duplicatorFee"
3838
3939
4040 func m () = "static_canineRebirthAddress"
4141
4242
4343 func n () = "static_felineRebirthAddress"
4444
4545
4646 func o () = "static_babyDuckAddress"
4747
4848
4949 func p () = "static_burnAddress"
5050
5151
5252 func q (r,s) = (((r + "_") + s) + "_owner")
5353
5454
5555 func t (r,u) = (((r + "_") + u) + "_unstake_height")
5656
5757
5858 func v (w) = (w + "_duck_external_boost")
5959
6060
6161 func x (y) = (y + "_user_external_boost")
6262
6363
6464 func z (A) = ("direct_cosmetic_" + A)
6565
6666
6767 func B (A) = (("direct_cosmetic_" + A) + "_max_sales")
6868
6969
7070 func C (A) = (("direct_cosmetic_" + A) + "_sale")
7171
7272
7373 func D (A) = (("direct_cosmetic_" + A) + "_priceAsset")
7474
7575
7676 func E (A) = (("direct_cosmetic_" + A) + "_growing_percentage")
7777
7878
7979 func F (A) = (("direct_cosmetic_" + A) + "_sold")
8080
8181
8282 func G (A) = (("direct_cosmetic_" + A) + "_last_price")
8383
8484
8585 func H (A) = (("direct_cosmetic_" + A) + "_startTs")
8686
8787
8888 func I (A) = (("direct_cosmetic_" + A) + "_endTs")
8989
9090
9191 func J (y,K) = (((y + "_") + toBase58String(K)) + "_fh")
9292
9393
9494 func L () = "static_couponsAddress"
9595
9696
9797 let M = ["ART-LAKE", "ART-HOUSE", "ART-BIGHOUSE", "ART-FIXGENE", "ART-FREEGENE", "ART-MIRROR", "ART-POMP", "ART-CAPE", "ART-HAT", "ART-CUSTOMDUCK", "ART-XMISTL", "ART-XHAT", "ART-XSCARF", "ART-XSWEATER", "ART-XSOCK", "ART-XTREE"]
9898
9999 let N = ["ART-TINSEL", "ART-FEED10", "ART-GNGR_BREAD", "ART-SNOWBALL", "ART-GIFT_DOUBL"]
100100
101101 let O = ["ART-HWRESCUE", "ART-HWERASE", "ART-FEED10", "ART-FEED15", "ART-FEED20", "ART-FEED25", "ART-GIFT_DOUBL"]
102102
103103 let P = ["ART-SNW_GLBES", "ART-SKELETON"]
104104
105105 let Q = ["G", "H", "I", "K", "L", "M", "N", "O"]
106106
107107 func R (S) = {
108108 let T = getBoolean(this, S)
109109 if ($isInstanceOf(T, "Boolean"))
110110 then {
111111 let U = T
112112 U
113113 }
114114 else false
115115 }
116116
117117
118118 func V (S) = {
119119 let T = getString(this, S)
120120 if ($isInstanceOf(T, "String"))
121121 then {
122122 let W = T
123123 W
124124 }
125125 else ""
126126 }
127127
128128
129129 func X (S) = {
130130 let T = getInteger(this, S)
131131 if ($isInstanceOf(T, "Int"))
132132 then {
133133 let W = T
134134 W
135135 }
136136 else 0
137137 }
138138
139139
140140 func Y (y,S) = {
141141 let T = getInteger(y, S)
142142 if ($isInstanceOf(T, "Int"))
143143 then {
144144 let U = T
145145 U
146146 }
147147 else 0
148148 }
149149
150150
151151 func Z (aa,K,ab,ac) = {
152152 let ad = value(blockInfoByHeight((ab - 1)))
153153 let ae = sha256(((base58'items' + K) + value(ad.vrf)))
154154 (toInt(ae, ac) % aa)
155155 }
156156
157157
158158 func af (y,S) = {
159159 let T = getString(y, S)
160160 if ($isInstanceOf(T, "String"))
161161 then {
162162 let W = T
163163 W
164164 }
165165 else ""
166166 }
167167
168168
169169 func ag () = Address(fromBase58String(V(a())))
170170
171171
172172 func ah () = Address(fromBase58String(af(ag(), b())))
173173
174174
175175 func ai () = fromBase58String(af(ag(), c()))
176176
177177
178178 func aj () = af(ag(), d())
179179
180180
181181 func ak () = Address(fromBase58String(af(ag(), e())))
182182
183183
184184 func al () = Address(fromBase58String(af(ag(), f())))
185185
186186
187187 func am () = Address(fromBase58String(af(ag(), m())))
188188
189189
190190 func an () = Address(fromBase58String(af(ag(), n())))
191191
192192
193193 func ao () = Address(fromBase58String(af(ag(), i())))
194194
195195
196196 func ap () = Address(fromBase58String(af(ag(), j())))
197197
198198
199199 func aq () = fromBase58String(af(ag(), k()))
200200
201201
202202 func ar () = Y(ag(), l())
203203
204204
205205 func as () = Address(fromBase58String(af(ag(), L())))
206206
207207
208208 func at () = Address(fromBase58String(af(ag(), o())))
209209
210210
211211 func au () = Address(fromBase58String(af(ag(), p())))
212212
213213
214214 func av (A) = {
215215 let S = z(A)
216216 let T = getInteger(this, S)
217217 if ($isInstanceOf(T, "Int"))
218218 then {
219219 let W = T
220220 W
221221 }
222222 else throw((("ITGCIP: " + A) + " is not available in the store!"))
223223 }
224224
225225
226226 func aw (ax) = {
227227 let T = ax
228228 if ($isInstanceOf(T, "String"))
229229 then {
230230 let ay = T
231231 ay
232232 }
233233 else throw("wrong type, expected: String")
234234 }
235235
236236
237237 func az (ax) = {
238238 let T = ax
239239 if ($isInstanceOf(T, "Int"))
240240 then {
241241 let aA = T
242242 aA
243243 }
244244 else throw("wrong type, expected: Int")
245245 }
246246
247247
248248 func aB (aC,aD,aE) = ((take(aC, (aD - 1)) + aE) + takeRight(aC, (16 - aD)))
249249
250250
251251 func aF (r,u) = {
252252 let aG = X(t(r, u))
253253 let aH = 240
254254 if ((height > (aG + aH)))
255255 then false
256256 else true
257257 }
258258
259259
260260 func aI () = R("TESTENV")
261261
262262
263263 func aJ (aK) = if (isDefined(aK.assetId))
264264 then throw("WCAP: Please attach waves")
265265 else {
266266 let aL = getIntegerValue(ag(), h())
267267 if ((aK.amount != aL))
268268 then throw((("WCAP: Please attach exactly " + toString(aL)) + " amount of wavelets"))
269269 else [ScriptTransfer(ao(), aL, unit)]
270270 }
271271
272272
273273 func aM (aN,aO,y) = {
274274 let aP = Issue(aN, "NFT artefact of Waves Ducks game.", 1, 0, false, unit, aO)
275275 let u = calculateAssetId(aP)
276276 $Tuple2([aP, StringEntry((("artefact_" + toBase58String(u)) + "_type"), aN), ScriptTransfer(y, 1, u)], toBase58String(u))
277277 }
278278
279279
280280 func aQ (aR,aS,aT,aU,aL,aV,aW,aX,K,aY,aZ,ba,bb) = if ((size(aU) != (aS + 1)))
281281 then throw((("IID: Please attach " + toString((aS + 2))) + " payments!"))
282282 else {
283283 func bc (bd,be) = if (if ((be.assetId == unit))
284284 then true
285285 else (be.assetId == ai()))
286286 then $Tuple5(bd._1, bd._2, bd._3, bd._4, bd._5)
287287 else {
288288 let bf = value(be.assetId)
289289 if ((value(assetInfo(value(bf))).issuer == ah()))
290290 then {
291291 let bg = split(value(assetInfo(value(bf))).name, "")
292292 let bh = bg[14]
293293 let bi = value(indexOf(Q, bh))
294294 $Tuple5(bd._1, bd._2, bd._3, bd._4, (bd._5 + bi))
295295 }
296296 else if ((value(assetInfo(value(bf))).issuer == at()))
297297 then {
298298 let bj = Y(at(), (("duckling_" + toBase58String(bf)) + "_startPercentage"))
299299 let bk = if ((10 > bj))
300300 then 10
301301 else bj
302302 let bl = invoke(au(), "burnDuckling", [toString(aW)], [AttachedPayment(bf, 1)])
303303 if ((bl == bl))
304304 then $Tuple5(bd._1, bd._2, bd._3, (bd._4 + bk), bd._5)
305305 else throw("Strict value is not equal to itself.")
306306 }
307307 else {
308308 let aP = aw(invoke(this, "checkArtefactDetails", [toBase58String(bf)], nil))
309309 if ((aP == aP))
310310 then if ((aP == aR))
311311 then $Tuple5((bd._1 ++ [Burn(bf, 1)]), (bd._2 + 1), bd._3, bd._4, bd._5)
312312 else if ((aP == aY))
313313 then $Tuple5((bd._1 ++ [Burn(bf, 1)]), bd._2, (bd._3 + 1), bd._4, bd._5)
314314 else $Tuple5(bd._1, bd._2, bd._3, bd._4, bd._5)
315315 else throw("Strict value is not equal to itself.")
316316 }
317317 }
318318
319319 let bm = {
320320 let bn = aU
321321 let bo = size(bn)
322322 let bp = $Tuple5(nil, 0, 0, 0, 0)
323323 func bq (br,bs) = if ((bs >= bo))
324324 then br
325325 else bc(br, bn[bs])
326326
327327 func bt (br,bs) = if ((bs >= bo))
328328 then br
329329 else throw("List size exceeds 10")
330330
331331 bt(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bp, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
332332 }
333333 if ((bm._2 != aS))
334334 then throw(((("IID: Please attach " + toString(aS)) + " artefacts of type ") + aR))
335335 else if (if ((aY != ""))
336336 then (bm._3 != aZ)
337337 else false)
338338 then throw(((("IID: Please attach " + toString(aZ)) + " artefacts of type ") + aY))
339339 else if (if ((ba != 0))
340340 then (bm._4 != ba)
341341 else false)
342342 then throw(((("IID: Please attach " + toString(ba)) + " growth, you added ") + toString(bm._4)))
343343 else if (if ((bb != 0))
344344 then (bm._5 != bb)
345345 else false)
346346 then throw(((("IID: Please attach " + toString(bb)) + " gen value, you added ") + toString(bm._5)))
347347 else {
348348 let bu = if ((aL != 0))
349349 then {
350350 let bv = aU[aS]
351351 if ((bv.assetId != aV))
352352 then throw("IID: You miss a payment with the fee!")
353353 else if ((bv.amount != aL))
354354 then throw("IID: You did not attach the correct fee amount!")
355355 else [ScriptTransfer(ao(), aL, bv.assetId)]
356356 }
357357 else nil
358358 if ((bu == bu))
359359 then {
360360 let aP = Issue(aT, ("NFT artefact of Waves Ducks game: " + aT), 1, 0, false, unit, 0)
361361 let u = calculateAssetId(aP)
362362 let bw = if (aX)
363363 then aM(aT, 0, aW)
364364 else $Tuple2(nil, "")
365365 $Tuple2(((([BooleanEntry((("merge_" + K) + "_instant"), aX), StringEntry((("merge_" + K) + "_reward"), aT), BooleanEntry((("merge_" + K) + "_finished"), aX)] ++ bw._1) ++ bm._1) ++ bu), bw._2)
366366 }
367367 else throw("Strict value is not equal to itself.")
368368 }
369369 }
370370
371371
372372 func bx (aR) = getStringValue((("merge_" + aR) + "_baseItem"))
373373
374374
375375 func by (aR) = getIntegerValue((("merge_" + aR) + "_amount"))
376376
377377
378378 func bz (aR) = V((("merge_" + aR) + "_secondaryItem"))
379379
380380
381381 func bA (aR) = X((("merge_" + aR) + "_amountSecondaryItem"))
382382
383383
384384 func bB (aR) = X((("merge_" + aR) + "_genValue"))
385385
386386
387387 func bC (aR) = X((("merge_" + aR) + "_ducklingsPercent"))
388388
389389
390390 func bD (aR) = getStringValue((("merge_" + aR) + "_endItem"))
391391
392392
393393 func bE (aR) = getIntegerValue((("merge_" + aR) + "_price"))
394394
395395
396396 func bF (aR) = getBooleanValue((("merge_" + aR) + "_instant"))
397397
398398
399399 func bG (aR) = {
400400 let bH = getStringValue((("merge_" + aR) + "_asset"))
401401 if ((bH == "WAVES"))
402402 then unit
403403 else fromBase58String(bH)
404404 }
405405
406406
407407 func bI (bJ) = (bJ + "_experience")
408408
409409
410410 func bK (bL,y,aK) = {
411411 let aN = getStringValue((((("address_" + y) + "_initTx_") + bL) + "_type"))
412412 let bM = if ((aN == "ART-SNW_GLBES"))
413413 then 100
414414 else if ((aN == "ART-SKELETON"))
415415 then 200
416416 else throw("FSI: Invalid type")
417417 let bN = if ((aN == "ART-SNW_GLBES"))
418418 then [1, 2, 3, 4, 5, 6]
419419 else if ((aN == "ART-SKELETON"))
420420 then [1, 2, 3, 4, 5, 6, 7]
421421 else throw("FSI: Invalid type")
422422 let bO = size(bN)
423423 let bP = if ((aN == "ART-SNW_GLBES"))
424424 then N
425425 else if ((aN == "ART-SKELETON"))
426426 then O
427427 else throw("FSI: Invalid type")
428428 let bQ = Y(as(), bI(y))
429429 let bR = min([((bQ / bM) + 1), bO])
430430 let bS = getIntegerValue((((("address_" + y) + "_initTx_") + bL) + "_finishBlock"))
431431 if ((bS > height))
432432 then throw("Please wait till the shaking is finished!")
433433 else if ((V((((("address_" + y) + "_initTx_") + bL) + "_status")) != "open"))
434434 then throw("FSI: Only open status can be finished!")
435435 else {
436436 func bT (bU,bV) = if ((bR >= bV))
437437 then {
438438 let bW = Z(size(bP), fromBase58String(bL), bS, bV)
439439 let bX = bP[bW]
440440 ((bU ++ aM(bX, (bV - 1), addressFromStringValue(y))._1) ++ [StringEntry(((((("address_" + y) + "_initTx_") + bL) + "_win") + toString((bV - 1))), bX)])
441441 }
442442 else bU
443443
444444 ({
445445 let bn = bN
446446 let bo = size(bn)
447447 let bp = nil
448448 func bq (br,bs) = if ((bs >= bo))
449449 then br
450450 else bT(br, bn[bs])
451451
452452 func bt (br,bs) = if ((bs >= bo))
453453 then br
454454 else throw("List size exceeds 7")
455455
456456 bt(bq(bq(bq(bq(bq(bq(bq(bp, 0), 1), 2), 3), 4), 5), 6), 7)
457457 } ++ [StringEntry((((("address_" + y) + "_initTx_") + bL) + "_status"), "finish")])
458458 }
459459 }
460460
461461
462462 @Callable(bY)
463463 func startShakeItBaby () = {
464464 let bZ = value(bY.payments[0])
465465 let ca = aJ(bY.payments[1])
466466 let cb = toBase58String(value(bZ.assetId))
467467 if ((bZ.amount != 1))
468468 then throw("IID: Item NFT is not attached")
469469 else {
470470 let cc = aw(invoke(this, "checkArtefactDetails", [cb], nil))
471471 if ((cc == cc))
472472 then if ((indexOf(P, cc) == unit))
473473 then throw("IID: You need to attach a valid artefact")
474474 else {
475475 let y = toString(bY.caller)
476476 let bL = toBase58String(bY.transactionId)
477477 [Burn(value(bZ.assetId), 1), IntegerEntry((((("address_" + y) + "_initTx_") + bL) + "_finishBlock"), (height + 2)), StringEntry((((("address_" + y) + "_initTx_") + bL) + "_status"), "open"), StringEntry((((("address_" + y) + "_initTx_") + bL) + "_assetId"), cb), StringEntry((((("address_" + y) + "_initTx_") + bL) + "_type"), cc)]
478478 }
479479 else throw("Strict value is not equal to itself.")
480480 }
481481 }
482482
483483
484484
485485 @Callable(bY)
486486 func finishShakeItBaby (bL) = bK(bL, toString(bY.caller), bY.payments[0])
487487
488488
489489
490490 @Callable(bY)
491491 func instanMergeItem (cd) = if ((V((("merge_" + cd) + "_endItem")) == ""))
492492 then throw("IID: Only certain items can be merged!")
493493 else {
494494 let ce = $Tuple10(by(cd), bD(cd), bE(cd), bG(cd), bF(cd), bz(cd), bA(cd), bC(cd), bx(cd), bB(cd))
495495 let cf = invoke(as(), "increaseExp", [toString(bY.caller)], nil)
496496 if ((cf == cf))
497497 then aQ(ce._9, ce._1, ce._2, bY.payments, ce._3, ce._4, bY.caller, ce._5, toBase58String(bY.transactionId), ce._6, ce._7, ce._8, ce._10)
498498 else throw("Strict value is not equal to itself.")
499499 }
500500
501501
502502
503503 @Callable(bY)
504504 func directBuyItemMultiple (cg,ch) = {
505505 let ci = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
506506 let cj = av(cg)
507507 let ck = X(E(cg))
508508 let cl = X(H(cg))
509509 let cm = X(I(cg))
510510 if (if ((cl != 0))
511511 then (cl > lastBlock.timestamp)
512512 else false)
513513 then throw("IDBI: The sale did not start yet!")
514514 else if (if ((cm != 0))
515515 then (lastBlock.timestamp > cm)
516516 else false)
517517 then throw("IDBI: The sale has already finished!")
518518 else if (!(R(C(cg))))
519519 then throw(("IDBI: Item not for sale anymore" + C(cg)))
520520 else {
521521 let cn = X(B(cg))
522522 let co = X(F(cg))
523523 if ((ch > size(ci)))
524524 then throw(("IDBI: Max amount to issue is " + toString(size(ci))))
525525 else {
526526 let cp = if ((ck == 0))
527527 then (cj * ch)
528528 else throw("IDBI: Items that grow in price can not be bought in batch!")
529529 if (if ((cn != 0))
530530 then (co >= cn)
531531 else false)
532532 then throw("IDBI: Max editions sold!")
533533 else {
534534 let bf = if ((V(D(cg)) == ""))
535535 then ai()
536536 else if ((V(D(cg)) == "WAVES"))
537537 then unit
538538 else fromBase58String(V(D(cg)))
539539 let ca = aJ(bY.payments[0])
540540 let cq = value(bY.payments[1])
541541 let cr = cq.amount
542542 if ((cq.assetId != bf))
543543 then throw("IDBI: You can attach only tokens with the correct payment ")
544544 else if ((cr != cp))
545545 then throw(("IDBI: Please attach the exact asset amount" + toString(cp)))
546546 else {
547547 let cs = toBase58String(bY.transactionId)
548548 let y = bY.originCaller
549549 func bT (bU,bV) = if ((ch > bV))
550550 then (bU ++ aM(cg, bV, y)._1)
551551 else bU
552552
553553 let ct = {
554554 let bn = ci
555555 let bo = size(bn)
556556 let bp = nil
557557 func bq (br,bs) = if ((bs >= bo))
558558 then br
559559 else bT(br, bn[bs])
560560
561561 func bt (br,bs) = if ((bs >= bo))
562562 then br
563563 else throw("List size exceeds 30")
564564
565565 bt(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bq(bp, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30)
566566 }
567567 (([IntegerEntry(G(cg), cj), IntegerEntry(F(cg), (co + ch)), ScriptTransfer(ao(), cr, bf)] ++ ca) ++ ct)
568568 }
569569 }
570570 }
571571 }
572572 }
573573
574574
575575
576576 @Callable(bY)
577577 func directBuyItem (cg) = {
578578 let cj = av(cg)
579579 let ck = X(E(cg))
580580 let cl = X(H(cg))
581581 let cm = X(I(cg))
582582 if (if ((cl != 0))
583583 then (cl > lastBlock.timestamp)
584584 else false)
585585 then throw("IDBI: The sale did not start yet!")
586586 else if (if ((cm != 0))
587587 then (lastBlock.timestamp > cm)
588588 else false)
589589 then throw("IDBI: The sale has already finished!")
590590 else if (!(R(C(cg))))
591591 then throw(("IDBI: Item not for sale anymore" + C(cg)))
592592 else {
593593 let cn = X(B(cg))
594594 let co = X(F(cg))
595595 let cp = if ((ck == 0))
596596 then cj
597597 else (cj + ((cj / 100) * (co * ck)))
598598 if (if ((cn != 0))
599599 then (co >= cn)
600600 else false)
601601 then throw("IDBI: Max editions sold!")
602602 else {
603603 let bf = if ((V(D(cg)) == ""))
604604 then ai()
605605 else if ((V(D(cg)) == "WAVES"))
606606 then unit
607607 else fromBase58String(V(D(cg)))
608608 let ca = aJ(bY.payments[0])
609609 let cq = value(bY.payments[1])
610610 let cr = cq.amount
611611 if ((cq.assetId != bf))
612612 then throw("IDBI: You can attach only tokens with the correct payment ")
613613 else if ((cr != cp))
614614 then throw(("IDBI: Please attach the exact asset amount" + toString(cp)))
615615 else {
616616 let cs = toBase58String(bY.transactionId)
617617 let y = bY.originCaller
618618 let aP = Issue(cg, ("NFT artefact of Waves Ducks game: " + cg), 1, 0, false, unit, 0)
619619 let u = calculateAssetId(aP)
620620 $Tuple2(([aP, StringEntry((("artefact_" + toBase58String(u)) + "_type"), cg), IntegerEntry(G(cg), cp), IntegerEntry(F(cg), (co + 1)), ScriptTransfer(y, 1, u), ScriptTransfer(ao(), cr, bf)] ++ ca), toBase58String(u))
621621 }
622622 }
623623 }
624624 }
625625
626626
627627
628628 @Callable(bY)
629629 func manipulateBoost (cu,w) = {
630630 let cv = aj()
631631 let cw = split(cv, ";")
632632 let cx = toString(bY.caller)
633633 if ((indexOf(cw, cx) == unit))
634634 then throw("IMB: This smart contract can't manipulate the boost!")
635635 else {
636636 let S = v(w)
637637 let cy = X(S)
638638 let cz = (cy + cu)
639639 if ((0 > cz))
640640 then throw("IMB: Something went wrong with boost, please contact the admins!")
641641 else [IntegerEntry(S, cz)]
642642 }
643643 }
644644
645645
646646
647647 @Callable(bY)
648648 func manipulateBoostAccount (cu,y) = {
649649 let cv = aj()
650650 let cw = split(cv, ";")
651651 let cx = toString(bY.caller)
652652 if ((indexOf(cw, cx) == unit))
653653 then throw("IMBA: This smart contract can't manipulate the boost!")
654654 else {
655655 let S = x(y)
656656 let cy = X(S)
657657 let cz = (cy + cu)
658658 if ((0 > cz))
659659 then throw("IMBA: Something went wrong with boost, please contact the admins!")
660660 else [IntegerEntry(S, cz)]
661661 }
662662 }
663663
664664
665665
666666 @Callable(bY)
667667 func checkArtefactDetails (bf) = {
668668 let bH = value(assetInfo(fromBase58String(bf)))
669669 let aC = value(bH.name)
670670 if (if (if (containsElement(M, aC))
671671 then true
672672 else isDefined(av(aC)))
673673 then (bH.issuer == this)
674674 else false)
675675 then $Tuple2(nil, aC)
676676 else throw("Invalid artefact")
677677 }
678678
679679
680680
681681 @Callable(bY)
682682 func configureOracle (cA) = if ((bY.caller != this))
683683 then throw("IC: admin only")
684684 else [StringEntry(a(), cA)]
685685
686686
687687
688688 @Callable(bY)
689689 func calculateFarmingPowerBoost (w,y) = {
690690 let cB = X(v(w))
691691 let cC = X(x(y))
692692 let cD = (cB + cC)
693693 $Tuple2([IntegerEntry((w + "_last_boost"), cD)], cD)
694694 }
695695
696696
697697
698698 @Callable(bY)
699699 func itemDuplicator () = if ((size(bY.payments) != 4))
700700 then throw("IID: Four payments are needed!")
701701 else {
702702 let cE = value(bY.payments[0])
703703 let bZ = value(bY.payments[1])
704704 let cF = value(bY.payments[2])
705705 let ca = aJ(bY.payments[3])
706706 let cG = toBase58String(value(cE.assetId))
707707 if ((cE.amount != 1))
708708 then throw("IID: Duplicator NFT is not attached")
709709 else {
710710 let cb = toBase58String(value(bZ.assetId))
711711 if ((bZ.amount != 1))
712712 then throw("IID: Item NFT is not attached")
713713 else {
714714 let cH = value(cF.assetId)
715715 if ((cH != ai()))
716716 then throw("IID: Please attach eggs!")
717717 else if ((ar() > cF.amount))
718718 then throw(("IID: to duplicate an items you need the following amount of egglets: " + toString(ar())))
719719 else {
720720 let cI = aw(invoke(this, "checkArtefactDetails", [cG], nil))
721721 if ((cI == cI))
722722 then if ((cI != "ART-ITEM_DUPLI"))
723723 then throw("IID: You need to attach a ART-ITEM_DUPLI artefact")
724724 else {
725725 let r = aw(invoke(this, "checkArtefactDetails", [cb], nil))
726726 if ((r == r))
727727 then {
728728 let aP = Issue(r, ("NFT artefact of Waves Ducks game: " + r), 1, 0, false, unit, 0)
729729 let u = calculateAssetId(aP)
730730 $Tuple2(([aP, StringEntry((("artefact_" + toBase58String(u)) + "_type"), r), Burn(value(cE.assetId), 1), ScriptTransfer(bY.originCaller, 1, bZ.assetId), ScriptTransfer(bY.originCaller, 1, u), ScriptTransfer(ao(), cF.amount, cF.assetId)] ++ ca), toBase58String(u))
731731 }
732732 else throw("Strict value is not equal to itself.")
733733 }
734734 else throw("Strict value is not equal to itself.")
735735 }
736736 }
737737 }
738738 }
739739
740740
741741
742742 @Callable(bY)
743743 func copyDuck () = {
744744 let cq = value(bY.payments[0])
745745 let cJ = value(bY.payments[1])
746746 let ca = aJ(bY.payments[2])
747747 let cK = toBase58String(value(cq.assetId))
748748 let cL = az(invoke(ah(), "validateAndGetChildren", [cK], nil))
749749 if ((cL == cL))
750750 then if (if ((cq.amount != 1))
751751 then true
752752 else (cJ.amount != 1))
753753 then throw("NFT is not attached")
754754 else {
755755 let aP = aw(invoke(this, "checkArtefactDetails", [toBase58String(value(cJ.assetId))], nil))
756756 if ((aP == aP))
757757 then if ((aP != "ART-MIRROR"))
758758 then throw("You need to attach a ART-MIRROR artefact")
759759 else {
760760 let cM = value(assetInfo(value(cq.assetId)))
761761 let cN = split(cM.name, "")
762762 if (if ((cN[14] == "G"))
763763 then true
764764 else (cN[14] == "J"))
765765 then throw("You can't mirror this duck")
766766 else {
767767 let cO = cM.name
768768 let cP = invoke(ah(), "createDuckSpecialGenes", [bY.caller.bytes, cO, cL], nil)
769769 if ((cP == cP))
770770 then ([ScriptTransfer(bY.caller, 1, cq.assetId), Burn(value(cJ.assetId), 1)] ++ ca)
771771 else throw("Strict value is not equal to itself.")
772772 }
773773 }
774774 else throw("Strict value is not equal to itself.")
775775 }
776776 else throw("Strict value is not equal to itself.")
777777 }
778778
779779
780780
781781 @Callable(bY)
782782 func addArteFactToDuck () = {
783783 let cq = value(bY.payments[0])
784784 let cJ = value(bY.payments[1])
785785 let ca = aJ(bY.payments[2])
786786 let cK = toBase58String(value(cq.assetId))
787787 if (if ((cq.amount != 1))
788788 then true
789789 else (cJ.amount != 1))
790790 then throw("NFT is not attached")
791791 else {
792792 let cL = az(invoke(ah(), "validateAndGetChildren", [cK], nil))
793793 if ((cL == cL))
794794 then if ((cL == 0))
795795 then throw("You can only pick a sterile NFT-duck")
796796 else {
797797 let aP = aw(invoke(this, "checkArtefactDetails", [toBase58String(value(cJ.assetId))], nil))
798798 if ((aP == aP))
799799 then if (if ((aP != "ART-XHAT"))
800800 then (aP != "ART-POMP")
801801 else false)
802802 then throw("You need to attach a ART-XHAT or ART-POMP artefact")
803803 else {
804804 let cM = value(assetInfo(value(cq.assetId)))
805805 let cN = split(cM.name, "")
806806 if (if ((cN[14] == "G"))
807807 then true
808808 else (cN[14] == "J"))
809809 then throw("You can't mirror this duck")
810810 else if (if ((cN[5] == "S"))
811811 then true
812812 else (cN[5] == "T"))
813813 then throw("you already attached a artefact")
814814 else {
815815 let aE = if ((aP == "ART-XHAT"))
816816 then "T"
817817 else if ((aP == "ART-POMP"))
818818 then "S"
819819 else throw("No char defined")
820820 let cQ = cM.name
821821 let cR = aw(invoke(ah(), "getGenFromName", [cQ], nil))
822822 if ((cR == cR))
823823 then {
824824 let cO = aB(cQ, 6, aE)
825825 let cP = invoke(ah(), "createDuckSpecialGenes", [bY.caller.bytes, cO, cL], nil)
826826 if ((cP == cP))
827827 then {
828828 let cS = invoke(ah(), "reduceRarity", [cK, cR], nil)
829829 if ((cS == cS))
830830 then ([Burn(value(cq.assetId), 1), Burn(value(cJ.assetId), 1)] ++ ca)
831831 else throw("Strict value is not equal to itself.")
832832 }
833833 else throw("Strict value is not equal to itself.")
834834 }
835835 else throw("Strict value is not equal to itself.")
836836 }
837837 }
838838 else throw("Strict value is not equal to itself.")
839839 }
840840 else throw("Strict value is not equal to itself.")
841841 }
842842 }
843843
844844
845845
846846 @Callable(bY)
847847 func preInit () = [IntegerEntry("static_ART-LAKE_farmingSlots", 200), IntegerEntry("static_ART-LAKE_farmingBoost", 2), IntegerEntry("static_ART-HOUSE_farmingSlots", 4), IntegerEntry("static_ART-HOUSE_farmingBoost", 30), IntegerEntry("static_ART-BIGHOUSE_farmingSlots", 10), IntegerEntry("static_ART-BIGHOUSE_farmingBoost", 15)]
848848
849849
850850
851851 @Callable(bY)
852852 func issueArtefact (aN,cT) = if (if (if (if (if (if ((bY.caller != this))
853853 then (bY.caller != ak())
854854 else false)
855855 then (bY.caller != al())
856856 else false)
857857 then (bY.caller != am())
858858 else false)
859859 then (bY.caller != ap())
860860 else false)
861861 then (bY.callerPublicKey != aq())
862862 else false)
863863 then throw("IIA: admin only")
864864 else if (if (if (if ((bY.caller == ap()))
865865 then true
866866 else (bY.callerPublicKey == aq()))
867867 then !(contains(aN, "ART-FIRE_"))
868868 else false)
869869 then !(R((aN + "_issue")))
870870 else false)
871871 then throw("FIRE AND WHITELIST ITEM ONLY!")
872872 else {
873873 let y = Address(fromBase58String(cT))
874874 aM(aN, 0, y)
875875 }
876876
877877
878878
879879 @Callable(bY)
880880 func issueArtefactIndex (aN,cT,aO) = if (if (if (if (if (if (if ((bY.caller != this))
881881 then (bY.caller != ak())
882882 else false)
883883 then (bY.caller != al())
884884 else false)
885885 then (bY.caller != am())
886886 else false)
887887 then (bY.caller != an())
888888 else false)
889889 then (bY.caller != ap())
890890 else false)
891891 then (bY.callerPublicKey != aq())
892892 else false)
893893 then throw("IIAI: admin only")
894894 else if (if (if (if ((bY.caller == ap()))
895895 then true
896896 else (bY.callerPublicKey == aq()))
897897 then !(contains(aN, "ART-FIRE_"))
898898 else false)
899899 then !(R((aN + "_issue")))
900900 else false)
901901 then throw("FIRE AND WHITELIST ITEM ONLY!")
902902 else {
903903 let y = Address(fromBase58String(cT))
904904 let cU = aM(aN, aO, y)
905905 cU
906906 }
907907
908908
909909
910910 @Callable(bY)
911911 func setLock (cV) = if ((bY.caller == this))
912912 then [IntegerEntry("global_locked", cV)]
913913 else throw("admin only")
914914
915915
916916
917917 @Callable(bY)
918918 func addItemToStore (cp,A,cW,cX,cY,cZ,cl,cm) = if ((bY.caller != addressFromStringValue(af(ag(), g()))))
919919 then throw("IAITS: Only for trusted users!")
920920 else [IntegerEntry(z(A), cp), IntegerEntry(B(A), cW), BooleanEntry(C(A), cX), StringEntry(D(A), cY), IntegerEntry(E(A), cZ), IntegerEntry(H(A), cl), IntegerEntry(I(A), cm)]
921921
922922
923923 @Verifier(da)
924924 func db () = if (aI())
925925 then sigVerify(da.bodyBytes, da.proofs[0], da.senderPublicKey)
926926 else {
927927 let dc = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
928928 let dd = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
929929 let de = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
930930 let df = if (sigVerify(da.bodyBytes, da.proofs[0], dc))
931931 then 1
932932 else if (sigVerify(da.bodyBytes, da.proofs[1], dc))
933933 then 1
934934 else if (sigVerify(da.bodyBytes, da.proofs[2], dc))
935935 then 1
936936 else 0
937937 let dg = if (sigVerify(da.bodyBytes, da.proofs[0], dd))
938938 then 1
939939 else if (sigVerify(da.bodyBytes, da.proofs[1], dd))
940940 then 1
941941 else if (sigVerify(da.bodyBytes, da.proofs[2], dd))
942942 then 1
943943 else 0
944944 let dh = if (sigVerify(da.bodyBytes, da.proofs[0], de))
945945 then 1
946946 else if (sigVerify(da.bodyBytes, da.proofs[1], de))
947947 then 1
948948 else if (sigVerify(da.bodyBytes, da.proofs[2], de))
949949 then 1
950950 else 0
951951 let di = ((df + dg) + dh)
952952 let T = da
953953 (di >= 2)
954954 }
955955

github/deemru/w8io/c3f4982 
69.33 ms