tx · 8jKGBcDHXhx1Ubq49YSWfWPJtgzDqmTwzV7NsZfZs4Yh

3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2:  -0.03200000 Waves

2023.11.30 12:21 [2865955] smart account 3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2 > SELF 0.00000000 Waves

{ "type": 13, "id": "8jKGBcDHXhx1Ubq49YSWfWPJtgzDqmTwzV7NsZfZs4Yh", "fee": 3200000, "feeAssetId": null, "timestamp": 1701336130332, "version": 2, "chainId": 84, "sender": "3N1s2w4NHgbrXxNZXH9RtaVT9ptHRJcgSp2", "senderPublicKey": "DNKNL32sAVUYg4iGA3tW8Z6VXrENmGCmKfG6DLar82aP", "proofs": [ "2JmDtakBqv1SqxkAgPrhZnXMrUwLHiSGRV1kmqHvH58h3WywQcePKyzqjTBoQHshaJmSuoKdXeNrFNVy4Rus4noi" ], "script": "base64:AAIFAAAAAAAAAEAIAhIMCgoBAQgIAQEBCAEBEgwKCgEBCAgBAQEIAQESABIFCgMBCAgSABIECgIIARIDCgEIEgMKAQgSABIDCgEIAAAADgAAAAAWcG9vbF9saXF1aWRpdHlfYWRkcmVzcwIAAAAjM040d0JnWXRXZ0pXMkxUUmVmMmVrV1FUckVYQ1JmWG1HTGgAAAAAFERhcHBfQWRkcmVzc19wdWJfa2V5AQAAACDI7Zjahu5VNVhgxzyW6CpbYvUiMMUf5OyBUQlo584acwAAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wAAAAAYq/YBYgAAAAAAtDdXJyZW5jeV9JRAIAAAAFV0FWRVMAAAAAFHByb2R1Y3RfbGF1bmNoX2Vycm9yAgAAACNQcm9kdWN0IExhdW5jaCBUaW1lc3RhbXAgaXMgc2V0IGF0IAAAAAAQbm9fcGF5bWVudF9lcnJvcgIAAAA3Tm8gcGF5bWVudCBhdHRhY2hlZCwgUGxlYXNlIEF0dGFjaCBUb2tlbiBpbiBwYXltZW50WzFdLgAAAAASY2xvc2VkX29yYWNsZV9lcm9yAgAAADFPcmFjbGUgaXMgY2xvc2VkLiBXYWl0IFVudGlsIE9yYWNsZSBpcyBUdXJuZWQgT24uAAAAABF3aGl0ZWxpc3RfYWRkcmVzcwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAURGFwcF9BZGRyZXNzX3B1Yl9rZXkAAAAACWQyZGNhbGxlcgkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQEAAAAgVjmO4YcVELU8Q7V+UVV19WsVRR/5xSyznPDzMoLMOkEAAAAAC25ldHdvcmtfZmVlAAAAAAAADbugAAAAABJtaW5pbXVtX29yZGVyX3NpemUAAAAAAACYloAAAAAAEm1heGltdW1fb3JkZXJfc2l6ZQAAAAACVAvkAAAAAAAUbWF4aW11bV92b3VjaGVyX3NpemUAAAAAAAX14QAAAAAAFHJlYWRfc2h1dGRvd25fc3RhdHVzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwIAAAAPU2h1dGRvd25fU3RhdHVzAgAAAE1Jbml0aWF0ZV9Db250cmFjdF9TaHV0ZG93biBmdW5jdGlvbiB2YWx1ZSBpcyBub3QgU2V0LCBQbGVhc2UgU2lnbiB0aGF0IGZpcnN0LgAAAAoAAAABaQEAAAAPcGxhY2VvcHRpb25DYWxsAAAACgAAAAZBbW91bnQAAAAPT3B0aW9uQ291bnRlcklEAAAAB1VzZXJfSUQAAAAMVXNlcl9BZGRyZXNzAAAABVByaWNlAAAAC0NhbGxfTGltaXRzAAAAClB1dF9MaW1pdHMAAAANT3JhY2xlX1N0YXR1cwAAABVTdGFydF9PcmRlcl9UaW1lc3RhbXAAAAATRW5kX09yZGVyX1RpbWVzdGFtcAQAAAANY2FsbGVyYWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAA1pZkJsYWNrbGlzdGVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAADFVzZXJfQWRkcmVzcwQAAAAIcmVhZF9UUEwJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAABZwb29sX2xpcXVpZGl0eV9hZGRyZXNzAgAAABRUb3RhbF9Qb29sX0xpcXVpZGl0eQIAAAAkTm8gSW5pdGlhbCBQb29sIExpcXVpZGl0eSB3YXMgRm91bmQuBAAAAA9yZWFkX3VzZXJfZnVuZHMJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQfAAAAAQkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MAAAAAAAAAAAAEAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAAZQAAAAIJAABlAAAAAgUAAAAPcmVhZF91c2VyX2Z1bmRzBQAAAAZBbW91bnQFAAAAC25ldHdvcmtfZmVlBAAAABdyZWFkX3VzZXJfdm91Y2hlcl9mdW5kcwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB8AAAABCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAQX1ZvdWNoZXJfQmFsYW5jZQAAAAAAAAAAAAQAAAAbdXBkYXRlX3VzZXJfdm91Y2hlcl9iYWxhbmNlCQAAZQAAAAIJAABlAAAAAgUAAAAXcmVhZF91c2VyX3ZvdWNoZXJfZnVuZHMFAAAABkFtb3VudAUAAAALbmV0d29ya19mZWUEAAAAIXJlYWRfc3RhcnRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAUAAAAVU3RhcnRfT3JkZXJfVGltZXN0YW1wBAAAAB9yZWFkX2VuZF9vcmRlcl9wZXJtaXRfdGltZXN0YW1wBQAAABNFbmRfT3JkZXJfVGltZXN0YW1wBAAAAB1jaGVja2lmdXNlcmNhbnBsYXl3aXRodm91Y2hlcgMJAABmAAAAAgUAAAAXcmVhZF91c2VyX3ZvdWNoZXJfZnVuZHMFAAAAG3VwZGF0ZV91c2VyX3ZvdWNoZXJfYmFsYW5jZQYHBAAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAPT3B0aW9uQ291bnRlcklEBAAAABJPcGlvbkV4cGlyZUNvdW50ZXIAAAAAAAAAAAEEAAAAFU9wdGlvbkV4cGlyZUNvdW50ZXJJRAkAAGQAAAACBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAST3Bpb25FeHBpcmVDb3VudGVyBAAAABRQcmV2aW91c09wdGlvbk9yZGVycwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABNUb3RhbF9PcHRpb25fT3JkZXJzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAEVRvdGFsT3B0aW9uT3JkZXJzCQAAZAAAAAIFAAAAFFByZXZpb3VzT3B0aW9uT3JkZXJzAAAAAAAAAAABBAAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAACJUb3RhbF9GdW5kc19BZGRlZF9Jbl9PcHRpb25fT3JkZXJfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAJFRvdGFsRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgkAAGQAAAACBQAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIFAAAABkFtb3VudAQAAAAlUHJldmlvdXNPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAFFRvdGFsX09wdGlvbl9PcmRlcnNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAIlRvdGFsT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIJAABkAAAAAgUAAAAlUHJldmlvdXNPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAAMUHJldmlvdXNDYWxsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAC1RvdGFsX0NhbGxzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAACVRvdGFsQ2FsbAkAAGQAAAACBQAAAAxQcmV2aW91c0NhbGwAAAAAAAAAAAEEAAAAHVByZXZpb3VzQ2FsbGluU3BlY2lmaWNDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAMVG90YWxfQ2FsbHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAGlRvdGFsQ2FsbGluU3BlY2lmaWNDb3VudGVyCQAAZAAAAAIFAAAAHVByZXZpb3VzQ2FsbGluU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAABBQcmV2aW91c1VzZXJDYWxsBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAAxfVG90YWxfQ2FsbHMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAANVG90YWxVc2VyQ2FsbAkAAGQAAAACBQAAABBQcmV2aW91c1VzZXJDYWxsAAAAAAAAAAABBAAAACFQcmV2aW91c1VzZXJDYWxsaW5TcGVjaWZpY0NvdW50ZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAANX1RvdGFsX0NhbGxzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAB5Ub3RhbFVzZXJDYWxsaW5TcGVjaWZpY0NvdW50ZXIJAABkAAAAAgUAAAAhUHJldmlvdXNVc2VyQ2FsbGluU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAAA1GdW5kc19hdF9yaXNrCQAAawAAAAMFAAAACHJlYWRfVFBMAAAAAAAAAAAFAAAAAAAAAABkAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAAAAAAAAAgUAAAAUcmVhZF9zaHV0ZG93bl9zdGF0dXMAAAAAAAAAAAEJAAACAAAAAQIAAABbQ29udHJhY3QgU3RhdHVzIGlzIEN1cnJlbnRseSBTaHV0ZG93bi4gUGxlYXNlIFNpZ24gdGhlIEZ1bmN0aW9uIEluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duLgMJAABmAAAAAgUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkAAAIAAAABCQABLAAAAAIFAAAAFHByb2R1Y3RfbGF1bmNoX2Vycm9yCQABpAAAAAEFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAMJAAAAAAAAAgUAAAANT3JhY2xlX1N0YXR1cwIAAAAFQ0xPU0UJAAACAAAAAQUAAAASY2xvc2VkX29yYWNsZV9lcm9yAwkAAAAAAAACBQAAAA1pZkJsYWNrbGlzdGVkAgAAAANZZXMJAAACAAAAAQkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAAPiBBZGRyZXNzIGlzIEJsYWNrbGlzdGVkLiBQbGVhc2UgY29udGFjdCBBZG1pbiB0byBXaGl0ZWxpc3QgaXQuAwkAAGcAAAACCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAUAAAAfcmVhZF9lbmRfb3JkZXJfcGVybWl0X3RpbWVzdGFtcAkAAAIAAAABAgAAAEdPcHRpb24gT3JkZXIgcGxhY2luZyBUaW1pbmcgTGltaXRzIGFyZSBPdmVyLiBQbGVhc2UgSm9pbiBpbiBOZXh0IEN5Y2xlLgMJAABmAAAAAgUAAAAkVG90YWxGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyBQAAAA1GdW5kc19hdF9yaXNrCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAABDTm8gbW9yZSBvcmRlcnMgYWNjZXB0ZWQsIE9wdGlvbiBIb3VzZSBSaXNrIFNpemUgaXMgb25seSBsaW1pdGVkIHRvIAkAAaQAAAABBQAAAA1GdW5kc19hdF9yaXNrAgAAABgsIFBlbmRpbmcgSG91c2UgUmlzayBpcyAJAAGkAAAAAQkAAGUAAAACBQAAAA1GdW5kc19hdF9yaXNrBQAAACdQcmV2aW91c0Z1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXICAAAAFS4gSm9pbiBpbiBuZXh0IEN5Y2xlLgMJAABmAAAAAgUAAAASbWluaW11bV9vcmRlcl9zaXplBQAAAAZBbW91bnQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIFBsYWNlZCBPcmRlciBTaXplIGlzIGxlc3MgdGhhbiBbCQABpAAAAAEFAAAAEm1pbmltdW1fb3JkZXJfc2l6ZQIAAAANLzEwXjhdIFdBVkVTLgMJAABmAAAAAgUAAAAGQW1vdW50BQAAABJtYXhpbXVtX29yZGVyX3NpemUJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAIFBsYWNlZCBPcmRlciBTaXplIGlzIG1vcmUgdGhhbiBbCQABpAAAAAEFAAAAEm1heGltdW1fb3JkZXJfc2l6ZQIAAAANLzEwXjhdIFdBVkVTLgMDCQAAZgAAAAIAAAAAAAAAAAAFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAAAAAAAAIFAAAAHWNoZWNraWZ1c2VyY2FucGxheXdpdGh2b3VjaGVyBwcJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAWFBsYWNlZCBPcmRlciBBbW91bnQgaXMgZ29pbmcgbmVnYXRpdmUuIFBsZWFzZSByZWR1Y2UgdGhlIE9yZGVyIFNpemUuVXNlciBGdW5kIEFtb3VudCA9IFsJAAGkAAAAAQUAAAARdXBkYXRlX3VzZXJfZnVuZHMCAAAAAV0DCQEAAAACIT0AAAACCQABMQAAAAEJAAGkAAAAAQUAAAAVU3RhcnRfT3JkZXJfVGltZXN0YW1wAAAAAAAAAAANCQAAAgAAAAECAAAAb1N0YXJ0IFRpbWVzdGFtcCBpcyBXcm9uZy4gUGxlYXNlIEVudGVyIGEgVmFsaWQgVGltZXN0YW1wLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBUaW1lc3RhbXAgbGVzcyB0aGFuIDEzIENoYXJzLgMJAQAAAAIhPQAAAAIJAAExAAAAAQkAAaQAAAABBQAAABNFbmRfT3JkZXJfVGltZXN0YW1wAAAAAAAAAAANCQAAAgAAAAECAAAAbUVuZCBUaW1lc3RhbXAgaXMgV3JvbmcuIFBsZWFzZSBFbnRlciBhIFZhbGlkIFRpbWVzdGFtcC4gUHJvYmFibHkgeW91IGVudGVyZWQgYW4gVGltZXN0YW1wIGxlc3MgdGhhbiAxMyBDaGFycy4DAwkAAAAAAAACBQAAABdyZWFkX3VzZXJfdm91Y2hlcl9mdW5kcwAAAAAAAAAAAAYJAABmAAAAAgAAAAAAAAAAAAUAAAAbdXBkYXRlX3VzZXJfdm91Y2hlcl9iYWxhbmNlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgIAAAAIVXNlcl9JRF8FAAAADFVzZXJfQWRkcmVzcwUAAAAHVXNlcl9JRAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAAxVc2VyX0FkZHJlc3MFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpOZXR3b3JrX0ZlZV9Ub19QbGFjZV9PcmRlcgUAAAALbmV0d29ya19mZWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAFQ2FsbF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAA1Ub3RhbFVzZXJDYWxsCQABpAAAAAEFAAAABVByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxDYWxsX0Ftb3VudF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAA1Ub3RhbFVzZXJDYWxsBQAAAAZBbW91bnQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAPQ2FsbF9TdGFydF9FbmRfBQAAAAxVc2VyX0FkZHJlc3MCAAAAAV8JAAGkAAAAAQUAAAANVG90YWxVc2VyQ2FsbAkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQCAAAAAV8JAAGkAAAAAQUAAAAVT3B0aW9uRXhwaXJlQ291bnRlcklECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABNUb3RhbF9PcHRpb25fT3JkZXJzBQAAABFUb3RhbE9wdGlvbk9yZGVycwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAACJUb3RhbF9GdW5kc19BZGRlZF9Jbl9PcHRpb25fT3JkZXJfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAACRUb3RhbEZ1bmRzQWRkZWRJblNwZWNpZmljT3B0aW9uT3JkZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5BQAAAAhyZWFkX1RQTAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAAA5GdW5kc19BdF9SaXNrXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAANRnVuZHNfYXRfcmlzawkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAALQ2FsbF9MaW1pdHMFAAAAC0NhbGxfTGltaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApQdXRfTGltaXRzBQAAAApQdXRfTGltaXRzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAFFRvdGFsX09wdGlvbl9PcmRlcnNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAACJUb3RhbE9wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtUb3RhbF9DYWxscwUAAAAJVG90YWxDYWxsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADFRvdGFsX0NhbGxzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAaVG90YWxDYWxsaW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAAxfVG90YWxfQ2FsbHMFAAAADVRvdGFsVXNlckNhbGwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAADV9Ub3RhbF9DYWxsc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAHlRvdGFsVXNlckNhbGxpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwUAAAALbmV0d29ya19mZWUFAAAABHVuaXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAWcG9vbF9saXF1aWRpdHlfYWRkcmVzcwUAAAAGQW1vdW50BQAAAAR1bml0BQAAAANuaWwDBQAAAB1jaGVja2lmdXNlcmNhbnBsYXl3aXRodm91Y2hlcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAICAAAACFVzZXJfSURfBQAAAAxVc2VyX0FkZHJlc3MFAAAAB1VzZXJfSUQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAABBfVm91Y2hlcl9CYWxhbmNlBQAAABt1cGRhdGVfdXNlcl92b3VjaGVyX2JhbGFuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGk5ldHdvcmtfRmVlX1RvX1BsYWNlX09yZGVyBQAAAAtuZXR3b3JrX2ZlZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAVDYWxsXwUAAAAMVXNlcl9BZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADVRvdGFsVXNlckNhbGwJAAGkAAAAAQUAAAAFUHJpY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADENhbGxfQW1vdW50XwUAAAAMVXNlcl9BZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADVRvdGFsVXNlckNhbGwFAAAABkFtb3VudAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA9DYWxsX1N0YXJ0X0VuZF8FAAAADFVzZXJfQWRkcmVzcwIAAAABXwkAAaQAAAABBQAAAA1Ub3RhbFVzZXJDYWxsCQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAIAAAABXwkAAaQAAAABBQAAABVPcHRpb25FeHBpcmVDb3VudGVySUQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE1RvdGFsX09wdGlvbl9PcmRlcnMFAAAAEVRvdGFsT3B0aW9uT3JkZXJzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAIlRvdGFsX0Z1bmRzX0FkZGVkX0luX09wdGlvbl9PcmRlcl8JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAJFRvdGFsRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAUVG90YWxfUG9vbF9MaXF1aWRpdHkFAAAACHJlYWRfVFBMCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADkZ1bmRzX0F0X1Jpc2tfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAAA1GdW5kc19hdF9yaXNrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtDYWxsX0xpbWl0cwUAAAALQ2FsbF9MaW1pdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClB1dF9MaW1pdHMFAAAAClB1dF9MaW1pdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAUVG90YWxfT3B0aW9uX09yZGVyc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAIlRvdGFsT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAC1RvdGFsX0NhbGxzBQAAAAlUb3RhbENhbGwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAMVG90YWxfQ2FsbHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAABpUb3RhbENhbGxpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAADF9Ub3RhbF9DYWxscwUAAAANVG90YWxVc2VyQ2FsbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAANX1RvdGFsX0NhbGxzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAUAAAAeVG90YWxVc2VyQ2FsbGluU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAEXdoaXRlbGlzdF9hZGRyZXNzBQAAAAtuZXR3b3JrX2ZlZQUAAAAEdW5pdAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAABZwb29sX2xpcXVpZGl0eV9hZGRyZXNzBQAAAAZBbW91bnQFAAAABHVuaXQFAAAAA25pbAkAAAIAAAABAgAAAAxXcm9uZyBFbnRyeS4AAAABaQEAAAAOcGxhY2VvcHRpb25QdXQAAAAKAAAABkFtb3VudAAAAA9PcHRpb25Db3VudGVySUQAAAAHVXNlcl9JRAAAAAxVc2VyX0FkZHJlc3MAAAAFUHJpY2UAAAALQ2FsbF9MaW1pdHMAAAAKUHV0X0xpbWl0cwAAAA1PcmFjbGVfU3RhdHVzAAAAFVN0YXJ0X09yZGVyX1RpbWVzdGFtcAAAABNFbmRfT3JkZXJfVGltZXN0YW1wBAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAADWlmQmxhY2tsaXN0ZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFhZGRyX0JMQUNLTElTVEVEXwUAAAAMVXNlcl9BZGRyZXNzBAAAAAhyZWFkX1RQTAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAFnBvb2xfbGlxdWlkaXR5X2FkZHJlc3MCAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5AgAAACRObyBJbml0aWFsIFBvb2wgTGlxdWlkaXR5IHdhcyBGb3VuZC4EAAAAD3JlYWRfdXNlcl9mdW5kcwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB8AAAABCQABLAAAAAIJAAEsAAAAAgUAAAALQ3VycmVuY3lfSUQCAAAAAV8FAAAADFVzZXJfQWRkcmVzcwAAAAAAAAAAAAQAAAARdXBkYXRlX3VzZXJfZnVuZHMJAABlAAAAAgkAAGUAAAACBQAAAA9yZWFkX3VzZXJfZnVuZHMFAAAABkFtb3VudAUAAAALbmV0d29ya19mZWUEAAAAF3JlYWRfdXNlcl92b3VjaGVyX2Z1bmRzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHwAAAAEJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAABBfVm91Y2hlcl9CYWxhbmNlAAAAAAAAAAAABAAAABt1cGRhdGVfdXNlcl92b3VjaGVyX2JhbGFuY2UJAABlAAAAAgUAAAAXcmVhZF91c2VyX3ZvdWNoZXJfZnVuZHMFAAAABkFtb3VudAQAAAAhcmVhZF9zdGFydF9vcmRlcl9wZXJtaXRfdGltZXN0YW1wBQAAABVTdGFydF9PcmRlcl9UaW1lc3RhbXAEAAAAH3JlYWRfZW5kX29yZGVyX3Blcm1pdF90aW1lc3RhbXAFAAAAE0VuZF9PcmRlcl9UaW1lc3RhbXAEAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAAA9PcHRpb25Db3VudGVySUQEAAAAEk9waW9uRXhwaXJlQ291bnRlcgAAAAAAAAAAAQQAAAAVT3B0aW9uRXhwaXJlQ291bnRlcklECQAAZAAAAAIFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAABJPcGlvbkV4cGlyZUNvdW50ZXIEAAAAFFByZXZpb3VzT3B0aW9uT3JkZXJzBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAE1RvdGFsX09wdGlvbl9PcmRlcnMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAARVG90YWxPcHRpb25PcmRlcnMJAABkAAAAAgUAAAAUUHJldmlvdXNPcHRpb25PcmRlcnMAAAAAAAAAAAEEAAAAJ1ByZXZpb3VzRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAICAAAAIlRvdGFsX0Z1bmRzX0FkZGVkX0luX09wdGlvbl9PcmRlcl8JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAkVG90YWxGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyCQAAZAAAAAIFAAAAJ1ByZXZpb3VzRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgUAAAAGQW1vdW50BAAAACVQcmV2aW91c09wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAAUVG90YWxfT3B0aW9uX09yZGVyc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAiVG90YWxPcHRpb25PcmRlcnNpblNwZWNpZmljQ291bnRlcgkAAGQAAAACBQAAACVQcmV2aW91c09wdGlvbk9yZGVyc2luU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAAAtQcmV2aW91c1B1dAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAAApUb3RhbF9QdXRzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAACFRvdGFsUHV0CQAAZAAAAAIFAAAAC1ByZXZpb3VzUHV0AAAAAAAAAAABBAAAABxQcmV2aW91c1B1dGluU3BlY2lmaWNDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgIAAAALVG90YWxfUHV0c18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAZVG90YWxQdXRpblNwZWNpZmljQ291bnRlcgkAAGQAAAACBQAAABxQcmV2aW91c1B1dGluU3BlY2lmaWNDb3VudGVyAAAAAAAAAAABBAAAAA9QcmV2aW91c1VzZXJQdXQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAAC19Ub3RhbF9QdXRzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAADFRvdGFsVXNlclB1dAkAAGQAAAACBQAAAA9QcmV2aW91c1VzZXJQdXQAAAAAAAAAAAEEAAAAIFByZXZpb3VzVXNlclB1dGluU3BlY2lmaWNDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAADF9Ub3RhbF9QdXRzXwkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAB1Ub3RhbFVzZXJQdXRpblNwZWNpZmljQ291bnRlcgkAAGQAAAACBQAAACBQcmV2aW91c1VzZXJQdXRpblNwZWNpZmljQ291bnRlcgAAAAAAAAAAAQQAAAANRnVuZHNfYXRfcmlzawkAAGsAAAADBQAAAAhyZWFkX1RQTAAAAAAAAAAABQAAAAAAAAAAZAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAARd2hpdGVsaXN0X2FkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAARd2hpdGVsaXN0X2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQAAAAAAAAIFAAAAFHJlYWRfc2h1dGRvd25fc3RhdHVzAAAAAAAAAAABCQAAAgAAAAECAAAAW0NvbnRyYWN0IFN0YXR1cyBpcyBDdXJyZW50bHkgU2h1dGRvd24uIFBsZWFzZSBTaWduIHRoZSBGdW5jdGlvbiBJbml0aWF0ZV9Db250cmFjdF9TaHV0ZG93bi4DCQAAZgAAAAIFAAAAGHByb2R1Y3RfbGF1bmNoX3RpbWVzdGFtcAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAAACAAAAAQkAASwAAAACBQAAABRwcm9kdWN0X2xhdW5jaF9lcnJvcgkAAaQAAAABBQAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXADCQAAAAAAAAIFAAAADU9yYWNsZV9TdGF0dXMCAAAABUNMT1NFCQAAAgAAAAEFAAAAEmNsb3NlZF9vcmFjbGVfZXJvcgMJAAAAAAAAAgUAAAANaWZCbGFja2xpc3RlZAIAAAADWWVzCQAAAgAAAAEJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAAD4gQWRkcmVzcyBpcyBCbGFja2xpc3RlZC4gUGxlYXNlIGNvbnRhY3QgQWRtaW4gdG8gV2hpdGVsaXN0IGl0LgMJAABnAAAAAggFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAAH3JlYWRfZW5kX29yZGVyX3Blcm1pdF90aW1lc3RhbXAJAAACAAAAAQIAAABHT3B0aW9uIE9yZGVyIHBsYWNpbmcgVGltaW5nIExpbWl0cyBhcmUgT3Zlci4gUGxlYXNlIEpvaW4gaW4gTmV4dCBDeWNsZS4DCQAAZgAAAAIFAAAAJFRvdGFsRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgUAAAANRnVuZHNfYXRfcmlzawkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAQ05vIG1vcmUgb3JkZXJzIGFjY2VwdGVkLCBPcHRpb24gSG91c2UgUmlzayBTaXplIGlzIG9ubHkgbGltaXRlZCB0byAJAAGkAAAAAQUAAAANRnVuZHNfYXRfcmlzawIAAAAYLCBQZW5kaW5nIEhvdXNlIFJpc2sgaXMgCQABpAAAAAEJAABlAAAAAgUAAAANRnVuZHNfYXRfcmlzawUAAAAnUHJldmlvdXNGdW5kc0FkZGVkSW5TcGVjaWZpY09wdGlvbk9yZGVyAgAAABUuIEpvaW4gaW4gbmV4dCBDeWNsZS4DCQAAZgAAAAIFAAAAEm1pbmltdW1fb3JkZXJfc2l6ZQUAAAAGQW1vdW50CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACBQbGFjZWQgT3JkZXIgU2l6ZSBpcyBsZXNzIHRoYW4gWwkAAaQAAAABBQAAABJtaW5pbXVtX29yZGVyX3NpemUCAAAADS8xMF44XSBXQVZFUy4DCQAAZgAAAAIFAAAABkFtb3VudAUAAAASbWF4aW11bV9vcmRlcl9zaXplCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACBQbGFjZWQgT3JkZXIgU2l6ZSBpcyBtb3JlIHRoYW4gWwkAAaQAAAABBQAAABJtYXhpbXVtX29yZGVyX3NpemUCAAAADS8xMF44XSBXQVZFUy4DCQAAZgAAAAIAAAAAAAAAAAAFAAAAEXVwZGF0ZV91c2VyX2Z1bmRzCQAAAgAAAAEJAAEsAAAAAgIAAABcUGxhY2VkIE9yZGVyIEFtb3VudCBpcyBnb2luZyBuZWdhdGl2ZS4gUGxlYXNlIHJlZHVjZSB0aGUgT3JkZXIgU2l6ZS4gTmVnYXRpdmUgRnVuZCBBbW91bnQgPSAJAAGkAAAAAQUAAAARdXBkYXRlX3VzZXJfZnVuZHMDCQEAAAACIT0AAAACCQABMQAAAAEJAAGkAAAAAQUAAAAVU3RhcnRfT3JkZXJfVGltZXN0YW1wAAAAAAAAAAANCQAAAgAAAAECAAAAb1N0YXJ0IFRpbWVzdGFtcCBpcyBXcm9uZy4gUGxlYXNlIEVudGVyIGEgVmFsaWQgVGltZXN0YW1wLiBQcm9iYWJseSB5b3UgZW50ZXJlZCBhbiBUaW1lc3RhbXAgbGVzcyB0aGFuIDEzIENoYXJzLgMJAQAAAAIhPQAAAAIJAAExAAAAAQkAAaQAAAABBQAAABNFbmRfT3JkZXJfVGltZXN0YW1wAAAAAAAAAAANCQAAAgAAAAECAAAAbUVuZCBUaW1lc3RhbXAgaXMgV3JvbmcuIFBsZWFzZSBFbnRlciBhIFZhbGlkIFRpbWVzdGFtcC4gUHJvYmFibHkgeW91IGVudGVyZWQgYW4gVGltZXN0YW1wIGxlc3MgdGhhbiAxMyBDaGFycy4JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACAgAAAAhVc2VyX0lEXwUAAAAMVXNlcl9BZGRyZXNzBQAAAAdVc2VyX0lECQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAALQ3VycmVuY3lfSUQCAAAAAV8FAAAADFVzZXJfQWRkcmVzcwUAAAARdXBkYXRlX3VzZXJfZnVuZHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAMVXNlcl9BZGRyZXNzAgAAABBfVm91Y2hlcl9CYWxhbmNlBQAAABt1cGRhdGVfdXNlcl92b3VjaGVyX2JhbGFuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGk5ldHdvcmtfRmVlX1RvX1BsYWNlX09yZGVyBQAAAAtuZXR3b3JrX2ZlZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARQdXRfBQAAAAxVc2VyX0FkZHJlc3MCAAAAAV8JAAGkAAAAAQUAAAAMVG90YWxVc2VyUHV0CQABpAAAAAEFAAAABVByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAtQdXRfQW1vdW50XwUAAAAMVXNlcl9BZGRyZXNzAgAAAAFfCQABpAAAAAEFAAAADFRvdGFsVXNlclB1dAUAAAAGQW1vdW50CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAADlB1dF9TdGFydF9FbmRfBQAAAAxVc2VyX0FkZHJlc3MCAAAAAV8JAAGkAAAAAQUAAAAMVG90YWxVc2VyUHV0CQABLAAAAAIJAAEsAAAAAgkAAaQAAAABBQAAABRyZWFkX09wdGlvbkNvdW50ZXJJRAIAAAABXwkAAaQAAAABBQAAABVPcHRpb25FeHBpcmVDb3VudGVySUQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE1RvdGFsX09wdGlvbl9PcmRlcnMFAAAAEVRvdGFsT3B0aW9uT3JkZXJzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAIlRvdGFsX0Z1bmRzX0FkZGVkX0luX09wdGlvbl9PcmRlcl8JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAJFRvdGFsRnVuZHNBZGRlZEluU3BlY2lmaWNPcHRpb25PcmRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAUVG90YWxfUG9vbF9MaXF1aWRpdHkFAAAACHJlYWRfVFBMCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAADkZ1bmRzX0F0X1Jpc2tfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAAA1GdW5kc19hdF9yaXNrCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAAtDYWxsX0xpbWl0cwUAAAALQ2FsbF9MaW1pdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClB1dF9MaW1pdHMFAAAAClB1dF9MaW1pdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAUVG90YWxfT3B0aW9uX09yZGVyc18JAAGkAAAAAQUAAAAUcmVhZF9PcHRpb25Db3VudGVySUQFAAAAIlRvdGFsT3B0aW9uT3JkZXJzaW5TcGVjaWZpY0NvdW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAClRvdGFsX1B1dHMFAAAACFRvdGFsUHV0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAICAAAAC1RvdGFsX1B1dHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAABlUb3RhbFB1dGluU3BlY2lmaWNDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAALX1RvdGFsX1B1dHMFAAAADFRvdGFsVXNlclB1dAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAMX1RvdGFsX1B1dHNfCQABpAAAAAEFAAAAFHJlYWRfT3B0aW9uQ291bnRlcklEBQAAAB1Ub3RhbFVzZXJQdXRpblNwZWNpZmljQ291bnRlcgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwUAAAALbmV0d29ya19mZWUFAAAABHVuaXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAWcG9vbF9saXF1aWRpdHlfYWRkcmVzcwUAAAAGQW1vdW50BQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAXRmlsbF9Wb3VjaGVyc19MaXF1aWRpdHkAAAAABAAAAA1jYWxsZXJhZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAMJAAAAAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAkAAAIAAAABAgAAAElObyBwYXltZW50IGF0dGFjaGVkLCBQbGVhc2UgQXR0YWNoIG9ubHkgV2hpdGVsaXN0ZWQgVG9rZW5zIGluIHBheW1lbnRbMV0uBAAAABdQcmV2aW91c1ZvdWNoZXJzQmFsYW5jZQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABpBdmFpbGFibGVfVm91Y2hlcnNfQmFsYW5jZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABRUb3RhbFZvdWNoZXJzQmFsYW5jZQkAAGQAAAACBQAAABdQcmV2aW91c1ZvdWNoZXJzQmFsYW5jZQgFAAAAA3BtdAAAAAZhbW91bnQEAAAAGVByZXZpb3VzVm91Y2hlcnNDb3VudGVySUQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAATVm91Y2hlcnNfQ291bnRlcl9JRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABZUb3RhbFZvdWNoZXJzQ291bnRlcklECQAAZAAAAAIFAAAAGVByZXZpb3VzVm91Y2hlcnNDb3VudGVySUQAAAAAAAAAAAEDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAALk9ubHkgV0FWRVMgaXMgYWxsb3dlZCB0byBkZXBvc2l0IGF0IHRoZSBtb21lbnQDCQAAAAAAAAIFAAAAFHJlYWRfc2h1dGRvd25fc3RhdHVzAAAAAAAAAAABCQAAAgAAAAECAAAAW0NvbnRyYWN0IFN0YXR1cyBpcyBDdXJyZW50bHkgU2h1dGRvd24uIFBsZWFzZSBTaWduIHRoZSBGdW5jdGlvbiBJbml0aWF0ZV9Db250cmFjdF9TaHV0ZG93bi4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAGkF2YWlsYWJsZV9Wb3VjaGVyc19CYWxhbmNlBQAAABRUb3RhbFZvdWNoZXJzQmFsYW5jZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAFlRvdGFsVm91Y2hlcnNDb3VudGVySUQCAAAAFV9Wb3VjaGVyX0FkZGVkX0Ftb3VudAgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAE1ZvdWNoZXJzX0NvdW50ZXJfSUQFAAAAFlRvdGFsVm91Y2hlcnNDb3VudGVySUQFAAAAA25pbAAAAAFpAQAAAA5Jc3N1ZV9Wb3VjaGVycwAAAAMAAAAOVm91Y2hlcl9BbW91bnQAAAAHVXNlcl9JRAAAAAxVc2VyX0FkZHJlc3MEAAAAGXJlYWRfVG90YWxWb3VjaGVyc0JhbGFuY2UJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzAgAAABpBdmFpbGFibGVfVm91Y2hlcnNfQmFsYW5jZQIAAABfQXZhaWxhYmxlX1ZvdWNoZXJzX0JhbGFuY2UgRW50cnkgaXMgbm90IEZvdW5kLiBJbml0aWF0ZSBGaWxsX1ZvdWNoZXJzX0xpcXVpZGl0eSBGdW5jdGlvbiBmaXJzdC4EAAAAG3VwZGF0ZV9Ub3RhbFZvdWNoZXJzQmFsYW5jZQkAAGUAAAACBQAAABlyZWFkX1RvdGFsVm91Y2hlcnNCYWxhbmNlBQAAAA5Wb3VjaGVyX0Ftb3VudAQAAAAUVm91Y2hlcnNJc3N1ZWRUb1VzZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABlUb3RhbF9Wb3VjaGVyc19Jc3N1ZWRfVG9fBQAAAAxVc2VyX0FkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAZVG90YWxWb3VjaGVyc0lzc3VlZFRvVXNlcgkAAGQAAAACBQAAABRWb3VjaGVyc0lzc3VlZFRvVXNlcgAAAAAAAAAAAQQAAAAaVm91Y2hlcnNBbW91bnRJc3N1ZWRUb1VzZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAACBUb3RhbF9Wb3VjaGVyc19BbW91bnRfSXNzdWVkX1RvXwUAAAAMVXNlcl9BZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAH1RvdGFsVm91Y2hlcnNBbW91bnRJc3N1ZWRUb1VzZXIJAABkAAAAAgUAAAAaVm91Y2hlcnNBbW91bnRJc3N1ZWRUb1VzZXIFAAAADlZvdWNoZXJfQW1vdW50BAAAAB1QcmV2aW91c1ZvdWNoZXJzQmFsYW5jZW9mVXNlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADFVzZXJfQWRkcmVzcwIAAAAQX1ZvdWNoZXJfQmFsYW5jZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABpUb3RhbFZvdWNoZXJzQmFsYW5jZW9mVXNlcgkAAGQAAAACBQAAAB1QcmV2aW91c1ZvdWNoZXJzQmFsYW5jZW9mVXNlcgUAAAAOVm91Y2hlcl9BbW91bnQDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAEXdoaXRlbGlzdF9hZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQAEJQAAAAEFAAAAEXdoaXRlbGlzdF9hZGRyZXNzAgAAACIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkAAAAAAAACBQAAABRyZWFkX3NodXRkb3duX3N0YXR1cwAAAAAAAAAAAQkAAAIAAAABAgAAAFtDb250cmFjdCBTdGF0dXMgaXMgQ3VycmVudGx5IFNodXRkb3duLiBQbGVhc2UgU2lnbiB0aGUgRnVuY3Rpb24gSW5pdGlhdGVfQ29udHJhY3RfU2h1dGRvd24uAwkAAGcAAAACAAAAAAAAAAAABQAAAA5Wb3VjaGVyX0Ftb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAABnVm91Y2hlciBCYWxhbmNlIGNhbid0IGJlIDAgb3IgZ28gaW4gbmVnYXRpdmUgU3RhdGUuIEluY3JlYXNlIHRoZSBWb3VjaGVyIEFtb3VudCB3aGVyZSBtYXhpbXVtIGxpbWl0IGlzIAkAAaQAAAABBQAAABRtYXhpbXVtX3ZvdWNoZXJfc2l6ZQIAAAAMLzEwXjggV2F2ZXMuAwkAAGcAAAACAAAAAAAAAAAABQAAABt1cGRhdGVfVG90YWxWb3VjaGVyc0JhbGFuY2UJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAANlVwZGF0ZWQgVm91Y2hlciBCYWxhbmNlIGNhbid0IGdvIGluIG5lZ2F0aXZlIFN0YXRlIG9mIAkAAaQAAAABBQAAABt1cGRhdGVfVG90YWxWb3VjaGVyc0JhbGFuY2UCAAAAKCAvMTBeOCBXQVZFUy4gUmVkdWNlIHRoZSBWb3VjaGVyIEFtb3VudC4DCQAAZgAAAAIFAAAADlZvdWNoZXJfQW1vdW50BQAAABRtYXhpbXVtX3ZvdWNoZXJfc2l6ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAA8SW5wdXQgVm91Y2hlciBCYWxhbmNlIGNhbid0IGV4Y2VlZCB0aGUgc2V0IG1heGltdW0gbGltaXQgb2YgCQABpAAAAAEFAAAAFG1heGltdW1fdm91Y2hlcl9zaXplAgAAAAwvMTBeOCBXYXZlcy4DCQAAZgAAAAIFAAAAGlRvdGFsVm91Y2hlcnNCYWxhbmNlb2ZVc2VyBQAAABRtYXhpbXVtX3ZvdWNoZXJfc2l6ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAAKyBWb3VjaGVyIEJhbGFuY2UgaXMgZXhjZWVkaW5nIHRoZSBsaW1pdCBvZiAJAAGkAAAAAQUAAAAUbWF4aW11bV92b3VjaGVyX3NpemUCAAAADC8xMF44IFdhdmVzLgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACAgAAABlUb3RhbF9Wb3VjaGVyc19Jc3N1ZWRfVG9fBQAAAAxVc2VyX0FkZHJlc3MFAAAAGVRvdGFsVm91Y2hlcnNJc3N1ZWRUb1VzZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgIAAAAgVG90YWxfVm91Y2hlcnNfQW1vdW50X0lzc3VlZF9Ub18FAAAADFVzZXJfQWRkcmVzcwUAAAAfVG90YWxWb3VjaGVyc0Ftb3VudElzc3VlZFRvVXNlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAxVc2VyX0FkZHJlc3MCAAAAEF9Wb3VjaGVyX0JhbGFuY2UFAAAAGlRvdGFsVm91Y2hlcnNCYWxhbmNlb2ZVc2VyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpBdmFpbGFibGVfVm91Y2hlcnNfQmFsYW5jZQUAAAAbdXBkYXRlX1RvdGFsVm91Y2hlcnNCYWxhbmNlBQAAAANuaWwAAAABaQEAAAAQRGVwb3NpdFVzZXJGdW5kcwAAAAAEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAADcG10AwkAAAAAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAECAAAASU5vIHBheW1lbnQgYXR0YWNoZWQsIFBsZWFzZSBBdHRhY2ggb25seSBXaGl0ZWxpc3RlZCBUb2tlbnMgaW4gcGF5bWVudFsxXS4EAAAADWlmQmxhY2tsaXN0ZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFhZGRyX0JMQUNLTElTVEVEXwUAAAANY2FsbGVyYWRkcmVzcwQAAAATUHJldmlvdXNVc2VyRGVwb3NpdAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAALQ3VycmVuY3lfSUQCAAAAAV8FAAAADWNhbGxlcmFkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAQVG90YWxVc2VyRGVwb3NpdAkAAGQAAAACBQAAABNQcmV2aW91c1VzZXJEZXBvc2l0CAUAAAADcG10AAAABmFtb3VudAQAAAAYUHJldmlvdXNEZXBvc2l0Q291bnRlcklEBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAEkRlcG9zaXRfQ291bnRlcl9JRAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABVUb3RhbERlcG9zaXRDb3VudGVySUQJAABkAAAAAgUAAAAYUHJldmlvdXNEZXBvc2l0Q291bnRlcklEAAAAAAAAAAABAwkAAGYAAAACBQAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXAIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAEJAAEsAAAAAgUAAAAUcHJvZHVjdF9sYXVuY2hfZXJyb3IJAAGkAAAAAQUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wAwkAAAAAAAACBQAAABRyZWFkX3NodXRkb3duX3N0YXR1cwAAAAAAAAAAAQkAAAIAAAABAgAAAFtDb250cmFjdCBTdGF0dXMgaXMgQ3VycmVudGx5IFNodXRkb3duLiBQbGVhc2UgU2lnbiB0aGUgRnVuY3Rpb24gSW5pdGlhdGVfQ29udHJhY3RfU2h1dGRvd24uAwkAAAAAAAACBQAAAA1pZkJsYWNrbGlzdGVkAgAAAANZZXMJAAACAAAAAQkAASwAAAACBQAAAA1jYWxsZXJhZGRyZXNzAgAAAD4gQWRkcmVzcyBpcyBCbGFja2xpc3RlZC4gUGxlYXNlIGNvbnRhY3QgQWRtaW4gdG8gV2hpdGVsaXN0IGl0LgMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAuT25seSBXQVZFUyBpcyBhbGxvd2VkIHRvIGRlcG9zaXQgYXQgdGhlIG1vbWVudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAC0N1cnJlbmN5X0lEAgAAAAFfBQAAAA1jYWxsZXJhZGRyZXNzBQAAABBUb3RhbFVzZXJEZXBvc2l0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAAVVG90YWxEZXBvc2l0Q291bnRlcklEAgAAAAFfBQAAAAtDdXJyZW5jeV9JRAIAAAABXwUAAAANY2FsbGVyYWRkcmVzcwgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEkRlcG9zaXRfQ291bnRlcl9JRAUAAAAVVG90YWxEZXBvc2l0Q291bnRlcklEBQAAAANuaWwAAAABaQEAAAARV2l0aGRyYXdVc2VyRnVuZHMAAAACAAAADFVzZXJfQWRkcmVzcwAAAAZBbW91bnQEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAPcmVhZHVzZXJiYWxhbmNlCQEAAAARQGV4dHJOYXRpdmUoMTA1NSkAAAABCQABLAAAAAIJAAEsAAAAAgUAAAALQ3VycmVuY3lfSUQCAAAAAV8FAAAADFVzZXJfQWRkcmVzcwQAAAARdXBkYXRlX3VzZXJfZnVuZHMJAABlAAAAAgkAAGUAAAACBQAAAA9yZWFkdXNlcmJhbGFuY2UFAAAABkFtb3VudAUAAAALbmV0d29ya19mZWUEAAAAF21pbmltaW1fd2l0aGRyYXdfYW1vdW50AAAAAAAAmJaAAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAAAAAAAAAgUAAAAUcmVhZF9zaHV0ZG93bl9zdGF0dXMAAAAAAAAAAAEJAAACAAAAAQIAAABbQ29udHJhY3QgU3RhdHVzIGlzIEN1cnJlbnRseSBTaHV0ZG93bi4gUGxlYXNlIFNpZ24gdGhlIEZ1bmN0aW9uIEluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duLgMJAABmAAAAAgUAAAAXbWluaW1pbV93aXRoZHJhd19hbW91bnQFAAAABkFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAbTWluaW11bSBXaXRoZHJhdyBBbW91bnQgaXMgCQABpAAAAAEFAAAAF21pbmltaW1fd2l0aGRyYXdfYW1vdW50AgAAAA0vMTBeOF0gV0FWRVMuAwkAAGYAAAACAAAAAAAAAAAABQAAABF1cGRhdGVfdXNlcl9mdW5kcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAA1UGxhY2VkIFdpdGhkcmF3IEFtb3VudCBpcyBnb2luZyBpbiBuZWdhdGl2ZSBTdGF0ZSBvZiAJAAGkAAAAAQUAAAARdXBkYXRlX3VzZXJfZnVuZHMCAAAADS8xMF44XSBXQVZFUy4JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAEFByZXZpb3VzX0JhbGFuY2UFAAAAD3JlYWR1c2VyYmFsYW5jZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAXTmV0d29ya19GZWVfVG9fV2l0aGRyYXcFAAAAC25ldHdvcmtfZmVlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAALQ3VycmVuY3lfSUQCAAAAAV8FAAAADFVzZXJfQWRkcmVzcwUAAAARdXBkYXRlX3VzZXJfZnVuZHMJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAARd2hpdGVsaXN0X2FkZHJlc3MFAAAAC25ldHdvcmtfZmVlBQAAAAR1bml0CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAADFVzZXJfQWRkcmVzcwUAAAAGQW1vdW50BQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAQQmxhY2tMaXN0QWRkcmVzcwAAAAEAAAALVXNlckFkZHJlc3MEAAAADWlmQmxhY2tsaXN0ZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFhZGRyX0JMQUNLTElTVEVEXwUAAAALVXNlckFkZHJlc3MEAAAAGFByZXZpb3VzQmxhY2tMaXN0QWRkcmVzcwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABpUb3RhbF9CbGFja19MaXN0ZWRfQWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABVUb3RhbEJsYWNrTGlzdEFkZHJlc3MJAABkAAAAAgUAAAAYUHJldmlvdXNCbGFja0xpc3RBZGRyZXNzAAAAAAAAAAABAwkAAGYAAAACBQAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXAIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAEJAAEsAAAAAgUAAAAUcHJvZHVjdF9sYXVuY2hfZXJyb3IJAAGkAAAAAQUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAAAAAAAAAgUAAAAUcmVhZF9zaHV0ZG93bl9zdGF0dXMAAAAAAAAAAAEJAAACAAAAAQIAAABbQ29udHJhY3QgU3RhdHVzIGlzIEN1cnJlbnRseSBTaHV0ZG93bi4gUGxlYXNlIFNpZ24gdGhlIEZ1bmN0aW9uIEluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duLgMJAAAAAAAAAgUAAAANaWZCbGFja2xpc3RlZAIAAAADWWVzCQAAAgAAAAECAAAAKkFkZHJlc3MgaXMgYWxyZWFkeSBhdmFpbGFibGUgaW4gQmxhY2tsaXN0LgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAICAAAAEWFkZHJfQkxBQ0tMSVNURURfBQAAAAtVc2VyQWRkcmVzcwIAAAADWWVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpUb3RhbF9CbGFja19MaXN0ZWRfQWRkcmVzcwUAAAAVVG90YWxCbGFja0xpc3RBZGRyZXNzBQAAAANuaWwAAAABaQEAAAAWRGVsZXRlQmxhY2tMaXN0QWRkcmVzcwAAAAEAAAALVXNlckFkZHJlc3MEAAAADWlmQmxhY2tsaXN0ZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACAgAAABFhZGRyX0JMQUNLTElTVEVEXwUAAAALVXNlckFkZHJlc3MEAAAAGFByZXZpb3VzQmxhY2tMaXN0QWRkcmVzcwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABpUb3RhbF9CbGFja19MaXN0ZWRfQWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABVUb3RhbEJsYWNrTGlzdEFkZHJlc3MJAABlAAAAAgUAAAAYUHJldmlvdXNCbGFja0xpc3RBZGRyZXNzAAAAAAAAAAABAwkAAGYAAAACBQAAABhwcm9kdWN0X2xhdW5jaF90aW1lc3RhbXAIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAAAgAAAAEJAAEsAAAAAgIAAAAjUHJvZHVjdCBMYXVuY2ggVGltZXN0YW1wIGlzIHNldCBhdCAJAAGkAAAAAQUAAAAYcHJvZHVjdF9sYXVuY2hfdGltZXN0YW1wAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAABF3aGl0ZWxpc3RfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAAAAAAAAAgUAAAAUcmVhZF9zaHV0ZG93bl9zdGF0dXMAAAAAAAAAAAEJAAACAAAAAQIAAABbQ29udHJhY3QgU3RhdHVzIGlzIEN1cnJlbnRseSBTaHV0ZG93bi4gUGxlYXNlIFNpZ24gdGhlIEZ1bmN0aW9uIEluaXRpYXRlX0NvbnRyYWN0X1NodXRkb3duLgMJAAAAAAAAAgUAAAANaWZCbGFja2xpc3RlZAIAAAADWWVzCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAAEsAAAAAgIAAAARYWRkcl9CTEFDS0xJU1RFRF8FAAAAC1VzZXJBZGRyZXNzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABpUb3RhbF9CbGFja19MaXN0ZWRfQWRkcmVzcwUAAAAVVG90YWxCbGFja0xpc3RBZGRyZXNzBQAAAANuaWwJAAACAAAAAQIAAAAmQWRkcmVzcyBpcyBub3QgYXZhaWxhYmxlIGluIEJsYWNrbGlzdC4AAAABaQEAAAAaSW5pdGlhdGVfQ29udHJhY3RfU2h1dGRvd24AAAAABAAAABFhZGRTaHV0ZG93blN0YXR1cwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAAA9TaHV0ZG93bl9TdGF0dXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAARd2hpdGVsaXN0X2FkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAJVRoaXMgQWRkcmVzcyBpcyBub3QgQXV0aG9yaXplZC4gT25seSAJAAQlAAAAAQUAAAARd2hpdGVsaXN0X2FkZHJlc3MCAAAAIiBpcyBBdXRob3JpemVkIEFkZHJlc3MgdG8gU2lnbiBpdC4DCQAAAAAAAAIFAAAAEWFkZFNodXRkb3duU3RhdHVzAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAA9TaHV0ZG93bl9TdGF0dXMAAAAAAAAAAAEFAAAAA25pbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAPU2h1dGRvd25fU3RhdHVzAAAAAAAAAAAABQAAAANuaWwAAAABaQEAAAADRGVsAAAAAQAAAAVFbnRyeQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAAVFbnRyeQUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgDAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAVPcmRlcgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE0V4Y2hhbmdlVHJhbnNhY3Rpb24GAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABdNYXNzVHJhbnNmZXJUcmFuc2FjdGlvbgYJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAABdAUAAAAHJG1hdGNoMAcJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5X391dw==", "height": 2865955, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BEX5SPttMsrNHfUE5n1krteZRR8E9iNRN1rk5SHvkhtR Next: CLzxBiBJLrodSMsEVSbTQecNSjAY3XqwSdBPWF4Hm9Pp Diff:
OldNewDifferences
4040 let F = ((E - p) - j)
4141 let G = x
4242 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"))
43+ let I = if ((E > F))
44+ then true
45+ else false
46+ let J = q
47+ let K = 1
48+ let L = (J + K)
49+ let M = {
50+ let N = getInteger(this, "Total_Option_Orders")
51+ if ($isInstanceOf(N, "Int"))
4952 then {
50- let N = M
51- N
53+ let O = N
54+ O
5255 }
5356 else 0
5457 }
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"))
58+ let P = (M + 1)
59+ let Q = {
60+ let N = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(J)))
61+ if ($isInstanceOf(N, "Int"))
5962 then {
60- let N = M
61- N
63+ let O = N
64+ O
6265 }
6366 else 0
6467 }
65- let Q = (P + p)
66- let R = {
67- let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
68- if ($isInstanceOf(M, "Int"))
68+ let R = (Q + p)
69+ let S = {
70+ let N = getInteger(this, ("Total_Option_Orders_" + toString(J)))
71+ if ($isInstanceOf(N, "Int"))
6972 then {
70- let N = M
71- N
73+ let O = N
74+ O
7275 }
7376 else 0
7477 }
75- let S = (R + 1)
76- let T = {
77- let M = getInteger(this, "Total_Calls")
78- if ($isInstanceOf(M, "Int"))
78+ let T = (S + 1)
79+ let U = {
80+ let N = getInteger(this, "Total_Calls")
81+ if ($isInstanceOf(N, "Int"))
7982 then {
80- let N = M
81- N
83+ let O = N
84+ O
8285 }
8386 else 0
8487 }
85- let U = (T + 1)
86- let V = {
87- let M = getInteger(this, ("Total_Calls_" + toString(I)))
88- if ($isInstanceOf(M, "Int"))
88+ let V = (U + 1)
89+ let W = {
90+ let N = getInteger(this, ("Total_Calls_" + toString(J)))
91+ if ($isInstanceOf(N, "Int"))
8992 then {
90- let N = M
91- N
93+ let O = N
94+ O
9295 }
9396 else 0
9497 }
95- let W = (V + 1)
96- let X = {
97- let M = getInteger(this, (s + "_Total_Calls"))
98- if ($isInstanceOf(M, "Int"))
98+ let X = (W + 1)
99+ let Y = {
100+ let N = getInteger(this, (s + "_Total_Calls"))
101+ if ($isInstanceOf(N, "Int"))
99102 then {
100- let N = M
101- N
103+ let O = N
104+ O
102105 }
103106 else 0
104107 }
105- let Y = (X + 1)
106- let Z = {
107- let M = getInteger(this, ((s + "_Total_Calls_") + toString(I)))
108- if ($isInstanceOf(M, "Int"))
108+ let Z = (Y + 1)
109+ let aa = {
110+ let N = getInteger(this, ((s + "_Total_Calls_") + toString(J)))
111+ if ($isInstanceOf(N, "Int"))
109112 then {
110- let N = M
111- N
113+ let O = N
114+ O
112115 }
113116 else 0
114117 }
115- let aa = (Z + 1)
116- let ab = fraction(B, 5, 100)
118+ let ab = (aa + 1)
119+ let ac = fraction(B, 5, 100)
117120 if ((o.caller != h))
118121 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
119122 else if ((n == 1))
126129 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
127130 else if ((lastBlock.timestamp >= H))
128131 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
129- else if ((Q > ab))
130- 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."))
132+ else if ((R > ac))
133+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ac)) + ", Pending House Risk is ") + toString((ac - Q))) + ". Join in next Cycle."))
131134 else if ((k > p))
132135 then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
133136 else if ((p > l))
134137 then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
135138 else if (if ((0 > D))
136- then (F > E)
139+ then (I == false)
137140 else false)
138141 then throw((("Placed Order Amount is going negative. Please reduce the Order Size.User Fund Amount = [" + toString(D)) + "]"))
139142 else if ((size(toString(x)) != 13))
143146 else if (if ((E == 0))
144147 then true
145148 else (0 > F))
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 if ((F > 0))
148- 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)]
149+ then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Z)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Z)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Z)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Calls", V), IntegerEntry(("Total_Calls_" + toString(J)), X), IntegerEntry((s + "_Total_Calls"), Z), IntegerEntry(((s + "_Total_Calls_") + toString(J)), ab), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
150+ else if (I)
151+ then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Z)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Z)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Z)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Calls", V), IntegerEntry(("Total_Calls_" + toString(J)), X), IntegerEntry((s + "_Total_Calls"), Z), IntegerEntry(((s + "_Total_Calls_") + toString(J)), ab), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
149152 else throw("Wrong Entry.")
150153 }
151154
162165 let F = (E - p)
163166 let G = x
164167 let H = y
165- let I = q
166- let J = 1
167- let K = (I + J)
168- let L = {
169- let M = getInteger(this, "Total_Option_Orders")
170- if ($isInstanceOf(M, "Int"))
168+ let J = q
169+ let K = 1
170+ let L = (J + K)
171+ let M = {
172+ let N = getInteger(this, "Total_Option_Orders")
173+ if ($isInstanceOf(N, "Int"))
171174 then {
172- let N = M
173- N
175+ let O = N
176+ O
174177 }
175178 else 0
176179 }
177- let O = (L + 1)
178- let P = {
179- let M = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(I)))
180- if ($isInstanceOf(M, "Int"))
180+ let P = (M + 1)
181+ let Q = {
182+ let N = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(J)))
183+ if ($isInstanceOf(N, "Int"))
181184 then {
182- let N = M
183- N
185+ let O = N
186+ O
184187 }
185188 else 0
186189 }
187- let Q = (P + p)
188- let R = {
189- let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
190- if ($isInstanceOf(M, "Int"))
190+ let R = (Q + p)
191+ let S = {
192+ let N = getInteger(this, ("Total_Option_Orders_" + toString(J)))
193+ if ($isInstanceOf(N, "Int"))
191194 then {
192- let N = M
193- N
195+ let O = N
196+ O
194197 }
195198 else 0
196199 }
197- let S = (R + 1)
198- let ac = {
199- let M = getInteger(this, "Total_Puts")
200- if ($isInstanceOf(M, "Int"))
200+ let T = (S + 1)
201+ let ad = {
202+ let N = getInteger(this, "Total_Puts")
203+ if ($isInstanceOf(N, "Int"))
201204 then {
202- let N = M
203- N
205+ let O = N
206+ O
204207 }
205208 else 0
206209 }
207- let ad = (ac + 1)
208- let ae = {
209- let M = getInteger(this, ("Total_Puts_" + toString(I)))
210- if ($isInstanceOf(M, "Int"))
210+ let ae = (ad + 1)
211+ let af = {
212+ let N = getInteger(this, ("Total_Puts_" + toString(J)))
213+ if ($isInstanceOf(N, "Int"))
211214 then {
212- let N = M
213- N
215+ let O = N
216+ O
214217 }
215218 else 0
216219 }
217- let af = (ae + 1)
218- let ag = {
219- let M = getInteger(this, (s + "_Total_Puts"))
220- if ($isInstanceOf(M, "Int"))
220+ let ag = (af + 1)
221+ let ah = {
222+ let N = getInteger(this, (s + "_Total_Puts"))
223+ if ($isInstanceOf(N, "Int"))
221224 then {
222- let N = M
223- N
225+ let O = N
226+ O
224227 }
225228 else 0
226229 }
227- let ah = (ag + 1)
228- let ai = {
229- let M = getInteger(this, ((s + "_Total_Puts_") + toString(I)))
230- if ($isInstanceOf(M, "Int"))
230+ let ai = (ah + 1)
231+ let aj = {
232+ let N = getInteger(this, ((s + "_Total_Puts_") + toString(J)))
233+ if ($isInstanceOf(N, "Int"))
231234 then {
232- let N = M
233- N
235+ let O = N
236+ O
234237 }
235238 else 0
236239 }
237- let aj = (ai + 1)
238- let ab = fraction(B, 5, 100)
240+ let ak = (aj + 1)
241+ let ac = fraction(B, 5, 100)
239242 if ((o.caller != h))
240243 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
241244 else if ((n == 1))
248251 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
249252 else if ((lastBlock.timestamp >= H))
250253 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
251- else if ((Q > ab))
252- 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."))
254+ else if ((R > ac))
255+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ac)) + ", Pending House Risk is ") + toString((ac - Q))) + ". Join in next Cycle."))
253256 else if ((k > p))
254257 then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
255258 else if ((p > l))
260263 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
261264 else if ((size(toString(y)) != 13))
262265 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
263- else [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), 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)]
266+ else [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ai)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ai)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ai)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Puts", ae), IntegerEntry(("Total_Puts_" + toString(J)), ag), IntegerEntry((s + "_Total_Puts"), ai), IntegerEntry(((s + "_Total_Puts_") + toString(J)), ak), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
264267 }
265268
266269
268271 @Callable(o)
269272 func Fill_Vouchers_Liquidity () = {
270273 let z = toBase58String(o.caller.bytes)
271- let ak = if ((size(o.payments) == 1))
274+ let al = if ((size(o.payments) == 1))
272275 then o.payments[0]
273276 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
274- let al = {
275- let M = getInteger(this, "Available_Vouchers_Balance")
276- if ($isInstanceOf(M, "Int"))
277+ let am = {
278+ let N = getInteger(this, "Available_Vouchers_Balance")
279+ if ($isInstanceOf(N, "Int"))
277280 then {
278- let N = M
279- N
281+ let O = N
282+ O
280283 }
281284 else 0
282285 }
283- let am = (al + ak.amount)
284- let an = {
285- let M = getInteger(this, "Vouchers_Counter_ID")
286- if ($isInstanceOf(M, "Int"))
286+ let an = (am + al.amount)
287+ let ao = {
288+ let N = getInteger(this, "Vouchers_Counter_ID")
289+ if ($isInstanceOf(N, "Int"))
287290 then {
288- let N = M
289- N
291+ let O = N
292+ O
290293 }
291294 else 0
292295 }
293- let ao = (an + 1)
294- if (isDefined(ak.assetId))
296+ let ap = (ao + 1)
297+ if (isDefined(al.assetId))
295298 then throw("Only WAVES is allowed to deposit at the moment")
296299 else if ((n == 1))
297300 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
298- else [IntegerEntry("Available_Vouchers_Balance", am), IntegerEntry((toString(ao) + "_Voucher_Added_Amount"), ak.amount), IntegerEntry("Vouchers_Counter_ID", ao)]
301+ else [IntegerEntry("Available_Vouchers_Balance", an), IntegerEntry((toString(ap) + "_Voucher_Added_Amount"), al.amount), IntegerEntry("Vouchers_Counter_ID", ap)]
299302 }
300303
301304
302305
303306 @Callable(o)
304-func Issue_Vouchers (ap,r,s) = {
305- let aq = valueOrErrorMessage(getInteger(this, "Available_Vouchers_Balance"), "Available_Vouchers_Balance Entry is not Found. Initiate Fill_Vouchers_Liquidity Function first.")
306- let ar = (aq - ap)
307- let as = {
308- let M = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
309- if ($isInstanceOf(M, "Int"))
307+func Issue_Vouchers (aq,r,s) = {
308+ let ar = valueOrErrorMessage(getInteger(this, "Available_Vouchers_Balance"), "Available_Vouchers_Balance Entry is not Found. Initiate Fill_Vouchers_Liquidity Function first.")
309+ let as = (ar - aq)
310+ let at = {
311+ let N = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
312+ if ($isInstanceOf(N, "Int"))
310313 then {
311- let N = M
312- N
314+ let O = N
315+ O
313316 }
314317 else 0
315318 }
316- let at = (as + 1)
317- let au = {
318- let M = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
319- if ($isInstanceOf(M, "Int"))
319+ let au = (at + 1)
320+ let av = {
321+ let N = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
322+ if ($isInstanceOf(N, "Int"))
320323 then {
321- let N = M
322- N
324+ let O = N
325+ O
323326 }
324327 else 0
325328 }
326- let av = (au + ap)
327- let aw = {
328- let M = getInteger(this, (s + "_Voucher_Balance"))
329- if ($isInstanceOf(M, "Int"))
329+ let aw = (av + aq)
330+ let ax = {
331+ let N = getInteger(this, (s + "_Voucher_Balance"))
332+ if ($isInstanceOf(N, "Int"))
330333 then {
331- let N = M
332- N
334+ let O = N
335+ O
333336 }
334337 else 0
335338 }
336- let ax = (aw + ap)
339+ let ay = (ax + aq)
337340 if ((o.caller != h))
338341 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
339342 else if ((n == 1))
340343 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
341- else if ((0 >= ap))
344+ else if ((0 >= aq))
342345 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."))
343- else if ((0 >= ar))
344- then throw((("Updated Voucher Balance can't go in negative State of " + toString(ar)) + " /10^8 WAVES. Reduce the Voucher Amount."))
345- else if ((ap > m))
346+ else if ((0 >= as))
347+ then throw((("Updated Voucher Balance can't go in negative State of " + toString(as)) + " /10^8 WAVES. Reduce the Voucher Amount."))
348+ else if ((aq > m))
346349 then throw((("Input Voucher Balance can't exceed the set maximum limit of " + toString(m)) + "/10^8 Waves."))
347- else if ((ax > m))
350+ else if ((ay > m))
348351 then throw((((s + " Voucher Balance is exceeding the limit of ") + toString(m)) + "/10^8 Waves."))
349- else [IntegerEntry(("Total_Vouchers_Issued_To_" + s), at), IntegerEntry(("Total_Vouchers_Amount_Issued_To_" + s), av), IntegerEntry((s + "_Voucher_Balance"), ax), IntegerEntry("Available_Vouchers_Balance", ar)]
352+ else [IntegerEntry(("Total_Vouchers_Issued_To_" + s), au), IntegerEntry(("Total_Vouchers_Amount_Issued_To_" + s), aw), IntegerEntry((s + "_Voucher_Balance"), ay), IntegerEntry("Available_Vouchers_Balance", as)]
350353 }
351354
352355
354357 @Callable(o)
355358 func DepositUserFunds () = {
356359 let z = toBase58String(o.caller.bytes)
357- let ak = if ((size(o.payments) == 1))
360+ let al = if ((size(o.payments) == 1))
358361 then o.payments[0]
359362 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
360363 let A = getString(this, ("addr_BLACKLISTED_" + z))
361- let ay = {
362- let M = getInteger(this, ((d + "_") + z))
363- if ($isInstanceOf(M, "Int"))
364+ let az = {
365+ let N = getInteger(this, ((d + "_") + z))
366+ if ($isInstanceOf(N, "Int"))
364367 then {
365- let N = M
366- N
368+ let O = N
369+ O
367370 }
368371 else 0
369372 }
370- let az = (ay + ak.amount)
371- let aA = {
372- let M = getInteger(this, "Deposit_Counter_ID")
373- if ($isInstanceOf(M, "Int"))
373+ let aA = (az + al.amount)
374+ let aB = {
375+ let N = getInteger(this, "Deposit_Counter_ID")
376+ if ($isInstanceOf(N, "Int"))
374377 then {
375- let N = M
376- N
378+ let O = N
379+ O
377380 }
378381 else 0
379382 }
380- let aB = (aA + 1)
383+ let aC = (aB + 1)
381384 if ((c > lastBlock.timestamp))
382385 then throw((e + toString(c)))
383386 else if ((n == 1))
384387 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
385388 else if ((A == "Yes"))
386389 then throw((z + " Address is Blacklisted. Please contact Admin to Whitelist it."))
387- else if (isDefined(ak.assetId))
390+ else if (isDefined(al.assetId))
388391 then throw("Only WAVES is allowed to deposit at the moment")
389- else [IntegerEntry(((d + "_") + z), az), IntegerEntry(((((toString(aB) + "_") + d) + "_") + z), ak.amount), IntegerEntry("Deposit_Counter_ID", aB)]
392+ else [IntegerEntry(((d + "_") + z), aA), IntegerEntry(((((toString(aC) + "_") + d) + "_") + z), al.amount), IntegerEntry("Deposit_Counter_ID", aC)]
390393 }
391394
392395
394397 @Callable(o)
395398 func WithdrawUserFunds (s,p) = {
396399 let z = toBase58String(o.caller.bytes)
397- let aC = getIntegerValue(((d + "_") + s))
398- let D = ((aC - p) - j)
399- let aD = 10000000
400+ let aD = getIntegerValue(((d + "_") + s))
401+ let D = ((aD - p) - j)
402+ let aE = 10000000
400403 if ((o.caller != h))
401404 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
402405 else if ((n == 1))
403406 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
404- else if ((aD > p))
405- then throw((("Minimum Withdraw Amount is " + toString(aD)) + "/10^8] WAVES."))
407+ else if ((aE > p))
408+ then throw((("Minimum Withdraw Amount is " + toString(aE)) + "/10^8] WAVES."))
406409 else if ((0 > D))
407410 then throw((("Placed Withdraw Amount is going in negative State of " + toString(D)) + "/10^8] WAVES."))
408- else [IntegerEntry("Previous_Balance", aC), IntegerEntry("Network_Fee_To_Withdraw", j), IntegerEntry(((d + "_") + s), D), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(s), p, unit)]
411+ else [IntegerEntry("Previous_Balance", aD), IntegerEntry("Network_Fee_To_Withdraw", j), IntegerEntry(((d + "_") + s), D), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(s), p, unit)]
409412 }
410413
411414
412415
413416 @Callable(o)
414-func BlackListAddress (aE) = {
415- let A = getString(this, ("addr_BLACKLISTED_" + aE))
416- let aF = {
417- let M = getInteger(this, "Total_Black_Listed_Address")
418- if ($isInstanceOf(M, "Int"))
417+func BlackListAddress (aF) = {
418+ let A = getString(this, ("addr_BLACKLISTED_" + aF))
419+ let aG = {
420+ let N = getInteger(this, "Total_Black_Listed_Address")
421+ if ($isInstanceOf(N, "Int"))
419422 then {
420- let N = M
421- N
423+ let O = N
424+ O
422425 }
423426 else 0
424427 }
425- let aG = (aF + 1)
428+ let aH = (aG + 1)
426429 if ((c > lastBlock.timestamp))
427430 then throw((e + toString(c)))
428431 else if ((o.caller != h))
431434 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
432435 else if ((A == "Yes"))
433436 then throw("Address is already available in Blacklist.")
434- else [StringEntry(("addr_BLACKLISTED_" + aE), "Yes"), IntegerEntry("Total_Black_Listed_Address", aG)]
437+ else [StringEntry(("addr_BLACKLISTED_" + aF), "Yes"), IntegerEntry("Total_Black_Listed_Address", aH)]
435438 }
436439
437440
438441
439442 @Callable(o)
440-func DeleteBlackListAddress (aE) = {
441- let A = getString(this, ("addr_BLACKLISTED_" + aE))
442- let aF = {
443- let M = getInteger(this, "Total_Black_Listed_Address")
444- if ($isInstanceOf(M, "Int"))
443+func DeleteBlackListAddress (aF) = {
444+ let A = getString(this, ("addr_BLACKLISTED_" + aF))
445+ let aG = {
446+ let N = getInteger(this, "Total_Black_Listed_Address")
447+ if ($isInstanceOf(N, "Int"))
445448 then {
446- let N = M
447- N
449+ let O = N
450+ O
448451 }
449452 else 0
450453 }
451- let aG = (aF - 1)
454+ let aH = (aG - 1)
452455 if ((c > lastBlock.timestamp))
453456 then throw(("Product Launch Timestamp is set at " + toString(c)))
454457 else if ((o.caller != h))
456459 else if ((n == 1))
457460 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
458461 else if ((A == "Yes"))
459- then [DeleteEntry(("addr_BLACKLISTED_" + aE)), IntegerEntry("Total_Black_Listed_Address", aG)]
462+ then [DeleteEntry(("addr_BLACKLISTED_" + aF)), IntegerEntry("Total_Black_Listed_Address", aH)]
460463 else throw("Address is not available in Blacklist.")
461464 }
462465
464467
465468 @Callable(o)
466469 func Initiate_Contract_Shutdown () = {
467- let aH = {
468- let M = getInteger(this, "Shutdown_Status")
469- if ($isInstanceOf(M, "Int"))
470+ let aI = {
471+ let N = getInteger(this, "Shutdown_Status")
472+ if ($isInstanceOf(N, "Int"))
470473 then {
471- let N = M
472- N
474+ let O = N
475+ O
473476 }
474477 else 0
475478 }
476479 if ((o.caller != h))
477480 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
478- else if ((aH == 0))
481+ else if ((aI == 0))
479482 then [IntegerEntry("Shutdown_Status", 1)]
480483 else [IntegerEntry("Shutdown_Status", 0)]
481484 }
483486
484487
485488 @Callable(o)
486-func Del (aI) = [DeleteEntry(aI)]
489+func Del (aJ) = [DeleteEntry(aJ)]
487490
488491
489-@Verifier(aJ)
490-func aK () = {
491- let M = aJ
492- if (if ($isInstanceOf(M, "Order"))
492+@Verifier(aK)
493+func aL () = {
494+ let N = aK
495+ if (if ($isInstanceOf(N, "Order"))
493496 then true
494- else if ($isInstanceOf(M, "ExchangeTransaction"))
497+ else if ($isInstanceOf(N, "ExchangeTransaction"))
495498 then true
496- else if ($isInstanceOf(M, "MassTransferTransaction"))
499+ else if ($isInstanceOf(N, "MassTransferTransaction"))
497500 then true
498- else $isInstanceOf(M, "TransferTransaction"))
501+ else $isInstanceOf(N, "TransferTransaction"))
499502 then {
500- let aL = M
503+ let aM = N
501504 false
502505 }
503- else sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
506+ else sigVerify(aK.bodyBytes, aK.proofs[0], aK.senderPublicKey)
504507 }
505508
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.")
3737 let C = valueOrElse(getInteger(((d + "_") + s)), 0)
3838 let D = ((C - p) - j)
3939 let E = valueOrElse(getInteger((s + "_Voucher_Balance")), 0)
4040 let F = ((E - p) - j)
4141 let G = x
4242 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"))
43+ let I = if ((E > F))
44+ then true
45+ else false
46+ let J = q
47+ let K = 1
48+ let L = (J + K)
49+ let M = {
50+ let N = getInteger(this, "Total_Option_Orders")
51+ if ($isInstanceOf(N, "Int"))
4952 then {
50- let N = M
51- N
53+ let O = N
54+ O
5255 }
5356 else 0
5457 }
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"))
58+ let P = (M + 1)
59+ let Q = {
60+ let N = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(J)))
61+ if ($isInstanceOf(N, "Int"))
5962 then {
60- let N = M
61- N
63+ let O = N
64+ O
6265 }
6366 else 0
6467 }
65- let Q = (P + p)
66- let R = {
67- let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
68- if ($isInstanceOf(M, "Int"))
68+ let R = (Q + p)
69+ let S = {
70+ let N = getInteger(this, ("Total_Option_Orders_" + toString(J)))
71+ if ($isInstanceOf(N, "Int"))
6972 then {
70- let N = M
71- N
73+ let O = N
74+ O
7275 }
7376 else 0
7477 }
75- let S = (R + 1)
76- let T = {
77- let M = getInteger(this, "Total_Calls")
78- if ($isInstanceOf(M, "Int"))
78+ let T = (S + 1)
79+ let U = {
80+ let N = getInteger(this, "Total_Calls")
81+ if ($isInstanceOf(N, "Int"))
7982 then {
80- let N = M
81- N
83+ let O = N
84+ O
8285 }
8386 else 0
8487 }
85- let U = (T + 1)
86- let V = {
87- let M = getInteger(this, ("Total_Calls_" + toString(I)))
88- if ($isInstanceOf(M, "Int"))
88+ let V = (U + 1)
89+ let W = {
90+ let N = getInteger(this, ("Total_Calls_" + toString(J)))
91+ if ($isInstanceOf(N, "Int"))
8992 then {
90- let N = M
91- N
93+ let O = N
94+ O
9295 }
9396 else 0
9497 }
95- let W = (V + 1)
96- let X = {
97- let M = getInteger(this, (s + "_Total_Calls"))
98- if ($isInstanceOf(M, "Int"))
98+ let X = (W + 1)
99+ let Y = {
100+ let N = getInteger(this, (s + "_Total_Calls"))
101+ if ($isInstanceOf(N, "Int"))
99102 then {
100- let N = M
101- N
103+ let O = N
104+ O
102105 }
103106 else 0
104107 }
105- let Y = (X + 1)
106- let Z = {
107- let M = getInteger(this, ((s + "_Total_Calls_") + toString(I)))
108- if ($isInstanceOf(M, "Int"))
108+ let Z = (Y + 1)
109+ let aa = {
110+ let N = getInteger(this, ((s + "_Total_Calls_") + toString(J)))
111+ if ($isInstanceOf(N, "Int"))
109112 then {
110- let N = M
111- N
113+ let O = N
114+ O
112115 }
113116 else 0
114117 }
115- let aa = (Z + 1)
116- let ab = fraction(B, 5, 100)
118+ let ab = (aa + 1)
119+ let ac = fraction(B, 5, 100)
117120 if ((o.caller != h))
118121 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
119122 else if ((n == 1))
120123 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
121124 else if ((c > lastBlock.timestamp))
122125 then throw((e + toString(c)))
123126 else if ((w == "CLOSE"))
124127 then throw(g)
125128 else if ((A == "Yes"))
126129 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
127130 else if ((lastBlock.timestamp >= H))
128131 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
129- else if ((Q > ab))
130- 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."))
132+ else if ((R > ac))
133+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ac)) + ", Pending House Risk is ") + toString((ac - Q))) + ". Join in next Cycle."))
131134 else if ((k > p))
132135 then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
133136 else if ((p > l))
134137 then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
135138 else if (if ((0 > D))
136- then (F > E)
139+ then (I == false)
137140 else false)
138141 then throw((("Placed Order Amount is going negative. Please reduce the Order Size.User Fund Amount = [" + toString(D)) + "]"))
139142 else if ((size(toString(x)) != 13))
140143 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
141144 else if ((size(toString(y)) != 13))
142145 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
143146 else if (if ((E == 0))
144147 then true
145148 else (0 > F))
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 if ((F > 0))
148- 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)]
149+ then [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Z)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Z)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Z)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Calls", V), IntegerEntry(("Total_Calls_" + toString(J)), X), IntegerEntry((s + "_Total_Calls"), Z), IntegerEntry(((s + "_Total_Calls_") + toString(J)), ab), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
150+ else if (I)
151+ then [StringEntry(("User_ID_" + s), r), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Call_" + s) + "_") + toString(Z)), toString(t)), IntegerEntry(((("Call_Amount_" + s) + "_") + toString(Z)), p), StringEntry(((("Call_Start_End_" + s) + "_") + toString(Z)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Calls", V), IntegerEntry(("Total_Calls_" + toString(J)), X), IntegerEntry((s + "_Total_Calls"), Z), IntegerEntry(((s + "_Total_Calls_") + toString(J)), ab), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
149152 else throw("Wrong Entry.")
150153 }
151154
152155
153156
154157 @Callable(o)
155158 func placeoptionPut (p,q,r,s,t,u,v,w,x,y) = {
156159 let z = toBase58String(o.caller.bytes)
157160 let A = getString(this, ("addr_BLACKLISTED_" + s))
158161 let B = valueOrErrorMessage(getInteger(addressFromStringValue(a), "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
159162 let C = valueOrElse(getInteger(((d + "_") + s)), 0)
160163 let D = ((C - p) - j)
161164 let E = valueOrElse(getInteger((s + "_Voucher_Balance")), 0)
162165 let F = (E - p)
163166 let G = x
164167 let H = y
165- let I = q
166- let J = 1
167- let K = (I + J)
168- let L = {
169- let M = getInteger(this, "Total_Option_Orders")
170- if ($isInstanceOf(M, "Int"))
168+ let J = q
169+ let K = 1
170+ let L = (J + K)
171+ let M = {
172+ let N = getInteger(this, "Total_Option_Orders")
173+ if ($isInstanceOf(N, "Int"))
171174 then {
172- let N = M
173- N
175+ let O = N
176+ O
174177 }
175178 else 0
176179 }
177- let O = (L + 1)
178- let P = {
179- let M = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(I)))
180- if ($isInstanceOf(M, "Int"))
180+ let P = (M + 1)
181+ let Q = {
182+ let N = getInteger(this, ("Total_Funds_Added_In_Option_Order_" + toString(J)))
183+ if ($isInstanceOf(N, "Int"))
181184 then {
182- let N = M
183- N
185+ let O = N
186+ O
184187 }
185188 else 0
186189 }
187- let Q = (P + p)
188- let R = {
189- let M = getInteger(this, ("Total_Option_Orders_" + toString(I)))
190- if ($isInstanceOf(M, "Int"))
190+ let R = (Q + p)
191+ let S = {
192+ let N = getInteger(this, ("Total_Option_Orders_" + toString(J)))
193+ if ($isInstanceOf(N, "Int"))
191194 then {
192- let N = M
193- N
195+ let O = N
196+ O
194197 }
195198 else 0
196199 }
197- let S = (R + 1)
198- let ac = {
199- let M = getInteger(this, "Total_Puts")
200- if ($isInstanceOf(M, "Int"))
200+ let T = (S + 1)
201+ let ad = {
202+ let N = getInteger(this, "Total_Puts")
203+ if ($isInstanceOf(N, "Int"))
201204 then {
202- let N = M
203- N
205+ let O = N
206+ O
204207 }
205208 else 0
206209 }
207- let ad = (ac + 1)
208- let ae = {
209- let M = getInteger(this, ("Total_Puts_" + toString(I)))
210- if ($isInstanceOf(M, "Int"))
210+ let ae = (ad + 1)
211+ let af = {
212+ let N = getInteger(this, ("Total_Puts_" + toString(J)))
213+ if ($isInstanceOf(N, "Int"))
211214 then {
212- let N = M
213- N
215+ let O = N
216+ O
214217 }
215218 else 0
216219 }
217- let af = (ae + 1)
218- let ag = {
219- let M = getInteger(this, (s + "_Total_Puts"))
220- if ($isInstanceOf(M, "Int"))
220+ let ag = (af + 1)
221+ let ah = {
222+ let N = getInteger(this, (s + "_Total_Puts"))
223+ if ($isInstanceOf(N, "Int"))
221224 then {
222- let N = M
223- N
225+ let O = N
226+ O
224227 }
225228 else 0
226229 }
227- let ah = (ag + 1)
228- let ai = {
229- let M = getInteger(this, ((s + "_Total_Puts_") + toString(I)))
230- if ($isInstanceOf(M, "Int"))
230+ let ai = (ah + 1)
231+ let aj = {
232+ let N = getInteger(this, ((s + "_Total_Puts_") + toString(J)))
233+ if ($isInstanceOf(N, "Int"))
231234 then {
232- let N = M
233- N
235+ let O = N
236+ O
234237 }
235238 else 0
236239 }
237- let aj = (ai + 1)
238- let ab = fraction(B, 5, 100)
240+ let ak = (aj + 1)
241+ let ac = fraction(B, 5, 100)
239242 if ((o.caller != h))
240243 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
241244 else if ((n == 1))
242245 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
243246 else if ((c > lastBlock.timestamp))
244247 then throw((e + toString(c)))
245248 else if ((w == "CLOSE"))
246249 then throw(g)
247250 else if ((A == "Yes"))
248251 then throw((s + " Address is Blacklisted. Please contact Admin to Whitelist it."))
249252 else if ((lastBlock.timestamp >= H))
250253 then throw("Option Order placing Timing Limits are Over. Please Join in Next Cycle.")
251- else if ((Q > ab))
252- 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."))
254+ else if ((R > ac))
255+ then throw((((("No more orders accepted, Option House Risk Size is only limited to " + toString(ac)) + ", Pending House Risk is ") + toString((ac - Q))) + ". Join in next Cycle."))
253256 else if ((k > p))
254257 then throw((("Placed Order Size is less than [" + toString(k)) + "/10^8] WAVES."))
255258 else if ((p > l))
256259 then throw((("Placed Order Size is more than [" + toString(l)) + "/10^8] WAVES."))
257260 else if ((0 > D))
258261 then throw(("Placed Order Amount is going negative. Please reduce the Order Size. Negative Fund Amount = " + toString(D)))
259262 else if ((size(toString(x)) != 13))
260263 then throw("Start Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
261264 else if ((size(toString(y)) != 13))
262265 then throw("End Timestamp is Wrong. Please Enter a Valid Timestamp. Probably you entered an Timestamp less than 13 Chars.")
263- else [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), 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)]
266+ else [StringEntry(("User_ID_" + s), r), IntegerEntry(((d + "_") + s), D), IntegerEntry((s + "_Voucher_Balance"), F), IntegerEntry("Network_Fee_To_Place_Order", j), StringEntry(((("Put_" + s) + "_") + toString(ai)), toString(t)), IntegerEntry(((("Put_Amount_" + s) + "_") + toString(ai)), p), StringEntry(((("Put_Start_End_" + s) + "_") + toString(ai)), ((toString(J) + "_") + toString(L))), IntegerEntry("Total_Option_Orders", P), IntegerEntry(("Total_Funds_Added_In_Option_Order_" + toString(J)), R), IntegerEntry("Total_Pool_Liquidity", B), IntegerEntry(("Funds_At_Risk_" + toString(J)), ac), IntegerEntry("Call_Limits", u), IntegerEntry("Put_Limits", v), IntegerEntry(("Total_Option_Orders_" + toString(J)), T), IntegerEntry("Total_Puts", ae), IntegerEntry(("Total_Puts_" + toString(J)), ag), IntegerEntry((s + "_Total_Puts"), ai), IntegerEntry(((s + "_Total_Puts_") + toString(J)), ak), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(a), p, unit)]
264267 }
265268
266269
267270
268271 @Callable(o)
269272 func Fill_Vouchers_Liquidity () = {
270273 let z = toBase58String(o.caller.bytes)
271- let ak = if ((size(o.payments) == 1))
274+ let al = if ((size(o.payments) == 1))
272275 then o.payments[0]
273276 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
274- let al = {
275- let M = getInteger(this, "Available_Vouchers_Balance")
276- if ($isInstanceOf(M, "Int"))
277+ let am = {
278+ let N = getInteger(this, "Available_Vouchers_Balance")
279+ if ($isInstanceOf(N, "Int"))
277280 then {
278- let N = M
279- N
281+ let O = N
282+ O
280283 }
281284 else 0
282285 }
283- let am = (al + ak.amount)
284- let an = {
285- let M = getInteger(this, "Vouchers_Counter_ID")
286- if ($isInstanceOf(M, "Int"))
286+ let an = (am + al.amount)
287+ let ao = {
288+ let N = getInteger(this, "Vouchers_Counter_ID")
289+ if ($isInstanceOf(N, "Int"))
287290 then {
288- let N = M
289- N
291+ let O = N
292+ O
290293 }
291294 else 0
292295 }
293- let ao = (an + 1)
294- if (isDefined(ak.assetId))
296+ let ap = (ao + 1)
297+ if (isDefined(al.assetId))
295298 then throw("Only WAVES is allowed to deposit at the moment")
296299 else if ((n == 1))
297300 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
298- else [IntegerEntry("Available_Vouchers_Balance", am), IntegerEntry((toString(ao) + "_Voucher_Added_Amount"), ak.amount), IntegerEntry("Vouchers_Counter_ID", ao)]
301+ else [IntegerEntry("Available_Vouchers_Balance", an), IntegerEntry((toString(ap) + "_Voucher_Added_Amount"), al.amount), IntegerEntry("Vouchers_Counter_ID", ap)]
299302 }
300303
301304
302305
303306 @Callable(o)
304-func Issue_Vouchers (ap,r,s) = {
305- let aq = valueOrErrorMessage(getInteger(this, "Available_Vouchers_Balance"), "Available_Vouchers_Balance Entry is not Found. Initiate Fill_Vouchers_Liquidity Function first.")
306- let ar = (aq - ap)
307- let as = {
308- let M = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
309- if ($isInstanceOf(M, "Int"))
307+func Issue_Vouchers (aq,r,s) = {
308+ let ar = valueOrErrorMessage(getInteger(this, "Available_Vouchers_Balance"), "Available_Vouchers_Balance Entry is not Found. Initiate Fill_Vouchers_Liquidity Function first.")
309+ let as = (ar - aq)
310+ let at = {
311+ let N = getInteger(this, ("Total_Vouchers_Issued_To_" + s))
312+ if ($isInstanceOf(N, "Int"))
310313 then {
311- let N = M
312- N
314+ let O = N
315+ O
313316 }
314317 else 0
315318 }
316- let at = (as + 1)
317- let au = {
318- let M = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
319- if ($isInstanceOf(M, "Int"))
319+ let au = (at + 1)
320+ let av = {
321+ let N = getInteger(this, ("Total_Vouchers_Amount_Issued_To_" + s))
322+ if ($isInstanceOf(N, "Int"))
320323 then {
321- let N = M
322- N
324+ let O = N
325+ O
323326 }
324327 else 0
325328 }
326- let av = (au + ap)
327- let aw = {
328- let M = getInteger(this, (s + "_Voucher_Balance"))
329- if ($isInstanceOf(M, "Int"))
329+ let aw = (av + aq)
330+ let ax = {
331+ let N = getInteger(this, (s + "_Voucher_Balance"))
332+ if ($isInstanceOf(N, "Int"))
330333 then {
331- let N = M
332- N
334+ let O = N
335+ O
333336 }
334337 else 0
335338 }
336- let ax = (aw + ap)
339+ let ay = (ax + aq)
337340 if ((o.caller != h))
338341 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
339342 else if ((n == 1))
340343 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
341- else if ((0 >= ap))
344+ else if ((0 >= aq))
342345 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."))
343- else if ((0 >= ar))
344- then throw((("Updated Voucher Balance can't go in negative State of " + toString(ar)) + " /10^8 WAVES. Reduce the Voucher Amount."))
345- else if ((ap > m))
346+ else if ((0 >= as))
347+ then throw((("Updated Voucher Balance can't go in negative State of " + toString(as)) + " /10^8 WAVES. Reduce the Voucher Amount."))
348+ else if ((aq > m))
346349 then throw((("Input Voucher Balance can't exceed the set maximum limit of " + toString(m)) + "/10^8 Waves."))
347- else if ((ax > m))
350+ else if ((ay > m))
348351 then throw((((s + " Voucher Balance is exceeding the limit of ") + toString(m)) + "/10^8 Waves."))
349- else [IntegerEntry(("Total_Vouchers_Issued_To_" + s), at), IntegerEntry(("Total_Vouchers_Amount_Issued_To_" + s), av), IntegerEntry((s + "_Voucher_Balance"), ax), IntegerEntry("Available_Vouchers_Balance", ar)]
352+ else [IntegerEntry(("Total_Vouchers_Issued_To_" + s), au), IntegerEntry(("Total_Vouchers_Amount_Issued_To_" + s), aw), IntegerEntry((s + "_Voucher_Balance"), ay), IntegerEntry("Available_Vouchers_Balance", as)]
350353 }
351354
352355
353356
354357 @Callable(o)
355358 func DepositUserFunds () = {
356359 let z = toBase58String(o.caller.bytes)
357- let ak = if ((size(o.payments) == 1))
360+ let al = if ((size(o.payments) == 1))
358361 then o.payments[0]
359362 else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
360363 let A = getString(this, ("addr_BLACKLISTED_" + z))
361- let ay = {
362- let M = getInteger(this, ((d + "_") + z))
363- if ($isInstanceOf(M, "Int"))
364+ let az = {
365+ let N = getInteger(this, ((d + "_") + z))
366+ if ($isInstanceOf(N, "Int"))
364367 then {
365- let N = M
366- N
368+ let O = N
369+ O
367370 }
368371 else 0
369372 }
370- let az = (ay + ak.amount)
371- let aA = {
372- let M = getInteger(this, "Deposit_Counter_ID")
373- if ($isInstanceOf(M, "Int"))
373+ let aA = (az + al.amount)
374+ let aB = {
375+ let N = getInteger(this, "Deposit_Counter_ID")
376+ if ($isInstanceOf(N, "Int"))
374377 then {
375- let N = M
376- N
378+ let O = N
379+ O
377380 }
378381 else 0
379382 }
380- let aB = (aA + 1)
383+ let aC = (aB + 1)
381384 if ((c > lastBlock.timestamp))
382385 then throw((e + toString(c)))
383386 else if ((n == 1))
384387 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
385388 else if ((A == "Yes"))
386389 then throw((z + " Address is Blacklisted. Please contact Admin to Whitelist it."))
387- else if (isDefined(ak.assetId))
390+ else if (isDefined(al.assetId))
388391 then throw("Only WAVES is allowed to deposit at the moment")
389- else [IntegerEntry(((d + "_") + z), az), IntegerEntry(((((toString(aB) + "_") + d) + "_") + z), ak.amount), IntegerEntry("Deposit_Counter_ID", aB)]
392+ else [IntegerEntry(((d + "_") + z), aA), IntegerEntry(((((toString(aC) + "_") + d) + "_") + z), al.amount), IntegerEntry("Deposit_Counter_ID", aC)]
390393 }
391394
392395
393396
394397 @Callable(o)
395398 func WithdrawUserFunds (s,p) = {
396399 let z = toBase58String(o.caller.bytes)
397- let aC = getIntegerValue(((d + "_") + s))
398- let D = ((aC - p) - j)
399- let aD = 10000000
400+ let aD = getIntegerValue(((d + "_") + s))
401+ let D = ((aD - p) - j)
402+ let aE = 10000000
400403 if ((o.caller != h))
401404 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
402405 else if ((n == 1))
403406 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
404- else if ((aD > p))
405- then throw((("Minimum Withdraw Amount is " + toString(aD)) + "/10^8] WAVES."))
407+ else if ((aE > p))
408+ then throw((("Minimum Withdraw Amount is " + toString(aE)) + "/10^8] WAVES."))
406409 else if ((0 > D))
407410 then throw((("Placed Withdraw Amount is going in negative State of " + toString(D)) + "/10^8] WAVES."))
408- else [IntegerEntry("Previous_Balance", aC), IntegerEntry("Network_Fee_To_Withdraw", j), IntegerEntry(((d + "_") + s), D), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(s), p, unit)]
411+ else [IntegerEntry("Previous_Balance", aD), IntegerEntry("Network_Fee_To_Withdraw", j), IntegerEntry(((d + "_") + s), D), ScriptTransfer(h, j, unit), ScriptTransfer(addressFromStringValue(s), p, unit)]
409412 }
410413
411414
412415
413416 @Callable(o)
414-func BlackListAddress (aE) = {
415- let A = getString(this, ("addr_BLACKLISTED_" + aE))
416- let aF = {
417- let M = getInteger(this, "Total_Black_Listed_Address")
418- if ($isInstanceOf(M, "Int"))
417+func BlackListAddress (aF) = {
418+ let A = getString(this, ("addr_BLACKLISTED_" + aF))
419+ let aG = {
420+ let N = getInteger(this, "Total_Black_Listed_Address")
421+ if ($isInstanceOf(N, "Int"))
419422 then {
420- let N = M
421- N
423+ let O = N
424+ O
422425 }
423426 else 0
424427 }
425- let aG = (aF + 1)
428+ let aH = (aG + 1)
426429 if ((c > lastBlock.timestamp))
427430 then throw((e + toString(c)))
428431 else if ((o.caller != h))
429432 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
430433 else if ((n == 1))
431434 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
432435 else if ((A == "Yes"))
433436 then throw("Address is already available in Blacklist.")
434- else [StringEntry(("addr_BLACKLISTED_" + aE), "Yes"), IntegerEntry("Total_Black_Listed_Address", aG)]
437+ else [StringEntry(("addr_BLACKLISTED_" + aF), "Yes"), IntegerEntry("Total_Black_Listed_Address", aH)]
435438 }
436439
437440
438441
439442 @Callable(o)
440-func DeleteBlackListAddress (aE) = {
441- let A = getString(this, ("addr_BLACKLISTED_" + aE))
442- let aF = {
443- let M = getInteger(this, "Total_Black_Listed_Address")
444- if ($isInstanceOf(M, "Int"))
443+func DeleteBlackListAddress (aF) = {
444+ let A = getString(this, ("addr_BLACKLISTED_" + aF))
445+ let aG = {
446+ let N = getInteger(this, "Total_Black_Listed_Address")
447+ if ($isInstanceOf(N, "Int"))
445448 then {
446- let N = M
447- N
449+ let O = N
450+ O
448451 }
449452 else 0
450453 }
451- let aG = (aF - 1)
454+ let aH = (aG - 1)
452455 if ((c > lastBlock.timestamp))
453456 then throw(("Product Launch Timestamp is set at " + toString(c)))
454457 else if ((o.caller != h))
455458 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
456459 else if ((n == 1))
457460 then throw("Contract Status is Currently Shutdown. Please Sign the Function Initiate_Contract_Shutdown.")
458461 else if ((A == "Yes"))
459- then [DeleteEntry(("addr_BLACKLISTED_" + aE)), IntegerEntry("Total_Black_Listed_Address", aG)]
462+ then [DeleteEntry(("addr_BLACKLISTED_" + aF)), IntegerEntry("Total_Black_Listed_Address", aH)]
460463 else throw("Address is not available in Blacklist.")
461464 }
462465
463466
464467
465468 @Callable(o)
466469 func Initiate_Contract_Shutdown () = {
467- let aH = {
468- let M = getInteger(this, "Shutdown_Status")
469- if ($isInstanceOf(M, "Int"))
470+ let aI = {
471+ let N = getInteger(this, "Shutdown_Status")
472+ if ($isInstanceOf(N, "Int"))
470473 then {
471- let N = M
472- N
474+ let O = N
475+ O
473476 }
474477 else 0
475478 }
476479 if ((o.caller != h))
477480 then throw((("This Address is not Authorized. Only " + toString(h)) + " is Authorized Address to Sign it."))
478- else if ((aH == 0))
481+ else if ((aI == 0))
479482 then [IntegerEntry("Shutdown_Status", 1)]
480483 else [IntegerEntry("Shutdown_Status", 0)]
481484 }
482485
483486
484487
485488 @Callable(o)
486-func Del (aI) = [DeleteEntry(aI)]
489+func Del (aJ) = [DeleteEntry(aJ)]
487490
488491
489-@Verifier(aJ)
490-func aK () = {
491- let M = aJ
492- if (if ($isInstanceOf(M, "Order"))
492+@Verifier(aK)
493+func aL () = {
494+ let N = aK
495+ if (if ($isInstanceOf(N, "Order"))
493496 then true
494- else if ($isInstanceOf(M, "ExchangeTransaction"))
497+ else if ($isInstanceOf(N, "ExchangeTransaction"))
495498 then true
496- else if ($isInstanceOf(M, "MassTransferTransaction"))
499+ else if ($isInstanceOf(N, "MassTransferTransaction"))
497500 then true
498- else $isInstanceOf(M, "TransferTransaction"))
501+ else $isInstanceOf(N, "TransferTransaction"))
499502 then {
500- let aL = M
503+ let aM = N
501504 false
502505 }
503- else sigVerify(aJ.bodyBytes, aJ.proofs[0], aJ.senderPublicKey)
506+ else sigVerify(aK.bodyBytes, aK.proofs[0], aK.senderPublicKey)
504507 }
505508

github/deemru/w8io/169f3d6 
188.17 ms