tx · 59JRXajgPL2a7ZCqxiKBRmfTaAfXNV539Acg4N1qWgGH

3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2:  -0.01500000 Waves

2019.10.14 13:48 [719504] smart account 3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2 > SELF 0.00000000 Waves

{ "type": 13, "id": "59JRXajgPL2a7ZCqxiKBRmfTaAfXNV539Acg4N1qWgGH", "fee": 1500000, "feeAssetId": null, "timestamp": 1571050088414, "version": 1, "sender": "3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2", "senderPublicKey": "8y2Uc9uYf5gRD6Dzm1aC73zYe3LZvtVDUVAnAhNdN2mg", "proofs": [ "bA4wdF2TFZhNG7Ux1mFSMHYCajm9ai6aMLkP7riJXhbgf3T75336NsxGdHGqEbt1onqkDNrME44Eemf6BbKyrGX" ], "script": "base64:AAIDAAAAAAAAAD8IARIDCgEIEgMKAQgSBQoDAQEIEgQKAggBEgQKAggIEgQKAggBEgMKAQgSAwoBCBIECgIICBIDCgEIEgMKAQgAAAAxAAAAAANkYXkAAAAAAAAABaAAAAAABVdBVkVTBQAAAAR1bml0AAAAAAR3QlRDAQAAACBs+mr/xe2qjAt/tSqT0qIML4KC23R6BIxT+/0TH3Og/wAAAAAEd0VVUgEAAAAg7BZhBF97kSFBBjs38+fX1Pjz08YOqoCX85C/0PoVupkAAAAABHdVU0QBAAAAIN0cvQHwz3UFMHgHsqi2OJjRRd1cH7ozWuNAb/pmWXD9AAAAAAlhdWN0VG9rZW4BAAAAAQAAAAAACXN0YXRlT3BlbgIAAAAGT3BlbmVkAAAAAA5zdGF0ZVN1Z2dlc3RlZAIAAAAJU3VnZ2VzdGVkAAAAAAtzdGF0ZUNhbmNlbAIAAAAIQ2FuY2VsZWQAAAAAD3N0YXRlSW5Qcm9ncmVzcwIAAAAKSW5Qcm9ncmVzcwAAAAARc3RhdGVXYWl0NENvbmZpcm0CAAAAE1dhaXRGb3JDb25maXJtYXRpb24AAAAADXN0YXRlQ29tcGxldGUCAAAACUNvbXBsZXRlZAAAAAAMc3RhdGVEaXNwdXRlAgAAAAdEaXNwdXRlAAAAABRzdGF0ZURpc3B1dGVSZXNvbHZlZAIAAAAPRGlzcHV0ZVJlc29sdmVkAAAAAAZjbGllbnQCAAAAAkNMAAAAAApmcmVlbGFuY2VyAgAAAAJGTAAAAAALYW1iYXNzYWRvcjECAAAALEZuZUNKcU01QlAyZUF1eXRlTWl1RUVIWUFMckU0YXhoRWZjcEhWR2JkcjVzAAAAAAthbWJhc3NhZG9yMgIAAAAsNlFBTWRzc2IxR0pqcFFWUVFjbng4ZktVOFdodGNGOVpzUWhpZmRUaEFFSzgAAAAAC2FtYmFzc2Fkb3IzAgAAACwyaXR1d1c3RFNSc0xQM1ZjYm5wcjk4UVVRTUdGUldLbXlZUEZxc1VLUkRvUAAAAAALYW1iYXNzYWRvcjQCAAAALEFOc1BRb2NFRVN5TGIzeVFxazJwd0Nkb0s3UEpReExvWlZwWXZzbTNTeFVHAAAAAAthbWJhc3NhZG9yNQIAAAAsMTNWaXh3UWluMU16WkN5WTY5TlNXTVNCTkVWMjdSemMxNTlvN3VaWFI5VlMBAAAABmdldEludAAAAAEAAAADa2V5BAAAABB2YWx1ZUpvYnNPbkdvaW5nCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQQAAAAHJG1hdGNoMAUAAAAQdmFsdWVKb2JzT25Hb2luZwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAABJBc3NldElkVG9Bc3NldE5hbWUAAAABAAAACnBtdEFzc2V0SWQDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAApwbXRBc3NldElkAgAAAAVXQVZFUwMJAAAAAAAAAgUAAAAKcG10QXNzZXRJZAUAAAAEd0JUQwIAAAADQlRDAwkAAAAAAAACBQAAAApwbXRBc3NldElkBQAAAAR3RVVSAgAAAANFVVIDCQAAAAAAAAIFAAAACnBtdEFzc2V0SWQFAAAABHdVU0QCAAAAA1VTRAMJAAAAAAAAAgUAAAAKcG10QXNzZXRJZAUAAAAJYXVjdFRva2VuAgAAAARBVUNUCQAAAgAAAAECAAAAFEFzc2V0SWQgaXMgaW5jb3JyZWN0AQAAABJBc3NldE5hbWVUb0Fzc2V0SWQAAAABAAAAEGF1Y3Rpb25Bc3NldE5hbWUDCQAAAAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAABVdBVkVTBQAAAAVXQVZFUwMJAAAAAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAADQlRDBQAAAAR3QlRDAwkAAAAAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAANFVVIFAAAABHdFVVIDCQAAAAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAAA1VTRAUAAAAEd1VTRAMJAAAAAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAEQVVDVAUAAAAJYXVjdFRva2VuCQAAAgAAAAECAAAAEkluY29ycmVjdCBBc3NldCBJZAEAAAAJdGltZUNoZWNrAAAAAwAAAAtjdXJyZW50VGltZQAAAAlzdGFydFRpbWUAAAAOZXhwaXJhdGlvblRpbWUJAABmAAAAAgkAAGUAAAACBQAAAAtjdXJyZW50VGltZQUAAAAJc3RhcnRUaW1lBQAAAA5leHBpcmF0aW9uVGltZQEAAAAOYmlkQW1vdW50Q2hlY2sAAAACAAAABmFtb3VudAAAAAxhdWN0aW9uUHJpY2UDCQAAZgAAAAIFAAAABmFtb3VudAUAAAAMYXVjdGlvblByaWNlCQAAAgAAAAECAAAAM0JpZCBhbW91bnQgbXVzdCBiZSBsb3dlciBvciBlcXVhbCB0aGFuIGF1Y3Rpb25QcmljZQUAAAAGYW1vdW50AQAAABZpbmNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgAAAAxwbXRBc3NldE5hbWUAAAAMYXVjdGlvblByaWNlBAAAAA9rZXlGcmVlemVkRnVuZHMJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAxwbXRBc3NldE5hbWUCAAAACF9GcmVlemVkBAAAABVjdXJyZW50RnJlZXplZEJhbGFuY2UEAAAAByRtYXRjaDAFAAAAD2tleUZyZWV6ZWRGdW5kcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAACQAAZAAAAAIFAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQUAAAAMYXVjdGlvblByaWNlAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgAAAAxwbXRBc3NldE5hbWUAAAAMYXVjdGlvblByaWNlBAAAAA9rZXlGcmVlemVkRnVuZHMJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAxwbXRBc3NldE5hbWUCAAAACF9GcmVlemVkBAAAABVjdXJyZW50RnJlZXplZEJhbGFuY2UEAAAAByRtYXRjaDAFAAAAD2tleUZyZWV6ZWRGdW5kcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAFhCQAAZQAAAAIFAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQUAAAAMYXVjdGlvblByaWNlAwkAAGcAAAACBQAAAAFhAAAAAAAAAAAABQAAAAFhCQAAAgAAAAECAAAAJkZyZWV6ZWQgYW1vdW50IGNvdWxkbid0IGJlIGxlc3MgdGhhbiAwAQAAABBjbGllbnRSZWdpc3RlcmVkAAAAAQAAAAljYWxsZXJQdWIEAAAAFmZyZWVsYW5jZXJJc1JlZ2lzdGVyZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAljYWxsZXJQdWICAAAAC19GcmVlbGFuY2VyBAAAAAckbWF0Y2gwBQAAABZmcmVlbGFuY2VySXNSZWdpc3RlcmVkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAACWNhbGxlclB1YgkAAAIAAAABAgAAACNPbmx5IHJlZ2lzdGVyZWQgdXNlcnMgY2FuIG1ha2UgYmV0cwEAAAAUZnJlZWxhbmNlclJlZ2lzdGVyZWQAAAABAAAACWNhbGxlclB1YgQAAAAWZnJlZWxhbmNlcklzUmVnaXN0ZXJlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWNhbGxlclB1YgIAAAALX0ZyZWVsYW5jZXIEAAAAByRtYXRjaDAFAAAAFmZyZWVsYW5jZXJJc1JlZ2lzdGVyZWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAAJY2FsbGVyUHViCQAAAgAAAAECAAAAI09ubHkgcmVnaXN0ZXJlZCB1c2VycyBjYW4gbWFrZSBiZXRzAQAAABdjcmVhdGVBdWN0aW9uUHJpY2VDaGVjawAAAAEAAAAJcG10QW1vdW50AwkAAGYAAAACBQAAAAlwbXRBbW91bnQAAAAAAAAAAAAFAAAACXBtdEFtb3VudAkAAAIAAAABAgAAABxBbW91bnQgbXVzdCBiZSBoaWdoZXIgdGhlbiAwAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABAAAACWF1Y3Rpb25JZAQAAAAKdmFsdWVTdGF0ZQkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBAAAAAckbWF0Y2gwBQAAAAp2YWx1ZVN0YXRlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAbQXVjdGlvbiBTdGF0ZSB3YXMgbm90IGZvdW5kAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQAAAAlhdWN0aW9uSWQEAAAADnZhbHVlQ2xpZW50UHViCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA5fQXVjdGlvbkNsaWVudAQAAAAHJG1hdGNoMAUAAAAOdmFsdWVDbGllbnRQdWIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAABxBdWN0aW9uIENsaWVudCB3YXMgbm90IGZvdW5kAQAAABNnZXRBdWN0aW9uU3RhcnRUaW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAAEXZhbHVlQXVjdGlvblN0YXJ0CQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fQXVjdGlvblN0YXJ0BAAAAAckbWF0Y2gwBQAAABF2YWx1ZUF1Y3Rpb25TdGFydAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAIEF1Y3Rpb24gU3RhcnQgdGltZSB3YXMgbm90IGZvdW5kAQAAABZnZXRBdWN0aW9uRHVyYXRpb25UaW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAAFHZhbHVlYXVjdGlvbkR1cmF0aW9uCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfQXVjdGlvbkR1cmF0aW9uBAAAAAckbWF0Y2gwBQAAABR2YWx1ZWF1Y3Rpb25EdXJhdGlvbgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAI0F1Y3Rpb24gZHVyYXRpb24gdGltZSB3YXMgbm90IGZvdW5kAQAAABxnZXRBdWN0aW9uSm9iUGVyZm9ybWFuY2VUaW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAAF3ZhbHVlQmxvY2tzRm9yRXhlY3V0aW9uCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA9fSm9iUGVyZm9ybWFuY2UEAAAAByRtYXRjaDAFAAAAF3ZhbHVlQmxvY2tzRm9yRXhlY3V0aW9uAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAqQXVjdGlvbiBqb2IgcGVyZm9ybWFuY2UgdGltZSB3YXMgbm90IGZvdW5kAQAAABNnZXRBdWN0aW9uQXNzZXROYW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAADnZhbHVlQXNzZXROYW1lCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAApfQXNzZXROYW1lBAAAAAckbWF0Y2gwBQAAAA52YWx1ZUFzc2V0TmFtZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAIEF1Y3Rpb24gYXNzZXQgbmFtZSB3YXMgbm90IGZvdW5kAQAAAA9nZXRBdWN0aW9uUHJpY2UAAAABAAAACWF1Y3Rpb25JZAQAAAAKdmFsdWVQcmljZQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBAAAAAckbWF0Y2gwBQAAAAp2YWx1ZVByaWNlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAbQXVjdGlvbiBwcmljZSB3YXMgbm90IGZvdW5kAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEAAAAJYXVjdGlvbklkBAAAAAt2YWx1ZUNsaWVudAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0hpcmVkRnJlZWxhbmNlcgQAAAAHJG1hdGNoMAUAAAALdmFsdWVDbGllbnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAABxBdWN0aW9uIENsaWVudCB3YXMgbm90IGZvdW5kAQAAABZnZXRBdWN0aW9uTG93ZXN0QmlkZGVyAAAAAQAAAAlhdWN0aW9uSWQEAAAAEXZhbHVlTG93ZXN0QmlkZGVyCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfTG93ZXN0QmlkZGVyUHViBAAAAAckbWF0Y2gwBQAAABF2YWx1ZUxvd2VzdEJpZGRlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAI0F1Y3Rpb24gbG93ZXN0IGJpZGRlciB3YXMgbm90IGZvdW5kAQAAAAZnZXRCaWQAAAACAAAACWF1Y3Rpb25JZAAAABNhdWN0aW9uTG93ZXN0QmlkZGVyBAAAABR2YWx1ZU5ld0F1Y3Rpb25QcmljZQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfQmlkXwUAAAATYXVjdGlvbkxvd2VzdEJpZGRlcgQAAAAHJG1hdGNoMAUAAAAUdmFsdWVOZXdBdWN0aW9uUHJpY2UDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIGxvd2VzdCBiaWQgd2FzIG5vdCBmb3VuZAEAAAAVZGVmaW5lTmV3TG93ZXN0QmlkZGVyAAAABAAAAAlhdWN0aW9uSWQAAAAWY3VycmVudExvd2VzdEJpZGRlclB1YgAAAAliaWRBbW91bnQAAAANbmV3RnJlZWxhbmNlcgQAAAAVdmFsdWVDdXJyZW50TG93ZXN0QmlkCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAABZjdXJyZW50TG93ZXN0QmlkZGVyUHViBAAAABBjdXJyZW50TG93ZXN0QmlkBAAAAAckbWF0Y2gwBQAAABV2YWx1ZUN1cnJlbnRMb3dlc3RCaWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIGxvd2VzdCBiaWQgd2FzIG5vdCBmb3VuZAMJAABmAAAAAgUAAAAQY3VycmVudExvd2VzdEJpZAUAAAAJYmlkQW1vdW50BQAAAA1uZXdGcmVlbGFuY2VyBQAAABZjdXJyZW50TG93ZXN0QmlkZGVyUHViAQAAABZjaG9vc2VkRnJlZWxhbmNlckNoZWNrAAAAAgAAAAlhdWN0aW9uSWQAAAANZnJlZWxhbmNlclB1YgQAAAANbmV3RnJlZWxhbmNlcgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfQmlkXwUAAAANZnJlZWxhbmNlclB1YgQAAAAHJG1hdGNoMAUAAAANbmV3RnJlZWxhbmNlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAA1mcmVlbGFuY2VyUHViCQAAAgAAAAECAAAAHkVycm9yOiBJbmNvcnJlY3QgZnJlZWxhbmNlclB1YgEAAAAVbmV3RXhlY3V0aW9uVGltZUNoZWNrAAAAAgAAAA1leGVjdXRpb25EYXlzAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24EAAAAHG5ld0F1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAABoAAAAAgUAAAANZXhlY3V0aW9uRGF5cwUAAAADZGF5AwkAAGYAAAACBQAAABxuZXdBdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uBQAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uBQAAABxuZXdBdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQAAAgAAAAECAAAAOE5ldyBleGVjdXRpb24gdGltZSBtdXN0IG1vcmUgdGhhbiBjdXJyZW50IGV4ZWN1dGlvbiB0aW1lAQAAAAlnZXRSYXRpbmcAAAABAAAAEWF1Y3Rpb25GcmVlbGFuY2VyBAAAAAt2YWx1ZVJhdGluZwkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAAAdfUmF0aW5nBAAAAAckbWF0Y2gwBQAAAAt2YWx1ZVJhdGluZwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAABJjYWxsZXJJc0FtYmFzc2Fkb3IAAAABAAAACWNhbGxlclB1YgMDAwMDCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjEGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjIGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjMGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjQGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjUFAAAACWNhbGxlclB1YgkAAAIAAAABAgAAAC1Pbmx5IGRlZmluZWQgYW1iYXNzYWRvcnMgY2FuIHZvdGUgaW4gZGlzcHV0ZXMBAAAAE2FtYmFzc2Fkb3JWb3RlQ2hlY2sAAAADAAAACWF1Y3Rpb25JZAAAAA1hbWJhc3NhZG9yUHViAAAABHZvdGUEAAAACGtleVZvdGVyCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAxfRGlwdXRlVm90ZV8FAAAADWFtYmFzc2Fkb3JQdWIEAAAACnZhbHVlVm90ZXIJAAQdAAAAAgUAAAAEdGhpcwUAAAAIa2V5Vm90ZXIEAAAAD2FtYmFzc2Fkb3JWb3RlZAQAAAAHJG1hdGNoMAUAAAAKdmFsdWVWb3RlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBgcDBQAAAA9hbWJhc3NhZG9yVm90ZWQJAAACAAAAAQIAAAAZQW1iYXNzYWRvciB2b3RlZCBhbHJlYWR5IAMDCQAAAAAAAAIFAAAABHZvdGUFAAAABmNsaWVudAYJAAAAAAAAAgUAAAAEdm90ZQUAAAAKZnJlZWxhbmNlcgUAAAAEdm90ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABxWb3RlIGlzIGluY29ycmVjdC4gTXVzdCBiZTogBQAAAAZjbGllbnQCAAAABCBvciAFAAAACmZyZWVsYW5jZXIBAAAADmdldFZvdGVzTnVtYmVyAAAAAQAAAAlhdWN0aW9uSWQEAAAAEHZhbHVlVm90ZXNOdW1iZXIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9EaXNwdXRlVm90ZXMEAAAAByRtYXRjaDAFAAAAEHZhbHVlVm90ZXNOdW1iZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAABlWb3Rlc051bWJlciB3YXMgbm90IGZvdW5kAQAAABNkZWZpbmVEaXNwdXRlV2lubmVyAAAABAAAAAlhdWN0aW9uSWQAAAAHbmV3Vm90ZQAAAA1hdWN0aW9uQ2xpZW50AAAAEWF1Y3Rpb25GcmVlbGFuY2VyBAAAAA9hbWJhc3NhZG9yMVZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAAAthbWJhc3NhZG9yMQQAAAAPYW1iYXNzYWRvcjJWb3RlCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAALYW1iYXNzYWRvcjIEAAAAD2FtYmFzc2Fkb3IzVm90ZQkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAxfRGlwdXRlVm90ZV8FAAAAC2FtYmFzc2Fkb3IzBAAAAA9hbWJhc3NhZG9yNFZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAAAthbWJhc3NhZG9yNAQAAAAPYW1iYXNzYWRvcjVWb3RlCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAALYW1iYXNzYWRvcjUEAAAAAnYxAwkAAAAAAAACBQAAAA9hbWJhc3NhZG9yMVZvdGUFAAAABmNsaWVudAAAAAAAAAAAAQAAAAAAAAAAAAQAAAACdjIDCQAAAAAAAAIFAAAAD2FtYmFzc2Fkb3IyVm90ZQUAAAAGY2xpZW50AAAAAAAAAAABAAAAAAAAAAAABAAAAAJ2MwMJAAAAAAAAAgUAAAAPYW1iYXNzYWRvcjNWb3RlBQAAAAZjbGllbnQAAAAAAAAAAAEAAAAAAAAAAAAEAAAAAnY0AwkAAAAAAAACBQAAAA9hbWJhc3NhZG9yNFZvdGUFAAAABmNsaWVudAAAAAAAAAAAAQAAAAAAAAAAAAQAAAACdjUDCQAAAAAAAAIFAAAAD2FtYmFzc2Fkb3I1Vm90ZQUAAAAGY2xpZW50AAAAAAAAAAABAAAAAAAAAAAABAAAAAtjdXJyZW50Vm90ZQMJAAAAAAAAAgUAAAAHbmV3Vm90ZQUAAAAGY2xpZW50AAAAAAAAAAABAAAAAAAAAAAABAAAAA52b3Rlc0ZvckNsaWVudAkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAAAnYxBQAAAAJ2MgUAAAACdjMFAAAAAnY0BQAAAAJ2NQUAAAALY3VycmVudFZvdGUDCQAAZgAAAAIFAAAADnZvdGVzRm9yQ2xpZW50AAAAAAAAAAACBQAAAA1hdWN0aW9uQ2xpZW50BQAAABFhdWN0aW9uRnJlZWxhbmNlcgAAAAsAAAABaQEAAAAQZnJlZWxhbmNlclNpZ25VcAAAAAEAAAAEaW5mbwQAAAANdXNlclB1YmxpY0tleQkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAEWFscmVhZHlSZWdpc3RlcmVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAALX0ZyZWVsYW5jZXIDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAARYWxyZWFkeVJlZ2lzdGVyZWQJAAACAAAAAQIAAAAXVXNlciBhbHJlYWR5IHJlZ2lzdGVyZWQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAALX0ZyZWVsYW5jZXIFAAAABGluZm8JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAAQX1BlbmRpbmdFYXJuaW5ncwAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAA1fUGFpZEVhcm5pbmdzAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAADl9Ub3RhbEVhcm5pbmdzAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAADF9Kb2JzUGVuZGluZwAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAA5fSm9ic0NvbXBsZXRlZAAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAApfSm9ic1RvdGFsAAAAAAAAAAAABQAAAANuaWwAAAABaQEAAAAMY2xpZW50U2lnblVwAAAAAQAAAARpbmZvBAAAAA11c2VyUHVibGljS2V5CQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAARYWxyZWFkeVJlZ2lzdGVyZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAAdfQ2xpZW50AwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAEWFscmVhZHlSZWdpc3RlcmVkCQAAAgAAAAECAAAAF1VzZXIgYWxyZWFkeSByZWdpc3RlcmVkCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAAB19DbGllbnQFAAAABGluZm8JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAAMX0pvYnNDcmVhdGVkAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAADF9Kb2JzT25Hb2luZwAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAA1fSm9iSW5EaXNwdXRlAAAAAAAAAAAABQAAAANuaWwAAAABaQEAAAANY3JlYXRlQXVjdGlvbgAAAAMAAAAQam9iRXhlY3V0aW9uRGF5cwAAABNhdWN0aW9uRHVyYXRpb25EYXlzAAAAC2F1Y3Rpb25JbmZvBAAAAAljYWxsZXJQdWIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAlhdWN0aW9uSWQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAEGNsaWVudFJlZ2lzdGVyZWQAAAABBQAAAAljYWxsZXJQdWIEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAAlwbXRBbW91bnQIBQAAAANwbXQAAAAGYW1vdW50BAAAAAxhdWN0aW9uUHJpY2UJAQAAABdjcmVhdGVBdWN0aW9uUHJpY2VDaGVjawAAAAEFAAAACXBtdEFtb3VudAQAAAAMYXVjdGlvblN0YXJ0BQAAAAZoZWlnaHQEAAAAFWF1Y3Rpb25EdXJhdGlvbkJsb2NrcwkAAGgAAAACBQAAABNhdWN0aW9uRHVyYXRpb25EYXlzBQAAAANkYXkEAAAAEmJsb2Nrc0ZvckV4ZWN1dGlvbgkAAGgAAAACBQAAABBqb2JFeGVjdXRpb25EYXlzBQAAAANkYXkEAAAADHBtdEFzc2V0TmFtZQkBAAAAEkFzc2V0SWRUb0Fzc2V0TmFtZQAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAALam9ic0NyZWF0ZWQJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADF9Kb2JzQ3JlYXRlZAQAAAARbmV3RnJlZXplZEJhbGFuY2UJAQAAABZpbmNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgUAAAAMcG10QXNzZXROYW1lBQAAAAxhdWN0aW9uUHJpY2UJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAACXN0YXRlT3BlbgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9JbmZvBQAAAAthdWN0aW9uSW5mbwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADl9BdWN0aW9uQ2xpZW50BQAAAA1hdWN0aW9uQ2xpZW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0F1Y3Rpb25TdGFydAUAAAAMYXVjdGlvblN0YXJ0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0F1Y3Rpb25EdXJhdGlvbgUAAAAVYXVjdGlvbkR1cmF0aW9uQmxvY2tzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAPX0pvYlBlcmZvcm1hbmNlBQAAABJibG9ja3NGb3JFeGVjdXRpb24JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAApfQXNzZXROYW1lBQAAAAxwbXRBc3NldE5hbWUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfUHJpY2UFAAAADGF1Y3Rpb25QcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAxwbXRBc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAAxfSm9ic0NyZWF0ZWQJAABkAAAAAgUAAAALam9ic0NyZWF0ZWQAAAAAAAAAAAEFAAAAA25pbAAAAAFpAQAAAAdtYWtlQmlkAAAAAgAAAAlhdWN0aW9uSWQAAAAGYW1vdW50BAAAAAljYWxsZXJQdWIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhdWN0aW9uU3RhdGUJAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABBQAAAAlhdWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uU3RhcnQJAQAAABNnZXRBdWN0aW9uU3RhcnRUaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAA9hdWN0aW9uRHVyYXRpb24JAQAAABZnZXRBdWN0aW9uRHVyYXRpb25UaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQEAAAAcZ2V0QXVjdGlvbkpvYlBlcmZvcm1hbmNlVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0TmFtZQkBAAAAE2dldEF1Y3Rpb25Bc3NldE5hbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25QcmljZQkBAAAAD2dldEF1Y3Rpb25QcmljZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEkFzc2V0TmFtZVRvQXNzZXRJZAAAAAEFAAAAEGF1Y3Rpb25Bc3NldE5hbWUEAAAADW5ld0ZyZWVsYW5jZXIJAQAAABRmcmVlbGFuY2VyUmVnaXN0ZXJlZAAAAAEFAAAACWNhbGxlclB1YgQAAAAOZEFwcENvbW1pc3Npb24JAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQQAAAAJYmlkQW1vdW50CQEAAAAOYmlkQW1vdW50Q2hlY2sAAAACBQAAAAZhbW91bnQFAAAADGF1Y3Rpb25QcmljZQQAAAARYXVjdGlvblRpbWVpc092ZXIJAQAAAAl0aW1lQ2hlY2sAAAADBQAAAAZoZWlnaHQFAAAADGF1Y3Rpb25TdGFydAUAAAAPYXVjdGlvbkR1cmF0aW9uAwUAAAARYXVjdGlvblRpbWVpc092ZXIDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAJc3RhdGVPcGVuCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAALc3RhdGVDYW5jZWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABBQAAAA1hdWN0aW9uQ2xpZW50CQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAAOZEFwcENvbW1pc3Npb24FAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAA5zdGF0ZVN1Z2dlc3RlZAQAAAATYXVjdGlvbkxvd2VzdEJpZGRlcgkBAAAAFmdldEF1Y3Rpb25Mb3dlc3RCaWRkZXIAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Mb3dlc3RCaWQJAQAAAAZnZXRCaWQAAAACBQAAAAlhdWN0aW9uSWQFAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIEAAAAEGFtb3VudERpZmZlcmVuY2UJAABlAAAAAgkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAAEGF1Y3Rpb25Mb3dlc3RCaWQFAAAADmRBcHBDb21taXNzaW9uCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAPc3RhdGVJblByb2dyZXNzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0hpcmVkRnJlZWxhbmNlcgUAAAATYXVjdGlvbkxvd2VzdEJpZGRlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9QcmljZQUAAAAQYXVjdGlvbkxvd2VzdEJpZAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQUAAAANYXVjdGlvbkNsaWVudAUAAAAQYW1vdW50RGlmZmVyZW5jZQUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsCQAAAgAAAAECAAAAF0luY29ycmVjdCBhdWN0aW9uIHN0YXRlAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAFX0JpZF8FAAAADW5ld0ZyZWVsYW5jZXIFAAAACWJpZEFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfTG93ZXN0QmlkZGVyUHViBQAAAAljYWxsZXJQdWIFAAAAA25pbAMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAA5zdGF0ZVN1Z2dlc3RlZAQAAAAWY3VycmVudExvd2VzdEJpZGRlclB1YgkBAAAAFmdldEF1Y3Rpb25Mb3dlc3RCaWRkZXIAAAABBQAAAAlhdWN0aW9uSWQEAAAAEm5ld0xvd2VzdEJpZGRlclB1YgkBAAAAFWRlZmluZU5ld0xvd2VzdEJpZGRlcgAAAAQFAAAACWF1Y3Rpb25JZAUAAAAWY3VycmVudExvd2VzdEJpZGRlclB1YgUAAAAJYmlkQW1vdW50BQAAAA1uZXdGcmVlbGFuY2VyCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0xvd2VzdEJpZGRlclB1YgUAAAASbmV3TG93ZXN0QmlkZGVyUHViCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfQmlkXwUAAAANbmV3RnJlZWxhbmNlcgUAAAAJYmlkQW1vdW50BQAAAANuaWwJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAHEluY29ycmVjdCBqb2JJZCBzdGF0ZS4gTm93OiAFAAAADGF1Y3Rpb25TdGF0ZQIAAAALLCBtdXN0IGJlOiAFAAAACXN0YXRlT3BlbgIAAAAEIG9yIAUAAAAOc3RhdGVTdWdnZXN0ZWQAAAABaQEAAAAQY2hvb3NlRnJlZWxhbmNlcgAAAAIAAAAJYXVjdGlvbklkAAAADWZyZWVsYW5jZXJQdWIEAAAACWNhbGxlclB1YgkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADGF1Y3Rpb25TdGF0ZQkBAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAE2dldEF1Y3Rpb25DbGllbnRQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25TdGFydAkBAAAAE2dldEF1Y3Rpb25TdGFydFRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAAFmdldEF1Y3Rpb25EdXJhdGlvblRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldE5hbWUJAQAAABNnZXRBdWN0aW9uQXNzZXROYW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA9nZXRBdWN0aW9uUHJpY2UAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldElkNTgJAQAAABJBc3NldE5hbWVUb0Fzc2V0SWQAAAABBQAAABBhdWN0aW9uQXNzZXROYW1lBAAAAA1uZXdGcmVlbGFuY2VyCQEAAAAWY2hvb3NlZEZyZWVsYW5jZXJDaGVjawAAAAIFAAAACWF1Y3Rpb25JZAUAAAANZnJlZWxhbmNlclB1YgQAAAATZnJlZWxhbmNlckJpZEFtb3VudAkBAAAABmdldEJpZAAAAAIFAAAACWF1Y3Rpb25JZAUAAAANbmV3RnJlZWxhbmNlcgQAAAARYXVjdGlvblRpbWVpc092ZXIJAQAAAAl0aW1lQ2hlY2sAAAADBQAAAAZoZWlnaHQFAAAADGF1Y3Rpb25TdGFydAUAAAAPYXVjdGlvbkR1cmF0aW9uBAAAAAtqb2JzT25Hb2luZwkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAMX0pvYnNPbkdvaW5nBAAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzCQEAAAAGZ2V0SW50AAAAAQkAASwAAAACBQAAAA1mcmVlbGFuY2VyUHViAgAAABBfUGVuZGluZ0Vhcm5pbmdzBAAAABdmcmVlbGFuY2VyVG90YWxFYXJuaW5ncwkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAANZnJlZWxhbmNlclB1YgIAAAAOX1RvdGFsRWFybmluZ3MDCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAANYXVjdGlvbkNsaWVudAMFAAAAEWF1Y3Rpb25UaW1laXNPdmVyAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgQAAAARbmV3RnJlZXplZEJhbGFuY2UJAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQUAAAAMYXVjdGlvblByaWNlBAAAAA5kQXBwQ29tbWlzc2lvbgkAAGkAAAACCQAAaAAAAAIFAAAADGF1Y3Rpb25QcmljZQAAAAAAAAAAAwAAAAAAAAAAZAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAC3N0YXRlQ2FuY2VsCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQUAAAANYXVjdGlvbkNsaWVudAkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAADmRBcHBDb21taXNzaW9uBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQEAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIJAQAAABZnZXRBdWN0aW9uTG93ZXN0QmlkZGVyAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uTG93ZXN0QmlkCQEAAAAGZ2V0QmlkAAAAAgUAAAAJYXVjdGlvbklkBQAAABNhdWN0aW9uTG93ZXN0QmlkZGVyBAAAABBhbW91bnREaWZmZXJlbmNlCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAAQYXVjdGlvbkxvd2VzdEJpZAQAAAARbmV3RnJlZXplZEJhbGFuY2UJAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQUAAAAQYW1vdW50RGlmZmVyZW5jZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9IaXJlZEZyZWVsYW5jZXIFAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfUHJpY2UFAAAAEGF1Y3Rpb25Mb3dlc3RCaWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADF9Kb2JzT25Hb2luZwkAAGQAAAACBQAAAAtqb2JzT25Hb2luZwAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1mcmVlbGFuY2VyUHViAgAAABBfUGVuZGluZ0Vhcm5pbmdzCQAAZAAAAAIFAAAAGWZyZWVsYW5jZXJQZW5kaW5nRWFybmluZ3MFAAAAEGF1Y3Rpb25Mb3dlc3RCaWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANZnJlZWxhbmNlclB1YgIAAAAOX1RvdGFsRWFybmluZ3MJAABkAAAAAgUAAAAXZnJlZWxhbmNlclRvdGFsRWFybmluZ3MFAAAAEGF1Y3Rpb25Mb3dlc3RCaWQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADWF1Y3Rpb25DbGllbnQFAAAAEGFtb3VudERpZmZlcmVuY2UFAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABAgAAABdJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZQMDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAJc3RhdGVPcGVuBgkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkBAAAABBhbW91bnREaWZmZXJlbmNlCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAATZnJlZWxhbmNlckJpZEFtb3VudAQAAAARbmV3RnJlZXplZEJhbGFuY2UJAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQUAAAAQYW1vdW50RGlmZmVyZW5jZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9IaXJlZEZyZWVsYW5jZXIFAAAADW5ld0ZyZWVsYW5jZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfUHJpY2UFAAAAE2ZyZWVsYW5jZXJCaWRBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADF9Kb2JzT25Hb2luZwkAAGQAAAACBQAAAAtqb2JzT25Hb2luZwAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1mcmVlbGFuY2VyUHViAgAAABBfUGVuZGluZ0Vhcm5pbmdzCQAAZAAAAAIFAAAAGWZyZWVsYW5jZXJQZW5kaW5nRWFybmluZ3MFAAAAE2ZyZWVsYW5jZXJCaWRBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANZnJlZWxhbmNlclB1YgIAAAAOX1RvdGFsRWFybmluZ3MJAABkAAAAAgUAAAAXZnJlZWxhbmNlclRvdGFsRWFybmluZ3MFAAAAE2ZyZWVsYW5jZXJCaWRBbW91bnQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADWF1Y3Rpb25DbGllbnQJAABkAAAAAgUAAAAQYW1vdW50RGlmZmVyZW5jZQAAAAAAAAAAAQUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsCQAAAgAAAAECAAAAF0luY29ycmVjdCBhdWN0aW9uIHN0YXRlCQAAAgAAAAECAAAALU9ubHkgYXVjdGlvbiBjdXN0b21lciBjYW4gY2hvb3NlIGEgZnJlZWxhbmNlcgAAAAFpAQAAABVpbmNyZWFzZUV4ZWN1dGlvblRpbWUAAAACAAAACWF1Y3Rpb25JZAAAAA1leGVjdXRpb25EYXlzBAAAAAZjYWxsZXIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhdWN0aW9uU3RhdGUJAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABBQAAAAlhdWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQUAAAAJYXVjdGlvbklkBAAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQEAAAAcZ2V0QXVjdGlvbkpvYlBlcmZvcm1hbmNlVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAXbmV3QXVjdGlvbkV4ZWN1dGlvblRpbWUJAQAAABVuZXdFeGVjdXRpb25UaW1lQ2hlY2sAAAACBQAAAA1leGVjdXRpb25EYXlzBQAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uAwkAAAAAAAACBQAAAAZjYWxsZXIFAAAADWF1Y3Rpb25DbGllbnQDAwMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4GCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQGCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAPc3RhdGVJblByb2dyZXNzCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAPX0pvYlBlcmZvcm1hbmNlBQAAABduZXdBdWN0aW9uRXhlY3V0aW9uVGltZQUAAAADbmlsCQAAAgAAAAECAAAAD0luY29ycmVjdCBzdGF0ZQkAAAIAAAABAgAAACdPbmx5IENsaWVudCBjYW4gaW5jcmVhc2UgZXhlY3V0aW9uIHRpbWUAAAABaQEAAAANY2FuY2VsQXVjdGlvbgAAAAEAAAAJYXVjdGlvbklkBAAAAAljYWxsZXJQdWIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhdWN0aW9uU3RhdGUJAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABBQAAAAlhdWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXROYW1lCQEAAAATZ2V0QXVjdGlvbkFzc2V0TmFtZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblByaWNlCQEAAAAPZ2V0QXVjdGlvblByaWNlAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAASQXNzZXROYW1lVG9Bc3NldElkAAAAAQUAAAAQYXVjdGlvbkFzc2V0TmFtZQQAAAAOZEFwcENvbW1pc3Npb24JAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQEAAAAEWFtb3VudFdpdGhvdXRDb21tCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAAOZEFwcENvbW1pc3Npb24EAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQMJAAAAAAAAAgUAAAAJY2FsbGVyUHViBQAAAA1hdWN0aW9uQ2xpZW50AwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAC3N0YXRlQ2FuY2VsCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQUAAAANYXVjdGlvbkNsaWVudAUAAAARYW1vdW50V2l0aG91dENvbW0FAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABAgAAAC5BdWN0aW9uIGNhbiBiZSBjYW5jZWxlZCBvbmx5IGJ5IGF1Y3Rpb24gb3duZXIuCQAAAgAAAAECAAAAHk9ubHkgQ2xpZW50IGNhbiBjYW5jZWwgYXVjdGlvbgAAAAFpAQAAAAtvcGVuRGlzcHV0ZQAAAAEAAAAJYXVjdGlvbklkBAAAAAZjYWxsZXIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhdWN0aW9uU3RhdGUJAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABBQAAAAlhdWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQUAAAAJYXVjdGlvbklkBAAAABFhdWN0aW9uRnJlZWxhbmNlcgkBAAAAF2dldEF1Y3Rpb25GcmVlbGFuY2VyUHViAAAAAQUAAAAJYXVjdGlvbklkBAAAABNjbGllbnRKb2JzSW5EaXNwdXRlCQEAAAAGZ2V0SW50AAAAAQkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAA5fSm9ic0luRGlzcHV0ZQMDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAPc3RhdGVJblByb2dyZXNzBgkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAEXN0YXRlV2FpdDRDb25maXJtAwMJAAAAAAAAAgUAAAAGY2FsbGVyBQAAAA1hdWN0aW9uQ2xpZW50BgkAAAAAAAACBQAAAAZjYWxsZXIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAAxzdGF0ZURpc3B1dGUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fRGlzcHV0ZVZvdGVzAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADl9Kb2JzSW5EaXNwdXRlCQAAZAAAAAIFAAAAE2NsaWVudEpvYnNJbkRpc3B1dGUAAAAAAAAAAAEFAAAAA25pbAkAAAIAAAABAgAAACtPbmx5IENsaWVudCBhbmQgRnJlZWxhbmNlciBjYW4gb3BlbiBkaXNwdXRlCQAAAgAAAAECAAAAK0luY29ycmVjdCBhdWN0aW9uIHN0YXRlIGZvciBkaXNwdXRlIG9wZW5pbmcAAAABaQEAAAALdm90ZURpc3B1dGUAAAACAAAACWF1Y3Rpb25JZAAAAAR2b3RlBAAAAAljYWxsZXJQdWIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhdWN0aW9uU3RhdGUJAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABBQAAAAlhdWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXROYW1lCQEAAAATZ2V0QXVjdGlvbkFzc2V0TmFtZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblByaWNlCQEAAAAPZ2V0QXVjdGlvblByaWNlAAAAAQUAAAAJYXVjdGlvbklkBAAAABFhdWN0aW9uRnJlZWxhbmNlcgkBAAAAF2dldEF1Y3Rpb25GcmVlbGFuY2VyUHViAAAAAQUAAAAJYXVjdGlvbklkBAAAAApjb21taXNzaW9uCQAAaQAAAAIJAABoAAAAAgUAAAAMYXVjdGlvblByaWNlAAAAAAAAAAADAAAAAAAAAABkBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAASQXNzZXROYW1lVG9Bc3NldElkAAAAAQUAAAAQYXVjdGlvbkFzc2V0TmFtZQQAAAANYW1iYXNzYWRvclB1YgkBAAAAEmNhbGxlcklzQW1iYXNzYWRvcgAAAAEFAAAACWNhbGxlclB1YgQAAAAOYW1iYXNzYWRvclZvdGUJAQAAABNhbWJhc3NhZG9yVm90ZUNoZWNrAAAAAwUAAAAJYXVjdGlvbklkBQAAAA1hbWJhc3NhZG9yUHViBQAAAAR2b3RlBAAAAAt2b3Rlc051bWJlcgkBAAAADmdldFZvdGVzTnVtYmVyAAAAAQUAAAAJYXVjdGlvbklkBAAAABNjbGllbnRKb2JzSW5EaXNwdXRlCQEAAAAGZ2V0SW50AAAAAQkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAA5fSm9ic0luRGlzcHV0ZQQAAAAZZnJlZWxhbmNlclBlbmRpbmdFYXJuaW5ncwkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAAEF9QZW5kaW5nRWFybmluZ3MEAAAAF2ZyZWVsYW5jZXJUb3RhbEVhcm5pbmdzCQEAAAAGZ2V0SW50AAAAAQkAASwAAAACBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAAOX1RvdGFsRWFybmluZ3MDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAMc3RhdGVEaXNwdXRlAwkAAAAAAAACBQAAAAt2b3Rlc051bWJlcgAAAAAAAAAABAQAAAAQZGlzcHV0ZVdpbm5lclB1YgkBAAAAE2RlZmluZURpc3B1dGVXaW5uZXIAAAAEBQAAAAlhdWN0aW9uSWQFAAAADmFtYmFzc2Fkb3JWb3RlBQAAAA1hdWN0aW9uQ2xpZW50BQAAABFhdWN0aW9uRnJlZWxhbmNlcgQAAAARbmV3RnJlZXplZEJhbGFuY2UJAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQUAAAAMYXVjdGlvblByaWNlAwkAAAAAAAACBQAAABBkaXNwdXRlV2lubmVyUHViBQAAAA1hdWN0aW9uQ2xpZW50BAAAABJwYXltZW50V2l0aG91dENvbW0JAABlAAAAAgUAAAAMYXVjdGlvblByaWNlBQAAAApjb21taXNzaW9uCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9EaXNwdXRlVm90ZXMJAABkAAAAAgUAAAALdm90ZXNOdW1iZXIAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAFHN0YXRlRGlzcHV0ZVJlc29sdmVkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAxfRGlwdXRlVm90ZV8FAAAADWFtYmFzc2Fkb3JQdWIFAAAADmFtYmFzc2Fkb3JWb3RlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAA5fSm9ic0luRGlzcHV0ZQkAAGUAAAACBQAAABNjbGllbnRKb2JzSW5EaXNwdXRlAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAABBfUGVuZGluZ0Vhcm5pbmdzCQAAZQAAAAIFAAAAGWZyZWVsYW5jZXJQZW5kaW5nRWFybmluZ3MFAAAADGF1Y3Rpb25QcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAAOX1RvdGFsRWFybmluZ3MJAABlAAAAAgUAAAAXZnJlZWxhbmNlclRvdGFsRWFybmluZ3MFAAAADGF1Y3Rpb25QcmljZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQUAAAAQZGlzcHV0ZVdpbm5lclB1YgUAAAAScGF5bWVudFdpdGhvdXRDb21tBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwEAAAAEnBheW1lbnRXaXRob3V0Q29tbQkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UJAABoAAAAAgUAAAAKY29tbWlzc2lvbgAAAAAAAAAAAgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fRGlzcHV0ZVZvdGVzCQAAZAAAAAIFAAAAC3ZvdGVzTnVtYmVyAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAABRzdGF0ZURpc3B1dGVSZXNvbHZlZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAAA1hbWJhc3NhZG9yUHViBQAAAA5hbWJhc3NhZG9yVm90ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAOX0pvYnNJbkRpc3B1dGUJAABlAAAAAgUAAAATY2xpZW50Sm9ic0luRGlzcHV0ZQAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAAQX1BlbmRpbmdFYXJuaW5ncwkAAGUAAAACBQAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzBQAAAAxhdWN0aW9uUHJpY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAAEGRpc3B1dGVXaW5uZXJQdWIFAAAAEnBheW1lbnRXaXRob3V0Q29tbQUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0Rpc3B1dGVWb3RlcwkAAGQAAAACBQAAAAt2b3Rlc051bWJlcgAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAAA1hbWJhc3NhZG9yUHViBQAAAA5hbWJhc3NhZG9yVm90ZQUAAAADbmlsCQAAAgAAAAEJAAEsAAAAAgIAAAAaSW5jb3JyZWN0IHN0YXRlLiBNdXN0IGJlOiAFAAAADHN0YXRlRGlzcHV0ZQAAAAFpAQAAAAx3b3JrSGFuZE92ZXIAAAABAAAACWF1Y3Rpb25JZAQAAAAJY2FsbGVyUHViCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblN0YXJ0CQEAAAATZ2V0QXVjdGlvblN0YXJ0VGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAAWZ2V0QXVjdGlvbkR1cmF0aW9uVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAAHGdldEF1Y3Rpb25Kb2JQZXJmb3JtYW5jZVRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAEWF1Y3Rpb25GcmVlbGFuY2VyCQEAAAAXZ2V0QXVjdGlvbkZyZWVsYW5jZXJQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAACnRpbWVJc092ZXIJAABmAAAAAgkAAGUAAAACBQAAAAZoZWlnaHQFAAAADGF1Y3Rpb25TdGFydAUAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgQAAAATY2xpZW50Sm9ic0luRGlzcHV0ZQkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAOX0pvYnNJbkRpc3B1dGUDCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAARYXVjdGlvbkZyZWVsYW5jZXIDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAPc3RhdGVJblByb2dyZXNzAwUAAAAKdGltZUlzT3ZlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAMc3RhdGVEaXNwdXRlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0Rpc3B1dGVWb3RlcwIAAAABMAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAA1fSm9iSW5EaXNwdXRlCQAAZAAAAAIFAAAAE2NsaWVudEpvYnNJbkRpc3B1dGUAAAAAAAAAAAEFAAAAA25pbAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAARc3RhdGVXYWl0NENvbmZpcm0FAAAAA25pbAkAAAIAAAABAgAAABpBdWN0aW9uIHN0YXRlIGlzIGluY29ycmVjdAkAAAIAAAABAgAAADRPbmx5IGEgZnJlZWxhbmNlciBjYW4gaW5kaWNhdGUgdGhhdCB0aGUgd29yayBpcyBkb25lAAAAAWkBAAAACmFjY2VwdFdvcmsAAAABAAAACWF1Y3Rpb25JZAQAAAAJY2FsbGVyUHViCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblN0YXJ0CQEAAAATZ2V0QXVjdGlvblN0YXJ0VGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAAWZ2V0QXVjdGlvbkR1cmF0aW9uVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0TmFtZQkBAAAAE2dldEF1Y3Rpb25Bc3NldE5hbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25QcmljZQkBAAAAD2dldEF1Y3Rpb25QcmljZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAARYXVjdGlvbkZyZWVsYW5jZXIJAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAALam9ic09uR29pbmcJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADF9Kb2JzT25Hb2luZwQAAAAZZnJlZWxhbmNlclBlbmRpbmdFYXJuaW5ncwkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAAEF9QZW5kaW5nRWFybmluZ3MEAAAAFmZyZWVsYW5jZXJQYWlkRWFybmluZ3MJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAAA1fUGFpZEVhcm5pbmdzBAAAAA5kQXBwQ29tbWlzc2lvbgkAAGkAAAACCQAAaAAAAAIFAAAADGF1Y3Rpb25QcmljZQAAAAAAAAAAAwAAAAAAAAAAZAQAAAARYW1vdW50V2l0aG91dENvbW0JAABlAAAAAgUAAAAMYXVjdGlvblByaWNlCQAAaAAAAAIFAAAADmRBcHBDb21taXNzaW9uAAAAAAAAAAACBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAASQXNzZXROYW1lVG9Bc3NldElkAAAAAQUAAAAQYXVjdGlvbkFzc2V0TmFtZQQAAAARbmV3RnJlZXplZEJhbGFuY2UJAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQUAAAAMYXVjdGlvblByaWNlBAAAABBmcmVlbGFuY2VyUmF0aW5nCQEAAAAJZ2V0UmF0aW5nAAAAAQUAAAARYXVjdGlvbkZyZWVsYW5jZXIDCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAANYXVjdGlvbkNsaWVudAMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAABFzdGF0ZVdhaXQ0Q29uZmlybQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAADXN0YXRlQ29tcGxldGUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAAB19SYXRpbmcJAABkAAAAAgUAAAAQZnJlZWxhbmNlclJhdGluZwAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAMX0pvYnNPbkdvaW5nCQAAZQAAAAIFAAAAC2pvYnNPbkdvaW5nAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAABBfUGVuZGluZ0Vhcm5pbmdzCQAAZQAAAAIFAAAAGWZyZWVsYW5jZXJQZW5kaW5nRWFybmluZ3MFAAAADGF1Y3Rpb25QcmljZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAANX1BhaWRFYXJuaW5ncwkAAGQAAAACBQAAABZmcmVlbGFuY2VyUGFpZEVhcm5pbmdzBQAAAAxhdWN0aW9uUHJpY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyBQAAABFhbW91bnRXaXRob3V0Q29tbQUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsCQAAAgAAAAEJAAEsAAAAAgIAAAAaSW5jb3JyZWN0IHN0YXRlLiBNdXN0IGJlOiAFAAAAEXN0YXRlV2FpdDRDb25maXJtCQAAAgAAAAECAAAAK09ubHkgYXVjdGlvbiBjdXN0b21lciBjYW4gdXNlIHRoaXMgZnVuY3Rpb24AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAAAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAN0dHgFAAAAByRtYXRjaDAEAAAACWFzc2V0TmFtZQkBAAAAEkFzc2V0SWRUb0Fzc2V0TmFtZQAAAAEIBQAAAAN0dHgAAAAHYXNzZXRJZAQAAAAUdmFsdWVSZXNlcnZlZEJhbGFuY2UJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAlhc3NldE5hbWUCAAAACV9SZXNlcnZlZAQAAAAPcmVzZXJ2ZWRCYWxhbmNlBAAAAAckbWF0Y2gxBQAAABR2YWx1ZVJlc2VydmVkQmFsYW5jZQMJAAABAAAAAgUAAAAHJG1hdGNoMQIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gxBQAAAAFhAAAAAAAAAAAABAAAABBhdmFpbGFibGVCYWxhbmNlCQAAZQAAAAIJAAPrAAAAAgUAAAAEdGhpcwgFAAAAA3R0eAAAAAdhc3NldElkBQAAAA9yZXNlcnZlZEJhbGFuY2UJAABnAAAAAgUAAAAQYXZhaWxhYmxlQmFsYW5jZQgFAAAAA3R0eAAAAAZhbW91bnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBAAAAANzdHgFAAAAByRtYXRjaDAGBwcT2gjf", "chainId": 84, "height": 719504, "spentComplexity": 0 } View: original | compacted Prev: SA49YpFDw2LFfJT6bTi5BiQQwgdbFtsNBJzDxsCnSXb Next: 5BUM7Kj8n12HoTQxRt7bxEBBxXHJWEVR3FGk1wuxsu5r Diff:
OldNewDifferences
1111
1212 let e = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
1313
14-let f = "Opened"
14+let f = base58'1'
1515
16-let g = "Suggested"
16+let g = "Opened"
1717
18-let h = "Canceled"
18+let h = "Suggested"
1919
20-let i = "InProgress"
20+let i = "Canceled"
2121
22-let j = "WaitForConfirmation"
22+let j = "InProgress"
2323
24-let k = "Completed"
24+let k = "WaitForConfirmation"
2525
26-let l = "Dispute"
26+let l = "Completed"
2727
28-let m = "DisputeResolved"
28+let m = "Dispute"
2929
30-let n = "CL"
30+let n = "DisputeResolved"
3131
32-let o = "FL"
32+let o = "CL"
3333
34-let p = base58'FneCJqM5BP2eAuyteMiuEEHYALrE4axhEfcpHVGbdr5s'
34+let p = "FL"
3535
36-let q = base58'6QAMdssb1GJjpQVQQcnx8fKU8WhtcF9ZsQhifdThAEK8'
36+let q = "FneCJqM5BP2eAuyteMiuEEHYALrE4axhEfcpHVGbdr5s"
3737
38-let r = base58'2ituwW7DSRsLP3Vcbnpr98QUQMGFRWKmyYPFqsUKRDoP'
38+let r = "6QAMdssb1GJjpQVQQcnx8fKU8WhtcF9ZsQhifdThAEK8"
3939
40-let s = base58'ANsPQocEESyLb3yQqk2pwCdoK7PJQxLoZVpYvsm3SxUG'
40+let s = "2ituwW7DSRsLP3Vcbnpr98QUQMGFRWKmyYPFqsUKRDoP"
4141
42-let t = base58'13VixwQin1MzZCyY69NSWMSBNEV27Rzc159o7uZXR9VS'
42+let t = "ANsPQocEESyLb3yQqk2pwCdoK7PJQxLoZVpYvsm3SxUG"
4343
44-func u (v) = (v + "_AuctionData")
44+let u = "13VixwQin1MzZCyY69NSWMSBNEV27Rzc159o7uZXR9VS"
4545
46-
47-func w (x) = {
48- let y = getInteger(this, x)
49- let z = y
50- if ($isInstanceOf(z, "Int"))
46+func v (w) = {
47+ let x = getInteger(this, w)
48+ let y = x
49+ if ($isInstanceOf(y, "Int"))
5150 then {
52- let A = z
53- A
51+ let z = y
52+ z
5453 }
5554 else 0
5655 }
5756
5857
59-func B (C) = if ((C == "WAVES"))
60- then b
61- else if ((C == "BTC"))
62- then c
63- else if ((C == "EUR"))
64- then d
65- else if ((C == "USD"))
66- then e
67- else throw("Incorrect Asset Id")
58+func A (B) = if (!(isDefined(B)))
59+ then "WAVES"
60+ else if ((B == c))
61+ then "BTC"
62+ else if ((B == d))
63+ then "EUR"
64+ else if ((B == e))
65+ then "USD"
66+ else if ((B == f))
67+ then "AUCT"
68+ else throw("AssetId is incorrect")
6869
6970
70-func D (E,F,G) = ((E - F) > G)
71+func C (D) = if ((D == "WAVES"))
72+ then b
73+ else if ((D == "BTC"))
74+ then c
75+ else if ((D == "EUR"))
76+ then d
77+ else if ((D == "USD"))
78+ then e
79+ else if ((D == "AUCT"))
80+ then f
81+ else throw("Incorrect Asset Id")
7182
7283
73-func H (I,J) = if ((I > J))
74- then throw("Bid amount must be lower or equal than auctionPrice")
75- else I
84+func E (F,G,H) = ((F - G) > H)
7685
7786
78-func K (L,J) = {
79- let M = getInteger(this, (L + "_Freezed"))
80- let N = {
81- let z = M
82- if ($isInstanceOf(z, "Int"))
87+func I (J,K) = if ((J > K))
88+ then throw("Bid amount must be lower or equal than auctionPrice")
89+ else J
90+
91+
92+func L (M,K) = {
93+ let N = getInteger(this, (M + "_Freezed"))
94+ let O = {
95+ let y = N
96+ if ($isInstanceOf(y, "Int"))
8397 then {
84- let A = z
85- A
98+ let z = y
99+ z
86100 }
87101 else 0
88102 }
89- (N + J)
103+ (O + K)
90104 }
91105
92106
93-func O (L,J) = {
94- let M = getInteger(this, (L + "_Freezed"))
95- let N = {
96- let z = M
97- if ($isInstanceOf(z, "Int"))
107+func P (M,K) = {
108+ let N = getInteger(this, (M + "_Freezed"))
109+ let O = {
110+ let y = N
111+ if ($isInstanceOf(y, "Int"))
98112 then {
99- let A = z
100- A
113+ let z = y
114+ z
101115 }
102116 else 0
103117 }
104- let A = (N - J)
105- if ((A >= 0))
106- then A
118+ let z = (O - K)
119+ if ((z >= 0))
120+ then z
107121 else throw("Freezed amount couldn't be less than 0")
108122 }
109123
110124
111-func P (Q) = {
112- let P = getString(this, (Q + "_Freelancer"))
113- let z = P
114- if ($isInstanceOf(z, "String"))
125+func Q (R) = {
126+ let S = getString(this, (R + "_Freelancer"))
127+ let y = S
128+ if ($isInstanceOf(y, "String"))
115129 then {
116- let A = z
117- Q
130+ let z = y
131+ R
118132 }
119133 else throw("Only registered users can make bets")
120134 }
121135
122136
123-func R (S) = if ((S > 0))
124- then S
137+func T (R) = {
138+ let S = getString(this, (R + "_Freelancer"))
139+ let y = S
140+ if ($isInstanceOf(y, "String"))
141+ then {
142+ let z = y
143+ R
144+ }
145+ else throw("Only registered users can make bets")
146+ }
147+
148+
149+func U (V) = if ((V > 0))
150+ then V
125151 else throw("Amount must be higher then 0")
126152
127153
128-func T (v) = {
129- let U = getString(this, (v + "_State"))
130- let z = U
131- if ($isInstanceOf(z, "String"))
154+func W (X) = {
155+ let Y = getString(this, (X + "_State"))
156+ let y = Y
157+ if ($isInstanceOf(y, "String"))
132158 then {
133- let A = z
134- A
159+ let z = y
160+ z
135161 }
136162 else throw("Auction State was not found")
137163 }
138164
139165
140-func V (v) = {
141- let W = getString(this, (v + "_AuctionClient"))
142- let X = {
143- let z = W
144- if ($isInstanceOf(z, "String"))
145- then {
146- let A = z
147- A
148- }
149- else throw("Auction Client was not found")
150- }
151- fromBase58String(X)
166+func Z (X) = {
167+ let aa = getString(this, (X + "_AuctionClient"))
168+ let y = aa
169+ if ($isInstanceOf(y, "String"))
170+ then {
171+ let z = y
172+ z
173+ }
174+ else throw("Auction Client was not found")
152175 }
153176
154177
155-func Y (v) = {
156- let Z = getInteger(this, (v + "_AuctionStart"))
157- let z = Z
158- if ($isInstanceOf(z, "Int"))
178+func ab (X) = {
179+ let ac = getInteger(this, (X + "_AuctionStart"))
180+ let y = ac
181+ if ($isInstanceOf(y, "Int"))
159182 then {
160- let A = z
161- A
183+ let z = y
184+ z
162185 }
163186 else throw("Auction Start time was not found")
164187 }
165188
166189
167-func aa (v) = {
168- let ab = getInteger(this, (v + "_AuctionDuration"))
169- let z = ab
170- if ($isInstanceOf(z, "Int"))
190+func ad (X) = {
191+ let ae = getInteger(this, (X + "_AuctionDuration"))
192+ let y = ae
193+ if ($isInstanceOf(y, "Int"))
171194 then {
172- let A = z
173- A
195+ let z = y
196+ z
174197 }
175198 else throw("Auction duration time was not found")
176199 }
177200
178201
179-func ac (v) = {
180- let ad = getInteger(this, (v + "_JobPerformance"))
181- let z = ad
182- if ($isInstanceOf(z, "Int"))
202+func af (X) = {
203+ let ag = getInteger(this, (X + "_JobPerformance"))
204+ let y = ag
205+ if ($isInstanceOf(y, "Int"))
183206 then {
184- let A = z
185- A
207+ let z = y
208+ z
186209 }
187210 else throw("Auction job performance time was not found")
188211 }
189212
190213
191-func ae (v) = {
192- let af = getString(this, (v + "_AssetName"))
193- let z = af
194- if ($isInstanceOf(z, "String"))
214+func ah (X) = {
215+ let ai = getString(this, (X + "_AssetName"))
216+ let y = ai
217+ if ($isInstanceOf(y, "String"))
195218 then {
196- let A = z
197- A
219+ let z = y
220+ z
198221 }
199222 else throw("Auction asset name was not found")
200223 }
201224
202225
203-func ag (v) = {
204- let ah = getInteger(this, (v + "_Price"))
205- let z = ah
206- if ($isInstanceOf(z, "Int"))
226+func aj (X) = {
227+ let ak = getInteger(this, (X + "_Price"))
228+ let y = ak
229+ if ($isInstanceOf(y, "Int"))
207230 then {
208- let A = z
209- A
231+ let z = y
232+ z
210233 }
211234 else throw("Auction price was not found")
212235 }
213236
214237
215-func ai (v) = {
216- let W = getString(this, (v + "_HiredFreelancer"))
217- let A = {
218- let z = W
219- if ($isInstanceOf(z, "String"))
220- then {
221- let A = z
222- A
223- }
224- else throw("Auction Client was not found")
225- }
226- fromBase58String(A)
238+func al (X) = {
239+ let am = getString(this, (X + "_HiredFreelancer"))
240+ let y = am
241+ if ($isInstanceOf(y, "String"))
242+ then {
243+ let z = y
244+ z
245+ }
246+ else throw("Auction Client was not found")
227247 }
228248
229249
230-@Callable(aj)
231-func freelancerSignUp (ak) = {
232- let al = toBase58String(aj.callerPublicKey)
233- let am = getString(this, (al + "_Freelancer"))
234- if (isDefined(am))
250+func an (X) = {
251+ let ao = getString(this, (X + "_LowestBidderPub"))
252+ let y = ao
253+ if ($isInstanceOf(y, "String"))
254+ then {
255+ let z = y
256+ z
257+ }
258+ else throw("Auction lowest bidder was not found")
259+ }
260+
261+
262+func ap (X,aq) = {
263+ let ar = getInteger(this, ((X + "_Bid_") + aq))
264+ let y = ar
265+ if ($isInstanceOf(y, "Int"))
266+ then {
267+ let z = y
268+ z
269+ }
270+ else throw("Auction lowest bid was not found")
271+ }
272+
273+
274+func as (X,at,au,av) = {
275+ let aw = getInteger(this, ((X + "_Bid_") + at))
276+ let ax = {
277+ let y = aw
278+ if ($isInstanceOf(y, "Int"))
279+ then {
280+ let z = y
281+ z
282+ }
283+ else throw("Auction lowest bid was not found")
284+ }
285+ if ((ax > au))
286+ then av
287+ else at
288+ }
289+
290+
291+func ay (X,az) = {
292+ let av = getInteger(this, ((X + "_Bid_") + az))
293+ let y = av
294+ if ($isInstanceOf(y, "Int"))
295+ then {
296+ let z = y
297+ az
298+ }
299+ else throw("Error: Incorrect freelancerPub")
300+ }
301+
302+
303+func aA (aB,aC) = {
304+ let aD = (aB * a)
305+ if ((aD > aC))
306+ then aD
307+ else throw("New execution time must more than current execution time")
308+ }
309+
310+
311+func aE (aF) = {
312+ let aG = getInteger(this, (aF + "_Rating"))
313+ let y = aG
314+ if ($isInstanceOf(y, "Int"))
315+ then {
316+ let z = y
317+ z
318+ }
319+ else 0
320+ }
321+
322+
323+func aH (R) = if (if (if (if (if ((R == q))
324+ then true
325+ else (R == r))
326+ then true
327+ else (R == s))
328+ then true
329+ else (R == t))
330+ then true
331+ else (R == u))
332+ then R
333+ else throw("Only defined ambassadors can vote in disputes")
334+
335+
336+func aI (X,aJ,aK) = {
337+ let aL = ((X + "_DiputeVote_") + aJ)
338+ let aM = getString(this, aL)
339+ let aN = {
340+ let y = aM
341+ if ($isInstanceOf(y, "String"))
342+ then {
343+ let z = y
344+ true
345+ }
346+ else false
347+ }
348+ if (aN)
349+ then throw("Ambassador voted already ")
350+ else if (if ((aK == o))
351+ then true
352+ else (aK == p))
353+ then aK
354+ else throw(((("Vote is incorrect. Must be: " + o) + " or ") + p))
355+ }
356+
357+
358+func aO (X) = {
359+ let aP = getInteger(this, (X + "_DisputeVotes"))
360+ let y = aP
361+ if ($isInstanceOf(y, "Int"))
362+ then {
363+ let z = y
364+ z
365+ }
366+ else throw("VotesNumber was not found")
367+ }
368+
369+
370+func aQ (X,aR,aS,aF) = {
371+ let aT = getString(this, ((X + "_DiputeVote_") + q))
372+ let aU = getString(this, ((X + "_DiputeVote_") + r))
373+ let aV = getString(this, ((X + "_DiputeVote_") + s))
374+ let aW = getString(this, ((X + "_DiputeVote_") + t))
375+ let aX = getString(this, ((X + "_DiputeVote_") + u))
376+ let aY = if ((aT == o))
377+ then 1
378+ else 0
379+ let aZ = if ((aU == o))
380+ then 1
381+ else 0
382+ let ba = if ((aV == o))
383+ then 1
384+ else 0
385+ let bb = if ((aW == o))
386+ then 1
387+ else 0
388+ let bc = if ((aX == o))
389+ then 1
390+ else 0
391+ let bd = if ((aR == o))
392+ then 1
393+ else 0
394+ let be = (((((aY + aZ) + ba) + bb) + bc) + bd)
395+ if ((be > 2))
396+ then aS
397+ else aF
398+ }
399+
400+
401+@Callable(bf)
402+func freelancerSignUp (bg) = {
403+ let bh = toBase58String(bf.callerPublicKey)
404+ let bi = getString(this, (bh + "_Freelancer"))
405+ if (isDefined(bi))
235406 then throw("User already registered")
236- else WriteSet([DataEntry((al + "_Freelancer"), ak), DataEntry((al + "_PendingEarnings"), 0), DataEntry((al + "_PaidEarnings"), 0), DataEntry((al + "_TotalEarnings"), 0), DataEntry((al + "_JobsPending"), 0), DataEntry((al + "_JobsCompleted"), 0), DataEntry((al + "_JobsTotal"), 0)])
407+ else WriteSet([DataEntry((bh + "_Freelancer"), bg), DataEntry((bh + "_PendingEarnings"), 0), DataEntry((bh + "_PaidEarnings"), 0), DataEntry((bh + "_TotalEarnings"), 0), DataEntry((bh + "_JobsPending"), 0), DataEntry((bh + "_JobsCompleted"), 0), DataEntry((bh + "_JobsTotal"), 0)])
237408 }
238409
239410
240411
241-@Callable(aj)
242-func clientSignUp (ak) = {
243- let al = toBase58String(aj.callerPublicKey)
244- let am = getString(this, (al + "_Client"))
245- if (isDefined(am))
412+@Callable(bf)
413+func clientSignUp (bg) = {
414+ let bh = toBase58String(bf.callerPublicKey)
415+ let bi = getString(this, (bh + "_Client"))
416+ if (isDefined(bi))
246417 then throw("User already registered")
247- else WriteSet([DataEntry((al + "_Client"), ak), DataEntry((al + "_JobsCreated"), 0), DataEntry((al + "_JobsOnGoing"), 0), DataEntry((al + "_JobInDispute"), 0)])
418+ else WriteSet([DataEntry((bh + "_Client"), bg), DataEntry((bh + "_JobsCreated"), 0), DataEntry((bh + "_JobsOnGoing"), 0), DataEntry((bh + "_JobInDispute"), 0)])
248419 }
249420
250421
251422
252-@Callable(aj)
253-func createAuction (an,ao,ap) = {
254- let v = toBase58String(aj.transactionId)
255- let aq = toBase58String(aj.callerPublicKey)
256- let ar = extract(aj.payment)
257- let S = ar.amount
258- let J = R(S)
259- let as = height
260- let at = (ao * a)
261- let au = (an * a)
262- let L = if (!(isDefined(ar.assetId)))
263- then "WAVES"
264- else if ((ar.assetId == c))
265- then "BTC"
266- else if ((ar.assetId == d))
267- then "EUR"
268- else if ((ar.assetId == e))
269- then "USD"
270- else throw("AssetId is incorrect")
271- let av = w((aq + "_JobsCreated"))
272- let aw = K(L, J)
273- WriteSet([DataEntry((v + "_State"), f), DataEntry((v + "_Info"), ap), DataEntry((v + "_AuctionClient"), aq), DataEntry((v + "_AuctionStart"), as), DataEntry((v + "_AuctionDuration"), at), DataEntry((v + "_JobPerformance"), au), DataEntry((v + "_AssetName"), L), DataEntry((v + "_Price"), J), DataEntry((L + "_Freezed"), aw), DataEntry((aq + "_JobsCreated"), (av + 1))])
423+@Callable(bf)
424+func createAuction (bj,bk,bl) = {
425+ let R = toBase58String(bf.callerPublicKey)
426+ let X = toBase58String(bf.transactionId)
427+ let aS = Q(R)
428+ let bm = extract(bf.payment)
429+ let V = bm.amount
430+ let K = U(V)
431+ let bn = height
432+ let bo = (bk * a)
433+ let bp = (bj * a)
434+ let M = A(bm.assetId)
435+ let bq = v((aS + "_JobsCreated"))
436+ let br = L(M, K)
437+ WriteSet([DataEntry((X + "_State"), g), DataEntry((X + "_Info"), bl), DataEntry((X + "_AuctionClient"), aS), DataEntry((X + "_AuctionStart"), bn), DataEntry((X + "_AuctionDuration"), bo), DataEntry((X + "_JobPerformance"), bp), DataEntry((X + "_AssetName"), M), DataEntry((X + "_Price"), K), DataEntry((M + "_Freezed"), br), DataEntry((aS + "_JobsCreated"), (bq + 1))])
274438 }
275439
276440
277441
278-@Callable(aj)
279-func makeBid (v,I) = {
280- let Q = toBase58String(aj.callerPublicKey)
281- let ax = height
282- let ay = T(v)
283- let aq = V(v)
284- let as = Y(v)
285- let az = aa(v)
286- let aA = ac(v)
287- let C = ae(v)
288- let J = ag(v)
289- let aB = B(C)
290- let aC = P(Q)
291- let aD = ((J * 3) / 100)
292- let aw = O(C, J)
293- let aE = H(I, J)
294- let aF = D(ax, as, az)
295- if (aF)
296- then if ((ay == f))
297- then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((C + "_Freezed"), aw)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), (J - aD), aB)]))
298- else if ((ay == g))
442+@Callable(bf)
443+func makeBid (X,J) = {
444+ let R = toBase58String(bf.callerPublicKey)
445+ let bs = W(X)
446+ let aS = Z(X)
447+ let bn = ab(X)
448+ let bt = ad(X)
449+ let aC = af(X)
450+ let D = ah(X)
451+ let K = aj(X)
452+ let bu = C(D)
453+ let av = T(R)
454+ let bv = ((K * 3) / 100)
455+ let br = P(D, K)
456+ let au = I(J, K)
457+ let bw = E(height, bn, bt)
458+ if (bw)
459+ then if ((bs == g))
460+ then ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (K - bv), bu)]))
461+ else if ((bs == h))
299462 then {
300- let aG = {
301- let aH = getString(this, (v + "_LowestBidderPub"))
302- let z = aH
303- if ($isInstanceOf(z, "String"))
304- then {
305- let A = z
306- A
307- }
308- else throw("Auction lowest bidder was not found")
309- }
310- let aI = {
311- let aJ = getInteger(this, ((v + "_Bid_") + aG))
312- let z = aJ
313- if ($isInstanceOf(z, "Int"))
314- then {
315- let A = z
316- A
317- }
318- else throw("Auction lowest bid was not found")
319- }
320- let aK = ((J - aI) - aD)
321- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aG), DataEntry((v + "_Price"), aI)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), aK, aB)]))
463+ let aq = an(X)
464+ let bx = ap(X, aq)
465+ let by = ((K - bx) - bv)
466+ ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), aq), DataEntry((X + "_Price"), bx)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), by, bu)]))
322467 }
323468 else throw("Incorrect auction state")
324- else if ((ay == f))
325- then WriteSet([DataEntry(((v + "_Bid_") + aC), aE), DataEntry((v + "_State"), g), DataEntry((v + "_LowestBidderPub"), Q)])
326- else if ((ay == g))
469+ else if ((bs == g))
470+ then WriteSet([DataEntry(((X + "_Bid_") + av), au), DataEntry((X + "_State"), h), DataEntry((X + "_LowestBidderPub"), R)])
471+ else if ((bs == h))
327472 then {
328- let aL = {
329- let aM = getString(this, (v + "_LowestBidderPub"))
330- let z = aM
331- if ($isInstanceOf(z, "String"))
332- then {
333- let A = z
334- A
335- }
336- else throw("Auction lowest bidder was not found")
337- }
338- let aN = {
339- let aO = getInteger(this, ((v + "_Bid_") + aL))
340- let aP = {
341- let z = aO
342- if ($isInstanceOf(z, "Int"))
343- then {
344- let A = z
345- A
346- }
347- else throw("Auction lowest bid was not found")
348- }
349- if ((aP > aE))
350- then aC
351- else aL
352- }
353- WriteSet([DataEntry((v + "_LowestBidderPub"), aN), DataEntry(((v + "_Bid_") + aC), aE)])
473+ let at = an(X)
474+ let bz = as(X, at, au, av)
475+ WriteSet([DataEntry((X + "_LowestBidderPub"), bz), DataEntry(((X + "_Bid_") + av), au)])
354476 }
355- else throw(((((("Incorrect jobId state. Now: " + ay) + ", must be: ") + f) + " or ") + g))
477+ else throw(((((("Incorrect jobId state. Now: " + bs) + ", must be: ") + g) + " or ") + h))
356478 }
357479
358480
359481
360-@Callable(aj)
361-func chooseFreelancer (v,aQ) = {
362- let Q = extract(aj.callerPublicKey)
363- let ax = height
364- let ay = T(v)
365- let aq = V(v)
366- let as = Y(v)
367- let az = aa(v)
368- let C = ae(v)
369- let J = ag(v)
370- let aB = B(C)
371- let aR = w((toBase58String(aq) + "_JobsOnGoing"))
372- let aS = w((aQ + "_PendingEarnings"))
373- let aT = w((aQ + "_TotalEarnings"))
374- let aU = {
375- let aV = ((v + "_Bid_") + aQ)
376- let aW = getInteger(this, aV)
377- let z = aW
378- if ($isInstanceOf(z, "Int"))
379- then {
380- let A = z
381- A
382- }
383- else throw("Freelancer's bet was not found")
384- }
385- let aF = D(ax, as, az)
386- if ((Q == aq))
387- then if (aF)
388- then if ((ay == f))
482+@Callable(bf)
483+func chooseFreelancer (X,az) = {
484+ let R = toBase58String(bf.callerPublicKey)
485+ let bs = W(X)
486+ let aS = Z(X)
487+ let bn = ab(X)
488+ let bt = ad(X)
489+ let D = ah(X)
490+ let K = aj(X)
491+ let bu = C(D)
492+ let av = ay(X, az)
493+ let bA = ap(X, av)
494+ let bw = E(height, bn, bt)
495+ let bB = v((aS + "_JobsOnGoing"))
496+ let bC = v((az + "_PendingEarnings"))
497+ let bD = v((az + "_TotalEarnings"))
498+ if ((R == aS))
499+ then if (bw)
500+ then if ((bs == g))
389501 then {
390- let aw = O(C, J)
391- let aD = ((J * 3) / 100)
392- ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((C + "_Freezed"), aw)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), (J - aD), aB)]))
502+ let br = P(D, K)
503+ let bv = ((K * 3) / 100)
504+ ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (K - bv), bu)]))
393505 }
394- else if ((ay == g))
506+ else if ((bs == h))
395507 then {
396- let aG = {
397- let aH = getString(this, (v + "_LowestBidderPub"))
398- let z = aH
399- if ($isInstanceOf(z, "String"))
400- then {
401- let A = z
402- A
403- }
404- else throw("Auction lowest bidder was not found")
405- }
406- let aI = {
407- let aJ = getInteger(this, ((v + "_Bid_") + aG))
408- let z = aJ
409- if ($isInstanceOf(z, "Int"))
410- then {
411- let A = z
412- A
413- }
414- else throw("Auction lowest bid was not found")
415- }
416- let aK = (J - aI)
417- let aw = O(C, aK)
418- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aG), DataEntry((v + "_Price"), aI), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR + 1)), DataEntry((aQ + "_PendingEarnings"), (aS + aI)), DataEntry((aQ + "_TotalEarnings"), (aT + aI))]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), aK, aB)]))
508+ let aq = an(X)
509+ let bx = ap(X, aq)
510+ let by = (K - bx)
511+ let br = P(D, by)
512+ ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), aq), DataEntry((X + "_Price"), bx), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsOnGoing"), (bB + 1)), DataEntry((az + "_PendingEarnings"), (bC + bx)), DataEntry((az + "_TotalEarnings"), (bD + bx))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), by, bu)]))
419513 }
420514 else throw("Incorrect auction state")
421- else if (if ((ay == f))
515+ else if (if ((bs == g))
422516 then true
423- else (ay == g))
517+ else (bs == h))
424518 then {
425- let aX = {
426- let aC = getInteger(this, ((v + "_Bid_") + aQ))
427- let z = aC
428- if ($isInstanceOf(z, "Int"))
429- then {
430- let A = z
431- aQ
432- }
433- else throw("Error: Incorrect freelancerPub")
434- }
435- let aI = {
436- let aY = getInteger(this, ((v + "_Bid_") + aQ))
437- let z = aY
438- if ($isInstanceOf(z, "Int"))
439- then {
440- let A = z
441- A
442- }
443- else throw("Auction lowest bidder was not found")
444- }
445- let aK = (J - aU)
446- let aw = O(C, aK)
447- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aX), DataEntry((v + "_Price"), aI), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR + 1)), DataEntry((aQ + "_PendingEarnings"), (aS + aI)), DataEntry((aQ + "_TotalEarnings"), (aT + aI))]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), (aK + 1), aB)]))
519+ let by = (K - bA)
520+ let br = P(D, by)
521+ ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), av), DataEntry((X + "_Price"), bA), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsOnGoing"), (bB + 1)), DataEntry((az + "_PendingEarnings"), (bC + bA)), DataEntry((az + "_TotalEarnings"), (bD + bA))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (by + 1), bu)]))
448522 }
449523 else throw("Incorrect auction state")
450524 else throw("Only auction customer can choose a freelancer")
452526
453527
454528
455-@Callable(aj)
456-func increaseExecutionTime (v,aZ) = {
457- let ba = extract(aj.callerPublicKey)
458- let ay = T(v)
459- let aq = V(v)
460- let aA = ac(v)
461- let bb = {
462- let bc = (aZ * a)
463- if ((bc > aA))
464- then bc
465- else throw("New execution time must more than current execution time")
466- }
467- if ((ba == aq))
468- then if (if (if ((ay == f))
529+@Callable(bf)
530+func increaseExecutionTime (X,aB) = {
531+ let bE = toBase58String(bf.callerPublicKey)
532+ let bs = W(X)
533+ let aS = Z(X)
534+ let aC = af(X)
535+ let bF = aA(aB, aC)
536+ if ((bE == aS))
537+ then if (if (if ((bs == g))
469538 then true
470- else (ay == g))
539+ else (bs == h))
471540 then true
472- else (ay == i))
473- then WriteSet([DataEntry((v + "_JobPerformance"), bb)])
541+ else (bs == j))
542+ then WriteSet([DataEntry((X + "_JobPerformance"), bF)])
474543 else throw("Incorrect state")
475544 else throw("Only Client can increase execution time")
476545 }
477546
478547
479548
480-@Callable(aj)
481-func cancelAuction (v) = {
482- let Q = extract(aj.callerPublicKey)
483- let ay = T(v)
484- let aq = V(v)
485- let C = ae(v)
486- let J = ag(v)
487- let aB = B(C)
488- let aD = ((J * 3) / 100)
489- let bd = (J - aD)
490- let aw = O(C, J)
491- if ((Q == aq))
492- then if ((ay == f))
493- then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((C + "_Freezed"), aw)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), bd, aB)]))
549+@Callable(bf)
550+func cancelAuction (X) = {
551+ let R = toBase58String(bf.callerPublicKey)
552+ let bs = W(X)
553+ let aS = Z(X)
554+ let D = ah(X)
555+ let K = aj(X)
556+ let bu = C(D)
557+ let bv = ((K * 3) / 100)
558+ let bG = (K - bv)
559+ let br = P(D, K)
560+ if ((R == aS))
561+ then if ((bs == g))
562+ then ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), bG, bu)]))
494563 else throw("Auction can be canceled only by auction owner.")
495564 else throw("Only Client can cancel auction")
496565 }
497566
498567
499568
500-@Callable(aj)
501-func openDispute (v) = {
502- let ba = extract(aj.callerPublicKey)
503- let ay = T(v)
504- let aq = V(v)
505- let be = ai(v)
506- let bf = w((toBase58String(aq) + "_JobsInDispute"))
507- if (if ((ay == i))
569+@Callable(bf)
570+func openDispute (X) = {
571+ let bE = toBase58String(bf.callerPublicKey)
572+ let bs = W(X)
573+ let aS = Z(X)
574+ let aF = al(X)
575+ let bH = v((aS + "_JobsInDispute"))
576+ if (if ((bs == j))
508577 then true
509- else (ay == j))
510- then if (if ((ba == aq))
578+ else (bs == k))
579+ then if (if ((bE == aS))
511580 then true
512- else (ba == be))
513- then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), 0), DataEntry((toBase58String(aq) + "_JobsInDispute"), (bf + 1))])
581+ else (bE == aF))
582+ then WriteSet([DataEntry((X + "_State"), m), DataEntry((X + "_DisputeVotes"), 0), DataEntry((aS + "_JobsInDispute"), (bH + 1))])
514583 else throw("Only Client and Freelancer can open dispute")
515584 else throw("Incorrect auction state for dispute opening")
516585 }
517586
518587
519588
520-@Callable(aj)
521-func voteDispute (v,bg) = {
522- let Q = extract(aj.callerPublicKey)
523- let ay = T(v)
524- let aq = V(v)
525- let C = ae(v)
526- let J = ag(v)
527- let be = ai(v)
528- let bh = ((J * 3) / 100)
529- let aB = B(C)
530- let bf = w((toBase58String(aq) + "_JobsInDispute"))
531- let aS = w((toBase58String(be) + "_PendingEarnings"))
532- let bi = if (if (if (if (if ((Q == p))
533- then true
534- else (Q == q))
535- then true
536- else (Q == r))
537- then true
538- else (Q == s))
539- then true
540- else (Q == t))
541- then toBase58String(Q)
542- else throw("Only defined ambassadors can vote in disputes")
543- let bj = if (if ((bg == n))
544- then true
545- else (bg == o))
546- then bg
547- else throw(((("Vote is incorrect. Must be: " + n) + " or ") + o))
548- let bk = {
549- let bl = ((v + "_DiputeVote_") + bi)
550- let bm = getString(this, bl)
551- let z = bm
552- if ($isInstanceOf(z, "String"))
589+@Callable(bf)
590+func voteDispute (X,aK) = {
591+ let R = toBase58String(bf.callerPublicKey)
592+ let bs = W(X)
593+ let aS = Z(X)
594+ let D = ah(X)
595+ let K = aj(X)
596+ let aF = al(X)
597+ let bI = ((K * 3) / 100)
598+ let bu = C(D)
599+ let aJ = aH(R)
600+ let bJ = aI(X, aJ, aK)
601+ let bK = aO(X)
602+ let bH = v((aS + "_JobsInDispute"))
603+ let bC = v((aF + "_PendingEarnings"))
604+ let bD = v((aF + "_TotalEarnings"))
605+ if ((bs == m))
606+ then if ((bK == 4))
553607 then {
554- let A = z
555- throw("User already voted")
608+ let bL = aQ(X, bJ, aS, aF)
609+ let br = P(D, K)
610+ if ((bL == aS))
611+ then {
612+ let bM = (K - bI)
613+ ScriptResult(WriteSet([DataEntry((X + "_DisputeVotes"), (bK + 1)), DataEntry((X + "_State"), n), DataEntry(((X + "_DiputeVote_") + aJ), bJ), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsInDispute"), (bH - 1)), DataEntry((aF + "_PendingEarnings"), (bC - K)), DataEntry((aF + "_TotalEarnings"), (bD - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bL)), bM, bu)]))
614+ }
615+ else {
616+ let bM = (K - (bI * 2))
617+ ScriptResult(WriteSet([DataEntry((X + "_DisputeVotes"), (bK + 1)), DataEntry((X + "_State"), n), DataEntry(((X + "_DiputeVote_") + aJ), bJ), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsInDispute"), (bH - 1)), DataEntry((aF + "_PendingEarnings"), (bC - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bL)), bM, bu)]))
618+ }
556619 }
557- else bi
558- }
559- let bn = {
560- let bo = getInteger(this, (v + "_DisputeVotes"))
561- let z = bo
562- if ($isInstanceOf(z, "Int"))
563- then {
564- let A = z
565- A
566- }
567- else throw("VotesNumber was not found")
568- }
569- if ((ay == l))
570- then if ((bn == 4))
571- then {
572- let bp = {
573- let bq = getString(this, ((v + "_DiputeVote_") + toBase58String(p)))
574- let br = getString(this, ((v + "_DiputeVote_") + toBase58String(q)))
575- let bs = getString(this, ((v + "_DiputeVote_") + toBase58String(r)))
576- let bt = getString(this, ((v + "_DiputeVote_") + toBase58String(s)))
577- let bu = getString(this, ((v + "_DiputeVote_") + toBase58String(t)))
578- let bv = if ((bq == n))
579- then 1
580- else 0
581- let bw = if ((br == n))
582- then 1
583- else 0
584- let bx = if ((bs == n))
585- then 1
586- else 0
587- let by = if ((bt == n))
588- then 1
589- else 0
590- let bz = if ((bu == n))
591- then 1
592- else 0
593- let bA = if ((bj == n))
594- then 1
595- else 0
596- let bB = (((((bv + bw) + bx) + by) + bz) + bA)
597- if ((bB > 2))
598- then aq
599- else be
600- }
601- let bC = if ((bp == aq))
602- then (J - bh)
603- else (J - (bh * 2))
604- let aw = O(C, J)
605- ScriptResult(WriteSet([DataEntry((v + "_DisputeVotes"), (bn + 1)), DataEntry((v + "_State"), m), DataEntry(((v + "_DiputeVote_") + bk), bj), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsInDispute"), (bf - 1)), DataEntry((toBase58String(be) + "_PendingEarnings"), (aS - J))]), TransferSet([ScriptTransfer(addressFromPublicKey(bp), bC, aB)]))
606- }
607- else WriteSet([DataEntry((v + "_DisputeVotes"), (bn + 1)), DataEntry(((v + "_DiputeVote_") + bk), bj)])
608- else throw(("Incorrect state. Must be: " + l))
620+ else WriteSet([DataEntry((X + "_DisputeVotes"), (bK + 1)), DataEntry(((X + "_DiputeVote_") + aJ), bJ)])
621+ else throw(("Incorrect state. Must be: " + m))
609622 }
610623
611624
612625
613-@Callable(aj)
614-func workHandOver (v) = {
615- let Q = extract(aj.callerPublicKey)
616- let ay = T(v)
617- let aq = V(v)
618- let as = Y(v)
619- let az = aa(v)
620- let aA = ac(v)
621- let be = ai(v)
622- let bf = w((toBase58String(aq) + "_JobsInDispute"))
623- let E = height
624- let bD = if ((Q == be))
625- then Q
626+@Callable(bf)
627+func workHandOver (X) = {
628+ let R = toBase58String(bf.callerPublicKey)
629+ let bs = W(X)
630+ let aS = Z(X)
631+ let bn = ab(X)
632+ let bt = ad(X)
633+ let aC = af(X)
634+ let aF = al(X)
635+ let bN = ((height - bn) > aC)
636+ let bH = v((aS + "_JobsInDispute"))
637+ if ((R == aF))
638+ then if ((bs == j))
639+ then if (bN)
640+ then WriteSet([DataEntry((X + "_State"), m), DataEntry((X + "_DisputeVotes"), "0"), DataEntry((aS + "_JobInDispute"), (bH + 1))])
641+ else WriteSet([DataEntry((X + "_State"), k)])
642+ else throw("Auction state is incorrect")
626643 else throw("Only a freelancer can indicate that the work is done")
627- let bE = ((E - as) > aA)
628- if ((ay == i))
629- then if (bE)
630- then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), "0"), DataEntry((toBase58String(aq) + "_JobInDispute"), (bf + 1))])
631- else WriteSet([DataEntry((v + "_State"), j)])
632- else throw("Auction state is incorrect")
633644 }
634645
635646
636647
637-@Callable(aj)
638-func acceptWork (v) = {
639- let Q = extract(aj.callerPublicKey)
640- let ay = T(v)
641- let aq = V(v)
642- let as = Y(v)
643- let az = aa(v)
644- let C = ae(v)
645- let J = ag(v)
646- let be = ai(v)
647- let aR = w((toBase58String(aq) + "_JobsOnGoing"))
648- let aS = w((toBase58String(be) + "_PendingEarnings"))
649- let bF = w((toBase58String(be) + "_PaidEarnings"))
650- let aD = ((J * 3) / 100)
651- let bd = (J - aD)
652- let aB = B(C)
653- let aw = O(C, J)
654- let bG = {
655- let bH = getInteger(this, (toBase58String(be) + "_Rating"))
656- let bI = {
657- let z = bH
658- if ($isInstanceOf(z, "Int"))
659- then {
660- let A = z
661- A
662- }
663- else 0
664- }
665- (bI + 1)
666- }
667- if ((Q == aq))
668- then if ((ay == j))
669- then ScriptResult(WriteSet([DataEntry((v + "_State"), k), DataEntry((toBase58String(be) + "_Rating"), bG), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR - 1)), DataEntry((toBase58String(be) + "_PendingEarnings"), (aS - J)), DataEntry((toBase58String(be) + "_PaidEarnings"), (bF + J))]), TransferSet([ScriptTransfer(addressFromPublicKey(be), bd, aB)]))
670- else throw(("Incorrect state. Must be: " + j))
648+@Callable(bf)
649+func acceptWork (X) = {
650+ let R = toBase58String(bf.callerPublicKey)
651+ let bs = W(X)
652+ let aS = Z(X)
653+ let bn = ab(X)
654+ let bt = ad(X)
655+ let D = ah(X)
656+ let K = aj(X)
657+ let aF = al(X)
658+ let bB = v((aS + "_JobsOnGoing"))
659+ let bC = v((aF + "_PendingEarnings"))
660+ let bO = v((aF + "_PaidEarnings"))
661+ let bv = ((K * 3) / 100)
662+ let bG = (K - (bv * 2))
663+ let bu = C(D)
664+ let br = P(D, K)
665+ let bP = aE(aF)
666+ if ((R == aS))
667+ then if ((bs == k))
668+ then ScriptResult(WriteSet([DataEntry((X + "_State"), l), DataEntry((aF + "_Rating"), (bP + 1)), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsOnGoing"), (bB - 1)), DataEntry((aF + "_PendingEarnings"), (bC - K)), DataEntry((aF + "_PaidEarnings"), (bO + K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aF)), bG, bu)]))
669+ else throw(("Incorrect state. Must be: " + k))
671670 else throw("Only auction customer can use this function")
672671 }
673672
674673
675-@Verifier(bJ)
676-func bK () = if (sigVerify(bJ.bodyBytes, bJ.proofs[0], bJ.senderPublicKey))
674+@Verifier(bQ)
675+func bR () = if (sigVerify(bQ.bodyBytes, bQ.proofs[0], bQ.senderPublicKey))
677676 then {
678- let z = bJ
679- if ($isInstanceOf(z, "TransferTransaction"))
677+ let y = bQ
678+ if ($isInstanceOf(y, "TransferTransaction"))
680679 then {
681- let bL = z
682- true
680+ let bS = y
681+ let bT = A(bS.assetId)
682+ let bU = getInteger(this, (bT + "_Reserved"))
683+ let bV = {
684+ let bW = bU
685+ if ($isInstanceOf(bW, "Int"))
686+ then {
687+ let z = bW
688+ z
689+ }
690+ else 0
691+ }
692+ let bX = (assetBalance(this, bS.assetId) - bV)
693+ (bX >= bS.amount)
683694 }
684- else if ($isInstanceOf(z, "SetScriptTransaction"))
695+ else if ($isInstanceOf(y, "SetScriptTransaction"))
685696 then {
686- let bM = z
697+ let bY = y
687698 true
688699 }
689700 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
14-let f = "Opened"
14+let f = base58'1'
1515
16-let g = "Suggested"
16+let g = "Opened"
1717
18-let h = "Canceled"
18+let h = "Suggested"
1919
20-let i = "InProgress"
20+let i = "Canceled"
2121
22-let j = "WaitForConfirmation"
22+let j = "InProgress"
2323
24-let k = "Completed"
24+let k = "WaitForConfirmation"
2525
26-let l = "Dispute"
26+let l = "Completed"
2727
28-let m = "DisputeResolved"
28+let m = "Dispute"
2929
30-let n = "CL"
30+let n = "DisputeResolved"
3131
32-let o = "FL"
32+let o = "CL"
3333
34-let p = base58'FneCJqM5BP2eAuyteMiuEEHYALrE4axhEfcpHVGbdr5s'
34+let p = "FL"
3535
36-let q = base58'6QAMdssb1GJjpQVQQcnx8fKU8WhtcF9ZsQhifdThAEK8'
36+let q = "FneCJqM5BP2eAuyteMiuEEHYALrE4axhEfcpHVGbdr5s"
3737
38-let r = base58'2ituwW7DSRsLP3Vcbnpr98QUQMGFRWKmyYPFqsUKRDoP'
38+let r = "6QAMdssb1GJjpQVQQcnx8fKU8WhtcF9ZsQhifdThAEK8"
3939
40-let s = base58'ANsPQocEESyLb3yQqk2pwCdoK7PJQxLoZVpYvsm3SxUG'
40+let s = "2ituwW7DSRsLP3Vcbnpr98QUQMGFRWKmyYPFqsUKRDoP"
4141
42-let t = base58'13VixwQin1MzZCyY69NSWMSBNEV27Rzc159o7uZXR9VS'
42+let t = "ANsPQocEESyLb3yQqk2pwCdoK7PJQxLoZVpYvsm3SxUG"
4343
44-func u (v) = (v + "_AuctionData")
44+let u = "13VixwQin1MzZCyY69NSWMSBNEV27Rzc159o7uZXR9VS"
4545
46-
47-func w (x) = {
48- let y = getInteger(this, x)
49- let z = y
50- if ($isInstanceOf(z, "Int"))
46+func v (w) = {
47+ let x = getInteger(this, w)
48+ let y = x
49+ if ($isInstanceOf(y, "Int"))
5150 then {
52- let A = z
53- A
51+ let z = y
52+ z
5453 }
5554 else 0
5655 }
5756
5857
59-func B (C) = if ((C == "WAVES"))
60- then b
61- else if ((C == "BTC"))
62- then c
63- else if ((C == "EUR"))
64- then d
65- else if ((C == "USD"))
66- then e
67- else throw("Incorrect Asset Id")
58+func A (B) = if (!(isDefined(B)))
59+ then "WAVES"
60+ else if ((B == c))
61+ then "BTC"
62+ else if ((B == d))
63+ then "EUR"
64+ else if ((B == e))
65+ then "USD"
66+ else if ((B == f))
67+ then "AUCT"
68+ else throw("AssetId is incorrect")
6869
6970
70-func D (E,F,G) = ((E - F) > G)
71+func C (D) = if ((D == "WAVES"))
72+ then b
73+ else if ((D == "BTC"))
74+ then c
75+ else if ((D == "EUR"))
76+ then d
77+ else if ((D == "USD"))
78+ then e
79+ else if ((D == "AUCT"))
80+ then f
81+ else throw("Incorrect Asset Id")
7182
7283
73-func H (I,J) = if ((I > J))
74- then throw("Bid amount must be lower or equal than auctionPrice")
75- else I
84+func E (F,G,H) = ((F - G) > H)
7685
7786
78-func K (L,J) = {
79- let M = getInteger(this, (L + "_Freezed"))
80- let N = {
81- let z = M
82- if ($isInstanceOf(z, "Int"))
87+func I (J,K) = if ((J > K))
88+ then throw("Bid amount must be lower or equal than auctionPrice")
89+ else J
90+
91+
92+func L (M,K) = {
93+ let N = getInteger(this, (M + "_Freezed"))
94+ let O = {
95+ let y = N
96+ if ($isInstanceOf(y, "Int"))
8397 then {
84- let A = z
85- A
98+ let z = y
99+ z
86100 }
87101 else 0
88102 }
89- (N + J)
103+ (O + K)
90104 }
91105
92106
93-func O (L,J) = {
94- let M = getInteger(this, (L + "_Freezed"))
95- let N = {
96- let z = M
97- if ($isInstanceOf(z, "Int"))
107+func P (M,K) = {
108+ let N = getInteger(this, (M + "_Freezed"))
109+ let O = {
110+ let y = N
111+ if ($isInstanceOf(y, "Int"))
98112 then {
99- let A = z
100- A
113+ let z = y
114+ z
101115 }
102116 else 0
103117 }
104- let A = (N - J)
105- if ((A >= 0))
106- then A
118+ let z = (O - K)
119+ if ((z >= 0))
120+ then z
107121 else throw("Freezed amount couldn't be less than 0")
108122 }
109123
110124
111-func P (Q) = {
112- let P = getString(this, (Q + "_Freelancer"))
113- let z = P
114- if ($isInstanceOf(z, "String"))
125+func Q (R) = {
126+ let S = getString(this, (R + "_Freelancer"))
127+ let y = S
128+ if ($isInstanceOf(y, "String"))
115129 then {
116- let A = z
117- Q
130+ let z = y
131+ R
118132 }
119133 else throw("Only registered users can make bets")
120134 }
121135
122136
123-func R (S) = if ((S > 0))
124- then S
137+func T (R) = {
138+ let S = getString(this, (R + "_Freelancer"))
139+ let y = S
140+ if ($isInstanceOf(y, "String"))
141+ then {
142+ let z = y
143+ R
144+ }
145+ else throw("Only registered users can make bets")
146+ }
147+
148+
149+func U (V) = if ((V > 0))
150+ then V
125151 else throw("Amount must be higher then 0")
126152
127153
128-func T (v) = {
129- let U = getString(this, (v + "_State"))
130- let z = U
131- if ($isInstanceOf(z, "String"))
154+func W (X) = {
155+ let Y = getString(this, (X + "_State"))
156+ let y = Y
157+ if ($isInstanceOf(y, "String"))
132158 then {
133- let A = z
134- A
159+ let z = y
160+ z
135161 }
136162 else throw("Auction State was not found")
137163 }
138164
139165
140-func V (v) = {
141- let W = getString(this, (v + "_AuctionClient"))
142- let X = {
143- let z = W
144- if ($isInstanceOf(z, "String"))
145- then {
146- let A = z
147- A
148- }
149- else throw("Auction Client was not found")
150- }
151- fromBase58String(X)
166+func Z (X) = {
167+ let aa = getString(this, (X + "_AuctionClient"))
168+ let y = aa
169+ if ($isInstanceOf(y, "String"))
170+ then {
171+ let z = y
172+ z
173+ }
174+ else throw("Auction Client was not found")
152175 }
153176
154177
155-func Y (v) = {
156- let Z = getInteger(this, (v + "_AuctionStart"))
157- let z = Z
158- if ($isInstanceOf(z, "Int"))
178+func ab (X) = {
179+ let ac = getInteger(this, (X + "_AuctionStart"))
180+ let y = ac
181+ if ($isInstanceOf(y, "Int"))
159182 then {
160- let A = z
161- A
183+ let z = y
184+ z
162185 }
163186 else throw("Auction Start time was not found")
164187 }
165188
166189
167-func aa (v) = {
168- let ab = getInteger(this, (v + "_AuctionDuration"))
169- let z = ab
170- if ($isInstanceOf(z, "Int"))
190+func ad (X) = {
191+ let ae = getInteger(this, (X + "_AuctionDuration"))
192+ let y = ae
193+ if ($isInstanceOf(y, "Int"))
171194 then {
172- let A = z
173- A
195+ let z = y
196+ z
174197 }
175198 else throw("Auction duration time was not found")
176199 }
177200
178201
179-func ac (v) = {
180- let ad = getInteger(this, (v + "_JobPerformance"))
181- let z = ad
182- if ($isInstanceOf(z, "Int"))
202+func af (X) = {
203+ let ag = getInteger(this, (X + "_JobPerformance"))
204+ let y = ag
205+ if ($isInstanceOf(y, "Int"))
183206 then {
184- let A = z
185- A
207+ let z = y
208+ z
186209 }
187210 else throw("Auction job performance time was not found")
188211 }
189212
190213
191-func ae (v) = {
192- let af = getString(this, (v + "_AssetName"))
193- let z = af
194- if ($isInstanceOf(z, "String"))
214+func ah (X) = {
215+ let ai = getString(this, (X + "_AssetName"))
216+ let y = ai
217+ if ($isInstanceOf(y, "String"))
195218 then {
196- let A = z
197- A
219+ let z = y
220+ z
198221 }
199222 else throw("Auction asset name was not found")
200223 }
201224
202225
203-func ag (v) = {
204- let ah = getInteger(this, (v + "_Price"))
205- let z = ah
206- if ($isInstanceOf(z, "Int"))
226+func aj (X) = {
227+ let ak = getInteger(this, (X + "_Price"))
228+ let y = ak
229+ if ($isInstanceOf(y, "Int"))
207230 then {
208- let A = z
209- A
231+ let z = y
232+ z
210233 }
211234 else throw("Auction price was not found")
212235 }
213236
214237
215-func ai (v) = {
216- let W = getString(this, (v + "_HiredFreelancer"))
217- let A = {
218- let z = W
219- if ($isInstanceOf(z, "String"))
220- then {
221- let A = z
222- A
223- }
224- else throw("Auction Client was not found")
225- }
226- fromBase58String(A)
238+func al (X) = {
239+ let am = getString(this, (X + "_HiredFreelancer"))
240+ let y = am
241+ if ($isInstanceOf(y, "String"))
242+ then {
243+ let z = y
244+ z
245+ }
246+ else throw("Auction Client was not found")
227247 }
228248
229249
230-@Callable(aj)
231-func freelancerSignUp (ak) = {
232- let al = toBase58String(aj.callerPublicKey)
233- let am = getString(this, (al + "_Freelancer"))
234- if (isDefined(am))
250+func an (X) = {
251+ let ao = getString(this, (X + "_LowestBidderPub"))
252+ let y = ao
253+ if ($isInstanceOf(y, "String"))
254+ then {
255+ let z = y
256+ z
257+ }
258+ else throw("Auction lowest bidder was not found")
259+ }
260+
261+
262+func ap (X,aq) = {
263+ let ar = getInteger(this, ((X + "_Bid_") + aq))
264+ let y = ar
265+ if ($isInstanceOf(y, "Int"))
266+ then {
267+ let z = y
268+ z
269+ }
270+ else throw("Auction lowest bid was not found")
271+ }
272+
273+
274+func as (X,at,au,av) = {
275+ let aw = getInteger(this, ((X + "_Bid_") + at))
276+ let ax = {
277+ let y = aw
278+ if ($isInstanceOf(y, "Int"))
279+ then {
280+ let z = y
281+ z
282+ }
283+ else throw("Auction lowest bid was not found")
284+ }
285+ if ((ax > au))
286+ then av
287+ else at
288+ }
289+
290+
291+func ay (X,az) = {
292+ let av = getInteger(this, ((X + "_Bid_") + az))
293+ let y = av
294+ if ($isInstanceOf(y, "Int"))
295+ then {
296+ let z = y
297+ az
298+ }
299+ else throw("Error: Incorrect freelancerPub")
300+ }
301+
302+
303+func aA (aB,aC) = {
304+ let aD = (aB * a)
305+ if ((aD > aC))
306+ then aD
307+ else throw("New execution time must more than current execution time")
308+ }
309+
310+
311+func aE (aF) = {
312+ let aG = getInteger(this, (aF + "_Rating"))
313+ let y = aG
314+ if ($isInstanceOf(y, "Int"))
315+ then {
316+ let z = y
317+ z
318+ }
319+ else 0
320+ }
321+
322+
323+func aH (R) = if (if (if (if (if ((R == q))
324+ then true
325+ else (R == r))
326+ then true
327+ else (R == s))
328+ then true
329+ else (R == t))
330+ then true
331+ else (R == u))
332+ then R
333+ else throw("Only defined ambassadors can vote in disputes")
334+
335+
336+func aI (X,aJ,aK) = {
337+ let aL = ((X + "_DiputeVote_") + aJ)
338+ let aM = getString(this, aL)
339+ let aN = {
340+ let y = aM
341+ if ($isInstanceOf(y, "String"))
342+ then {
343+ let z = y
344+ true
345+ }
346+ else false
347+ }
348+ if (aN)
349+ then throw("Ambassador voted already ")
350+ else if (if ((aK == o))
351+ then true
352+ else (aK == p))
353+ then aK
354+ else throw(((("Vote is incorrect. Must be: " + o) + " or ") + p))
355+ }
356+
357+
358+func aO (X) = {
359+ let aP = getInteger(this, (X + "_DisputeVotes"))
360+ let y = aP
361+ if ($isInstanceOf(y, "Int"))
362+ then {
363+ let z = y
364+ z
365+ }
366+ else throw("VotesNumber was not found")
367+ }
368+
369+
370+func aQ (X,aR,aS,aF) = {
371+ let aT = getString(this, ((X + "_DiputeVote_") + q))
372+ let aU = getString(this, ((X + "_DiputeVote_") + r))
373+ let aV = getString(this, ((X + "_DiputeVote_") + s))
374+ let aW = getString(this, ((X + "_DiputeVote_") + t))
375+ let aX = getString(this, ((X + "_DiputeVote_") + u))
376+ let aY = if ((aT == o))
377+ then 1
378+ else 0
379+ let aZ = if ((aU == o))
380+ then 1
381+ else 0
382+ let ba = if ((aV == o))
383+ then 1
384+ else 0
385+ let bb = if ((aW == o))
386+ then 1
387+ else 0
388+ let bc = if ((aX == o))
389+ then 1
390+ else 0
391+ let bd = if ((aR == o))
392+ then 1
393+ else 0
394+ let be = (((((aY + aZ) + ba) + bb) + bc) + bd)
395+ if ((be > 2))
396+ then aS
397+ else aF
398+ }
399+
400+
401+@Callable(bf)
402+func freelancerSignUp (bg) = {
403+ let bh = toBase58String(bf.callerPublicKey)
404+ let bi = getString(this, (bh + "_Freelancer"))
405+ if (isDefined(bi))
235406 then throw("User already registered")
236- else WriteSet([DataEntry((al + "_Freelancer"), ak), DataEntry((al + "_PendingEarnings"), 0), DataEntry((al + "_PaidEarnings"), 0), DataEntry((al + "_TotalEarnings"), 0), DataEntry((al + "_JobsPending"), 0), DataEntry((al + "_JobsCompleted"), 0), DataEntry((al + "_JobsTotal"), 0)])
407+ else WriteSet([DataEntry((bh + "_Freelancer"), bg), DataEntry((bh + "_PendingEarnings"), 0), DataEntry((bh + "_PaidEarnings"), 0), DataEntry((bh + "_TotalEarnings"), 0), DataEntry((bh + "_JobsPending"), 0), DataEntry((bh + "_JobsCompleted"), 0), DataEntry((bh + "_JobsTotal"), 0)])
237408 }
238409
239410
240411
241-@Callable(aj)
242-func clientSignUp (ak) = {
243- let al = toBase58String(aj.callerPublicKey)
244- let am = getString(this, (al + "_Client"))
245- if (isDefined(am))
412+@Callable(bf)
413+func clientSignUp (bg) = {
414+ let bh = toBase58String(bf.callerPublicKey)
415+ let bi = getString(this, (bh + "_Client"))
416+ if (isDefined(bi))
246417 then throw("User already registered")
247- else WriteSet([DataEntry((al + "_Client"), ak), DataEntry((al + "_JobsCreated"), 0), DataEntry((al + "_JobsOnGoing"), 0), DataEntry((al + "_JobInDispute"), 0)])
418+ else WriteSet([DataEntry((bh + "_Client"), bg), DataEntry((bh + "_JobsCreated"), 0), DataEntry((bh + "_JobsOnGoing"), 0), DataEntry((bh + "_JobInDispute"), 0)])
248419 }
249420
250421
251422
252-@Callable(aj)
253-func createAuction (an,ao,ap) = {
254- let v = toBase58String(aj.transactionId)
255- let aq = toBase58String(aj.callerPublicKey)
256- let ar = extract(aj.payment)
257- let S = ar.amount
258- let J = R(S)
259- let as = height
260- let at = (ao * a)
261- let au = (an * a)
262- let L = if (!(isDefined(ar.assetId)))
263- then "WAVES"
264- else if ((ar.assetId == c))
265- then "BTC"
266- else if ((ar.assetId == d))
267- then "EUR"
268- else if ((ar.assetId == e))
269- then "USD"
270- else throw("AssetId is incorrect")
271- let av = w((aq + "_JobsCreated"))
272- let aw = K(L, J)
273- WriteSet([DataEntry((v + "_State"), f), DataEntry((v + "_Info"), ap), DataEntry((v + "_AuctionClient"), aq), DataEntry((v + "_AuctionStart"), as), DataEntry((v + "_AuctionDuration"), at), DataEntry((v + "_JobPerformance"), au), DataEntry((v + "_AssetName"), L), DataEntry((v + "_Price"), J), DataEntry((L + "_Freezed"), aw), DataEntry((aq + "_JobsCreated"), (av + 1))])
423+@Callable(bf)
424+func createAuction (bj,bk,bl) = {
425+ let R = toBase58String(bf.callerPublicKey)
426+ let X = toBase58String(bf.transactionId)
427+ let aS = Q(R)
428+ let bm = extract(bf.payment)
429+ let V = bm.amount
430+ let K = U(V)
431+ let bn = height
432+ let bo = (bk * a)
433+ let bp = (bj * a)
434+ let M = A(bm.assetId)
435+ let bq = v((aS + "_JobsCreated"))
436+ let br = L(M, K)
437+ WriteSet([DataEntry((X + "_State"), g), DataEntry((X + "_Info"), bl), DataEntry((X + "_AuctionClient"), aS), DataEntry((X + "_AuctionStart"), bn), DataEntry((X + "_AuctionDuration"), bo), DataEntry((X + "_JobPerformance"), bp), DataEntry((X + "_AssetName"), M), DataEntry((X + "_Price"), K), DataEntry((M + "_Freezed"), br), DataEntry((aS + "_JobsCreated"), (bq + 1))])
274438 }
275439
276440
277441
278-@Callable(aj)
279-func makeBid (v,I) = {
280- let Q = toBase58String(aj.callerPublicKey)
281- let ax = height
282- let ay = T(v)
283- let aq = V(v)
284- let as = Y(v)
285- let az = aa(v)
286- let aA = ac(v)
287- let C = ae(v)
288- let J = ag(v)
289- let aB = B(C)
290- let aC = P(Q)
291- let aD = ((J * 3) / 100)
292- let aw = O(C, J)
293- let aE = H(I, J)
294- let aF = D(ax, as, az)
295- if (aF)
296- then if ((ay == f))
297- then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((C + "_Freezed"), aw)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), (J - aD), aB)]))
298- else if ((ay == g))
442+@Callable(bf)
443+func makeBid (X,J) = {
444+ let R = toBase58String(bf.callerPublicKey)
445+ let bs = W(X)
446+ let aS = Z(X)
447+ let bn = ab(X)
448+ let bt = ad(X)
449+ let aC = af(X)
450+ let D = ah(X)
451+ let K = aj(X)
452+ let bu = C(D)
453+ let av = T(R)
454+ let bv = ((K * 3) / 100)
455+ let br = P(D, K)
456+ let au = I(J, K)
457+ let bw = E(height, bn, bt)
458+ if (bw)
459+ then if ((bs == g))
460+ then ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (K - bv), bu)]))
461+ else if ((bs == h))
299462 then {
300- let aG = {
301- let aH = getString(this, (v + "_LowestBidderPub"))
302- let z = aH
303- if ($isInstanceOf(z, "String"))
304- then {
305- let A = z
306- A
307- }
308- else throw("Auction lowest bidder was not found")
309- }
310- let aI = {
311- let aJ = getInteger(this, ((v + "_Bid_") + aG))
312- let z = aJ
313- if ($isInstanceOf(z, "Int"))
314- then {
315- let A = z
316- A
317- }
318- else throw("Auction lowest bid was not found")
319- }
320- let aK = ((J - aI) - aD)
321- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aG), DataEntry((v + "_Price"), aI)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), aK, aB)]))
463+ let aq = an(X)
464+ let bx = ap(X, aq)
465+ let by = ((K - bx) - bv)
466+ ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), aq), DataEntry((X + "_Price"), bx)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), by, bu)]))
322467 }
323468 else throw("Incorrect auction state")
324- else if ((ay == f))
325- then WriteSet([DataEntry(((v + "_Bid_") + aC), aE), DataEntry((v + "_State"), g), DataEntry((v + "_LowestBidderPub"), Q)])
326- else if ((ay == g))
469+ else if ((bs == g))
470+ then WriteSet([DataEntry(((X + "_Bid_") + av), au), DataEntry((X + "_State"), h), DataEntry((X + "_LowestBidderPub"), R)])
471+ else if ((bs == h))
327472 then {
328- let aL = {
329- let aM = getString(this, (v + "_LowestBidderPub"))
330- let z = aM
331- if ($isInstanceOf(z, "String"))
332- then {
333- let A = z
334- A
335- }
336- else throw("Auction lowest bidder was not found")
337- }
338- let aN = {
339- let aO = getInteger(this, ((v + "_Bid_") + aL))
340- let aP = {
341- let z = aO
342- if ($isInstanceOf(z, "Int"))
343- then {
344- let A = z
345- A
346- }
347- else throw("Auction lowest bid was not found")
348- }
349- if ((aP > aE))
350- then aC
351- else aL
352- }
353- WriteSet([DataEntry((v + "_LowestBidderPub"), aN), DataEntry(((v + "_Bid_") + aC), aE)])
473+ let at = an(X)
474+ let bz = as(X, at, au, av)
475+ WriteSet([DataEntry((X + "_LowestBidderPub"), bz), DataEntry(((X + "_Bid_") + av), au)])
354476 }
355- else throw(((((("Incorrect jobId state. Now: " + ay) + ", must be: ") + f) + " or ") + g))
477+ else throw(((((("Incorrect jobId state. Now: " + bs) + ", must be: ") + g) + " or ") + h))
356478 }
357479
358480
359481
360-@Callable(aj)
361-func chooseFreelancer (v,aQ) = {
362- let Q = extract(aj.callerPublicKey)
363- let ax = height
364- let ay = T(v)
365- let aq = V(v)
366- let as = Y(v)
367- let az = aa(v)
368- let C = ae(v)
369- let J = ag(v)
370- let aB = B(C)
371- let aR = w((toBase58String(aq) + "_JobsOnGoing"))
372- let aS = w((aQ + "_PendingEarnings"))
373- let aT = w((aQ + "_TotalEarnings"))
374- let aU = {
375- let aV = ((v + "_Bid_") + aQ)
376- let aW = getInteger(this, aV)
377- let z = aW
378- if ($isInstanceOf(z, "Int"))
379- then {
380- let A = z
381- A
382- }
383- else throw("Freelancer's bet was not found")
384- }
385- let aF = D(ax, as, az)
386- if ((Q == aq))
387- then if (aF)
388- then if ((ay == f))
482+@Callable(bf)
483+func chooseFreelancer (X,az) = {
484+ let R = toBase58String(bf.callerPublicKey)
485+ let bs = W(X)
486+ let aS = Z(X)
487+ let bn = ab(X)
488+ let bt = ad(X)
489+ let D = ah(X)
490+ let K = aj(X)
491+ let bu = C(D)
492+ let av = ay(X, az)
493+ let bA = ap(X, av)
494+ let bw = E(height, bn, bt)
495+ let bB = v((aS + "_JobsOnGoing"))
496+ let bC = v((az + "_PendingEarnings"))
497+ let bD = v((az + "_TotalEarnings"))
498+ if ((R == aS))
499+ then if (bw)
500+ then if ((bs == g))
389501 then {
390- let aw = O(C, J)
391- let aD = ((J * 3) / 100)
392- ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((C + "_Freezed"), aw)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), (J - aD), aB)]))
502+ let br = P(D, K)
503+ let bv = ((K * 3) / 100)
504+ ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (K - bv), bu)]))
393505 }
394- else if ((ay == g))
506+ else if ((bs == h))
395507 then {
396- let aG = {
397- let aH = getString(this, (v + "_LowestBidderPub"))
398- let z = aH
399- if ($isInstanceOf(z, "String"))
400- then {
401- let A = z
402- A
403- }
404- else throw("Auction lowest bidder was not found")
405- }
406- let aI = {
407- let aJ = getInteger(this, ((v + "_Bid_") + aG))
408- let z = aJ
409- if ($isInstanceOf(z, "Int"))
410- then {
411- let A = z
412- A
413- }
414- else throw("Auction lowest bid was not found")
415- }
416- let aK = (J - aI)
417- let aw = O(C, aK)
418- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aG), DataEntry((v + "_Price"), aI), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR + 1)), DataEntry((aQ + "_PendingEarnings"), (aS + aI)), DataEntry((aQ + "_TotalEarnings"), (aT + aI))]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), aK, aB)]))
508+ let aq = an(X)
509+ let bx = ap(X, aq)
510+ let by = (K - bx)
511+ let br = P(D, by)
512+ ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), aq), DataEntry((X + "_Price"), bx), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsOnGoing"), (bB + 1)), DataEntry((az + "_PendingEarnings"), (bC + bx)), DataEntry((az + "_TotalEarnings"), (bD + bx))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), by, bu)]))
419513 }
420514 else throw("Incorrect auction state")
421- else if (if ((ay == f))
515+ else if (if ((bs == g))
422516 then true
423- else (ay == g))
517+ else (bs == h))
424518 then {
425- let aX = {
426- let aC = getInteger(this, ((v + "_Bid_") + aQ))
427- let z = aC
428- if ($isInstanceOf(z, "Int"))
429- then {
430- let A = z
431- aQ
432- }
433- else throw("Error: Incorrect freelancerPub")
434- }
435- let aI = {
436- let aY = getInteger(this, ((v + "_Bid_") + aQ))
437- let z = aY
438- if ($isInstanceOf(z, "Int"))
439- then {
440- let A = z
441- A
442- }
443- else throw("Auction lowest bidder was not found")
444- }
445- let aK = (J - aU)
446- let aw = O(C, aK)
447- ScriptResult(WriteSet([DataEntry((v + "_State"), i), DataEntry((v + "_HiredFreelancer"), aX), DataEntry((v + "_Price"), aI), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR + 1)), DataEntry((aQ + "_PendingEarnings"), (aS + aI)), DataEntry((aQ + "_TotalEarnings"), (aT + aI))]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), (aK + 1), aB)]))
519+ let by = (K - bA)
520+ let br = P(D, by)
521+ ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), av), DataEntry((X + "_Price"), bA), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsOnGoing"), (bB + 1)), DataEntry((az + "_PendingEarnings"), (bC + bA)), DataEntry((az + "_TotalEarnings"), (bD + bA))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (by + 1), bu)]))
448522 }
449523 else throw("Incorrect auction state")
450524 else throw("Only auction customer can choose a freelancer")
451525 }
452526
453527
454528
455-@Callable(aj)
456-func increaseExecutionTime (v,aZ) = {
457- let ba = extract(aj.callerPublicKey)
458- let ay = T(v)
459- let aq = V(v)
460- let aA = ac(v)
461- let bb = {
462- let bc = (aZ * a)
463- if ((bc > aA))
464- then bc
465- else throw("New execution time must more than current execution time")
466- }
467- if ((ba == aq))
468- then if (if (if ((ay == f))
529+@Callable(bf)
530+func increaseExecutionTime (X,aB) = {
531+ let bE = toBase58String(bf.callerPublicKey)
532+ let bs = W(X)
533+ let aS = Z(X)
534+ let aC = af(X)
535+ let bF = aA(aB, aC)
536+ if ((bE == aS))
537+ then if (if (if ((bs == g))
469538 then true
470- else (ay == g))
539+ else (bs == h))
471540 then true
472- else (ay == i))
473- then WriteSet([DataEntry((v + "_JobPerformance"), bb)])
541+ else (bs == j))
542+ then WriteSet([DataEntry((X + "_JobPerformance"), bF)])
474543 else throw("Incorrect state")
475544 else throw("Only Client can increase execution time")
476545 }
477546
478547
479548
480-@Callable(aj)
481-func cancelAuction (v) = {
482- let Q = extract(aj.callerPublicKey)
483- let ay = T(v)
484- let aq = V(v)
485- let C = ae(v)
486- let J = ag(v)
487- let aB = B(C)
488- let aD = ((J * 3) / 100)
489- let bd = (J - aD)
490- let aw = O(C, J)
491- if ((Q == aq))
492- then if ((ay == f))
493- then ScriptResult(WriteSet([DataEntry((v + "_State"), h), DataEntry((C + "_Freezed"), aw)]), TransferSet([ScriptTransfer(addressFromPublicKey(aq), bd, aB)]))
549+@Callable(bf)
550+func cancelAuction (X) = {
551+ let R = toBase58String(bf.callerPublicKey)
552+ let bs = W(X)
553+ let aS = Z(X)
554+ let D = ah(X)
555+ let K = aj(X)
556+ let bu = C(D)
557+ let bv = ((K * 3) / 100)
558+ let bG = (K - bv)
559+ let br = P(D, K)
560+ if ((R == aS))
561+ then if ((bs == g))
562+ then ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), bG, bu)]))
494563 else throw("Auction can be canceled only by auction owner.")
495564 else throw("Only Client can cancel auction")
496565 }
497566
498567
499568
500-@Callable(aj)
501-func openDispute (v) = {
502- let ba = extract(aj.callerPublicKey)
503- let ay = T(v)
504- let aq = V(v)
505- let be = ai(v)
506- let bf = w((toBase58String(aq) + "_JobsInDispute"))
507- if (if ((ay == i))
569+@Callable(bf)
570+func openDispute (X) = {
571+ let bE = toBase58String(bf.callerPublicKey)
572+ let bs = W(X)
573+ let aS = Z(X)
574+ let aF = al(X)
575+ let bH = v((aS + "_JobsInDispute"))
576+ if (if ((bs == j))
508577 then true
509- else (ay == j))
510- then if (if ((ba == aq))
578+ else (bs == k))
579+ then if (if ((bE == aS))
511580 then true
512- else (ba == be))
513- then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), 0), DataEntry((toBase58String(aq) + "_JobsInDispute"), (bf + 1))])
581+ else (bE == aF))
582+ then WriteSet([DataEntry((X + "_State"), m), DataEntry((X + "_DisputeVotes"), 0), DataEntry((aS + "_JobsInDispute"), (bH + 1))])
514583 else throw("Only Client and Freelancer can open dispute")
515584 else throw("Incorrect auction state for dispute opening")
516585 }
517586
518587
519588
520-@Callable(aj)
521-func voteDispute (v,bg) = {
522- let Q = extract(aj.callerPublicKey)
523- let ay = T(v)
524- let aq = V(v)
525- let C = ae(v)
526- let J = ag(v)
527- let be = ai(v)
528- let bh = ((J * 3) / 100)
529- let aB = B(C)
530- let bf = w((toBase58String(aq) + "_JobsInDispute"))
531- let aS = w((toBase58String(be) + "_PendingEarnings"))
532- let bi = if (if (if (if (if ((Q == p))
533- then true
534- else (Q == q))
535- then true
536- else (Q == r))
537- then true
538- else (Q == s))
539- then true
540- else (Q == t))
541- then toBase58String(Q)
542- else throw("Only defined ambassadors can vote in disputes")
543- let bj = if (if ((bg == n))
544- then true
545- else (bg == o))
546- then bg
547- else throw(((("Vote is incorrect. Must be: " + n) + " or ") + o))
548- let bk = {
549- let bl = ((v + "_DiputeVote_") + bi)
550- let bm = getString(this, bl)
551- let z = bm
552- if ($isInstanceOf(z, "String"))
589+@Callable(bf)
590+func voteDispute (X,aK) = {
591+ let R = toBase58String(bf.callerPublicKey)
592+ let bs = W(X)
593+ let aS = Z(X)
594+ let D = ah(X)
595+ let K = aj(X)
596+ let aF = al(X)
597+ let bI = ((K * 3) / 100)
598+ let bu = C(D)
599+ let aJ = aH(R)
600+ let bJ = aI(X, aJ, aK)
601+ let bK = aO(X)
602+ let bH = v((aS + "_JobsInDispute"))
603+ let bC = v((aF + "_PendingEarnings"))
604+ let bD = v((aF + "_TotalEarnings"))
605+ if ((bs == m))
606+ then if ((bK == 4))
553607 then {
554- let A = z
555- throw("User already voted")
608+ let bL = aQ(X, bJ, aS, aF)
609+ let br = P(D, K)
610+ if ((bL == aS))
611+ then {
612+ let bM = (K - bI)
613+ ScriptResult(WriteSet([DataEntry((X + "_DisputeVotes"), (bK + 1)), DataEntry((X + "_State"), n), DataEntry(((X + "_DiputeVote_") + aJ), bJ), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsInDispute"), (bH - 1)), DataEntry((aF + "_PendingEarnings"), (bC - K)), DataEntry((aF + "_TotalEarnings"), (bD - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bL)), bM, bu)]))
614+ }
615+ else {
616+ let bM = (K - (bI * 2))
617+ ScriptResult(WriteSet([DataEntry((X + "_DisputeVotes"), (bK + 1)), DataEntry((X + "_State"), n), DataEntry(((X + "_DiputeVote_") + aJ), bJ), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsInDispute"), (bH - 1)), DataEntry((aF + "_PendingEarnings"), (bC - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bL)), bM, bu)]))
618+ }
556619 }
557- else bi
558- }
559- let bn = {
560- let bo = getInteger(this, (v + "_DisputeVotes"))
561- let z = bo
562- if ($isInstanceOf(z, "Int"))
563- then {
564- let A = z
565- A
566- }
567- else throw("VotesNumber was not found")
568- }
569- if ((ay == l))
570- then if ((bn == 4))
571- then {
572- let bp = {
573- let bq = getString(this, ((v + "_DiputeVote_") + toBase58String(p)))
574- let br = getString(this, ((v + "_DiputeVote_") + toBase58String(q)))
575- let bs = getString(this, ((v + "_DiputeVote_") + toBase58String(r)))
576- let bt = getString(this, ((v + "_DiputeVote_") + toBase58String(s)))
577- let bu = getString(this, ((v + "_DiputeVote_") + toBase58String(t)))
578- let bv = if ((bq == n))
579- then 1
580- else 0
581- let bw = if ((br == n))
582- then 1
583- else 0
584- let bx = if ((bs == n))
585- then 1
586- else 0
587- let by = if ((bt == n))
588- then 1
589- else 0
590- let bz = if ((bu == n))
591- then 1
592- else 0
593- let bA = if ((bj == n))
594- then 1
595- else 0
596- let bB = (((((bv + bw) + bx) + by) + bz) + bA)
597- if ((bB > 2))
598- then aq
599- else be
600- }
601- let bC = if ((bp == aq))
602- then (J - bh)
603- else (J - (bh * 2))
604- let aw = O(C, J)
605- ScriptResult(WriteSet([DataEntry((v + "_DisputeVotes"), (bn + 1)), DataEntry((v + "_State"), m), DataEntry(((v + "_DiputeVote_") + bk), bj), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsInDispute"), (bf - 1)), DataEntry((toBase58String(be) + "_PendingEarnings"), (aS - J))]), TransferSet([ScriptTransfer(addressFromPublicKey(bp), bC, aB)]))
606- }
607- else WriteSet([DataEntry((v + "_DisputeVotes"), (bn + 1)), DataEntry(((v + "_DiputeVote_") + bk), bj)])
608- else throw(("Incorrect state. Must be: " + l))
620+ else WriteSet([DataEntry((X + "_DisputeVotes"), (bK + 1)), DataEntry(((X + "_DiputeVote_") + aJ), bJ)])
621+ else throw(("Incorrect state. Must be: " + m))
609622 }
610623
611624
612625
613-@Callable(aj)
614-func workHandOver (v) = {
615- let Q = extract(aj.callerPublicKey)
616- let ay = T(v)
617- let aq = V(v)
618- let as = Y(v)
619- let az = aa(v)
620- let aA = ac(v)
621- let be = ai(v)
622- let bf = w((toBase58String(aq) + "_JobsInDispute"))
623- let E = height
624- let bD = if ((Q == be))
625- then Q
626+@Callable(bf)
627+func workHandOver (X) = {
628+ let R = toBase58String(bf.callerPublicKey)
629+ let bs = W(X)
630+ let aS = Z(X)
631+ let bn = ab(X)
632+ let bt = ad(X)
633+ let aC = af(X)
634+ let aF = al(X)
635+ let bN = ((height - bn) > aC)
636+ let bH = v((aS + "_JobsInDispute"))
637+ if ((R == aF))
638+ then if ((bs == j))
639+ then if (bN)
640+ then WriteSet([DataEntry((X + "_State"), m), DataEntry((X + "_DisputeVotes"), "0"), DataEntry((aS + "_JobInDispute"), (bH + 1))])
641+ else WriteSet([DataEntry((X + "_State"), k)])
642+ else throw("Auction state is incorrect")
626643 else throw("Only a freelancer can indicate that the work is done")
627- let bE = ((E - as) > aA)
628- if ((ay == i))
629- then if (bE)
630- then WriteSet([DataEntry((v + "_State"), l), DataEntry((v + "_DisputeVotes"), "0"), DataEntry((toBase58String(aq) + "_JobInDispute"), (bf + 1))])
631- else WriteSet([DataEntry((v + "_State"), j)])
632- else throw("Auction state is incorrect")
633644 }
634645
635646
636647
637-@Callable(aj)
638-func acceptWork (v) = {
639- let Q = extract(aj.callerPublicKey)
640- let ay = T(v)
641- let aq = V(v)
642- let as = Y(v)
643- let az = aa(v)
644- let C = ae(v)
645- let J = ag(v)
646- let be = ai(v)
647- let aR = w((toBase58String(aq) + "_JobsOnGoing"))
648- let aS = w((toBase58String(be) + "_PendingEarnings"))
649- let bF = w((toBase58String(be) + "_PaidEarnings"))
650- let aD = ((J * 3) / 100)
651- let bd = (J - aD)
652- let aB = B(C)
653- let aw = O(C, J)
654- let bG = {
655- let bH = getInteger(this, (toBase58String(be) + "_Rating"))
656- let bI = {
657- let z = bH
658- if ($isInstanceOf(z, "Int"))
659- then {
660- let A = z
661- A
662- }
663- else 0
664- }
665- (bI + 1)
666- }
667- if ((Q == aq))
668- then if ((ay == j))
669- then ScriptResult(WriteSet([DataEntry((v + "_State"), k), DataEntry((toBase58String(be) + "_Rating"), bG), DataEntry((C + "_Freezed"), aw), DataEntry((toBase58String(aq) + "_JobsOnGoing"), (aR - 1)), DataEntry((toBase58String(be) + "_PendingEarnings"), (aS - J)), DataEntry((toBase58String(be) + "_PaidEarnings"), (bF + J))]), TransferSet([ScriptTransfer(addressFromPublicKey(be), bd, aB)]))
670- else throw(("Incorrect state. Must be: " + j))
648+@Callable(bf)
649+func acceptWork (X) = {
650+ let R = toBase58String(bf.callerPublicKey)
651+ let bs = W(X)
652+ let aS = Z(X)
653+ let bn = ab(X)
654+ let bt = ad(X)
655+ let D = ah(X)
656+ let K = aj(X)
657+ let aF = al(X)
658+ let bB = v((aS + "_JobsOnGoing"))
659+ let bC = v((aF + "_PendingEarnings"))
660+ let bO = v((aF + "_PaidEarnings"))
661+ let bv = ((K * 3) / 100)
662+ let bG = (K - (bv * 2))
663+ let bu = C(D)
664+ let br = P(D, K)
665+ let bP = aE(aF)
666+ if ((R == aS))
667+ then if ((bs == k))
668+ then ScriptResult(WriteSet([DataEntry((X + "_State"), l), DataEntry((aF + "_Rating"), (bP + 1)), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsOnGoing"), (bB - 1)), DataEntry((aF + "_PendingEarnings"), (bC - K)), DataEntry((aF + "_PaidEarnings"), (bO + K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aF)), bG, bu)]))
669+ else throw(("Incorrect state. Must be: " + k))
671670 else throw("Only auction customer can use this function")
672671 }
673672
674673
675-@Verifier(bJ)
676-func bK () = if (sigVerify(bJ.bodyBytes, bJ.proofs[0], bJ.senderPublicKey))
674+@Verifier(bQ)
675+func bR () = if (sigVerify(bQ.bodyBytes, bQ.proofs[0], bQ.senderPublicKey))
677676 then {
678- let z = bJ
679- if ($isInstanceOf(z, "TransferTransaction"))
677+ let y = bQ
678+ if ($isInstanceOf(y, "TransferTransaction"))
680679 then {
681- let bL = z
682- true
680+ let bS = y
681+ let bT = A(bS.assetId)
682+ let bU = getInteger(this, (bT + "_Reserved"))
683+ let bV = {
684+ let bW = bU
685+ if ($isInstanceOf(bW, "Int"))
686+ then {
687+ let z = bW
688+ z
689+ }
690+ else 0
691+ }
692+ let bX = (assetBalance(this, bS.assetId) - bV)
693+ (bX >= bS.amount)
683694 }
684- else if ($isInstanceOf(z, "SetScriptTransaction"))
695+ else if ($isInstanceOf(y, "SetScriptTransaction"))
685696 then {
686- let bM = z
697+ let bY = y
687698 true
688699 }
689700 else false
690701 }
691702 else false
692703

github/deemru/w8io/169f3d6 
150.77 ms