tx · 4VKCGcqyCaK6LKkSeM4p5g4j4Rdo1huo3XyvYRW4qmFr

3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2:  -0.03100000 Waves

2023.12.03 14:13 [2870386] smart account 3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2 > SELF 0.00000000 Waves

{ "type": 13, "id": "4VKCGcqyCaK6LKkSeM4p5g4j4Rdo1huo3XyvYRW4qmFr", "fee": 3100000, "feeAssetId": null, "timestamp": 1701602016469, "version": 2, "chainId": 84, "sender": "3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2", "senderPublicKey": "DNKNL32sAVUYg4iGA3tW8Z6VXrENmGCmKfG6DLar82aP", "proofs": [ "4YwzQ1ijY5nFGRk59jb8qjTdEkpu6v4DFgE3SPVtu7RNjMcG4DRBxcRLzSFaiYSH2GkbDk58MLEVam3avGEeAYvS" ], "script": "base64:AAIFAAAAAAAAAD8IAhIMCgoBAQgIAQEBCAEBEgwKCgEBCAgBAQEIAQESABIECgIICBIAEgQKAggBEgMKAQgSAwoBCBIAEgMKAQgAAAAOAAAAABZwb29sX2xpcXVpZGl0eV9hZGRyZXNzAgAAACMzTjR3QmdZdFdnSlcyTFRSZWYyZWtXUVRyRVhDUmZYbUdMaAAAAAAURGFwcF9BZGRyZXNzX3B1Yl9rZXkBAAAAIMjtmNqG7lU1WGDHPJboKlti9SIwxR/k7IFRCWjnzhpzAAAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXAAAAABir9gFiAAAAAAC0N1cnJlbmN5X0lEAgAAAAVXQVZFUwAAAAAUcHJvZHVjdF9sYXVuY2hfZXJyb3ICAAAAI1Byb2R1Y3QgTGF1bmNoIFRpbWVzdGFtcCBpcyBzZXQgYXQgAAAAABBub19wYXltZW50X2Vycm9yAgAAADdObyBwYXltZW50IGF0dGFjaGVkLCBQbGVhc2UgQXR0YWNoIFRva2VuIGluIHBheW1lbnRbMV0uAAAAABJjbG9zZWRfb3JhY2xlX2Vyb3ICAAAAMU9yYWNsZSBpcyBjbG9zZWQuIFdhaXQgVW50aWwgT3JhY2xlIGlzIFR1cm5lZCBPbi4AAAAAEXdoaXRlbGlzdF9hZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAABREYXBwX0FkZHJlc3NfcHViX2tleQAAAAAJZDJkY2FsbGVyCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABAQAAACBWOY7hhxUQtTxDtX5RVXX1axVFH/nFLLOc8PMygsw6QQAAAAALbmV0d29ya19mZWUAAAAAAAANu6AAAAAAEm1pbmltdW1fb3JkZXJfc2l6ZQAAAAAAAJiWgAAAAAASbWF4aW11bV9vcmRlcl9zaXplAAAAAAJUC+QAAAAAABRtYXhpbXVtX3ZvdWNoZXJfc2l6ZQAAAAAABfXhAAAAAAAUcmVhZF9zaHV0ZG93bl9zdGF0dXMJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzAgAAAA9TaHV0ZG93bl9TdGF0dXMCAAAATUluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duIGZ1bmN0aW9uIHZhbHVlIGlzIG5vdCBTZXQsIFBsZWFzZSBTaWduIHRoYXQgZmlyc3QuAAAACgAAAAFpAQAAAA9wbGFjZW9wdGlvbkNhbGwAAAAKAAAABkFtb3VudAAAAA9PcHRpb25Db3VudGVySUQAAAAHVXNlcl9JRAAAAAxVc2VyX0FkZHJlc3MAAAAFUHJpY2UAAAALQ2FsbF9MaW1pdHMAAAAKUHV0X0xpbWl0cwAAAA1PcmFjbGVfU3RhdHVzAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAAAABNFbmRfT3JkZXJfVGltZXN0YW1wBAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADWlmQmxhY2tsaXN0ZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFhZGRyX0JMQUNLTElTVEVEXwUAAAAMVXNlcl9BZGRyZXNzBAAAAAhyZWFkX1RQTAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAFnBvb2xfbGlxdWlkaXR5X2FkZHJlc3MCAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5AgAAACRObyBJbml0aWFsIFBvb2wgTGlxdWlkaXR5IHdhcyBGb3VuZC4EAAAAD3JlYWRfdXNlcl9mdW5kcwkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MEAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAAZQAAAAIJAABlAAAAAgUAAAAPcmVhZF91c2VyX2Z1bmRzBQAAAAZBbW91bnQFAAAAC25ldHdvcmtfZmVlBAAAACFyZWFkX3N0YXJ0X29yZGVyX3Blcm1pdF90aW1lc3RhbXAFAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAQAAAAfcmVhZF9lbmRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAUAAAATRW5kX09yZGVyX1RpbWVzdGFtcAQAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAD09wdGlvbkNvdW50ZXJJRAQAAAAST3Bpb25FeHBpcmVDb3VudGVyAAAAAAAAAAABBAAAABVPcHRpb25FeHBpcmVDb3VudGVySUQJAABkAAAAAgUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAEk9waW9uRXhwaXJlQ291bnRlcgQAAAAUUHJldmlvdXNPcHRpb25PcmRlcnMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAATVG90YWxfT3B0aW9uX09yZGVycwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABFUb3RhbE9wdGlvbk9yZGVycwkAAGQAAAACBQAAABRQcmV2aW91c09wdGlvbk9yZGVycwAAAAAAAAAAAQQAAAAnUHJldmlvdXNGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAiVG90YWxfRnVuZHNfQWRkZWRfSW5fT3B0aW9uX09yZGVyXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIJAABkAAAAAgUAAAAnUHJldmlvdXNGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyBQAAAAZBbW91bnQEAAAAJVByZXZpb3VzT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABRUb3RhbF9PcHRpb25fT3JkZXJzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAACJUb3RhbE9wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyCQAAZAAAAAIFAAAAJVByZXZpb3VzT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIAAAAAAAAAAAEEAAAADFByZXZpb3VzQ2FsbAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAAAtUb3RhbF9DYWxscwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAlUb3RhbENhbGwJAABkAAAAAgUAAAAMUHJldmlvdXNDYWxsAAAAAAAAAAABBAAAAB1QcmV2aW91c0NhbGxpblNwZWNpZmljQ291bnRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAADFRvdGFsX0NhbGxzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABpUb3RhbENhbGxpblNwZWNpZmljQ291bnRlcgkAAGQAAAACBQAAAB1QcmV2aW91c0NhbGxpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAAQUHJldmlvdXNVc2VyQ2FsbAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAMX1RvdGFsX0NhbGxzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAADVRvdGFsVXNlckNhbGwJAABkAAAAAgUAAAAQUHJldmlvdXNVc2VyQ2FsbAAAAAAAAAAAAQQAAAAhUHJldmlvdXNVc2VyQ2FsbGluU3BlY2lmaWNDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAADV9Ub3RhbF9DYWxsc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAeVG90YWxVc2VyQ2FsbGluU3BlY2lmaWNDb3VudGVyCQAAZAAAAAIFAAAAIVByZXZpb3VzVXNlckNhbGxpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAANRnVuZHNfYXRfcmlzawkAAGsAAAADBQAAAAhyZWFkX1RQTAAAAAAAAAAABQAAAAAAAAAAZAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAARd2hpdGVsaXN0X2FkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAARd2hpdGVsaXN0X2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQAAAAAAAAIFAAAAFHJlYWRfc2h1dGRvd25fc3RhdHVzAAAAAAAAAAABCQAAAgAAAAECAAAAW0NvbnRyYWN0IFN0YXR1cyBpcyBDdXJyZW50bHkgU2h1dGRvd24uIFBsZWFzZSBTaWduIHRoZSBGdW5jdGlvbiBJbml0aWF0ZV9Db250cmFjdF9TaHV0ZG93bi4DCQAAZgAAAAIFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAACAAAAAQkAASwAAAACBQAAABRwcm9kdWN0X2xhdW5jaF9lcnJvcgkAAaQAAAABBQAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXADCQAAAAAAAAIFAAAADU9yYWNsZV9TdGF0dXMCAAAABUNMT1NFCQAAAgAAAAEFAAAAEmNsb3NlZF9vcmFjbGVfZXJvcgMJAAAAAAAAAgUAAAANaWZCbGFja2xpc3RlZAIAAAADWWVzCQAAAgAAAAEJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAD4gQWRkcmVzcyBpcyBCbGFja2xpc3RlZC4gUGxlYXNlIGNvbnRhY3QgQWRtaW4gdG8gV2hpdGVsaXN0IGl0LgMJAABnAAAAAggFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAAH3JlYWRfZW5kX29yZGVyX3Blcm1pdF90aW1lc3RhbXAJAAACAAAAAQIAAABHT3B0aW9uIE9yZGVyIHBsYWNpbmcgVGltaW5nIExpbWl0cyBhcmUgT3Zlci4gUGxlYXNlIEpvaW4gaW4gTmV4dCBDeWNsZS4DCQAAZgAAAAIFAAAAJFRvdGFsRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgUAAAANRnVuZHNfYXRfcmlzawkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAQ05vIG1vcmUgb3JkZXJzIGFjY2VwdGVkLCBPcHRpb24gSG91c2UgUmlzayBTaXplIGlzIG9ubHkgbGltaXRlZCB0byAJAAGkAAAAAQUAAAANRnVuZHNfYXRfcmlzawIAAAAYLCBQZW5kaW5nIEhvdXNlIFJpc2sgaXMgCQABpAAAAAEJAABlAAAAAgUAAAANRnVuZHNfYXRfcmlzawUAAAAnUHJldmlvdXNGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyAgAAABUuIEpvaW4gaW4gbmV4dCBDeWNsZS4DCQAAZgAAAAIFAAAAEm1pbmltdW1fb3JkZXJfc2l6ZQUAAAAGQW1vdW50CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACBQbGFjZWQgT3JkZXIgU2l6ZSBpcyBsZXNzIHRoYW4gWwkAAaQAAAABBQAAABJtaW5pbXVtX29yZGVyX3NpemUCAAAADS8xMF44XSBXQVZFUy4DCQAAZgAAAAIFAAAABkFtb3VudAUAAAASbWF4aW11bV9vcmRlcl9zaXplCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACBQbGFjZWQgT3JkZXIgU2l6ZSBpcyBtb3JlIHRoYW4gWwkAAaQAAAABBQAAABJtYXhpbXVtX29yZGVyX3NpemUCAAAADS8xMF44XSBXQVZFUy4DCQAAZgAAAAIAAAAAAAAAAAAFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAAAgAAAAEJAAEsAAAAAgIAAABcUGxhY2VkIE9yZGVyIEFtb3VudCBpcyBnb2luZyBuZWdhdGl2ZS4gUGxlYXNlIHJlZHVjZSB0aGUgT3JkZXIgU2l6ZS4gTmVnYXRpdmUgRnVuZCBBbW91bnQgPSAJAAGkAAAAAQUAAAARdXBkYXRlX3VzZXJfZnVuZHMDCQEAAAACIT0AAAACCQABMQAAAAEJAAGkAAAAAQUAAAAVU3RhcnRfT3JkZXJfVGltZXN0YW1wAAAAAAAAAAANCQAAAgAAAAECAAAAb1N0YXJ0IFRpbWVzdGFtcCBpcyBXcm9uZy4gUGxlYXNlIEVudGVyIGEgVmFsaWQgVGltZXN0YW1wLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBUaW1lc3RhbXAgbGVzcyB0aGFuIDEzIENoYXJzLgMJAQAAAAIhPQAAAAIJAAExAAAAAQkAAaQAAAABBQAAABNFbmRfT3JkZXJfVGltZXN0YW1wAAAAAAAAAAANCQAAAgAAAAECAAAAbUVuZCBUaW1lc3RhbXAgaXMgV3JvbmcuIFBsZWFzZSBFbnRlciBhIFZhbGlkIFRpbWVzdGFtcC4gUHJvYmFibHkgeW91IGVudGVyZWQgYW4gVGltZXN0YW1wIGxlc3MgdGhhbiAxMyBDaGFycy4JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAAAhVc2VyX0lEXwUAAAAMVXNlcl9BZGRyZXNzBQAAAAdVc2VyX0lECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAALQ3VycmVuY3lfSUQCAAAAAV8FAAAADFVzZXJfQWRkcmVzcwUAAAARdXBkYXRlX3VzZXJfZnVuZHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGk5ldHdvcmtfRmVlX1RvX1BsYWNlX09yZGVyBQAAAAtuZXR3b3JrX2ZlZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAVDYWxsXwUAAAAMVXNlcl9BZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADVRvdGFsVXNlckNhbGwJAAGkAAAAAQUAAAAFUHJpY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADENhbGxfQW1vdW50XwUAAAAMVXNlcl9BZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADVRvdGFsVXNlckNhbGwFAAAABkFtb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA9DYWxsX1N0YXJ0X0VuZF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAA1Ub3RhbFVzZXJDYWxsCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAIAAAABXwkAAaQAAAABBQAAABVPcHRpb25FeHBpcmVDb3VudGVySUQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE1RvdGFsX09wdGlvbl9PcmRlcnMFAAAAEVRvdGFsT3B0aW9uT3JkZXJzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAIlRvdGFsX0Z1bmRzX0FkZGVkX0luX09wdGlvbl9PcmRlcl8JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAJFRvdGFsRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAUVG90YWxfUG9vbF9MaXF1aWRpdHkFAAAACHJlYWRfVFBMCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADkZ1bmRzX0F0X1Jpc2tfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAAA1GdW5kc19hdF9yaXNrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtDYWxsX0xpbWl0cwUAAAALQ2FsbF9MaW1pdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClB1dF9MaW1pdHMFAAAAClB1dF9MaW1pdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAUVG90YWxfT3B0aW9uX09yZGVyc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAIlRvdGFsT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAC1RvdGFsX0NhbGxzBQAAAAlUb3RhbENhbGwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAMVG90YWxfQ2FsbHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAABpUb3RhbENhbGxpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAADF9Ub3RhbF9DYWxscwUAAAANVG90YWxVc2VyQ2FsbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAANX1RvdGFsX0NhbGxzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAeVG90YWxVc2VyQ2FsbGluU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEXdoaXRlbGlzdF9hZGRyZXNzBQAAAAtuZXR3b3JrX2ZlZQUAAAAEdW5pdAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAABZwb29sX2xpcXVpZGl0eV9hZGRyZXNzBQAAAAZBbW91bnQFAAAABHVuaXQFAAAAA25pbAAAAAFpAQAAAA5wbGFjZW9wdGlvblB1dAAAAAoAAAAGQW1vdW50AAAAD09wdGlvbkNvdW50ZXJJRAAAAAdVc2VyX0lEAAAADFVzZXJfQWRkcmVzcwAAAAVQcmljZQAAAAtDYWxsX0xpbWl0cwAAAApQdXRfTGltaXRzAAAADU9yYWNsZV9TdGF0dXMAAAAVU3RhcnRfT3JkZXJfVGltZXN0YW1wAAAAE0VuZF9PcmRlcl9UaW1lc3RhbXAEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAANaWZCbGFja2xpc3RlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAICAAAAEWFkZHJfQkxBQ0tMSVNURURfBQAAAAxVc2VyX0FkZHJlc3MEAAAACHJlYWRfVFBMCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAWcG9vbF9saXF1aWRpdHlfYWRkcmVzcwIAAAAUVG90YWxfUG9vbF9MaXF1aWRpdHkCAAAAJE5vIEluaXRpYWwgUG9vbCBMaXF1aWRpdHkgd2FzIEZvdW5kLgQAAAAPcmVhZF91c2VyX2Z1bmRzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAAEsAAAAAgkAASwAAAACBQAAAAtDdXJyZW5jeV9JRAIAAAABXwUAAAAMVXNlcl9BZGRyZXNzAAAAAAAAAAAABAAAABF1cGRhdGVfdXNlcl9mdW5kcwkAAGUAAAACCQAAZQAAAAIFAAAAD3JlYWRfdXNlcl9mdW5kcwUAAAAGQW1vdW50BQAAAAtuZXR3b3JrX2ZlZQQAAAAXcmVhZF91c2VyX3ZvdWNoZXJfZnVuZHMJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQfAAAAAQkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAAEF9Wb3VjaGVyX0JhbGFuY2UAAAAAAAAAAAAEAAAAG3VwZGF0ZV91c2VyX3ZvdWNoZXJfYmFsYW5jZQkAAGUAAAACCQAAZQAAAAIFAAAAF3JlYWRfdXNlcl92b3VjaGVyX2Z1bmRzBQAAAAZBbW91bnQFAAAAC25ldHdvcmtfZmVlBAAAACFyZWFkX3N0YXJ0X29yZGVyX3Blcm1pdF90aW1lc3RhbXAFAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAQAAAAfcmVhZF9lbmRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAUAAAATRW5kX09yZGVyX1RpbWVzdGFtcAQAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAD09wdGlvbkNvdW50ZXJJRAQAAAAST3Bpb25FeHBpcmVDb3VudGVyAAAAAAAAAAABBAAAABVPcHRpb25FeHBpcmVDb3VudGVySUQJAABkAAAAAgUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAEk9waW9uRXhwaXJlQ291bnRlcgQAAAAUUHJldmlvdXNPcHRpb25PcmRlcnMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAATVG90YWxfT3B0aW9uX09yZGVycwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABFUb3RhbE9wdGlvbk9yZGVycwkAAGQAAAACBQAAABRQcmV2aW91c09wdGlvbk9yZGVycwAAAAAAAAAAAQQAAAAnUHJldmlvdXNGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAiVG90YWxfRnVuZHNfQWRkZWRfSW5fT3B0aW9uX09yZGVyXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIJAABkAAAAAgUAAAAnUHJldmlvdXNGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyBQAAAAZBbW91bnQEAAAAJVByZXZpb3VzT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABRUb3RhbF9PcHRpb25fT3JkZXJzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAACJUb3RhbE9wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyCQAAZAAAAAIFAAAAJVByZXZpb3VzT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIAAAAAAAAAAAEEAAAAC1ByZXZpb3VzUHV0BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAClRvdGFsX1B1dHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAIVG90YWxQdXQJAABkAAAAAgUAAAALUHJldmlvdXNQdXQAAAAAAAAAAAEEAAAAHFByZXZpb3VzUHV0aW5TcGVjaWZpY0NvdW50ZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAAAtUb3RhbF9QdXRzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABlUb3RhbFB1dGluU3BlY2lmaWNDb3VudGVyCQAAZAAAAAIFAAAAHFByZXZpb3VzUHV0aW5TcGVjaWZpY0NvdW50ZXIAAAAAAAAAAAEEAAAAD1ByZXZpb3VzVXNlclB1dAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAALX1RvdGFsX1B1dHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAMVG90YWxVc2VyUHV0CQAAZAAAAAIFAAAAD1ByZXZpb3VzVXNlclB1dAAAAAAAAAAAAQQAAAAgUHJldmlvdXNVc2VyUHV0aW5TcGVjaWZpY0NvdW50ZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAMX1RvdGFsX1B1dHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAHVRvdGFsVXNlclB1dGluU3BlY2lmaWNDb3VudGVyCQAAZAAAAAIFAAAAIFByZXZpb3VzVXNlclB1dGluU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAAA1GdW5kc19hdF9yaXNrCQAAawAAAAMFAAAACHJlYWRfVFBMAAAAAAAAAAAFAAAAAAAAAABkAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAAAAAAAAAgUAAAAUcmVhZF9zaHV0ZG93bl9zdGF0dXMAAAAAAAAAAAEJAAACAAAAAQIAAABbQ29udHJhY3QgU3RhdHVzIGlzIEN1cnJlbnRseSBTaHV0ZG93bi4gUGxlYXNlIFNpZ24gdGhlIEZ1bmN0aW9uIEluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duLgMJAABmAAAAAgUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABCQABLAAAAAIFAAAAFHByb2R1Y3RfbGF1bmNoX2Vycm9yCQABpAAAAAEFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAMJAAAAAAAAAgUAAAANT3JhY2xlX1N0YXR1cwIAAAAFQ0xPU0UJAAACAAAAAQUAAAASY2xvc2VkX29yYWNsZV9lcm9yAwkAAAAAAAACBQAAAA1pZkJsYWNrbGlzdGVkAgAAAANZZXMJAAACAAAAAQkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAAPiBBZGRyZXNzIGlzIEJsYWNrbGlzdGVkLiBQbGVhc2UgY29udGFjdCBBZG1pbiB0byBXaGl0ZWxpc3QgaXQuAwkAAGcAAAACCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAUAAAAfcmVhZF9lbmRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAkAAAIAAAABAgAAAEdPcHRpb24gT3JkZXIgcGxhY2luZyBUaW1pbmcgTGltaXRzIGFyZSBPdmVyLiBQbGVhc2UgSm9pbiBpbiBOZXh0IEN5Y2xlLgMDCQAAZwAAAAIAAAAAAAAAAAAFAAAAD3JlYWRfdXNlcl9mdW5kcwkAAGcAAAACAAAAAAAAAAAABQAAABdyZWFkX3VzZXJfdm91Y2hlcl9mdW5kcwcJAAACAAAAAQIAAABUTm8gRnVuZHMgQXZhaWxhYmxlIGluIFZvdWNoZXIgYXMgd2VsbCBpbiBVc2VyIEJhbGFuY2UuIFBsZWFzZSBEZXBvc2l0IEZ1bmRzIHRvIERhcHAuAwkAAGYAAAACBQAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIFAAAADUZ1bmRzX2F0X3Jpc2sJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAENObyBtb3JlIG9yZGVycyBhY2NlcHRlZCwgT3B0aW9uIEhvdXNlIFJpc2sgU2l6ZSBpcyBvbmx5IGxpbWl0ZWQgdG8gCQABpAAAAAEFAAAADUZ1bmRzX2F0X3Jpc2sCAAAAGCwgUGVuZGluZyBIb3VzZSBSaXNrIGlzIAkAAaQAAAABCQAAZQAAAAIFAAAADUZ1bmRzX2F0X3Jpc2sFAAAAJ1ByZXZpb3VzRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgIAAAAVLiBKb2luIGluIG5leHQgQ3ljbGUuAwkAAGYAAAACBQAAABJtaW5pbXVtX29yZGVyX3NpemUFAAAABkFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAgUGxhY2VkIE9yZGVyIFNpemUgaXMgbGVzcyB0aGFuIFsJAAGkAAAAAQUAAAASbWluaW11bV9vcmRlcl9zaXplAgAAAA0vMTBeOF0gV0FWRVMuAwkAAGYAAAACBQAAAAZBbW91bnQFAAAAEm1heGltdW1fb3JkZXJfc2l6ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAgUGxhY2VkIE9yZGVyIFNpemUgaXMgbW9yZSB0aGFuIFsJAAGkAAAAAQUAAAASbWF4aW11bV9vcmRlcl9zaXplAgAAAA0vMTBeOF0gV0FWRVMuAwkBAAAAAiE9AAAAAgkAATEAAAABCQABpAAAAAEFAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAAAAAAAAAAADQkAAAIAAAABAgAAAG9TdGFydCBUaW1lc3RhbXAgaXMgV3JvbmcuIFBsZWFzZSBFbnRlciBhIFZhbGlkIFRpbWVzdGFtcC4gUHJvYmFibHkgeW91IGVudGVyZWQgYW4gVGltZXN0YW1wIGxlc3MgdGhhbiAxMyBDaGFycy4DCQEAAAACIT0AAAACCQABMQAAAAEJAAGkAAAAAQUAAAATRW5kX09yZGVyX1RpbWVzdGFtcAAAAAAAAAAADQkAAAIAAAABAgAAAG1FbmQgVGltZXN0YW1wIGlzIFdyb25nLiBQbGVhc2UgRW50ZXIgYSBWYWxpZCBUaW1lc3RhbXAuIFByb2JhYmx5IHlvdSBlbnRlcmVkIGFuIFRpbWVzdGFtcCBsZXNzIHRoYW4gMTMgQ2hhcnMuAwkAAGcAAAACBQAAABt1cGRhdGVfdXNlcl92b3VjaGVyX2JhbGFuY2UAAAAAAAAAAAAJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAAAhVc2VyX0lEXwUAAAAMVXNlcl9BZGRyZXNzBQAAAAdVc2VyX0lECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAQX1ZvdWNoZXJfQmFsYW5jZQUAAAAbdXBkYXRlX3VzZXJfdm91Y2hlcl9iYWxhbmNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpOZXR3b3JrX0ZlZV9Ub19QbGFjZV9PcmRlcgUAAAALbmV0d29ya19mZWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEUHV0XwUAAAAMVXNlcl9BZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADFRvdGFsVXNlclB1dAkAAaQAAAABBQAAAAVQcmljZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAALUHV0X0Ftb3VudF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAAxUb3RhbFVzZXJQdXQFAAAABkFtb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA5QdXRfU3RhcnRfRW5kXwUAAAAMVXNlcl9BZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADFRvdGFsVXNlclB1dAkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQCAAAAAV8JAAGkAAAAAQUAAAAVT3B0aW9uRXhwaXJlQ291bnRlcklECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABNUb3RhbF9PcHRpb25fT3JkZXJzBQAAABFUb3RhbE9wdGlvbk9yZGVycwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAACJUb3RhbF9GdW5kc19BZGRlZF9Jbl9PcHRpb25fT3JkZXJfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5BQAAAAhyZWFkX1RQTAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAA5GdW5kc19BdF9SaXNrXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAANRnVuZHNfYXRfcmlzawkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAALQ2FsbF9MaW1pdHMFAAAAC0NhbGxfTGltaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApQdXRfTGltaXRzBQAAAApQdXRfTGltaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFFRvdGFsX09wdGlvbl9PcmRlcnNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAACJUb3RhbE9wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApUb3RhbF9QdXRzBQAAAAhUb3RhbFB1dAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAAtUb3RhbF9QdXRzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAZVG90YWxQdXRpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAAC19Ub3RhbF9QdXRzBQAAAAxUb3RhbFVzZXJQdXQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAADF9Ub3RhbF9QdXRzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAdVG90YWxVc2VyUHV0aW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAARd2hpdGVsaXN0X2FkZHJlc3MFAAAAC25ldHdvcmtfZmVlBQAAAAR1bml0CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAFnBvb2xfbGlxdWlkaXR5X2FkZHJlc3MFAAAABkFtb3VudAUAAAAEdW5pdAUAAAADbmlsAwkAAGcAAAACBQAAABF1cGRhdGVfdXNlcl9mdW5kcwAAAAAAAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAICAAAACFVzZXJfSURfBQAAAAxVc2VyX0FkZHJlc3MFAAAAB1VzZXJfSUQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAtDdXJyZW5jeV9JRAIAAAABXwUAAAAMVXNlcl9BZGRyZXNzBQAAABF1cGRhdGVfdXNlcl9mdW5kcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAaTmV0d29ya19GZWVfVG9fUGxhY2VfT3JkZXIFAAAAC25ldHdvcmtfZmVlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABFB1dF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAAxUb3RhbFVzZXJQdXQJAAGkAAAAAQUAAAAFUHJpY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAC1B1dF9BbW91bnRfBQAAAAxVc2VyX0FkZHJlc3MCAAAAAV8JAAGkAAAAAQUAAAAMVG90YWxVc2VyUHV0BQAAAAZBbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAOUHV0X1N0YXJ0X0VuZF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAAxUb3RhbFVzZXJQdXQJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAgAAAAFfCQABpAAAAAEFAAAAFU9wdGlvbkV4cGlyZUNvdW50ZXJJRAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAATVG90YWxfT3B0aW9uX09yZGVycwUAAAARVG90YWxPcHRpb25PcmRlcnMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAiVG90YWxfRnVuZHNfQWRkZWRfSW5fT3B0aW9uX09yZGVyXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAkVG90YWxGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABRUb3RhbF9Qb29sX0xpcXVpZGl0eQUAAAAIcmVhZF9UUEwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAORnVuZHNfQXRfUmlza18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAADUZ1bmRzX2F0X3Jpc2sJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAC0NhbGxfTGltaXRzBQAAAAtDYWxsX0xpbWl0cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAKUHV0X0xpbWl0cwUAAAAKUHV0X0xpbWl0cwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABRUb3RhbF9PcHRpb25fT3JkZXJzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAiVG90YWxPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAKVG90YWxfUHV0cwUAAAAIVG90YWxQdXQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAALVG90YWxfUHV0c18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAGVRvdGFsUHV0aW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAAtfVG90YWxfUHV0cwUAAAAMVG90YWxVc2VyUHV0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAAxfVG90YWxfUHV0c18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAHVRvdGFsVXNlclB1dGluU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEXdoaXRlbGlzdF9hZGRyZXNzBQAAAAtuZXR3b3JrX2ZlZQUAAAAEdW5pdAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAABZwb29sX2xpcXVpZGl0eV9hZGRyZXNzBQAAAAZBbW91bnQFAAAABHVuaXQFAAAAA25pbAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAEVZvdWNoZXIgQmFsYW5jZT1bCQABpAAAAAEFAAAAG3VwZGF0ZV91c2VyX3ZvdWNoZXJfYmFsYW5jZQIAAAATXSAsIFVzZXIgQmFsYW5jZSA9WwkAAaQAAAABBQAAABF1cGRhdGVfdXNlcl9mdW5kcwIAAAACXS4AAAABaQEAAAAXRmlsbF9Wb3VjaGVyc19MaXF1aWRpdHkAAAAABAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAAElObyBwYXltZW50IGF0dGFjaGVkLCBQbGVhc2UgQXR0YWNoIG9ubHkgV2hpdGVsaXN0ZWQgVG9rZW5zIGluIHBheW1lbnRbMV0uBAAAABdQcmV2aW91c1ZvdWNoZXJzQmFsYW5jZQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABpBdmFpbGFibGVfVm91Y2hlcnNfQmFsYW5jZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABRUb3RhbFZvdWNoZXJzQmFsYW5jZQkAAGQAAAACBQAAABdQcmV2aW91c1ZvdWNoZXJzQmFsYW5jZQgFAAAAA3BtdAAAAAZhbW91bnQEAAAAGVByZXZpb3VzVm91Y2hlcnNDb3VudGVySUQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAATVm91Y2hlcnNfQ291bnRlcl9JRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABZUb3RhbFZvdWNoZXJzQ291bnRlcklECQAAZAAAAAIFAAAAGVByZXZpb3VzVm91Y2hlcnNDb3VudGVySUQAAAAAAAAAAAEDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAALk9ubHkgV0FWRVMgaXMgYWxsb3dlZCB0byBkZXBvc2l0IGF0IHRoZSBtb21lbnQDCQAAAAAAAAIFAAAAFHJlYWRfc2h1dGRvd25fc3RhdHVzAAAAAAAAAAABCQAAAgAAAAECAAAAW0NvbnRyYWN0IFN0YXR1cyBpcyBDdXJyZW50bHkgU2h1dGRvd24uIFBsZWFzZSBTaWduIHRoZSBGdW5jdGlvbiBJbml0aWF0ZV9Db250cmFjdF9TaHV0ZG93bi4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGkF2YWlsYWJsZV9Wb3VjaGVyc19CYWxhbmNlBQAAABRUb3RhbFZvdWNoZXJzQmFsYW5jZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAFlRvdGFsVm91Y2hlcnNDb3VudGVySUQCAAAAFV9Wb3VjaGVyX0FkZGVkX0Ftb3VudAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE1ZvdWNoZXJzX0NvdW50ZXJfSUQFAAAAFlRvdGFsVm91Y2hlcnNDb3VudGVySUQFAAAAA25pbAAAAAFpAQAAAA5Jc3N1ZV9Wb3VjaGVycwAAAAIAAAAHVXNlcl9JRAAAAAxVc2VyX0FkZHJlc3MEAAAADlZvdWNoZXJfQW1vdW50AAAAAAAC+vCABAAAABlyZWFkX1RvdGFsVm91Y2hlcnNCYWxhbmNlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwIAAAAaQXZhaWxhYmxlX1ZvdWNoZXJzX0JhbGFuY2UCAAAAX0F2YWlsYWJsZV9Wb3VjaGVyc19CYWxhbmNlIEVudHJ5IGlzIG5vdCBGb3VuZC4gSW5pdGlhdGUgRmlsbF9Wb3VjaGVyc19MaXF1aWRpdHkgRnVuY3Rpb24gZmlyc3QuBAAAABt1cGRhdGVfVG90YWxWb3VjaGVyc0JhbGFuY2UJAABlAAAAAgUAAAAZcmVhZF9Ub3RhbFZvdWNoZXJzQmFsYW5jZQUAAAAOVm91Y2hlcl9BbW91bnQEAAAAFFZvdWNoZXJzSXNzdWVkVG9Vc2VyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAZVG90YWxfVm91Y2hlcnNfSXNzdWVkX1RvXwUAAAAMVXNlcl9BZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAGVRvdGFsVm91Y2hlcnNJc3N1ZWRUb1VzZXIJAABkAAAAAgUAAAAUVm91Y2hlcnNJc3N1ZWRUb1VzZXIAAAAAAAAAAAEEAAAAGlZvdWNoZXJzQW1vdW50SXNzdWVkVG9Vc2VyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAgVG90YWxfVm91Y2hlcnNfQW1vdW50X0lzc3VlZF9Ub18FAAAADFVzZXJfQWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAB9Ub3RhbFZvdWNoZXJzQW1vdW50SXNzdWVkVG9Vc2VyCQAAZAAAAAIFAAAAGlZvdWNoZXJzQW1vdW50SXNzdWVkVG9Vc2VyBQAAAA5Wb3VjaGVyX0Ftb3VudAQAAAAdUHJldmlvdXNWb3VjaGVyc0JhbGFuY2VvZlVzZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAaVG90YWxWb3VjaGVyc0JhbGFuY2VvZlVzZXIJAABkAAAAAgUAAAAdUHJldmlvdXNWb3VjaGVyc0JhbGFuY2VvZlVzZXIFAAAADlZvdWNoZXJfQW1vdW50AwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAAAAAAAAAgUAAAAUcmVhZF9zaHV0ZG93bl9zdGF0dXMAAAAAAAAAAAEJAAACAAAAAQIAAABbQ29udHJhY3QgU3RhdHVzIGlzIEN1cnJlbnRseSBTaHV0ZG93bi4gUGxlYXNlIFNpZ24gdGhlIEZ1bmN0aW9uIEluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duLgMJAABnAAAAAgAAAAAAAAAAAAUAAAAOVm91Y2hlcl9BbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAZ1ZvdWNoZXIgQmFsYW5jZSBjYW4ndCBiZSAwIG9yIGdvIGluIG5lZ2F0aXZlIFN0YXRlLiBJbmNyZWFzZSB0aGUgVm91Y2hlciBBbW91bnQgd2hlcmUgbWF4aW11bSBsaW1pdCBpcyAJAAGkAAAAAQUAAAAUbWF4aW11bV92b3VjaGVyX3NpemUCAAAADC8xMF44IFdhdmVzLgMJAABnAAAAAgAAAAAAAAAAAAUAAAAbdXBkYXRlX1RvdGFsVm91Y2hlcnNCYWxhbmNlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAADZVcGRhdGVkIFZvdWNoZXIgQmFsYW5jZSBjYW4ndCBnbyBpbiBuZWdhdGl2ZSBTdGF0ZSBvZiAJAAGkAAAAAQUAAAAbdXBkYXRlX1RvdGFsVm91Y2hlcnNCYWxhbmNlAgAAACggLzEwXjggV0FWRVMuIFJlZHVjZSB0aGUgVm91Y2hlciBBbW91bnQuAwkAAGYAAAACBQAAAA5Wb3VjaGVyX0Ftb3VudAUAAAAUbWF4aW11bV92b3VjaGVyX3NpemUJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAPElucHV0IFZvdWNoZXIgQmFsYW5jZSBjYW4ndCBleGNlZWQgdGhlIHNldCBtYXhpbXVtIGxpbWl0IG9mIAkAAaQAAAABBQAAABRtYXhpbXVtX3ZvdWNoZXJfc2l6ZQIAAAAMLzEwXjggV2F2ZXMuAwkAAGYAAAACBQAAABpUb3RhbFZvdWNoZXJzQmFsYW5jZW9mVXNlcgUAAAAUbWF4aW11bV92b3VjaGVyX3NpemUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAACsgVm91Y2hlciBCYWxhbmNlIGlzIGV4Y2VlZGluZyB0aGUgbGltaXQgb2YgCQABpAAAAAEFAAAAFG1heGltdW1fdm91Y2hlcl9zaXplAgAAAAwvMTBeOCBXYXZlcy4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAZVG90YWxfVm91Y2hlcnNfSXNzdWVkX1RvXwUAAAAMVXNlcl9BZGRyZXNzBQAAABlUb3RhbFZvdWNoZXJzSXNzdWVkVG9Vc2VyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAIFRvdGFsX1ZvdWNoZXJzX0Ftb3VudF9Jc3N1ZWRfVG9fBQAAAAxVc2VyX0FkZHJlc3MFAAAAH1RvdGFsVm91Y2hlcnNBbW91bnRJc3N1ZWRUb1VzZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAtDdXJyZW5jeV9JRAIAAAABXwUAAAAMVXNlcl9BZGRyZXNzBQAAABpUb3RhbFZvdWNoZXJzQmFsYW5jZW9mVXNlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAaQXZhaWxhYmxlX1ZvdWNoZXJzX0JhbGFuY2UFAAAAG3VwZGF0ZV9Ub3RhbFZvdWNoZXJzQmFsYW5jZQUAAAADbmlsAAAAAWkBAAAAEERlcG9zaXRVc2VyRnVuZHMAAAAABAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAAElObyBwYXltZW50IGF0dGFjaGVkLCBQbGVhc2UgQXR0YWNoIG9ubHkgV2hpdGVsaXN0ZWQgVG9rZW5zIGluIHBheW1lbnRbMV0uBAAAAA1pZkJsYWNrbGlzdGVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAADWNhbGxlcmFkZHJlc3MEAAAAE1ByZXZpb3VzVXNlckRlcG9zaXQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAA1jYWxsZXJhZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAEFRvdGFsVXNlckRlcG9zaXQJAABkAAAAAgUAAAATUHJldmlvdXNVc2VyRGVwb3NpdAgFAAAAA3BtdAAAAAZhbW91bnQEAAAAGFByZXZpb3VzRGVwb3NpdENvdW50ZXJJRAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABJEZXBvc2l0X0NvdW50ZXJfSUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAVVG90YWxEZXBvc2l0Q291bnRlcklECQAAZAAAAAIFAAAAGFByZXZpb3VzRGVwb3NpdENvdW50ZXJJRAAAAAAAAAAAAQMJAABmAAAAAgUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABCQABLAAAAAIFAAAAFHByb2R1Y3RfbGF1bmNoX2Vycm9yCQABpAAAAAEFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAMJAAAAAAAAAgUAAAAUcmVhZF9zaHV0ZG93bl9zdGF0dXMAAAAAAAAAAAEJAAACAAAAAQIAAABbQ29udHJhY3QgU3RhdHVzIGlzIEN1cnJlbnRseSBTaHV0ZG93bi4gUGxlYXNlIFNpZ24gdGhlIEZ1bmN0aW9uIEluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duLgMJAAAAAAAAAgUAAAANaWZCbGFja2xpc3RlZAIAAAADWWVzCQAAAgAAAAEJAAEsAAAAAgUAAAANY2FsbGVyYWRkcmVzcwIAAAA+IEFkZHJlc3MgaXMgQmxhY2tsaXN0ZWQuIFBsZWFzZSBjb250YWN0IEFkbWluIHRvIFdoaXRlbGlzdCBpdC4DCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAALk9ubHkgV0FWRVMgaXMgYWxsb3dlZCB0byBkZXBvc2l0IGF0IHRoZSBtb21lbnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAtDdXJyZW5jeV9JRAIAAAABXwUAAAANY2FsbGVyYWRkcmVzcwUAAAAQVG90YWxVc2VyRGVwb3NpdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAFVRvdGFsRGVwb3NpdENvdW50ZXJJRAIAAAABXwUAAAALQ3VycmVuY3lfSUQCAAAAAV8FAAAADWNhbGxlcmFkZHJlc3MIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJEZXBvc2l0X0NvdW50ZXJfSUQFAAAAFVRvdGFsRGVwb3NpdENvdW50ZXJJRAUAAAADbmlsAAAAAWkBAAAAEVdpdGhkcmF3VXNlckZ1bmRzAAAAAgAAAAxVc2VyX0FkZHJlc3MAAAAGQW1vdW50BAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAD3JlYWR1c2VyYmFsYW5jZQkBAAAAEUBleHRyTmF0aXZlKDEwNTUpAAAAAQkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MEAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAAZQAAAAIJAABlAAAAAgUAAAAPcmVhZHVzZXJiYWxhbmNlBQAAAAZBbW91bnQFAAAAC25ldHdvcmtfZmVlBAAAABdtaW5pbWltX3dpdGhkcmF3X2Ftb3VudAAAAAAAAJiWgAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAARd2hpdGVsaXN0X2FkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAARd2hpdGVsaXN0X2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQAAAAAAAAIFAAAAFHJlYWRfc2h1dGRvd25fc3RhdHVzAAAAAAAAAAABCQAAAgAAAAECAAAAW0NvbnRyYWN0IFN0YXR1cyBpcyBDdXJyZW50bHkgU2h1dGRvd24uIFBsZWFzZSBTaWduIHRoZSBGdW5jdGlvbiBJbml0aWF0ZV9Db250cmFjdF9TaHV0ZG93bi4DCQAAZgAAAAIFAAAAF21pbmltaW1fd2l0aGRyYXdfYW1vdW50BQAAAAZBbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAG01pbmltdW0gV2l0aGRyYXcgQW1vdW50IGlzIAkAAaQAAAABBQAAABdtaW5pbWltX3dpdGhkcmF3X2Ftb3VudAIAAAANLzEwXjhdIFdBVkVTLgMJAABmAAAAAgAAAAAAAAAAAAUAAAARdXBkYXRlX3VzZXJfZnVuZHMJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAANVBsYWNlZCBXaXRoZHJhdyBBbW91bnQgaXMgZ29pbmcgaW4gbmVnYXRpdmUgU3RhdGUgb2YgCQABpAAAAAEFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzAgAAAA0vMTBeOF0gV0FWRVMuCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABBQcmV2aW91c19CYWxhbmNlBQAAAA9yZWFkdXNlcmJhbGFuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAF05ldHdvcmtfRmVlX1RvX1dpdGhkcmF3BQAAAAtuZXR3b3JrX2ZlZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEXdoaXRlbGlzdF9hZGRyZXNzBQAAAAtuZXR3b3JrX2ZlZQUAAAAEdW5pdAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAxVc2VyX0FkZHJlc3MFAAAABkFtb3VudAUAAAAEdW5pdAUAAAADbmlsAAAAAWkBAAAAEEJsYWNrTGlzdEFkZHJlc3MAAAABAAAAC1VzZXJBZGRyZXNzBAAAAA1pZkJsYWNrbGlzdGVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAAC1VzZXJBZGRyZXNzBAAAABhQcmV2aW91c0JsYWNrTGlzdEFkZHJlc3MEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAaVG90YWxfQmxhY2tfTGlzdGVkX0FkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAVVG90YWxCbGFja0xpc3RBZGRyZXNzCQAAZAAAAAIFAAAAGFByZXZpb3VzQmxhY2tMaXN0QWRkcmVzcwAAAAAAAAAAAQMJAABmAAAAAgUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABCQABLAAAAAIFAAAAFHByb2R1Y3RfbGF1bmNoX2Vycm9yCQABpAAAAAEFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAARd2hpdGVsaXN0X2FkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAARd2hpdGVsaXN0X2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQAAAAAAAAIFAAAAFHJlYWRfc2h1dGRvd25fc3RhdHVzAAAAAAAAAAABCQAAAgAAAAECAAAAW0NvbnRyYWN0IFN0YXR1cyBpcyBDdXJyZW50bHkgU2h1dGRvd24uIFBsZWFzZSBTaWduIHRoZSBGdW5jdGlvbiBJbml0aWF0ZV9Db250cmFjdF9TaHV0ZG93bi4DCQAAAAAAAAIFAAAADWlmQmxhY2tsaXN0ZWQCAAAAA1llcwkAAAIAAAABAgAAACpBZGRyZXNzIGlzIGFscmVhZHkgYXZhaWxhYmxlIGluIEJsYWNrbGlzdC4JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAABFhZGRyX0JMQUNLTElTVEVEXwUAAAALVXNlckFkZHJlc3MCAAAAA1llcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAaVG90YWxfQmxhY2tfTGlzdGVkX0FkZHJlc3MFAAAAFVRvdGFsQmxhY2tMaXN0QWRkcmVzcwUAAAADbmlsAAAAAWkBAAAAFkRlbGV0ZUJsYWNrTGlzdEFkZHJlc3MAAAABAAAAC1VzZXJBZGRyZXNzBAAAAA1pZkJsYWNrbGlzdGVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAAC1VzZXJBZGRyZXNzBAAAABhQcmV2aW91c0JsYWNrTGlzdEFkZHJlc3MEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAaVG90YWxfQmxhY2tfTGlzdGVkX0FkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAVVG90YWxCbGFja0xpc3RBZGRyZXNzCQAAZQAAAAIFAAAAGFByZXZpb3VzQmxhY2tMaXN0QWRkcmVzcwAAAAAAAAAAAQMJAABmAAAAAgUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABCQABLAAAAAICAAAAI1Byb2R1Y3QgTGF1bmNoIFRpbWVzdGFtcCBpcyBzZXQgYXQgCQABpAAAAAEFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAARd2hpdGVsaXN0X2FkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAARd2hpdGVsaXN0X2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQAAAAAAAAIFAAAAFHJlYWRfc2h1dGRvd25fc3RhdHVzAAAAAAAAAAABCQAAAgAAAAECAAAAW0NvbnRyYWN0IFN0YXR1cyBpcyBDdXJyZW50bHkgU2h1dGRvd24uIFBsZWFzZSBTaWduIHRoZSBGdW5jdGlvbiBJbml0aWF0ZV9Db250cmFjdF9TaHV0ZG93bi4DCQAAAAAAAAIFAAAADWlmQmxhY2tsaXN0ZWQCAAAAA1llcwkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQABLAAAAAICAAAAEWFkZHJfQkxBQ0tMSVNURURfBQAAAAtVc2VyQWRkcmVzcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAaVG90YWxfQmxhY2tfTGlzdGVkX0FkZHJlc3MFAAAAFVRvdGFsQmxhY2tMaXN0QWRkcmVzcwUAAAADbmlsCQAAAgAAAAECAAAAJkFkZHJlc3MgaXMgbm90IGF2YWlsYWJsZSBpbiBCbGFja2xpc3QuAAAAAWkBAAAAGkluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duAAAAAAQAAAARYWRkU2h1dGRvd25TdGF0dXMEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAAPU2h1dGRvd25fU3RhdHVzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAADCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAEXdoaXRlbGlzdF9hZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQAEJQAAAAEFAAAAEXdoaXRlbGlzdF9hZGRyZXNzAgAAACIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkAAAAAAAACBQAAABFhZGRTaHV0ZG93blN0YXR1cwAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAPU2h1dGRvd25fU3RhdHVzAAAAAAAAAAABBQAAAANuaWwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAD1NodXRkb3duX1N0YXR1cwAAAAAAAAAAAAUAAAADbmlsAAAAAWkBAAAAA0RlbAAAAAEAAAAFRW50cnkJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAFRW50cnkFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAFT3JkZXIGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNFeGNoYW5nZVRyYW5zYWN0aW9uBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAXTWFzc1RyYW5zZmVyVHJhbnNhY3Rpb24GCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAAXQFAAAAByRtYXRjaDAHCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleTeWxeY=", "height": 2870386, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BvKAF2hgjDMoZa37iHvniVRywSc4amCan3ccyq9uSRu1 Next: 2fssH4pECRUrY6xEwtUnqYVuik2Qc3Y686kVefwuKb2S Diff:
OldNewDifferences
3434 let z = toBase58String(o.caller.bytes)
3535 let A = getString(this, ("addr_BLACKLISTED_" + s))
3636 let B = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
37- let C = valueOrElse(getInteger(((d + "_") + s)), 0)
37+ let C = getIntegerValue(((d + "_") + s))
3838 let D = ((C - p) - j)
39- let E = valueOrElse(getInteger((s + "_Voucher_Balance")), 0)
40- let F = ((E - p) - j)
41- let G = x
42- let H = y
43- let I = q
44- let J = 1
45- let K = (I + J)
46- let L = {
47- let M = getInteger(this, "Total_Option_Orders")
48- if ($isInstanceOf(M, "Int"))
39+ let E = x
40+ let F = y
41+ let G = q
42+ let H = 1
43+ let I = (G + H)
44+ let J = {
45+ let K = getInteger(this, "Total_Option_Orders")
46+ if ($isInstanceOf(K, "Int"))
4947 then {
50- let N = M
51- N
48+ let L = K
49+ L
5250 }
5351 else 0
5452 }
55- let O = (L + 1)
56- let P = {
57- let M = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(I)))
58- if ($isInstanceOf(M, "Int"))
53+ let M = (J + 1)
54+ let N = {
55+ let K = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(G)))
56+ if ($isInstanceOf(K, "Int"))
5957 then {
60- let N = M
61- N
58+ let L = K
59+ L
6260 }
6361 else 0
6462 }
65- let Q = (P + p)
63+ let O = (N + p)
64+ let P = {
65+ let K = getInteger(this, ("Total_Option_Orders_" + toString(G)))
66+ if ($isInstanceOf(K, "Int"))
67+ then {
68+ let L = K
69+ L
70+ }
71+ else 0
72+ }
73+ let Q = (P + 1)
6674 let R = {
67- let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
68- if ($isInstanceOf(M, "Int"))
75+ let K = getInteger(this, "Total_Calls")
76+ if ($isInstanceOf(K, "Int"))
6977 then {
70- let N = M
71- N
78+ let L = K
79+ L
7280 }
7381 else 0
7482 }
7583 let S = (R + 1)
7684 let T = {
77- let M = getInteger(this, "Total_Calls")
78- if ($isInstanceOf(M, "Int"))
85+ let K = getInteger(this, ("Total_Calls_" + toString(G)))
86+ if ($isInstanceOf(K, "Int"))
7987 then {
80- let N = M
81- N
88+ let L = K
89+ L
8290 }
8391 else 0
8492 }
8593 let U = (T + 1)
8694 let V = {
87- let M = getInteger(this, ("Total_Calls_" + toString(I)))
88- if ($isInstanceOf(M, "Int"))
95+ let K = getInteger(this, (s + "_Total_Calls"))
96+ if ($isInstanceOf(K, "Int"))
8997 then {
90- let N = M
91- N
98+ let L = K
99+ L
92100 }
93101 else 0
94102 }
95103 let W = (V + 1)
96104 let X = {
97- let M = getInteger(this, (s + "_Total_Calls"))
98- if ($isInstanceOf(M, "Int"))
105+ let K = getInteger(this, ((s + "_Total_Calls_") + toString(G)))
106+ if ($isInstanceOf(K, "Int"))
99107 then {
100- let N = M
101- N
108+ let L = K
109+ L
102110 }
103111 else 0
104112 }
105113 let Y = (X + 1)
106- let Z = {
107- let M = getInteger(this, ((s + "_Total_Calls_") + toString(I)))
108- if ($isInstanceOf(M, "Int"))
109- then {
110- let N = M
111- N
112- }
113- else 0
114- }
115- let aa = (Z + 1)
116- let ab = fraction(B, 5, 100)
114+ let Z = fraction(B, 5, 100)
117115 if ((o.caller != h))
118116 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
119117 else if ((n == 1))
124122 then throw(g)
125123 else if ((A == "Yes"))
126124 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
127- else if ((lastBlock.timestamp >= H))
125+ else if ((lastBlock.timestamp >= F))
128126 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
129- else if (if ((0 >= C))
130- then (0 >= E)
131- else false)
132- then throw("No Funds Available in Voucher as well in User Balance. Please Deposit Funds to Dapp.")
133- else if ((Q > ab))
134- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ab)) + ", Pending House Risk is ") + toString((ab - P))) + ". Join in next Cycle."))
135- else if ((k > p))
136- then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
137- else if ((p > l))
138- then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
127+ else if ((O > Z))
128+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(Z)) + ", Pending House Risk is ") + toString((Z - N))) + ". Join in next Cycle."))
129+ else if ((k > p))
130+ then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
131+ else if ((p > l))
132+ then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
133+ else if ((0 > D))
134+ then throw(("Placed Order Amount is going negative. Please reduce the Order Size. Negative Fund Amount = " + toString(D)))
139135 else if ((size(toString(x)) != 13))
140136 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
141137 else if ((size(toString(y)) != 13))
142138 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
143- else if ((F >= 0))
144- then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Y)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Y)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Y)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Calls", U), IntegerEntry(("Total_Calls_" + toString(I)), W), IntegerEntry((s + "_Total_Calls"), Y), IntegerEntry(((s + "_Total_Calls_") + toString(I)), aa), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
145- else if ((D >= 0))
146- then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Y)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Y)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Y)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Calls", U), IntegerEntry(("Total_Calls_" + toString(I)), W), IntegerEntry((s + "_Total_Calls"), Y), IntegerEntry(((s + "_Total_Calls_") + toString(I)), aa), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
147- else throw((((("Voucher Balance=[" + toString(F)) + "] , User Balance =[") + toString(D)) + "]."))
139+ else [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(W)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(W)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(W)), ((toString(G) + "_") + toString(I))), IntegerEntry("Total_Option_Orders", M), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(G)), O), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(G)), Z), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(G)), Q), IntegerEntry("Total_Calls", S), IntegerEntry(("Total_Calls_" + toString(G)), U), IntegerEntry((s + "_Total_Calls"), W), IntegerEntry(((s + "_Total_Calls_") + toString(G)), Y), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
148140 }
149141
150142
156148 let B = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
157149 let C = valueOrElse(getInteger(((d + "_") + s)), 0)
158150 let D = ((C - p) - j)
159- let E = valueOrElse(getInteger((s + "_Voucher_Balance")), 0)
160- let F = ((E - p) - j)
161- let G = x
162- let H = y
163- let I = q
164- let J = 1
165- let K = (I + J)
166- let L = {
167- let M = getInteger(this, "Total_Option_Orders")
168- if ($isInstanceOf(M, "Int"))
151+ let aa = valueOrElse(getInteger((s + "_Voucher_Balance")), 0)
152+ let ab = ((aa - p) - j)
153+ let E = x
154+ let F = y
155+ let G = q
156+ let H = 1
157+ let I = (G + H)
158+ let J = {
159+ let K = getInteger(this, "Total_Option_Orders")
160+ if ($isInstanceOf(K, "Int"))
169161 then {
170- let N = M
171- N
162+ let L = K
163+ L
172164 }
173165 else 0
174166 }
175- let O = (L + 1)
176- let P = {
177- let M = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(I)))
178- if ($isInstanceOf(M, "Int"))
167+ let M = (J + 1)
168+ let N = {
169+ let K = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(G)))
170+ if ($isInstanceOf(K, "Int"))
179171 then {
180- let N = M
181- N
172+ let L = K
173+ L
182174 }
183175 else 0
184176 }
185- let Q = (P + p)
186- let R = {
187- let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
188- if ($isInstanceOf(M, "Int"))
177+ let O = (N + p)
178+ let P = {
179+ let K = getInteger(this, ("Total_Option_Orders_" + toString(G)))
180+ if ($isInstanceOf(K, "Int"))
189181 then {
190- let N = M
191- N
182+ let L = K
183+ L
192184 }
193185 else 0
194186 }
195- let S = (R + 1)
187+ let Q = (P + 1)
196188 let ac = {
197- let M = getInteger(this, "Total_Puts")
198- if ($isInstanceOf(M, "Int"))
189+ let K = getInteger(this, "Total_Puts")
190+ if ($isInstanceOf(K, "Int"))
199191 then {
200- let N = M
201- N
192+ let L = K
193+ L
202194 }
203195 else 0
204196 }
205197 let ad = (ac + 1)
206198 let ae = {
207- let M = getInteger(this, ("Total_Puts_" + toString(I)))
208- if ($isInstanceOf(M, "Int"))
199+ let K = getInteger(this, ("Total_Puts_" + toString(G)))
200+ if ($isInstanceOf(K, "Int"))
209201 then {
210- let N = M
211- N
202+ let L = K
203+ L
212204 }
213205 else 0
214206 }
215207 let af = (ae + 1)
216208 let ag = {
217- let M = getInteger(this, (s + "_Total_Puts"))
218- if ($isInstanceOf(M, "Int"))
209+ let K = getInteger(this, (s + "_Total_Puts"))
210+ if ($isInstanceOf(K, "Int"))
219211 then {
220- let N = M
221- N
212+ let L = K
213+ L
222214 }
223215 else 0
224216 }
225217 let ah = (ag + 1)
226218 let ai = {
227- let M = getInteger(this, ((s + "_Total_Puts_") + toString(I)))
228- if ($isInstanceOf(M, "Int"))
219+ let K = getInteger(this, ((s + "_Total_Puts_") + toString(G)))
220+ if ($isInstanceOf(K, "Int"))
229221 then {
230- let N = M
231- N
222+ let L = K
223+ L
232224 }
233225 else 0
234226 }
235227 let aj = (ai + 1)
236- let ab = fraction(B, 5, 100)
228+ let Z = fraction(B, 5, 100)
237229 if ((o.caller != h))
238230 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
239231 else if ((n == 1))
244236 then throw(g)
245237 else if ((A == "Yes"))
246238 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
247- else if ((lastBlock.timestamp >= H))
239+ else if ((lastBlock.timestamp >= F))
248240 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
249241 else if (if ((0 >= C))
250- then (0 >= E)
242+ then (0 >= aa)
251243 else false)
252244 then throw("No Funds Available in Voucher as well in User Balance. Please Deposit Funds to Dapp.")
253- else if ((Q > ab))
254- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ab)) + ", Pending House Risk is ") + toString((ab - P))) + ". Join in next Cycle."))
245+ else if ((O > Z))
246+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(Z)) + ", Pending House Risk is ") + toString((Z - N))) + ". Join in next Cycle."))
255247 else if ((k > p))
256248 then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
257249 else if ((p > l))
260252 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
261253 else if ((size(toString(y)) != 13))
262254 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
263- else if ((F >= 0))
264- then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ah)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ah)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ah)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Puts", ad), IntegerEntry(("Total_Puts_" + toString(I)), af), IntegerEntry((s + "_Total_Puts"), ah), IntegerEntry(((s + "_Total_Puts_") + toString(I)), aj), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
255+ else if ((ab >= 0))
256+ then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), ab), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ah)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ah)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ah)), ((toString(G) + "_") + toString(I))), IntegerEntry("Total_Option_Orders", M), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(G)), O), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(G)), Z), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(G)), Q), IntegerEntry("Total_Puts", ad), IntegerEntry(("Total_Puts_" + toString(G)), af), IntegerEntry((s + "_Total_Puts"), ah), IntegerEntry(((s + "_Total_Puts_") + toString(G)), aj), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
265257 else if ((D >= 0))
266- then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ah)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ah)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ah)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Puts", ad), IntegerEntry(("Total_Puts_" + toString(I)), af), IntegerEntry((s + "_Total_Puts"), ah), IntegerEntry(((s + "_Total_Puts_") + toString(I)), aj), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
267- else throw((((("Voucher Balance=[" + toString(F)) + "] , User Balance =[") + toString(D)) + "]."))
258+ then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ah)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ah)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ah)), ((toString(G) + "_") + toString(I))), IntegerEntry("Total_Option_Orders", M), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(G)), O), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(G)), Z), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(G)), Q), IntegerEntry("Total_Puts", ad), IntegerEntry(("Total_Puts_" + toString(G)), af), IntegerEntry((s + "_Total_Puts"), ah), IntegerEntry(((s + "_Total_Puts_") + toString(G)), aj), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
259+ else throw((((("Voucher Balance=[" + toString(ab)) + "] , User Balance =[") + toString(D)) + "]."))
268260 }
269261
270262
276268 then o.payments[0]
277269 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
278270 let al = {
279- let M = getInteger(this, "Available_Vouchers_Balance")
280- if ($isInstanceOf(M, "Int"))
271+ let K = getInteger(this, "Available_Vouchers_Balance")
272+ if ($isInstanceOf(K, "Int"))
281273 then {
282- let N = M
283- N
274+ let L = K
275+ L
284276 }
285277 else 0
286278 }
287279 let am = (al + ak.amount)
288280 let an = {
289- let M = getInteger(this, "Vouchers_Counter_ID")
290- if ($isInstanceOf(M, "Int"))
281+ let K = getInteger(this, "Vouchers_Counter_ID")
282+ if ($isInstanceOf(K, "Int"))
291283 then {
292- let N = M
293- N
284+ let L = K
285+ L
294286 }
295287 else 0
296288 }
310302 let aq = valueOrErrorMessage(getInteger(this, "Available_Vouchers_Balance"), "Available_Vouchers_Balance Entry is not Found. Initiate Fill_Vouchers_Liquidity Function first.")
311303 let ar = (aq - ap)
312304 let as = {
313- let M = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
314- if ($isInstanceOf(M, "Int"))
305+ let K = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
306+ if ($isInstanceOf(K, "Int"))
315307 then {
316- let N = M
317- N
308+ let L = K
309+ L
318310 }
319311 else 0
320312 }
321313 let at = (as + 1)
322314 let au = {
323- let M = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
324- if ($isInstanceOf(M, "Int"))
315+ let K = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
316+ if ($isInstanceOf(K, "Int"))
325317 then {
326- let N = M
327- N
318+ let L = K
319+ L
328320 }
329321 else 0
330322 }
331323 let av = (au + ap)
332324 let aw = {
333- let M = getInteger(this, ((d + "_") + s))
334- if ($isInstanceOf(M, "Int"))
325+ let K = getInteger(this, ((d + "_") + s))
326+ if ($isInstanceOf(K, "Int"))
335327 then {
336- let N = M
337- N
328+ let L = K
329+ L
338330 }
339331 else 0
340332 }
364356 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
365357 let A = getString(this, ("addr_BLACKLISTED_" + z))
366358 let ay = {
367- let M = getInteger(this, ((d + "_") + z))
368- if ($isInstanceOf(M, "Int"))
359+ let K = getInteger(this, ((d + "_") + z))
360+ if ($isInstanceOf(K, "Int"))
369361 then {
370- let N = M
371- N
362+ let L = K
363+ L
372364 }
373365 else 0
374366 }
375367 let az = (ay + ak.amount)
376368 let aA = {
377- let M = getInteger(this, "Deposit_Counter_ID")
378- if ($isInstanceOf(M, "Int"))
369+ let K = getInteger(this, "Deposit_Counter_ID")
370+ if ($isInstanceOf(K, "Int"))
379371 then {
380- let N = M
381- N
372+ let L = K
373+ L
382374 }
383375 else 0
384376 }
419411 func BlackListAddress (aE) = {
420412 let A = getString(this, ("addr_BLACKLISTED_" + aE))
421413 let aF = {
422- let M = getInteger(this, "Total_Black_Listed_Address")
423- if ($isInstanceOf(M, "Int"))
414+ let K = getInteger(this, "Total_Black_Listed_Address")
415+ if ($isInstanceOf(K, "Int"))
424416 then {
425- let N = M
426- N
417+ let L = K
418+ L
427419 }
428420 else 0
429421 }
445437 func DeleteBlackListAddress (aE) = {
446438 let A = getString(this, ("addr_BLACKLISTED_" + aE))
447439 let aF = {
448- let M = getInteger(this, "Total_Black_Listed_Address")
449- if ($isInstanceOf(M, "Int"))
440+ let K = getInteger(this, "Total_Black_Listed_Address")
441+ if ($isInstanceOf(K, "Int"))
450442 then {
451- let N = M
452- N
443+ let L = K
444+ L
453445 }
454446 else 0
455447 }
470462 @Callable(o)
471463 func Initiate_Contract_Shutdown () = {
472464 let aH = {
473- let M = getInteger(this, "Shutdown_Status")
474- if ($isInstanceOf(M, "Int"))
465+ let K = getInteger(this, "Shutdown_Status")
466+ if ($isInstanceOf(K, "Int"))
475467 then {
476- let N = M
477- N
468+ let L = K
469+ L
478470 }
479471 else 0
480472 }
493485
494486 @Verifier(aJ)
495487 func aK () = {
496- let M = aJ
497- if (if ($isInstanceOf(M, "Order"))
488+ let K = aJ
489+ if (if ($isInstanceOf(K, "Order"))
498490 then true
499- else if ($isInstanceOf(M, "ExchangeTransaction"))
491+ else if ($isInstanceOf(K, "ExchangeTransaction"))
500492 then true
501- else if ($isInstanceOf(M, "MassTransferTransaction"))
493+ else if ($isInstanceOf(K, "MassTransferTransaction"))
502494 then true
503- else $isInstanceOf(M, "TransferTransaction"))
495+ else $isInstanceOf(K, "TransferTransaction"))
504496 then {
505- let aL = M
497+ let aL = K
506498 false
507499 }
508500 else sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "3N4wBgYtWgJW2LTRef2ekWQTrEXCRfXmGLh"
55
66 let b = base58'EXLfxKmqhQPiProBaoPatTentUSZX5Dd8A8bYDcmfNwt'
77
88 let c = 1695427860000
99
1010 let d = "WAVES"
1111
1212 let e = "Product Launch Timestamp is set at "
1313
1414 let f = "No payment attached, Please Attach Token in payment[1]."
1515
1616 let g = "Oracle is closed. Wait Until Oracle is Turned On."
1717
1818 let h = addressFromPublicKey(b)
1919
2020 let i = addressFromPublicKey(base58'6oay51Q6zPcFP9bSwUC4Potx2KGyD4AUjpL5uLR4QeRN')
2121
2222 let j = 900000
2323
2424 let k = 10000000
2525
2626 let l = 10000000000
2727
2828 let m = 100000000
2929
3030 let n = valueOrErrorMessage(getInteger(this, "Shutdown_Status"), "Initiate_Contract_Shutdown function value is not Set, Please Sign that first.")
3131
3232 @Callable(o)
3333 func placeoptionCall (p,q,r,s,t,u,v,w,x,y) = {
3434 let z = toBase58String(o.caller.bytes)
3535 let A = getString(this, ("addr_BLACKLISTED_" + s))
3636 let B = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
37- let C = valueOrElse(getInteger(((d + "_") + s)), 0)
37+ let C = getIntegerValue(((d + "_") + s))
3838 let D = ((C - p) - j)
39- let E = valueOrElse(getInteger((s + "_Voucher_Balance")), 0)
40- let F = ((E - p) - j)
41- let G = x
42- let H = y
43- let I = q
44- let J = 1
45- let K = (I + J)
46- let L = {
47- let M = getInteger(this, "Total_Option_Orders")
48- if ($isInstanceOf(M, "Int"))
39+ let E = x
40+ let F = y
41+ let G = q
42+ let H = 1
43+ let I = (G + H)
44+ let J = {
45+ let K = getInteger(this, "Total_Option_Orders")
46+ if ($isInstanceOf(K, "Int"))
4947 then {
50- let N = M
51- N
48+ let L = K
49+ L
5250 }
5351 else 0
5452 }
55- let O = (L + 1)
56- let P = {
57- let M = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(I)))
58- if ($isInstanceOf(M, "Int"))
53+ let M = (J + 1)
54+ let N = {
55+ let K = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(G)))
56+ if ($isInstanceOf(K, "Int"))
5957 then {
60- let N = M
61- N
58+ let L = K
59+ L
6260 }
6361 else 0
6462 }
65- let Q = (P + p)
63+ let O = (N + p)
64+ let P = {
65+ let K = getInteger(this, ("Total_Option_Orders_" + toString(G)))
66+ if ($isInstanceOf(K, "Int"))
67+ then {
68+ let L = K
69+ L
70+ }
71+ else 0
72+ }
73+ let Q = (P + 1)
6674 let R = {
67- let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
68- if ($isInstanceOf(M, "Int"))
75+ let K = getInteger(this, "Total_Calls")
76+ if ($isInstanceOf(K, "Int"))
6977 then {
70- let N = M
71- N
78+ let L = K
79+ L
7280 }
7381 else 0
7482 }
7583 let S = (R + 1)
7684 let T = {
77- let M = getInteger(this, "Total_Calls")
78- if ($isInstanceOf(M, "Int"))
85+ let K = getInteger(this, ("Total_Calls_" + toString(G)))
86+ if ($isInstanceOf(K, "Int"))
7987 then {
80- let N = M
81- N
88+ let L = K
89+ L
8290 }
8391 else 0
8492 }
8593 let U = (T + 1)
8694 let V = {
87- let M = getInteger(this, ("Total_Calls_" + toString(I)))
88- if ($isInstanceOf(M, "Int"))
95+ let K = getInteger(this, (s + "_Total_Calls"))
96+ if ($isInstanceOf(K, "Int"))
8997 then {
90- let N = M
91- N
98+ let L = K
99+ L
92100 }
93101 else 0
94102 }
95103 let W = (V + 1)
96104 let X = {
97- let M = getInteger(this, (s + "_Total_Calls"))
98- if ($isInstanceOf(M, "Int"))
105+ let K = getInteger(this, ((s + "_Total_Calls_") + toString(G)))
106+ if ($isInstanceOf(K, "Int"))
99107 then {
100- let N = M
101- N
108+ let L = K
109+ L
102110 }
103111 else 0
104112 }
105113 let Y = (X + 1)
106- let Z = {
107- let M = getInteger(this, ((s + "_Total_Calls_") + toString(I)))
108- if ($isInstanceOf(M, "Int"))
109- then {
110- let N = M
111- N
112- }
113- else 0
114- }
115- let aa = (Z + 1)
116- let ab = fraction(B, 5, 100)
114+ let Z = fraction(B, 5, 100)
117115 if ((o.caller != h))
118116 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
119117 else if ((n == 1))
120118 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
121119 else if ((c > lastBlock.timestamp))
122120 then throw((e + toString(c)))
123121 else if ((w == "CLOSE"))
124122 then throw(g)
125123 else if ((A == "Yes"))
126124 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
127- else if ((lastBlock.timestamp >= H))
125+ else if ((lastBlock.timestamp >= F))
128126 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
129- else if (if ((0 >= C))
130- then (0 >= E)
131- else false)
132- then throw("No Funds Available in Voucher as well in User Balance. Please Deposit Funds to Dapp.")
133- else if ((Q > ab))
134- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ab)) + ", Pending House Risk is ") + toString((ab - P))) + ". Join in next Cycle."))
135- else if ((k > p))
136- then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
137- else if ((p > l))
138- then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
127+ else if ((O > Z))
128+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(Z)) + ", Pending House Risk is ") + toString((Z - N))) + ". Join in next Cycle."))
129+ else if ((k > p))
130+ then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
131+ else if ((p > l))
132+ then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
133+ else if ((0 > D))
134+ then throw(("Placed Order Amount is going negative. Please reduce the Order Size. Negative Fund Amount = " + toString(D)))
139135 else if ((size(toString(x)) != 13))
140136 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
141137 else if ((size(toString(y)) != 13))
142138 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
143- else if ((F >= 0))
144- then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Y)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Y)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Y)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Calls", U), IntegerEntry(("Total_Calls_" + toString(I)), W), IntegerEntry((s + "_Total_Calls"), Y), IntegerEntry(((s + "_Total_Calls_") + toString(I)), aa), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
145- else if ((D >= 0))
146- then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Y)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Y)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Y)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Calls", U), IntegerEntry(("Total_Calls_" + toString(I)), W), IntegerEntry((s + "_Total_Calls"), Y), IntegerEntry(((s + "_Total_Calls_") + toString(I)), aa), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
147- else throw((((("Voucher Balance=[" + toString(F)) + "] , User Balance =[") + toString(D)) + "]."))
139+ else [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(W)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(W)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(W)), ((toString(G) + "_") + toString(I))), IntegerEntry("Total_Option_Orders", M), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(G)), O), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(G)), Z), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(G)), Q), IntegerEntry("Total_Calls", S), IntegerEntry(("Total_Calls_" + toString(G)), U), IntegerEntry((s + "_Total_Calls"), W), IntegerEntry(((s + "_Total_Calls_") + toString(G)), Y), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
148140 }
149141
150142
151143
152144 @Callable(o)
153145 func placeoptionPut (p,q,r,s,t,u,v,w,x,y) = {
154146 let z = toBase58String(o.caller.bytes)
155147 let A = getString(this, ("addr_BLACKLISTED_" + s))
156148 let B = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
157149 let C = valueOrElse(getInteger(((d + "_") + s)), 0)
158150 let D = ((C - p) - j)
159- let E = valueOrElse(getInteger((s + "_Voucher_Balance")), 0)
160- let F = ((E - p) - j)
161- let G = x
162- let H = y
163- let I = q
164- let J = 1
165- let K = (I + J)
166- let L = {
167- let M = getInteger(this, "Total_Option_Orders")
168- if ($isInstanceOf(M, "Int"))
151+ let aa = valueOrElse(getInteger((s + "_Voucher_Balance")), 0)
152+ let ab = ((aa - p) - j)
153+ let E = x
154+ let F = y
155+ let G = q
156+ let H = 1
157+ let I = (G + H)
158+ let J = {
159+ let K = getInteger(this, "Total_Option_Orders")
160+ if ($isInstanceOf(K, "Int"))
169161 then {
170- let N = M
171- N
162+ let L = K
163+ L
172164 }
173165 else 0
174166 }
175- let O = (L + 1)
176- let P = {
177- let M = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(I)))
178- if ($isInstanceOf(M, "Int"))
167+ let M = (J + 1)
168+ let N = {
169+ let K = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(G)))
170+ if ($isInstanceOf(K, "Int"))
179171 then {
180- let N = M
181- N
172+ let L = K
173+ L
182174 }
183175 else 0
184176 }
185- let Q = (P + p)
186- let R = {
187- let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
188- if ($isInstanceOf(M, "Int"))
177+ let O = (N + p)
178+ let P = {
179+ let K = getInteger(this, ("Total_Option_Orders_" + toString(G)))
180+ if ($isInstanceOf(K, "Int"))
189181 then {
190- let N = M
191- N
182+ let L = K
183+ L
192184 }
193185 else 0
194186 }
195- let S = (R + 1)
187+ let Q = (P + 1)
196188 let ac = {
197- let M = getInteger(this, "Total_Puts")
198- if ($isInstanceOf(M, "Int"))
189+ let K = getInteger(this, "Total_Puts")
190+ if ($isInstanceOf(K, "Int"))
199191 then {
200- let N = M
201- N
192+ let L = K
193+ L
202194 }
203195 else 0
204196 }
205197 let ad = (ac + 1)
206198 let ae = {
207- let M = getInteger(this, ("Total_Puts_" + toString(I)))
208- if ($isInstanceOf(M, "Int"))
199+ let K = getInteger(this, ("Total_Puts_" + toString(G)))
200+ if ($isInstanceOf(K, "Int"))
209201 then {
210- let N = M
211- N
202+ let L = K
203+ L
212204 }
213205 else 0
214206 }
215207 let af = (ae + 1)
216208 let ag = {
217- let M = getInteger(this, (s + "_Total_Puts"))
218- if ($isInstanceOf(M, "Int"))
209+ let K = getInteger(this, (s + "_Total_Puts"))
210+ if ($isInstanceOf(K, "Int"))
219211 then {
220- let N = M
221- N
212+ let L = K
213+ L
222214 }
223215 else 0
224216 }
225217 let ah = (ag + 1)
226218 let ai = {
227- let M = getInteger(this, ((s + "_Total_Puts_") + toString(I)))
228- if ($isInstanceOf(M, "Int"))
219+ let K = getInteger(this, ((s + "_Total_Puts_") + toString(G)))
220+ if ($isInstanceOf(K, "Int"))
229221 then {
230- let N = M
231- N
222+ let L = K
223+ L
232224 }
233225 else 0
234226 }
235227 let aj = (ai + 1)
236- let ab = fraction(B, 5, 100)
228+ let Z = fraction(B, 5, 100)
237229 if ((o.caller != h))
238230 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
239231 else if ((n == 1))
240232 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
241233 else if ((c > lastBlock.timestamp))
242234 then throw((e + toString(c)))
243235 else if ((w == "CLOSE"))
244236 then throw(g)
245237 else if ((A == "Yes"))
246238 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
247- else if ((lastBlock.timestamp >= H))
239+ else if ((lastBlock.timestamp >= F))
248240 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
249241 else if (if ((0 >= C))
250- then (0 >= E)
242+ then (0 >= aa)
251243 else false)
252244 then throw("No Funds Available in Voucher as well in User Balance. Please Deposit Funds to Dapp.")
253- else if ((Q > ab))
254- then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ab)) + ", Pending House Risk is ") + toString((ab - P))) + ". Join in next Cycle."))
245+ else if ((O > Z))
246+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(Z)) + ", Pending House Risk is ") + toString((Z - N))) + ". Join in next Cycle."))
255247 else if ((k > p))
256248 then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
257249 else if ((p > l))
258250 then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
259251 else if ((size(toString(x)) != 13))
260252 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
261253 else if ((size(toString(y)) != 13))
262254 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
263- else if ((F >= 0))
264- then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ah)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ah)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ah)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Puts", ad), IntegerEntry(("Total_Puts_" + toString(I)), af), IntegerEntry((s + "_Total_Puts"), ah), IntegerEntry(((s + "_Total_Puts_") + toString(I)), aj), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
255+ else if ((ab >= 0))
256+ then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), ab), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ah)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ah)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ah)), ((toString(G) + "_") + toString(I))), IntegerEntry("Total_Option_Orders", M), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(G)), O), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(G)), Z), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(G)), Q), IntegerEntry("Total_Puts", ad), IntegerEntry(("Total_Puts_" + toString(G)), af), IntegerEntry((s + "_Total_Puts"), ah), IntegerEntry(((s + "_Total_Puts_") + toString(G)), aj), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
265257 else if ((D >= 0))
266- then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ah)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ah)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ah)), ((toString(I) + "_") + toString(K))), IntegerEntry("Total_Option_Orders", O), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(I)), Q), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(I)), ab), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(I)), S), IntegerEntry("Total_Puts", ad), IntegerEntry(("Total_Puts_" + toString(I)), af), IntegerEntry((s + "_Total_Puts"), ah), IntegerEntry(((s + "_Total_Puts_") + toString(I)), aj), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
267- else throw((((("Voucher Balance=[" + toString(F)) + "] , User Balance =[") + toString(D)) + "]."))
258+ then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ah)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ah)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ah)), ((toString(G) + "_") + toString(I))), IntegerEntry("Total_Option_Orders", M), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(G)), O), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(G)), Z), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(G)), Q), IntegerEntry("Total_Puts", ad), IntegerEntry(("Total_Puts_" + toString(G)), af), IntegerEntry((s + "_Total_Puts"), ah), IntegerEntry(((s + "_Total_Puts_") + toString(G)), aj), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
259+ else throw((((("Voucher Balance=[" + toString(ab)) + "] , User Balance =[") + toString(D)) + "]."))
268260 }
269261
270262
271263
272264 @Callable(o)
273265 func Fill_Vouchers_Liquidity () = {
274266 let z = toBase58String(o.caller.bytes)
275267 let ak = if ((size(o.payments) == 1))
276268 then o.payments[0]
277269 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
278270 let al = {
279- let M = getInteger(this, "Available_Vouchers_Balance")
280- if ($isInstanceOf(M, "Int"))
271+ let K = getInteger(this, "Available_Vouchers_Balance")
272+ if ($isInstanceOf(K, "Int"))
281273 then {
282- let N = M
283- N
274+ let L = K
275+ L
284276 }
285277 else 0
286278 }
287279 let am = (al + ak.amount)
288280 let an = {
289- let M = getInteger(this, "Vouchers_Counter_ID")
290- if ($isInstanceOf(M, "Int"))
281+ let K = getInteger(this, "Vouchers_Counter_ID")
282+ if ($isInstanceOf(K, "Int"))
291283 then {
292- let N = M
293- N
284+ let L = K
285+ L
294286 }
295287 else 0
296288 }
297289 let ao = (an + 1)
298290 if (isDefined(ak.assetId))
299291 then throw("Only WAVES is allowed to deposit at the moment")
300292 else if ((n == 1))
301293 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
302294 else [IntegerEntry("Available_Vouchers_Balance", am), IntegerEntry((toString(ao) + "_Voucher_Added_Amount"), ak.amount), IntegerEntry("Vouchers_Counter_ID", ao)]
303295 }
304296
305297
306298
307299 @Callable(o)
308300 func Issue_Vouchers (r,s) = {
309301 let ap = 50000000
310302 let aq = valueOrErrorMessage(getInteger(this, "Available_Vouchers_Balance"), "Available_Vouchers_Balance Entry is not Found. Initiate Fill_Vouchers_Liquidity Function first.")
311303 let ar = (aq - ap)
312304 let as = {
313- let M = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
314- if ($isInstanceOf(M, "Int"))
305+ let K = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
306+ if ($isInstanceOf(K, "Int"))
315307 then {
316- let N = M
317- N
308+ let L = K
309+ L
318310 }
319311 else 0
320312 }
321313 let at = (as + 1)
322314 let au = {
323- let M = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
324- if ($isInstanceOf(M, "Int"))
315+ let K = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
316+ if ($isInstanceOf(K, "Int"))
325317 then {
326- let N = M
327- N
318+ let L = K
319+ L
328320 }
329321 else 0
330322 }
331323 let av = (au + ap)
332324 let aw = {
333- let M = getInteger(this, ((d + "_") + s))
334- if ($isInstanceOf(M, "Int"))
325+ let K = getInteger(this, ((d + "_") + s))
326+ if ($isInstanceOf(K, "Int"))
335327 then {
336- let N = M
337- N
328+ let L = K
329+ L
338330 }
339331 else 0
340332 }
341333 let ax = (aw + ap)
342334 if ((o.caller != h))
343335 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
344336 else if ((n == 1))
345337 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
346338 else if ((0 >= ap))
347339 then throw((("Voucher Balance can't be 0 or go in negative State. Increase the Voucher Amount where maximum limit is " + toString(m)) + "/10^8 Waves."))
348340 else if ((0 >= ar))
349341 then throw((("Updated Voucher Balance can't go in negative State of " + toString(ar)) + " /10^8 WAVES. Reduce the Voucher Amount."))
350342 else if ((ap > m))
351343 then throw((("Input Voucher Balance can't exceed the set maximum limit of " + toString(m)) + "/10^8 Waves."))
352344 else if ((ax > m))
353345 then throw((((s + " Voucher Balance is exceeding the limit of ") + toString(m)) + "/10^8 Waves."))
354346 else [IntegerEntry(("Total_Vouchers_Issued_To_" + s), at), IntegerEntry(("Total_Vouchers_Amount_Issued_To_" + s), av), IntegerEntry(((d + "_") + s), ax), IntegerEntry("Available_Vouchers_Balance", ar)]
355347 }
356348
357349
358350
359351 @Callable(o)
360352 func DepositUserFunds () = {
361353 let z = toBase58String(o.caller.bytes)
362354 let ak = if ((size(o.payments) == 1))
363355 then o.payments[0]
364356 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
365357 let A = getString(this, ("addr_BLACKLISTED_" + z))
366358 let ay = {
367- let M = getInteger(this, ((d + "_") + z))
368- if ($isInstanceOf(M, "Int"))
359+ let K = getInteger(this, ((d + "_") + z))
360+ if ($isInstanceOf(K, "Int"))
369361 then {
370- let N = M
371- N
362+ let L = K
363+ L
372364 }
373365 else 0
374366 }
375367 let az = (ay + ak.amount)
376368 let aA = {
377- let M = getInteger(this, "Deposit_Counter_ID")
378- if ($isInstanceOf(M, "Int"))
369+ let K = getInteger(this, "Deposit_Counter_ID")
370+ if ($isInstanceOf(K, "Int"))
379371 then {
380- let N = M
381- N
372+ let L = K
373+ L
382374 }
383375 else 0
384376 }
385377 let aB = (aA + 1)
386378 if ((c > lastBlock.timestamp))
387379 then throw((e + toString(c)))
388380 else if ((n == 1))
389381 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
390382 else if ((A == "Yes"))
391383 then throw((z + " Address is Blacklisted. Please contact Admin to Whitelist it."))
392384 else if (isDefined(ak.assetId))
393385 then throw("Only WAVES is allowed to deposit at the moment")
394386 else [IntegerEntry(((d + "_") + z), az), IntegerEntry(((((toString(aB) + "_") + d) + "_") + z), ak.amount), IntegerEntry("Deposit_Counter_ID", aB)]
395387 }
396388
397389
398390
399391 @Callable(o)
400392 func WithdrawUserFunds (s,p) = {
401393 let z = toBase58String(o.caller.bytes)
402394 let aC = getIntegerValue(((d + "_") + s))
403395 let D = ((aC - p) - j)
404396 let aD = 10000000
405397 if ((o.caller != h))
406398 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
407399 else if ((n == 1))
408400 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
409401 else if ((aD > p))
410402 then throw((("Minimum Withdraw Amount is " + toString(aD)) + "/10^8] WAVES."))
411403 else if ((0 > D))
412404 then throw((("Placed Withdraw Amount is going in negative State of " + toString(D)) + "/10^8] WAVES."))
413405 else [IntegerEntry("Previous_Balance", aC), IntegerEntry("Network_Fee_To_Withdraw", j), IntegerEntry(((d + "_") + s), D), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(s), p, unit)]
414406 }
415407
416408
417409
418410 @Callable(o)
419411 func BlackListAddress (aE) = {
420412 let A = getString(this, ("addr_BLACKLISTED_" + aE))
421413 let aF = {
422- let M = getInteger(this, "Total_Black_Listed_Address")
423- if ($isInstanceOf(M, "Int"))
414+ let K = getInteger(this, "Total_Black_Listed_Address")
415+ if ($isInstanceOf(K, "Int"))
424416 then {
425- let N = M
426- N
417+ let L = K
418+ L
427419 }
428420 else 0
429421 }
430422 let aG = (aF + 1)
431423 if ((c > lastBlock.timestamp))
432424 then throw((e + toString(c)))
433425 else if ((o.caller != h))
434426 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
435427 else if ((n == 1))
436428 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
437429 else if ((A == "Yes"))
438430 then throw("Address is already available in Blacklist.")
439431 else [StringEntry(("addr_BLACKLISTED_" + aE), "Yes"), IntegerEntry("Total_Black_Listed_Address", aG)]
440432 }
441433
442434
443435
444436 @Callable(o)
445437 func DeleteBlackListAddress (aE) = {
446438 let A = getString(this, ("addr_BLACKLISTED_" + aE))
447439 let aF = {
448- let M = getInteger(this, "Total_Black_Listed_Address")
449- if ($isInstanceOf(M, "Int"))
440+ let K = getInteger(this, "Total_Black_Listed_Address")
441+ if ($isInstanceOf(K, "Int"))
450442 then {
451- let N = M
452- N
443+ let L = K
444+ L
453445 }
454446 else 0
455447 }
456448 let aG = (aF - 1)
457449 if ((c > lastBlock.timestamp))
458450 then throw(("Product Launch Timestamp is set at " + toString(c)))
459451 else if ((o.caller != h))
460452 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
461453 else if ((n == 1))
462454 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
463455 else if ((A == "Yes"))
464456 then [DeleteEntry(("addr_BLACKLISTED_" + aE)), IntegerEntry("Total_Black_Listed_Address", aG)]
465457 else throw("Address is not available in Blacklist.")
466458 }
467459
468460
469461
470462 @Callable(o)
471463 func Initiate_Contract_Shutdown () = {
472464 let aH = {
473- let M = getInteger(this, "Shutdown_Status")
474- if ($isInstanceOf(M, "Int"))
465+ let K = getInteger(this, "Shutdown_Status")
466+ if ($isInstanceOf(K, "Int"))
475467 then {
476- let N = M
477- N
468+ let L = K
469+ L
478470 }
479471 else 0
480472 }
481473 if ((o.caller != h))
482474 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
483475 else if ((aH == 0))
484476 then [IntegerEntry("Shutdown_Status", 1)]
485477 else [IntegerEntry("Shutdown_Status", 0)]
486478 }
487479
488480
489481
490482 @Callable(o)
491483 func Del (aI) = [DeleteEntry(aI)]
492484
493485
494486 @Verifier(aJ)
495487 func aK () = {
496- let M = aJ
497- if (if ($isInstanceOf(M, "Order"))
488+ let K = aJ
489+ if (if ($isInstanceOf(K, "Order"))
498490 then true
499- else if ($isInstanceOf(M, "ExchangeTransaction"))
491+ else if ($isInstanceOf(K, "ExchangeTransaction"))
500492 then true
501- else if ($isInstanceOf(M, "MassTransferTransaction"))
493+ else if ($isInstanceOf(K, "MassTransferTransaction"))
502494 then true
503- else $isInstanceOf(M, "TransferTransaction"))
495+ else $isInstanceOf(K, "TransferTransaction"))
504496 then {
505- let aL = M
497+ let aL = K
506498 false
507499 }
508500 else sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
509501 }
510502

github/deemru/w8io/026f985 
132.08 ms