tx · HcNjzAKaiHMNPDcf3n5y9fFfF6hA4vmAZ7kt4Hvvn8Jd

3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2:  -0.01500000 Waves

2019.10.28 14:23 [739896] smart account 3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2 > SELF 0.00000000 Waves

{ "type": 13, "id": "HcNjzAKaiHMNPDcf3n5y9fFfF6hA4vmAZ7kt4Hvvn8Jd", "fee": 1500000, "feeAssetId": null, "timestamp": 1572261846794, "version": 1, "sender": "3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2", "senderPublicKey": "8y2Uc9uYf5gRD6Dzm1aC73zYe3LZvtVDUVAnAhNdN2mg", "proofs": [ "5bK8coGjJhiPtvvrEqKM4PDiJ8caweeTMJmSEfw2BjhXVHY9AHn6jnFa8KRZyow51s47mNdmpxwbbx5KEXTh1jyh" ], "script": "base64:AAIDAAAAAAAAAEAIARIDCgEIEgMKAQgSBgoEAQEICBIECgIIARIECgIICBIECgIIARIDCgEIEgMKAQgSBAoCCAgSAwoBCBIDCgEIAAAAOAAAAAADZGF5AAAAAAAAAAWgAAAAAAVXQVZFUwUAAAAEdW5pdAAAAAAEd0JUQwEAAAAgbPpq/8XtqowLf7Uqk9KiDC+Cgtt0egSMU/v9Ex9zoP8AAAAABHdFVVIBAAAAIOwWYQRfe5EhQQY7N/Pn19T489PGDqqAl/OQv9D6FbqZAAAAAAR3VVNEAQAAACDdHL0B8M91BTB4B7KotjiY0UXdXB+6M1rjQG/6Zllw/QAAAAAJYXVjdFRva2VuAQAAAAEAAAAAAAlzdGF0ZU9wZW4CAAAABk9wZW5lZAAAAAAOc3RhdGVTdWdnZXN0ZWQCAAAACVN1Z2dlc3RlZAAAAAALc3RhdGVDYW5jZWwCAAAACENhbmNlbGVkAAAAAA9zdGF0ZUluUHJvZ3Jlc3MCAAAACkluUHJvZ3Jlc3MAAAAAEXN0YXRlV2FpdDRDb25maXJtAgAAABNXYWl0Rm9yQ29uZmlybWF0aW9uAAAAAA1zdGF0ZUNvbXBsZXRlAgAAAAlDb21wbGV0ZWQAAAAADHN0YXRlRGlzcHV0ZQIAAAAHRGlzcHV0ZQAAAAAUc3RhdGVEaXNwdXRlUmVzb2x2ZWQCAAAAD0Rpc3B1dGVSZXNvbHZlZAAAAAAJY2F0ZWdvcnkxAgAAABhXZWIgRGVzaWduICYgRGV2ZWxvcG1lbnQAAAAACWNhdGVnb3J5MgIAAAAbV2F2ZXMgUklERSAmIFNtYXJ0IENvbnRyYWN0AAAAAAljYXRlZ29yeTMCAAAACk1vYmlsZSBBcHAAAAAACWNhdGVnb3J5NAIAAAARR3JhcGhpY3MgJiBEZXNpZ24AAAAACWNhdGVnb3J5NQIAAAAVV3JpdGluZyAmIFRyYW5zbGF0aW9uAAAAAAljYXRlZ29yeTYCAAAAEVZpZGVvICYgQW5pbWF0aW9uAAAAAAZjbGllbnQCAAAAAkNMAAAAAApmcmVlbGFuY2VyAgAAAAJGTAAAAAALYW1iYXNzYWRvcjECAAAALEZuZUNKcU01QlAyZUF1eXRlTWl1RUVIWUFMckU0YXhoRWZjcEhWR2JkcjVzAAAAAAthbWJhc3NhZG9yMgIAAAAsNlFBTWRzc2IxR0pqcFFWUVFjbng4ZktVOFdodGNGOVpzUWhpZmRUaEFFSzgAAAAAC2FtYmFzc2Fkb3IzAgAAACwyaXR1d1c3RFNSc0xQM1ZjYm5wcjk4UVVRTUdGUldLbXlZUEZxc1VLUkRvUAAAAAALYW1iYXNzYWRvcjQCAAAALEFOc1BRb2NFRVN5TGIzeVFxazJwd0Nkb0s3UEpReExvWlZwWXZzbTNTeFVHAAAAAAthbWJhc3NhZG9yNQIAAAAsMTNWaXh3UWluMU16WkN5WTY5TlNXTVNCTkVWMjdSemMxNTlvN3VaWFI5VlMBAAAABmdldEludAAAAAEAAAADa2V5BAAAABB2YWx1ZUpvYnNPbkdvaW5nCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQQAAAAHJG1hdGNoMAUAAAAQdmFsdWVKb2JzT25Hb2luZwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAAA1jYXRlZ29yeUNoZWNrAAAAAQAAAAhjYXRlZ29yeQMDAwMDAwkAAAAAAAACBQAAAAhjYXRlZ29yeQUAAAAJY2F0ZWdvcnkxBgkAAAAAAAACBQAAAAhjYXRlZ29yeQUAAAAJY2F0ZWdvcnkyBgkAAAAAAAACBQAAAAhjYXRlZ29yeQUAAAAJY2F0ZWdvcnkzBgkAAAAAAAACBQAAAAhjYXRlZ29yeQUAAAAJY2F0ZWdvcnk0BgkAAAAAAAACBQAAAAhjYXRlZ29yeQUAAAAJY2F0ZWdvcnk1BgkAAAAAAAACBQAAAAhjYXRlZ29yeQUAAAAJY2F0ZWdvcnk2BQAAAAhjYXRlZ29yeQkAAAIAAAABAgAAABNDYXRlZ29yeSBpcyBpbnZhbGlkAQAAABJBc3NldElkVG9Bc3NldE5hbWUAAAABAAAACnBtdEFzc2V0SWQDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAApwbXRBc3NldElkAgAAAAVXQVZFUwMJAAAAAAAAAgUAAAAKcG10QXNzZXRJZAUAAAAEd0JUQwIAAAADQlRDAwkAAAAAAAACBQAAAApwbXRBc3NldElkBQAAAAR3RVVSAgAAAANFVVIDCQAAAAAAAAIFAAAACnBtdEFzc2V0SWQFAAAABHdVU0QCAAAAA1VTRAMJAAAAAAAAAgUAAAAKcG10QXNzZXRJZAUAAAAJYXVjdFRva2VuAgAAAARBVUNUCQAAAgAAAAECAAAAFEFzc2V0SWQgaXMgaW5jb3JyZWN0AQAAABJBc3NldE5hbWVUb0Fzc2V0SWQAAAABAAAAEGF1Y3Rpb25Bc3NldE5hbWUDCQAAAAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAABVdBVkVTBQAAAAVXQVZFUwMJAAAAAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAADQlRDBQAAAAR3QlRDAwkAAAAAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAANFVVIFAAAABHdFVVIDCQAAAAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAAA1VTRAUAAAAEd1VTRAMJAAAAAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAEQVVDVAUAAAAJYXVjdFRva2VuCQAAAgAAAAECAAAAEkluY29ycmVjdCBBc3NldCBJZAEAAAAJdGltZUNoZWNrAAAAAwAAAAtjdXJyZW50VGltZQAAAAlzdGFydFRpbWUAAAAOZXhwaXJhdGlvblRpbWUJAABmAAAAAgkAAGUAAAACBQAAAAtjdXJyZW50VGltZQUAAAAJc3RhcnRUaW1lBQAAAA5leHBpcmF0aW9uVGltZQEAAAAOYmlkQW1vdW50Q2hlY2sAAAACAAAABmFtb3VudAAAAAxhdWN0aW9uUHJpY2UDCQAAZgAAAAIFAAAABmFtb3VudAUAAAAMYXVjdGlvblByaWNlCQAAAgAAAAECAAAAM0JpZCBhbW91bnQgbXVzdCBiZSBsb3dlciBvciBlcXVhbCB0aGFuIGF1Y3Rpb25QcmljZQUAAAAGYW1vdW50AQAAABZpbmNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgAAAAxwbXRBc3NldE5hbWUAAAAMYXVjdGlvblByaWNlBAAAAA9rZXlGcmVlemVkRnVuZHMJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAxwbXRBc3NldE5hbWUCAAAACF9GcmVlemVkBAAAABVjdXJyZW50RnJlZXplZEJhbGFuY2UEAAAAByRtYXRjaDAFAAAAD2tleUZyZWV6ZWRGdW5kcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAACQAAZAAAAAIFAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQUAAAAMYXVjdGlvblByaWNlAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgAAAAxwbXRBc3NldE5hbWUAAAAMYXVjdGlvblByaWNlBAAAAA9rZXlGcmVlemVkRnVuZHMJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAxwbXRBc3NldE5hbWUCAAAACF9GcmVlemVkBAAAABVjdXJyZW50RnJlZXplZEJhbGFuY2UEAAAAByRtYXRjaDAFAAAAD2tleUZyZWV6ZWRGdW5kcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAFhCQAAZQAAAAIFAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQUAAAAMYXVjdGlvblByaWNlAwkAAGcAAAACBQAAAAFhAAAAAAAAAAAABQAAAAFhCQAAAgAAAAECAAAAJkZyZWV6ZWQgYW1vdW50IGNvdWxkbid0IGJlIGxlc3MgdGhhbiAwAQAAABBjbGllbnRSZWdpc3RlcmVkAAAAAQAAAAljYWxsZXJQdWIEAAAAEmNsaWVudElzUmVnaXN0ZXJlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWNhbGxlclB1YgIAAAAHX0NsaWVudAQAAAAHJG1hdGNoMAUAAAASY2xpZW50SXNSZWdpc3RlcmVkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAACWNhbGxlclB1YgkAAAIAAAABAgAAAClPbmx5IHJlZ2lzdGVyZWQgdXNlcnMgY2FuIGNyZWF0ZSBhdWN0aW9ucwEAAAAUZnJlZWxhbmNlclJlZ2lzdGVyZWQAAAABAAAACWNhbGxlclB1YgQAAAAWZnJlZWxhbmNlcklzUmVnaXN0ZXJlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWNhbGxlclB1YgIAAAALX0ZyZWVsYW5jZXIEAAAAByRtYXRjaDAFAAAAFmZyZWVsYW5jZXJJc1JlZ2lzdGVyZWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAAJY2FsbGVyUHViCQAAAgAAAAECAAAAI09ubHkgcmVnaXN0ZXJlZCB1c2VycyBjYW4gbWFrZSBiZXRzAQAAABdjcmVhdGVBdWN0aW9uUHJpY2VDaGVjawAAAAEAAAAJcG10QW1vdW50AwkAAGYAAAACBQAAAAlwbXRBbW91bnQAAAAAAAAAAAAFAAAACXBtdEFtb3VudAkAAAIAAAABAgAAABxBbW91bnQgbXVzdCBiZSBoaWdoZXIgdGhlbiAwAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABAAAACWF1Y3Rpb25JZAQAAAAKdmFsdWVTdGF0ZQkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBAAAAAckbWF0Y2gwBQAAAAp2YWx1ZVN0YXRlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAbQXVjdGlvbiBTdGF0ZSB3YXMgbm90IGZvdW5kAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQAAAAlhdWN0aW9uSWQEAAAADnZhbHVlQ2xpZW50UHViCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA5fQXVjdGlvbkNsaWVudAQAAAAHJG1hdGNoMAUAAAAOdmFsdWVDbGllbnRQdWIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAABxBdWN0aW9uIENsaWVudCB3YXMgbm90IGZvdW5kAQAAABNnZXRBdWN0aW9uU3RhcnRUaW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAAEXZhbHVlQXVjdGlvblN0YXJ0CQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fQXVjdGlvblN0YXJ0BAAAAAckbWF0Y2gwBQAAABF2YWx1ZUF1Y3Rpb25TdGFydAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAIEF1Y3Rpb24gU3RhcnQgdGltZSB3YXMgbm90IGZvdW5kAQAAABZnZXRBdWN0aW9uRHVyYXRpb25UaW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAAFHZhbHVlYXVjdGlvbkR1cmF0aW9uCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfQXVjdGlvbkR1cmF0aW9uBAAAAAckbWF0Y2gwBQAAABR2YWx1ZWF1Y3Rpb25EdXJhdGlvbgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAI0F1Y3Rpb24gZHVyYXRpb24gdGltZSB3YXMgbm90IGZvdW5kAQAAABxnZXRBdWN0aW9uSm9iUGVyZm9ybWFuY2VUaW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAAF3ZhbHVlQmxvY2tzRm9yRXhlY3V0aW9uCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA9fSm9iUGVyZm9ybWFuY2UEAAAAByRtYXRjaDAFAAAAF3ZhbHVlQmxvY2tzRm9yRXhlY3V0aW9uAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAqQXVjdGlvbiBqb2IgcGVyZm9ybWFuY2UgdGltZSB3YXMgbm90IGZvdW5kAQAAABNnZXRBdWN0aW9uQXNzZXROYW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAADnZhbHVlQXNzZXROYW1lCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAApfQXNzZXROYW1lBAAAAAckbWF0Y2gwBQAAAA52YWx1ZUFzc2V0TmFtZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAIEF1Y3Rpb24gYXNzZXQgbmFtZSB3YXMgbm90IGZvdW5kAQAAAA9nZXRBdWN0aW9uUHJpY2UAAAABAAAACWF1Y3Rpb25JZAQAAAAKdmFsdWVQcmljZQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBAAAAAckbWF0Y2gwBQAAAAp2YWx1ZVByaWNlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAbQXVjdGlvbiBwcmljZSB3YXMgbm90IGZvdW5kAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEAAAAJYXVjdGlvbklkBAAAAAt2YWx1ZUNsaWVudAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0hpcmVkRnJlZWxhbmNlcgQAAAAHJG1hdGNoMAUAAAALdmFsdWVDbGllbnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAABxBdWN0aW9uIENsaWVudCB3YXMgbm90IGZvdW5kAQAAABZnZXRBdWN0aW9uTG93ZXN0QmlkZGVyAAAAAQAAAAlhdWN0aW9uSWQEAAAAEXZhbHVlTG93ZXN0QmlkZGVyCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfTG93ZXN0QmlkZGVyUHViBAAAAAckbWF0Y2gwBQAAABF2YWx1ZUxvd2VzdEJpZGRlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAI0F1Y3Rpb24gbG93ZXN0IGJpZGRlciB3YXMgbm90IGZvdW5kAQAAAAZnZXRCaWQAAAACAAAACWF1Y3Rpb25JZAAAABNhdWN0aW9uTG93ZXN0QmlkZGVyBAAAABR2YWx1ZU5ld0F1Y3Rpb25QcmljZQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfQmlkXwUAAAATYXVjdGlvbkxvd2VzdEJpZGRlcgQAAAAHJG1hdGNoMAUAAAAUdmFsdWVOZXdBdWN0aW9uUHJpY2UDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIGxvd2VzdCBiaWQgd2FzIG5vdCBmb3VuZAEAAAAVZGVmaW5lTmV3TG93ZXN0QmlkZGVyAAAABAAAAAlhdWN0aW9uSWQAAAAWY3VycmVudExvd2VzdEJpZGRlclB1YgAAAAliaWRBbW91bnQAAAANbmV3RnJlZWxhbmNlcgQAAAAVdmFsdWVDdXJyZW50TG93ZXN0QmlkCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAABZjdXJyZW50TG93ZXN0QmlkZGVyUHViBAAAABBjdXJyZW50TG93ZXN0QmlkBAAAAAckbWF0Y2gwBQAAABV2YWx1ZUN1cnJlbnRMb3dlc3RCaWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIGxvd2VzdCBiaWQgd2FzIG5vdCBmb3VuZAMJAABmAAAAAgUAAAAQY3VycmVudExvd2VzdEJpZAUAAAAJYmlkQW1vdW50BQAAAA1uZXdGcmVlbGFuY2VyBQAAABZjdXJyZW50TG93ZXN0QmlkZGVyUHViAQAAABZjaG9vc2VkRnJlZWxhbmNlckNoZWNrAAAAAgAAAAlhdWN0aW9uSWQAAAANZnJlZWxhbmNlclB1YgQAAAANbmV3RnJlZWxhbmNlcgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfQmlkXwUAAAANZnJlZWxhbmNlclB1YgQAAAAHJG1hdGNoMAUAAAANbmV3RnJlZWxhbmNlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAA1mcmVlbGFuY2VyUHViCQAAAgAAAAECAAAAHkVycm9yOiBJbmNvcnJlY3QgZnJlZWxhbmNlclB1YgEAAAAVbmV3RXhlY3V0aW9uVGltZUNoZWNrAAAAAgAAAA1leGVjdXRpb25EYXlzAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24EAAAAHG5ld0F1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAABoAAAAAgUAAAANZXhlY3V0aW9uRGF5cwUAAAADZGF5AwkAAGYAAAACBQAAABxuZXdBdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uBQAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uBQAAABxuZXdBdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQAAAgAAAAECAAAAOE5ldyBleGVjdXRpb24gdGltZSBtdXN0IG1vcmUgdGhhbiBjdXJyZW50IGV4ZWN1dGlvbiB0aW1lAQAAAAlnZXRSYXRpbmcAAAABAAAAEWF1Y3Rpb25GcmVlbGFuY2VyBAAAAAt2YWx1ZVJhdGluZwkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAAAdfUmF0aW5nBAAAAAckbWF0Y2gwBQAAAAt2YWx1ZVJhdGluZwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAABJjYWxsZXJJc0FtYmFzc2Fkb3IAAAABAAAACWNhbGxlclB1YgMDAwMDCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjEGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjIGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjMGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjQGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjUFAAAACWNhbGxlclB1YgkAAAIAAAABAgAAAC1Pbmx5IGRlZmluZWQgYW1iYXNzYWRvcnMgY2FuIHZvdGUgaW4gZGlzcHV0ZXMBAAAAE2FtYmFzc2Fkb3JWb3RlQ2hlY2sAAAADAAAACWF1Y3Rpb25JZAAAAA1hbWJhc3NhZG9yUHViAAAABHZvdGUEAAAACGtleVZvdGVyCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAxfRGlwdXRlVm90ZV8FAAAADWFtYmFzc2Fkb3JQdWIEAAAACnZhbHVlVm90ZXIJAAQdAAAAAgUAAAAEdGhpcwUAAAAIa2V5Vm90ZXIEAAAAD2FtYmFzc2Fkb3JWb3RlZAQAAAAHJG1hdGNoMAUAAAAKdmFsdWVWb3RlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBgcDBQAAAA9hbWJhc3NhZG9yVm90ZWQJAAACAAAAAQIAAAAZQW1iYXNzYWRvciB2b3RlZCBhbHJlYWR5IAMDCQAAAAAAAAIFAAAABHZvdGUFAAAABmNsaWVudAYJAAAAAAAAAgUAAAAEdm90ZQUAAAAKZnJlZWxhbmNlcgUAAAAEdm90ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABxWb3RlIGlzIGluY29ycmVjdC4gTXVzdCBiZTogBQAAAAZjbGllbnQCAAAABCBvciAFAAAACmZyZWVsYW5jZXIBAAAADmdldFZvdGVzTnVtYmVyAAAAAQAAAAlhdWN0aW9uSWQEAAAAEHZhbHVlVm90ZXNOdW1iZXIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9EaXNwdXRlVm90ZXMEAAAAByRtYXRjaDAFAAAAEHZhbHVlVm90ZXNOdW1iZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAABlWb3Rlc051bWJlciB3YXMgbm90IGZvdW5kAQAAABNkZWZpbmVEaXNwdXRlV2lubmVyAAAABAAAAAlhdWN0aW9uSWQAAAAHbmV3Vm90ZQAAAA1hdWN0aW9uQ2xpZW50AAAAEWF1Y3Rpb25GcmVlbGFuY2VyBAAAAA9hbWJhc3NhZG9yMVZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAAAthbWJhc3NhZG9yMQQAAAAPYW1iYXNzYWRvcjJWb3RlCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAALYW1iYXNzYWRvcjIEAAAAD2FtYmFzc2Fkb3IzVm90ZQkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAxfRGlwdXRlVm90ZV8FAAAAC2FtYmFzc2Fkb3IzBAAAAA9hbWJhc3NhZG9yNFZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAAAthbWJhc3NhZG9yNAQAAAAPYW1iYXNzYWRvcjVWb3RlCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAALYW1iYXNzYWRvcjUEAAAAAnYxAwkAAAAAAAACBQAAAA9hbWJhc3NhZG9yMVZvdGUFAAAABmNsaWVudAAAAAAAAAAAAQAAAAAAAAAAAAQAAAACdjIDCQAAAAAAAAIFAAAAD2FtYmFzc2Fkb3IyVm90ZQUAAAAGY2xpZW50AAAAAAAAAAABAAAAAAAAAAAABAAAAAJ2MwMJAAAAAAAAAgUAAAAPYW1iYXNzYWRvcjNWb3RlBQAAAAZjbGllbnQAAAAAAAAAAAEAAAAAAAAAAAAEAAAAAnY0AwkAAAAAAAACBQAAAA9hbWJhc3NhZG9yNFZvdGUFAAAABmNsaWVudAAAAAAAAAAAAQAAAAAAAAAAAAQAAAACdjUDCQAAAAAAAAIFAAAAD2FtYmFzc2Fkb3I1Vm90ZQUAAAAGY2xpZW50AAAAAAAAAAABAAAAAAAAAAAABAAAAAtjdXJyZW50Vm90ZQMJAAAAAAAAAgUAAAAHbmV3Vm90ZQUAAAAGY2xpZW50AAAAAAAAAAABAAAAAAAAAAAABAAAAA52b3Rlc0ZvckNsaWVudAkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAAAnYxBQAAAAJ2MgUAAAACdjMFAAAAAnY0BQAAAAJ2NQUAAAALY3VycmVudFZvdGUDCQAAZgAAAAIFAAAADnZvdGVzRm9yQ2xpZW50AAAAAAAAAAACBQAAAA1hdWN0aW9uQ2xpZW50BQAAABFhdWN0aW9uRnJlZWxhbmNlcgAAAAsAAAABaQEAAAAQZnJlZWxhbmNlclNpZ25VcAAAAAEAAAAEaW5mbwQAAAANdXNlclB1YmxpY0tleQkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAEWFscmVhZHlSZWdpc3RlcmVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAALX0ZyZWVsYW5jZXIDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAARYWxyZWFkeVJlZ2lzdGVyZWQJAAACAAAAAQIAAAAXVXNlciBhbHJlYWR5IHJlZ2lzdGVyZWQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAALX0ZyZWVsYW5jZXIFAAAABGluZm8JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAAQX1BlbmRpbmdFYXJuaW5ncwAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAA1fUGFpZEVhcm5pbmdzAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAADl9Ub3RhbEVhcm5pbmdzAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAADF9Kb2JzUGVuZGluZwAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAA5fSm9ic0NvbXBsZXRlZAAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAApfSm9ic1RvdGFsAAAAAAAAAAAABQAAAANuaWwAAAABaQEAAAAMY2xpZW50U2lnblVwAAAAAQAAAARpbmZvBAAAAA11c2VyUHVibGljS2V5CQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAARYWxyZWFkeVJlZ2lzdGVyZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAAdfQ2xpZW50AwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAEWFscmVhZHlSZWdpc3RlcmVkCQAAAgAAAAECAAAAF1VzZXIgYWxyZWFkeSByZWdpc3RlcmVkCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAAB19DbGllbnQFAAAABGluZm8JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAAMX0pvYnNDcmVhdGVkAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAADF9Kb2JzT25Hb2luZwAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAA1fSm9iSW5EaXNwdXRlAAAAAAAAAAAABQAAAANuaWwAAAABaQEAAAANY3JlYXRlQXVjdGlvbgAAAAQAAAAQam9iRXhlY3V0aW9uRGF5cwAAABNhdWN0aW9uRHVyYXRpb25EYXlzAAAAC2F1Y3Rpb25JbmZvAAAACGNhdGVnb3J5BAAAAAljYWxsZXJQdWIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAlhdWN0aW9uSWQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAEGNsaWVudFJlZ2lzdGVyZWQAAAABBQAAAAljYWxsZXJQdWIEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAAlwbXRBbW91bnQIBQAAAANwbXQAAAAGYW1vdW50BAAAAAxhdWN0aW9uUHJpY2UJAQAAABdjcmVhdGVBdWN0aW9uUHJpY2VDaGVjawAAAAEFAAAACXBtdEFtb3VudAQAAAAMYXVjdGlvblN0YXJ0BQAAAAZoZWlnaHQEAAAAFWF1Y3Rpb25EdXJhdGlvbkJsb2NrcwkAAGgAAAACBQAAABNhdWN0aW9uRHVyYXRpb25EYXlzBQAAAANkYXkEAAAAEmJsb2Nrc0ZvckV4ZWN1dGlvbgkAAGgAAAACBQAAABBqb2JFeGVjdXRpb25EYXlzBQAAAANkYXkEAAAADHBtdEFzc2V0TmFtZQkBAAAAEkFzc2V0SWRUb0Fzc2V0TmFtZQAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAALam9ic0NyZWF0ZWQJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADF9Kb2JzQ3JlYXRlZAQAAAAPYXVjdGlvbkNhdGVnb3J5CQEAAAANY2F0ZWdvcnlDaGVjawAAAAEFAAAACGNhdGVnb3J5BAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmluY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAAAxwbXRBc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAJc3RhdGVPcGVuCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAFX0luZm8FAAAAC2F1Y3Rpb25JbmZvCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAOX0F1Y3Rpb25DbGllbnQFAAAADWF1Y3Rpb25DbGllbnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fQXVjdGlvblN0YXJ0BQAAAAxhdWN0aW9uU3RhcnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfQXVjdGlvbkR1cmF0aW9uBQAAABVhdWN0aW9uRHVyYXRpb25CbG9ja3MJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA9fSm9iUGVyZm9ybWFuY2UFAAAAEmJsb2Nrc0ZvckV4ZWN1dGlvbgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAACl9Bc3NldE5hbWUFAAAADHBtdEFzc2V0TmFtZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9QcmljZQUAAAAMYXVjdGlvblByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAJX0NhdGVnb3J5BQAAAA9hdWN0aW9uQ2F0ZWdvcnkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAMcG10QXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAMX0pvYnNDcmVhdGVkCQAAZAAAAAIFAAAAC2pvYnNDcmVhdGVkAAAAAAAAAAABBQAAAANuaWwAAAABaQEAAAAHbWFrZUJpZAAAAAIAAAAJYXVjdGlvbklkAAAABmFtb3VudAQAAAAJY2FsbGVyUHViCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblN0YXJ0CQEAAAATZ2V0QXVjdGlvblN0YXJ0VGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAAWZ2V0QXVjdGlvbkR1cmF0aW9uVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAAHGdldEF1Y3Rpb25Kb2JQZXJmb3JtYW5jZVRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldE5hbWUJAQAAABNnZXRBdWN0aW9uQXNzZXROYW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA9nZXRBdWN0aW9uUHJpY2UAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldElkNTgJAQAAABJBc3NldE5hbWVUb0Fzc2V0SWQAAAABBQAAABBhdWN0aW9uQXNzZXROYW1lBAAAAA1uZXdGcmVlbGFuY2VyCQEAAAAUZnJlZWxhbmNlclJlZ2lzdGVyZWQAAAABBQAAAAljYWxsZXJQdWIEAAAADmRBcHBDb21taXNzaW9uCQAAaQAAAAIJAABoAAAAAgUAAAAMYXVjdGlvblByaWNlAAAAAAAAAAADAAAAAAAAAABkBAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lBQAAAAxhdWN0aW9uUHJpY2UEAAAACWJpZEFtb3VudAkBAAAADmJpZEFtb3VudENoZWNrAAAAAgUAAAAGYW1vdW50BQAAAAxhdWN0aW9uUHJpY2UEAAAAEWF1Y3Rpb25UaW1laXNPdmVyCQEAAAAJdGltZUNoZWNrAAAAAwUAAAAGaGVpZ2h0BQAAAAxhdWN0aW9uU3RhcnQFAAAAD2F1Y3Rpb25EdXJhdGlvbgMFAAAAEWF1Y3Rpb25UaW1laXNPdmVyAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAC3N0YXRlQ2FuY2VsCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQUAAAANYXVjdGlvbkNsaWVudAkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAADmRBcHBDb21taXNzaW9uBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQEAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIJAQAAABZnZXRBdWN0aW9uTG93ZXN0QmlkZGVyAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uTG93ZXN0QmlkCQEAAAAGZ2V0QmlkAAAAAgUAAAAJYXVjdGlvbklkBQAAABNhdWN0aW9uTG93ZXN0QmlkZGVyBAAAABBhbW91bnREaWZmZXJlbmNlCQAAZQAAAAIJAABlAAAAAgUAAAAMYXVjdGlvblByaWNlBQAAABBhdWN0aW9uTG93ZXN0QmlkBQAAAA5kQXBwQ29tbWlzc2lvbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9IaXJlZEZyZWVsYW5jZXIFAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfUHJpY2UFAAAAEGF1Y3Rpb25Mb3dlc3RCaWQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADWF1Y3Rpb25DbGllbnQFAAAAEGFtb3VudERpZmZlcmVuY2UFAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABAgAAABdJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZQMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4JAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAAA1uZXdGcmVlbGFuY2VyBQAAAAliaWRBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0xvd2VzdEJpZGRlclB1YgUAAAAJY2FsbGVyUHViBQAAAANuaWwDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQEAAAAFmN1cnJlbnRMb3dlc3RCaWRkZXJQdWIJAQAAABZnZXRBdWN0aW9uTG93ZXN0QmlkZGVyAAAAAQUAAAAJYXVjdGlvbklkBAAAABJuZXdMb3dlc3RCaWRkZXJQdWIJAQAAABVkZWZpbmVOZXdMb3dlc3RCaWRkZXIAAAAEBQAAAAlhdWN0aW9uSWQFAAAAFmN1cnJlbnRMb3dlc3RCaWRkZXJQdWIFAAAACWJpZEFtb3VudAUAAAANbmV3RnJlZWxhbmNlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9Mb3dlc3RCaWRkZXJQdWIFAAAAEm5ld0xvd2VzdEJpZGRlclB1YgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAFX0JpZF8FAAAADW5ld0ZyZWVsYW5jZXIFAAAACWJpZEFtb3VudAUAAAADbmlsCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABxJbmNvcnJlY3Qgam9iSWQgc3RhdGUuIE5vdzogBQAAAAxhdWN0aW9uU3RhdGUCAAAACywgbXVzdCBiZTogBQAAAAlzdGF0ZU9wZW4CAAAABCBvciAFAAAADnN0YXRlU3VnZ2VzdGVkAAAAAWkBAAAAEGNob29zZUZyZWVsYW5jZXIAAAACAAAACWF1Y3Rpb25JZAAAAA1mcmVlbGFuY2VyUHViBAAAAAljYWxsZXJQdWIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhdWN0aW9uU3RhdGUJAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABBQAAAAlhdWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uU3RhcnQJAQAAABNnZXRBdWN0aW9uU3RhcnRUaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAA9hdWN0aW9uRHVyYXRpb24JAQAAABZnZXRBdWN0aW9uRHVyYXRpb25UaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXROYW1lCQEAAAATZ2V0QXVjdGlvbkFzc2V0TmFtZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblByaWNlCQEAAAAPZ2V0QXVjdGlvblByaWNlAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAASQXNzZXROYW1lVG9Bc3NldElkAAAAAQUAAAAQYXVjdGlvbkFzc2V0TmFtZQQAAAANbmV3RnJlZWxhbmNlcgkBAAAAFmNob29zZWRGcmVlbGFuY2VyQ2hlY2sAAAACBQAAAAlhdWN0aW9uSWQFAAAADWZyZWVsYW5jZXJQdWIEAAAAE2ZyZWVsYW5jZXJCaWRBbW91bnQJAQAAAAZnZXRCaWQAAAACBQAAAAlhdWN0aW9uSWQFAAAADW5ld0ZyZWVsYW5jZXIEAAAAEWF1Y3Rpb25UaW1laXNPdmVyCQEAAAAJdGltZUNoZWNrAAAAAwUAAAAGaGVpZ2h0BQAAAAxhdWN0aW9uU3RhcnQFAAAAD2F1Y3Rpb25EdXJhdGlvbgQAAAALam9ic09uR29pbmcJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADF9Kb2JzT25Hb2luZwQAAAAZZnJlZWxhbmNlclBlbmRpbmdFYXJuaW5ncwkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAANZnJlZWxhbmNlclB1YgIAAAAQX1BlbmRpbmdFYXJuaW5ncwQAAAAXZnJlZWxhbmNlclRvdGFsRWFybmluZ3MJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAADWZyZWVsYW5jZXJQdWICAAAADl9Ub3RhbEVhcm5pbmdzAwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAADWF1Y3Rpb25DbGllbnQDBQAAABFhdWN0aW9uVGltZWlzT3ZlcgMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4EAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQQAAAAOZEFwcENvbW1pc3Npb24JAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAAtzdGF0ZUNhbmNlbAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADWF1Y3Rpb25DbGllbnQJAABlAAAAAgUAAAAMYXVjdGlvblByaWNlBQAAAA5kQXBwQ29tbWlzc2lvbgUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkBAAAABNhdWN0aW9uTG93ZXN0QmlkZGVyCQEAAAAWZ2V0QXVjdGlvbkxvd2VzdEJpZGRlcgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkxvd2VzdEJpZAkBAAAABmdldEJpZAAAAAIFAAAACWF1Y3Rpb25JZAUAAAATYXVjdGlvbkxvd2VzdEJpZGRlcgQAAAAQYW1vdW50RGlmZmVyZW5jZQkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAAEGF1Y3Rpb25Mb3dlc3RCaWQEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAAEGFtb3VudERpZmZlcmVuY2UJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAA9zdGF0ZUluUHJvZ3Jlc3MJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfSGlyZWRGcmVlbGFuY2VyBQAAABNhdWN0aW9uTG93ZXN0QmlkZGVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBQAAABBhdWN0aW9uTG93ZXN0QmlkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAAxfSm9ic09uR29pbmcJAABkAAAAAgUAAAALam9ic09uR29pbmcAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANZnJlZWxhbmNlclB1YgIAAAAQX1BlbmRpbmdFYXJuaW5ncwkAAGQAAAACBQAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzBQAAABBhdWN0aW9uTG93ZXN0QmlkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWZyZWVsYW5jZXJQdWICAAAADl9Ub3RhbEVhcm5pbmdzCQAAZAAAAAIFAAAAF2ZyZWVsYW5jZXJUb3RhbEVhcm5pbmdzBQAAABBhdWN0aW9uTG93ZXN0QmlkBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABBQAAAA1hdWN0aW9uQ2xpZW50BQAAABBhbW91bnREaWZmZXJlbmNlBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwJAAACAAAAAQIAAAAXSW5jb3JyZWN0IGF1Y3Rpb24gc3RhdGUDAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgYJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAA5zdGF0ZVN1Z2dlc3RlZAQAAAAQYW1vdW50RGlmZmVyZW5jZQkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAAE2ZyZWVsYW5jZXJCaWRBbW91bnQEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAAEGFtb3VudERpZmZlcmVuY2UJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAA9zdGF0ZUluUHJvZ3Jlc3MJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfSGlyZWRGcmVlbGFuY2VyBQAAAA1uZXdGcmVlbGFuY2VyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBQAAABNmcmVlbGFuY2VyQmlkQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAAxfSm9ic09uR29pbmcJAABkAAAAAgUAAAALam9ic09uR29pbmcAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANZnJlZWxhbmNlclB1YgIAAAAQX1BlbmRpbmdFYXJuaW5ncwkAAGQAAAACBQAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzBQAAABNmcmVlbGFuY2VyQmlkQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWZyZWVsYW5jZXJQdWICAAAADl9Ub3RhbEVhcm5pbmdzCQAAZAAAAAIFAAAAF2ZyZWVsYW5jZXJUb3RhbEVhcm5pbmdzBQAAABNmcmVlbGFuY2VyQmlkQW1vdW50BQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABBQAAAA1hdWN0aW9uQ2xpZW50CQAAZAAAAAIFAAAAEGFtb3VudERpZmZlcmVuY2UAAAAAAAAAAAEFAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABAgAAABdJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZQkAAAIAAAABAgAAAC1Pbmx5IGF1Y3Rpb24gY3VzdG9tZXIgY2FuIGNob29zZSBhIGZyZWVsYW5jZXIAAAABaQEAAAAVaW5jcmVhc2VFeGVjdXRpb25UaW1lAAAAAgAAAAlhdWN0aW9uSWQAAAANZXhlY3V0aW9uRGF5cwQAAAAGY2FsbGVyCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAAHGdldEF1Y3Rpb25Kb2JQZXJmb3JtYW5jZVRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAF25ld0F1Y3Rpb25FeGVjdXRpb25UaW1lCQEAAAAVbmV3RXhlY3V0aW9uVGltZUNoZWNrAAAAAgUAAAANZXhlY3V0aW9uRGF5cwUAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgMJAAAAAAAAAgUAAAAGY2FsbGVyBQAAAA1hdWN0aW9uQ2xpZW50AwMDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAJc3RhdGVPcGVuBgkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkBgkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAD19Kb2JQZXJmb3JtYW5jZQUAAAAXbmV3QXVjdGlvbkV4ZWN1dGlvblRpbWUFAAAAA25pbAkAAAIAAAABAgAAAA9JbmNvcnJlY3Qgc3RhdGUJAAACAAAAAQIAAAAnT25seSBDbGllbnQgY2FuIGluY3JlYXNlIGV4ZWN1dGlvbiB0aW1lAAAAAWkBAAAADWNhbmNlbEF1Y3Rpb24AAAABAAAACWF1Y3Rpb25JZAQAAAAJY2FsbGVyUHViCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0TmFtZQkBAAAAE2dldEF1Y3Rpb25Bc3NldE5hbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25QcmljZQkBAAAAD2dldEF1Y3Rpb25QcmljZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEkFzc2V0TmFtZVRvQXNzZXRJZAAAAAEFAAAAEGF1Y3Rpb25Bc3NldE5hbWUEAAAADmRBcHBDb21taXNzaW9uCQAAaQAAAAIJAABoAAAAAgUAAAAMYXVjdGlvblByaWNlAAAAAAAAAAADAAAAAAAAAABkBAAAABFhbW91bnRXaXRob3V0Q29tbQkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAADmRBcHBDb21taXNzaW9uBAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lBQAAAAxhdWN0aW9uUHJpY2UDCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAANYXVjdGlvbkNsaWVudAMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4JAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAAtzdGF0ZUNhbmNlbAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADWF1Y3Rpb25DbGllbnQFAAAAEWFtb3VudFdpdGhvdXRDb21tBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwJAAACAAAAAQIAAAAuQXVjdGlvbiBjYW4gYmUgY2FuY2VsZWQgb25seSBieSBhdWN0aW9uIG93bmVyLgkAAAIAAAABAgAAAB5Pbmx5IENsaWVudCBjYW4gY2FuY2VsIGF1Y3Rpb24AAAABaQEAAAALb3BlbkRpc3B1dGUAAAABAAAACWF1Y3Rpb25JZAQAAAAGY2FsbGVyCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAARYXVjdGlvbkZyZWVsYW5jZXIJAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAATY2xpZW50Sm9ic0luRGlzcHV0ZQkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAOX0pvYnNJbkRpc3B1dGUDAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwYJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAABFzdGF0ZVdhaXQ0Q29uZmlybQMDCQAAAAAAAAIFAAAABmNhbGxlcgUAAAANYXVjdGlvbkNsaWVudAYJAAAAAAAAAgUAAAAGY2FsbGVyBQAAABFhdWN0aW9uRnJlZWxhbmNlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAMc3RhdGVEaXNwdXRlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0Rpc3B1dGVWb3RlcwAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAA5fSm9ic0luRGlzcHV0ZQkAAGQAAAACBQAAABNjbGllbnRKb2JzSW5EaXNwdXRlAAAAAAAAAAABBQAAAANuaWwJAAACAAAAAQIAAAArT25seSBDbGllbnQgYW5kIEZyZWVsYW5jZXIgY2FuIG9wZW4gZGlzcHV0ZQkAAAIAAAABAgAAACtJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZSBmb3IgZGlzcHV0ZSBvcGVuaW5nAAAAAWkBAAAAC3ZvdGVEaXNwdXRlAAAAAgAAAAlhdWN0aW9uSWQAAAAEdm90ZQQAAAAJY2FsbGVyUHViCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0TmFtZQkBAAAAE2dldEF1Y3Rpb25Bc3NldE5hbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25QcmljZQkBAAAAD2dldEF1Y3Rpb25QcmljZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAARYXVjdGlvbkZyZWVsYW5jZXIJAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAKY29tbWlzc2lvbgkAAGkAAAACCQAAaAAAAAIFAAAADGF1Y3Rpb25QcmljZQAAAAAAAAAAAwAAAAAAAAAAZAQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEkFzc2V0TmFtZVRvQXNzZXRJZAAAAAEFAAAAEGF1Y3Rpb25Bc3NldE5hbWUEAAAADWFtYmFzc2Fkb3JQdWIJAQAAABJjYWxsZXJJc0FtYmFzc2Fkb3IAAAABBQAAAAljYWxsZXJQdWIEAAAADmFtYmFzc2Fkb3JWb3RlCQEAAAATYW1iYXNzYWRvclZvdGVDaGVjawAAAAMFAAAACWF1Y3Rpb25JZAUAAAANYW1iYXNzYWRvclB1YgUAAAAEdm90ZQQAAAALdm90ZXNOdW1iZXIJAQAAAA5nZXRWb3Rlc051bWJlcgAAAAEFAAAACWF1Y3Rpb25JZAQAAAATY2xpZW50Sm9ic0luRGlzcHV0ZQkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAOX0pvYnNJbkRpc3B1dGUEAAAAGWZyZWVsYW5jZXJQZW5kaW5nRWFybmluZ3MJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAABBfUGVuZGluZ0Vhcm5pbmdzBAAAABdmcmVlbGFuY2VyVG90YWxFYXJuaW5ncwkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAADl9Ub3RhbEVhcm5pbmdzAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAADHN0YXRlRGlzcHV0ZQMJAAAAAAAAAgUAAAALdm90ZXNOdW1iZXIAAAAAAAAAAAQEAAAAEGRpc3B1dGVXaW5uZXJQdWIJAQAAABNkZWZpbmVEaXNwdXRlV2lubmVyAAAABAUAAAAJYXVjdGlvbklkBQAAAA5hbWJhc3NhZG9yVm90ZQUAAAANYXVjdGlvbkNsaWVudAUAAAARYXVjdGlvbkZyZWVsYW5jZXIEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQMJAAAAAAAAAgUAAAAQZGlzcHV0ZVdpbm5lclB1YgUAAAANYXVjdGlvbkNsaWVudAQAAAAScGF5bWVudFdpdGhvdXRDb21tCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAAKY29tbWlzc2lvbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fRGlzcHV0ZVZvdGVzCQAAZAAAAAIFAAAAC3ZvdGVzTnVtYmVyAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAABRzdGF0ZURpc3B1dGVSZXNvbHZlZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAAA1hbWJhc3NhZG9yUHViBQAAAA5hbWJhc3NhZG9yVm90ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAOX0pvYnNJbkRpc3B1dGUJAABlAAAAAgUAAAATY2xpZW50Sm9ic0luRGlzcHV0ZQAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAAQX1BlbmRpbmdFYXJuaW5ncwkAAGUAAAACBQAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzBQAAAAxhdWN0aW9uUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAADl9Ub3RhbEVhcm5pbmdzCQAAZQAAAAIFAAAAF2ZyZWVsYW5jZXJUb3RhbEVhcm5pbmdzBQAAAAxhdWN0aW9uUHJpY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAAEGRpc3B1dGVXaW5uZXJQdWIFAAAAEnBheW1lbnRXaXRob3V0Q29tbQUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsBAAAABJwYXltZW50V2l0aG91dENvbW0JAABlAAAAAgUAAAAMYXVjdGlvblByaWNlCQAAaAAAAAIFAAAACmNvbW1pc3Npb24AAAAAAAAAAAIJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0Rpc3B1dGVWb3RlcwkAAGQAAAACBQAAAAt2b3Rlc051bWJlcgAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAUc3RhdGVEaXNwdXRlUmVzb2x2ZWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAANYW1iYXNzYWRvclB1YgUAAAAOYW1iYXNzYWRvclZvdGUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADl9Kb2JzSW5EaXNwdXRlCQAAZQAAAAIFAAAAE2NsaWVudEpvYnNJbkRpc3B1dGUAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAAEF9QZW5kaW5nRWFybmluZ3MJAABlAAAAAgUAAAAZZnJlZWxhbmNlclBlbmRpbmdFYXJuaW5ncwUAAAAMYXVjdGlvblByaWNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABBQAAABBkaXNwdXRlV2lubmVyUHViBQAAABJwYXltZW50V2l0aG91dENvbW0FAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9EaXNwdXRlVm90ZXMJAABkAAAAAgUAAAALdm90ZXNOdW1iZXIAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAANYW1iYXNzYWRvclB1YgUAAAAOYW1iYXNzYWRvclZvdGUFAAAAA25pbAkAAAIAAAABCQABLAAAAAICAAAAGkluY29ycmVjdCBzdGF0ZS4gTXVzdCBiZTogBQAAAAxzdGF0ZURpc3B1dGUAAAABaQEAAAAMd29ya0hhbmRPdmVyAAAAAQAAAAlhdWN0aW9uSWQEAAAACWNhbGxlclB1YgkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADGF1Y3Rpb25TdGF0ZQkBAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAE2dldEF1Y3Rpb25DbGllbnRQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25TdGFydAkBAAAAE2dldEF1Y3Rpb25TdGFydFRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAAFmdldEF1Y3Rpb25EdXJhdGlvblRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAQAAABxnZXRBdWN0aW9uSm9iUGVyZm9ybWFuY2VUaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAABFhdWN0aW9uRnJlZWxhbmNlcgkBAAAAF2dldEF1Y3Rpb25GcmVlbGFuY2VyUHViAAAAAQUAAAAJYXVjdGlvbklkBAAAAAp0aW1lSXNPdmVyCQAAZgAAAAIJAABlAAAAAgUAAAAGaGVpZ2h0BQAAAAxhdWN0aW9uU3RhcnQFAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24EAAAAE2NsaWVudEpvYnNJbkRpc3B1dGUJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADl9Kb2JzSW5EaXNwdXRlAwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwMFAAAACnRpbWVJc092ZXIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAADHN0YXRlRGlzcHV0ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9EaXNwdXRlVm90ZXMCAAAAATAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAANX0pvYkluRGlzcHV0ZQkAAGQAAAACBQAAABNjbGllbnRKb2JzSW5EaXNwdXRlAAAAAAAAAAABBQAAAANuaWwJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAEXN0YXRlV2FpdDRDb25maXJtBQAAAANuaWwJAAACAAAAAQIAAAAaQXVjdGlvbiBzdGF0ZSBpcyBpbmNvcnJlY3QJAAACAAAAAQIAAAA0T25seSBhIGZyZWVsYW5jZXIgY2FuIGluZGljYXRlIHRoYXQgdGhlIHdvcmsgaXMgZG9uZQAAAAFpAQAAAAphY2NlcHRXb3JrAAAAAQAAAAlhdWN0aW9uSWQEAAAACWNhbGxlclB1YgkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADGF1Y3Rpb25TdGF0ZQkBAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAE2dldEF1Y3Rpb25DbGllbnRQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25TdGFydAkBAAAAE2dldEF1Y3Rpb25TdGFydFRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAAFmdldEF1Y3Rpb25EdXJhdGlvblRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldE5hbWUJAQAAABNnZXRBdWN0aW9uQXNzZXROYW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA9nZXRBdWN0aW9uUHJpY2UAAAABBQAAAAlhdWN0aW9uSWQEAAAAEWF1Y3Rpb25GcmVlbGFuY2VyCQEAAAAXZ2V0QXVjdGlvbkZyZWVsYW5jZXJQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAAC2pvYnNPbkdvaW5nCQEAAAAGZ2V0SW50AAAAAQkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAAxfSm9ic09uR29pbmcEAAAAGWZyZWVsYW5jZXJQZW5kaW5nRWFybmluZ3MJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAABBfUGVuZGluZ0Vhcm5pbmdzBAAAABZmcmVlbGFuY2VyUGFpZEVhcm5pbmdzCQEAAAAGZ2V0SW50AAAAAQkAASwAAAACBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAANX1BhaWRFYXJuaW5ncwQAAAAOZEFwcENvbW1pc3Npb24JAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQEAAAAEWFtb3VudFdpdGhvdXRDb21tCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQkAAGgAAAACBQAAAA5kQXBwQ29tbWlzc2lvbgAAAAAAAAAAAgQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEkFzc2V0TmFtZVRvQXNzZXRJZAAAAAEFAAAAEGF1Y3Rpb25Bc3NldE5hbWUEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQQAAAAQZnJlZWxhbmNlclJhdGluZwkBAAAACWdldFJhdGluZwAAAAEFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAADWF1Y3Rpb25DbGllbnQDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAARc3RhdGVXYWl0NENvbmZpcm0JAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAA1zdGF0ZUNvbXBsZXRlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAAAdfUmF0aW5nCQAAZAAAAAIFAAAAEGZyZWVsYW5jZXJSYXRpbmcAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADF9Kb2JzT25Hb2luZwkAAGUAAAACBQAAAAtqb2JzT25Hb2luZwAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAAQX1BlbmRpbmdFYXJuaW5ncwkAAGUAAAACBQAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzBQAAAAxhdWN0aW9uUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAADV9QYWlkRWFybmluZ3MJAABkAAAAAgUAAAAWZnJlZWxhbmNlclBhaWRFYXJuaW5ncwUAAAAMYXVjdGlvblByaWNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABBQAAABFhdWN0aW9uRnJlZWxhbmNlcgUAAAARYW1vdW50V2l0aG91dENvbW0FAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABCQABLAAAAAICAAAAGkluY29ycmVjdCBzdGF0ZS4gTXVzdCBiZTogBQAAABFzdGF0ZVdhaXQ0Q29uZmlybQkAAAIAAAABAgAAACtPbmx5IGF1Y3Rpb24gY3VzdG9tZXIgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5BAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAADdHR4BQAAAAckbWF0Y2gwBAAAAAlhc3NldE5hbWUJAQAAABJBc3NldElkVG9Bc3NldE5hbWUAAAABCAUAAAADdHR4AAAAB2Fzc2V0SWQEAAAAFHZhbHVlUmVzZXJ2ZWRCYWxhbmNlCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXNzZXROYW1lAgAAAAlfUmVzZXJ2ZWQEAAAAD3Jlc2VydmVkQmFsYW5jZQQAAAAHJG1hdGNoMQUAAAAUdmFsdWVSZXNlcnZlZEJhbGFuY2UDCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMQUAAAABYQAAAAAAAAAAAAQAAAAQYXZhaWxhYmxlQmFsYW5jZQkAAGUAAAACCQAD6wAAAAIFAAAABHRoaXMIBQAAAAN0dHgAAAAHYXNzZXRJZAUAAAAPcmVzZXJ2ZWRCYWxhbmNlCQAAZwAAAAIFAAAAEGF2YWlsYWJsZUJhbGFuY2UIBQAAAAN0dHgAAAAGYW1vdW50AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAADc3R4BQAAAAckbWF0Y2gwBgcHm441MA==", "chainId": 84, "height": 739896, "spentComplexity": 0 } View: original | compacted Prev: H8Fq3AqZbuTQmwGUp88MW5z4tQFyLXTbuVZJGx7FHegv Next: none Diff:
OldNewDifferences
150150
151151
152152 func Y (Z) = {
153- let aa = getString(this, (Z + "_Freelancer"))
153+ let aa = getString(this, (Z + "_Client"))
154154 let E = aa
155+ if ($isInstanceOf(E, "String"))
156+ then {
157+ let F = E
158+ Z
159+ }
160+ else throw("Only registered users can create auctions")
161+ }
162+
163+
164+func ab (Z) = {
165+ let ac = getString(this, (Z + "_Freelancer"))
166+ let E = ac
155167 if ($isInstanceOf(E, "String"))
156168 then {
157169 let F = E
161173 }
162174
163175
164-func ab (Z) = {
165- let aa = getString(this, (Z + "_Freelancer"))
166- let E = aa
167- if ($isInstanceOf(E, "String"))
168- then {
169- let F = E
170- Z
171- }
172- else throw("Only registered users can make bets")
173- }
174-
175-
176-func ac (ad) = if ((ad > 0))
177- then ad
176+func ad (ae) = if ((ae > 0))
177+ then ae
178178 else throw("Amount must be higher then 0")
179179
180180
181-func ae (af) = {
182- let ag = getString(this, (af + "_State"))
183- let E = ag
181+func af (ag) = {
182+ let ah = getString(this, (ag + "_State"))
183+ let E = ah
184184 if ($isInstanceOf(E, "String"))
185185 then {
186186 let F = E
190190 }
191191
192192
193-func ah (af) = {
194- let ai = getString(this, (af + "_AuctionClient"))
195- let E = ai
193+func ai (ag) = {
194+ let aj = getString(this, (ag + "_AuctionClient"))
195+ let E = aj
196196 if ($isInstanceOf(E, "String"))
197197 then {
198198 let F = E
202202 }
203203
204204
205-func aj (af) = {
206- let ak = getInteger(this, (af + "_AuctionStart"))
207- let E = ak
205+func ak (ag) = {
206+ let al = getInteger(this, (ag + "_AuctionStart"))
207+ let E = al
208208 if ($isInstanceOf(E, "Int"))
209209 then {
210210 let F = E
214214 }
215215
216216
217-func al (af) = {
218- let am = getInteger(this, (af + "_AuctionDuration"))
219- let E = am
217+func am (ag) = {
218+ let an = getInteger(this, (ag + "_AuctionDuration"))
219+ let E = an
220220 if ($isInstanceOf(E, "Int"))
221221 then {
222222 let F = E
226226 }
227227
228228
229-func an (af) = {
230- let ao = getInteger(this, (af + "_JobPerformance"))
231- let E = ao
229+func ao (ag) = {
230+ let ap = getInteger(this, (ag + "_JobPerformance"))
231+ let E = ap
232232 if ($isInstanceOf(E, "Int"))
233233 then {
234234 let F = E
238238 }
239239
240240
241-func ap (af) = {
242- let aq = getString(this, (af + "_AssetName"))
243- let E = aq
241+func aq (ag) = {
242+ let ar = getString(this, (ag + "_AssetName"))
243+ let E = ar
244244 if ($isInstanceOf(E, "String"))
245245 then {
246246 let F = E
250250 }
251251
252252
253-func ar (af) = {
254- let as = getInteger(this, (af + "_Price"))
255- let E = as
253+func as (ag) = {
254+ let at = getInteger(this, (ag + "_Price"))
255+ let E = at
256256 if ($isInstanceOf(E, "Int"))
257257 then {
258258 let F = E
262262 }
263263
264264
265-func at (af) = {
266- let au = getString(this, (af + "_HiredFreelancer"))
267- let E = au
265+func au (ag) = {
266+ let av = getString(this, (ag + "_HiredFreelancer"))
267+ let E = av
268268 if ($isInstanceOf(E, "String"))
269269 then {
270270 let F = E
274274 }
275275
276276
277-func av (af) = {
278- let aw = getString(this, (af + "_LowestBidderPub"))
279- let E = aw
277+func aw (ag) = {
278+ let ax = getString(this, (ag + "_LowestBidderPub"))
279+ let E = ax
280280 if ($isInstanceOf(E, "String"))
281281 then {
282282 let F = E
286286 }
287287
288288
289-func ax (af,ay) = {
290- let az = getInteger(this, ((af + "_Bid_") + ay))
291- let E = az
289+func ay (ag,az) = {
290+ let aA = getInteger(this, ((ag + "_Bid_") + az))
291+ let E = aA
292292 if ($isInstanceOf(E, "Int"))
293293 then {
294294 let F = E
298298 }
299299
300300
301-func aA (af,aB,aC,aD) = {
302- let aE = getInteger(this, ((af + "_Bid_") + aB))
303- let aF = {
304- let E = aE
301+func aB (ag,aC,aD,aE) = {
302+ let aF = getInteger(this, ((ag + "_Bid_") + aC))
303+ let aG = {
304+ let E = aF
305305 if ($isInstanceOf(E, "Int"))
306306 then {
307307 let F = E
309309 }
310310 else throw("Auction lowest bid was not found")
311311 }
312- if ((aF > aC))
313- then aD
314- else aB
312+ if ((aG > aD))
313+ then aE
314+ else aC
315315 }
316316
317317
318-func aG (af,aH) = {
319- let aD = getInteger(this, ((af + "_Bid_") + aH))
320- let E = aD
318+func aH (ag,aI) = {
319+ let aE = getInteger(this, ((ag + "_Bid_") + aI))
320+ let E = aE
321321 if ($isInstanceOf(E, "Int"))
322322 then {
323323 let F = E
324- aH
324+ aI
325325 }
326326 else throw("Error: Incorrect freelancerPub")
327327 }
328328
329329
330-func aI (aJ,aK) = {
331- let aL = (aJ * a)
332- if ((aL > aK))
333- then aL
330+func aJ (aK,aL) = {
331+ let aM = (aK * a)
332+ if ((aM > aL))
333+ then aM
334334 else throw("New execution time must more than current execution time")
335335 }
336336
337337
338-func aM (aN) = {
339- let aO = getInteger(this, (aN + "_Rating"))
340- let E = aO
338+func aN (aO) = {
339+ let aP = getInteger(this, (aO + "_Rating"))
340+ let E = aP
341341 if ($isInstanceOf(E, "Int"))
342342 then {
343343 let F = E
347347 }
348348
349349
350-func aP (Z) = if (if (if (if (if ((Z == w))
350+func aQ (Z) = if (if (if (if (if ((Z == w))
351351 then true
352352 else (Z == x))
353353 then true
360360 else throw("Only defined ambassadors can vote in disputes")
361361
362362
363-func aQ (af,aR,aS) = {
364- let aT = ((af + "_DiputeVote_") + aR)
365- let aU = getString(this, aT)
366- let aV = {
367- let E = aU
363+func aR (ag,aS,aT) = {
364+ let aU = ((ag + "_DiputeVote_") + aS)
365+ let aV = getString(this, aU)
366+ let aW = {
367+ let E = aV
368368 if ($isInstanceOf(E, "String"))
369369 then {
370370 let F = E
372372 }
373373 else false
374374 }
375- if (aV)
375+ if (aW)
376376 then throw("Ambassador voted already ")
377- else if (if ((aS == u))
377+ else if (if ((aT == u))
378378 then true
379- else (aS == v))
380- then aS
379+ else (aT == v))
380+ then aT
381381 else throw(((("Vote is incorrect. Must be: " + u) + " or ") + v))
382382 }
383383
384384
385-func aW (af) = {
386- let aX = getInteger(this, (af + "_DisputeVotes"))
387- let E = aX
385+func aX (ag) = {
386+ let aY = getInteger(this, (ag + "_DisputeVotes"))
387+ let E = aY
388388 if ($isInstanceOf(E, "Int"))
389389 then {
390390 let F = E
394394 }
395395
396396
397-func aY (af,aZ,ba,aN) = {
398- let bb = getString(this, ((af + "_DiputeVote_") + w))
399- let bc = getString(this, ((af + "_DiputeVote_") + x))
400- let bd = getString(this, ((af + "_DiputeVote_") + y))
401- let be = getString(this, ((af + "_DiputeVote_") + z))
402- let bf = getString(this, ((af + "_DiputeVote_") + A))
403- let bg = if ((bb == u))
404- then 1
405- else 0
397+func aZ (ag,ba,bb,aO) = {
398+ let bc = getString(this, ((ag + "_DiputeVote_") + w))
399+ let bd = getString(this, ((ag + "_DiputeVote_") + x))
400+ let be = getString(this, ((ag + "_DiputeVote_") + y))
401+ let bf = getString(this, ((ag + "_DiputeVote_") + z))
402+ let bg = getString(this, ((ag + "_DiputeVote_") + A))
406403 let bh = if ((bc == u))
407404 then 1
408405 else 0
415412 let bk = if ((bf == u))
416413 then 1
417414 else 0
418- let bl = if ((aZ == u))
415+ let bl = if ((bg == u))
419416 then 1
420417 else 0
421- let bm = (((((bg + bh) + bi) + bj) + bk) + bl)
422- if ((bm > 2))
423- then ba
424- else aN
418+ let bm = if ((ba == u))
419+ then 1
420+ else 0
421+ let bn = (((((bh + bi) + bj) + bk) + bl) + bm)
422+ if ((bn > 2))
423+ then bb
424+ else aO
425425 }
426426
427427
428-@Callable(bn)
429-func freelancerSignUp (bo) = {
430- let bp = toBase58String(bn.callerPublicKey)
431- let bq = getString(this, (bp + "_Freelancer"))
432- if (isDefined(bq))
428+@Callable(bo)
429+func freelancerSignUp (bp) = {
430+ let bq = toBase58String(bo.callerPublicKey)
431+ let br = getString(this, (bq + "_Freelancer"))
432+ if (isDefined(br))
433433 then throw("User already registered")
434- else WriteSet([DataEntry((bp + "_Freelancer"), bo), DataEntry((bp + "_PendingEarnings"), 0), DataEntry((bp + "_PaidEarnings"), 0), DataEntry((bp + "_TotalEarnings"), 0), DataEntry((bp + "_JobsPending"), 0), DataEntry((bp + "_JobsCompleted"), 0), DataEntry((bp + "_JobsTotal"), 0)])
434+ else WriteSet([DataEntry((bq + "_Freelancer"), bp), DataEntry((bq + "_PendingEarnings"), 0), DataEntry((bq + "_PaidEarnings"), 0), DataEntry((bq + "_TotalEarnings"), 0), DataEntry((bq + "_JobsPending"), 0), DataEntry((bq + "_JobsCompleted"), 0), DataEntry((bq + "_JobsTotal"), 0)])
435435 }
436436
437437
438438
439-@Callable(bn)
440-func clientSignUp (bo) = {
441- let bp = toBase58String(bn.callerPublicKey)
442- let bq = getString(this, (bp + "_Client"))
443- if (isDefined(bq))
439+@Callable(bo)
440+func clientSignUp (bp) = {
441+ let bq = toBase58String(bo.callerPublicKey)
442+ let br = getString(this, (bq + "_Client"))
443+ if (isDefined(br))
444444 then throw("User already registered")
445- else WriteSet([DataEntry((bp + "_Client"), bo), DataEntry((bp + "_JobsCreated"), 0), DataEntry((bp + "_JobsOnGoing"), 0), DataEntry((bp + "_JobInDispute"), 0)])
445+ else WriteSet([DataEntry((bq + "_Client"), bp), DataEntry((bq + "_JobsCreated"), 0), DataEntry((bq + "_JobsOnGoing"), 0), DataEntry((bq + "_JobInDispute"), 0)])
446446 }
447447
448448
449449
450-@Callable(bn)
451-func createAuction (br,bs,bt,H) = {
452- let Z = toBase58String(bn.callerPublicKey)
453- let af = toBase58String(bn.transactionId)
454- let ba = Y(Z)
455- let bu = extract(bn.payment)
456- let ad = bu.amount
457- let S = ac(ad)
458- let bv = height
459- let bw = (bs * a)
460- let bx = (br * a)
461- let U = I(bu.assetId)
462- let by = B((ba + "_JobsCreated"))
463- let bz = G(H)
464- let bA = T(U, S)
465- WriteSet([DataEntry((af + "_State"), g), DataEntry((af + "_Info"), bt), DataEntry((af + "_AuctionClient"), ba), DataEntry((af + "_AuctionStart"), bv), DataEntry((af + "_AuctionDuration"), bw), DataEntry((af + "_JobPerformance"), bx), DataEntry((af + "_AssetName"), U), DataEntry((af + "_Price"), S), DataEntry((af + "_Category"), bz), DataEntry((U + "_Freezed"), bA), DataEntry((ba + "_JobsCreated"), (by + 1))])
450+@Callable(bo)
451+func createAuction (bs,bt,bu,H) = {
452+ let Z = toBase58String(bo.callerPublicKey)
453+ let ag = toBase58String(bo.transactionId)
454+ let bb = Y(Z)
455+ let bv = extract(bo.payment)
456+ let ae = bv.amount
457+ let S = ad(ae)
458+ let bw = height
459+ let bx = (bt * a)
460+ let by = (bs * a)
461+ let U = I(bv.assetId)
462+ let bz = B((bb + "_JobsCreated"))
463+ let bA = G(H)
464+ let bB = T(U, S)
465+ WriteSet([DataEntry((ag + "_State"), g), DataEntry((ag + "_Info"), bu), DataEntry((ag + "_AuctionClient"), bb), DataEntry((ag + "_AuctionStart"), bw), DataEntry((ag + "_AuctionDuration"), bx), DataEntry((ag + "_JobPerformance"), by), DataEntry((ag + "_AssetName"), U), DataEntry((ag + "_Price"), S), DataEntry((ag + "_Category"), bA), DataEntry((U + "_Freezed"), bB), DataEntry((bb + "_JobsCreated"), (bz + 1))])
466466 }
467467
468468
469469
470-@Callable(bn)
471-func makeBid (af,R) = {
472- let Z = toBase58String(bn.callerPublicKey)
473- let bB = ae(af)
474- let ba = ah(af)
475- let bv = aj(af)
476- let bC = al(af)
477- let aK = an(af)
478- let L = ap(af)
479- let S = ar(af)
480- let bD = K(L)
481- let aD = ab(Z)
482- let bE = ((S * 3) / 100)
483- let bA = X(L, S)
484- let aC = Q(R, S)
485- let bF = M(height, bv, bC)
486- if (bF)
487- then if ((bB == g))
488- then ScriptResult(WriteSet([DataEntry((af + "_State"), i), DataEntry((L + "_Freezed"), bA)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), (S - bE), bD)]))
489- else if ((bB == h))
470+@Callable(bo)
471+func makeBid (ag,R) = {
472+ let Z = toBase58String(bo.callerPublicKey)
473+ let bC = af(ag)
474+ let bb = ai(ag)
475+ let bw = ak(ag)
476+ let bD = am(ag)
477+ let aL = ao(ag)
478+ let L = aq(ag)
479+ let S = as(ag)
480+ let bE = K(L)
481+ let aE = ab(Z)
482+ let bF = ((S * 3) / 100)
483+ let bB = X(L, S)
484+ let aD = Q(R, S)
485+ let bG = M(height, bw, bD)
486+ if (bG)
487+ then if ((bC == g))
488+ then ScriptResult(WriteSet([DataEntry((ag + "_State"), i), DataEntry((L + "_Freezed"), bB)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bb)), (S - bF), bE)]))
489+ else if ((bC == h))
490490 then {
491- let ay = av(af)
492- let bG = ax(af, ay)
493- let bH = ((S - bG) - bE)
494- ScriptResult(WriteSet([DataEntry((af + "_State"), j), DataEntry((af + "_HiredFreelancer"), ay), DataEntry((af + "_Price"), bG)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), bH, bD)]))
491+ let az = aw(ag)
492+ let bH = ay(ag, az)
493+ let bI = ((S - bH) - bF)
494+ ScriptResult(WriteSet([DataEntry((ag + "_State"), j), DataEntry((ag + "_HiredFreelancer"), az), DataEntry((ag + "_Price"), bH)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bb)), bI, bE)]))
495495 }
496496 else throw("Incorrect auction state")
497- else if ((bB == g))
498- then WriteSet([DataEntry(((af + "_Bid_") + aD), aC), DataEntry((af + "_State"), h), DataEntry((af + "_LowestBidderPub"), Z)])
499- else if ((bB == h))
497+ else if ((bC == g))
498+ then WriteSet([DataEntry(((ag + "_Bid_") + aE), aD), DataEntry((ag + "_State"), h), DataEntry((ag + "_LowestBidderPub"), Z)])
499+ else if ((bC == h))
500500 then {
501- let aB = av(af)
502- let bI = aA(af, aB, aC, aD)
503- WriteSet([DataEntry((af + "_LowestBidderPub"), bI), DataEntry(((af + "_Bid_") + aD), aC)])
501+ let aC = aw(ag)
502+ let bJ = aB(ag, aC, aD, aE)
503+ WriteSet([DataEntry((ag + "_LowestBidderPub"), bJ), DataEntry(((ag + "_Bid_") + aE), aD)])
504504 }
505- else throw(((((("Incorrect jobId state. Now: " + bB) + ", must be: ") + g) + " or ") + h))
505+ else throw(((((("Incorrect jobId state. Now: " + bC) + ", must be: ") + g) + " or ") + h))
506506 }
507507
508508
509509
510-@Callable(bn)
511-func chooseFreelancer (af,aH) = {
512- let Z = toBase58String(bn.callerPublicKey)
513- let bB = ae(af)
514- let ba = ah(af)
515- let bv = aj(af)
516- let bC = al(af)
517- let L = ap(af)
518- let S = ar(af)
519- let bD = K(L)
520- let aD = aG(af, aH)
521- let bJ = ax(af, aD)
522- let bF = M(height, bv, bC)
523- let bK = B((ba + "_JobsOnGoing"))
524- let bL = B((aH + "_PendingEarnings"))
525- let bM = B((aH + "_TotalEarnings"))
526- if ((Z == ba))
527- then if (bF)
528- then if ((bB == g))
510+@Callable(bo)
511+func chooseFreelancer (ag,aI) = {
512+ let Z = toBase58String(bo.callerPublicKey)
513+ let bC = af(ag)
514+ let bb = ai(ag)
515+ let bw = ak(ag)
516+ let bD = am(ag)
517+ let L = aq(ag)
518+ let S = as(ag)
519+ let bE = K(L)
520+ let aE = aH(ag, aI)
521+ let bK = ay(ag, aE)
522+ let bG = M(height, bw, bD)
523+ let bL = B((bb + "_JobsOnGoing"))
524+ let bM = B((aI + "_PendingEarnings"))
525+ let bN = B((aI + "_TotalEarnings"))
526+ if ((Z == bb))
527+ then if (bG)
528+ then if ((bC == g))
529529 then {
530- let bA = X(L, S)
531- let bE = ((S * 3) / 100)
532- ScriptResult(WriteSet([DataEntry((af + "_State"), i), DataEntry((L + "_Freezed"), bA)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), (S - bE), bD)]))
530+ let bB = X(L, S)
531+ let bF = ((S * 3) / 100)
532+ ScriptResult(WriteSet([DataEntry((ag + "_State"), i), DataEntry((L + "_Freezed"), bB)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bb)), (S - bF), bE)]))
533533 }
534- else if ((bB == h))
534+ else if ((bC == h))
535535 then {
536- let ay = av(af)
537- let bG = ax(af, ay)
538- let bH = (S - bG)
539- let bA = X(L, bH)
540- ScriptResult(WriteSet([DataEntry((af + "_State"), j), DataEntry((af + "_HiredFreelancer"), ay), DataEntry((af + "_Price"), bG), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsOnGoing"), (bK + 1)), DataEntry((aH + "_PendingEarnings"), (bL + bG)), DataEntry((aH + "_TotalEarnings"), (bM + bG))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), bH, bD)]))
536+ let az = aw(ag)
537+ let bH = ay(ag, az)
538+ let bI = (S - bH)
539+ let bB = X(L, bI)
540+ ScriptResult(WriteSet([DataEntry((ag + "_State"), j), DataEntry((ag + "_HiredFreelancer"), az), DataEntry((ag + "_Price"), bH), DataEntry((L + "_Freezed"), bB), DataEntry((bb + "_JobsOnGoing"), (bL + 1)), DataEntry((aI + "_PendingEarnings"), (bM + bH)), DataEntry((aI + "_TotalEarnings"), (bN + bH))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bb)), bI, bE)]))
541541 }
542542 else throw("Incorrect auction state")
543- else if (if ((bB == g))
543+ else if (if ((bC == g))
544544 then true
545- else (bB == h))
545+ else (bC == h))
546546 then {
547- let bH = (S - bJ)
548- let bA = X(L, bH)
549- ScriptResult(WriteSet([DataEntry((af + "_State"), j), DataEntry((af + "_HiredFreelancer"), aD), DataEntry((af + "_Price"), bJ), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsOnGoing"), (bK + 1)), DataEntry((aH + "_PendingEarnings"), (bL + bJ)), DataEntry((aH + "_TotalEarnings"), (bM + bJ))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), (bH + 1), bD)]))
547+ let bI = (S - bK)
548+ let bB = X(L, bI)
549+ ScriptResult(WriteSet([DataEntry((ag + "_State"), j), DataEntry((ag + "_HiredFreelancer"), aE), DataEntry((ag + "_Price"), bK), DataEntry((L + "_Freezed"), bB), DataEntry((bb + "_JobsOnGoing"), (bL + 1)), DataEntry((aI + "_PendingEarnings"), (bM + bK)), DataEntry((aI + "_TotalEarnings"), (bN + bK))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bb)), (bI + 1), bE)]))
550550 }
551551 else throw("Incorrect auction state")
552552 else throw("Only auction customer can choose a freelancer")
554554
555555
556556
557-@Callable(bn)
558-func increaseExecutionTime (af,aJ) = {
559- let bN = toBase58String(bn.callerPublicKey)
560- let bB = ae(af)
561- let ba = ah(af)
562- let aK = an(af)
563- let bO = aI(aJ, aK)
564- if ((bN == ba))
565- then if (if (if ((bB == g))
557+@Callable(bo)
558+func increaseExecutionTime (ag,aK) = {
559+ let bO = toBase58String(bo.callerPublicKey)
560+ let bC = af(ag)
561+ let bb = ai(ag)
562+ let aL = ao(ag)
563+ let bP = aJ(aK, aL)
564+ if ((bO == bb))
565+ then if (if (if ((bC == g))
566566 then true
567- else (bB == h))
567+ else (bC == h))
568568 then true
569- else (bB == j))
570- then WriteSet([DataEntry((af + "_JobPerformance"), bO)])
569+ else (bC == j))
570+ then WriteSet([DataEntry((ag + "_JobPerformance"), bP)])
571571 else throw("Incorrect state")
572572 else throw("Only Client can increase execution time")
573573 }
574574
575575
576576
577-@Callable(bn)
578-func cancelAuction (af) = {
579- let Z = toBase58String(bn.callerPublicKey)
580- let bB = ae(af)
581- let ba = ah(af)
582- let L = ap(af)
583- let S = ar(af)
584- let bD = K(L)
585- let bE = ((S * 3) / 100)
586- let bP = (S - bE)
587- let bA = X(L, S)
588- if ((Z == ba))
589- then if ((bB == g))
590- then ScriptResult(WriteSet([DataEntry((af + "_State"), i), DataEntry((L + "_Freezed"), bA)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), bP, bD)]))
577+@Callable(bo)
578+func cancelAuction (ag) = {
579+ let Z = toBase58String(bo.callerPublicKey)
580+ let bC = af(ag)
581+ let bb = ai(ag)
582+ let L = aq(ag)
583+ let S = as(ag)
584+ let bE = K(L)
585+ let bF = ((S * 3) / 100)
586+ let bQ = (S - bF)
587+ let bB = X(L, S)
588+ if ((Z == bb))
589+ then if ((bC == g))
590+ then ScriptResult(WriteSet([DataEntry((ag + "_State"), i), DataEntry((L + "_Freezed"), bB)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bb)), bQ, bE)]))
591591 else throw("Auction can be canceled only by auction owner.")
592592 else throw("Only Client can cancel auction")
593593 }
594594
595595
596596
597-@Callable(bn)
598-func openDispute (af) = {
599- let bN = toBase58String(bn.callerPublicKey)
600- let bB = ae(af)
601- let ba = ah(af)
602- let aN = at(af)
603- let bQ = B((ba + "_JobsInDispute"))
604- if (if ((bB == j))
597+@Callable(bo)
598+func openDispute (ag) = {
599+ let bO = toBase58String(bo.callerPublicKey)
600+ let bC = af(ag)
601+ let bb = ai(ag)
602+ let aO = au(ag)
603+ let bR = B((bb + "_JobsInDispute"))
604+ if (if ((bC == j))
605605 then true
606- else (bB == k))
607- then if (if ((bN == ba))
606+ else (bC == k))
607+ then if (if ((bO == bb))
608608 then true
609- else (bN == aN))
610- then WriteSet([DataEntry((af + "_State"), m), DataEntry((af + "_DisputeVotes"), 0), DataEntry((ba + "_JobsInDispute"), (bQ + 1))])
609+ else (bO == aO))
610+ then WriteSet([DataEntry((ag + "_State"), m), DataEntry((ag + "_DisputeVotes"), 0), DataEntry((bb + "_JobsInDispute"), (bR + 1))])
611611 else throw("Only Client and Freelancer can open dispute")
612612 else throw("Incorrect auction state for dispute opening")
613613 }
614614
615615
616616
617-@Callable(bn)
618-func voteDispute (af,aS) = {
619- let Z = toBase58String(bn.callerPublicKey)
620- let bB = ae(af)
621- let ba = ah(af)
622- let L = ap(af)
623- let S = ar(af)
624- let aN = at(af)
625- let bR = ((S * 3) / 100)
626- let bD = K(L)
627- let aR = aP(Z)
628- let bS = aQ(af, aR, aS)
629- let bT = aW(af)
630- let bQ = B((ba + "_JobsInDispute"))
631- let bL = B((aN + "_PendingEarnings"))
632- let bM = B((aN + "_TotalEarnings"))
633- if ((bB == m))
634- then if ((bT == 4))
617+@Callable(bo)
618+func voteDispute (ag,aT) = {
619+ let Z = toBase58String(bo.callerPublicKey)
620+ let bC = af(ag)
621+ let bb = ai(ag)
622+ let L = aq(ag)
623+ let S = as(ag)
624+ let aO = au(ag)
625+ let bS = ((S * 3) / 100)
626+ let bE = K(L)
627+ let aS = aQ(Z)
628+ let bT = aR(ag, aS, aT)
629+ let bU = aX(ag)
630+ let bR = B((bb + "_JobsInDispute"))
631+ let bM = B((aO + "_PendingEarnings"))
632+ let bN = B((aO + "_TotalEarnings"))
633+ if ((bC == m))
634+ then if ((bU == 4))
635635 then {
636- let bU = aY(af, bS, ba, aN)
637- let bA = X(L, S)
638- if ((bU == ba))
636+ let bV = aZ(ag, bT, bb, aO)
637+ let bB = X(L, S)
638+ if ((bV == bb))
639639 then {
640- let bV = (S - bR)
641- ScriptResult(WriteSet([DataEntry((af + "_DisputeVotes"), (bT + 1)), DataEntry((af + "_State"), n), DataEntry(((af + "_DiputeVote_") + aR), bS), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsInDispute"), (bQ - 1)), DataEntry((aN + "_PendingEarnings"), (bL - S)), DataEntry((aN + "_TotalEarnings"), (bM - S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bU)), bV, bD)]))
640+ let bW = (S - bS)
641+ ScriptResult(WriteSet([DataEntry((ag + "_DisputeVotes"), (bU + 1)), DataEntry((ag + "_State"), n), DataEntry(((ag + "_DiputeVote_") + aS), bT), DataEntry((L + "_Freezed"), bB), DataEntry((bb + "_JobsInDispute"), (bR - 1)), DataEntry((aO + "_PendingEarnings"), (bM - S)), DataEntry((aO + "_TotalEarnings"), (bN - S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bV)), bW, bE)]))
642642 }
643643 else {
644- let bV = (S - (bR * 2))
645- ScriptResult(WriteSet([DataEntry((af + "_DisputeVotes"), (bT + 1)), DataEntry((af + "_State"), n), DataEntry(((af + "_DiputeVote_") + aR), bS), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsInDispute"), (bQ - 1)), DataEntry((aN + "_PendingEarnings"), (bL - S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bU)), bV, bD)]))
644+ let bW = (S - (bS * 2))
645+ ScriptResult(WriteSet([DataEntry((ag + "_DisputeVotes"), (bU + 1)), DataEntry((ag + "_State"), n), DataEntry(((ag + "_DiputeVote_") + aS), bT), DataEntry((L + "_Freezed"), bB), DataEntry((bb + "_JobsInDispute"), (bR - 1)), DataEntry((aO + "_PendingEarnings"), (bM - S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bV)), bW, bE)]))
646646 }
647647 }
648- else WriteSet([DataEntry((af + "_DisputeVotes"), (bT + 1)), DataEntry(((af + "_DiputeVote_") + aR), bS)])
648+ else WriteSet([DataEntry((ag + "_DisputeVotes"), (bU + 1)), DataEntry(((ag + "_DiputeVote_") + aS), bT)])
649649 else throw(("Incorrect state. Must be: " + m))
650650 }
651651
652652
653653
654-@Callable(bn)
655-func workHandOver (af) = {
656- let Z = toBase58String(bn.callerPublicKey)
657- let bB = ae(af)
658- let ba = ah(af)
659- let bv = aj(af)
660- let bC = al(af)
661- let aK = an(af)
662- let aN = at(af)
663- let bW = ((height - bv) > aK)
664- let bQ = B((ba + "_JobsInDispute"))
665- if ((Z == aN))
666- then if ((bB == j))
667- then if (bW)
668- then WriteSet([DataEntry((af + "_State"), m), DataEntry((af + "_DisputeVotes"), "0"), DataEntry((ba + "_JobInDispute"), (bQ + 1))])
669- else WriteSet([DataEntry((af + "_State"), k)])
654+@Callable(bo)
655+func workHandOver (ag) = {
656+ let Z = toBase58String(bo.callerPublicKey)
657+ let bC = af(ag)
658+ let bb = ai(ag)
659+ let bw = ak(ag)
660+ let bD = am(ag)
661+ let aL = ao(ag)
662+ let aO = au(ag)
663+ let bX = ((height - bw) > aL)
664+ let bR = B((bb + "_JobsInDispute"))
665+ if ((Z == aO))
666+ then if ((bC == j))
667+ then if (bX)
668+ then WriteSet([DataEntry((ag + "_State"), m), DataEntry((ag + "_DisputeVotes"), "0"), DataEntry((bb + "_JobInDispute"), (bR + 1))])
669+ else WriteSet([DataEntry((ag + "_State"), k)])
670670 else throw("Auction state is incorrect")
671671 else throw("Only a freelancer can indicate that the work is done")
672672 }
673673
674674
675675
676-@Callable(bn)
677-func acceptWork (af) = {
678- let Z = toBase58String(bn.callerPublicKey)
679- let bB = ae(af)
680- let ba = ah(af)
681- let bv = aj(af)
682- let bC = al(af)
683- let L = ap(af)
684- let S = ar(af)
685- let aN = at(af)
686- let bK = B((ba + "_JobsOnGoing"))
687- let bL = B((aN + "_PendingEarnings"))
688- let bX = B((aN + "_PaidEarnings"))
689- let bE = ((S * 3) / 100)
690- let bP = (S - (bE * 2))
691- let bD = K(L)
692- let bA = X(L, S)
693- let bY = aM(aN)
694- if ((Z == ba))
695- then if ((bB == k))
696- then ScriptResult(WriteSet([DataEntry((af + "_State"), l), DataEntry((aN + "_Rating"), (bY + 1)), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsOnGoing"), (bK - 1)), DataEntry((aN + "_PendingEarnings"), (bL - S)), DataEntry((aN + "_PaidEarnings"), (bX + S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aN)), bP, bD)]))
676+@Callable(bo)
677+func acceptWork (ag) = {
678+ let Z = toBase58String(bo.callerPublicKey)
679+ let bC = af(ag)
680+ let bb = ai(ag)
681+ let bw = ak(ag)
682+ let bD = am(ag)
683+ let L = aq(ag)
684+ let S = as(ag)
685+ let aO = au(ag)
686+ let bL = B((bb + "_JobsOnGoing"))
687+ let bM = B((aO + "_PendingEarnings"))
688+ let bY = B((aO + "_PaidEarnings"))
689+ let bF = ((S * 3) / 100)
690+ let bQ = (S - (bF * 2))
691+ let bE = K(L)
692+ let bB = X(L, S)
693+ let bZ = aN(aO)
694+ if ((Z == bb))
695+ then if ((bC == k))
696+ then ScriptResult(WriteSet([DataEntry((ag + "_State"), l), DataEntry((aO + "_Rating"), (bZ + 1)), DataEntry((L + "_Freezed"), bB), DataEntry((bb + "_JobsOnGoing"), (bL - 1)), DataEntry((aO + "_PendingEarnings"), (bM - S)), DataEntry((aO + "_PaidEarnings"), (bY + S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aO)), bQ, bE)]))
697697 else throw(("Incorrect state. Must be: " + k))
698698 else throw("Only auction customer can use this function")
699699 }
700700
701701
702-@Verifier(bZ)
703-func ca () = if (sigVerify(bZ.bodyBytes, bZ.proofs[0], bZ.senderPublicKey))
702+@Verifier(ca)
703+func cb () = if (sigVerify(ca.bodyBytes, ca.proofs[0], ca.senderPublicKey))
704704 then {
705- let E = bZ
705+ let E = ca
706706 if ($isInstanceOf(E, "TransferTransaction"))
707707 then {
708- let cb = E
709- let cc = I(cb.assetId)
710- let cd = getInteger(this, (cc + "_Reserved"))
711- let ce = {
712- let cf = cd
713- if ($isInstanceOf(cf, "Int"))
708+ let cc = E
709+ let cd = I(cc.assetId)
710+ let ce = getInteger(this, (cd + "_Reserved"))
711+ let cf = {
712+ let cg = ce
713+ if ($isInstanceOf(cg, "Int"))
714714 then {
715- let F = cf
715+ let F = cg
716716 F
717717 }
718718 else 0
719719 }
720- let cg = (assetBalance(this, cb.assetId) - ce)
721- (cg >= cb.amount)
720+ let ch = (assetBalance(this, cc.assetId) - cf)
721+ (ch >= cc.amount)
722722 }
723723 else if ($isInstanceOf(E, "SetScriptTransaction"))
724724 then {
725- let ch = E
725+ let ci = E
726726 true
727727 }
728728 else false
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1440
55
66 let b = unit
77
88 let c = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
99
1010 let d = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
1111
1212 let e = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
1313
1414 let f = base58'1'
1515
1616 let g = "Opened"
1717
1818 let h = "Suggested"
1919
2020 let i = "Canceled"
2121
2222 let j = "InProgress"
2323
2424 let k = "WaitForConfirmation"
2525
2626 let l = "Completed"
2727
2828 let m = "Dispute"
2929
3030 let n = "DisputeResolved"
3131
3232 let o = "Web Design & Development"
3333
3434 let p = "Waves RIDE & Smart Contract"
3535
3636 let q = "Mobile App"
3737
3838 let r = "Graphics & Design"
3939
4040 let s = "Writing & Translation"
4141
4242 let t = "Video & Animation"
4343
4444 let u = "CL"
4545
4646 let v = "FL"
4747
4848 let w = "FneCJqM5BP2eAuyteMiuEEHYALrE4axhEfcpHVGbdr5s"
4949
5050 let x = "6QAMdssb1GJjpQVQQcnx8fKU8WhtcF9ZsQhifdThAEK8"
5151
5252 let y = "2ituwW7DSRsLP3Vcbnpr98QUQMGFRWKmyYPFqsUKRDoP"
5353
5454 let z = "ANsPQocEESyLb3yQqk2pwCdoK7PJQxLoZVpYvsm3SxUG"
5555
5656 let A = "13VixwQin1MzZCyY69NSWMSBNEV27Rzc159o7uZXR9VS"
5757
5858 func B (C) = {
5959 let D = getInteger(this, C)
6060 let E = D
6161 if ($isInstanceOf(E, "Int"))
6262 then {
6363 let F = E
6464 F
6565 }
6666 else 0
6767 }
6868
6969
7070 func G (H) = if (if (if (if (if (if ((H == o))
7171 then true
7272 else (H == p))
7373 then true
7474 else (H == q))
7575 then true
7676 else (H == r))
7777 then true
7878 else (H == s))
7979 then true
8080 else (H == t))
8181 then H
8282 else throw("Category is invalid")
8383
8484
8585 func I (J) = if (!(isDefined(J)))
8686 then "WAVES"
8787 else if ((J == c))
8888 then "BTC"
8989 else if ((J == d))
9090 then "EUR"
9191 else if ((J == e))
9292 then "USD"
9393 else if ((J == f))
9494 then "AUCT"
9595 else throw("AssetId is incorrect")
9696
9797
9898 func K (L) = if ((L == "WAVES"))
9999 then b
100100 else if ((L == "BTC"))
101101 then c
102102 else if ((L == "EUR"))
103103 then d
104104 else if ((L == "USD"))
105105 then e
106106 else if ((L == "AUCT"))
107107 then f
108108 else throw("Incorrect Asset Id")
109109
110110
111111 func M (N,O,P) = ((N - O) > P)
112112
113113
114114 func Q (R,S) = if ((R > S))
115115 then throw("Bid amount must be lower or equal than auctionPrice")
116116 else R
117117
118118
119119 func T (U,S) = {
120120 let V = getInteger(this, (U + "_Freezed"))
121121 let W = {
122122 let E = V
123123 if ($isInstanceOf(E, "Int"))
124124 then {
125125 let F = E
126126 F
127127 }
128128 else 0
129129 }
130130 (W + S)
131131 }
132132
133133
134134 func X (U,S) = {
135135 let V = getInteger(this, (U + "_Freezed"))
136136 let W = {
137137 let E = V
138138 if ($isInstanceOf(E, "Int"))
139139 then {
140140 let F = E
141141 F
142142 }
143143 else 0
144144 }
145145 let F = (W - S)
146146 if ((F >= 0))
147147 then F
148148 else throw("Freezed amount couldn't be less than 0")
149149 }
150150
151151
152152 func Y (Z) = {
153- let aa = getString(this, (Z + "_Freelancer"))
153+ let aa = getString(this, (Z + "_Client"))
154154 let E = aa
155+ if ($isInstanceOf(E, "String"))
156+ then {
157+ let F = E
158+ Z
159+ }
160+ else throw("Only registered users can create auctions")
161+ }
162+
163+
164+func ab (Z) = {
165+ let ac = getString(this, (Z + "_Freelancer"))
166+ let E = ac
155167 if ($isInstanceOf(E, "String"))
156168 then {
157169 let F = E
158170 Z
159171 }
160172 else throw("Only registered users can make bets")
161173 }
162174
163175
164-func ab (Z) = {
165- let aa = getString(this, (Z + "_Freelancer"))
166- let E = aa
167- if ($isInstanceOf(E, "String"))
168- then {
169- let F = E
170- Z
171- }
172- else throw("Only registered users can make bets")
173- }
174-
175-
176-func ac (ad) = if ((ad > 0))
177- then ad
176+func ad (ae) = if ((ae > 0))
177+ then ae
178178 else throw("Amount must be higher then 0")
179179
180180
181-func ae (af) = {
182- let ag = getString(this, (af + "_State"))
183- let E = ag
181+func af (ag) = {
182+ let ah = getString(this, (ag + "_State"))
183+ let E = ah
184184 if ($isInstanceOf(E, "String"))
185185 then {
186186 let F = E
187187 F
188188 }
189189 else throw("Auction State was not found")
190190 }
191191
192192
193-func ah (af) = {
194- let ai = getString(this, (af + "_AuctionClient"))
195- let E = ai
193+func ai (ag) = {
194+ let aj = getString(this, (ag + "_AuctionClient"))
195+ let E = aj
196196 if ($isInstanceOf(E, "String"))
197197 then {
198198 let F = E
199199 F
200200 }
201201 else throw("Auction Client was not found")
202202 }
203203
204204
205-func aj (af) = {
206- let ak = getInteger(this, (af + "_AuctionStart"))
207- let E = ak
205+func ak (ag) = {
206+ let al = getInteger(this, (ag + "_AuctionStart"))
207+ let E = al
208208 if ($isInstanceOf(E, "Int"))
209209 then {
210210 let F = E
211211 F
212212 }
213213 else throw("Auction Start time was not found")
214214 }
215215
216216
217-func al (af) = {
218- let am = getInteger(this, (af + "_AuctionDuration"))
219- let E = am
217+func am (ag) = {
218+ let an = getInteger(this, (ag + "_AuctionDuration"))
219+ let E = an
220220 if ($isInstanceOf(E, "Int"))
221221 then {
222222 let F = E
223223 F
224224 }
225225 else throw("Auction duration time was not found")
226226 }
227227
228228
229-func an (af) = {
230- let ao = getInteger(this, (af + "_JobPerformance"))
231- let E = ao
229+func ao (ag) = {
230+ let ap = getInteger(this, (ag + "_JobPerformance"))
231+ let E = ap
232232 if ($isInstanceOf(E, "Int"))
233233 then {
234234 let F = E
235235 F
236236 }
237237 else throw("Auction job performance time was not found")
238238 }
239239
240240
241-func ap (af) = {
242- let aq = getString(this, (af + "_AssetName"))
243- let E = aq
241+func aq (ag) = {
242+ let ar = getString(this, (ag + "_AssetName"))
243+ let E = ar
244244 if ($isInstanceOf(E, "String"))
245245 then {
246246 let F = E
247247 F
248248 }
249249 else throw("Auction asset name was not found")
250250 }
251251
252252
253-func ar (af) = {
254- let as = getInteger(this, (af + "_Price"))
255- let E = as
253+func as (ag) = {
254+ let at = getInteger(this, (ag + "_Price"))
255+ let E = at
256256 if ($isInstanceOf(E, "Int"))
257257 then {
258258 let F = E
259259 F
260260 }
261261 else throw("Auction price was not found")
262262 }
263263
264264
265-func at (af) = {
266- let au = getString(this, (af + "_HiredFreelancer"))
267- let E = au
265+func au (ag) = {
266+ let av = getString(this, (ag + "_HiredFreelancer"))
267+ let E = av
268268 if ($isInstanceOf(E, "String"))
269269 then {
270270 let F = E
271271 F
272272 }
273273 else throw("Auction Client was not found")
274274 }
275275
276276
277-func av (af) = {
278- let aw = getString(this, (af + "_LowestBidderPub"))
279- let E = aw
277+func aw (ag) = {
278+ let ax = getString(this, (ag + "_LowestBidderPub"))
279+ let E = ax
280280 if ($isInstanceOf(E, "String"))
281281 then {
282282 let F = E
283283 F
284284 }
285285 else throw("Auction lowest bidder was not found")
286286 }
287287
288288
289-func ax (af,ay) = {
290- let az = getInteger(this, ((af + "_Bid_") + ay))
291- let E = az
289+func ay (ag,az) = {
290+ let aA = getInteger(this, ((ag + "_Bid_") + az))
291+ let E = aA
292292 if ($isInstanceOf(E, "Int"))
293293 then {
294294 let F = E
295295 F
296296 }
297297 else throw("Auction lowest bid was not found")
298298 }
299299
300300
301-func aA (af,aB,aC,aD) = {
302- let aE = getInteger(this, ((af + "_Bid_") + aB))
303- let aF = {
304- let E = aE
301+func aB (ag,aC,aD,aE) = {
302+ let aF = getInteger(this, ((ag + "_Bid_") + aC))
303+ let aG = {
304+ let E = aF
305305 if ($isInstanceOf(E, "Int"))
306306 then {
307307 let F = E
308308 F
309309 }
310310 else throw("Auction lowest bid was not found")
311311 }
312- if ((aF > aC))
313- then aD
314- else aB
312+ if ((aG > aD))
313+ then aE
314+ else aC
315315 }
316316
317317
318-func aG (af,aH) = {
319- let aD = getInteger(this, ((af + "_Bid_") + aH))
320- let E = aD
318+func aH (ag,aI) = {
319+ let aE = getInteger(this, ((ag + "_Bid_") + aI))
320+ let E = aE
321321 if ($isInstanceOf(E, "Int"))
322322 then {
323323 let F = E
324- aH
324+ aI
325325 }
326326 else throw("Error: Incorrect freelancerPub")
327327 }
328328
329329
330-func aI (aJ,aK) = {
331- let aL = (aJ * a)
332- if ((aL > aK))
333- then aL
330+func aJ (aK,aL) = {
331+ let aM = (aK * a)
332+ if ((aM > aL))
333+ then aM
334334 else throw("New execution time must more than current execution time")
335335 }
336336
337337
338-func aM (aN) = {
339- let aO = getInteger(this, (aN + "_Rating"))
340- let E = aO
338+func aN (aO) = {
339+ let aP = getInteger(this, (aO + "_Rating"))
340+ let E = aP
341341 if ($isInstanceOf(E, "Int"))
342342 then {
343343 let F = E
344344 F
345345 }
346346 else 0
347347 }
348348
349349
350-func aP (Z) = if (if (if (if (if ((Z == w))
350+func aQ (Z) = if (if (if (if (if ((Z == w))
351351 then true
352352 else (Z == x))
353353 then true
354354 else (Z == y))
355355 then true
356356 else (Z == z))
357357 then true
358358 else (Z == A))
359359 then Z
360360 else throw("Only defined ambassadors can vote in disputes")
361361
362362
363-func aQ (af,aR,aS) = {
364- let aT = ((af + "_DiputeVote_") + aR)
365- let aU = getString(this, aT)
366- let aV = {
367- let E = aU
363+func aR (ag,aS,aT) = {
364+ let aU = ((ag + "_DiputeVote_") + aS)
365+ let aV = getString(this, aU)
366+ let aW = {
367+ let E = aV
368368 if ($isInstanceOf(E, "String"))
369369 then {
370370 let F = E
371371 true
372372 }
373373 else false
374374 }
375- if (aV)
375+ if (aW)
376376 then throw("Ambassador voted already ")
377- else if (if ((aS == u))
377+ else if (if ((aT == u))
378378 then true
379- else (aS == v))
380- then aS
379+ else (aT == v))
380+ then aT
381381 else throw(((("Vote is incorrect. Must be: " + u) + " or ") + v))
382382 }
383383
384384
385-func aW (af) = {
386- let aX = getInteger(this, (af + "_DisputeVotes"))
387- let E = aX
385+func aX (ag) = {
386+ let aY = getInteger(this, (ag + "_DisputeVotes"))
387+ let E = aY
388388 if ($isInstanceOf(E, "Int"))
389389 then {
390390 let F = E
391391 F
392392 }
393393 else throw("VotesNumber was not found")
394394 }
395395
396396
397-func aY (af,aZ,ba,aN) = {
398- let bb = getString(this, ((af + "_DiputeVote_") + w))
399- let bc = getString(this, ((af + "_DiputeVote_") + x))
400- let bd = getString(this, ((af + "_DiputeVote_") + y))
401- let be = getString(this, ((af + "_DiputeVote_") + z))
402- let bf = getString(this, ((af + "_DiputeVote_") + A))
403- let bg = if ((bb == u))
404- then 1
405- else 0
397+func aZ (ag,ba,bb,aO) = {
398+ let bc = getString(this, ((ag + "_DiputeVote_") + w))
399+ let bd = getString(this, ((ag + "_DiputeVote_") + x))
400+ let be = getString(this, ((ag + "_DiputeVote_") + y))
401+ let bf = getString(this, ((ag + "_DiputeVote_") + z))
402+ let bg = getString(this, ((ag + "_DiputeVote_") + A))
406403 let bh = if ((bc == u))
407404 then 1
408405 else 0
409406 let bi = if ((bd == u))
410407 then 1
411408 else 0
412409 let bj = if ((be == u))
413410 then 1
414411 else 0
415412 let bk = if ((bf == u))
416413 then 1
417414 else 0
418- let bl = if ((aZ == u))
415+ let bl = if ((bg == u))
419416 then 1
420417 else 0
421- let bm = (((((bg + bh) + bi) + bj) + bk) + bl)
422- if ((bm > 2))
423- then ba
424- else aN
418+ let bm = if ((ba == u))
419+ then 1
420+ else 0
421+ let bn = (((((bh + bi) + bj) + bk) + bl) + bm)
422+ if ((bn > 2))
423+ then bb
424+ else aO
425425 }
426426
427427
428-@Callable(bn)
429-func freelancerSignUp (bo) = {
430- let bp = toBase58String(bn.callerPublicKey)
431- let bq = getString(this, (bp + "_Freelancer"))
432- if (isDefined(bq))
428+@Callable(bo)
429+func freelancerSignUp (bp) = {
430+ let bq = toBase58String(bo.callerPublicKey)
431+ let br = getString(this, (bq + "_Freelancer"))
432+ if (isDefined(br))
433433 then throw("User already registered")
434- else WriteSet([DataEntry((bp + "_Freelancer"), bo), DataEntry((bp + "_PendingEarnings"), 0), DataEntry((bp + "_PaidEarnings"), 0), DataEntry((bp + "_TotalEarnings"), 0), DataEntry((bp + "_JobsPending"), 0), DataEntry((bp + "_JobsCompleted"), 0), DataEntry((bp + "_JobsTotal"), 0)])
434+ else WriteSet([DataEntry((bq + "_Freelancer"), bp), DataEntry((bq + "_PendingEarnings"), 0), DataEntry((bq + "_PaidEarnings"), 0), DataEntry((bq + "_TotalEarnings"), 0), DataEntry((bq + "_JobsPending"), 0), DataEntry((bq + "_JobsCompleted"), 0), DataEntry((bq + "_JobsTotal"), 0)])
435435 }
436436
437437
438438
439-@Callable(bn)
440-func clientSignUp (bo) = {
441- let bp = toBase58String(bn.callerPublicKey)
442- let bq = getString(this, (bp + "_Client"))
443- if (isDefined(bq))
439+@Callable(bo)
440+func clientSignUp (bp) = {
441+ let bq = toBase58String(bo.callerPublicKey)
442+ let br = getString(this, (bq + "_Client"))
443+ if (isDefined(br))
444444 then throw("User already registered")
445- else WriteSet([DataEntry((bp + "_Client"), bo), DataEntry((bp + "_JobsCreated"), 0), DataEntry((bp + "_JobsOnGoing"), 0), DataEntry((bp + "_JobInDispute"), 0)])
445+ else WriteSet([DataEntry((bq + "_Client"), bp), DataEntry((bq + "_JobsCreated"), 0), DataEntry((bq + "_JobsOnGoing"), 0), DataEntry((bq + "_JobInDispute"), 0)])
446446 }
447447
448448
449449
450-@Callable(bn)
451-func createAuction (br,bs,bt,H) = {
452- let Z = toBase58String(bn.callerPublicKey)
453- let af = toBase58String(bn.transactionId)
454- let ba = Y(Z)
455- let bu = extract(bn.payment)
456- let ad = bu.amount
457- let S = ac(ad)
458- let bv = height
459- let bw = (bs * a)
460- let bx = (br * a)
461- let U = I(bu.assetId)
462- let by = B((ba + "_JobsCreated"))
463- let bz = G(H)
464- let bA = T(U, S)
465- WriteSet([DataEntry((af + "_State"), g), DataEntry((af + "_Info"), bt), DataEntry((af + "_AuctionClient"), ba), DataEntry((af + "_AuctionStart"), bv), DataEntry((af + "_AuctionDuration"), bw), DataEntry((af + "_JobPerformance"), bx), DataEntry((af + "_AssetName"), U), DataEntry((af + "_Price"), S), DataEntry((af + "_Category"), bz), DataEntry((U + "_Freezed"), bA), DataEntry((ba + "_JobsCreated"), (by + 1))])
450+@Callable(bo)
451+func createAuction (bs,bt,bu,H) = {
452+ let Z = toBase58String(bo.callerPublicKey)
453+ let ag = toBase58String(bo.transactionId)
454+ let bb = Y(Z)
455+ let bv = extract(bo.payment)
456+ let ae = bv.amount
457+ let S = ad(ae)
458+ let bw = height
459+ let bx = (bt * a)
460+ let by = (bs * a)
461+ let U = I(bv.assetId)
462+ let bz = B((bb + "_JobsCreated"))
463+ let bA = G(H)
464+ let bB = T(U, S)
465+ WriteSet([DataEntry((ag + "_State"), g), DataEntry((ag + "_Info"), bu), DataEntry((ag + "_AuctionClient"), bb), DataEntry((ag + "_AuctionStart"), bw), DataEntry((ag + "_AuctionDuration"), bx), DataEntry((ag + "_JobPerformance"), by), DataEntry((ag + "_AssetName"), U), DataEntry((ag + "_Price"), S), DataEntry((ag + "_Category"), bA), DataEntry((U + "_Freezed"), bB), DataEntry((bb + "_JobsCreated"), (bz + 1))])
466466 }
467467
468468
469469
470-@Callable(bn)
471-func makeBid (af,R) = {
472- let Z = toBase58String(bn.callerPublicKey)
473- let bB = ae(af)
474- let ba = ah(af)
475- let bv = aj(af)
476- let bC = al(af)
477- let aK = an(af)
478- let L = ap(af)
479- let S = ar(af)
480- let bD = K(L)
481- let aD = ab(Z)
482- let bE = ((S * 3) / 100)
483- let bA = X(L, S)
484- let aC = Q(R, S)
485- let bF = M(height, bv, bC)
486- if (bF)
487- then if ((bB == g))
488- then ScriptResult(WriteSet([DataEntry((af + "_State"), i), DataEntry((L + "_Freezed"), bA)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), (S - bE), bD)]))
489- else if ((bB == h))
470+@Callable(bo)
471+func makeBid (ag,R) = {
472+ let Z = toBase58String(bo.callerPublicKey)
473+ let bC = af(ag)
474+ let bb = ai(ag)
475+ let bw = ak(ag)
476+ let bD = am(ag)
477+ let aL = ao(ag)
478+ let L = aq(ag)
479+ let S = as(ag)
480+ let bE = K(L)
481+ let aE = ab(Z)
482+ let bF = ((S * 3) / 100)
483+ let bB = X(L, S)
484+ let aD = Q(R, S)
485+ let bG = M(height, bw, bD)
486+ if (bG)
487+ then if ((bC == g))
488+ then ScriptResult(WriteSet([DataEntry((ag + "_State"), i), DataEntry((L + "_Freezed"), bB)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bb)), (S - bF), bE)]))
489+ else if ((bC == h))
490490 then {
491- let ay = av(af)
492- let bG = ax(af, ay)
493- let bH = ((S - bG) - bE)
494- ScriptResult(WriteSet([DataEntry((af + "_State"), j), DataEntry((af + "_HiredFreelancer"), ay), DataEntry((af + "_Price"), bG)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), bH, bD)]))
491+ let az = aw(ag)
492+ let bH = ay(ag, az)
493+ let bI = ((S - bH) - bF)
494+ ScriptResult(WriteSet([DataEntry((ag + "_State"), j), DataEntry((ag + "_HiredFreelancer"), az), DataEntry((ag + "_Price"), bH)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bb)), bI, bE)]))
495495 }
496496 else throw("Incorrect auction state")
497- else if ((bB == g))
498- then WriteSet([DataEntry(((af + "_Bid_") + aD), aC), DataEntry((af + "_State"), h), DataEntry((af + "_LowestBidderPub"), Z)])
499- else if ((bB == h))
497+ else if ((bC == g))
498+ then WriteSet([DataEntry(((ag + "_Bid_") + aE), aD), DataEntry((ag + "_State"), h), DataEntry((ag + "_LowestBidderPub"), Z)])
499+ else if ((bC == h))
500500 then {
501- let aB = av(af)
502- let bI = aA(af, aB, aC, aD)
503- WriteSet([DataEntry((af + "_LowestBidderPub"), bI), DataEntry(((af + "_Bid_") + aD), aC)])
501+ let aC = aw(ag)
502+ let bJ = aB(ag, aC, aD, aE)
503+ WriteSet([DataEntry((ag + "_LowestBidderPub"), bJ), DataEntry(((ag + "_Bid_") + aE), aD)])
504504 }
505- else throw(((((("Incorrect jobId state. Now: " + bB) + ", must be: ") + g) + " or ") + h))
505+ else throw(((((("Incorrect jobId state. Now: " + bC) + ", must be: ") + g) + " or ") + h))
506506 }
507507
508508
509509
510-@Callable(bn)
511-func chooseFreelancer (af,aH) = {
512- let Z = toBase58String(bn.callerPublicKey)
513- let bB = ae(af)
514- let ba = ah(af)
515- let bv = aj(af)
516- let bC = al(af)
517- let L = ap(af)
518- let S = ar(af)
519- let bD = K(L)
520- let aD = aG(af, aH)
521- let bJ = ax(af, aD)
522- let bF = M(height, bv, bC)
523- let bK = B((ba + "_JobsOnGoing"))
524- let bL = B((aH + "_PendingEarnings"))
525- let bM = B((aH + "_TotalEarnings"))
526- if ((Z == ba))
527- then if (bF)
528- then if ((bB == g))
510+@Callable(bo)
511+func chooseFreelancer (ag,aI) = {
512+ let Z = toBase58String(bo.callerPublicKey)
513+ let bC = af(ag)
514+ let bb = ai(ag)
515+ let bw = ak(ag)
516+ let bD = am(ag)
517+ let L = aq(ag)
518+ let S = as(ag)
519+ let bE = K(L)
520+ let aE = aH(ag, aI)
521+ let bK = ay(ag, aE)
522+ let bG = M(height, bw, bD)
523+ let bL = B((bb + "_JobsOnGoing"))
524+ let bM = B((aI + "_PendingEarnings"))
525+ let bN = B((aI + "_TotalEarnings"))
526+ if ((Z == bb))
527+ then if (bG)
528+ then if ((bC == g))
529529 then {
530- let bA = X(L, S)
531- let bE = ((S * 3) / 100)
532- ScriptResult(WriteSet([DataEntry((af + "_State"), i), DataEntry((L + "_Freezed"), bA)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), (S - bE), bD)]))
530+ let bB = X(L, S)
531+ let bF = ((S * 3) / 100)
532+ ScriptResult(WriteSet([DataEntry((ag + "_State"), i), DataEntry((L + "_Freezed"), bB)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bb)), (S - bF), bE)]))
533533 }
534- else if ((bB == h))
534+ else if ((bC == h))
535535 then {
536- let ay = av(af)
537- let bG = ax(af, ay)
538- let bH = (S - bG)
539- let bA = X(L, bH)
540- ScriptResult(WriteSet([DataEntry((af + "_State"), j), DataEntry((af + "_HiredFreelancer"), ay), DataEntry((af + "_Price"), bG), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsOnGoing"), (bK + 1)), DataEntry((aH + "_PendingEarnings"), (bL + bG)), DataEntry((aH + "_TotalEarnings"), (bM + bG))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), bH, bD)]))
536+ let az = aw(ag)
537+ let bH = ay(ag, az)
538+ let bI = (S - bH)
539+ let bB = X(L, bI)
540+ ScriptResult(WriteSet([DataEntry((ag + "_State"), j), DataEntry((ag + "_HiredFreelancer"), az), DataEntry((ag + "_Price"), bH), DataEntry((L + "_Freezed"), bB), DataEntry((bb + "_JobsOnGoing"), (bL + 1)), DataEntry((aI + "_PendingEarnings"), (bM + bH)), DataEntry((aI + "_TotalEarnings"), (bN + bH))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bb)), bI, bE)]))
541541 }
542542 else throw("Incorrect auction state")
543- else if (if ((bB == g))
543+ else if (if ((bC == g))
544544 then true
545- else (bB == h))
545+ else (bC == h))
546546 then {
547- let bH = (S - bJ)
548- let bA = X(L, bH)
549- ScriptResult(WriteSet([DataEntry((af + "_State"), j), DataEntry((af + "_HiredFreelancer"), aD), DataEntry((af + "_Price"), bJ), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsOnGoing"), (bK + 1)), DataEntry((aH + "_PendingEarnings"), (bL + bJ)), DataEntry((aH + "_TotalEarnings"), (bM + bJ))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), (bH + 1), bD)]))
547+ let bI = (S - bK)
548+ let bB = X(L, bI)
549+ ScriptResult(WriteSet([DataEntry((ag + "_State"), j), DataEntry((ag + "_HiredFreelancer"), aE), DataEntry((ag + "_Price"), bK), DataEntry((L + "_Freezed"), bB), DataEntry((bb + "_JobsOnGoing"), (bL + 1)), DataEntry((aI + "_PendingEarnings"), (bM + bK)), DataEntry((aI + "_TotalEarnings"), (bN + bK))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bb)), (bI + 1), bE)]))
550550 }
551551 else throw("Incorrect auction state")
552552 else throw("Only auction customer can choose a freelancer")
553553 }
554554
555555
556556
557-@Callable(bn)
558-func increaseExecutionTime (af,aJ) = {
559- let bN = toBase58String(bn.callerPublicKey)
560- let bB = ae(af)
561- let ba = ah(af)
562- let aK = an(af)
563- let bO = aI(aJ, aK)
564- if ((bN == ba))
565- then if (if (if ((bB == g))
557+@Callable(bo)
558+func increaseExecutionTime (ag,aK) = {
559+ let bO = toBase58String(bo.callerPublicKey)
560+ let bC = af(ag)
561+ let bb = ai(ag)
562+ let aL = ao(ag)
563+ let bP = aJ(aK, aL)
564+ if ((bO == bb))
565+ then if (if (if ((bC == g))
566566 then true
567- else (bB == h))
567+ else (bC == h))
568568 then true
569- else (bB == j))
570- then WriteSet([DataEntry((af + "_JobPerformance"), bO)])
569+ else (bC == j))
570+ then WriteSet([DataEntry((ag + "_JobPerformance"), bP)])
571571 else throw("Incorrect state")
572572 else throw("Only Client can increase execution time")
573573 }
574574
575575
576576
577-@Callable(bn)
578-func cancelAuction (af) = {
579- let Z = toBase58String(bn.callerPublicKey)
580- let bB = ae(af)
581- let ba = ah(af)
582- let L = ap(af)
583- let S = ar(af)
584- let bD = K(L)
585- let bE = ((S * 3) / 100)
586- let bP = (S - bE)
587- let bA = X(L, S)
588- if ((Z == ba))
589- then if ((bB == g))
590- then ScriptResult(WriteSet([DataEntry((af + "_State"), i), DataEntry((L + "_Freezed"), bA)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), bP, bD)]))
577+@Callable(bo)
578+func cancelAuction (ag) = {
579+ let Z = toBase58String(bo.callerPublicKey)
580+ let bC = af(ag)
581+ let bb = ai(ag)
582+ let L = aq(ag)
583+ let S = as(ag)
584+ let bE = K(L)
585+ let bF = ((S * 3) / 100)
586+ let bQ = (S - bF)
587+ let bB = X(L, S)
588+ if ((Z == bb))
589+ then if ((bC == g))
590+ then ScriptResult(WriteSet([DataEntry((ag + "_State"), i), DataEntry((L + "_Freezed"), bB)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bb)), bQ, bE)]))
591591 else throw("Auction can be canceled only by auction owner.")
592592 else throw("Only Client can cancel auction")
593593 }
594594
595595
596596
597-@Callable(bn)
598-func openDispute (af) = {
599- let bN = toBase58String(bn.callerPublicKey)
600- let bB = ae(af)
601- let ba = ah(af)
602- let aN = at(af)
603- let bQ = B((ba + "_JobsInDispute"))
604- if (if ((bB == j))
597+@Callable(bo)
598+func openDispute (ag) = {
599+ let bO = toBase58String(bo.callerPublicKey)
600+ let bC = af(ag)
601+ let bb = ai(ag)
602+ let aO = au(ag)
603+ let bR = B((bb + "_JobsInDispute"))
604+ if (if ((bC == j))
605605 then true
606- else (bB == k))
607- then if (if ((bN == ba))
606+ else (bC == k))
607+ then if (if ((bO == bb))
608608 then true
609- else (bN == aN))
610- then WriteSet([DataEntry((af + "_State"), m), DataEntry((af + "_DisputeVotes"), 0), DataEntry((ba + "_JobsInDispute"), (bQ + 1))])
609+ else (bO == aO))
610+ then WriteSet([DataEntry((ag + "_State"), m), DataEntry((ag + "_DisputeVotes"), 0), DataEntry((bb + "_JobsInDispute"), (bR + 1))])
611611 else throw("Only Client and Freelancer can open dispute")
612612 else throw("Incorrect auction state for dispute opening")
613613 }
614614
615615
616616
617-@Callable(bn)
618-func voteDispute (af,aS) = {
619- let Z = toBase58String(bn.callerPublicKey)
620- let bB = ae(af)
621- let ba = ah(af)
622- let L = ap(af)
623- let S = ar(af)
624- let aN = at(af)
625- let bR = ((S * 3) / 100)
626- let bD = K(L)
627- let aR = aP(Z)
628- let bS = aQ(af, aR, aS)
629- let bT = aW(af)
630- let bQ = B((ba + "_JobsInDispute"))
631- let bL = B((aN + "_PendingEarnings"))
632- let bM = B((aN + "_TotalEarnings"))
633- if ((bB == m))
634- then if ((bT == 4))
617+@Callable(bo)
618+func voteDispute (ag,aT) = {
619+ let Z = toBase58String(bo.callerPublicKey)
620+ let bC = af(ag)
621+ let bb = ai(ag)
622+ let L = aq(ag)
623+ let S = as(ag)
624+ let aO = au(ag)
625+ let bS = ((S * 3) / 100)
626+ let bE = K(L)
627+ let aS = aQ(Z)
628+ let bT = aR(ag, aS, aT)
629+ let bU = aX(ag)
630+ let bR = B((bb + "_JobsInDispute"))
631+ let bM = B((aO + "_PendingEarnings"))
632+ let bN = B((aO + "_TotalEarnings"))
633+ if ((bC == m))
634+ then if ((bU == 4))
635635 then {
636- let bU = aY(af, bS, ba, aN)
637- let bA = X(L, S)
638- if ((bU == ba))
636+ let bV = aZ(ag, bT, bb, aO)
637+ let bB = X(L, S)
638+ if ((bV == bb))
639639 then {
640- let bV = (S - bR)
641- ScriptResult(WriteSet([DataEntry((af + "_DisputeVotes"), (bT + 1)), DataEntry((af + "_State"), n), DataEntry(((af + "_DiputeVote_") + aR), bS), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsInDispute"), (bQ - 1)), DataEntry((aN + "_PendingEarnings"), (bL - S)), DataEntry((aN + "_TotalEarnings"), (bM - S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bU)), bV, bD)]))
640+ let bW = (S - bS)
641+ ScriptResult(WriteSet([DataEntry((ag + "_DisputeVotes"), (bU + 1)), DataEntry((ag + "_State"), n), DataEntry(((ag + "_DiputeVote_") + aS), bT), DataEntry((L + "_Freezed"), bB), DataEntry((bb + "_JobsInDispute"), (bR - 1)), DataEntry((aO + "_PendingEarnings"), (bM - S)), DataEntry((aO + "_TotalEarnings"), (bN - S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bV)), bW, bE)]))
642642 }
643643 else {
644- let bV = (S - (bR * 2))
645- ScriptResult(WriteSet([DataEntry((af + "_DisputeVotes"), (bT + 1)), DataEntry((af + "_State"), n), DataEntry(((af + "_DiputeVote_") + aR), bS), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsInDispute"), (bQ - 1)), DataEntry((aN + "_PendingEarnings"), (bL - S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bU)), bV, bD)]))
644+ let bW = (S - (bS * 2))
645+ ScriptResult(WriteSet([DataEntry((ag + "_DisputeVotes"), (bU + 1)), DataEntry((ag + "_State"), n), DataEntry(((ag + "_DiputeVote_") + aS), bT), DataEntry((L + "_Freezed"), bB), DataEntry((bb + "_JobsInDispute"), (bR - 1)), DataEntry((aO + "_PendingEarnings"), (bM - S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bV)), bW, bE)]))
646646 }
647647 }
648- else WriteSet([DataEntry((af + "_DisputeVotes"), (bT + 1)), DataEntry(((af + "_DiputeVote_") + aR), bS)])
648+ else WriteSet([DataEntry((ag + "_DisputeVotes"), (bU + 1)), DataEntry(((ag + "_DiputeVote_") + aS), bT)])
649649 else throw(("Incorrect state. Must be: " + m))
650650 }
651651
652652
653653
654-@Callable(bn)
655-func workHandOver (af) = {
656- let Z = toBase58String(bn.callerPublicKey)
657- let bB = ae(af)
658- let ba = ah(af)
659- let bv = aj(af)
660- let bC = al(af)
661- let aK = an(af)
662- let aN = at(af)
663- let bW = ((height - bv) > aK)
664- let bQ = B((ba + "_JobsInDispute"))
665- if ((Z == aN))
666- then if ((bB == j))
667- then if (bW)
668- then WriteSet([DataEntry((af + "_State"), m), DataEntry((af + "_DisputeVotes"), "0"), DataEntry((ba + "_JobInDispute"), (bQ + 1))])
669- else WriteSet([DataEntry((af + "_State"), k)])
654+@Callable(bo)
655+func workHandOver (ag) = {
656+ let Z = toBase58String(bo.callerPublicKey)
657+ let bC = af(ag)
658+ let bb = ai(ag)
659+ let bw = ak(ag)
660+ let bD = am(ag)
661+ let aL = ao(ag)
662+ let aO = au(ag)
663+ let bX = ((height - bw) > aL)
664+ let bR = B((bb + "_JobsInDispute"))
665+ if ((Z == aO))
666+ then if ((bC == j))
667+ then if (bX)
668+ then WriteSet([DataEntry((ag + "_State"), m), DataEntry((ag + "_DisputeVotes"), "0"), DataEntry((bb + "_JobInDispute"), (bR + 1))])
669+ else WriteSet([DataEntry((ag + "_State"), k)])
670670 else throw("Auction state is incorrect")
671671 else throw("Only a freelancer can indicate that the work is done")
672672 }
673673
674674
675675
676-@Callable(bn)
677-func acceptWork (af) = {
678- let Z = toBase58String(bn.callerPublicKey)
679- let bB = ae(af)
680- let ba = ah(af)
681- let bv = aj(af)
682- let bC = al(af)
683- let L = ap(af)
684- let S = ar(af)
685- let aN = at(af)
686- let bK = B((ba + "_JobsOnGoing"))
687- let bL = B((aN + "_PendingEarnings"))
688- let bX = B((aN + "_PaidEarnings"))
689- let bE = ((S * 3) / 100)
690- let bP = (S - (bE * 2))
691- let bD = K(L)
692- let bA = X(L, S)
693- let bY = aM(aN)
694- if ((Z == ba))
695- then if ((bB == k))
696- then ScriptResult(WriteSet([DataEntry((af + "_State"), l), DataEntry((aN + "_Rating"), (bY + 1)), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsOnGoing"), (bK - 1)), DataEntry((aN + "_PendingEarnings"), (bL - S)), DataEntry((aN + "_PaidEarnings"), (bX + S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aN)), bP, bD)]))
676+@Callable(bo)
677+func acceptWork (ag) = {
678+ let Z = toBase58String(bo.callerPublicKey)
679+ let bC = af(ag)
680+ let bb = ai(ag)
681+ let bw = ak(ag)
682+ let bD = am(ag)
683+ let L = aq(ag)
684+ let S = as(ag)
685+ let aO = au(ag)
686+ let bL = B((bb + "_JobsOnGoing"))
687+ let bM = B((aO + "_PendingEarnings"))
688+ let bY = B((aO + "_PaidEarnings"))
689+ let bF = ((S * 3) / 100)
690+ let bQ = (S - (bF * 2))
691+ let bE = K(L)
692+ let bB = X(L, S)
693+ let bZ = aN(aO)
694+ if ((Z == bb))
695+ then if ((bC == k))
696+ then ScriptResult(WriteSet([DataEntry((ag + "_State"), l), DataEntry((aO + "_Rating"), (bZ + 1)), DataEntry((L + "_Freezed"), bB), DataEntry((bb + "_JobsOnGoing"), (bL - 1)), DataEntry((aO + "_PendingEarnings"), (bM - S)), DataEntry((aO + "_PaidEarnings"), (bY + S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aO)), bQ, bE)]))
697697 else throw(("Incorrect state. Must be: " + k))
698698 else throw("Only auction customer can use this function")
699699 }
700700
701701
702-@Verifier(bZ)
703-func ca () = if (sigVerify(bZ.bodyBytes, bZ.proofs[0], bZ.senderPublicKey))
702+@Verifier(ca)
703+func cb () = if (sigVerify(ca.bodyBytes, ca.proofs[0], ca.senderPublicKey))
704704 then {
705- let E = bZ
705+ let E = ca
706706 if ($isInstanceOf(E, "TransferTransaction"))
707707 then {
708- let cb = E
709- let cc = I(cb.assetId)
710- let cd = getInteger(this, (cc + "_Reserved"))
711- let ce = {
712- let cf = cd
713- if ($isInstanceOf(cf, "Int"))
708+ let cc = E
709+ let cd = I(cc.assetId)
710+ let ce = getInteger(this, (cd + "_Reserved"))
711+ let cf = {
712+ let cg = ce
713+ if ($isInstanceOf(cg, "Int"))
714714 then {
715- let F = cf
715+ let F = cg
716716 F
717717 }
718718 else 0
719719 }
720- let cg = (assetBalance(this, cb.assetId) - ce)
721- (cg >= cb.amount)
720+ let ch = (assetBalance(this, cc.assetId) - cf)
721+ (ch >= cc.amount)
722722 }
723723 else if ($isInstanceOf(E, "SetScriptTransaction"))
724724 then {
725- let ch = E
725+ let ci = E
726726 true
727727 }
728728 else false
729729 }
730730 else false
731731

github/deemru/w8io/169f3d6 
204.22 ms