tx · ExNkxWVaSZSQ2JM1yerLrYL2yBkzLXpmVbwtjpf2Cj36

3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm:  -0.05500000 Waves

2024.11.20 00:58 [3378896] smart account 3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm > SELF 0.00000000 Waves

{ "type": 13, "id": "ExNkxWVaSZSQ2JM1yerLrYL2yBkzLXpmVbwtjpf2Cj36", "fee": 5500000, "feeAssetId": null, "timestamp": 1732053480079, "version": 2, "chainId": 84, "sender": "3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm", "senderPublicKey": "EVooykMNV691Venwp1dHUTBd7KWequzUcda57Wd3LQEX", "proofs": [ "3xjUgWmW5dmn2d96je1APpiSNmCSiXF1V7arkxq7ZQA9psDy5cKBhhzZchjXGkvXFixdZqzuHBzQtXPZkkaz5KZw" ], "script": "base64:BgKqAQgCEgMKAQgSBAoCCAESAwoBBBIAEgMKAQgSBAoCCAgSBAoCCAgSAwoBCBIAEgQKAggIEgQKAggIEgQKAgEIEgQKAgEIEgQKAggIEgASAwoBARIECgIICBIECgIICBIFCgMICAgSBAoCCAgSBwoFAQEBAQESAwoBARIFCgMBAQgSAwoBCBIDCgEIEgASBAoCCAESBAoCCAESAwoBCBIAEgASAwoBCBIDCgEIvgEAFktTX1NFUEFSQVRFX1BVQkxJQ19LRVkHABNLU19BTExPV19ST0JPX0RVQ0tTBwAKREFZX01JTExJUwCAuJkpABRPTERfU1RBS0lOR19ERUFETElORQCA87jCsTIABWNoYWluCQDJAQIJAMoBAggFBHRoaXMFYnl0ZXMAAQABAANwdWIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDADBRZLU19TRVBBUkFURV9QVUJMSUNfS0VZASCrF1ePFWfjWVRBsNZy62abxKPTZl7VmYZQ35g3H7IJCAEgT1PiGj9UqNadUk4THUYnVb2zU/Mse8lUVLD/Q8G0FCgDCQAAAgEBVAUHJG1hdGNoMAEgT1PiGj9UqNadUk4THUYnVb2zU/Mse8lUVLD/Q8G0FCgJAAIBAg1Vbmtub3duIGNoYWluAAt1c2R0QXNzZXRJZAQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAEghNp6sggDP07Ru8qO7ouTvMmC3Qtd+geWqNQj+agP/7kDCQAAAgEBVAUHJG1hdGNoMAEgVbHYn3KHgu/l41uNrAWrZd6aQ6EvFrsF8xq3h6XxxRgJAAIBAg1Vbmtub3duIGNoYWluABVkZWZhdWx0UmVzdEFkZHJlc3NTdHIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDACIzNQUUN1dkZidmg0TGtQVW5yblUxejNqbmJBMXA5bTNXTmh2AwkAAAIBAVQFByRtYXRjaDACIzNNdW1rR0d6dENLQVhwV0RxeGtkZG9mcVhTVWJxUWt2U0p5CQACAQINVW5rbm93biBjaGFpbgAQYWNyZXMyQWRkcmVzc1N0cgQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAIjM1A0VUgzVDluWHBNTnBVbVNtUWpQbUV6M0c4NXQzem42ZUEDCQAAAgEBVAUHJG1hdGNoMAIjM05CUHgxRmNpdTNKUU5FR1oyMWpTblRkdXRMTkdHQlVTWGgJAAIBAg1Vbmtub3duIGNoYWluAA5hcmJpdHJhZ2VEZWxheQQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAUKREFZX01JTExJUwMJAAACAQFUBQckbWF0Y2gwAODUAwkAAgECDVVua25vd24gY2hhaW4AA1NFUAICX18ABU1VTFQ2AMCEPQAFTVVMVDgAgMLXLwAFU1NJWkUAGQAFTVNJWkUAZAAFTFNJWkUA4QEABlhMU0laRQCQAwAHWFhMU0laRQDxBAAFSVRFUjYJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUFA25pbAEPZ2V0U3RyaW5nT3JGYWlsAgdhZGRyZXNzA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFB2FkZHJlc3MFA2tleQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQdhZGRyZXNzCQDMCAICAS4JAMwIAgUDa2V5CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgAAEUlkeENmZ0Vjb25vbXlEYXBwAAIAFElkeENmZ0dvdmVybmFuY2VEYXBwAAMADUlkeENmZ1dsZ0RhcHAABAAUSWR4Q2ZnVG91cm5hbWVudERhcHAABwAPSWR4Q2ZnQWNyZXNEYXBwAAgBCmtleVJlc3RDZmcAAg4lc19fcmVzdENvbmZpZwEOa2V5UmVzdEFkZHJlc3MAAgwlc19fcmVzdEFkZHIBEXJlYWRSZXN0Q2ZnT3JGYWlsAQRyZXN0CQC8CQIJAQ9nZXRTdHJpbmdPckZhaWwCBQRyZXN0CQEKa2V5UmVzdENmZwAFA1NFUAEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgdyZXN0Q2ZnA2lkeAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUHcmVzdENmZwUDaWR4CQCsAgICKlJlc3QgY2ZnIGRvZXNuJ3QgY29udGFpbiBhZGRyZXNzIGF0IGluZGV4IAkApAMBBQNpZHgADHJlc3RDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEOa2V5UmVzdEFkZHJlc3MABRVkZWZhdWx0UmVzdEFkZHJlc3NTdHIAB3Jlc3RDZmcJARFyZWFkUmVzdENmZ09yRmFpbAEFDHJlc3RDb250cmFjdAAPZWNvbm9teUNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUHcmVzdENmZwURSWR4Q2ZnRWNvbm9teURhcHAAC2dvdkNvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUHcmVzdENmZwUUSWR4Q2ZnR292ZXJuYW5jZURhcHAAC3dsZ0NvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUHcmVzdENmZwUNSWR4Q2ZnV2xnRGFwcAASdG91cm5hbWVudENvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUHcmVzdENmZwUUSWR4Q2ZnVG91cm5hbWVudERhcHAADWFjcmVzQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBQ9JZHhDZmdBY3Jlc0RhcHAACnJlY0xhbmROdW0AAAALcmVjTGFuZFNpemUAAQALcmVjVGVycmFpbnMAAgAMcmVjQ29udGluZW50AAMAD2FjcmVzQXNzZXRJZEtleQIMYWNyZXNBc3NldElkAAxhY3Jlc0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCBQ1hY3Jlc0NvbnRyYWN0BQ9hY3Jlc0Fzc2V0SWRLZXkCF0FDUkVTIGlzIG5vdCBpc3N1ZWQgeWV0AAtyYW5kb21EZWxheQACAQlrZXlDb21taXQBB2FkZHJlc3MJAKwCAgIPZmluaXNoQmxvY2tGb3JfBQdhZGRyZXNzARFrZXlSZXNQcm9wb3J0aW9ucwACE3Jlc1R5cGVzUHJvcG9ydGlvbnMBFmtleVJlc1R5cGVzQnlDb250aW5lbnQBCWNvbnRpbmVudAkArAICAhRyZXNUeXBlc0J5Q29udGluZW50XwUJY29udGluZW50ARVrZXlTdGFrZWRMYW5kc0J5T3duZXIBCW93bmVyQWRkcgkArAICAhNzdGFrZWRMYW5kc0J5T3duZXJfBQlvd25lckFkZHIBFmtleVN0YWtlZFBpZWNlc0J5T3duZXIBCW93bmVyQWRkcgkArAICAhRzdGFrZWRQaWVjZXNCeU93bmVyXwUJb3duZXJBZGRyAQVhc0ludAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgNJbnQEAW4FByRtYXRjaDAFAW4JAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBCWFzQW55TGlzdAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAglMaXN0W0FueV0EAWwFByRtYXRjaDAFAWwJAAIBAhtmYWlsIHRvIGNhc3QgaW50byBMaXN0W0FueV0BD251bVBpZWNlc0J5U2l6ZQEIbGFuZFNpemUEByRtYXRjaDAFCGxhbmRTaXplAwkAAAICAVMFByRtYXRjaDAFBVNTSVpFAwkAAAICAU0FByRtYXRjaDAFBU1TSVpFAwkAAAICAUwFByRtYXRjaDAFBUxTSVpFAwkAAAICAlhMBQckbWF0Y2gwBQZYTFNJWkUDCQAAAgIDWFhMBQckbWF0Y2gwBQdYWExTSVpFCQACAQIRVW5rbm93biBsYW5kIHNpemUBCmtleUJsb2NrZWQAAhBjb250cmFjdHNCbG9ja2VkARFrZXlMYXN0VHhJZEJ5VXNlcgEEYWRkcgkArAICAg9sYXN0VHhJZEJ5VXNlcl8FBGFkZHIBCmZpeGVkUG9pbnQCA3ZhbAhkZWNpbWFscwQGdGVuUG93CQBsBgAKAAAFCGRlY2ltYWxzAAAAAAUERE9XTgQHbG93UGFydAkApAMBCQBqAgUDdmFsBQZ0ZW5Qb3cEBnplcm9lcwkAsAICCQCkAwEFBnRlblBvdwkAZAIAAQkAsQIBBQdsb3dQYXJ0CQCsAgIJAKwCAgkArAICCQCkAwEJAGkCBQN2YWwFBnRlblBvdwIBLgUGemVyb2VzBQdsb3dQYXJ0AQ9nZXRSYW5kb21OdW1iZXIDCG1heFZhbHVlBHNhbHQHZW50cm9weQMJAGcCAAAFCG1heFZhbHVlCQACAQIWbWF4VmFsdWUgc2hvdWxkIGJlID4gMAQKcmFuZG9tSGFzaAkA1BYBCQDLAQIFBHNhbHQFB2VudHJvcHkJAGoCCQCxCQEFCnJhbmRvbUhhc2gFCG1heFZhbHVlAQlmaW5hbFRpbWUACQCXAwEJAMwIAggFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgUUT0xEX1NUQUtJTkdfREVBRExJTkUFA25pbAAKTEFORFBSRUZJWAIETEFORAAKRFVDS1BSRUZJWAIERFVDSwALUk9CT19QUkVGSVgCBFJPQk8ACkFSVFBSRVNBTEUCB1BSRVNBTEUABk5VTVJFUwAGABhNQVhfTEFORFNfU1RBS0VEX0JZX1VTRVIAGQAPREFJTFlSRVNCWVBJRUNFAID40gEADFdITVVMVElQTElFUgCAyK+gJQAPREVGQVVMVExPQ0FUSU9OAg9BZnJpY2FfRl9BZnJpY2EAEFJFU09VUkNFUFJJQ0VNSU4A1bUCABVNSU5fVVNEVF9GRUVfREVMSVZFUlkA0IYDABVVU0RUMkFDUkVTX01VTFRJUExJRVIACgAXQUxMT1dFRF9GUkVFX0RFTElWRVJJRVMAAAAaQUNSRVNfRk9SX0RFTElWRVJZX0FUVEVNUFQAgISvXwAJcHJvZFR5cGVzCQDMCAICEEZpcnN0IEFpZCBLaXQgTDEJAMwIAgIQRmlyc3QgQWlkIEtpdCBMMgkAzAgCAhBGaXJzdCBBaWQgS2l0IEwzCQDMCAICC0JhY2twYWNrIEwxCQDMCAICC0JhY2twYWNrIEwyCQDMCAICC0JhY2twYWNrIEwzCQDMCAICDkZvb2QgUmF0aW9uIEwxCQDMCAICDkZvb2QgUmF0aW9uIEwyCQDMCAICDkZvb2QgUmF0aW9uIEwzCQDMCAICC0pldCBQYWNrIEwxCQDMCAICC0pldCBQYWNrIEwyCQDMCAICC0pldCBQYWNrIEwzCQDMCAICCVNoaWVsZCBMMQkAzAgCAglTaGllbGQgTDIJAMwIAgIJU2hpZWxkIEwzCQDMCAICB01pbmUgTDEJAMwIAgIHTWluZSBMMgkAzAgCAgdNaW5lIEwzCQDMCAICB1RyYXAgTDEJAMwIAgIHVHJhcCBMMgkAzAgCAgdUcmFwIEwzCQDMCAICC0Jvb20tRG9nIEwxCQDMCAICC0Jvb20tRG9nIEwyCQDMCAICC0Jvb20tRG9nIEwzBQNuaWwAEHByb2R1Y3Rpb25NYXRyaXgJAMwIAgIlOF84XzhfMTdfMTdfNDJfMTJfMF8zMF8wLDAsMCwwLDAsMCwwXwkAzAgCAiU4XzhfOF8xN18xN180Ml8yNF8wXzYwXzAsMCw1LDIsMCwwLDBfCQDMCAICJzhfOF84XzE3XzE3XzQyXzM2XzBfMTIwXzAsMCwxMCw0LDAsMCwwXwkAzAgCAik4XzE5XzE5XzhfMjdfMTlfMjZfMV8yMF8wLDAsMCwwLDAsMCwwXzAwMQkAzAgCAik4XzE5XzE5XzhfMjdfMTlfNTJfMV80MF8wLDAsMCwwLDAsMCwwXzAwMQkAzAgCAik4XzE5XzE5XzhfMjdfMTlfNzhfMV84MF8wLDAsMCwwLDAsMCwwXzAwMQkAzAgCAiU4XzhfOF84XzhfNjBfMTNfMl8yXzAsMCwwLDAsMCwwLDBfMDExCQDMCAICJThfOF84XzhfOF82MF8yNl8yXzRfMCwwLDAsMCwwLDAsMF8wMTEJAMwIAgIlOF84XzhfOF84XzYwXzM5XzJfOF8wLDAsMCwwLDAsMCwwXzAxMQkAzAgCAikzMF8zMF8zXzE3XzE3XzNfMzBfM18zMF8wLDAsMCwwLDAsMCwwXzExMQkAzAgCAikzMF8zMF8zXzE3XzE3XzNfNjBfM181MF8wLDAsMCwwLDAsMCwwXzExMQkAzAgCAikzMF8zMF8zXzE3XzE3XzNfOTBfM183MF8wLDAsMCwwLDAsMCwwXzExMQkAzAgCAisxOF8xOF8xMF8xOF8xOF8xOF8xMV80XzEwXzAsMCwwLDAsMCwwLDBfMjAxCQDMCAICKzE4XzE4XzEwXzE4XzE4XzE4XzIyXzRfMjBfMCwwLDAsMCwwLDAsMF8yMDEJAMwIAgIrMThfMThfMTBfMThfMThfMThfMzNfNF8zMF8wLDAsMCwwLDAsMCwwXzIwMQkAzAgCAio0XzEzXzIyXzRfMzVfMjJfMjNfMF81MCwxLDBfMCwwLDAsMCwwLDAsMF8JAMwIAgIqNF8xM18yMl80XzM1XzIyXzQ2XzBfNTAsMSwxXzAsMiw1LDAsMCwwLDBfCQDMCAICKzRfMTNfMjJfNF8zNV8yMl82OV8wXzUwLDIsMV8wLDUsMTAsMCwwLDAsMF8JAMwIAgIqNV8yNV80MF81XzEwXzE1XzIwXzFfMzAsMSwxXzAsMCwwLDAsMCwwLDBfCQDMCAICKjVfMjVfNDBfNV8xMF8xNV80MF8xXzMwLDEsMl8yLDEsMywwLDAsMCwwXwkAzAgCAio1XzI1XzQwXzVfMTBfMTVfNjBfMV8zMCwxLDNfNSwyLDgsMCwwLDAsMF8JAMwIAgInMjNfMjNfNV8yMF8yM182XzM1XzJfMTAwXzAsMCwwLDAsMCwwLDBfCQDMCAICJzIzXzIzXzVfMjBfMjNfNl83MF8yXzE1MF8wLDAsMCwwLDAsMCwwXwkAzAgCAigyM18yM181XzIwXzIzXzZfMTA1XzJfMjAwXzAsMCwwLDAsMCwwLDBfBQNuaWwACXJJZHhDb2VmZgAGABBySWR4UmVxdWlyZW1lbnRzAAkACXJJZHhTbG90cwAKAA5QUk9EVUNUUEtHU0laRQAKAAt3aElkeExldmVscwAAAAh3aElkeFJlcwABAAh3aElkeE1hdAACAAl3aElkeFByb2QAAwAJd2hJZHhMT0ZUAAQACXZvbExvY2tlZAAAAAt2b2xPY2N1cGllZAABAAd2b2xGcmVlAAIACHZvbFRvdGFsAAMACmJwSWR4TGV2ZWwAAAAIYnBJZHhSZXMAAQAIYnBJZHhNYXQAAgAJYnBJZHhQcm9kAAMACmxvY0lkeFR5cGUAAQAIbG9jSWR4SWQAAgEVa2V5TGFuZEFzc2V0SWRUb093bmVyAQdhc3NldElkCQCsAgICA25vXwUHYXNzZXRJZAEaa2V5TGFuZEFzc2V0SWRUb0N1c3RvbU5hbWUBB2Fzc2V0SWQJAKwCAgIFbGNuYV8FB2Fzc2V0SWQBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBB2Fzc2V0SWQJAKwCAgIDc3RfBQdhc3NldElkASBrZXlMYW5kQXJ0U3RhdHVzQnlUeXBlQW5kQXNzZXRJZAIEdHlwZQdhc3NldElkCQC5CQIJAMwIAgIDbGFzCQDMCAIFBHR5cGUJAMwIAgUHYXNzZXRJZAUDbmlsAgFfASJrZXlTdGFrZWRUaW1lQnlUeXBlQXNzZXRJZEFuZE93bmVyAwduZnRUeXBlB2Fzc2V0SWQJb3duZXJBZGRyCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIGc3R0YW9fBQduZnRUeXBlAgFfBQdhc3NldElkAgFfBQlvd25lckFkZHIBEmtleVdhcmVob3VzZUJ5TGFuZAELbGFuZEFzc2V0SWQJAKwCAgIDd2hfBQtsYW5kQXNzZXRJZAEWa2V5SW5mcmFMZXZlbEJ5QXNzZXRJZAEHYXNzZXRJZAkArAICAgtpbmZyYUxldmVsXwUHYXNzZXRJZAEaa2V5RHVja0Fzc2V0SWRUb0N1c3RvbU5hbWUBB2Fzc2V0SWQJAKwCAgIYZHVja0N1c3RvbU5hbWVCeUFzc2V0SWRfBQdhc3NldElkARZrZXlBZGRyZXNzVG9DdXN0b21OYW1lAQRhZGRyCQCsAgICGGFjY291bnRDdXN0b21OYW1lQnlBZGRyXwUEYWRkcgEPa2V5QWRkcmVzc1JlZkJ5AQRhZGRyCQCsAgICCWFjY1JlZkJ5XwUEYWRkcgEca2V5T25ib2FyZEFydEFjdGl2YXRlZE9uRHVjawELZHVja0Fzc2V0SWQJAKwCAgIab25ib2FyZEFydEFjdGl2YXRlZE9uRHVja18FC2R1Y2tBc3NldElkARxrZXlPbmJvYXJkQXJ0RHVja0FjdGl2YXRlZEJ5AQRhZGRyCQCsAgICGm9uYm9hcmRBcnRBY3RpdmF0ZWREdWNrQnlfBQRhZGRyARNrZXlBZGRyZXNzUmVmZXJyYWxzAQRhZGRyCQCsAgICDWFjY1JlZmVycmFsc18FBGFkZHIBEGtleUR1Y2tJZFRvT3duZXIBB2Fzc2V0SWQJAKwCAgIKZHVja093bmVyXwUHYXNzZXRJZAEUa2V5U3Rha2VkRHVja0J5T3duZXIBCW93bmVyQWRkcgkArAICAhJzdGFrZWREdWNrQnlPd25lcl8FCW93bmVyQWRkcgERa2V5QmFja3BhY2tCeUR1Y2sBC2R1Y2tBc3NldElkCQCsAgICCWJhY2tQYWNrXwULZHVja0Fzc2V0SWQBD2tleUR1Y2tMb2NhdGlvbgELZHVja0Fzc2V0SWQJAKwCAgINZHVja0xvY2F0aW9uXwULZHVja0Fzc2V0SWQBFWtleVVzZXJHd2xSZWxlYXNlVGltZQEIdXNlckFkZHIJAKwCAgIaJXMlc19fdXNlckd3bFJlbGVhc2VUaW1lX18FCHVzZXJBZGRyAA9kZWxpdmVyeUZ1bmRLZXkCDGRlbGl2ZXJ5RnVuZAANbGFzdFRvdXJJZEtleQIOJXNfX2xhc3RUb3VySWQABlNDQUxFOACAwtcvAAx4cExldmVsU2NhbGUAgBkAD3hwTGV2ZWxSZWNpcFBvdwCgHwASbnVtUG9pbnRzT25MZXZlbFVwAAMADHJlcXVpcmVtZW50cwkAzAgCAghTdHJlbmd0aAkAzAgCAghBY2N1cmFjeQkAzAgCAglJbnRlbGxlY3QJAMwIAgIJRW5kdXJhbmNlCQDMCAICCURleHRlcml0eQkAzAgCAgVMZXZlbAkAzAgCAgZIZWFsdGgFA25pbAAMY2hhclN0cmVuZ3RoAAAADGNoYXJBY2N1cmFjeQABAA1jaGFySW50ZWxsZWN0AAIADWNoYXJFbmR1cmFuY2UAAwANY2hhckRleHRlcml0eQAEAApOVU1NQUlOQVVYAAIACE1BWFNMT1RTAAIADU1BWFBST0RJTlNMT1QAHgENa2V5RHVja0hlYWx0aAELZHVja0Fzc2V0SWQJAKwCAgILZHVja0hlYWx0aF8FC2R1Y2tBc3NldElkAQxrZXlEdWNrQ2hhcnMBC2R1Y2tBc3NldElkCQCsAgICCmR1Y2tDaGFyc18FC2R1Y2tBc3NldElkAQlrZXlEdWNrWFABC2R1Y2tBc3NldElkCQCsAgICB2R1Y2tYUF8FC2R1Y2tBc3NldElkAQxrZXlEdWNrTGV2ZWwBC2R1Y2tBc3NldElkCQCsAgICCmR1Y2tMZXZlbF8FC2R1Y2tBc3NldElkARFrZXlEdWNrRnJlZVBvaW50cwELZHVja0Fzc2V0SWQJAKwCAgIPZHVja0ZyZWVQb2ludHNfBQtkdWNrQXNzZXRJZAEQa2V5RHVja0VxdWlwbWVudAELZHVja0Fzc2V0SWQJAKwCAgIOZHVja0VxdWlwbWVudF8FC2R1Y2tBc3NldElkAQlrZXlVc2VyWFABBGFkZHIJAKwCAgIHdXNlclhQXwUEYWRkcgEMa2V5VXNlckxldmVsAQRhZGRyCQCsAgICCnVzZXJMZXZlbF8FBGFkZHIBEWtleVVzZXJGcmVlUG9pbnRzAQRhZGRyCQCsAgICD3VzZXJGcmVlUG9pbnRzXwUEYWRkcgEOa2V5U2F2ZWRIZWFsdGgBC2R1Y2tBc3NldElkCQCsAgICDHNhdmVkSGVhbHRoXwULZHVja0Fzc2V0SWQBEGtleVNhdmVkTG9jYXRpb24BC2R1Y2tBc3NldElkCQCsAgICDnNhdmVkTG9jYXRpb25fBQtkdWNrQXNzZXRJZAEUa2V5RHVja0RlbGl2ZXJ5Q291bnQBC2R1Y2tBc3NldElkCQCsAgICGXRvdGFsRGVsaXZlcnlDb3VudEJ5RHVja18FC2R1Y2tBc3NldElkARRrZXlVc2VyRGVsaXZlcnlDb3VudAEEYWRkcgkArAICAhJ1c2VyRGVsaXZlcnlDb3VudF8FBGFkZHIBFmtleVVzZXJMYXN0RGVsaXZlcnlEYXkBBGFkZHIJAKwCAgIUdXNlckxhc3REZWxpdmVyeURheV8FBGFkZHIAB3hwQ2xhaW0AkE4ADHhwQ3VzdG9tTmFtZQDAhD0ACXhwT25ib2FyZADAhD0BCWxldmVsQnlYUAECeHAJAGsDBQx4cExldmVsU2NhbGUJAGwGBQJ4cAAEBQ94cExldmVsUmVjaXBQb3cABAAEBQRET1dOBQZTQ0FMRTgBCW1heEhlYWx0aAEFbGV2ZWwJAGQCAGQFBWxldmVsAQdsZXZlbFVwAgljdXJyTGV2ZWwFbmV3WFAECG5ld0xldmVsCQEJbGV2ZWxCeVhQAQUFbmV3WFAJAMwIAgUIbmV3TGV2ZWwJAMwIAgkAaAIFEm51bVBvaW50c09uTGV2ZWxVcAkAZQIFCG5ld0xldmVsBQljdXJyTGV2ZWwFA25pbAAJREFZTUlMTElTAIC4mSkBGWtleUxhc3RXbGdUcmFkZVRpbWVCeVVzZXIBBGFkZHIJAKwCAgIQbGFzdEFyYlRpbWVVc2VyXwUEYWRkcgEaa2V5QWNyZXNTdGFrZWRBbW91bnRCeVVzZXIBBGFkZHIJAKwCAgIYYWNyZXNTdGFrZWRBbW91bnRCeVVzZXJfBQRhZGRyAAxSRU5BTUlOR0NPU1QAwJaxAgAKTUFYTkFNRUxFTgAyAA9QUkVTQUxFTlVNTEFORFMA9AMBGmtleUxhbmRDdXN0b21OYW1lVG9Bc3NldElkAQRuYW1lCQCsAgICBGxjbl8FBG5hbWUBHmtleUluZnJhTGV2ZWxCeUFzc2V0SWRBbmRPd25lcgIHYXNzZXRJZAlvd25lckFkZHIJAKwCAgkArAICCQCsAgICBWlsYW9fBQdhc3NldElkAgFfBQlvd25lckFkZHIBEWtleUxhbmROdW1Ub093bmVyAQdsYW5kTnVtCQCsAgICA2xvXwUHbGFuZE51bQEaa2V5RHVja0N1c3RvbU5hbWVUb0Fzc2V0SWQBBG5hbWUJAKwCAgIRZHVja0J5Q3VzdG9tTmFtZV8FBG5hbWUBFmtleUN1c3RvbU5hbWVUb0FkZHJlc3MBBG5hbWUJAKwCAgIUYWNjb3VudEJ5Q3VzdG9tTmFtZV8FBG5hbWUBCWtleU9sZGllcwACCm9sZGllc0xpc3QAC2NsYWltTW9kZVdoAAAADWNsYWltTW9kZUR1Y2sAAQATY2xhaW1Nb2RlV2hUaGVuRHVjawACARNkaXN0cmlidXRlQnlXZWlnaHRzAgV0b3RhbAd3ZWlnaHRzBANzdW0JAGQCCQBkAgkAZAIJAGQCCQBkAgkAkQMCBQd3ZWlnaHRzAAAJAJEDAgUHd2VpZ2h0cwABCQCRAwIFB3dlaWdodHMAAgkAkQMCBQd3ZWlnaHRzAAMJAJEDAgUHd2VpZ2h0cwAECQCRAwIFB3dlaWdodHMABQMJAGcCAAAFA3N1bQkAAgECEFplcm8gd2VpZ2h0cyBzdW0EBW5vcm02CQBrAwUFdG90YWwFBU1VTFQ2BQNzdW0KAQpub3JtYWxpemVyAgNhY2MEZWxlbQkAzQgCBQNhY2MJAGsDBQRlbGVtBQVub3JtNgUFTVVMVDYKAAIkbAUHd2VpZ2h0cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEKbm9ybWFsaXplcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNgkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgESZ2V0TmVlZGVkTWF0ZXJpYWxzAQV0b3RhbAQFcHJvcHMJALUJAgkBBXZhbHVlAQkAoggBCQERa2V5UmVzUHJvcG9ydGlvbnMAAgFfAwkBAiE9AgkAkAMBBQVwcm9wcwUGTlVNUkVTCQACAQIWV3JvbmcgcHJvcG9ydGlvbnMgZGF0YQQBcgkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcHJvcHMAAAkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcHJvcHMAAQkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcHJvcHMAAgkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcHJvcHMAAwkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcHJvcHMABAkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcHJvcHMABQUDbmlsCQETZGlzdHJpYnV0ZUJ5V2VpZ2h0cwIFBXRvdGFsBQFyAQ5wcm9kU3RyVG9CeXRlcwEHcHJvZFN0cgQFcExpc3QDCQAAAgUHcHJvZFN0cgIABQNuaWwJALwJAgUHcHJvZFN0cgIBXwoBBHRvQlYCA2FjYwZyZWNpcGUEAWoJAGkCCQDIAQEFA2FjYwAIBARjdXJyAwkAZgIJAJADAQUFcExpc3QFAWoJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVwTGlzdAUBagAACQDLAQIFA2FjYwkAmgMBBQRjdXJyCgACJGwFEHByb2R1Y3Rpb25NYXRyaXgKAAIkcwkAkAMBBQIkbAoABSRhY2MwAQAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBHRvQlYCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDUwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgEOYnl0ZXNUb1Byb2RTdHIBAmJ2CgEGZnJvbUJWAgNhY2MGcmVjaXBlBAFqCQCQAwEFA2FjYwQBYgkAyQECCQDKAQIFAmJ2CQBoAgAIBQFqAAgJAM0IAgUDYWNjCQCkAwEJALEJAQUBYgkAugkCCgACJGwFEHByb2R1Y3Rpb25NYXRyaXgKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBmZyb21CVgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgNTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyAgFfARVjaGVja1N0YXRSZXF1aXJlbWVudHMCCWR1Y2tTdGF0cwRyZXFzCgEFY2hlY2sCA2FjYwFqBARidWZmAwkAZgIJAJADAQUJZHVja1N0YXRzCQBkAgAHBQFqCQCRAwIFCWR1Y2tTdGF0cwkAZAIABwUBagAAAwkAZgIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRyZXFzBQFqCQBkAgkAkQMCBQlkdWNrU3RhdHMFAWoFBGJ1ZmYJAAIBCQCsAgICG1JlcXVpcmVtZW50IG5vdCBzYXRpc2ZpZWQ6IAkAkQMCBQxyZXF1aXJlbWVudHMFAWoGCgACJGwJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGBQNuaWwKAAIkcwkAkAMBBQIkbAoABSRhY2MwBwoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEFY2hlY2sCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDcJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwEIYWRkUHJvZEIHBmlkeENudAVwTGlzdAppc1Bvc2l0aXZlB3NlZ21lbnQHbWFpbkF1eARzbG90CWR1Y2tTdGF0cwQFcGFydHMJALUJAgUGaWR4Q250AgE6AwkBAiE9AgkAkAMBBQVwYXJ0cwACCQACAQIoSW5jb3JyZWN0IGZvcm1hdCwgc2hvdWxkIGJlIGluZGV4OmFtb3VudAMDCQEBIQEFCmlzUG9zaXRpdmUJAQIhPQIJALECAQkAkQMCBQVwYXJ0cwAAAAIHCQACAQIrUHJvZHVjdCBpZHggc2hvdWxkIGJlIDIgZGlnaXRzLCB6ZXJvIHBhZGRlZAQKcHJvZHVjdElkeAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBXBhcnRzAAAEBWNvdW50CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcGFydHMAAQMDCQBmAgAABQpwcm9kdWN0SWR4BgkAZwIFCnByb2R1Y3RJZHgJAJADAQUQcHJvZHVjdGlvbk1hdHJpeAkAAgECE1Vua25vd24gcHJvZHVjdCBpZHgDCQBmAgAABQVjb3VudAkAAgECF0NvdW50IGNhbid0IGJlIG5lZ2F0aXZlAwkAZgIFBWNvdW50BQ1NQVhQUk9ESU5TTE9UCQACAQkArAICCQCsAgIJAKwCAgIUQ2FuJ3QgcHV0IG1vcmUgdGhhbiAJAKQDAQUNTUFYUFJPRElOU0xPVAIEIG9mIAkAkQMCBQlwcm9kVHlwZXMFCnByb2R1Y3RJZHgDCQAAAgUFY291bnQAAAkAlAoCBQVwTGlzdAcEBGhlYWQJAMkBAgUFcExpc3QJAGgCAAgFCnByb2R1Y3RJZHgEBGN1cnIJALEJAQkAyQECCQDKAQIFBXBMaXN0CQBoAgAIBQpwcm9kdWN0SWR4AAgEBHRhaWwJAMoBAgUFcExpc3QJAGgCAAgJAGQCBQpwcm9kdWN0SWR4AAEEBnJlY2lwZQkAtQkCCQCRAwIFEHByb2R1Y3Rpb25NYXRyaXgFCnByb2R1Y3RJZHgCAV8DAwkBASEBBQppc1Bvc2l0aXZlCQBmAgUFY291bnQFBGN1cnIHCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCVlvdSBoYXZlIAkApAMBBQRjdXJyAgQgb2YgCQCRAwIFCXByb2RUeXBlcwUKcHJvZHVjdElkeAITLCBidXQgdHJpZWQgdG8gdXNlIAkApAMBBQVjb3VudAQJaXNCaWdJdGVtAwMJAQEhAQUKaXNQb3NpdGl2ZQkBFWNoZWNrU3RhdFJlcXVpcmVtZW50cwIFCWR1Y2tTdGF0cwkAtQkCCQCRAwIFBnJlY2lwZQUQcklkeFJlcXVpcmVtZW50cwIBLAcEBmNvbXBhdAkAkQMCBQZyZWNpcGUFCXJJZHhTbG90cwMJAAACBQZjb21wYXQCAAkAAgECF0l0ZW0gY2Fubm90IGJlIGVxdWlwcGVkBAFjCQENcGFyc2VJbnRWYWx1ZQEFBmNvbXBhdAQEY1NlZwkAaQIFAWMAZAMJAQIhPQIFB3NlZ21lbnQFBGNTZWcJAAIBAhRTZWdtZW50IGluY29tcGF0aWJsZQQIY01haW5BdXgJAGkCCQBqAgUBYwBkAAoDCQECIT0CBQdtYWluQXV4BQhjTWFpbkF1eAkAAgECEVNsb3QgaW5jb21wYXRpYmxlBAljTnVtU2xvdHMJAGoCBQFjAAoDAwkBAiE9AgUEc2xvdAAACQBmAgUJY051bVNsb3RzAAEHCQACAQIeQmlnIGl0ZW1zIHNob3VsZCBvY2N1cHkgc2xvdCAwCQBmAgUJY051bVNsb3RzAAEHCQCUCgIJAMsBAgkAywECBQRoZWFkCQCaAwEJAGQCBQRjdXJyAwUKaXNQb3NpdGl2ZQUFY291bnQJAQEtAQUFY291bnQFBHRhaWwFCWlzQmlnSXRlbQELc2xvdHNHcm91cEIGAWcEYnBJbgppc1Bvc2l0aXZlB3NlZ21lbnQHbWFpbkF1eAVzdGF0cwMJAQIhPQIFAWcCAAQFc2xvdHMJALUJAgUBZwIBLAMJAGYCCQCQAwEFBXNsb3RzBQhNQVhTTE9UUwkAAgECEldyb25nIHNsb3RzIGZvcm1hdAQCczAJAJEDAgUFc2xvdHMAAAQCczEDCQBmAgkAkAMBBQVzbG90cwABCQCRAwIFBXNsb3RzAAECAAMDCQAAAgUCczACAAkAAAIFAnMxAgAHBQRicEluBAV0bXBTMAMJAQIhPQIFAnMwAgAJAQhhZGRQcm9kQgcFAnMwBQRicEluBQppc1Bvc2l0aXZlBQdzZWdtZW50BQdtYWluQXV4AAAFBXN0YXRzCQCUCgIFBGJwSW4HAwkBAiE9AgUCczECAAMIBQV0bXBTMAJfMgkAAgECHkJpZyBpdGVtIGFscmVhZHkgb2NjdXBpZXMgc2xvdAgJAQhhZGRQcm9kQgcFAnMxCAUFdG1wUzACXzEFCmlzUG9zaXRpdmUFB3NlZ21lbnQFB21haW5BdXgAAQUFc3RhdHMCXzEIBQV0bXBTMAJfMQUEYnBJbgEGZHJlc3NCBAdzZWdMaXN0BnBCeXRlcwppc1Bvc2l0aXZlBXN0YXRzCgEHc2VnbWVudAIDYWNjA3NlZwQBaggFA2FjYwJfMQQHbWFpbkF1eAkAtQkCBQNzZWcCATsDCQECIT0CCQCQAwEFB21haW5BdXgFCk5VTU1BSU5BVVgJAAIBAhRXcm9uZyBzZWdtZW50IGZvcm1hdAQBbQkAkQMCBQdtYWluQXV4AAAEAWEJAJEDAgUHbWFpbkF1eAABAwMJAAACBQFtAgAJAAACBQFhAgAHCQCUCgIJAGQCBQFqAAEIBQNhY2MCXzIEBHRtcE0JAQtzbG90c0dyb3VwQgYFAW0IBQNhY2MCXzIFCmlzUG9zaXRpdmUFAWoAAAUFc3RhdHMJAJQKAgkAZAIFAWoAAQkBC3Nsb3RzR3JvdXBCBgUBYQUEdG1wTQUKaXNQb3NpdGl2ZQUBagABBQVzdGF0cwgKAAIkbAUHc2VnTGlzdAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgAABQZwQnl0ZXMKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBB3NlZ21lbnQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYCXzIBGXVwZGF0ZVByb3BvcnRpb25zSW50ZXJuYWwECHByb3BMaXN0DXRlcnJhaW5Db3VudHMNbGFuZFNpemVJbmRleARzaWduAwkBAiE9AgkAkAMBBQhwcm9wTGlzdAUGTlVNUkVTCQACAQIWV3JvbmcgcHJvcG9ydGlvbnMgZGF0YQoBB3VwZGF0ZXICA2FjYwFpBAZyZXN1bHQJAGQCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIcHJvcExpc3QFAWkJAGgCCQBoAgUEc2lnbgkAkQMCBQ10ZXJyYWluQ291bnRzBQFpBQ1sYW5kU2l6ZUluZGV4AwkAZgIAAAUGcmVzdWx0CQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhZQYW5pYyEgUGllY2VzIG9mIHR5cGU9CQCkAwEFAWkCBywgc2lnbj0JAKQDAQUEc2lnbgITLCB0ZXJyYWluQ291bnRzW2ldPQkApAMBCQCRAwIFDXRlcnJhaW5Db3VudHMFAWkCECwgbGFuZFNpemVJbmRleD0JAKQDAQUNbGFuZFNpemVJbmRleAkAzQgCBQNhY2MJAKQDAQUGcmVzdWx0CgACJGwFBUlURVI2CgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQd1cGRhdGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA2CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGARF1cGRhdGVQcm9wb3J0aW9ucwMNdGVycmFpbkNvdW50cw1sYW5kU2l6ZUluZGV4BHNpZ24ECHByb3BMaXN0CQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBEWtleVJlc1Byb3BvcnRpb25zAAILMF8wXzBfMF8wXzACAV8JALkJAgkBGXVwZGF0ZVByb3BvcnRpb25zSW50ZXJuYWwEBQhwcm9wTGlzdAUNdGVycmFpbkNvdW50cwUNbGFuZFNpemVJbmRleAUEc2lnbgIBXwENY291bnRUZXJyYWlucwEIdGVycmFpbnMJAMwIAgkAZQIJAJADAQkAtQkCBQh0ZXJyYWlucwIBQQABCQDMCAIJAGUCCQCQAwEJALUJAgUIdGVycmFpbnMCAUIAAQkAzAgCCQBlAgkAkAMBCQC1CQIFCHRlcnJhaW5zAgFDAAEJAMwIAgkAZQIJAJADAQkAtQkCBQh0ZXJyYWlucwIBRAABCQDMCAIJAGUCCQCQAwEJALUJAgUIdGVycmFpbnMCAUUAAQkAzAgCCQBlAgkAkAMBCQC1CQIFCHRlcnJhaW5zAgFGAAEFA25pbAEGYWRkUmVzBQpjdXJyZW50UmVzDXRlcnJhaW5Db3VudHMJZGVsdGFUaW1lDWxhbmRTaXplSW5kZXgXZGFpbHlCeVBpZWNlV2l0aEJvbnVzZXMKAQVhZGRlcgIDYWNjAWkECXJlc09mVHlwZQkAaAIJAGgCCQBrAwUJZGVsdGFUaW1lBRdkYWlseUJ5UGllY2VXaXRoQm9udXNlcwUJREFZTUlMTElTCQCRAwIFDXRlcnJhaW5Db3VudHMFAWkFDWxhbmRTaXplSW5kZXgJAM0IAgUDYWNjCQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUKY3VycmVudFJlcwUBaQUJcmVzT2ZUeXBlBAFyCgACJGwFBUlURVI2CgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQVhZGRlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNgkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgkAuQkCBQFyAgFfAQ92aXJ0Q2xhaW1BZGRSZXMFCmN1cnJlbnRSZXMNdGVycmFpbkNvdW50cwlkZWx0YVRpbWUNbGFuZFNpemVJbmRleBdkYWlseUJ5UGllY2VXaXRoQm9udXNlcwoBBWFkZGVyAgNhY2MBaQQJcmVzT2ZUeXBlCQBoAgkAaAIJAGsDBQlkZWx0YVRpbWUFF2RhaWx5QnlQaWVjZVdpdGhCb251c2VzBQlEQVlNSUxMSVMJAJEDAgUNdGVycmFpbkNvdW50cwUBaQUNbGFuZFNpemVJbmRleAQMdG90YWxSZXNUeXBlCQBkAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCmN1cnJlbnRSZXMFAWkFCXJlc09mVHlwZQkAlAoCCQDNCAIIBQNhY2MCXzEFDHRvdGFsUmVzVHlwZQkAZAIIBQNhY2MCXzIFDHRvdGFsUmVzVHlwZQoAAiRsBQVJVEVSNgoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgUDbmlsAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBWFkZGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA2CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAQl2aXJ0Q2xhaW0EDXRlcnJhaW5Db3VudHMJZGVsdGFUaW1lDWxhbmRTaXplSW5kZXgXZGFpbHlCeVBpZWNlV2l0aEJvbnVzZXMKAQVhZGRlcgIDYWNjDHRlcnJhaW5Db3VudAQJcmVzT2ZUeXBlCQBoAgkAaAIJAGsDBQlkZWx0YVRpbWUFF2RhaWx5QnlQaWVjZVdpdGhCb251c2VzBQlEQVlNSUxMSVMFDHRlcnJhaW5Db3VudAUNbGFuZFNpemVJbmRleAkAlAoCCQDNCAIIBQNhY2MCXzEFCXJlc09mVHlwZQkAZAIIBQNhY2MCXzIFCXJlc09mVHlwZQoAAiRsBQ10ZXJyYWluQ291bnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEFYWRkZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYBDWRpc3RyaWJ1dGVSZXMEDGN1cnJlbnRXaFJlcw5jdXJyZW50UGFja1JlcwpyZXNUb0NsYWltC3doU3BhY2VMZWZ0BA5yZXNMaXN0VG9DbGFpbQgFCnJlc1RvQ2xhaW0CXzEEDHJlc0FtVG9DbGFpbQgFCnJlc1RvQ2xhaW0CXzIDCQAAAgUMcmVzQW1Ub0NsYWltAAAJAJQKAgkAuQkCBQxjdXJyZW50V2hSZXMCAV8JALkJAgUOY3VycmVudFBhY2tSZXMCAV8DCQBnAgULd2hTcGFjZUxlZnQFDHJlc0FtVG9DbGFpbQoBCGFkZExpc3RzAgNhY2MBaQkAzQgCBQNhY2MJAKQDAQkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQxjdXJyZW50V2hSZXMFAWkJAJEDAgUOcmVzTGlzdFRvQ2xhaW0FAWkEAXIKAAIkbAUFSVRFUjYKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGFkZExpc3RzAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA2CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGCQCUCgIJALkJAgUBcgIBXwkAuQkCBQ5jdXJyZW50UGFja1JlcwIBXwoBDGFkZFBhcnRMaXN0cwIDYWNjAWkEBndoUGFydAkAawMJAJEDAgUOcmVzTGlzdFRvQ2xhaW0FAWkFC3doU3BhY2VMZWZ0BQxyZXNBbVRvQ2xhaW0JAJQKAgkAzQgCCAUDYWNjAl8xCQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUMY3VycmVudFdoUmVzBQFpBQZ3aFBhcnQJAM0IAggFA2FjYwJfMgkApAMBCQBlAgkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQ5jdXJyZW50UGFja1JlcwUBaQkAkQMCBQ5yZXNMaXN0VG9DbGFpbQUBaQUGd2hQYXJ0BAFyCgACJGwFBUlURVI2CgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEMYWRkUGFydExpc3RzAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA2CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGCQCUCgIJALkJAggFAXICXzECAV8JALkJAggFAXICXzICAV8BC2dldEJhY2twYWNrAQVicEtleQQBcAkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEFBWJwS2V5AhowOjBfMF8wXzBfMF8wOjBfMF8wXzBfMF8wOgIBOgkAzAgCCQCkAwEJAQt2YWx1ZU9yRWxzZQIJALYJAQkAkQMCBQFwBQpicElkeExldmVsAAAJAMwIAgMJAAACCQCQAwEJALUJAgkAkQMCBQFwBQhicElkeFJlcwIBXwUGTlVNUkVTCQCRAwIFAXAFCGJwSWR4UmVzAgswXzBfMF8wXzBfMAkAzAgCAwkAAAIJAJADAQkAtQkCCQCRAwIFAXAFCGJwSWR4TWF0AgFfBQZOVU1SRVMJAJEDAgUBcAUIYnBJZHhNYXQCCzBfMF8wXzBfMF8wCQDMCAIJAJEDAgUBcAUJYnBJZHhQcm9kBQNuaWwBF2dldFdhcmVob3VzZVRvdGFsVm9sdW1lAQl2b2xQcmVmaXgEBXBhcnRzCQC1CQIFCXZvbFByZWZpeAIBXwkAaAIJAGgCBQxXSE1VTFRJUExJRVIJAGQCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcGFydHMAAQABCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcGFydHMAAAEXZ2V0V2FyZWhvdXNlT2NjdXBpZWRWb2wBCWN1cnJlbnRXaAQFZ29vZHMJAJEDAgUJY3VycmVudFdoBQl3aElkeFByb2QKAQlzdW1SZXNNYXQCA2FjYwRpdGVtCQBkAgUDYWNjCQENcGFyc2VJbnRWYWx1ZQEFBGl0ZW0KAQdzdW1Qcm9kAgNhY2MEaXRlbQQDaWR4CAUDYWNjAl8xBARwa2dzCQBpAgkAZQIJAGQCCQENcGFyc2VJbnRWYWx1ZQEFBGl0ZW0FDlBST0RVQ1RQS0dTSVpFAAEFDlBST0RVQ1RQS0dTSVpFCQCUCgIJAGQCBQNpZHgAAQkAZAIIBQNhY2MCXzIJAGgCBQRwa2dzBQVNVUxUOAQId2hSZXNWb2wKAAIkbAkAtQkCCQCRAwIFCWN1cnJlbnRXaAUId2hJZHhSZXMCAV8KAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCXN1bVJlc01hdAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBz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AGUCCQBlAgUHd2hUb3RhbAUId2hMb2NrZWQFA29jYwkAzAgCCQCkAwEFB3doVG90YWwFA25pbAIBXwkAzAgCCQCRAwIFAndoBQt3aElkeExldmVscwkAzAgCAwkAAAIJAJADAQkAtQkCCQCRAwIFAndoBQh3aElkeFJlcwIBXwUGTlVNUkVTCQCRAwIFAndoBQh3aElkeFJlcwILMF8wXzBfMF8wXzAJAMwIAgMJAAACCQCQAwEJALUJAgkAkQMCBQJ3aAUId2hJZHhNYXQCAV8FBk5VTVJFUwkAkQMCBQJ3aAUId2hJZHhNYXQCCzBfMF8wXzBfMF8wCQDMCAIJAJEDAgUCd2gFCXdoSWR4UHJvZAkAzAgCBQZ3aExvZnQFA25pbAEMYXBwbHlCb251c2VzAgtsYW5kQXNzZXRJZAZwaWVjZXMECmluZnJhTGV2ZWwJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBFmtleUluZnJhTGV2ZWxCeUFzc2V0SWQBBQtsYW5kQXNzZXRJZAAABAlhcnRQaWVjZXMJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBIGtleUxhbmRBcnRTdGF0dXNCeVR5cGVBbmRBc3NldElkAgUKQVJUUFJFU0FMRQULbGFuZEFzc2V0SWQAAAQEYWRkNgkAaQIFCmluZnJhTGV2ZWwABgQEYWRkNwkAaQIFCmluZnJhTGV2ZWwABwkAZAIJAGQCBQ9EQUlMWVJFU0JZUElFQ0UJAGsDBQ9EQUlMWVJFU0JZUElFQ0UJAGQCCQBkAgUKaW5mcmFMZXZlbAUEYWRkNgkAaAIAAgUEYWRkNwAFCQBrAwUPREFJTFlSRVNCWVBJRUNFBQlhcnRQaWVjZXMJAGgCBQZwaWVjZXMABQEUY2hlY2tDbGFpbUNvbmRpdGlvbnMDBGFkZHIJY2xhaW1Nb2RlDWxhbmRBc3NldElkSW4EDSR0MDM0MjQ3MzQ3ODYDCQAAAgUJY2xhaW1Nb2RlBQtjbGFpbU1vZGVXaAkAlAoCBQ1sYW5kQXNzZXRJZEluCQELdmFsdWVPckVsc2UCCQCiCAEJARRrZXlTdGFrZWREdWNrQnlPd25lcgEFBGFkZHICAAQLZHVja0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBBQRhZGRyAhxZb3UgZG9uJ3QgaGF2ZSBhIGR1Y2sgc3Rha2VkBAtjdXJMb2NhdGlvbgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEPa2V5RHVja0xvY2F0aW9uAQULZHVja0Fzc2V0SWQFD0RFRkFVTFRMT0NBVElPTgQDbG9jCQC1CQIJAQV2YWx1ZQEFC2N1ckxvY2F0aW9uAgFfAwkBAiE9AgkAkQMCBQNsb2MFCmxvY0lkeFR5cGUCAUwJAAIBCQCsAgIJAKwCAgIWRHVjayBsb2NhdGlvbiB0eXBlIGlzIAkAkQMCBQNsb2MFCmxvY0lkeFR5cGUCESwgYnV0IHNob3VsZCBiZSBMCQCUCgIJAJEDAgUDbG9jBQhsb2NJZHhJZAULZHVja0Fzc2V0SWQEC2xhbmRBc3NldElkCAUNJHQwMzQyNDczNDc4NgJfMQQGZHVja0lkCAUNJHQwMzQyNDczNDc4NgJfMgQFYXNzZXQJAQV2YWx1ZQEJAOwHAQkA2QQBBQtsYW5kQXNzZXRJZAQHdGltZUtleQkBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBBQtsYW5kQXNzZXRJZAQJc2F2ZWRUaW1lCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQUHdGltZUtleQkArAICCQCsAgICBUxhbmQgCAUFYXNzZXQEbmFtZQIOIGlzIG5vdCBzdGFrZWQEBW93bmVyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBFWtleUxhbmRBc3NldElkVG9Pd25lcgEFC2xhbmRBc3NldElkCQCsAgIJAKwCAgIETkZUIAgFBWFzc2V0BG5hbWUCDCBpcyBvcnBoYW5lZAMJAQIhPQIFBW93bmVyBQRhZGRyCQACAQkArAICBQpMQU5EUFJFRklYAg0gaXMgbm90IHlvdXJzBAFkCQC1CQIIBQVhc3NldAtkZXNjcmlwdGlvbgIBXwkAlgoEBQZkdWNrSWQFC2xhbmRBc3NldElkBQFkBQlzYXZlZFRpbWUBEGNsYWltUmVzSW50ZXJuYWwEBGFkZHIGYW1vdW50CWNsYWltTW9kZQ1sYW5kQXNzZXRJZEluAwkAZgIAAAUGYW1vdW50CQACAQIPTmVnYXRpdmUgYW1vdW50BAFjCQEUY2hlY2tDbGFpbUNvbmRpdGlvbnMDBQRhZGRyBQljbGFpbU1vZGUFDWxhbmRBc3NldElkSW4ECGxhbmRTaXplCQCRAwIIBQFjAl8zBQtyZWNMYW5kU2l6ZQQNdGVycmFpbkNvdW50cwkBDWNvdW50VGVycmFpbnMBCQCRAwIIBQFjAl8zBQtyZWNUZXJyYWlucwQJZGVsdGFUaW1lCQBlAgkBCWZpbmFsVGltZQAIBQFjAl80AwkAZgIAAAUJZGVsdGFUaW1lCQACAQkArAICCQCsAgIJAKwCAgImU2F2ZWQgdGltZXN0YW1wIGlzIGluIGZ1dHVyZSwgc2F2ZWQgPSAJAKQDAQgFAWMCXzQCCiwgZmluYWwgPSAJAKQDAQkBCWZpbmFsVGltZQAEBnBpZWNlcwkBD251bVBpZWNlc0J5U2l6ZQEFCGxhbmRTaXplBBZkYWlseVByb2R1Y3Rpb25CeVBpZWNlCQEMYXBwbHlCb251c2VzAggFAWMCXzIFBnBpZWNlcwQIYXZhaWxSZXMJAGsDBQlkZWx0YVRpbWUJAGgCBRZkYWlseVByb2R1Y3Rpb25CeVBpZWNlBQZwaWVjZXMFCURBWU1JTExJUwMJAGYCBQZhbW91bnQFCGF2YWlsUmVzCQACAQkArAICCQCsAgIJAKwCAgIiTm90IGVub3VnaCByZXNvdXJjZXMsIGF2YWlsYWJsZSA9IAkApAMBBQhhdmFpbFJlcwIOLCByZXF1ZXN0ZWQgPSAJAKQDAQUGYW1vdW50BAxuZXdEZWx0YVRpbWUJAGsDCQBlAgUIYXZhaWxSZXMFBmFtb3VudAUJREFZTUlMTElTCQBoAgUWZGFpbHlQcm9kdWN0aW9uQnlQaWVjZQUGcGllY2VzBAxuZXdUaW1lc3RhbXAJAGUCCQEJZmluYWxUaW1lAAUMbmV3RGVsdGFUaW1lBAlsYW5kSW5kZXgJAGkCBQZwaWVjZXMFBVNTSVpFBApyZXNUb0NsYWltCQEJdmlydENsYWltBAUNdGVycmFpbkNvdW50cwkAZQIFCWRlbHRhVGltZQUMbmV3RGVsdGFUaW1lBQlsYW5kSW5kZXgFFmRhaWx5UHJvZHVjdGlvbkJ5UGllY2UEBXdoS2V5CQESa2V5V2FyZWhvdXNlQnlMYW5kAQgFAWMCXzIECmluZnJhTGV2ZWwJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBFmtleUluZnJhTGV2ZWxCeUFzc2V0SWQBCAUBYwJfMgAABAljdXJyZW50V2gJAQxnZXRXYXJlaG91c2UDBQV3aEtleQUJbGFuZEluZGV4BQppbmZyYUxldmVsBARsb2Z0CQC1CQIJAJEDAgUJY3VycmVudFdoBQl3aElkeExPRlQCAV8EC3doU3BhY2VMZWZ0CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbG9mdAUHdm9sRnJlZQMDCQAAAgUJY2xhaW1Nb2RlBQtjbGFpbU1vZGVXaAkAZgIFBmFtb3VudAULd2hTcGFjZUxlZnQHCQACAQkArAICCQCsAgICBU9ubHkgCQCkAwEFC3doU3BhY2VMZWZ0Ahggc3BhY2UgbGVmdCBpbiB3YXJlaG91c2UEBWJwS2V5CQERa2V5QmFja3BhY2tCeUR1Y2sBCAUBYwJfMQQLY3VycmVudFBhY2sJAQtnZXRCYWNrcGFjawEFBWJwS2V5BA5jdXJyZW50UGFja1JlcwkAtQkCCQCRAwIFC2N1cnJlbnRQYWNrBQhicElkeFJlcwIBXwQMY3VycmVudFdoUmVzCQC1CQIJAJEDAgUJY3VycmVudFdoBQh3aElkeFJlcwIBXwQNJHQwMzcxNTYzODAyNwMJAAACBQljbGFpbU1vZGUFC2NsYWltTW9kZVdoCQCWCgQJAQZhZGRSZXMFBQxjdXJyZW50V2hSZXMFDXRlcnJhaW5Db3VudHMJAGUCBQlkZWx0YVRpbWUFDG5ld0RlbHRhVGltZQUJbGFuZEluZGV4BRZkYWlseVByb2R1Y3Rpb25CeVBpZWNlCQCRAwIFC2N1cnJlbnRQYWNrBQhicElkeFJlcwkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRsb2Z0BQt2b2xPY2N1cGllZAgFCnJlc1RvQ2xhaW0CXzIJAGUCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbG9mdAUHdm9sRnJlZQgFCnJlc1RvQ2xhaW0CXzIDCQAAAgUJY2xhaW1Nb2RlBQ1jbGFpbU1vZGVEdWNrCQCWCgQJAJEDAgUJY3VycmVudFdoBQh3aElkeFJlcwkBBmFkZFJlcwUFDmN1cnJlbnRQYWNrUmVzBQ10ZXJyYWluQ291bnRzCQBlAgUJZGVsdGFUaW1lBQxuZXdEZWx0YVRpbWUFCWxhbmRJbmRleAUWZGFpbHlQcm9kdWN0aW9uQnlQaWVjZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBGxvZnQFC3ZvbE9jY3VwaWVkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbG9mdAUHdm9sRnJlZQQFZGlzdHIJAQ1kaXN0cmlidXRlUmVzBAUMY3VycmVudFdoUmVzBQ5jdXJyZW50UGFja1JlcwUKcmVzVG9DbGFpbQULd2hTcGFjZUxlZnQEBHdoQW0JAJcDAQkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbG9mdAUHdm9sRnJlZQkAzAgCCAUKcmVzVG9DbGFpbQJfMgUDbmlsCQCWCgQIBQVkaXN0cgJfMQgFBWRpc3RyAl8yCQBkAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBGxvZnQFC3ZvbE9jY3VwaWVkBQR3aEFtCQBlAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBGxvZnQFB3ZvbEZyZWUFBHdoQW0EBXdoUmVzCAUNJHQwMzcxNTYzODAyNwJfMQQFYnBSZXMIBQ0kdDAzNzE1NjM4MDI3Al8yBAVsb2Z0TwgFDSR0MDM3MTU2MzgwMjcCXzMEBWxvZnRGCAUNJHQwMzcxNTYzODAyNwJfNAkAlwoFCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5U3Rha2VkVGltZUJ5QXNzZXRJZAEIBQFjAl8yBQxuZXdUaW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJASJrZXlTdGFrZWRUaW1lQnlUeXBlQXNzZXRJZEFuZE93bmVyAwUKTEFORFBSRUZJWAgFAWMCXzIFBGFkZHIFDG5ld1RpbWVzdGFtcAUDbmlsBQVicEtleQkAzAgCCQCRAwIFC2N1cnJlbnRQYWNrBQpicElkeExldmVsCQDMCAIFBWJwUmVzCQDMCAIJAJEDAgULY3VycmVudFBhY2sFCGJwSWR4TWF0CQDMCAIJAJEDAgULY3VycmVudFBhY2sFCWJwSWR4UHJvZAUDbmlsBQV3aEtleQkAzAgCCQCRAwIFCWN1cnJlbnRXaAULd2hJZHhMZXZlbHMJAMwIAgUFd2hSZXMJAMwIAgkAkQMCBQljdXJyZW50V2gFCHdoSWR4TWF0CQDMCAIJAJEDAgUJY3VycmVudFdoBQl3aElkeFByb2QJAMwIAgkAuQkCCQDMCAIJAJEDAgUEbG9mdAUJdm9sTG9ja2VkCQDMCAIJAKQDAQUFbG9mdE8JAMwIAgkApAMBBQVsb2Z0RgkAzAgCCQCRAwIFBGxvZnQFCHZvbFRvdGFsBQNuaWwCAV8FA25pbAEIY2xhaW1BbGwEBGFkZHILbGFuZEFzc2V0SWQGcGllY2VzCWNsYWltTW9kZQQHdGltZUtleQkBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBBQtsYW5kQXNzZXRJZAQJc2F2ZWRUaW1lCQEFdmFsdWUBCQCfCAEFB3RpbWVLZXkECGF2YWlsUmVzCQBoAgkAawMJAGUCCQEJZmluYWxUaW1lAAUJc2F2ZWRUaW1lCQEMYXBwbHlCb251c2VzAgULbGFuZEFzc2V0SWQFBnBpZWNlcwUJREFZTUlMTElTBQZwaWVjZXMJARBjbGFpbVJlc0ludGVybmFsBAUEYWRkcgUIYXZhaWxSZXMFCWNsYWltTW9kZQULbGFuZEFzc2V0SWQBE3VwZGF0ZVN0YXRzSW50ZXJuYWwEBmx2bEtleQV4cEtleQlwb2ludHNLZXkHZGVsdGFYUAQCeHAJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUFeHBLZXkAAAQFbmV3WFAJAGQCBQJ4cAUHZGVsdGFYUAQJbHZsUG9pbnRzCQEHbGV2ZWxVcAIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUGbHZsS2V5AAAFBW5ld1hQCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFBmx2bEtleQkAkQMCBQlsdmxQb2ludHMAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUFeHBLZXkFBW5ld1hQCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQlwb2ludHNLZXkJAGQCCQELdmFsdWVPckVsc2UCCQCfCAEFCXBvaW50c0tleQAACQCRAwIFCWx2bFBvaW50cwABBQNuaWwFBW5ld1hQARd1cGRhdGVEdWNrU3RhdHNJbnRlcm5hbAILZHVja0Fzc2V0SWQHZGVsdGFYUAQFYXNzZXQJAQV2YWx1ZQEJAOwHAQkA2QQBBQtkdWNrQXNzZXRJZAQEYWRkcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJARBrZXlEdWNrSWRUb093bmVyAQULZHVja0Fzc2V0SWQJAKwCAgkArAICAgRORlQgCAUFYXNzZXQEbmFtZQIMIGlzIG9ycGhhbmVkAwMDBRNLU19BTExPV19ST0JPX0RVQ0tTCQAAAggFBWFzc2V0Bmlzc3VlcgUEdGhpcwcJAQhjb250YWlucwIIBQVhc3NldARuYW1lBQtST0JPX1BSRUZJWAcJARN1cGRhdGVTdGF0c0ludGVybmFsBAkBDGtleVVzZXJMZXZlbAEFBGFkZHIJAQlrZXlVc2VyWFABBQRhZGRyCQERa2V5VXNlckZyZWVQb2ludHMBBQRhZGRyBQdkZWx0YVhQCQETdXBkYXRlU3RhdHNJbnRlcm5hbAQJAQxrZXlEdWNrTGV2ZWwBBQtkdWNrQXNzZXRJZAkBCWtleUR1Y2tYUAEFC2R1Y2tBc3NldElkCQERa2V5RHVja0ZyZWVQb2ludHMBBQtkdWNrQXNzZXRJZAUHZGVsdGFYUAEWdXBkYXRlQWNjU3RhdHNJbnRlcm5hbAIEYWRkcgdkZWx0YVhQCQETdXBkYXRlU3RhdHNJbnRlcm5hbAQJAQxrZXlVc2VyTGV2ZWwBBQRhZGRyCQEJa2V5VXNlclhQAQUEYWRkcgkBEWtleVVzZXJGcmVlUG9pbnRzAQUEYWRkcgUHZGVsdGFYUAESYWN0aXZhdGVPbmJvYXJkQXJ0AQRhZGRyBAtkdWNrQXNzZXRJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJARRrZXlTdGFrZWREdWNrQnlPd25lcgEFBGFkZHICHFlvdSBkb24ndCBoYXZlIGEgZHVjayBzdGFrZWQECHJlZkJ5S2V5CQEPa2V5QWRkcmVzc1JlZkJ5AQUEYWRkcgQFcmVmQnkJAKIIAQUIcmVmQnlLZXkDCQEBIQEJAQlpc0RlZmluZWQBBQVyZWZCeQkAAgECKVlvdSBhcmUgbm90IGVsaWdpYmxlIGZvciBPTkJPQVJEIGFydGlmYWN0BAZhcnRLZXkJARxrZXlPbmJvYXJkQXJ0RHVja0FjdGl2YXRlZEJ5AQUEYWRkcgQHYXJ0RHVjawkAoggBBQZhcnRLZXkDCQEJaXNEZWZpbmVkAQUHYXJ0RHVjawkAAgEJAKwCAgIvWW91IGFscmVhZHkgdXNlZCB5b3VyIE9OQk9BUkQgYXJ0aWZhY3Qgb24gZHVjayAJAQV2YWx1ZQEFB2FydER1Y2sEEGR1Y2tBY3RpdmF0b3JLZXkJARxrZXlPbmJvYXJkQXJ0QWN0aXZhdGVkT25EdWNrAQULZHVja0Fzc2V0SWQEDWR1Y2tBY3RpdmF0b3IJAKIIAQUQZHVja0FjdGl2YXRvcktleQMJAQlpc0RlZmluZWQBBQ1kdWNrQWN0aXZhdG9yCQACAQkArAICCQCsAgIJAKwCAgIJVGhlIGR1Y2sgBQtkdWNrQXNzZXRJZAI0IGFscmVhZHkgZ290IHBvaW50cyBmcm9tIE9OQk9BUkQgYXJ0aWZhY3QgZnJvbSB1c2VyIAkBBXZhbHVlAQUNZHVja0FjdGl2YXRvcgkAzggCCQDMCAIJAQtTdHJpbmdFbnRyeQIFBmFydEtleQULZHVja0Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgUQZHVja0FjdGl2YXRvcktleQUEYWRkcgUDbmlsCAkBF3VwZGF0ZUR1Y2tTdGF0c0ludGVybmFsAgULZHVja0Fzc2V0SWQFCXhwT25ib2FyZAJfMQESYWN0aXZhdGVQcmVzYWxlQXJ0AgRhZGRyDWxhbmRBc3NldElkSW4EAWMJARRjaGVja0NsYWltQ29uZGl0aW9ucwMFBGFkZHIFE2NsYWltTW9kZVdoVGhlbkR1Y2sFDWxhbmRBc3NldElkSW4EC2xhbmRBc3NldElkCAUBYwJfMgQGcGllY2VzCQEPbnVtUGllY2VzQnlTaXplAQkAkQMCCAUBYwJfMwULcmVjTGFuZFNpemUEDWFjdGl2YXRpb25LZXkJASBrZXlMYW5kQXJ0U3RhdHVzQnlUeXBlQW5kQXNzZXRJZAIFCkFSVFBSRVNBTEUFC2xhbmRBc3NldElkAwkAZgIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUNYWN0aXZhdGlvbktleQAAAAAJAAIBAiVQcmVzYWxlIGFydGlmYWN0IGlzIGFscmVhZHkgYWN0aXZhdGVkAwkAZgIJAQ1wYXJzZUludFZhbHVlAQkAkQMCCAUBYwJfMwUKcmVjTGFuZE51bQUPUFJFU0FMRU5VTUxBTkRTCQACAQkArAICCQCsAgIJAKwCAgUKTEFORFBSRUZJWAIBIAULbGFuZEFzc2V0SWQCJSBpcyBub3QgZWxpZ2libGUgZm9yIHByZXNhbGUgYXJ0aWZhY3QEC2NsYWltUmVzdWx0CQEIY2xhaW1BbGwEBQRhZGRyBQtsYW5kQXNzZXRJZAUGcGllY2VzBRNjbGFpbU1vZGVXaFRoZW5EdWNrCQDNCAIJAM0IAgkAzQgCCAULY2xhaW1SZXN1bHQCXzEJAQxJbnRlZ2VyRW50cnkCBQ1hY3RpdmF0aW9uS2V5BQZwaWVjZXMJAQtTdHJpbmdFbnRyeQIIBQtjbGFpbVJlc3VsdAJfMgkAuQkCCAULY2xhaW1SZXN1bHQCXzMCAToJAQtTdHJpbmdFbnRyeQIIBQtjbGFpbVJlc3VsdAJfNAkAuQkCCAULY2xhaW1SZXN1bHQCXzUCAToBBnByb2xvZwEBaQMDCQECIT0CCAUBaQxvcmlnaW5DYWxsZXIFDHJlc3RDb250cmFjdAkBC3ZhbHVlT3JFbHNlAgkAoAgBCQEKa2V5QmxvY2tlZAAHBwkAAgECH0NvbnRyYWN0cyBhcmUgdW5kZXIgbWFpbnRlbmFuY2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEWtleUxhc3RUeElkQnlVc2VyAQkApQgBCAUBaQxvcmlnaW5DYWxsZXIJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAUDbmlsARN1bnN0YWtlTGFuZEludGVybmFsAgRhZGRyC2xhbmRBc3NldElkBAV3aEtleQkBEmtleVdhcmVob3VzZUJ5TGFuZAEFC2xhbmRBc3NldElkBAhsYW5kSW5mbwkAtQkCCAkBBXZhbHVlAQkA7AcBCQDZBAEFC2xhbmRBc3NldElkC2Rlc2NyaXB0aW9uAgFfBAhsYW5kU2l6ZQkAkQMCBQhsYW5kSW5mbwULcmVjTGFuZFNpemUEBnBpZWNlcwkBD251bVBpZWNlc0J5U2l6ZQEFCGxhbmRTaXplBAppbmZyYUxldmVsCQELdmFsdWVPckVsc2UCCQCfCAEJARZrZXlJbmZyYUxldmVsQnlBc3NldElkAQULbGFuZEFzc2V0SWQAAAQJbGFuZEluZGV4CQBpAgUGcGllY2VzBQVTU0laRQQNdGVycmFpbkNvdW50cwkBDWNvdW50VGVycmFpbnMBCQCRAwIFCGxhbmRJbmZvBQtyZWNUZXJyYWlucwQJY3VycmVudFdoCQEMZ2V0V2FyZWhvdXNlAwUFd2hLZXkFCWxhbmRJbmRleAUKaW5mcmFMZXZlbAQMY3VycmVudFdoUmVzCQC1CQIJAJEDAgUJY3VycmVudFdoBQh3aElkeFJlcwIBXwQHdGltZUtleQkBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBBQtsYW5kQXNzZXRJZAQJc2F2ZWRUaW1lCQERQGV4dHJOYXRpdmUoMTA1NSkBBQd0aW1lS2V5BAlkZWx0YVRpbWUJAGUCCQEJZmluYWxUaW1lAAUJc2F2ZWRUaW1lAwkAZgIAAAUJZGVsdGFUaW1lCQACAQkArAICCQCsAgIJAKwCAgImU2F2ZWQgdGltZXN0YW1wIGlzIGluIGZ1dHVyZSwgc2F2ZWQgPSAJAKQDAQUJc2F2ZWRUaW1lAgosIGZpbmFsID0gCQCkAwEJAQlmaW5hbFRpbWUABBZkYWlseVByb2R1Y3Rpb25CeVBpZWNlCQEMYXBwbHlCb251c2VzAgULbGFuZEFzc2V0SWQFBnBpZWNlcwQNcmVzQWZ0ZXJDbGFpbQkBD3ZpcnRDbGFpbUFkZFJlcwUFDGN1cnJlbnRXaFJlcwUNdGVycmFpbkNvdW50cwUJZGVsdGFUaW1lBQlsYW5kSW5kZXgFFmRhaWx5UHJvZHVjdGlvbkJ5UGllY2UECWFydFBpZWNlcwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEga2V5TGFuZEFydFN0YXR1c0J5VHlwZUFuZEFzc2V0SWQCBQpBUlRQUkVTQUxFBQtsYW5kQXNzZXRJZAAABA9hY3Jlc0Zyb21QaWVjZXMJAGQCCQBoAgUGcGllY2VzBQVNVUxUOAkAaQIJAGgCCQBkAgkAaAIFBnBpZWNlcwUKaW5mcmFMZXZlbAUJYXJ0UGllY2VzBQVNVUxUOAAFBAxhY3Jlc0Zyb21SZXMJAGgCCQBrAwgFDXJlc0FmdGVyQ2xhaW0CXzIFEFJFU09VUkNFUFJJQ0VNSU4FBU1VTFQ4BRVVU0RUMkFDUkVTX01VTFRJUExJRVIKAQZzdW1NYXQCA2FjYwRpdGVtCQBkAgUDYWNjCQENcGFyc2VJbnRWYWx1ZQEFBGl0ZW0EBXdoTWF0CgACJGwJALUJAgkAkQMCBQljdXJyZW50V2gFCHdoSWR4TWF0AgFfCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQZzdW1NYXQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYEDGFjcmVzRnJvbU1hdAkAaAIJAGsDBQV3aE1hdAkAaAIAAgUQUkVTT1VSQ0VQUklDRU1JTgUFTVVMVDgFFVVTRFQyQUNSRVNfTVVMVElQTElFUgQFcHJvZHMDCQAAAgkAkQMCBQljdXJyZW50V2gFCXdoSWR4UHJvZAIABQNuaWwJALwJAgkAkQMCBQljdXJyZW50V2gFCXdoSWR4UHJvZAIBXwoBB3N1bVByb2QCA2FjYwRpdGVtBAFqCAUDYWNjAl8yBAtyZWNpcGVDb2VmZgkBDXBhcnNlSW50VmFsdWUBCQCRAwIJALUJAgkAkQMCBRBwcm9kdWN0aW9uTWF0cml4BQFqAgFfBQlySWR4Q29lZmYJAJQKAgkAZAIIBQNhY2MCXzEJAGgCCQBoAgkBDXBhcnNlSW50VmFsdWUBBQRpdGVtBQtyZWNpcGVDb2VmZgUFTVVMVDYJAGQCBQFqAAEEBndoUHJvZAoAAiRsBQVwcm9kcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgAAAAAKAQUkZjFfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBB3N1bVByb2QCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjFfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDI0CQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYBA1hY3Jlc0Zyb21Qcm9kCQBoAgkAawMIBQZ3aFByb2QCXzEJAGgCAAIFEFJFU09VUkNFUFJJQ0VNSU4FBU1VTFQ4BRVVU0RUMkFDUkVTX01VTFRJUExJRVIJAJYKBAUPYWNyZXNGcm9tUGllY2VzBQxhY3Jlc0Zyb21SZXMFDGFjcmVzRnJvbU1hdAUNYWNyZXNGcm9tUHJvZAETdW5zdGFrZUR1Y2tJbnRlcm5hbAIEYWRkcgtkdWNrQXNzZXRJZAQFZXFLZXkJARBrZXlEdWNrRXF1aXBtZW50AQULZHVja0Fzc2V0SWQEC2N1cnJlbnRTZWdzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQUFZXFLZXkCFyw7LF8sOyxfLDssXyw7LF8sOyxfLDssAgFfBAVicEtleQkBEWtleUJhY2twYWNrQnlEdWNrAQULZHVja0Fzc2V0SWQEC2N1cnJlbnRQYWNrCQELZ2V0QmFja3BhY2sBBQVicEtleQQJdGVtcFByb2RCCQEGZHJlc3NCBAULY3VycmVudFNlZ3MJAQ5wcm9kU3RyVG9CeXRlcwEJAJEDAgULY3VycmVudFBhY2sFCWJwSWR4UHJvZAYFA25pbAQKbmV3UHJvZFN0cgkBDmJ5dGVzVG9Qcm9kU3RyAQUJdGVtcFByb2RCCgEJc3VtUmVzTWF0AgNhY2MEaXRlbQkAZAIFA2FjYwkBDXBhcnNlSW50VmFsdWUBBQRpdGVtBAVicFJlcwoAAiRsCQC1CQIJAJEDAgULY3VycmVudFBhY2sFCGJwSWR4UmVzAgFfCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQlzdW1SZXNNYXQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYEDGFjcmVzRnJvbVJlcwkAaAIJAGsDBQVicFJlcwUQUkVTT1VSQ0VQUklDRU1JTgUFTVVMVDgFFVVTRFQyQUNSRVNfTVVMVElQTElFUgQFYnBNYXQKAAIkbAkAtQkCCQCRAwIFC2N1cnJlbnRQYWNrBQhicElkeE1hdAIBXwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAAAAoBBSRmMV8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEJc3VtUmVzTWF0AgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYxXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA2CQEFJGYxXzICCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECCQEFJGYxXzECBQUkYWNjMAAAAAEAAgADAAQABQAGBAxhY3Jlc0Zyb21NYXQJAGgCCQBrAwUFYnBNYXQJAGgCAAIFEFJFU09VUkNFUFJJQ0VNSU4FBU1VTFQ4BRVVU0RUMkFDUkVTX01VTFRJUExJRVIEBXByb2RzAwkAAAIFCm5ld1Byb2RTdHICAAUDbmlsCQC8CQIFCm5ld1Byb2RTdHICAV8KAQdzdW1Qcm9kAgNhY2MEaXRlbQQBaggFA2FjYwJfMgQLcmVjaXBlQ29lZmYJAQ1wYXJzZUludFZhbHVlAQkAkQMCCQC1CQIJAJEDAgUQcHJvZHVjdGlvbk1hdHJpeAUBagIBXwUJcklkeENvZWZmCQCUCgIJAGQCCAUDYWNjAl8xCQBoAgkAaAIJAQ1wYXJzZUludFZhbHVlAQUEaXRlbQULcmVjaXBlQ29lZmYFBU1VTFQ2CQBkAgUBagABBAZicFByb2QKAAIkbAUFcHJvZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIAAAAACgEFJGYyXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdzdW1Qcm9kAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYyXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAyNAkBBSRmMl8yAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgkBBSRmMl8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAQNYWNyZXNGcm9tUHJvZAkAaAIJAGsDCAUGYnBQcm9kAl8xCQBoAgACBRBSRVNPVVJDRVBSSUNFTUlOBQVNVUxUOAUVVVNEVDJBQ1JFU19NVUxUSVBMSUVSCQCVCgMFDGFjcmVzRnJvbVJlcwUMYWNyZXNGcm9tTWF0BQ1hY3Jlc0Zyb21Qcm9kIQFpAQ1jb25zdHJ1Y3RvclYxAQhyZXN0QWRkcgMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEVBlcm1pc3Npb24gZGVuaWVkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5rZXlSZXN0QWRkcmVzcwAFCHJlc3RBZGRyBQNuaWwBaQELc2F2ZUludGVnZXICA2tleQZhbW91bnQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAiBzYXZlSW50ZWdlciBpcyBub3QgcHVibGljIG1ldGhvZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUDa2V5BQZhbW91bnQFA25pbAFpAQpzZXRCbG9ja2VkAQlpc0Jsb2NrZWQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhFwZXJtaXNzaW9uIGRlbmllZAkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBCmtleUJsb2NrZWQABQlpc0Jsb2NrZWQFA25pbAFpAQlzdGFrZUxhbmQABA1wcm9sb2dBY3Rpb25zCQEGcHJvbG9nAQUBaQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECHEV4YWN0bHkgb25lIHBheW1lbnQgcmVxdWlyZWQEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAdhc3NldElkCQEFdmFsdWUBCAUDcG10B2Fzc2V0SWQEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyAwkBAiE9AggFA3BtdAZhbW91bnQAAQkAAgEJAKwCAgkArAICAgRORlQgBQpMQU5EUFJFRklYAiQgdG9rZW4gc2hvdWxkIGJlIGF0dGFjaGVkIGFzIHBheW1lbnQEBWFzc2V0CQEFdmFsdWUBCQDsBwEFB2Fzc2V0SWQDCQECIT0CCAUFYXNzZXQGaXNzdWVyBQR0aGlzCQACAQIXVW5rbm93biBpc3N1ZXIgb2YgdG9rZW4DCQEBIQEJAQhjb250YWlucwIIBQVhc3NldARuYW1lBQpMQU5EUFJFRklYCQACAQkArAICCQCsAgICCU9ubHkgTkZUIAUKTEFORFBSRUZJWAIUIHRva2VucyBhcmUgYWNjZXB0ZWQEC2xhbmROdW1TaXplCQCwAgIIBQVhc3NldARuYW1lAAQEB2xhbmROdW0DCQEIY29udGFpbnMCBQtsYW5kTnVtU2l6ZQIDWFhMCQCzAgIFC2xhbmROdW1TaXplAAMDCQEIY29udGFpbnMCBQtsYW5kTnVtU2l6ZQICWEwJALMCAgULbGFuZE51bVNpemUAAgkAswICBQtsYW5kTnVtU2l6ZQABAwkBASEBCQEJaXNEZWZpbmVkAQkAtgkBBQdsYW5kTnVtCQACAQkArAICAh5DYW5ub3QgcGFyc2UgbGFuZCBudW1iZXIgZnJvbSAIBQVhc3NldARuYW1lBAtsYW5kQXNzZXRJZAkA2AQBBQdhc3NldElkBAd0aW1lS2V5CQEWa2V5U3Rha2VkVGltZUJ5QXNzZXRJZAEFC2xhbmRBc3NldElkAwkBCWlzRGVmaW5lZAEJAJ8IAQUHdGltZUtleQkAAgEJAKwCAgkArAICAgRORlQgCAUFYXNzZXQEbmFtZQISIGlzIGFscmVhZHkgc3Rha2VkBAFkCQC1CQIIBQVhc3NldAtkZXNjcmlwdGlvbgIBXwQNdGVycmFpbkNvdW50cwkBDWNvdW50VGVycmFpbnMBCQCRAwIFAWQFC3JlY1RlcnJhaW5zBAZwaWVjZXMJAQ9udW1QaWVjZXNCeVNpemUBCQCRAwIFAWQFC3JlY0xhbmRTaXplBAlsYW5kSW5kZXgJAGkCBQZwaWVjZXMFBVNTSVpFBAVwcm9wcwkBEXVwZGF0ZVByb3BvcnRpb25zAwUNdGVycmFpbkNvdW50cwUJbGFuZEluZGV4AAEEDHJlc0J5Q29udEtleQkBFmtleVJlc1R5cGVzQnlDb250aW5lbnQBCQCRAwIFAWQFDHJlY0NvbnRpbmVudAQJY29udFByb3BzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQUMcmVzQnlDb250S2V5AgswXzBfMF8wXzBfMAIBXwQQdXBkYXRlZENvbnRQcm9wcwkAuQkCCQEZdXBkYXRlUHJvcG9ydGlvbnNJbnRlcm5hbAQFCWNvbnRQcm9wcwUNdGVycmFpbkNvdW50cwUJbGFuZEluZGV4AAECAV8ECGxhbmRzS2V5CQEVa2V5U3Rha2VkTGFuZHNCeU93bmVyAQUHYWRkcmVzcwQIbGFuZHNTdHIJAKIIAQUIbGFuZHNLZXkEBWxhbmRzAwkBCWlzRGVmaW5lZAEFCGxhbmRzU3RyCQC9CQIJAQV2YWx1ZQEFCGxhbmRzU3RyAgFfBQNuaWwDCQEPY29udGFpbnNFbGVtZW50AgUFbGFuZHMFC2xhbmRBc3NldElkCQACAQkArAICAiJZb3VyIHN0YWtlZCBsYW5kcyBhbHJlYWR5IGNvbnRhaW4gBQtsYW5kQXNzZXRJZAMJAGcCCQCQAwEFBWxhbmRzBRhNQVhfTEFORFNfU1RBS0VEX0JZX1VTRVIJAAIBCQCsAgIJAKwCAgIZWW91ciBhbHJlYWR5IHN0YWtlZCBtYXggKAkApAMBBRhNQVhfTEFORFNfU1RBS0VEX0JZX1VTRVICBykgbGFuZHMECmluZnJhTGV2ZWwJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBFmtleUluZnJhTGV2ZWxCeUFzc2V0SWQBBQtsYW5kQXNzZXRJZAAABAlwaWVjZXNLZXkJARZrZXlTdGFrZWRQaWVjZXNCeU93bmVyAQUHYWRkcmVzcwQJb2xkUGllY2VzCQELdmFsdWVPckVsc2UCCQCfCAEFCXBpZWNlc0tleQAABAl3bGdSZXN1bHQJAPwHBAULd2xnQ29udHJhY3QCEm9uU3Rha2VVbnN0YWtlTGFuZAkAzAgCBQdhZGRyZXNzBQNuaWwFA25pbAkAlAoCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFB3RpbWVLZXkIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEia2V5U3Rha2VkVGltZUJ5VHlwZUFzc2V0SWRBbmRPd25lcgMFCkxBTkRQUkVGSVgFC2xhbmRBc3NldElkBQdhZGRyZXNzCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQELU3RyaW5nRW50cnkCBQhsYW5kc0tleQkAuwkCCQDNCAIFBWxhbmRzBQtsYW5kQXNzZXRJZAIBXwkAzAgCCQEMSW50ZWdlckVudHJ5AgUJcGllY2VzS2V5CQBkAgUJb2xkUGllY2VzBQZwaWVjZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBFWtleUxhbmRBc3NldElkVG9Pd25lcgEFC2xhbmRBc3NldElkBQdhZGRyZXNzCQDMCAIJAQtTdHJpbmdFbnRyeQIJARFrZXlMYW5kTnVtVG9Pd25lcgEFB2xhbmROdW0FB2FkZHJlc3MJAMwIAgkBDEludGVnZXJFbnRyeQIJAR5rZXlJbmZyYUxldmVsQnlBc3NldElkQW5kT3duZXICBQtsYW5kQXNzZXRJZAUHYWRkcmVzcwUKaW5mcmFMZXZlbAkAzAgCCQELU3RyaW5nRW50cnkCCQERa2V5UmVzUHJvcG9ydGlvbnMABQVwcm9wcwkAzAgCCQELU3RyaW5nRW50cnkCBQxyZXNCeUNvbnRLZXkFEHVwZGF0ZWRDb250UHJvcHMFA25pbAUNcHJvbG9nQWN0aW9ucwUJd2xnUmVzdWx0AWkBC3Vuc3Rha2VMYW5kAQ1sYW5kQXNzZXRJZEluBA1wcm9sb2dBY3Rpb25zCQEGcHJvbG9nAQUBaQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECFE5vIHBheW1lbnRzIHJlcXVpcmVkBARhZGRyCQClCAEIBQFpBmNhbGxlcgQBYwkBFGNoZWNrQ2xhaW1Db25kaXRpb25zAwUEYWRkcgUNY2xhaW1Nb2RlRHVjawUNbGFuZEFzc2V0SWRJbgQLbGFuZEFzc2V0SWQIBQFjAl8yBAFkCAUBYwJfMwQIbGFuZHNLZXkJARVrZXlTdGFrZWRMYW5kc0J5T3duZXIBBQRhZGRyBA10ZXJyYWluQ291bnRzCQENY291bnRUZXJyYWlucwEJAJEDAgUBZAULcmVjVGVycmFpbnMEBnBpZWNlcwkBD251bVBpZWNlc0J5U2l6ZQEJAJEDAgUBZAULcmVjTGFuZFNpemUECWxhbmRJbmRleAkAaQIFBnBpZWNlcwUFU1NJWkUEBXByb3BzCQERdXBkYXRlUHJvcG9ydGlvbnMDBQ10ZXJyYWluQ291bnRzBQlsYW5kSW5kZXgA////////////AQQMcmVzQnlDb250S2V5CQEWa2V5UmVzVHlwZXNCeUNvbnRpbmVudAEJAJEDAgUBZAUMcmVjQ29udGluZW50BAljb250UHJvcHMJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBBQxyZXNCeUNvbnRLZXkCCzBfMF8wXzBfMF8wAgFfBBB1cGRhdGVkQ29udFByb3BzCQC5CQIJARl1cGRhdGVQcm9wb3J0aW9uc0ludGVybmFsBAUJY29udFByb3BzBQ10ZXJyYWluQ291bnRzBQlsYW5kSW5kZXgA////////////AQIBXwQLY2xhaW1SZXN1bHQJAQhjbGFpbUFsbAQFBGFkZHIFC2xhbmRBc3NldElkBQZwaWVjZXMFDWNsYWltTW9kZUR1Y2sEBWxhbmRzCQC9CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQUIbGFuZHNLZXkCAAIBXwQDaWR4CQDPCAIFBWxhbmRzBQtsYW5kQXNzZXRJZAMJAQEhAQkBCWlzRGVmaW5lZAEFA2lkeAkAAgEJAKwCAgIgWW91ciBzdGFrZWQgbGFuZHMgZG9uJ3QgY29udGFpbiAFC2xhbmRBc3NldElkBANub3cIBQlsYXN0QmxvY2sJdGltZXN0YW1wBA5nb3ZSZWxlYXNlVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQtnb3ZDb250cmFjdAkBFWtleVVzZXJHd2xSZWxlYXNlVGltZQEFBGFkZHIAAAMJAGcCBQ5nb3ZSZWxlYXNlVGltZQUDbm93CQACAQkArAICAjlZb3VyIGdXTCBhcmUgdGFraW5nIHBhcnQgaW4gdm90aW5nLCBjYW5ub3QgdW5zdGFrZSB1bnRpbCAJAKQDAQUOZ292UmVsZWFzZVRpbWUEDmFyYlJlbGVhc2VUaW1lCQBkAgkBC3ZhbHVlT3JFbHNlAgkAmggCBQt3bGdDb250cmFjdAkBGWtleUxhc3RXbGdUcmFkZVRpbWVCeVVzZXIBBQRhZGRyAAAFDmFyYml0cmFnZURlbGF5AwkAZgIFDmFyYlJlbGVhc2VUaW1lBQNub3cJAAIBCQCsAgICP1lvdXIgc3Rha2VkIGxhbmRzIHRvb2sgcGFydCBpbiBhcmJpdHJhZ2UsIGNhbm5vdCB1bnN0YWtlIHVudGlsIAkApAMBBQ5hcmJSZWxlYXNlVGltZQQJcGllY2VzS2V5CQEWa2V5U3Rha2VkUGllY2VzQnlPd25lcgEFBGFkZHIEDHN0YWtlZFBpZWNlcwkBC3ZhbHVlT3JFbHNlAgkAnwgBBQlwaWVjZXNLZXkAAAQJbmV3UGllY2VzAwkAZgIFBnBpZWNlcwUMc3Rha2VkUGllY2VzAAAJAGUCBQxzdGFrZWRQaWVjZXMFBnBpZWNlcwQJd2xnUmVzdWx0CQD8BwQFC3dsZ0NvbnRyYWN0AhJvblN0YWtlVW5zdGFrZUxhbmQJAMwIAgUEYWRkcgUDbmlsBQNuaWwJAJQKAgkAzggCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABCQDZBAEFC2xhbmRBc3NldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQULbGFuZEFzc2V0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBImtleVN0YWtlZFRpbWVCeVR5cGVBc3NldElkQW5kT3duZXIDBQpMQU5EUFJFRklYBQtsYW5kQXNzZXRJZAUEYWRkcgkAzAgCCQELU3RyaW5nRW50cnkCCQERa2V5UmVzUHJvcG9ydGlvbnMABQVwcm9wcwkAzAgCCQELU3RyaW5nRW50cnkCBQxyZXNCeUNvbnRLZXkFEHVwZGF0ZWRDb250UHJvcHMJAMwIAgkBC1N0cmluZ0VudHJ5AggFC2NsYWltUmVzdWx0Al8yCQC5CQIIBQtjbGFpbVJlc3VsdAJfMwIBOgkAzAgCAwkAZgIJAJADAQUFbGFuZHMAAQkBC1N0cmluZ0VudHJ5AgUIbGFuZHNLZXkJALsJAgkA0QgCBQVsYW5kcwkBBXZhbHVlAQUDaWR4AgFfCQELRGVsZXRlRW50cnkBBQhsYW5kc0tleQkAzAgCCQEMSW50ZWdlckVudHJ5AgUJcGllY2VzS2V5BQluZXdQaWVjZXMFA25pbAUNcHJvbG9nQWN0aW9ucwUJd2xnUmVzdWx0AWkBE3Vuc3Rha2VMYW5kQ2FsbGJhY2sCC2xhbmRBc3NldElkBGFkZHIDCQECIT0CCQClCAEIBQFpBmNhbGxlcgUQYWNyZXMyQWRkcmVzc1N0cgkAAgECEVBlcm1pc3Npb24gZGVuaWVkBA11bnN0YWtlUmVzdWx0CQETdW5zdGFrZUxhbmRJbnRlcm5hbAIFBGFkZHIFC2xhbmRBc3NldElkBAl3bGdSZXN1bHQJAPwHBAULd2xnQ29udHJhY3QCEm9uU3Rha2VVbnN0YWtlTGFuZAkAzAgCBQRhZGRyBQNuaWwFA25pbAkAlAoCCQDMCAIJAQRCdXJuAgkA2QQBBQtsYW5kQXNzZXRJZAABCQDMCAIJAQtEZWxldGVFbnRyeQEJARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQULbGFuZEFzc2V0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBImtleVN0YWtlZFRpbWVCeVR5cGVBc3NldElkQW5kT3duZXIDBQpMQU5EUFJFRklYBQtsYW5kQXNzZXRJZAUEYWRkcgUDbmlsCQCXCgUIBQ11bnN0YWtlUmVzdWx0Al8xCAUNdW5zdGFrZVJlc3VsdAJfMggFDXVuc3Rha2VSZXN1bHQCXzMIBQ11bnN0YWtlUmVzdWx0Al80BQl3bGdSZXN1bHQBaQETdW5zdGFrZUxhbmRSRUFET05MWQILbGFuZEFzc2V0SWQEYWRkcgQNdW5zdGFrZVJlc3VsdAkBE3Vuc3Rha2VMYW5kSW50ZXJuYWwCBQRhZGRyBQtsYW5kQXNzZXRJZAkAlAoCBQNuaWwFDXVuc3Rha2VSZXN1bHQBaQEcdW5zdGFrZUxhbmRzRmluYWxpemVDYWxsYmFjawEEYWRkcgMJAQIhPQIJAKUIAQgFAWkGY2FsbGVyBRBhY3JlczJBZGRyZXNzU3RyCQACAQIRUGVybWlzc2lvbiBkZW5pZWQJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQEVa2V5U3Rha2VkTGFuZHNCeU93bmVyAQUEYWRkcgkAzAgCCQELRGVsZXRlRW50cnkBCQEWa2V5U3Rha2VkUGllY2VzQnlPd25lcgEFBGFkZHIFA25pbAAAAWkBFGNvbnZlcnRVbnN0YWtlZExhbmRzAAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECHEV4YWN0bHkgb25lIHBheW1lbnQgcmVxdWlyZWQEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAdhc3NldElkCQEFdmFsdWUBCAUDcG10B2Fzc2V0SWQEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyAwkBAiE9AggFA3BtdAZhbW91bnQAAQkAAgEJAKwCAgkArAICAgRORlQgBQpMQU5EUFJFRklYAiQgdG9rZW4gc2hvdWxkIGJlIGF0dGFjaGVkIGFzIHBheW1lbnQEBWFzc2V0CQEFdmFsdWUBCQDsBwEFB2Fzc2V0SWQDCQECIT0CCAUFYXNzZXQGaXNzdWVyBQR0aGlzCQACAQIXVW5rbm93biBpc3N1ZXIgb2YgdG9rZW4DCQEBIQEJAQhjb250YWlucwIIBQVhc3NldARuYW1lBQpMQU5EUFJFRklYCQACAQkArAICCQCsAgICCU9ubHkgTkZUIAUKTEFORFBSRUZJWAIUIHRva2VucyBhcmUgYWNjZXB0ZWQEC2xhbmRBc3NldElkCQDYBAEFB2Fzc2V0SWQEAWQJALUJAggFBWFzc2V0C2Rlc2NyaXB0aW9uAgFfBAZwaWVjZXMJAQ9udW1QaWVjZXNCeVNpemUBCQCRAwIFAWQFC3JlY0xhbmRTaXplBAppbmZyYUxldmVsCQELdmFsdWVPckVsc2UCCQCfCAEJARZrZXlJbmZyYUxldmVsQnlBc3NldElkAQULbGFuZEFzc2V0SWQAAAQJYXJ0UGllY2VzCQELdmFsdWVPckVsc2UCCQCfCAEJASBrZXlMYW5kQXJ0U3RhdHVzQnlUeXBlQW5kQXNzZXRJZAIFCkFSVFBSRVNBTEUFC2xhbmRBc3NldElkAAAEC2FjcmVzQW1vdW50CQBkAgkAaAIFBnBpZWNlcwUFTVVMVDgJAGkCCQBoAgkAZAIJAGgCBQZwaWVjZXMFCmluZnJhTGV2ZWwFCWFydFBpZWNlcwUFTVVMVDgABQQDcmVxCQD8BwQFDWFjcmVzQ29udHJhY3QCFHJlcXVlc3RBY3Jlc0NhbGxiYWNrCQDMCAIFC2FjcmVzQW1vdW50BQNuaWwFA25pbAMJAAACBQNyZXEFA3JlcQQFY2FsbGIJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUQYWNyZXMyQWRkcmVzc1N0cgISc3Rha2VBY3Jlc0NhbGxiYWNrCQDMCAIFB2FkZHJlc3MFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUMYWNyZXNBc3NldElkBQthY3Jlc0Ftb3VudAUDbmlsAwkAAAIFBWNhbGxiBQVjYWxsYgkAlAoCCQDMCAIJAQRCdXJuAgkA2QQBBQtsYW5kQXNzZXRJZAABBQNuaWwAAAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARN1bnN0YWtlRHVja0NhbGxiYWNrAgtkdWNrQXNzZXRJZARhZGRyAwkBAiE9AgkApQgBCAUBaQZjYWxsZXIFEGFjcmVzMkFkZHJlc3NTdHIJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQNdW5zdGFrZVJlc3VsdAkBE3Vuc3Rha2VEdWNrSW50ZXJuYWwCBQRhZGRyBQtkdWNrQXNzZXRJZAkAlAoCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFBGFkZHIAAQkA2QQBBQtkdWNrQXNzZXRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEWa2V5U3Rha2VkVGltZUJ5QXNzZXRJZAEFC2R1Y2tBc3NldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJARBrZXlEdWNrSWRUb093bmVyAQULZHVja0Fzc2V0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBImtleVN0YWtlZFRpbWVCeVR5cGVBc3NldElkQW5kT3duZXIDBQpEVUNLUFJFRklYBQtkdWNrQXNzZXRJZAUEYWRkcgkAzAgCCQELRGVsZXRlRW50cnkBCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBBQRhZGRyBQNuaWwFDXVuc3Rha2VSZXN1bHQBaQETdW5zdGFrZUR1Y2tSRUFET05MWQILZHVja0Fzc2V0SWQEYWRkcgQNdW5zdGFrZVJlc3VsdAkBE3Vuc3Rha2VEdWNrSW50ZXJuYWwCBQRhZGRyBQtkdWNrQXNzZXRJZAkAlAoCBQNuaWwFDXVuc3Rha2VSZXN1bHQBaQEIY2xhaW1SZXMCBmFtb3VudA5sYW5kQXNzZXRJZFN0cgQNcHJvbG9nQWN0aW9ucwkBBnByb2xvZwEFAWkDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhRObyBwYXltZW50cyByZXF1aXJlZAQEYWRkcgkApQgBCAUBaQxvcmlnaW5DYWxsZXIEBnJlc3VsdAkBEGNsYWltUmVzSW50ZXJuYWwEBQRhZGRyBQZhbW91bnQFDWNsYWltTW9kZUR1Y2sFDmxhbmRBc3NldElkU3RyBAtkdWNrQXNzZXRJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJARRrZXlTdGFrZWREdWNrQnlPd25lcgEFBGFkZHICHFlvdSBkb24ndCBoYXZlIGEgZHVjayBzdGFrZWQJAJQKAgkAzggCCQDNCAIJAM0IAgkAzggCCAUGcmVzdWx0Al8xCAkBF3VwZGF0ZUR1Y2tTdGF0c0ludGVybmFsAgULZHVja0Fzc2V0SWQJAGsDBQd4cENsYWltBQZhbW91bnQFBU1VTFQ4Al8xCQELU3RyaW5nRW50cnkCCAUGcmVzdWx0Al8yCQC5CQIIBQZyZXN1bHQCXzMCAToJAQtTdHJpbmdFbnRyeQIIBQZyZXN1bHQCXzQJALkJAggFBnJlc3VsdAJfNQIBOgUNcHJvbG9nQWN0aW9ucwkAkQMCCAUGcmVzdWx0Al8zBQhicElkeFJlcwFpAQxjbGFpbVJlc1RvV0gCBmFtb3VudA5sYW5kQXNzZXRJZFN0cgQNcHJvbG9nQWN0aW9ucwkBBnByb2xvZwEFAWkDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhRObyBwYXltZW50cyByZXF1aXJlZAQEYWRkcgkApQgBCAUBaQxvcmlnaW5DYWxsZXIEBnJlc3VsdAkBEGNsYWltUmVzSW50ZXJuYWwEBQRhZGRyBQZhbW91bnQFC2NsYWltTW9kZVdoBQ5sYW5kQXNzZXRJZFN0cgkAlAoCCQDOCAIJAM0IAgkAzQgCCQDOCAIIBQZyZXN1bHQCXzEICQEWdXBkYXRlQWNjU3RhdHNJbnRlcm5hbAIFBGFkZHIJAGsDBQd4cENsYWltBQZhbW91bnQFBU1VTFQ4Al8xCQELU3RyaW5nRW50cnkCCAUGcmVzdWx0Al8yCQC5CQIIBQZyZXN1bHQCXzMCAToJAQtTdHJpbmdFbnRyeQIIBQZyZXN1bHQCXzQJALkJAggFBnJlc3VsdAJfNQIBOgUNcHJvbG9nQWN0aW9ucwkAkQMCCAUGcmVzdWx0Al81BQh3aElkeFJlcwFpAQ51cGRhdGVCYWNrcGFjawILZHVja0Fzc2V0SWQHbmV3UGFjawMJAQIhPQIIBQFpBmNhbGxlcgUPZWNvbm9teUNvbnRyYWN0CQACAQIRcGVybWlzc2lvbiBkZW5pZWQJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQERa2V5QmFja3BhY2tCeUR1Y2sBBQtkdWNrQXNzZXRJZAUHbmV3UGFjawUDbmlsBQduZXdQYWNrAWkBD2NvbW1pdEZvclJhbmRvbQAEDXByb2xvZ0FjdGlvbnMJAQZwcm9sb2cBBQFpBAtmaW5pc2hCbG9jawkAZAIFBmhlaWdodAULcmFuZG9tRGVsYXkEBGFkZHIJAKUIAQgFAWkGY2FsbGVyCQCUCgIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBCWtleUNvbW1pdAEFBGFkZHIFC2ZpbmlzaEJsb2NrBQNuaWwFDXByb2xvZ0FjdGlvbnMFC2ZpbmlzaEJsb2NrAWkBDHJldmVhbFJhbmRvbQEIbWF4VmFsdWUEDXByb2xvZ0FjdGlvbnMJAQZwcm9sb2cBBQFpBARhZGRyCQClCAEIBQFpBmNhbGxlcgQJZmluaXNoS2V5CQEJa2V5Q29tbWl0AQUEYWRkcgQLZmluaXNoQmxvY2sJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBBQlmaW5pc2hLZXkCJFlvdSBoYXZlIHRvIGNvbW1pdEZvclJhbmRvbSgpIGZpcnN0IQMJAGYCBQtmaW5pc2hCbG9jawUGaGVpZ2h0CQACAQkArAICAjRSYW5kb20gbnVtYmVyIGlzIG5vdCByZWFkeSB5ZXQsIHdhaXQgdW50aWwgaGVpZ2h0ID0gCQCkAwEFC2ZpbmlzaEJsb2NrBAdlbnRyb3B5CQEFdmFsdWUBCAkBBXZhbHVlAQkA7QcBBQtmaW5pc2hCbG9jawN2cmYEBHNhbHQJAJsDAQkBC3ZhbHVlT3JFbHNlAgkAoggBCQERa2V5TGFzdFR4SWRCeVVzZXIBBQRhZGRyAgAEBHJhbmQJAQ9nZXRSYW5kb21OdW1iZXIDBQhtYXhWYWx1ZQUEc2FsdAUHZW50cm9weQkAlAoCCQDOCAIJAMwIAgkBC0RlbGV0ZUVudHJ5AQUJZmluaXNoS2V5BQNuaWwFDXByb2xvZ0FjdGlvbnMFBHJhbmQBaQEQYWN0aXZhdGVBcnRpZmFjdAIHYXJ0TmFtZQ5sYW5kQXNzZXRJZE9wdAQNcHJvbG9nQWN0aW9ucwkBBnByb2xvZwEFAWkDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhRObyBwYXltZW50cyByZXF1aXJlZAQEYWRkcgkApQgBCAUBaQZjYWxsZXIEBnJlc3VsdAQHJG1hdGNoMAUHYXJ0TmFtZQMJAAACAgdQUkVTQUxFBQckbWF0Y2gwCQESYWN0aXZhdGVQcmVzYWxlQXJ0AgUEYWRkcgUObGFuZEFzc2V0SWRPcHQDCQAAAgIHT05CT0FSRAUHJG1hdGNoMAkBEmFjdGl2YXRlT25ib2FyZEFydAEFBGFkZHIJAAIBAhBVbmtub3duIGFydGlmYWN0CQDOCAIFBnJlc3VsdAUNcHJvbG9nQWN0aW9ucwFpAQ1zYXZlV2FyZWhvdXNlAgV3aFN0cgtsYW5kQXNzZXRJZAMJAQIhPQIIBQFpBmNhbGxlcgUPZWNvbm9teUNvbnRyYWN0CQACAQINQWNjZXNzIGRlbmllZAQFd2hLZXkJARJrZXlXYXJlaG91c2VCeUxhbmQBBQtsYW5kQXNzZXRJZAQCd2gJALwJAgUFd2hTdHICAToDCQECIT0CCQCQAwEFAndoAAUJAAIBAjB3YXJlaG91c2Ugc3RyaW5nIHNob3VsZCBjb250YWluIDQgJzonIHNlcGFyYXRvcnMEBWxvZnRMCQCRAwIJALUJAgkAkQMCBQJ3aAUJd2hJZHhMT0ZUAgFfBQl2b2xMb2NrZWQEBWxvZnRPCQEXZ2V0V2FyZWhvdXNlT2NjdXBpZWRWb2wBBQJ3aAQFbG9mdFQJARdnZXRXYXJlaG91c2VUb3RhbFZvbHVtZQEJAJEDAgUCd2gFC3doSWR4TGV2ZWxzBAVsb2Z0RgkAZQIJAGUCBQVsb2Z0VAkBDXBhcnNlSW50VmFsdWUBBQVsb2Z0TAUFbG9mdE8DCQBmAgAABQVsb2Z0RgkAAgECME9wZXJhdGlvbiBsZWFkcyB0byBuZWdhdGl2ZSBmcmVlIHdhcmVob3VzZSBzcGFjZQQIbmV3V2hTdHIJALoJAgkAzAgCCQCRAwIFAndoBQt3aElkeExldmVscwkAzAgCCQCRAwIFAndoBQh3aElkeFJlcwkAzAgCCQCRAwIFAndoBQh3aElkeE1hdAkAzAgCCQCRAwIFAndoBQl3aElkeFByb2QJAMwIAgkAuQkCCQDMCAIFBWxvZnRMCQDMCAIJAKQDAQUFbG9mdE8JAMwIAgkApAMBBQVsb2Z0RgkAzAgCCQCkAwEFBWxvZnRUBQNuaWwCAV8FA25pbAIBOgkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFBXdoS2V5BQhuZXdXaFN0cgUDbmlsBQhuZXdXaFN0cgFpAQ1zZXRDdXN0b21OYW1lAwdhc3NldElkCmN1c3RvbU5hbWUEdHlwZQQNcHJvbG9nQWN0aW9ucwkBBnByb2xvZwEFAWkDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAhxFeGFjdGx5IG9uZSBwYXltZW50IHJlcXVpcmVkBANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAMJAQIhPQIIBQNwbXQHYXNzZXRJZAULdXNkdEFzc2V0SWQJAAIBAhpBbGxvd2VkIFVTRFQgcGF5bWVudCBvbmx5IQMJAQIhPQIIBQNwbXQGYW1vdW50BQxSRU5BTUlOR0NPU1QJAAIBCQCsAgICElBheW1lbnQgc2hvdWxkIGJlIAkApAMBBQxSRU5BTUlOR0NPU1QDCQEIY29udGFpbnMCBQpjdXN0b21OYW1lAgJfXwkAAgEJAKwCAgIeTmFtZSBzaG91bGQgbm90IGNvbnRhaW4gJ19fJzogBQpjdXN0b21OYW1lAwkAZgIJALECAQUKY3VzdG9tTmFtZQUKTUFYTkFNRUxFTgkAAgEJAKwCAgIZTmFtZSB0b28gbG9uZywgbWF4TGVuZ3RoPQkApAMBBQpNQVhOQU1FTEVOBARhZGRyCQClCAEIBQFpDG9yaWdpbkNhbGxlcgQHYWN0aW9ucwQHJG1hdGNoMAUEdHlwZQMJAAACAgdBQ0NPVU5UBQckbWF0Y2gwBApyZXZlcnNlS2V5CQEWa2V5Q3VzdG9tTmFtZVRvQWRkcmVzcwEFCmN1c3RvbU5hbWUECW5hbWVPd25lcgkAoggBBQpyZXZlcnNlS2V5AwkBCWlzRGVmaW5lZAEFCW5hbWVPd25lcgkAAgEJAKwCAgIZTmFtZSBhbHJlYWR5IHJlZ2lzdGVyZWQ6IAUKY3VzdG9tTmFtZQQNYWRkclRvTmFtZUtleQkBFmtleUFkZHJlc3NUb0N1c3RvbU5hbWUBBQRhZGRyBAdvbGROYW1lCQCiCAEFDWFkZHJUb05hbWVLZXkEB2ZyZWVPbGQDCQEJaXNEZWZpbmVkAQUHb2xkTmFtZQkAzAgCCQELRGVsZXRlRW50cnkBCQEWa2V5Q3VzdG9tTmFtZVRvQWRkcmVzcwEJAQV2YWx1ZQEFB29sZE5hbWUFA25pbAUDbmlsCQDOCAIJAM0IAgkAzQgCBQdmcmVlT2xkCQELU3RyaW5nRW50cnkCBQ1hZGRyVG9OYW1lS2V5BQpjdXN0b21OYW1lCQELU3RyaW5nRW50cnkCBQpyZXZlcnNlS2V5BQRhZGRyCAkBFnVwZGF0ZUFjY1N0YXRzSW50ZXJuYWwCBQRhZGRyBQx4cEN1c3RvbU5hbWUCXzEDCQAAAgIETEFORAUHJG1hdGNoMAQFYXNzZXQJAQV2YWx1ZQEJAOwHAQkA2QQBBQdhc3NldElkBAd0aW1lS2V5CQEWa2V5U3Rha2VkVGltZUJ5QXNzZXRJZAEFB2Fzc2V0SWQDCQEBIQEJAQlpc0RlZmluZWQBCQCfCAEFB3RpbWVLZXkJAAIBCQCsAgIIBQVhc3NldARuYW1lAg4gaXMgbm90IHN0YWtlZAQFb3duZXIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEVa2V5TGFuZEFzc2V0SWRUb093bmVyAQUHYXNzZXRJZAkArAICCQCsAgICBE5GVCAIBQVhc3NldARuYW1lAgwgaXMgb3JwaGFuZWQDCQECIT0CBQVvd25lcgUEYWRkcgkAAgEJAKwCAgUKTEFORFBSRUZJWAINIGlzIG5vdCB5b3VycwQKcmV2ZXJzZUtleQkBGmtleUxhbmRDdXN0b21OYW1lVG9Bc3NldElkAQUKY3VzdG9tTmFtZQQJbmFtZU93bmVyCQCiCAEFCnJldmVyc2VLZXkDCQEJaXNEZWZpbmVkAQUJbmFtZU93bmVyCQACAQkArAICAhlOYW1lIGFscmVhZHkgcmVnaXN0ZXJlZDogBQpjdXN0b21OYW1lBA5hc3NldFRvTmFtZUtleQkBGmtleUxhbmRBc3NldElkVG9DdXN0b21OYW1lAQUHYXNzZXRJZAQHb2xkTmFtZQkAoggBBQ5hc3NldFRvTmFtZUtleQQHZnJlZU9sZAMJAQlpc0RlZmluZWQBBQdvbGROYW1lCQDMCAIJAQtEZWxldGVFbnRyeQEJARprZXlMYW5kQ3VzdG9tTmFtZVRvQXNzZXRJZAEJAQV2YWx1ZQEFB29sZE5hbWUFA25pbAUDbmlsCQDOCAIJAM0IAgkAzQgCBQdmcmVlT2xkCQELU3RyaW5nRW50cnkCBQ5hc3NldFRvTmFtZUtleQUKY3VzdG9tTmFtZQkBC1N0cmluZ0VudHJ5AgUKcmV2ZXJzZUtleQUHYXNzZXRJZAgJARZ1cGRhdGVBY2NTdGF0c0ludGVybmFsAgUEYWRkcgUMeHBDdXN0b21OYW1lAl8xAwkAAAICBERVQ0sFByRtYXRjaDAEBWFzc2V0CQEFdmFsdWUBCQDsBwEJANkEAQUHYXNzZXRJZAQHdGltZUtleQkBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBBQdhc3NldElkAwMJAQEhAQkBCWlzRGVmaW5lZAEJAJ8IAQUHdGltZUtleQYJAQEhAQkBCWlzRGVmaW5lZAEJAKIIAQkBFGtleVN0YWtlZER1Y2tCeU93bmVyAQUEYWRkcgkAAgEJAKwCAggFBWFzc2V0BG5hbWUCDiBpcyBub3Qgc3Rha2VkBAVvd25lcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJARBrZXlEdWNrSWRUb093bmVyAQUHYXNzZXRJZAkArAICCQCsAgICBE5GVCAIBQVhc3NldARuYW1lAgwgaXMgb3JwaGFuZWQDCQECIT0CBQVvd25lcgUEYWRkcgkAAgEJAKwCAgUKRFVDS1BSRUZJWAINIGlzIG5vdCB5b3VycwQKcmV2ZXJzZUtleQkBGmtleUR1Y2tDdXN0b21OYW1lVG9Bc3NldElkAQUKY3VzdG9tTmFtZQQJbmFtZU93bmVyCQCiCAEFCnJldmVyc2VLZXkDCQEJaXNEZWZpbmVkAQUJbmFtZU93bmVyCQACAQkArAICAhlOYW1lIGFscmVhZHkgcmVnaXN0ZXJlZDogBQpjdXN0b21OYW1lBA5hc3NldFRvTmFtZUtleQkBGmtleUR1Y2tBc3NldElkVG9DdXN0b21OYW1lAQUHYXNzZXRJZAQHb2xkTmFtZQkAoggBBQ5hc3NldFRvTmFtZUtleQQHZnJlZU9sZAMJAQlpc0RlZmluZWQBBQdvbGROYW1lCQDMCAIJAQtEZWxldGVFbnRyeQEJARprZXlEdWNrQ3VzdG9tTmFtZVRvQXNzZXRJZAEJAQV2YWx1ZQEFB29sZE5hbWUFA25pbAUDbmlsCQDOCAIJAM0IAgkAzQgCBQdmcmVlT2xkCQELU3RyaW5nRW50cnkCBQ5hc3NldFRvTmFtZUtleQUKY3VzdG9tTmFtZQkBC1N0cmluZ0VudHJ5AgUKcmV2ZXJzZUtleQUHYXNzZXRJZAgJARd1cGRhdGVEdWNrU3RhdHNJbnRlcm5hbAIFB2Fzc2V0SWQFDHhwQ3VzdG9tTmFtZQJfMQkAAgECE1Vua25vd24gZW50aXR5IHR5cGUJAJQKAgkAzggCCQDNCAIFB2FjdGlvbnMJAQ5TY3JpcHRUcmFuc2ZlcgMFD2Vjb25vbXlDb250cmFjdAgFA3BtdAZhbW91bnQFC3VzZHRBc3NldElkBQ1wcm9sb2dBY3Rpb25zAAABaQEMc2V0UmVmZXJyYWxzAglvbGRQbGF5ZXIJbmV3UGxheWVyAwkBAiE9AggFAWkPY2FsbGVyUHVibGljS2V5BQNwdWIJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQNcHJvbG9nQWN0aW9ucwkBBnByb2xvZwEFAWkDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhRObyBwYXltZW50cyByZXF1aXJlZAMJAQEhAQkBCWlzRGVmaW5lZAEJAKYIAQUJb2xkUGxheWVyCQACAQkArAICAhFJbnZhbGlkIGFkZHJlc3M6IAUJb2xkUGxheWVyBApuZXdiaWVBZGRyCQCmCAEFCW5ld1BsYXllcgMJAQEhAQkBCWlzRGVmaW5lZAEFCm5ld2JpZUFkZHIJAAIBCQCsAgICEUludmFsaWQgYWRkcmVzczogBQluZXdQbGF5ZXIECW9sZExhc3RUeAkAoggBCQERa2V5TGFzdFR4SWRCeVVzZXIBBQlvbGRQbGF5ZXIDCQEBIQEJAQlpc0RlZmluZWQBBQlvbGRMYXN0VHgJAAIBAiJvbGRQbGF5ZXIgZGlkbid0IGRvIGFueSB0eCBpbiBnYW1lAwkAZwIAAAgJAO8HAQkBBXZhbHVlAQUKbmV3YmllQWRkcglhdmFpbGFibGUJAAIBAhZuZXdQbGF5ZXIgaGFzIG5vIFdBVkVTBAdvbGRzS2V5CQEJa2V5T2xkaWVzAAQEb2xkcwkAoggBBQdvbGRzS2V5BAZvbGRpZXMDCQEJaXNEZWZpbmVkAQUEb2xkcwkAvAkCCQEFdmFsdWUBBQRvbGRzAgFfBQNuaWwDCQEPY29udGFpbnNFbGVtZW50AgUGb2xkaWVzBQluZXdQbGF5ZXIJAAIBCQCsAgIFCW5ld1BsYXllcgImIGlzIG5vdCBuZXdiaWUgKGFscmVhZHkgaGFzIHJlZmVycmFscykECHJlZkJ5S2V5CQEPa2V5QWRkcmVzc1JlZkJ5AQUJbmV3UGxheWVyBAVyZWZCeQkAoggBBQhyZWZCeUtleQMDCQEJaXNEZWZpbmVkAQUFcmVmQnkJAQlpc0RlZmluZWQBCQCmCAEJAQV2YWx1ZQEFBXJlZkJ5BwkAAgEJAKwCAgkArAICBQluZXdQbGF5ZXICFCBhbHJlYWR5IGhhcyByZWZCeTogCQEFdmFsdWUBBQVyZWZCeQQHcmVmc0tleQkBE2tleUFkZHJlc3NSZWZlcnJhbHMBBQlvbGRQbGF5ZXIEBHJlZnMJAKIIAQUHcmVmc0tleQQJcmVmc0FycmF5AwkBCWlzRGVmaW5lZAEFBHJlZnMJALwJAgkBBXZhbHVlAQUEcmVmcwIBXwUDbmlsAwkBD2NvbnRhaW5zRWxlbWVudAIFCXJlZnNBcnJheQUJbmV3UGxheWVyCQACAQkArAICCQCsAgIJAKwCAgUJb2xkUGxheWVyAhIgYWxyZWFkeSBjb250YWlucyAFCW5ld1BsYXllcgIRIHdpdGhpbiByZWZlcnJhbHMEB25ld1JlZnMJALoJAgkAzQgCBQlyZWZzQXJyYXkFCW5ld1BsYXllcgIBXwQHbmV3T2xkcwMJAQ9jb250YWluc0VsZW1lbnQCBQZvbGRpZXMFCW9sZFBsYXllcgkBBXZhbHVlAQUEb2xkcwkAugkCCQDNCAIFBm9sZGllcwUJb2xkUGxheWVyAgFfCQCUCgIJAM4IAgkAzAgCCQELU3RyaW5nRW50cnkCBQhyZWZCeUtleQUJb2xkUGxheWVyCQDMCAIJAQtTdHJpbmdFbnRyeQIFB3JlZnNLZXkFB25ld1JlZnMJAMwIAgkBC1N0cmluZ0VudHJ5AgUHb2xkc0tleQUHbmV3T2xkcwUDbmlsBQ1wcm9sb2dBY3Rpb25zAAABaQEQZGlzdHJpYnV0ZVBvaW50cwUIc3RyZW5ndGgIYWNjdXJhY3kJaW50ZWxsZWN0CWVuZHVyYW5jZQlkZXh0ZXJpdHkEDXByb2xvZ0FjdGlvbnMJAQZwcm9sb2cBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUTm8gcGF5bWVudHMgcmVxdWlyZWQEBGFkZHIJAKUIAQgFAWkMb3JpZ2luQ2FsbGVyBAt2aXJ0V2xnRGF0YQkBCWFzQW55TGlzdAEJAPwHBAULd2xnQ29udHJhY3QCEmNoZWNrV2xnWHBSRUFET05MWQkAzAgCBQRhZGRyBQNuaWwFA25pbAQNdmlydFdsZ1BvaW50cwkBBWFzSW50AQkAkQMCBQt2aXJ0V2xnRGF0YQABBA8kdDAxMDAyMzMxMDA2MjMDCQBnAgAABQ12aXJ0V2xnUG9pbnRzCQCUCgIAAAUDbmlsBAdkZWx0YVhQCQEFYXNJbnQBCQD8BwQFC3dsZ0NvbnRyYWN0Agl0YWtlV2xnWHAJAMwIAgUEYWRkcgUDbmlsBQNuaWwDCQAAAgUHZGVsdGFYUAUHZGVsdGFYUAkAlAoCBQ12aXJ0V2xnUG9pbnRzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEMa2V5VXNlckxldmVsAQUEYWRkcgkBBWFzSW50AQkAkQMCBQt2aXJ0V2xnRGF0YQAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEJa2V5VXNlclhQAQUEYWRkcgkBBWFzSW50AQkAkQMCBQt2aXJ0V2xnRGF0YQACBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4ECXdsZ1BvaW50cwgFDyR0MDEwMDIzMzEwMDYyMwJfMQQKd2xnQWN0aW9ucwgFDyR0MDEwMDIzMzEwMDYyMwJfMgQLZHVja0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBBQRhZGRyAhxZb3UgZG9uJ3QgaGF2ZSBhIGR1Y2sgc3Rha2VkBApmcmVlS2V5QWNjCQERa2V5VXNlckZyZWVQb2ludHMBBQRhZGRyBA1mcmVlUG9pbnRzQWNjCQBkAgkBC3ZhbHVlT3JFbHNlAgkAnwgBBQpmcmVlS2V5QWNjAAAFCXdsZ1BvaW50cwQLZnJlZUtleUR1Y2sJARFrZXlEdWNrRnJlZVBvaW50cwEFC2R1Y2tBc3NldElkBA5mcmVlUG9pbnRzRHVjawkBC3ZhbHVlT3JFbHNlAgkAnwgBBQtmcmVlS2V5RHVjawAABAdzdW1GcmVlCQBkAgUNZnJlZVBvaW50c0FjYwUOZnJlZVBvaW50c0R1Y2sED3N1bVRvRGlzdHJpYnV0ZQkAZAIJAGQCCQBkAgkAZAIFCHN0cmVuZ3RoBQhhY2N1cmFjeQUJaW50ZWxsZWN0BQllbmR1cmFuY2UFCWRleHRlcml0eQMJAGYCBQ9zdW1Ub0Rpc3RyaWJ1dGUFB3N1bUZyZWUJAAIBCQCsAgIJAKwCAgIPVGhlcmUgYXJlIG9ubHkgCQCkAwEFB3N1bUZyZWUCGiBmcmVlIHBvaW50cyB0byBkaXN0cmlidXRlBAhjaGFyc0tleQkBDGtleUR1Y2tDaGFycwEFC2R1Y2tBc3NldElkBAVjaGFycwkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEFCGNoYXJzS2V5AgkwXzBfMF8wXzACAV8EBm5ld0FjYwkAZQIFDWZyZWVQb2ludHNBY2MFD3N1bVRvRGlzdHJpYnV0ZQkAlAoCCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUKZnJlZUtleUFjYwMJAGYCAAAFBm5ld0FjYwAABQZuZXdBY2MJAMwIAgkBDEludGVnZXJFbnRyeQIFC2ZyZWVLZXlEdWNrAwkAZgIAAAUGbmV3QWNjCQBkAgUOZnJlZVBvaW50c0R1Y2sFBm5ld0FjYwUOZnJlZVBvaW50c0R1Y2sJAMwIAgkBC1N0cmluZ0VudHJ5AgUIY2hhcnNLZXkJALkJAgkAzAgCCQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFY2hhcnMFDGNoYXJTdHJlbmd0aAUIc3RyZW5ndGgJAMwIAgkApAMBCQBkAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBWNoYXJzBQxjaGFyQWNjdXJhY3kFCGFjY3VyYWN5CQDMCAIJAKQDAQkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVjaGFycwUNY2hhckludGVsbGVjdAUJaW50ZWxsZWN0CQDMCAIJAKQDAQkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVjaGFycwUNY2hhckVuZHVyYW5jZQUJZW5kdXJhbmNlCQDMCAIJAKQDAQkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVjaGFycwUNY2hhckRleHRlcml0eQUJZGV4dGVyaXR5BQNuaWwCAV8FA25pbAUNcHJvbG9nQWN0aW9ucwUKd2xnQWN0aW9ucwAAAWkBHHNwbGl0QnlHbG9iYWxXZWlnaHRzUkVBRE9OTFkBBmFtb3VudAkAlAoCBQNuaWwJARJnZXROZWVkZWRNYXRlcmlhbHMBBQZhbW91bnQBaQEkc3BsaXRCeUdsb2JhbEFuZExvY2FsV2VpZ2h0c1JFQURPTkxZAwltYXRBbW91bnQJcmVzQW1vdW50CHRlcnJhaW5zBA10ZXJyYWluQ291bnRzCQENY291bnRUZXJyYWlucwEFCHRlcnJhaW5zCQCUCgIFA25pbAkAlAoCCQESZ2V0TmVlZGVkTWF0ZXJpYWxzAQUJbWF0QW1vdW50CQETZGlzdHJpYnV0ZUJ5V2VpZ2h0cwIFCXJlc0Ftb3VudAUNdGVycmFpbkNvdW50cwFpARNnZXRCYWNrcGFja1JFQURPTkxZAQtkdWNrQXNzZXRJZAkAlAoCBQNuaWwJALkJAgkBC2dldEJhY2twYWNrAQkBEWtleUJhY2twYWNrQnlEdWNrAQULZHVja0Fzc2V0SWQCAToBaQEUZ2V0V2FyZWhvdXNlUkVBRE9OTFkBC2xhbmRBc3NldElkBAVhc3NldAkBBXZhbHVlAQkA7AcBCQDZBAEFC2xhbmRBc3NldElkBAlsYW5kSW5kZXgJAGkCCQEPbnVtUGllY2VzQnlTaXplAQkAkQMCCQC1CQIIBQVhc3NldAtkZXNjcmlwdGlvbgIBXwULcmVjTGFuZFNpemUFBVNTSVpFBAppbmZyYUxldmVsCQELdmFsdWVPckVsc2UCCQCfCAEJARZrZXlJbmZyYUxldmVsQnlBc3NldElkAQULbGFuZEFzc2V0SWQAAAkAlAoCBQNuaWwJALoJAgkBDGdldFdhcmVob3VzZQMJARJrZXlXYXJlaG91c2VCeUxhbmQBBQtsYW5kQXNzZXRJZAUJbGFuZEluZGV4BQppbmZyYUxldmVsAgE6AWkBCnNhdmVMYXN0VHgAAwkBASEBCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQt3bGdDb250cmFjdAkAzAgCBQ9lY29ub215Q29udHJhY3QJAMwIAgUSdG91cm5hbWVudENvbnRyYWN0CQDMCAIFDWFjcmVzQ29udHJhY3QFA25pbAgFAWkGY2FsbGVyCQACAQINQWNjZXNzIGRlbmllZAkAlAoCCQEGcHJvbG9nAQUBaQAqAWkBD3VwZGF0ZUR1Y2tTdGF0cwILZHVja0Fzc2V0SWQHZGVsdGFYUAMJAQIhPQIIBQFpBmNhbGxlcgUPZWNvbm9teUNvbnRyYWN0CQACAQINQWNjZXNzIGRlbmllZAkBF3VwZGF0ZUR1Y2tTdGF0c0ludGVybmFsAgULZHVja0Fzc2V0SWQFB2RlbHRhWFABaQEOdXBkYXRlQWNjU3RhdHMCBGFkZHIHZGVsdGFYUAMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgULd2xnQ29udHJhY3QJAMwIAgUPZWNvbm9teUNvbnRyYWN0CQDMCAIFDWFjcmVzQ29udHJhY3QFA25pbAgFAWkGY2FsbGVyCQACAQINQWNjZXNzIGRlbmllZAkBFnVwZGF0ZUFjY1N0YXRzSW50ZXJuYWwCBQRhZGRyBQdkZWx0YVhQAWkBE2luaXREdWNrVG91ckF0dGVtcHQBC2R1Y2tBc3NldElkAwkBAiE9AggFAWkGY2FsbGVyBRJ0b3VybmFtZW50Q29udHJhY3QJAAIBAg1BY2Nlc3MgZGVuaWVkBAlrZXlIZWFsdGgJAQ1rZXlEdWNrSGVhbHRoAQULZHVja0Fzc2V0SWQEBW1heEhQCQEJbWF4SGVhbHRoAQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEMa2V5RHVja0xldmVsAQULZHVja0Fzc2V0SWQAAAQJY3VySGVhbHRoCQELdmFsdWVPckVsc2UCCQCfCAEFCWtleUhlYWx0aAUFbWF4SFAECWN1ckxvY0tleQkBD2tleUR1Y2tMb2NhdGlvbgEFC2R1Y2tBc3NldElkBAtjdXJMb2NhdGlvbgkBC3ZhbHVlT3JFbHNlAgkAoggBBQljdXJMb2NLZXkFD0RFRkFVTFRMT0NBVElPTgQGbGFzdElkCQELdmFsdWVPckVsc2UCCQCaCAIFEnRvdXJuYW1lbnRDb250cmFjdAUNbGFzdFRvdXJJZEtleQAABAx0b3VyTG9jYXRpb24JAKwCAgkApAMBBQZsYXN0SWQCBF9UXzAJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDmtleVNhdmVkSGVhbHRoAQULZHVja0Fzc2V0SWQFCWN1ckhlYWx0aAkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa2V5SGVhbHRoBQVtYXhIUAkAzAgCCQELU3RyaW5nRW50cnkCCQEQa2V5U2F2ZWRMb2NhdGlvbgEFC2R1Y2tBc3NldElkBQtjdXJMb2NhdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCBQljdXJMb2NLZXkFDHRvdXJMb2NhdGlvbgUDbmlsBQx0b3VyTG9jYXRpb24BaQEMYnJlYWtBdHRlbXB0AAQNcHJvbG9nQWN0aW9ucwkBBnByb2xvZwEFAWkEC2R1Y2tBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBFGtleVN0YWtlZER1Y2tCeU93bmVyAQkApQgBCAUBaQZjYWxsZXICHFlvdSBkb24ndCBoYXZlIGEgZHVjayBzdGFrZWQECWN1ckxvY0tleQkBD2tleUR1Y2tMb2NhdGlvbgEFC2R1Y2tBc3NldElkBAtjdXJMb2NhdGlvbgkBC3ZhbHVlT3JFbHNlAgkAoggBBQljdXJMb2NLZXkFD0RFRkFVTFRMT0NBVElPTgMJAQIhPQIJAJEDAgkAtQkCBQtjdXJMb2NhdGlvbgIBXwUKbG9jSWR4VHlwZQIBVAkAAgECIllvdXIgZHVjayBpcyBub3QgaW4gdGhlIHRvdXJuYW1lbnQEC3NhdmVkSGVhbHRoCQERQGV4dHJOYXRpdmUoMTA1NSkBCQEOa2V5U2F2ZWRIZWFsdGgBBQtkdWNrQXNzZXRJZAQNc2F2ZWRMb2NhdGlvbgkBEUBleHRyTmF0aXZlKDEwNTgpAQkBEGtleVNhdmVkTG9jYXRpb24BBQtkdWNrQXNzZXRJZAkAlAoCCQDNCAIJAM0IAgUNcHJvbG9nQWN0aW9ucwkBDEludGVnZXJFbnRyeQIJAQ1rZXlEdWNrSGVhbHRoAQULZHVja0Fzc2V0SWQFC3NhdmVkSGVhbHRoCQELU3RyaW5nRW50cnkCBQljdXJMb2NLZXkFDXNhdmVkTG9jYXRpb24FC2N1ckxvY2F0aW9uAWkBFGJyZWFrQXR0ZW1wdENhbGxiYWNrAAMJAQIhPQIIBQFpBmNhbGxlcgUSdG91cm5hbWVudENvbnRyYWN0CQACAQINQWNjZXNzIGRlbmllZAQLZHVja0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBCQClCAEIBQFpDG9yaWdpbkNhbGxlcgIcWW91IGRvbid0IGhhdmUgYSBkdWNrIHN0YWtlZAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQENa2V5RHVja0hlYWx0aAEFC2R1Y2tBc3NldElkCQERQGV4dHJOYXRpdmUoMTA1NSkBCQEOa2V5U2F2ZWRIZWFsdGgBBQtkdWNrQXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQEPa2V5RHVja0xvY2F0aW9uAQULZHVja0Fzc2V0SWQJARFAZXh0ck5hdGl2ZSgxMDU4KQEJARBrZXlTYXZlZExvY2F0aW9uAQULZHVja0Fzc2V0SWQFA25pbAIUYnJlYWtBdHRlbXB0Q2FsbGJhY2sBaQEWZXhpdFRvdXJuYW1lbnRJbnRlcm5hbAELZHVja0Fzc2V0SWQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAg1BY2Nlc3MgZGVuaWVkBAtzYXZlZEhlYWx0aAkBEUBleHRyTmF0aXZlKDEwNTUpAQkBDmtleVNhdmVkSGVhbHRoAQULZHVja0Fzc2V0SWQEDXNhdmVkTG9jYXRpb24JARFAZXh0ck5hdGl2ZSgxMDU4KQEJARBrZXlTYXZlZExvY2F0aW9uAQULZHVja0Fzc2V0SWQJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDWtleUR1Y2tIZWFsdGgBBQtkdWNrQXNzZXRJZAULc2F2ZWRIZWFsdGgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleUR1Y2tMb2NhdGlvbgEFC2R1Y2tBc3NldElkBQ1zYXZlZExvY2F0aW9uBQNuaWwHAWkBD3Byb2Nlc3NEZWxpdmVyeQELZHVja0Fzc2V0SWQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAg1BY2Nlc3MgZGVuaWVkBARhZGRyCQClCAEIBQFpDG9yaWdpbkNhbGxlcgQJZnVuZFRvdGFsCQELdmFsdWVPckVsc2UCCQCaCAIFD2Vjb25vbXlDb250cmFjdAUPZGVsaXZlcnlGdW5kS2V5AAADCQBmAgUVTUlOX1VTRFRfRkVFX0RFTElWRVJZBQlmdW5kVG90YWwJAAIBCQCsAgICIERlbGl2ZXJ5IGlzIG5vdCBhdmFpbGFibGUsIGZ1bmQ9CQEKZml4ZWRQb2ludAIFCWZ1bmRUb3RhbAAGBANub3cIBQlsYXN0QmxvY2sJdGltZXN0YW1wBAhjb3VudEtleQkBFGtleVVzZXJEZWxpdmVyeUNvdW50AQUEYWRkcgQHbGFzdERheQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEWa2V5VXNlckxhc3REZWxpdmVyeURheQEFBGFkZHIAAAQFdG9kYXkJAGkCBQNub3cFCURBWU1JTExJUwQFY291bnQDCQAAAgUHbGFzdERheQUFdG9kYXkJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUIY291bnRLZXkAAAAABAVhY3JlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ1hY3Jlc0NvbnRyYWN0CQEaa2V5QWNyZXNTdGFrZWRBbW91bnRCeVVzZXIBBQRhZGRyAAAEEWFsbG93ZWREZWxpdmVyaWVzCQBkAgUXQUxMT1dFRF9GUkVFX0RFTElWRVJJRVMJAGkCBQVhY3JlcwUaQUNSRVNfRk9SX0RFTElWRVJZX0FUVEVNUFQDCQBnAgUFY291bnQFEWFsbG93ZWREZWxpdmVyaWVzCQACAQkArAICCQCsAgICEVlvdSBhbHJlYWR5IHVzZWQgCQCkAwEFEWFsbG93ZWREZWxpdmVyaWVzAhwgZGVsaXZlcnkgYXR0ZW1wdHMgZm9yIHRvZGF5BA5nbG9iYWxDb3VudEtleQkBFGtleUR1Y2tEZWxpdmVyeUNvdW50AQULZHVja0Fzc2V0SWQEBnJld2FyZAkA/AcEBQ9lY29ub215Q29udHJhY3QCEnNlbmREZWxpdmVyeVJld2FyZAkAzAgCBQRhZGRyBQNuaWwFA25pbAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQhjb3VudEtleQkAZAIFBWNvdW50AAEJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlVc2VyTGFzdERlbGl2ZXJ5RGF5AQUEYWRkcgUFdG9kYXkJAMwIAgkBDEludGVnZXJFbnRyeQIFDmdsb2JhbENvdW50S2V5CQBkAgkBC3ZhbHVlT3JFbHNlAgkAnwgBBQ5nbG9iYWxDb3VudEtleQAAAAEFA25pbAUGcmV3YXJkALZXg6M=", "height": 3378896, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: H2z1QR1j7NPRg9kvAtCCXxeK6dqVzKQGHqLfSy5cpp5Y Next: 6eC4RBnryeTDBUxEMp7BurvJGySvR1jMgtPk8VQsRrDq Diff:
OldNewDifferences
199199 func at (au,av,aw) = if ((0 >= au))
200200 then throw("maxValue should be > 0")
201201 else {
202- let ax = sha256((av + aw))
202+ let ax = sha256_16Kb((av + aw))
203203 (toInt(ax) % au)
204204 }
205205
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = false
55
66 let b = false
77
88 let c = 86400000
99
1010 let d = 1731279600000
1111
1212 let e = take(drop(this.bytes, 1), 1)
1313
1414 let f = {
1515 let g = e
1616 if ((base58'2W' == g))
1717 then if (a)
1818 then base58'CWsMtTZC5BjjoL4Q1ayW4Wwb1ehGACQB6DrKyPgotKfm'
1919 else base58'6LfPuKJjLgekmncBhMg2LZyMTNVzZBccXR28ySXm9uXD'
2020 else if ((base58'2T' == g))
2121 then base58'6LfPuKJjLgekmncBhMg2LZyMTNVzZBccXR28ySXm9uXD'
2222 else throw("Unknown chain")
2323 }
2424
2525 let h = {
2626 let g = e
2727 if ((base58'2W' == g))
2828 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
2929 else if ((base58'2T' == g))
3030 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
3131 else throw("Unknown chain")
3232 }
3333
3434 let i = {
3535 let g = e
3636 if ((base58'2W' == g))
3737 then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv"
3838 else if ((base58'2T' == g))
3939 then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy"
4040 else throw("Unknown chain")
4141 }
4242
4343 let j = {
4444 let g = e
4545 if ((base58'2W' == g))
4646 then "3P4UH3T9nXpMNpUmSmQjPmEz3G85t3zn6eA"
4747 else if ((base58'2T' == g))
4848 then "3NBPx1Fciu3JQNEGZ21jSnTdutLNGGBUSXh"
4949 else throw("Unknown chain")
5050 }
5151
5252 let k = {
5353 let g = e
5454 if ((base58'2W' == g))
5555 then c
5656 else if ((base58'2T' == g))
5757 then 60000
5858 else throw("Unknown chain")
5959 }
6060
6161 let l = "__"
6262
6363 let m = 1000000
6464
6565 let n = 100000000
6666
6767 let o = 25
6868
6969 let p = 100
7070
7171 let q = 225
7272
7373 let r = 400
7474
7575 let s = 625
7676
7777 let t = [0, 1, 2, 3, 4, 5]
7878
7979 func u (v,w) = valueOrErrorMessage(getString(v, w), makeString(["mandatory ", toString(v), ".", w, " is not defined"], ""))
8080
8181
8282 let x = 2
8383
8484 let y = 3
8585
8686 let z = 4
8787
8888 let A = 7
8989
9090 let B = 8
9191
9292 func C () = "%s__restConfig"
9393
9494
9595 func D () = "%s__restAddr"
9696
9797
9898 func E (F) = split_4C(u(F, C()), l)
9999
100100
101101 func G (H,I) = valueOrErrorMessage(addressFromString(H[I]), ("Rest cfg doesn't contain address at index " + toString(I)))
102102
103103
104104 let J = addressFromStringValue(valueOrElse(getString(this, D()), i))
105105
106106 let H = E(J)
107107
108108 let K = G(H, x)
109109
110110 let L = G(H, y)
111111
112112 let M = G(H, z)
113113
114114 let N = G(H, A)
115115
116116 let O = G(H, B)
117117
118118 let P = 0
119119
120120 let Q = 1
121121
122122 let R = 2
123123
124124 let S = 3
125125
126126 let T = "acresAssetId"
127127
128128 let U = valueOrErrorMessage(getBinary(O, T), "ACRES is not issued yet")
129129
130130 let V = 2
131131
132132 func W (v) = ("finishBlockFor_" + v)
133133
134134
135135 func X () = "resTypesProportions"
136136
137137
138138 func Y (Z) = ("resTypesByContinent_" + Z)
139139
140140
141141 func aa (ab) = ("stakedLandsByOwner_" + ab)
142142
143143
144144 func ac (ab) = ("stakedPiecesByOwner_" + ab)
145145
146146
147147 func ad (ae) = {
148148 let g = ae
149149 if ($isInstanceOf(g, "Int"))
150150 then {
151151 let af = g
152152 af
153153 }
154154 else throw("fail to cast into Int")
155155 }
156156
157157
158158 func ag (ae) = {
159159 let g = ae
160160 if ($isInstanceOf(g, "List[Any]"))
161161 then {
162162 let ah = g
163163 ah
164164 }
165165 else throw("fail to cast into List[Any]")
166166 }
167167
168168
169169 func ai (aj) = {
170170 let g = aj
171171 if (("S" == g))
172172 then o
173173 else if (("M" == g))
174174 then p
175175 else if (("L" == g))
176176 then q
177177 else if (("XL" == g))
178178 then r
179179 else if (("XXL" == g))
180180 then s
181181 else throw("Unknown land size")
182182 }
183183
184184
185185 func ak () = "contractsBlocked"
186186
187187
188188 func al (am) = ("lastTxIdByUser_" + am)
189189
190190
191191 func an (ao,ap) = {
192192 let aq = pow(10, 0, ap, 0, 0, DOWN)
193193 let ar = toString((ao % aq))
194194 let as = drop(toString(aq), (1 + size(ar)))
195195 (((toString((ao / aq)) + ".") + as) + ar)
196196 }
197197
198198
199199 func at (au,av,aw) = if ((0 >= au))
200200 then throw("maxValue should be > 0")
201201 else {
202- let ax = sha256((av + aw))
202+ let ax = sha256_16Kb((av + aw))
203203 (toInt(ax) % au)
204204 }
205205
206206
207207 func ay () = min([lastBlock.timestamp, d])
208208
209209
210210 let az = "LAND"
211211
212212 let aA = "DUCK"
213213
214214 let aB = "ROBO"
215215
216216 let aC = "PRESALE"
217217
218218 let aD = 6
219219
220220 let aE = 25
221221
222222 let aF = 3456000
223223
224224 let aG = 10000000000
225225
226226 let aH = "Africa_F_Africa"
227227
228228 let aI = 39637
229229
230230 let aJ = 50000
231231
232232 let aK = 10
233233
234234 let aL = 0
235235
236236 let aM = 200000000
237237
238238 let aN = ["First Aid Kit L1", "First Aid Kit L2", "First Aid Kit L3", "Backpack L1", "Backpack L2", "Backpack L3", "Food Ration L1", "Food Ration L2", "Food Ration L3", "Jet Pack L1", "Jet Pack L2", "Jet Pack L3", "Shield L1", "Shield L2", "Shield L3", "Mine L1", "Mine L2", "Mine L3", "Trap L1", "Trap L2", "Trap L3", "Boom-Dog L1", "Boom-Dog L2", "Boom-Dog L3"]
239239
240240 let aO = ["8_8_8_17_17_42_12_0_30_0,0,0,0,0,0,0_", "8_8_8_17_17_42_24_0_60_0,0,5,2,0,0,0_", "8_8_8_17_17_42_36_0_120_0,0,10,4,0,0,0_", "8_19_19_8_27_19_26_1_20_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_52_1_40_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_78_1_80_0,0,0,0,0,0,0_001", "8_8_8_8_8_60_13_2_2_0,0,0,0,0,0,0_011", "8_8_8_8_8_60_26_2_4_0,0,0,0,0,0,0_011", "8_8_8_8_8_60_39_2_8_0,0,0,0,0,0,0_011", "30_30_3_17_17_3_30_3_30_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_60_3_50_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_90_3_70_0,0,0,0,0,0,0_111", "18_18_10_18_18_18_11_4_10_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_22_4_20_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_33_4_30_0,0,0,0,0,0,0_201", "4_13_22_4_35_22_23_0_50,1,0_0,0,0,0,0,0,0_", "4_13_22_4_35_22_46_0_50,1,1_0,2,5,0,0,0,0_", "4_13_22_4_35_22_69_0_50,2,1_0,5,10,0,0,0,0_", "5_25_40_5_10_15_20_1_30,1,1_0,0,0,0,0,0,0_", "5_25_40_5_10_15_40_1_30,1,2_2,1,3,0,0,0,0_", "5_25_40_5_10_15_60_1_30,1,3_5,2,8,0,0,0,0_", "23_23_5_20_23_6_35_2_100_0,0,0,0,0,0,0_", "23_23_5_20_23_6_70_2_150_0,0,0,0,0,0,0_", "23_23_5_20_23_6_105_2_200_0,0,0,0,0,0,0_"]
241241
242242 let aP = 6
243243
244244 let aQ = 9
245245
246246 let aR = 10
247247
248248 let aS = 10
249249
250250 let aT = 0
251251
252252 let aU = 1
253253
254254 let aV = 2
255255
256256 let aW = 3
257257
258258 let aX = 4
259259
260260 let aY = 0
261261
262262 let aZ = 1
263263
264264 let ba = 2
265265
266266 let bb = 3
267267
268268 let bc = 0
269269
270270 let bd = 1
271271
272272 let be = 2
273273
274274 let bf = 3
275275
276276 let bg = 1
277277
278278 let bh = 2
279279
280280 func bi (bj) = ("no_" + bj)
281281
282282
283283 func bk (bj) = ("lcna_" + bj)
284284
285285
286286 func bl (bj) = ("st_" + bj)
287287
288288
289289 func bm (bn,bj) = makeString(["las", bn, bj], "_")
290290
291291
292292 func bo (bp,bj,ab) = ((((("sttao_" + bp) + "_") + bj) + "_") + ab)
293293
294294
295295 func bq (br) = ("wh_" + br)
296296
297297
298298 func bs (bj) = ("infraLevel_" + bj)
299299
300300
301301 func bt (bj) = ("duckCustomNameByAssetId_" + bj)
302302
303303
304304 func bu (am) = ("accountCustomNameByAddr_" + am)
305305
306306
307307 func bv (am) = ("accRefBy_" + am)
308308
309309
310310 func bw (bx) = ("onboardArtActivatedOnDuck_" + bx)
311311
312312
313313 func by (am) = ("onboardArtActivatedDuckBy_" + am)
314314
315315
316316 func bz (am) = ("accReferrals_" + am)
317317
318318
319319 func bA (bj) = ("duckOwner_" + bj)
320320
321321
322322 func bB (ab) = ("stakedDuckByOwner_" + ab)
323323
324324
325325 func bC (bx) = ("backPack_" + bx)
326326
327327
328328 func bD (bx) = ("duckLocation_" + bx)
329329
330330
331331 func bE (bF) = ("%s%s__userGwlReleaseTime__" + bF)
332332
333333
334334 let bG = "deliveryFund"
335335
336336 let bH = "%s__lastTourId"
337337
338338 let bI = 100000000
339339
340340 let bJ = 3200
341341
342342 let bK = 4000
343343
344344 let bL = 3
345345
346346 let bM = ["Strength", "Accuracy", "Intellect", "Endurance", "Dexterity", "Level", "Health"]
347347
348348 let bN = 0
349349
350350 let bO = 1
351351
352352 let bP = 2
353353
354354 let bQ = 3
355355
356356 let bR = 4
357357
358358 let bS = 2
359359
360360 let bT = 2
361361
362362 let bU = 30
363363
364364 func bV (bx) = ("duckHealth_" + bx)
365365
366366
367367 func bW (bx) = ("duckChars_" + bx)
368368
369369
370370 func bX (bx) = ("duckXP_" + bx)
371371
372372
373373 func bY (bx) = ("duckLevel_" + bx)
374374
375375
376376 func bZ (bx) = ("duckFreePoints_" + bx)
377377
378378
379379 func ca (bx) = ("duckEquipment_" + bx)
380380
381381
382382 func cb (am) = ("userXP_" + am)
383383
384384
385385 func cc (am) = ("userLevel_" + am)
386386
387387
388388 func cd (am) = ("userFreePoints_" + am)
389389
390390
391391 func ce (bx) = ("savedHealth_" + bx)
392392
393393
394394 func cf (bx) = ("savedLocation_" + bx)
395395
396396
397397 func cg (bx) = ("totalDeliveryCountByDuck_" + bx)
398398
399399
400400 func ch (am) = ("userDeliveryCount_" + am)
401401
402402
403403 func ci (am) = ("userLastDeliveryDay_" + am)
404404
405405
406406 let cj = 10000
407407
408408 let ck = 1000000
409409
410410 let cl = 1000000
411411
412412 func cm (cn) = fraction(bJ, pow(cn, 4, bK, 4, 4, DOWN), bI)
413413
414414
415415 func co (cp) = (100 + cp)
416416
417417
418418 func cq (cr,cs) = {
419419 let ct = cm(cs)
420420 [ct, (bL * (ct - cr))]
421421 }
422422
423423
424424 let cu = 86400000
425425
426426 func cv (am) = ("lastArbTimeUser_" + am)
427427
428428
429429 func cw (am) = ("acresStakedAmountByUser_" + am)
430430
431431
432432 let cx = 5000000
433433
434434 let cy = 50
435435
436436 let cz = 500
437437
438438 func cA (cB) = ("lcn_" + cB)
439439
440440
441441 func cC (bj,ab) = ((("ilao_" + bj) + "_") + ab)
442442
443443
444444 func cD (cE) = ("lo_" + cE)
445445
446446
447447 func cF (cB) = ("duckByCustomName_" + cB)
448448
449449
450450 func cG (cB) = ("accountByCustomName_" + cB)
451451
452452
453453 func cH () = "oldiesList"
454454
455455
456456 let cI = 0
457457
458458 let cJ = 1
459459
460460 let cK = 2
461461
462462 func cL (cM,cN) = {
463463 let cO = (((((cN[0] + cN[1]) + cN[2]) + cN[3]) + cN[4]) + cN[5])
464464 if ((0 >= cO))
465465 then throw("Zero weights sum")
466466 else {
467467 let cP = fraction(cM, m, cO)
468468 func cQ (cR,cS) = (cR :+ fraction(cS, cP, m))
469469
470470 let cT = cN
471471 let cU = size(cT)
472472 let cV = nil
473473 func cW (cX,cY) = if ((cY >= cU))
474474 then cX
475475 else cQ(cX, cT[cY])
476476
477477 func cZ (cX,cY) = if ((cY >= cU))
478478 then cX
479479 else throw("List size exceeds 6")
480480
481481 cZ(cW(cW(cW(cW(cW(cW(cV, 0), 1), 2), 3), 4), 5), 6)
482482 }
483483 }
484484
485485
486486 func da (cM) = {
487487 let db = split(value(getString(X())), "_")
488488 if ((size(db) != aD))
489489 then throw("Wrong proportions data")
490490 else {
491491 let dc = [parseIntValue(db[0]), parseIntValue(db[1]), parseIntValue(db[2]), parseIntValue(db[3]), parseIntValue(db[4]), parseIntValue(db[5])]
492492 cL(cM, dc)
493493 }
494494 }
495495
496496
497497 func dd (de) = {
498498 let df = if ((de == ""))
499499 then nil
500500 else split_4C(de, "_")
501501 func dg (cR,dh) = {
502502 let di = (size(cR) / 8)
503503 let dj = if ((size(df) > di))
504504 then parseIntValue(df[di])
505505 else 0
506506 (cR + toBytes(dj))
507507 }
508508
509509 let cT = aO
510510 let cU = size(cT)
511511 let cV = base58''
512512 func cW (cX,cY) = if ((cY >= cU))
513513 then cX
514514 else dg(cX, cT[cY])
515515
516516 func cZ (cX,cY) = if ((cY >= cU))
517517 then cX
518518 else throw("List size exceeds 50")
519519
520520 cZ(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cV, 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), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
521521 }
522522
523523
524524 func dk (dl) = {
525525 func dm (cR,dh) = {
526526 let di = size(cR)
527527 let dn = take(drop(dl, (8 * di)), 8)
528528 (cR :+ toString(toInt(dn)))
529529 }
530530
531531 makeString_2C({
532532 let cT = aO
533533 let cU = size(cT)
534534 let cV = nil
535535 func cW (cX,cY) = if ((cY >= cU))
536536 then cX
537537 else dm(cX, cT[cY])
538538
539539 func cZ (cX,cY) = if ((cY >= cU))
540540 then cX
541541 else throw("List size exceeds 50")
542542
543543 cZ(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cW(cV, 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), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
544544 }, "_")
545545 }
546546
547547
548548 func do (dp,dq) = {
549549 func dr (cR,di) = {
550550 let ds = if ((size(dp) > (7 + di)))
551551 then dp[(7 + di)]
552552 else 0
553553 if ((parseIntValue(dq[di]) > (dp[di] + ds)))
554554 then throw(("Requirement not satisfied: " + bM[di]))
555555 else true
556556 }
557557
558558 let cT = [0, 1, 2, 3, 4, 5, 6]
559559 let cU = size(cT)
560560 let cV = false
561561 func cW (cX,cY) = if ((cY >= cU))
562562 then cX
563563 else dr(cX, cT[cY])
564564
565565 func cZ (cX,cY) = if ((cY >= cU))
566566 then cX
567567 else throw("List size exceeds 7")
568568
569569 cZ(cW(cW(cW(cW(cW(cW(cW(cV, 0), 1), 2), 3), 4), 5), 6), 7)
570570 }
571571
572572
573573 func dt (du,df,dv,dw,dx,dy,dp) = {
574574 let dz = split(du, ":")
575575 if ((size(dz) != 2))
576576 then throw("Incorrect format, should be index:amount")
577577 else if (if (!(dv))
578578 then (size(dz[0]) != 2)
579579 else false)
580580 then throw("Product idx should be 2 digits, zero padded")
581581 else {
582582 let dA = parseIntValue(dz[0])
583583 let dB = parseIntValue(dz[1])
584584 if (if ((0 > dA))
585585 then true
586586 else (dA >= size(aO)))
587587 then throw("Unknown product idx")
588588 else if ((0 > dB))
589589 then throw("Count can't be negative")
590590 else if ((dB > bU))
591591 then throw(((("Can't put more than " + toString(bU)) + " of ") + aN[dA]))
592592 else if ((dB == 0))
593593 then $Tuple2(df, false)
594594 else {
595595 let dC = take(df, (8 * dA))
596596 let dj = toInt(take(drop(df, (8 * dA)), 8))
597597 let dD = drop(df, (8 * (dA + 1)))
598598 let dh = split(aO[dA], "_")
599599 if (if (!(dv))
600600 then (dB > dj)
601601 else false)
602602 then throw(((((("You have " + toString(dj)) + " of ") + aN[dA]) + ", but tried to use ") + toString(dB)))
603603 else {
604604 let dE = if (if (!(dv))
605605 then do(dp, split(dh[aQ], ","))
606606 else false)
607607 then {
608608 let dF = dh[aR]
609609 if ((dF == ""))
610610 then throw("Item cannot be equipped")
611611 else {
612612 let dG = parseIntValue(dF)
613613 let dH = (dG / 100)
614614 if ((dw != dH))
615615 then throw("Segment incompatible")
616616 else {
617617 let dI = ((dG % 100) / 10)
618618 if ((dx != dI))
619619 then throw("Slot incompatible")
620620 else {
621621 let dJ = (dG % 10)
622622 if (if ((dy != 0))
623623 then (dJ > 1)
624624 else false)
625625 then throw("Big items should occupy slot 0")
626626 else (dJ > 1)
627627 }
628628 }
629629 }
630630 }
631631 else false
632632 $Tuple2(((dC + toBytes((dj + (if (dv)
633633 then dB
634634 else -(dB))))) + dD), dE)
635635 }
636636 }
637637 }
638638 }
639639
640640
641641 func dK (dL,dM,dv,dw,dx,dN) = if ((dL != ""))
642642 then {
643643 let dO = split(dL, ",")
644644 if ((size(dO) > bT))
645645 then throw("Wrong slots format")
646646 else {
647647 let dP = dO[0]
648648 let dQ = if ((size(dO) > 1))
649649 then dO[1]
650650 else ""
651651 if (if ((dP == ""))
652652 then (dQ == "")
653653 else false)
654654 then dM
655655 else {
656656 let dR = if ((dP != ""))
657657 then dt(dP, dM, dv, dw, dx, 0, dN)
658658 else $Tuple2(dM, false)
659659 if ((dQ != ""))
660660 then if (dR._2)
661661 then throw("Big item already occupies slot")
662662 else dt(dQ, dR._1, dv, dw, dx, 1, dN)._1
663663 else dR._1
664664 }
665665 }
666666 }
667667 else dM
668668
669669
670670 func dS (dT,dU,dv,dN) = {
671671 func dw (cR,dV) = {
672672 let di = cR._1
673673 let dx = split(dV, ";")
674674 if ((size(dx) != bS))
675675 then throw("Wrong segment format")
676676 else {
677677 let dW = dx[0]
678678 let dX = dx[1]
679679 if (if ((dW == ""))
680680 then (dX == "")
681681 else false)
682682 then $Tuple2((di + 1), cR._2)
683683 else {
684684 let dY = dK(dW, cR._2, dv, di, 0, dN)
685685 $Tuple2((di + 1), dK(dX, dY, dv, di, 1, dN))
686686 }
687687 }
688688 }
689689
690690 ( let cT = dT
691691 let cU = size(cT)
692692 let cV = $Tuple2(0, dU)
693693 func cW (cX,cY) = if ((cY >= cU))
694694 then cX
695695 else dw(cX, cT[cY])
696696
697697 func cZ (cX,cY) = if ((cY >= cU))
698698 then cX
699699 else throw("List size exceeds 6")
700700
701701 cZ(cW(cW(cW(cW(cW(cW(cV, 0), 1), 2), 3), 4), 5), 6))._2
702702 }
703703
704704
705705 func dZ (ea,eb,ec,ed) = if ((size(ea) != aD))
706706 then throw("Wrong proportions data")
707707 else {
708708 func ee (cR,ef) = {
709709 let eg = (parseIntValue(ea[ef]) + ((ed * eb[ef]) * ec))
710710 if ((0 > eg))
711711 then throw(((((((("Panic! Pieces of type=" + toString(ef)) + ", sign=") + toString(ed)) + ", terrainCounts[i]=") + toString(eb[ef])) + ", landSizeIndex=") + toString(ec)))
712712 else (cR :+ toString(eg))
713713 }
714714
715715 let cT = t
716716 let cU = size(cT)
717717 let cV = nil
718718 func cW (cX,cY) = if ((cY >= cU))
719719 then cX
720720 else ee(cX, cT[cY])
721721
722722 func cZ (cX,cY) = if ((cY >= cU))
723723 then cX
724724 else throw("List size exceeds 6")
725725
726726 cZ(cW(cW(cW(cW(cW(cW(cV, 0), 1), 2), 3), 4), 5), 6)
727727 }
728728
729729
730730 func eh (eb,ec,ed) = {
731731 let ea = split(valueOrElse(getString(X()), "0_0_0_0_0_0"), "_")
732732 makeString(dZ(ea, eb, ec, ed), "_")
733733 }
734734
735735
736736 func ei (ej) = [(size(split(ej, "A")) - 1), (size(split(ej, "B")) - 1), (size(split(ej, "C")) - 1), (size(split(ej, "D")) - 1), (size(split(ej, "E")) - 1), (size(split(ej, "F")) - 1)]
737737
738738
739739 func ek (el,eb,em,ec,en) = {
740740 func eo (cR,ef) = {
741741 let ep = ((fraction(em, en, cu) * eb[ef]) * ec)
742742 (cR :+ toString((parseIntValue(el[ef]) + ep)))
743743 }
744744
745745 let dc = {
746746 let cT = t
747747 let cU = size(cT)
748748 let cV = nil
749749 func cW (cX,cY) = if ((cY >= cU))
750750 then cX
751751 else eo(cX, cT[cY])
752752
753753 func cZ (cX,cY) = if ((cY >= cU))
754754 then cX
755755 else throw("List size exceeds 6")
756756
757757 cZ(cW(cW(cW(cW(cW(cW(cV, 0), 1), 2), 3), 4), 5), 6)
758758 }
759759 makeString(dc, "_")
760760 }
761761
762762
763763 func eq (el,eb,em,ec,en) = {
764764 func eo (cR,ef) = {
765765 let ep = ((fraction(em, en, cu) * eb[ef]) * ec)
766766 let er = (parseIntValue(el[ef]) + ep)
767767 $Tuple2((cR._1 :+ er), (cR._2 + er))
768768 }
769769
770770 let cT = t
771771 let cU = size(cT)
772772 let cV = $Tuple2(nil, 0)
773773 func cW (cX,cY) = if ((cY >= cU))
774774 then cX
775775 else eo(cX, cT[cY])
776776
777777 func cZ (cX,cY) = if ((cY >= cU))
778778 then cX
779779 else throw("List size exceeds 6")
780780
781781 cZ(cW(cW(cW(cW(cW(cW(cV, 0), 1), 2), 3), 4), 5), 6)
782782 }
783783
784784
785785 func es (eb,em,ec,en) = {
786786 func eo (cR,et) = {
787787 let ep = ((fraction(em, en, cu) * et) * ec)
788788 $Tuple2((cR._1 :+ ep), (cR._2 + ep))
789789 }
790790
791791 let cT = eb
792792 let cU = size(cT)
793793 let cV = $Tuple2(nil, 0)
794794 func cW (cX,cY) = if ((cY >= cU))
795795 then cX
796796 else eo(cX, cT[cY])
797797
798798 func cZ (cX,cY) = if ((cY >= cU))
799799 then cX
800800 else throw("List size exceeds 6")
801801
802802 cZ(cW(cW(cW(cW(cW(cW(cV, 0), 1), 2), 3), 4), 5), 6)
803803 }
804804
805805
806806 func eu (ev,ew,ex,ey) = {
807807 let ez = ex._1
808808 let eA = ex._2
809809 if ((eA == 0))
810810 then $Tuple2(makeString(ev, "_"), makeString(ew, "_"))
811811 else if ((ey >= eA))
812812 then {
813813 func eB (cR,ef) = (cR :+ toString((parseIntValue(ev[ef]) + ez[ef])))
814814
815815 let dc = {
816816 let cT = t
817817 let cU = size(cT)
818818 let cV = nil
819819 func cW (cX,cY) = if ((cY >= cU))
820820 then cX
821821 else eB(cX, cT[cY])
822822
823823 func cZ (cX,cY) = if ((cY >= cU))
824824 then cX
825825 else throw("List size exceeds 6")
826826
827827 cZ(cW(cW(cW(cW(cW(cW(cV, 0), 1), 2), 3), 4), 5), 6)
828828 }
829829 $Tuple2(makeString(dc, "_"), makeString(ew, "_"))
830830 }
831831 else {
832832 func eC (cR,ef) = {
833833 let eD = fraction(ez[ef], ey, eA)
834834 $Tuple2((cR._1 :+ toString((parseIntValue(ev[ef]) + eD))), (cR._2 :+ toString(((parseIntValue(ew[ef]) + ez[ef]) - eD))))
835835 }
836836
837837 let dc = {
838838 let cT = t
839839 let cU = size(cT)
840840 let cV = $Tuple2(nil, nil)
841841 func cW (cX,cY) = if ((cY >= cU))
842842 then cX
843843 else eC(cX, cT[cY])
844844
845845 func cZ (cX,cY) = if ((cY >= cU))
846846 then cX
847847 else throw("List size exceeds 6")
848848
849849 cZ(cW(cW(cW(cW(cW(cW(cV, 0), 1), 2), 3), 4), 5), 6)
850850 }
851851 $Tuple2(makeString(dc._1, "_"), makeString(dc._2, "_"))
852852 }
853853 }
854854
855855
856856 func eE (eF) = {
857857 let eG = split(valueOrElse(getString(eF), "0:0_0_0_0_0_0:0_0_0_0_0_0:"), ":")
858858 [toString(valueOrElse(parseInt(eG[bc]), 0)), if ((size(split(eG[bd], "_")) == aD))
859859 then eG[bd]
860860 else "0_0_0_0_0_0", if ((size(split(eG[be], "_")) == aD))
861861 then eG[be]
862862 else "0_0_0_0_0_0", eG[bf]]
863863 }
864864
865865
866866 func eH (eI) = {
867867 let dz = split(eI, "_")
868868 ((aG * (parseIntValue(dz[1]) + 1)) * parseIntValue(dz[0]))
869869 }
870870
871871
872872 func eJ (eK) = {
873873 let eL = eK[aW]
874874 func eM (cR,eN) = (cR + parseIntValue(eN))
875875
876876 func eO (cR,eN) = {
877877 let I = cR._1
878878 let eP = (((parseIntValue(eN) + aS) - 1) / aS)
879879 $Tuple2((I + 1), (cR._2 + (eP * n)))
880880 }
881881
882882 let eQ = {
883883 let cT = split(eK[aU], "_")
884884 let cU = size(cT)
885885 let cV = 0
886886 func cW (cX,cY) = if ((cY >= cU))
887887 then cX
888888 else eM(cX, cT[cY])
889889
890890 func cZ (cX,cY) = if ((cY >= cU))
891891 then cX
892892 else throw("List size exceeds 6")
893893
894894 cZ(cW(cW(cW(cW(cW(cW(cV, 0), 1), 2), 3), 4), 5), 6)
895895 }
896896 let eR = {
897897 let cT = split(eK[aV], "_")
898898 let cU = size(cT)
899899 let cV = 0
900900 func eS (cX,cY) = if ((cY >= cU))
901901 then cX
902902 else eM(cX, cT[cY])
903903
904904 func eT (cX,cY) = if ((cY >= cU))
905905 then cX
906906 else throw("List size exceeds 6")
907907
908908 eT(eS(eS(eS(eS(eS(eS(cV, 0), 1), 2), 3), 4), 5), 6)
909909 }
910910 let eU = if ((eL == ""))
911911 then 0
912912 else ( let cT = split_4C(eL, "_")
913913 let cU = size(cT)
914914 let cV = $Tuple2(0, 0)
915915 func eV (cX,cY) = if ((cY >= cU))
916916 then cX
917917 else eO(cX, cT[cY])
918918
919919 func eW (cX,cY) = if ((cY >= cU))
920920 then cX
921921 else throw("List size exceeds 50")
922922
923923 eW(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(cV, 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), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50))._2
924924 ((eQ + eR) + eU)
925925 }
926926
927927
928928 func eX (eY,eZ,fa) = {
929929 let eI = ((toString(eZ) + "_") + toString(fa))
930930 let fb = eH(eI)
931931 let fc = valueOrElse(getString(eY), (eI + ":0_0_0_0_0_0:0_0_0_0_0_0::0"))
932932 let fd = split_4C(fc, ":")
933933 let fe = eJ(fd)
934934 let ff = if ((5 > size(fd)))
935935 then makeString(["0", toString(fe), toString((fb - fe)), toString(fb)], "_")
936936 else {
937937 let fg = split(fd[aX], "_")
938938 let fh = parseIntValue(fg[aY])
939939 let fi = if ((size(fg) > 1))
940940 then parseIntValue(fg[aZ])
941941 else fe
942942 makeString([toString(fh), toString(fi), toString(((fb - fh) - fi)), toString(fb)], "_")
943943 }
944944 [fd[aT], if ((size(split(fd[aU], "_")) == aD))
945945 then fd[aU]
946946 else "0_0_0_0_0_0", if ((size(split(fd[aV], "_")) == aD))
947947 then fd[aV]
948948 else "0_0_0_0_0_0", fd[aW], ff]
949949 }
950950
951951
952952 func fj (br,fk) = {
953953 let fa = valueOrElse(getInteger(bs(br)), 0)
954954 let fl = valueOrElse(getInteger(bm(aC, br)), 0)
955955 let fm = (fa / 6)
956956 let fn = (fa / 7)
957957 ((aF + fraction(aF, ((fa + fm) + (2 * fn)), 5)) + fraction(aF, fl, (fk * 5)))
958958 }
959959
960960
961961 func fo (am,fp,fq) = {
962962 let fr = if ((fp == cI))
963963 then $Tuple2(fq, valueOrElse(getString(bB(am)), ""))
964964 else {
965965 let bx = valueOrErrorMessage(getString(bB(am)), "You don't have a duck staked")
966966 let fs = valueOrElse(getString(bD(bx)), aH)
967967 let ft = split(value(fs), "_")
968968 if ((ft[bg] != "L"))
969969 then throw((("Duck location type is " + ft[bg]) + ", but should be L"))
970970 else $Tuple2(ft[bh], bx)
971971 }
972972 let br = fr._1
973973 let fu = fr._2
974974 let fv = value(assetInfo(fromBase58String(br)))
975975 let fw = bl(br)
976976 let fx = valueOrErrorMessage(getInteger(fw), (("Land " + fv.name) + " is not staked"))
977977 let fy = valueOrErrorMessage(getString(bi(br)), (("NFT " + fv.name) + " is orphaned"))
978978 if ((fy != am))
979979 then throw((az + " is not yours"))
980980 else {
981981 let fz = split(fv.description, "_")
982982 $Tuple4(fu, br, fz, fx)
983983 }
984984 }
985985
986986
987987 func fA (am,fB,fp,fq) = if ((0 > fB))
988988 then throw("Negative amount")
989989 else {
990990 let dG = fo(am, fp, fq)
991991 let aj = dG._3[Q]
992992 let eb = ei(dG._3[R])
993993 let em = (ay() - dG._4)
994994 if ((0 > em))
995995 then throw(((("Saved timestamp is in future, saved = " + toString(dG._4)) + ", final = ") + toString(ay())))
996996 else {
997997 let fk = ai(aj)
998998 let fC = fj(dG._2, fk)
999999 let fD = fraction(em, (fC * fk), cu)
10001000 if ((fB > fD))
10011001 then throw(((("Not enough resources, available = " + toString(fD)) + ", requested = ") + toString(fB)))
10021002 else {
10031003 let fE = fraction((fD - fB), cu, (fC * fk))
10041004 let fF = (ay() - fE)
10051005 let eZ = (fk / o)
10061006 let ex = es(eb, (em - fE), eZ, fC)
10071007 let eY = bq(dG._2)
10081008 let fa = valueOrElse(getInteger(bs(dG._2)), 0)
10091009 let eK = eX(eY, eZ, fa)
10101010 let fg = split(eK[aX], "_")
10111011 let ey = parseIntValue(fg[ba])
10121012 if (if ((fp == cI))
10131013 then (fB > ey)
10141014 else false)
10151015 then throw((("Only " + toString(ey)) + " space left in warehouse"))
10161016 else {
10171017 let eF = bC(dG._1)
10181018 let fG = eE(eF)
10191019 let ew = split(fG[bd], "_")
10201020 let ev = split(eK[aU], "_")
10211021 let fH = if ((fp == cI))
10221022 then $Tuple4(ek(ev, eb, (em - fE), eZ, fC), fG[bd], (parseIntValue(fg[aZ]) + ex._2), (parseIntValue(fg[ba]) - ex._2))
10231023 else if ((fp == cJ))
10241024 then $Tuple4(eK[aU], ek(ew, eb, (em - fE), eZ, fC), parseIntValue(fg[aZ]), parseIntValue(fg[ba]))
10251025 else {
10261026 let fI = eu(ev, ew, ex, ey)
10271027 let fJ = min([parseIntValue(fg[ba]), ex._2])
10281028 $Tuple4(fI._1, fI._2, (parseIntValue(fg[aZ]) + fJ), (parseIntValue(fg[ba]) - fJ))
10291029 }
10301030 let fK = fH._1
10311031 let fL = fH._2
10321032 let fM = fH._3
10331033 let fN = fH._4
10341034 $Tuple5([IntegerEntry(bl(dG._2), fF), IntegerEntry(bo(az, dG._2, am), fF)], eF, [fG[bc], fL, fG[be], fG[bf]], eY, [eK[aT], fK, eK[aV], eK[aW], makeString([fg[aY], toString(fM), toString(fN), fg[bb]], "_")])
10351035 }
10361036 }
10371037 }
10381038 }
10391039
10401040
10411041 func fO (am,br,fk,fp) = {
10421042 let fw = bl(br)
10431043 let fx = value(getInteger(fw))
10441044 let fD = (fraction((ay() - fx), fj(br, fk), cu) * fk)
10451045 fA(am, fD, fp, br)
10461046 }
10471047
10481048
10491049 func fP (fQ,fR,fS,fT) = {
10501050 let cn = valueOrElse(getInteger(fR), 0)
10511051 let cs = (cn + fT)
10521052 let fU = cq(valueOrElse(getInteger(fQ), 0), cs)
10531053 $Tuple2([IntegerEntry(fQ, fU[0]), IntegerEntry(fR, cs), IntegerEntry(fS, (valueOrElse(getInteger(fS), 0) + fU[1]))], cs)
10541054 }
10551055
10561056
10571057 func fV (bx,fT) = {
10581058 let fv = value(assetInfo(fromBase58String(bx)))
10591059 let am = valueOrErrorMessage(getString(bA(bx)), (("NFT " + fv.name) + " is orphaned"))
10601060 if (if (if (b)
10611061 then (fv.issuer == this)
10621062 else false)
10631063 then contains(fv.name, aB)
10641064 else false)
10651065 then fP(cc(am), cb(am), cd(am), fT)
10661066 else fP(bY(bx), bX(bx), bZ(bx), fT)
10671067 }
10681068
10691069
10701070 func fW (am,fT) = fP(cc(am), cb(am), cd(am), fT)
10711071
10721072
10731073 func fX (am) = {
10741074 let bx = valueOrErrorMessage(getString(bB(am)), "You don't have a duck staked")
10751075 let fY = bv(am)
10761076 let fZ = getString(fY)
10771077 if (!(isDefined(fZ)))
10781078 then throw("You are not eligible for ONBOARD artifact")
10791079 else {
10801080 let ga = by(am)
10811081 let gb = getString(ga)
10821082 if (isDefined(gb))
10831083 then throw(("You already used your ONBOARD artifact on duck " + value(gb)))
10841084 else {
10851085 let gc = bw(bx)
10861086 let gd = getString(gc)
10871087 if (isDefined(gd))
10881088 then throw(((("The duck " + bx) + " already got points from ONBOARD artifact from user ") + value(gd)))
10891089 else ([StringEntry(ga, bx), StringEntry(gc, am)] ++ fV(bx, cl)._1)
10901090 }
10911091 }
10921092 }
10931093
10941094
10951095 func ge (am,fq) = {
10961096 let dG = fo(am, cK, fq)
10971097 let br = dG._2
10981098 let fk = ai(dG._3[Q])
10991099 let gf = bm(aC, br)
11001100 if ((valueOrElse(getInteger(gf), 0) > 0))
11011101 then throw("Presale artifact is already activated")
11021102 else if ((parseIntValue(dG._3[P]) > cz))
11031103 then throw((((az + " ") + br) + " is not eligible for presale artifact"))
11041104 else {
11051105 let gg = fO(am, br, fk, cK)
11061106 (((gg._1 :+ IntegerEntry(gf, fk)) :+ StringEntry(gg._2, makeString(gg._3, ":"))) :+ StringEntry(gg._4, makeString(gg._5, ":")))
11071107 }
11081108 }
11091109
11101110
11111111 func gh (ef) = if (if ((ef.originCaller != J))
11121112 then valueOrElse(getBoolean(ak()), false)
11131113 else false)
11141114 then throw("Contracts are under maintenance")
11151115 else [StringEntry(al(toString(ef.originCaller)), toBase58String(ef.transactionId))]
11161116
11171117
11181118 func gi (am,br) = {
11191119 let eY = bq(br)
11201120 let gj = split(value(assetInfo(fromBase58String(br))).description, "_")
11211121 let aj = gj[Q]
11221122 let fk = ai(aj)
11231123 let fa = valueOrElse(getInteger(bs(br)), 0)
11241124 let eZ = (fk / o)
11251125 let eb = ei(gj[R])
11261126 let eK = eX(eY, eZ, fa)
11271127 let ev = split(eK[aU], "_")
11281128 let fw = bl(br)
11291129 let fx = getIntegerValue(fw)
11301130 let em = (ay() - fx)
11311131 if ((0 > em))
11321132 then throw(((("Saved timestamp is in future, saved = " + toString(fx)) + ", final = ") + toString(ay())))
11331133 else {
11341134 let fC = fj(br, fk)
11351135 let gk = eq(ev, eb, em, eZ, fC)
11361136 let fl = valueOrElse(getInteger(bm(aC, br)), 0)
11371137 let gl = ((fk * n) + ((((fk * fa) + fl) * n) / 5))
11381138 let gm = (fraction(gk._2, aI, n) * aK)
11391139 func gn (cR,eN) = (cR + parseIntValue(eN))
11401140
11411141 let go = {
11421142 let cT = split(eK[aV], "_")
11431143 let cU = size(cT)
11441144 let cV = 0
11451145 func cW (cX,cY) = if ((cY >= cU))
11461146 then cX
11471147 else gn(cX, cT[cY])
11481148
11491149 func cZ (cX,cY) = if ((cY >= cU))
11501150 then cX
11511151 else throw("List size exceeds 6")
11521152
11531153 cZ(cW(cW(cW(cW(cW(cW(cV, 0), 1), 2), 3), 4), 5), 6)
11541154 }
11551155 let gp = (fraction(go, (2 * aI), n) * aK)
11561156 let gq = if ((eK[aW] == ""))
11571157 then nil
11581158 else split_4C(eK[aW], "_")
11591159 func eO (cR,eN) = {
11601160 let di = cR._2
11611161 let gr = parseIntValue(split(aO[di], "_")[aP])
11621162 $Tuple2((cR._1 + ((parseIntValue(eN) * gr) * m)), (di + 1))
11631163 }
11641164
11651165 let gs = {
11661166 let cT = gq
11671167 let cU = size(cT)
11681168 let cV = $Tuple2(0, 0)
11691169 func eS (cX,cY) = if ((cY >= cU))
11701170 then cX
11711171 else eO(cX, cT[cY])
11721172
11731173 func eT (cX,cY) = if ((cY >= cU))
11741174 then cX
11751175 else throw("List size exceeds 24")
11761176
11771177 eT(eS(eS(eS(eS(eS(eS(eS(eS(eS(eS(eS(eS(eS(eS(eS(eS(eS(eS(eS(eS(eS(eS(eS(eS(cV, 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)
11781178 }
11791179 let gt = (fraction(gs._1, (2 * aI), n) * aK)
11801180 $Tuple4(gl, gm, gp, gt)
11811181 }
11821182 }
11831183
11841184
11851185 func gu (am,bx) = {
11861186 let gv = ca(bx)
11871187 let gw = split(valueOrElse(getString(gv), ",;,_,;,_,;,_,;,_,;,_,;,"), "_")
11881188 let eF = bC(bx)
11891189 let fG = eE(eF)
11901190 let gx = dS(gw, dd(fG[bf]), true, nil)
11911191 let gy = dk(gx)
11921192 func eM (cR,eN) = (cR + parseIntValue(eN))
11931193
11941194 let fL = {
11951195 let cT = split(fG[bd], "_")
11961196 let cU = size(cT)
11971197 let cV = 0
11981198 func cW (cX,cY) = if ((cY >= cU))
11991199 then cX
12001200 else eM(cX, cT[cY])
12011201
12021202 func cZ (cX,cY) = if ((cY >= cU))
12031203 then cX
12041204 else throw("List size exceeds 6")
12051205
12061206 cZ(cW(cW(cW(cW(cW(cW(cV, 0), 1), 2), 3), 4), 5), 6)
12071207 }
12081208 let gm = (fraction(fL, aI, n) * aK)
12091209 let gz = {
12101210 let cT = split(fG[be], "_")
12111211 let cU = size(cT)
12121212 let cV = 0
12131213 func eS (cX,cY) = if ((cY >= cU))
12141214 then cX
12151215 else eM(cX, cT[cY])
12161216
12171217 func eT (cX,cY) = if ((cY >= cU))
12181218 then cX
12191219 else throw("List size exceeds 6")
12201220
12211221 eT(eS(eS(eS(eS(eS(eS(cV, 0), 1), 2), 3), 4), 5), 6)
12221222 }
12231223 let gp = (fraction(gz, (2 * aI), n) * aK)
12241224 let gq = if ((gy == ""))
12251225 then nil
12261226 else split_4C(gy, "_")
12271227 func eO (cR,eN) = {
12281228 let di = cR._2
12291229 let gr = parseIntValue(split(aO[di], "_")[aP])
12301230 $Tuple2((cR._1 + ((parseIntValue(eN) * gr) * m)), (di + 1))
12311231 }
12321232
12331233 let gA = {
12341234 let cT = gq
12351235 let cU = size(cT)
12361236 let cV = $Tuple2(0, 0)
12371237 func eV (cX,cY) = if ((cY >= cU))
12381238 then cX
12391239 else eO(cX, cT[cY])
12401240
12411241 func eW (cX,cY) = if ((cY >= cU))
12421242 then cX
12431243 else throw("List size exceeds 24")
12441244
12451245 eW(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(eV(cV, 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)
12461246 }
12471247 let gt = (fraction(gA._1, (2 * aI), n) * aK)
12481248 $Tuple3(gm, gp, gt)
12491249 }
12501250
12511251
12521252 @Callable(ef)
12531253 func constructorV1 (gB) = if ((ef.caller != this))
12541254 then throw("Permission denied")
12551255 else [StringEntry(D(), gB)]
12561256
12571257
12581258
12591259 @Callable(ef)
12601260 func saveInteger (w,fB) = if ((ef.caller != this))
12611261 then throw("saveInteger is not public method")
12621262 else [IntegerEntry(w, fB)]
12631263
12641264
12651265
12661266 @Callable(ef)
12671267 func setBlocked (gC) = if ((ef.caller != this))
12681268 then throw("permission denied")
12691269 else [BooleanEntry(ak(), gC)]
12701270
12711271
12721272
12731273 @Callable(ef)
12741274 func stakeLand () = {
12751275 let gD = gh(ef)
12761276 if ((size(ef.payments) != 1))
12771277 then throw("Exactly one payment required")
12781278 else {
12791279 let gE = value(ef.payments[0])
12801280 let bj = value(gE.assetId)
12811281 let v = toString(ef.caller)
12821282 if ((gE.amount != 1))
12831283 then throw((("NFT " + az) + " token should be attached as payment"))
12841284 else {
12851285 let fv = value(assetInfo(bj))
12861286 if ((fv.issuer != this))
12871287 then throw("Unknown issuer of token")
12881288 else if (!(contains(fv.name, az)))
12891289 then throw((("Only NFT " + az) + " tokens are accepted"))
12901290 else {
12911291 let gF = drop(fv.name, 4)
12921292 let cE = if (contains(gF, "XXL"))
12931293 then dropRight(gF, 3)
12941294 else if (contains(gF, "XL"))
12951295 then dropRight(gF, 2)
12961296 else dropRight(gF, 1)
12971297 if (!(isDefined(parseInt(cE))))
12981298 then throw(("Cannot parse land number from " + fv.name))
12991299 else {
13001300 let br = toBase58String(bj)
13011301 let fw = bl(br)
13021302 if (isDefined(getInteger(fw)))
13031303 then throw((("NFT " + fv.name) + " is already staked"))
13041304 else {
13051305 let fz = split(fv.description, "_")
13061306 let eb = ei(fz[R])
13071307 let fk = ai(fz[Q])
13081308 let eZ = (fk / o)
13091309 let db = eh(eb, eZ, 1)
13101310 let gG = Y(fz[S])
13111311 let gH = split(valueOrElse(getString(gG), "0_0_0_0_0_0"), "_")
13121312 let gI = makeString(dZ(gH, eb, eZ, 1), "_")
13131313 let gJ = aa(v)
13141314 let gK = getString(gJ)
13151315 let gL = if (isDefined(gK))
13161316 then split_51C(value(gK), "_")
13171317 else nil
13181318 if (containsElement(gL, br))
13191319 then throw(("Your staked lands already contain " + br))
13201320 else if ((size(gL) >= aE))
13211321 then throw((("Your already staked max (" + toString(aE)) + ") lands"))
13221322 else {
13231323 let fa = valueOrElse(getInteger(bs(br)), 0)
13241324 let gM = ac(v)
13251325 let gN = valueOrElse(getInteger(gM), 0)
13261326 let gO = invoke(M, "onStakeUnstakeLand", [v], nil)
13271327 $Tuple2(([IntegerEntry(fw, lastBlock.timestamp), IntegerEntry(bo(az, br, v), lastBlock.timestamp), StringEntry(gJ, makeString_11C((gL :+ br), "_")), IntegerEntry(gM, (gN + fk)), StringEntry(bi(br), v), StringEntry(cD(cE), v), IntegerEntry(cC(br, v), fa), StringEntry(X(), db), StringEntry(gG, gI)] ++ gD), gO)
13281328 }
13291329 }
13301330 }
13311331 }
13321332 }
13331333 }
13341334 }
13351335
13361336
13371337
13381338 @Callable(ef)
13391339 func unstakeLand (fq) = {
13401340 let gD = gh(ef)
13411341 if ((size(ef.payments) != 0))
13421342 then throw("No payments required")
13431343 else {
13441344 let am = toString(ef.caller)
13451345 let dG = fo(am, cJ, fq)
13461346 let br = dG._2
13471347 let fz = dG._3
13481348 let gJ = aa(am)
13491349 let eb = ei(fz[R])
13501350 let fk = ai(fz[Q])
13511351 let eZ = (fk / o)
13521352 let db = eh(eb, eZ, -1)
13531353 let gG = Y(fz[S])
13541354 let gH = split(valueOrElse(getString(gG), "0_0_0_0_0_0"), "_")
13551355 let gI = makeString(dZ(gH, eb, eZ, -1), "_")
13561356 let gg = fO(am, br, fk, cJ)
13571357 let gL = split_51C(valueOrElse(getString(gJ), ""), "_")
13581358 let I = indexOf(gL, br)
13591359 if (!(isDefined(I)))
13601360 then throw(("Your staked lands don't contain " + br))
13611361 else {
13621362 let gP = lastBlock.timestamp
13631363 let gQ = valueOrElse(getInteger(L, bE(am)), 0)
13641364 if ((gQ >= gP))
13651365 then throw(("Your gWL are taking part in voting, cannot unstake until " + toString(gQ)))
13661366 else {
13671367 let gR = (valueOrElse(getInteger(M, cv(am)), 0) + k)
13681368 if ((gR > gP))
13691369 then throw(("Your staked lands took part in arbitrage, cannot unstake until " + toString(gR)))
13701370 else {
13711371 let gM = ac(am)
13721372 let gS = valueOrElse(getInteger(gM), 0)
13731373 let gT = if ((fk > gS))
13741374 then 0
13751375 else (gS - fk)
13761376 let gO = invoke(M, "onStakeUnstakeLand", [am], nil)
13771377 $Tuple2(([ScriptTransfer(ef.caller, 1, fromBase58String(br)), DeleteEntry(bl(br)), DeleteEntry(bo(az, br, am)), StringEntry(X(), db), StringEntry(gG, gI), StringEntry(gg._2, makeString(gg._3, ":")), if ((size(gL) > 1))
13781378 then StringEntry(gJ, makeString_11C(removeByIndex(gL, value(I)), "_"))
13791379 else DeleteEntry(gJ), IntegerEntry(gM, gT)] ++ gD), gO)
13801380 }
13811381 }
13821382 }
13831383 }
13841384 }
13851385
13861386
13871387
13881388 @Callable(ef)
13891389 func unstakeLandCallback (br,am) = if ((toString(ef.caller) != j))
13901390 then throw("Permission denied")
13911391 else {
13921392 let gU = gi(am, br)
13931393 let gO = invoke(M, "onStakeUnstakeLand", [am], nil)
13941394 $Tuple2([Burn(fromBase58String(br), 1), DeleteEntry(bl(br)), DeleteEntry(bo(az, br, am))], $Tuple5(gU._1, gU._2, gU._3, gU._4, gO))
13951395 }
13961396
13971397
13981398
13991399 @Callable(ef)
14001400 func unstakeLandREADONLY (br,am) = {
14011401 let gU = gi(am, br)
14021402 $Tuple2(nil, gU)
14031403 }
14041404
14051405
14061406
14071407 @Callable(ef)
14081408 func unstakeLandsFinalizeCallback (am) = if ((toString(ef.caller) != j))
14091409 then throw("Permission denied")
14101410 else $Tuple2([DeleteEntry(aa(am)), DeleteEntry(ac(am))], 0)
14111411
14121412
14131413
14141414 @Callable(ef)
14151415 func convertUnstakedLands () = if ((size(ef.payments) != 1))
14161416 then throw("Exactly one payment required")
14171417 else {
14181418 let gE = value(ef.payments[0])
14191419 let bj = value(gE.assetId)
14201420 let v = toString(ef.caller)
14211421 if ((gE.amount != 1))
14221422 then throw((("NFT " + az) + " token should be attached as payment"))
14231423 else {
14241424 let fv = value(assetInfo(bj))
14251425 if ((fv.issuer != this))
14261426 then throw("Unknown issuer of token")
14271427 else if (!(contains(fv.name, az)))
14281428 then throw((("Only NFT " + az) + " tokens are accepted"))
14291429 else {
14301430 let br = toBase58String(bj)
14311431 let fz = split(fv.description, "_")
14321432 let fk = ai(fz[Q])
14331433 let fa = valueOrElse(getInteger(bs(br)), 0)
14341434 let fl = valueOrElse(getInteger(bm(aC, br)), 0)
14351435 let gV = ((fk * n) + ((((fk * fa) + fl) * n) / 5))
14361436 let gW = invoke(O, "requestAcresCallback", [gV], nil)
14371437 if ((gW == gW))
14381438 then {
14391439 let gX = invoke(addressFromStringValue(j), "stakeAcresCallback", [v], [AttachedPayment(U, gV)])
14401440 if ((gX == gX))
14411441 then $Tuple2([Burn(fromBase58String(br), 1)], 0)
14421442 else throw("Strict value is not equal to itself.")
14431443 }
14441444 else throw("Strict value is not equal to itself.")
14451445 }
14461446 }
14471447 }
14481448
14491449
14501450
14511451 @Callable(ef)
14521452 func unstakeDuckCallback (bx,am) = if ((toString(ef.caller) != j))
14531453 then throw("Permission denied")
14541454 else {
14551455 let gU = gu(am, bx)
14561456 $Tuple2([ScriptTransfer(addressFromStringValue(am), 1, fromBase58String(bx)), DeleteEntry(bl(bx)), DeleteEntry(bA(bx)), DeleteEntry(bo(aA, bx, am)), DeleteEntry(bB(am))], gU)
14571457 }
14581458
14591459
14601460
14611461 @Callable(ef)
14621462 func unstakeDuckREADONLY (bx,am) = {
14631463 let gU = gu(am, bx)
14641464 $Tuple2(nil, gU)
14651465 }
14661466
14671467
14681468
14691469 @Callable(ef)
14701470 func claimRes (fB,gY) = {
14711471 let gD = gh(ef)
14721472 if ((size(ef.payments) != 0))
14731473 then throw("No payments required")
14741474 else {
14751475 let am = toString(ef.originCaller)
14761476 let eg = fA(am, fB, cJ, gY)
14771477 let bx = valueOrErrorMessage(getString(bB(am)), "You don't have a duck staked")
14781478 $Tuple2(((((eg._1 ++ fV(bx, fraction(cj, fB, n))._1) :+ StringEntry(eg._2, makeString(eg._3, ":"))) :+ StringEntry(eg._4, makeString(eg._5, ":"))) ++ gD), eg._3[bd])
14791479 }
14801480 }
14811481
14821482
14831483
14841484 @Callable(ef)
14851485 func claimResToWH (fB,gY) = {
14861486 let gD = gh(ef)
14871487 if ((size(ef.payments) != 0))
14881488 then throw("No payments required")
14891489 else {
14901490 let am = toString(ef.originCaller)
14911491 let eg = fA(am, fB, cI, gY)
14921492 $Tuple2(((((eg._1 ++ fW(am, fraction(cj, fB, n))._1) :+ StringEntry(eg._2, makeString(eg._3, ":"))) :+ StringEntry(eg._4, makeString(eg._5, ":"))) ++ gD), eg._5[aU])
14931493 }
14941494 }
14951495
14961496
14971497
14981498 @Callable(ef)
14991499 func updateBackpack (bx,gZ) = if ((ef.caller != K))
15001500 then throw("permission denied")
15011501 else $Tuple2([StringEntry(bC(bx), gZ)], gZ)
15021502
15031503
15041504
15051505 @Callable(ef)
15061506 func commitForRandom () = {
15071507 let gD = gh(ef)
15081508 let ha = (height + V)
15091509 let am = toString(ef.caller)
15101510 $Tuple2(([IntegerEntry(W(am), ha)] ++ gD), ha)
15111511 }
15121512
15131513
15141514
15151515 @Callable(ef)
15161516 func revealRandom (au) = {
15171517 let gD = gh(ef)
15181518 let am = toString(ef.caller)
15191519 let hb = W(am)
15201520 let ha = valueOrErrorMessage(getInteger(hb), "You have to commitForRandom() first!")
15211521 if ((ha > height))
15221522 then throw(("Random number is not ready yet, wait until height = " + toString(ha)))
15231523 else {
15241524 let aw = value(value(blockInfoByHeight(ha)).vrf)
15251525 let av = toBytes(valueOrElse(getString(al(am)), ""))
15261526 let hc = at(au, av, aw)
15271527 $Tuple2(([DeleteEntry(hb)] ++ gD), hc)
15281528 }
15291529 }
15301530
15311531
15321532
15331533 @Callable(ef)
15341534 func activateArtifact (hd,he) = {
15351535 let gD = gh(ef)
15361536 if ((size(ef.payments) != 0))
15371537 then throw("No payments required")
15381538 else {
15391539 let am = toString(ef.caller)
15401540 let eg = {
15411541 let g = hd
15421542 if (("PRESALE" == g))
15431543 then ge(am, he)
15441544 else if (("ONBOARD" == g))
15451545 then fX(am)
15461546 else throw("Unknown artifact")
15471547 }
15481548 (eg ++ gD)
15491549 }
15501550 }
15511551
15521552
15531553
15541554 @Callable(ef)
15551555 func saveWarehouse (fc,br) = if ((ef.caller != K))
15561556 then throw("Access denied")
15571557 else {
15581558 let eY = bq(br)
15591559 let fd = split_4C(fc, ":")
15601560 if ((size(fd) != 5))
15611561 then throw("warehouse string should contain 4 ':' separators")
15621562 else {
15631563 let hf = split(fd[aX], "_")[aY]
15641564 let fM = eJ(fd)
15651565 let hg = eH(fd[aT])
15661566 let fN = ((hg - parseIntValue(hf)) - fM)
15671567 if ((0 > fN))
15681568 then throw("Operation leads to negative free warehouse space")
15691569 else {
15701570 let hh = makeString_2C([fd[aT], fd[aU], fd[aV], fd[aW], makeString([hf, toString(fM), toString(fN), toString(hg)], "_")], ":")
15711571 $Tuple2([StringEntry(eY, hh)], hh)
15721572 }
15731573 }
15741574 }
15751575
15761576
15771577
15781578 @Callable(ef)
15791579 func setCustomName (bj,hi,bn) = {
15801580 let gD = gh(ef)
15811581 if ((size(ef.payments) != 1))
15821582 then throw("Exactly one payment required")
15831583 else {
15841584 let gE = value(ef.payments[0])
15851585 if ((gE.assetId != h))
15861586 then throw("Allowed USDT payment only!")
15871587 else if ((gE.amount != cx))
15881588 then throw(("Payment should be " + toString(cx)))
15891589 else if (contains(hi, "__"))
15901590 then throw(("Name should not contain '__': " + hi))
15911591 else if ((size(hi) > cy))
15921592 then throw(("Name too long, maxLength=" + toString(cy)))
15931593 else {
15941594 let am = toString(ef.originCaller)
15951595 let hj = {
15961596 let g = bn
15971597 if (("ACCOUNT" == g))
15981598 then {
15991599 let hk = cG(hi)
16001600 let hl = getString(hk)
16011601 if (isDefined(hl))
16021602 then throw(("Name already registered: " + hi))
16031603 else {
16041604 let hm = bu(am)
16051605 let hn = getString(hm)
16061606 let ho = if (isDefined(hn))
16071607 then [DeleteEntry(cG(value(hn)))]
16081608 else nil
16091609 (((ho :+ StringEntry(hm, hi)) :+ StringEntry(hk, am)) ++ fW(am, ck)._1)
16101610 }
16111611 }
16121612 else if (("LAND" == g))
16131613 then {
16141614 let fv = value(assetInfo(fromBase58String(bj)))
16151615 let fw = bl(bj)
16161616 if (!(isDefined(getInteger(fw))))
16171617 then throw((fv.name + " is not staked"))
16181618 else {
16191619 let fy = valueOrErrorMessage(getString(bi(bj)), (("NFT " + fv.name) + " is orphaned"))
16201620 if ((fy != am))
16211621 then throw((az + " is not yours"))
16221622 else {
16231623 let hk = cA(hi)
16241624 let hl = getString(hk)
16251625 if (isDefined(hl))
16261626 then throw(("Name already registered: " + hi))
16271627 else {
16281628 let hp = bk(bj)
16291629 let hn = getString(hp)
16301630 let ho = if (isDefined(hn))
16311631 then [DeleteEntry(cA(value(hn)))]
16321632 else nil
16331633 (((ho :+ StringEntry(hp, hi)) :+ StringEntry(hk, bj)) ++ fW(am, ck)._1)
16341634 }
16351635 }
16361636 }
16371637 }
16381638 else if (("DUCK" == g))
16391639 then {
16401640 let fv = value(assetInfo(fromBase58String(bj)))
16411641 let fw = bl(bj)
16421642 if (if (!(isDefined(getInteger(fw))))
16431643 then true
16441644 else !(isDefined(getString(bB(am)))))
16451645 then throw((fv.name + " is not staked"))
16461646 else {
16471647 let fy = valueOrErrorMessage(getString(bA(bj)), (("NFT " + fv.name) + " is orphaned"))
16481648 if ((fy != am))
16491649 then throw((aA + " is not yours"))
16501650 else {
16511651 let hk = cF(hi)
16521652 let hl = getString(hk)
16531653 if (isDefined(hl))
16541654 then throw(("Name already registered: " + hi))
16551655 else {
16561656 let hp = bt(bj)
16571657 let hn = getString(hp)
16581658 let ho = if (isDefined(hn))
16591659 then [DeleteEntry(cF(value(hn)))]
16601660 else nil
16611661 (((ho :+ StringEntry(hp, hi)) :+ StringEntry(hk, bj)) ++ fV(bj, ck)._1)
16621662 }
16631663 }
16641664 }
16651665 }
16661666 else throw("Unknown entity type")
16671667 }
16681668 $Tuple2(((hj :+ ScriptTransfer(K, gE.amount, h)) ++ gD), 0)
16691669 }
16701670 }
16711671 }
16721672
16731673
16741674
16751675 @Callable(ef)
16761676 func setReferrals (hq,hr) = if ((ef.callerPublicKey != f))
16771677 then throw("Permission denied")
16781678 else {
16791679 let gD = gh(ef)
16801680 if ((size(ef.payments) != 0))
16811681 then throw("No payments required")
16821682 else if (!(isDefined(addressFromString(hq))))
16831683 then throw(("Invalid address: " + hq))
16841684 else {
16851685 let hs = addressFromString(hr)
16861686 if (!(isDefined(hs)))
16871687 then throw(("Invalid address: " + hr))
16881688 else {
16891689 let ht = getString(al(hq))
16901690 if (!(isDefined(ht)))
16911691 then throw("oldPlayer didn't do any tx in game")
16921692 else if ((0 >= wavesBalance(value(hs)).available))
16931693 then throw("newPlayer has no WAVES")
16941694 else {
16951695 let hu = cH()
16961696 let hv = getString(hu)
16971697 let hw = if (isDefined(hv))
16981698 then split_4C(value(hv), "_")
16991699 else nil
17001700 if (containsElement(hw, hr))
17011701 then throw((hr + " is not newbie (already has referrals)"))
17021702 else {
17031703 let fY = bv(hr)
17041704 let fZ = getString(fY)
17051705 if (if (isDefined(fZ))
17061706 then isDefined(addressFromString(value(fZ)))
17071707 else false)
17081708 then throw(((hr + " already has refBy: ") + value(fZ)))
17091709 else {
17101710 let hx = bz(hq)
17111711 let hy = getString(hx)
17121712 let hz = if (isDefined(hy))
17131713 then split_4C(value(hy), "_")
17141714 else nil
17151715 if (containsElement(hz, hr))
17161716 then throw((((hq + " already contains ") + hr) + " within referrals"))
17171717 else {
17181718 let hA = makeString_2C((hz :+ hr), "_")
17191719 let hB = if (containsElement(hw, hq))
17201720 then value(hv)
17211721 else makeString_2C((hw :+ hq), "_")
17221722 $Tuple2(([StringEntry(fY, hq), StringEntry(hx, hA), StringEntry(hu, hB)] ++ gD), 0)
17231723 }
17241724 }
17251725 }
17261726 }
17271727 }
17281728 }
17291729 }
17301730
17311731
17321732
17331733 @Callable(ef)
17341734 func distributePoints (hC,hD,hE,hF,hG) = {
17351735 let gD = gh(ef)
17361736 if ((size(ef.payments) != 0))
17371737 then throw("No payments required")
17381738 else {
17391739 let am = toString(ef.originCaller)
17401740 let hH = ag(invoke(M, "checkWlgXpREADONLY", [am], nil))
17411741 let hI = ad(hH[1])
17421742 let hJ = if ((0 >= hI))
17431743 then $Tuple2(0, nil)
17441744 else {
17451745 let fT = ad(invoke(M, "takeWlgXp", [am], nil))
17461746 if ((fT == fT))
17471747 then $Tuple2(hI, [IntegerEntry(cc(am), ad(hH[0])), IntegerEntry(cb(am), ad(hH[2]))])
17481748 else throw("Strict value is not equal to itself.")
17491749 }
17501750 let hK = hJ._1
17511751 let hL = hJ._2
17521752 let bx = valueOrErrorMessage(getString(bB(am)), "You don't have a duck staked")
17531753 let hM = cd(am)
17541754 let hN = (valueOrElse(getInteger(hM), 0) + hK)
17551755 let hO = bZ(bx)
17561756 let hP = valueOrElse(getInteger(hO), 0)
17571757 let hQ = (hN + hP)
17581758 let hR = ((((hC + hD) + hE) + hF) + hG)
17591759 if ((hR > hQ))
17601760 then throw((("There are only " + toString(hQ)) + " free points to distribute"))
17611761 else {
17621762 let hS = bW(bx)
17631763 let hT = split(valueOrElse(getString(hS), "0_0_0_0_0"), "_")
17641764 let hU = (hN - hR)
17651765 $Tuple2((([IntegerEntry(hM, if ((0 > hU))
17661766 then 0
17671767 else hU), IntegerEntry(hO, if ((0 > hU))
17681768 then (hP + hU)
17691769 else hP), StringEntry(hS, makeString([toString((parseIntValue(hT[bN]) + hC)), toString((parseIntValue(hT[bO]) + hD)), toString((parseIntValue(hT[bP]) + hE)), toString((parseIntValue(hT[bQ]) + hF)), toString((parseIntValue(hT[bR]) + hG))], "_"))] ++ gD) ++ hL), 0)
17701770 }
17711771 }
17721772 }
17731773
17741774
17751775
17761776 @Callable(ef)
17771777 func splitByGlobalWeightsREADONLY (fB) = $Tuple2(nil, da(fB))
17781778
17791779
17801780
17811781 @Callable(ef)
17821782 func splitByGlobalAndLocalWeightsREADONLY (hV,hW,ej) = {
17831783 let eb = ei(ej)
17841784 $Tuple2(nil, $Tuple2(da(hV), cL(hW, eb)))
17851785 }
17861786
17871787
17881788
17891789 @Callable(ef)
17901790 func getBackpackREADONLY (bx) = $Tuple2(nil, makeString(eE(bC(bx)), ":"))
17911791
17921792
17931793
17941794 @Callable(ef)
17951795 func getWarehouseREADONLY (br) = {
17961796 let fv = value(assetInfo(fromBase58String(br)))
17971797 let eZ = (ai(split(fv.description, "_")[Q]) / o)
17981798 let fa = valueOrElse(getInteger(bs(br)), 0)
17991799 $Tuple2(nil, makeString_2C(eX(bq(br), eZ, fa), ":"))
18001800 }
18011801
18021802
18031803
18041804 @Callable(ef)
18051805 func saveLastTx () = if (!(containsElement([M, K, N, O], ef.caller)))
18061806 then throw("Access denied")
18071807 else $Tuple2(gh(ef), 42)
18081808
18091809
18101810
18111811 @Callable(ef)
18121812 func updateDuckStats (bx,fT) = if ((ef.caller != K))
18131813 then throw("Access denied")
18141814 else fV(bx, fT)
18151815
18161816
18171817
18181818 @Callable(ef)
18191819 func updateAccStats (am,fT) = if (!(containsElement([M, K, O], ef.caller)))
18201820 then throw("Access denied")
18211821 else fW(am, fT)
18221822
18231823
18241824
18251825 @Callable(ef)
18261826 func initDuckTourAttempt (bx) = if ((ef.caller != N))
18271827 then throw("Access denied")
18281828 else {
18291829 let hX = bV(bx)
18301830 let hY = co(valueOrElse(getInteger(bY(bx)), 0))
18311831 let hZ = valueOrElse(getInteger(hX), hY)
18321832 let ia = bD(bx)
18331833 let fs = valueOrElse(getString(ia), aH)
18341834 let ib = valueOrElse(getInteger(N, bH), 0)
18351835 let ic = (toString(ib) + "_T_0")
18361836 $Tuple2([IntegerEntry(ce(bx), hZ), IntegerEntry(hX, hY), StringEntry(cf(bx), fs), StringEntry(ia, ic)], ic)
18371837 }
18381838
18391839
18401840
18411841 @Callable(ef)
18421842 func breakAttempt () = {
18431843 let gD = gh(ef)
18441844 let bx = valueOrErrorMessage(getString(bB(toString(ef.caller))), "You don't have a duck staked")
18451845 let ia = bD(bx)
18461846 let fs = valueOrElse(getString(ia), aH)
18471847 if ((split(fs, "_")[bg] != "T"))
18481848 then throw("Your duck is not in the tournament")
18491849 else {
18501850 let id = getIntegerValue(ce(bx))
18511851 let ie = getStringValue(cf(bx))
18521852 $Tuple2(((gD :+ IntegerEntry(bV(bx), id)) :+ StringEntry(ia, ie)), fs)
18531853 }
18541854 }
18551855
18561856
18571857
18581858 @Callable(ef)
18591859 func breakAttemptCallback () = if ((ef.caller != N))
18601860 then throw("Access denied")
18611861 else {
18621862 let bx = valueOrErrorMessage(getString(bB(toString(ef.originCaller))), "You don't have a duck staked")
18631863 $Tuple2([IntegerEntry(bV(bx), getIntegerValue(ce(bx))), StringEntry(bD(bx), getStringValue(cf(bx)))], "breakAttemptCallback")
18641864 }
18651865
18661866
18671867
18681868 @Callable(ef)
18691869 func exitTournamentInternal (bx) = if ((ef.caller != this))
18701870 then throw("Access denied")
18711871 else {
18721872 let id = getIntegerValue(ce(bx))
18731873 let ie = getStringValue(cf(bx))
18741874 $Tuple2([IntegerEntry(bV(bx), id), StringEntry(bD(bx), ie)], false)
18751875 }
18761876
18771877
18781878
18791879 @Callable(ef)
18801880 func processDelivery (bx) = if ((ef.caller != this))
18811881 then throw("Access denied")
18821882 else {
18831883 let am = toString(ef.originCaller)
18841884 let if = valueOrElse(getInteger(K, bG), 0)
18851885 if ((aJ > if))
18861886 then throw(("Delivery is not available, fund=" + an(if, 6)))
18871887 else {
18881888 let gP = lastBlock.timestamp
18891889 let ig = ch(am)
18901890 let ih = valueOrElse(getInteger(ci(am)), 0)
18911891 let ii = (gP / cu)
18921892 let dB = if ((ih == ii))
18931893 then valueOrElse(getInteger(ig), 0)
18941894 else 0
18951895 let ij = valueOrElse(getInteger(O, cw(am)), 0)
18961896 let ik = (aL + (ij / aM))
18971897 if ((dB >= ik))
18981898 then throw((("You already used " + toString(ik)) + " delivery attempts for today"))
18991899 else {
19001900 let il = cg(bx)
19011901 let im = invoke(K, "sendDeliveryReward", [am], nil)
19021902 $Tuple2([IntegerEntry(ig, (dB + 1)), IntegerEntry(ci(am), ii), IntegerEntry(il, (valueOrElse(getInteger(il), 0) + 1))], im)
19031903 }
19041904 }
19051905 }
19061906
19071907

github/deemru/w8io/026f985 
196.65 ms