tx · 2K315QVTWquRHH4xnMgJKssWKyVu8gkiUDAk2J9dujJi

3N6oaapvYkEryHUr4vAiPRXM3iS6kMYXito:  -0.01400000 Waves

2021.10.20 21:41 [1754985] smart account 3N6oaapvYkEryHUr4vAiPRXM3iS6kMYXito > SELF 0.00000000 Waves

{ "type": 13, "id": "2K315QVTWquRHH4xnMgJKssWKyVu8gkiUDAk2J9dujJi", "fee": 1400000, "feeAssetId": null, "timestamp": 1634755330129, "version": 2, "chainId": 84, "sender": "3N6oaapvYkEryHUr4vAiPRXM3iS6kMYXito", "senderPublicKey": "7PMrxEzirv6h9Z2zqLE47qrZd6v1AbRZER5Aqfo95Eyr", "proofs": [ "3bHUnf1VPGQZZKRsJiFHgn5SaVBStbhcBVFwMNfgVdD7YiLV2xhn7mu6EZsbQpTPhAnGgG1D2GNL77xy9UBT6BWm" ], "script": "base64:AAIFAAAAAAAAAEEIAhIHCgUBAQEBCBIKCggBAQEBAQEBBBIDCgEBEgsKCQEBAQEBAQgICBIECgIICBIDCgEIEgMKAQgSBAoCCAgSAAAAAEMAAAAADmZhcm1pbmdBZGRyZXNzAQAAABoBVPI2OcArysfSHWdY6vW8njYvqXogIGoz0wAAAAAVcmFyaXR5UHJvdmlkZXJBZGRyZXNzAQAAABoBVPqvXAIOK77VhJOb48rzK/MJjwrn6vR1pAAAAAALZWdnc0Fzc2V0SWQBAAAAIJCd0BOFRitA5P/T5bgiHb1Vgk7rzOBhSkWkXfeUEYRRAAAAAAVTTE9UUwAAAAAAAAAACgAAAAAHV0FJVElORwAAAAAAAAAACAAAAAAMc3RlcER1cmF0aW9uAAAAAAAAAAAFAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAADHRyeUdldFN0cmluZwAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAADXRyeUdldEJvb2xlYW4AAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIHAQAAAA1nZXROZXh0R2FtZUlkAAAAAAQAAAAGbmV4dElkCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAACm5leHRHYW1lSWQDCQAAAAAAAAIFAAAABm5leHRJZAAAAAAAAAAAAAAAAAAAAAAAAQUAAAAGbmV4dElkAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEAAAANcGxheWVyQWRkcmVzcwkAASwAAAACBQAAAA1wbGF5ZXJBZGRyZXNzAgAAAAxfY3VycmVudEdhbWUBAAAAFGdldFBsYXllckN1cnJlbnRHYW1lAAAAAQAAAA1wbGF5ZXJBZGRyZXNzCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEFAAAADXBsYXllckFkZHJlc3MBAAAACmdldFNsb3RLZXkAAAABAAAABHNsb3QJAAEsAAAAAgIAAAAEc2xvdAkAAaQAAAABBQAAAARzbG90AQAAAAdnZXRTbG90AAAAAQAAAARzbG90CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAAApnZXRTbG90S2V5AAAAAQUAAAAEc2xvdAEAAAAQZ2V0UGxheWVyUm9sZUtleQAAAAIAAAAGZ2FtZUlkAAAADXBsYXllckFkZHJlc3MJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAFfBQAAAA1wbGF5ZXJBZGRyZXNzAQAAAA1nZXRQbGF5ZXJSb2xlAAAAAgAAAAZnYW1lSWQAAAANcGxheWVyQWRkcmVzcwkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABBnZXRQbGF5ZXJSb2xlS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAA1wbGF5ZXJBZGRyZXNzAQAAAAtnZXRNYWtlcktleQAAAAEAAAAGZ2FtZUlkCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAABl9tYWtlcgEAAAAIZ2V0TWFrZXIAAAABAAAABmdhbWVJZAkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAAAtnZXRNYWtlcktleQAAAAEFAAAABmdhbWVJZAEAAAALZ2V0VGFrZXJLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAZfdGFrZXIBAAAACGdldFRha2VyAAAAAQAAAAZnYW1lSWQJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAALZ2V0VGFrZXJLZXkAAAABBQAAAAZnYW1lSWQBAAAAFmdldFRha2VyU2tpcFJlcGxhY2VLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAABJfdGFrZXJfc2tpcFJlcGxhY2UBAAAAE2dldFRha2VyU2tpcFJlcGxhY2UAAAABAAAABmdhbWVJZAkBAAAADXRyeUdldEJvb2xlYW4AAAABCQEAAAAWZ2V0VGFrZXJTa2lwUmVwbGFjZUtleQAAAAEFAAAABmdhbWVJZAEAAAAJZ2V0QmV0S2V5AAAAAQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAAEX2JldAEAAAAGZ2V0QmV0AAAAAQAAAAZnYW1lSWQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAACWdldEJldEtleQAAAAEFAAAABmdhbWVJZAEAAAAdZ2V0V2FpdGluZ0V4cGlyYXRpb25IZWlnaHRLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAABhfd2FpdGluZ0V4cGlyYXRpb25IZWlnaHQBAAAAGmdldFdhaXRpbmdFeHBpcmF0aW9uSGVpZ2h0AAAAAQAAAAZnYW1lSWQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAHWdldFdhaXRpbmdFeHBpcmF0aW9uSGVpZ2h0S2V5AAAAAQUAAAAGZ2FtZUlkAQAAABZnZXRFeHBpcmF0aW9uSGVpZ2h0S2V5AAAAAQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAARX2V4cGlyYXRpb25IZWlnaHQBAAAAE2dldEV4cGlyYXRpb25IZWlnaHQAAAABAAAABmdhbWVJZAkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAWZ2V0RXhwaXJhdGlvbkhlaWdodEtleQAAAAEFAAAABmdhbWVJZAEAAAALZ2V0UmFuZ2VLZXkAAAACAAAABmdhbWVJZAAAAA1yYW5nZVBvc2l0aW9uCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAAHX3JhbmdlXwUAAAANcmFuZ2VQb3NpdGlvbgEAAAAIZ2V0UmFuZ2UAAAACAAAABmdhbWVJZAAAAA1yYW5nZVBvc2l0aW9uCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAAAtnZXRSYW5nZUtleQAAAAIFAAAABmdhbWVJZAUAAAANcmFuZ2VQb3NpdGlvbgEAAAAYZ2V0TWFrZXJSYW5kb21zQ29tbWl0S2V5AAAAAQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAAUX21ha2VyX3JhbmRvbXNDb21taXQBAAAAFWdldE1ha2VyUmFuZG9tc0NvbW1pdAAAAAEAAAAGZ2FtZUlkCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAGGdldE1ha2VyUmFuZG9tc0NvbW1pdEtleQAAAAEFAAAABmdhbWVJZAEAAAANZ2V0UmFuZG9tc0tleQAAAAIAAAAGZ2FtZUlkAAAACnBsYXllclJvbGUJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAAAV8FAAAACnBsYXllclJvbGUCAAAACF9yYW5kb21zAQAAAApnZXRSYW5kb21zAAAAAgAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAAA1nZXRSYW5kb21zS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAApwbGF5ZXJSb2xlAQAAAApnZXRTdGVwS2V5AAAAAQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAAFX3N0ZXABAAAAB2dldFN0ZXAAAAABAAAABmdhbWVJZAkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAKZ2V0U3RlcEtleQAAAAEFAAAABmdhbWVJZAEAAAAMZ2V0UmFyaXR5S2V5AAAAAwAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQAAAA1yYW5nZVBvc2l0aW9uCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAABXwUAAAAKcGxheWVyUm9sZQIAAAABXwUAAAANcmFuZ2VQb3NpdGlvbgIAAAAGUmFyaXR5AQAAAAlnZXRSYXJpdHkAAAADAAAABmdhbWVJZAAAAApwbGF5ZXJSb2xlAAAADXJhbmdlUG9zaXRpb24JAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAADGdldFJhcml0eUtleQAAAAMFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQUAAAANcmFuZ2VQb3NpdGlvbgEAAAATZ2V0UmVwbGFjZWRSYW5nZUtleQAAAAIAAAAGZ2FtZUlkAAAACnBsYXllclJvbGUJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAAAV8FAAAACnBsYXllclJvbGUCAAAADl9yZXBsYWNlZFJhbmdlAQAAABBnZXRSZXBsYWNlZFJhbmdlAAAAAgAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABNnZXRSZXBsYWNlZFJhbmdlS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAApwbGF5ZXJSb2xlAQAAAAxnZXREdWNrSWRLZXkAAAACAAAABmdhbWVJZAAAAApwbGF5ZXJSb2xlCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAFfBQAAAApwbGF5ZXJSb2xlAgAAAAdfZHVja0lkAQAAAAlnZXREdWNrSWQAAAACAAAABmdhbWVJZAAAAApwbGF5ZXJSb2xlCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAADGdldER1Y2tJZEtleQAAAAIFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQEAAAAWZ2V0VGFrZXJPcmRlckNvbW1pdEtleQAAAAEAAAAGZ2FtZUlkCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAAEl90YWtlcl9vcmRlckNvbW1pdAEAAAATZ2V0VGFrZXJPcmRlckNvbW1pdAAAAAEAAAAGZ2FtZUlkCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAFmdldFRha2VyT3JkZXJDb21taXRLZXkAAAABBQAAAAZnYW1lSWQBAAAAC2dldE9yZGVyS2V5AAAAAgAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAABXwUAAAAKcGxheWVyUm9sZQIAAAAGX29yZGVyAQAAAAhnZXRPcmRlcgAAAAIAAAAGZ2FtZUlkAAAACnBsYXllclJvbGUJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAALZ2V0T3JkZXJLZXkAAAACBQAAAAZnYW1lSWQFAAAACnBsYXllclJvbGUBAAAAEmdldFBsYXllclJlc3VsdEtleQAAAAIAAAAGZ2FtZUlkAAAADXBsYXllckFkZHJlc3MJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAAAV8FAAAADXBsYXllckFkZHJlc3MCAAAAB19yZXN1bHQBAAAAD2dldFBsYXllclJlc3VsdAAAAAIAAAAGZ2FtZUlkAAAADXBsYXllckFkZHJlc3MJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAASZ2V0UGxheWVyUmVzdWx0S2V5AAAAAgUAAAAGZ2FtZUlkBQAAAA1wbGF5ZXJBZGRyZXNzAQAAABFnZXRQbGF5ZXJQcml6ZUtleQAAAAIAAAAGZ2FtZUlkAAAADXBsYXllckFkZHJlc3MJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAAAV8FAAAADXBsYXllckFkZHJlc3MCAAAABl9wcml6ZQEAAAAOZ2V0UGxheWVyUHJpemUAAAACAAAABmdhbWVJZAAAAA1wbGF5ZXJBZGRyZXNzCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABFnZXRQbGF5ZXJQcml6ZUtleQAAAAIFAAAABmdhbWVJZAUAAAANcGxheWVyQWRkcmVzcwEAAAAQZ2V0UGxheWVyV2luc0tleQAAAAEAAAANcGxheWVyQWRkcmVzcwkAASwAAAACBQAAAA1wbGF5ZXJBZGRyZXNzAgAAAAVfd2lucwEAAAANZ2V0UGxheWVyV2lucwAAAAEAAAANcGxheWVyQWRkcmVzcwkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAQZ2V0UGxheWVyV2luc0tleQAAAAEFAAAADXBsYXllckFkZHJlc3MBAAAAEWdldFBsYXllckxvc2VzS2V5AAAAAQAAAA1wbGF5ZXJBZGRyZXNzCQABLAAAAAIFAAAADXBsYXllckFkZHJlc3MCAAAABl9sb3NlcwEAAAAOZ2V0UGxheWVyTG9zZXMAAAABAAAADXBsYXllckFkZHJlc3MJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAEWdldFBsYXllckxvc2VzS2V5AAAAAQUAAAANcGxheWVyQWRkcmVzcwEAAAARZ2V0UGxheWVyRHJhd3NLZXkAAAABAAAADXBsYXllckFkZHJlc3MJAAEsAAAAAgUAAAANcGxheWVyQWRkcmVzcwIAAAAGX2RyYXdzAQAAAA5nZXRQbGF5ZXJEcmF3cwAAAAEAAAANcGxheWVyQWRkcmVzcwkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAARZ2V0UGxheWVyRHJhd3NLZXkAAAABBQAAAA1wbGF5ZXJBZGRyZXNzAQAAAA9nZXRQbGF5ZXJQbkxLZXkAAAABAAAADXBsYXllckFkZHJlc3MJAAEsAAAAAgUAAAANcGxheWVyQWRkcmVzcwIAAAAEX1BuTAEAAAAMZ2V0UGxheWVyUG5MAAAAAQAAAA1wbGF5ZXJBZGRyZXNzCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAAA9nZXRQbGF5ZXJQbkxLZXkAAAABBQAAAA1wbGF5ZXJBZGRyZXNzAQAAABFnZXRHYW1lc1BsYXllZEtleQAAAAACAAAAC2dhbWVzUGxheWVkAQAAAA5nZXRHYW1lc1BsYXllZAAAAAAJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAEWdldEdhbWVzUGxheWVkS2V5AAAAAAEAAAAPZ2V0RmFybWluZ1Bvd2VyAAAAAgAAAAdhZGRyZXNzAAAAB2Fzc2V0SWQEAAAAByRtYXRjaDAJAAQaAAAAAgkBAAAAB0FkZHJlc3MAAAABBQAAAA5mYXJtaW5nQWRkcmVzcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhhZGRyZXNzXwUAAAAHYWRkcmVzcwIAAAAHX2Fzc2V0XwUAAAAHYXNzZXRJZAIAAAANX2Zhcm1pbmdQb3dlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAJmcAUAAAAHJG1hdGNoMAUAAAACZnAAAAAAAAAAAAABAAAADmNoZWNrRHVja093bmVyAAAAAgAAAAxvd25lckFkZHJlc3MAAAAHYXNzZXRJZAMJAABmAAAAAgkAA/AAAAACBQAAAAxvd25lckFkZHJlc3MFAAAAB2Fzc2V0SWQAAAAAAAAAAAAGCQAAZgAAAAIJAQAAAA9nZXRGYXJtaW5nUG93ZXIAAAACCQACWAAAAAEIBQAAAAxvd25lckFkZHJlc3MAAAAFYnl0ZXMJAAJYAAAAAQUAAAAHYXNzZXRJZAAAAAAAAAAAAAAAAAAGUkFOR0VTCQAETAAAAAIJAARMAAAAAgAAAAAAAAAAAgkABEwAAAACAAAAAAAAAAADCQAETAAAAAIAAAAAAAAAAAQJAARMAAAAAgAAAAAAAAAABQkABEwAAAACAAAAAAAAAAAGCQAETAAAAAIAAAAAAAAAAAcJAARMAAAAAgAAAAAAAAAACAkABEwAAAACAAAAAAAAAAAJBQAAAANuaWwJAARMAAAAAgkABEwAAAACAAAAAAAAAAALCQAETAAAAAIAAAAAAAAAAAwJAARMAAAAAgAAAAAAAAAADQkABEwAAAACAAAAAAAAAAAOCQAETAAAAAIAAAAAAAAAAA8JAARMAAAAAgAAAAAAAAAAEAkABEwAAAACAAAAAAAAAAARCQAETAAAAAIAAAAAAAAAABIJAARMAAAAAgAAAAAAAAAAEwkABEwAAAACAAAAAAAAAAAUBQAAAANuaWwJAARMAAAAAgkABEwAAAACAAAAAAAAAAAVCQAETAAAAAIAAAAAAAAAABYJAARMAAAAAgAAAAAAAAAAFwkABEwAAAACAAAAAAAAAAAYCQAETAAAAAIAAAAAAAAAABkJAARMAAAAAgAAAAAAAAAAGgkABEwAAAACAAAAAAAAAAAbCQAETAAAAAIAAAAAAAAAABwJAARMAAAAAgAAAAAAAAAAHgUAAAADbmlsCQAETAAAAAIJAARMAAAAAgAAAAAAAAAAHwkABEwAAAACAAAAAAAAAAAhCQAETAAAAAIAAAAAAAAAACMJAARMAAAAAgAAAAAAAAAAJQkABEwAAAACAAAAAAAAAAAoBQAAAANuaWwJAARMAAAAAgkABEwAAAACAAAAAAAAAAAsCQAETAAAAAIAAAAAAAAAADIJAARMAAAAAgAAAAAAAAAAOQkABEwAAAACAAAAAAAAAABGCQAETAAAAAIAAAAAAAAAAGQFAAAAA25pbAUAAAADbmlsAQAAAA9nZXRSYW5kb21SYXJpdHkAAAACAAAABnJhbmRvbQAAAAVyYW5nZQQAAAAJcmFuZG9tSWR4CQAAagAAAAIFAAAABnJhbmRvbQkAAZAAAAABCQABkQAAAAIFAAAABlJBTkdFUwkAAGUAAAACBQAAAAVyYW5nZQAAAAAAAAAAAQkAAZEAAAACCQABkQAAAAIFAAAABlJBTkdFUwkAAGUAAAACBQAAAAVyYW5nZQAAAAAAAAAAAQUAAAAJcmFuZG9tSWR4AQAAAAhnZXRTY29yZQAAAAIAAAABYQAAAAFiAwkAAGYAAAACBQAAAAFhBQAAAAFiAAAAAAAAAAABAwkAAGYAAAACBQAAAAFiBQAAAAFhAP//////////AAAAAAAAAAAAAQAAAAlnZXRXaW5uZXIAAAADAAAABmdhbWVJZAAAAA10YWtlck9yZGVyU3RyAAAAB2V4cGlyZWQEAAAABHN0ZXAJAQAAAAdnZXRTdGVwAAAAAQUAAAAGZ2FtZUlkAwUAAAAHZXhwaXJlZAQAAAAQZXhwaXJhdGlvbkhlaWdodAkBAAAAE2dldEV4cGlyYXRpb25IZWlnaHQAAAABBQAAAAZnYW1lSWQDCQAAAAAAAAIFAAAABHN0ZXAAAAAAAAAAAAAJAAACAAAAAQIAAAATR2FtZSBpcyBub3Qgc3RhcnRlZAMJAABmAAAAAgUAAAAQZXhwaXJhdGlvbkhlaWdodAUAAAAGaGVpZ2h0CQAAAgAAAAECAAAAH0dhbWUgaXMgbm90IGZpbmlzaGVkIG9yIGV4cGlyZWQDAwkAAAAAAAACBQAAAARzdGVwAAAAAAAAAAABBgkAAAAAAAACBQAAAARzdGVwAAAAAAAAAAAEAgAAAAV0YWtlcgIAAAAFbWFrZXIEAAAACm1ha2VyT3JkZXIJAAS1AAAAAgkBAAAACGdldE9yZGVyAAAAAgUAAAAGZ2FtZUlkAgAAAAVtYWtlcgIAAAABLAQAAAAKdGFrZXJPcmRlcgkABLUAAAACBQAAAA10YWtlck9yZGVyU3RyAgAAAAEsBAAAAAxtYWtlclJhcml0eTEJAQAAAAlnZXRSYXJpdHkAAAADBQAAAAZnYW1lSWQCAAAABW1ha2VyCQABkQAAAAIFAAAACm1ha2VyT3JkZXIAAAAAAAAAAAAEAAAADG1ha2VyUmFyaXR5MgkBAAAACWdldFJhcml0eQAAAAMFAAAABmdhbWVJZAIAAAAFbWFrZXIJAAGRAAAAAgUAAAAKbWFrZXJPcmRlcgAAAAAAAAAAAQQAAAAMbWFrZXJSYXJpdHkzCQEAAAAJZ2V0UmFyaXR5AAAAAwUAAAAGZ2FtZUlkAgAAAAVtYWtlcgkAAZEAAAACBQAAAAptYWtlck9yZGVyAAAAAAAAAAACBAAAAAx0YWtlclJhcml0eTEJAQAAAAlnZXRSYXJpdHkAAAADBQAAAAZnYW1lSWQCAAAABXRha2VyCQABkQAAAAIFAAAACnRha2VyT3JkZXIAAAAAAAAAAAAEAAAADHRha2VyUmFyaXR5MgkBAAAACWdldFJhcml0eQAAAAMFAAAABmdhbWVJZAIAAAAFdGFrZXIJAAGRAAAAAgUAAAAKdGFrZXJPcmRlcgAAAAAAAAAAAQQAAAAMdGFrZXJSYXJpdHkzCQEAAAAJZ2V0UmFyaXR5AAAAAwUAAAAGZ2FtZUlkAgAAAAV0YWtlcgkAAZEAAAACBQAAAAp0YWtlck9yZGVyAAAAAAAAAAACBAAAAAptYWtlclNjb3JlCQAAZAAAAAIJAABkAAAAAgkBAAAACGdldFNjb3JlAAAAAgUAAAAMbWFrZXJSYXJpdHkxBQAAAAx0YWtlclJhcml0eTEJAQAAAAhnZXRTY29yZQAAAAIFAAAADG1ha2VyUmFyaXR5MgUAAAAMdGFrZXJSYXJpdHkyCQEAAAAIZ2V0U2NvcmUAAAACBQAAAAxtYWtlclJhcml0eTMFAAAADHRha2VyUmFyaXR5MwMJAABmAAAAAgUAAAAKbWFrZXJTY29yZQAAAAAAAAAAAAIAAAAFbWFrZXIDCQAAZgAAAAIAAAAAAAAAAAAFAAAACm1ha2VyU2NvcmUCAAAABXRha2VyAgAAAARkcmF3AQAAAA1nZXRHYW1lUmVzdWx0AAAAAwAAAAZnYW1lSWQAAAAKdGFrZXJPcmRlcgAAAAdleHBpcmVkBAAAAANiZXQJAQAAAAZnZXRCZXQAAAABBQAAAAZnYW1lSWQEAAAADG1ha2VyQWRkcmVzcwkBAAAACGdldE1ha2VyAAAAAQUAAAAGZ2FtZUlkBAAAAAx0YWtlckFkZHJlc3MJAQAAAAhnZXRUYWtlcgAAAAEFAAAABmdhbWVJZAQAAAAGd2lubmVyCQEAAAAJZ2V0V2lubmVyAAAAAwUAAAAGZ2FtZUlkBQAAAAp0YWtlck9yZGVyBQAAAAdleHBpcmVkBAAAAA13aW5uZXJBZGRyZXNzAwkAAAAAAAACBQAAAAZ3aW5uZXICAAAABW1ha2VyBQAAAAxtYWtlckFkZHJlc3MDCQAAAAAAAAIFAAAABndpbm5lcgIAAAAFdGFrZXIFAAAADHRha2VyQWRkcmVzcwIAAAAABAAAAAxsb3NlckFkZHJlc3MDCQAAAAAAAAIFAAAABndpbm5lcgIAAAAFdGFrZXIFAAAADG1ha2VyQWRkcmVzcwMJAAAAAAAAAgUAAAAGd2lubmVyAgAAAAVtYWtlcgUAAAAMdGFrZXJBZGRyZXNzAgAAAAADCQEAAAACIT0AAAACBQAAAA13aW5uZXJBZGRyZXNzAgAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEFAAAADXdpbm5lckFkZHJlc3MAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEFAAAADGxvc2VyQWRkcmVzcwAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEGdldFBsYXllcldpbnNLZXkAAAABBQAAAA13aW5uZXJBZGRyZXNzCQAAZAAAAAIJAQAAAA1nZXRQbGF5ZXJXaW5zAAAAAQUAAAANd2lubmVyQWRkcmVzcwAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEWdldFBsYXllckxvc2VzS2V5AAAAAQUAAAAMbG9zZXJBZGRyZXNzCQAAZAAA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byBpdHNlbGYuAAAAAAAAAAAABAAAAAp3b3JzdFJhbmdlCQEAAAAIZ2V0UmFuZ2UAAAACBQAAAAZnYW1lSWQCAAAABXdvcnN0BAAAAAttZWRpdW1SYW5nZQkBAAAACGdldFJhbmdlAAAAAgUAAAAGZ2FtZUlkAgAAAAZtZWRpdW0EAAAACWJlc3RSYW5nZQkBAAAACGdldFJhbmdlAAAAAgUAAAAGZ2FtZUlkAgAAAARiZXN0BAAAABB3b3JzdFJhcml0eU1ha2VyAwkAAAAAAAACBQAAAA5yYW5nZVRvUmVwbGFjZQIAAAAFd29yc3QFAAAAD3Jhcml0eVRvUmVwbGFjZQkBAAAAD2dldFJhbmRvbVJhcml0eQAAAAIJAABkAAAAAgUAAAAHcmFuZG9tMQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAADHRha2VyUmFuZG9tcwAAAAAAAAAAAAUAAAAKd29yc3RSYW5nZQQAAAARbWVkaXVtUmFyaXR5TWFrZXIDCQAAAAAAAAIFAAAADnJhbmdlVG9SZXBsYWNlAgAAAAZtZWRpdW0FAAAAD3Jhcml0eVRvUmVwbGFjZQkBAAAAD2dldFJhbmRvbVJhcml0eQAAAAIJAABkAAAAAgUAAAAHcmFuZG9tMgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAADHRha2VyUmFuZG9tcwAAAAAAAAAAAQUAAAALbWVkaXVtUmFuZ2UEAAAAD2Jlc3RSYXJpdHlNYWtlcgMJAAAAAAAAAgUAAAAOcmFuZ2VUb1JlcGxhY2UCAAAABGJlc3QFAAAAD3Jhcml0eVRvUmVwbGFjZQkBAAAAD2dldFJhbmRvbVJhcml0eQAAAAIJAABkAAAAAgUAAAAHcmFuZG9tMwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAADHRha2VyUmFuZG9tcwAAAAAAAAAAAgUAAAAJYmVzdFJhbmdlBAAAABB3b3JzdFJhcml0eVRha2VyCQEAAAAPZ2V0UmFuZG9tUmFyaXR5AAAAAgkAAGQAAAACBQAAAAdyYW5kb200CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAMdGFrZXJSYW5kb21zAAAAAAAAAAADBQAAAAp3b3Jz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YW1lSWQCAAAABW1ha2VyBQAAAA5yYW5nZVRvUmVwbGFjZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAMZ2V0RHVja0lkS2V5AAAAAgUAAAAGZ2FtZUlkAgAAAAVtYWtlcgUAAAAGZHVja0lkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAMZ2V0UmFyaXR5S2V5AAAAAwUAAAAGZ2FtZUlkAgAAAAV0YWtlcgIAAAAFd29yc3QFAAAAEHdvcnN0UmFyaXR5VGFrZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAxnZXRSYXJpdHlLZXkAAAADBQAAAAZnYW1lSWQCAAAABXRha2VyAgAAAAZtZWRpdW0FAAAAEW1lZGl1bVJhcml0eVRha2VyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAMZ2V0UmFyaXR5S2V5AAAAAwUAAAAGZ2FtZUlkAgAAAAV0YWtlcgIAAAAEYmVzdAUAAAAPYmVzdFJhcml0eVRha2VyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAKZ2V0U3RlcEtleQAAAAEFAAAABmdhbWVJZAUAAAAIbmV4dFN0ZXAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABZnZXRFeHBpcmF0aW9uSGVpZ2h0S2V5AAAAAQUAAAAGZ2FtZUlkCQAAZAAAAAIFAAAABmhlaWdodAUAAAAMc3RlcER1cmF0aW9uBQAAAANuaWwAAAABaQEAAAAMcmVwbGFjZVRha2VyAAAAAgAAAA5yYW5nZVRvUmVwbGFjZQAAAAZkdWNrSWQEAAAADWNhbGxlckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAGZ2FtZUlkCQEAAAAUZ2V0UGxheWVyQ3VycmVudEdhbWUAAAABBQAAAA1jYWxsZXJBZGRyZXNzBAAAAApwbGF5ZXJSb2xlCQEAAAANZ2V0UGxheWVyUm9sZQAAAAIFAAAABmdhbWVJZAUAAAANY2FsbGVyQWRkcmVzcwQAAAAEc3RlcAkBAAAAB2dldFN0ZXAAAAABBQAAAAZnYW1lSWQEAAAABXJhbmdlCQEAAAAIZ2V0UmFuZ2UAAAACBQAAAAZnYW1lSWQFAAAADnJhbmdlVG9SZXBsYWNlBAAAAAlpbnZva2VSZXMJAAP8AAAABAkBAAAAB0FkZHJlc3MAAAABBQAAABVyYXJpdHlQcm92aWRlckFkZHJlc3MCAAAADmdldEFzc2V0UmFyaXR5CQAETAAAAAIFAAAABmR1Y2tJZAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAACWludm9rZVJlcwUAAAAJaW52b2tlUmVzBAAAAAZyYXJpdHkEAAAAByRtYXRjaDAFAAAACWludm9rZVJlcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFyBQAAAAckbWF0Y2gwBQAAAAFyCQAAAgAAAAECAAAAF0luY29ycmVjdCBpbnZva2UgcmVzdWx0AwkAAAAAAAACBQAAAAZnYW1lSWQAAAAAAAAAAAAJAAACAAAAAQIAAAAdWW91IGRvbid0IGhhdmUgYW4gYWN0aXZlIGdhbWUDAwMJAQAAAAIhPQAAAAIFAAAADnJhbmdlVG9SZXBsYWNlAgAAAAV3b3JzdAkBAAAAAiE9AAAAAgUAAAAOcmFuZ2VUb1JlcGxhY2UCAAAABm1lZGl1bQcJAQAAAAIhPQAAAAIFAAAADnJhbmdlVG9SZXBsYWNlAgAAAARiZXN0BwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAQSW52YWxpZCByYW5nZSAtIAUAAAAOcmFuZ2VUb1JlcGxhY2UCAAAAHy4gTXVzdCBiZSB3b3JzdCwgbWVkaXVtIG9yIGJlc3QDCQAAAAAAAAIJAQAAABNnZXRFeHBpcmF0aW9uSGVpZ2h0AAAAAQUAAAAGZ2FtZUlkAAAAAAAAAAAACQAAAgAAAAECAAAAE0dhbWUgaXMgbm90IHN0YXJ0ZWQDCQAAZgAAAAIAAAAAAAAAAAIFAAAABHN0ZXAJAAACAAAAAQIAAAAYVGhpcyBzdGVwIGlzIG5vdCBzdGFydGVkAwkBAAAAAiE9AAAAAgUAAAAKcGxheWVyUm9sZQIAAAAFdGFrZXIJAAACAAAAAQIAAAAfT25seSB0YWtlciBjYW4gY2FsbCB0aGlzIG1ldGhvZAMJAABmAAAAAgUAAAAEc3RlcAAAAAAAAAAAAgkAAAIAAAABAgAAABVUaGlzIHN0ZXAgaXMgZmluaXNoZWQDCQEAAAABIQAAAAEJAQAAAA5jaGVja0R1Y2tPd25lcgAAAAIIBQAAAAFpAAAABmNhbGxlcgkAAlkAAAABBQAAAAZkdWNrSWQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAABkFzc2V0IAUAAAAGZHVja0lkAgAAABYgZG9lc24ndCBiZWxvbmcgdG8geW91AwMJAABmAAAAAgAAAAAAAAAABQUAAAAFcmFuZ2UDCQAAZgAAAAIFAAAABnJhcml0eQkAAGgAAAACBQAAAAVyYW5nZQAAAAAAAAAACgYJAABnAAAAAgkAAGgAAAACCQAAZQAAAAIFAAAABXJhbmdlAAAAAAAAAAABAAAAAAAAAAAKBQAAAAZyYXJpdHkHCQAAAgAAAAECAAAAHUR1Y2sgZG9lc24ndCBmaXQgcmFyaXR5IHJhbmdlAwMJAAAAAAAAAgUAAAAFcmFuZ2UAAAAAAAAAAAUJAABnAAAAAgAAAAAAAAAAKAUAAAAGcmFyaXR5BwkAAAIAAAABAgAAAB1EdWNrIGRvZXNuJ3QgZml0IHJhcml0eSByYW5nZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADGdldFJhcml0eUtleQAAAAMFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQUAAAAOcmFuZ2VUb1JlcGxhY2UFAAAABnJhcml0eQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAATZ2V0UmVwbGFjZWRSYW5nZUtleQAAAAIFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQUAAAAOcmFuZ2VUb1JlcGxhY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADGdldER1Y2tJZEtleQAAAAIFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQUAAAAGZHVja0lkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAKZ2V0U3RlcEtleQAAAAEFAAAABmdhbWVJZAkAAGQAAAACBQAAAARzdGVwAAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAWZ2V0RXhwaXJhdGlvbkhlaWdodEtleQAAAAEFAAAABmdhbWVJZAkAAGQAAAACBQAAAAZoZWlnaHQFAAAADHN0ZXBEdXJhdGlvbgUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAABBjb21taXRPcmRlclRha2VyAAAAAQAAAAtvcmRlckNvbW1pdAQAAAANY2FsbGVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAZnYW1lSWQJAQAAABRnZXRQbGF5ZXJDdXJyZW50R2FtZQAAAAEFAAAADWNhbGxlckFkZHJlc3MEAAAACnBsYXllclJvbGUJAQAAAA1nZXRQbGF5ZXJSb2xlAAAAAgUAAAAGZ2FtZUlkBQAAAA1jYWxsZXJBZGRyZXNzBAAAAARzdGVwCQEAAAAHZ2V0U3RlcAAAAAEFAAAABmdhbWVJZAMJAAAAAAAAAgUAAAAGZ2FtZUlkAAAAAAAAAAAACQAAAgAAAAECAAAAHVlvdSBkb24ndCBoYXZlIGFuIGFjdGl2ZSBnYW1lAwkAAGYAAAACAAAAAAAAAAADBQAAAARzdGVwCQAAAgAAAAECAAAAGFRoaXMgc3RlcCBpcyBub3Qgc3RhcnRlZAMJAQAAAAIhPQAAAAIFAAAACnBsYXllclJvbGUCAAAABXRha2VyCQAAAgAAAAECAAAAH09ubHkgdGFrZXIgY2FuIGNhbGwgdGhpcyBtZXRob2QDCQAAZgAAAAIFAAAABHN0ZXAAAAAAAAAAAAMJAAACAAAAAQIAAAAVVGhpcyBzdGVwIGlzIGZpbmlzaGVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABZnZXRUYWtlck9yZGVyQ29tbWl0S2V5AAAAAQUAAAAGZ2FtZUlkBQAAAAtvcmRlckNvbW1pdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAACmdldFN0ZXBLZXkAAAABBQAAAAZnYW1lSWQJAABkAAAAAgUAAAAEc3RlcAAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFmdldEV4cGlyYXRpb25IZWlnaHRLZXkAAAABBQAAAAZnYW1lSWQJAABkAAAAAgUAAAAGaGVpZ2h0BQAAAAxzdGVwRHVyYXRpb24FAAAAA25pbAAAAAFpAQAAAA1zZXRPcmRlck1ha2VyAAAAAQAAAAVvcmRlcgQAAAANY2FsbGVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAZnYW1lSWQJAQAAABRnZXRQbGF5ZXJDdXJyZW50R2FtZQAAAAEFAAAADWNhbGxlckFkZHJlc3MEAAAACnBsYXllclJvbGUJAQAAAA1nZXRQbGF5ZXJSb2xlAAAAAgUAAAAGZ2FtZUlkBQAAAA1jYWxsZXJBZGRyZXNzBAAAAARzdGVwCQEAAAAHZ2V0U3RlcAAAAAEFAAAABmdhbWVJZAMJAAAAAAAAAgUAAAAGZ2FtZUlkAAAAAAAAAAAACQAAAgAAAAECAAAAHVlvdSBkb24ndCBoYXZlIGFuIGFjdGl2ZSBnYW1lAwkAAGYAAAACAAAAAAAAAAAEBQAAAARzdGVwCQAAAgAAAAECAAAAGFRoaXMgc3RlcCBpcyBub3Qgc3RhcnRlZAMJAQAAAAIhPQAAAAIFAAAACnBsYXllclJvbGUCAAAABW1ha2VyCQAAAgAAAAECAAAAH09ubHkgbWFrZXIgY2FuIGNhbGwgdGhpcyBtZXRob2QDCQAAZgAAAAIFAAAABHN0ZXAAAAAAAAAAAAQJAAACAAAAAQIAAAAVVGhpcyBzdGVwIGlzIGZpbmlzaGVkAwMDAwMDCQEAAAACIT0AAAACBQAAAAVvcmRlcgIAAAARd29yc3QsbWVkaXVtLGJlc3QJAQAAAAIhPQAAAAIFAAAABW9yZGVyAgAAABF3b3JzdCxiZXN0LG1lZGl1bQcJAQAAAAIhPQAAAAIFAAAABW9yZGVyAgAAABFtZWRpdW0sd29yc3QsYmVzdAcJAQAAAAIhPQAAAAIFAAAABW9yZGVyAgAAABFtZWRpdW0sYmVzdCx3b3JzdAcJAQAAAAIhPQAAAAIFAAAABW9yZGVyAgAAABFiZXN0LHdvcnN0LG1lZGl1bQcJAQAAAAIhPQAAAAIFAAAABW9yZGVyAgAAABFiZXN0LG1lZGl1bSx3b3JzdAcJAAACAAAAAQIAAAASSW52YWxpZCBvcmRlciBkYXRhCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAAtnZXRPcmRlcktleQAAAAIFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQUAAAAFb3JkZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAApnZXRTdGVwS2V5AAAAAQUAAAAGZ2FtZUlkCQAAZAAAAAIFAAAABHN0ZXAAAAAAAAAAAAEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABZnZXRFeHBpcmF0aW9uSGVpZ2h0S2V5AAAAAQUAAAAGZ2FtZUlkCQAAZAAAAAIFAAAABmhlaWdodAUAAAAMc3RlcER1cmF0aW9uBQAAAANuaWwAAAABaQEAAAAQcmV2ZWFsT3JkZXJUYWtlcgAAAAIAAAAFb3JkZXIAAAAEc2FsdAQAAAANY2FsbGVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAZnYW1lSWQJAQAAABRnZXRQbGF5ZXJDdXJyZW50R2FtZQAAAAEFAAAADWNhbGxlckFkZHJlc3MEAAAACnBsYXllclJvbGUJAQAAAA1nZXRQbGF5ZXJSb2xlAAAAAgUAAAAGZ2FtZUlkBQAAAA1jYWxsZXJBZGRyZXNzBAAAAARzdGVwCQEAAAAHZ2V0U3RlcAAAAAEFAAAABmdhbWVJZAMJAAAAAAAAAgUAAAAGZ2FtZUlkAAAAAAAAAAAACQAAAgAAAAECAAAAHVlvdSBkb24ndCBoYXZlIGFuIGFjdGl2ZSBnYW1lAwkAAGYAAAACAAAAAAAAAAAFBQAAAARzdGVwCQAAAgAAAAECAAAAGFRoaXMgc3RlcCBpcyBub3Qgc3RhcnRlZAMJAQAAAAIhPQAAAAIFAAAACnBsYXllclJvbGUCAAAABXRha2VyCQAAAgAAAAECAAAAH09ubHkgdGFrZXIgY2FuIGNhbGwgdGhpcyBtZXRob2QDAwMDAwMJAQAAAAIhPQAAAAIFAAAABW9yZGVyAgAAABF3b3JzdCxtZWRpdW0sYmVzdAkBAAAAAiE9AAAAAgUAAAAFb3JkZXICAAAAEXdvcnN0LGJlc3QsbWVkaXVtBwkBAAAAAiE9AAAAAgUAAAAFb3JkZXICAAAAEW1lZGl1bSx3b3JzdCxiZXN0BwkBAAAAAiE9AAAAAgUAAAAFb3JkZXICAAAAEW1lZGl1bSxiZXN0LHdvcnN0BwkBAAAAAiE9AAAAAgUAAAAFb3JkZXICAAAAEWJlc3Qsd29yc3QsbWVkaXVtBwkBAAAAAiE9AAAAAgUAAAAFb3JkZXICAAAAEWJlc3QsbWVkaXVtLHdvcnN0BwkAAAIAAAABAgAAABJJbnZhbGlkIG9yZGVyIGRhdGEDCQEAAAACIT0AAAACCQACWAAAAAEJAAH3AAAAAQkAAZsAAAABCQABLAAAAAIFAAAABW9yZGVyBQAAAARzYWx0CQEAAAATZ2V0VGFrZXJPcmRlckNvbW1pdAAAAAEFAAAABmdhbWVJZAkAAAIAAAABAgAAABtSZXZlYWwgZG9lc24ndCBtYXRjaCBjb21taXQJAAROAAAAAgkBAAAADWdldEdhbWVSZXN1bHQAAAADBQAAAAZnYW1lSWQFAAAABW9yZGVyBwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAALZ2V0T3JkZXJLZXkAAAACBQAAAAZnYW1lSWQFAAAACnBsYXllclJvbGUFAAAABW9yZGVyBQAAAANuaWwAAAABaQEAAAAPZ2V0UHJpemVFeHBpcmVkAAAAAAQAAAANY2FsbGVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAZnYW1lSWQJAQAAABRnZXRQbGF5ZXJDdXJyZW50R2FtZQAAAAEFAAAADWNhbGxlckFkZHJlc3MDCQAAAAAAAAIFAAAABmdhbWVJZAAAAAAAAAAAAAkAAAIAAAABAgAAAB1Zb3UgZG9uJ3QgaGF2ZSBhbiBhY3RpdmUgZ2FtZQkBAAAADWdldEdhbWVSZXN1bHQAAAADBQAAAAZnYW1lSWQCAAAAAAYAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleTdBMgw=", "height": 1754985, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9YoY6d5nfWPQP1ZBkXHgp24XZi4MupZ44zpbXkSLHM9s Next: RrH82odYM6DuZ5E2CAp3hGasFjockbZtGMR14n8n9TH Diff:
OldNewDifferences
331331
332332
333333 @Callable(aZ)
334-func takeGame (t,bi,bj) = {
334+func takeGame (t,bi,bj,bk,bl,bm,bn,bo) = {
335335 let be = toBase58String(aZ.caller.bytes)
336336 let w = u(t)
337337 let bg = value(aZ.payments[0])
338- let bk = split(bi, ",")
339- let bl = parseIntValue(bk[0])
340- let bm = parseIntValue(bk[1])
341- let bn = parseIntValue(bk[2])
342- let bo = parseIntValue(bk[3])
343- let bp = parseIntValue(bk[4])
344- let bq = parseIntValue(bk[5])
338+ let bp = ((((((((((toString(bi) + "|") + toString(bj)) + "|") + toString(bk)) + "|") + toString(bl)) + "|") + toString(bm)) + "|") + toString(bn))
345339 if ((r(be) != 0))
346340 then throw("You already have an active game")
347341 else if (if ((0 > t))
356350 then throw("Insufficient eggs amount")
357351 else if ((height >= H(w)))
358352 then throw("This game is expired")
359- else [IntegerEntry(p(be), w), StringEntry(A(w), be), StringEntry(v(w, be), "taker"), StringEntry(P(w, "taker"), bi), BooleanEntry(C(w), bj), IntegerEntry(S(w), 1), IntegerEntry(I(w), (height + f)), IntegerEntry(s(t), 0), IntegerEntry("gamesPlayed", (ar() + 1))]
353+ else if (if ((0 > bi))
354+ then true
355+ else (bi > 1000000000000))
356+ then throw("Invalid random1")
357+ else if (if ((0 > bj))
358+ then true
359+ else (bj > 1000000000000))
360+ then throw("Invalid random2")
361+ else if (if ((0 > bk))
362+ then true
363+ else (bk > 1000000000000))
364+ then throw("Invalid random3")
365+ else if (if ((0 > bl))
366+ then true
367+ else (bl > 1000000000000))
368+ then throw("Invalid random4")
369+ else if (if ((0 > bm))
370+ then true
371+ else (bm > 1000000000000))
372+ then throw("Invalid random5")
373+ else if (if ((0 > bn))
374+ then true
375+ else (bn > 1000000000000))
376+ then throw("Invalid random6")
377+ else [IntegerEntry(p(be), w), StringEntry(A(w), be), StringEntry(v(w, be), "taker"), StringEntry(P(w, "taker"), bp), BooleanEntry(C(w), bo), IntegerEntry(S(w), 1), IntegerEntry(I(w), (height + f)), IntegerEntry(s(t), 0), IntegerEntry("gamesPlayed", (ar() + 1))]
360378 }
361379
362380
365383 func kickGame (t) = {
366384 let be = toBase58String(aZ.caller.bytes)
367385 let w = u(t)
368- let br = z(w)
386+ let bq = z(w)
369387 if (if ((0 > t))
370388 then true
371389 else (t >= d))
372390 then throw("Invalid slot")
373391 else if ((w == 0))
374392 then throw("Slot is empty")
375- else if (if ((be != br))
393+ else if (if ((be != bq))
376394 then (H(w) > height)
377395 else false)
378396 then throw("Waiting is not finished yet")
379- else [IntegerEntry(p(br), 0), IntegerEntry(s(t), 0), ScriptTransfer(Address(fromBase58String(br)), F(w), c)]
397+ else [IntegerEntry(p(bq), 0), IntegerEntry(s(t), 0), ScriptTransfer(Address(fromBase58String(bq)), F(w), c)]
380398 }
381399
382400
383401
384402 @Callable(aZ)
385-func revealRandomsAndReplaceMaker (bs,bt,bu,bv) = {
403+func revealRandomsAndReplaceMaker (bi,bj,bk,bl,bm,bn,br,bs,bt) = {
386404 let be = toBase58String(aZ.caller.bytes)
387405 let w = r(be)
388406 let Q = x(w, be)
389407 let aH = T(w)
390- let bw = O(w)
391- let bx = split(bs, ",")
392- let by = split(R(w, "taker"), ",")
393- let bz = if (if (if ((bu == "worst"))
408+ let bu = O(w)
409+ let bv = ((((((((((toString(bi) + "|") + toString(bj)) + "|") + toString(bk)) + "|") + toString(bl)) + "|") + toString(bm)) + "|") + toString(bn))
410+ let bw = split(R(w, "taker"), ",")
411+ let bx = if (if (if ((bs == "worst"))
394412 then true
395- else (bu == "medium"))
413+ else (bs == "medium"))
396414 then true
397- else (bu == "best"))
415+ else (bs == "best"))
398416 then {
399- let bA = invoke(Address(b), "getAssetRarity", [bv], nil)
400- if ((bA == bA))
417+ let by = invoke(Address(b), "getAssetRarity", [bt], nil)
418+ if ((by == by))
401419 then {
402- let bB = {
403- let i = bA
420+ let bz = {
421+ let i = by
404422 if ($isInstanceOf(i, "Int"))
405423 then {
406- let bC = i
407- bC
424+ let bA = i
425+ bA
408426 }
409427 else throw("Incorrect invoke result")
410428 }
411- let aB = M(w, bu)
412- if (!(aw(aZ.caller, fromBase58String(bv))))
413- then throw((("Asset " + bv) + " doesn't belong to you"))
429+ let aB = M(w, bs)
430+ if (!(aw(aZ.caller, fromBase58String(bt))))
431+ then throw((("Asset " + bt) + " doesn't belong to you"))
414432 else if (if ((5 > aB))
415- then if ((bB > (aB * 10)))
433+ then if ((bz > (aB * 10)))
416434 then true
417- else (((aB - 1) * 10) >= bB)
435+ else (((aB - 1) * 10) >= bz)
418436 else false)
419437 then throw("Duck doesn't fit rarity range")
420438 else if (if ((aB == 5))
421- then (40 >= bB)
439+ then (40 >= bz)
422440 else false)
423441 then throw("Duck doesn't fit rarity range")
424- else bB
442+ else bz
425443 }
426444 else throw("Strict value is not equal to itself.")
427445 }
429447 let ba = M(w, "worst")
430448 let bb = M(w, "medium")
431449 let bc = M(w, "best")
432- let bD = if ((bu == "worst"))
433- then bz
434- else az((parseIntValue(bx[0]) + parseIntValue(by[0])), ba)
435- let bE = if ((bu == "medium"))
436- then bz
437- else az((parseIntValue(bx[1]) + parseIntValue(by[1])), bb)
438- let bF = if ((bu == "best"))
439- then bz
440- else az((parseIntValue(bx[2]) + parseIntValue(by[2])), bc)
441- let bG = az((parseIntValue(bx[3]) + parseIntValue(by[3])), ba)
442- let bH = az((parseIntValue(bx[4]) + parseIntValue(by[4])), bb)
443- let bI = az((parseIntValue(bx[5]) + parseIntValue(by[5])), bc)
444- let bJ = if (D(w))
450+ let bB = if ((bs == "worst"))
451+ then bx
452+ else az((bi + parseIntValue(bw[0])), ba)
453+ let bC = if ((bs == "medium"))
454+ then bx
455+ else az((bj + parseIntValue(bw[1])), bb)
456+ let bD = if ((bs == "best"))
457+ then bx
458+ else az((bk + parseIntValue(bw[2])), bc)
459+ let bE = az((bl + parseIntValue(bw[3])), ba)
460+ let bF = az((bm + parseIntValue(bw[4])), bb)
461+ let bG = az((bn + parseIntValue(bw[5])), bc)
462+ let bH = if (D(w))
445463 then (aH + 2)
446464 else (aH + 1)
447465 if ((w == 0))
452470 then throw("Only maker can call this method")
453471 else if ((aH > 1))
454472 then throw("This step is finished")
455- else if ((toBase58String(sha256(toBytes((bs + bt)))) != bw))
456- then throw("Randoms don't match commit")
457- else [StringEntry(P(w, "maker"), bs), IntegerEntry(U(w, "maker", "worst"), bD), IntegerEntry(U(w, "maker", "medium"), bE), IntegerEntry(U(w, "maker", "best"), bF), StringEntry(W(w, "maker"), bu), StringEntry(Y(w, "maker"), bv), IntegerEntry(U(w, "taker", "worst"), bG), IntegerEntry(U(w, "taker", "medium"), bH), IntegerEntry(U(w, "taker", "best"), bI), IntegerEntry(S(w), bJ), IntegerEntry(I(w), (height + f))]
473+ else if (if ((0 > bi))
474+ then true
475+ else (bi > 1000000000000))
476+ then throw("Invalid random1")
477+ else if (if ((0 > bj))
478+ then true
479+ else (bj > 1000000000000))
480+ then throw("Invalid random2")
481+ else if (if ((0 > bk))
482+ then true
483+ else (bk > 1000000000000))
484+ then throw("Invalid random3")
485+ else if (if ((0 > bl))
486+ then true
487+ else (bl > 1000000000000))
488+ then throw("Invalid random4")
489+ else if (if ((0 > bm))
490+ then true
491+ else (bm > 1000000000000))
492+ then throw("Invalid random5")
493+ else if (if ((0 > bn))
494+ then true
495+ else (bn > 1000000000000))
496+ then throw("Invalid random6")
497+ else if ((toBase58String(sha256(toBytes((bv + br)))) != bu))
498+ then throw("Randoms don't match commit")
499+ else [StringEntry(P(w, "maker"), bv), IntegerEntry(U(w, "maker", "worst"), bB), IntegerEntry(U(w, "maker", "medium"), bC), IntegerEntry(U(w, "maker", "best"), bD), StringEntry(W(w, "maker"), bs), StringEntry(Y(w, "maker"), bt), IntegerEntry(U(w, "taker", "worst"), bE), IntegerEntry(U(w, "taker", "medium"), bF), IntegerEntry(U(w, "taker", "best"), bG), IntegerEntry(S(w), bH), IntegerEntry(I(w), (height + f))]
458500 }
459501
460502
461503
462504 @Callable(aZ)
463-func replaceTaker (bu,bv) = {
505+func replaceTaker (bs,bt) = {
464506 let be = toBase58String(aZ.caller.bytes)
465507 let w = r(be)
466508 let Q = x(w, be)
467509 let aH = T(w)
468- let aB = M(w, bu)
469- let bA = invoke(Address(b), "getAssetRarity", [bv], nil)
470- if ((bA == bA))
510+ let aB = M(w, bs)
511+ let by = invoke(Address(b), "getAssetRarity", [bt], nil)
512+ if ((by == by))
471513 then {
472- let bB = {
473- let i = bA
514+ let bz = {
515+ let i = by
474516 if ($isInstanceOf(i, "Int"))
475517 then {
476- let bC = i
477- bC
518+ let bA = i
519+ bA
478520 }
479521 else throw("Incorrect invoke result")
480522 }
481523 if ((w == 0))
482524 then throw("You don't have an active game")
483- else if (if (if ((bu != "worst"))
484- then (bu != "medium")
525+ else if (if (if ((bs != "worst"))
526+ then (bs != "medium")
485527 else false)
486- then (bu != "best")
528+ then (bs != "best")
487529 else false)
488- then throw((("Invalid range - " + bu) + ". Must be worst, medium or best"))
530+ then throw((("Invalid range - " + bs) + ". Must be worst, medium or best"))
489531 else if ((J(w) == 0))
490532 then throw("Game is not started")
491533 else if ((2 > aH))
494536 then throw("Only taker can call this method")
495537 else if ((aH > 2))
496538 then throw("This step is finished")
497- else if (!(aw(aZ.caller, fromBase58String(bv))))
498- then throw((("Asset " + bv) + " doesn't belong to you"))
539+ else if (!(aw(aZ.caller, fromBase58String(bt))))
540+ then throw((("Asset " + bt) + " doesn't belong to you"))
499541 else if (if ((5 > aB))
500- then if ((bB > (aB * 10)))
542+ then if ((bz > (aB * 10)))
501543 then true
502- else (((aB - 1) * 10) >= bB)
544+ else (((aB - 1) * 10) >= bz)
503545 else false)
504546 then throw("Duck doesn't fit rarity range")
505547 else if (if ((aB == 5))
506- then (40 >= bB)
548+ then (40 >= bz)
507549 else false)
508550 then throw("Duck doesn't fit rarity range")
509- else [IntegerEntry(U(w, Q, bu), bB), StringEntry(W(w, Q), bu), StringEntry(Y(w, Q), bv), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
551+ else [IntegerEntry(U(w, Q, bs), bz), StringEntry(W(w, Q), bs), StringEntry(Y(w, Q), bt), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
510552 }
511553 else throw("Strict value is not equal to itself.")
512554 }
514556
515557
516558 @Callable(aZ)
517-func commitOrderTaker (bK) = {
559+func commitOrderTaker (bI) = {
518560 let be = toBase58String(aZ.caller.bytes)
519561 let w = r(be)
520562 let Q = x(w, be)
527569 then throw("Only taker can call this method")
528570 else if ((aH > 3))
529571 then throw("This step is finished")
530- else [StringEntry(aa(w), bK), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
572+ else [StringEntry(aa(w), bI), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
531573 }
532574
533575
534576
535577 @Callable(aZ)
536-func setOrderMaker (bL) = {
578+func setOrderMaker (bJ) = {
537579 let be = toBase58String(aZ.caller.bytes)
538580 let w = r(be)
539581 let Q = x(w, be)
546588 then throw("Only maker can call this method")
547589 else if ((aH > 4))
548590 then throw("This step is finished")
549- else if (if (if (if (if (if ((bL != "worst,medium,best"))
550- then (bL != "worst,best,medium")
591+ else if (if (if (if (if (if ((bJ != "worst,medium,best"))
592+ then (bJ != "worst,best,medium")
551593 else false)
552- then (bL != "medium,worst,best")
594+ then (bJ != "medium,worst,best")
553595 else false)
554- then (bL != "medium,best,worst")
596+ then (bJ != "medium,best,worst")
555597 else false)
556- then (bL != "best,worst,medium")
598+ then (bJ != "best,worst,medium")
557599 else false)
558- then (bL != "best,medium,worst")
600+ then (bJ != "best,medium,worst")
559601 else false)
560602 then throw("Invalid order data")
561- else [StringEntry(ac(w, Q), bL), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
603+ else [StringEntry(ac(w, Q), bJ), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
562604 }
563605
564606
565607
566608 @Callable(aZ)
567-func revealOrderTaker (bL,bt) = {
609+func revealOrderTaker (bJ,br) = {
568610 let be = toBase58String(aZ.caller.bytes)
569611 let w = r(be)
570612 let Q = x(w, be)
575617 then throw("This step is not started")
576618 else if ((Q != "taker"))
577619 then throw("Only taker can call this method")
578- else if (if (if (if (if (if ((bL != "worst,medium,best"))
579- then (bL != "worst,best,medium")
620+ else if (if (if (if (if (if ((bJ != "worst,medium,best"))
621+ then (bJ != "worst,best,medium")
580622 else false)
581- then (bL != "medium,worst,best")
623+ then (bJ != "medium,worst,best")
582624 else false)
583- then (bL != "medium,best,worst")
625+ then (bJ != "medium,best,worst")
584626 else false)
585- then (bL != "best,worst,medium")
627+ then (bJ != "best,worst,medium")
586628 else false)
587- then (bL != "best,medium,worst")
629+ then (bJ != "best,medium,worst")
588630 else false)
589631 then throw("Invalid order data")
590- else if ((toBase58String(sha256(toBytes((bL + bt)))) != ab(w)))
632+ else if ((toBase58String(sha256(toBytes((bJ + br)))) != ab(w)))
591633 then throw("Reveal doesn't match commit")
592- else (aS(w, bL, false) ++ [StringEntry(ac(w, Q), bL)])
634+ else (aS(w, bJ, false) ++ [StringEntry(ac(w, Q), bJ)])
593635 }
594636
595637
604646 }
605647
606648
607-@Verifier(bM)
608-func bN () = sigVerify(bM.bodyBytes, bM.proofs[0], bM.senderPublicKey)
649+@Verifier(bK)
650+func bL () = sigVerify(bK.bodyBytes, bK.proofs[0], bK.senderPublicKey)
609651
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'3NBznG19rEYUAcnukTRTtwJHBVKQLbobVdC'
55
66 let b = base58'3NCman4dCzk1HWWU4DPTr5rsbhvuUCwwUZh'
77
88 let c = base58'AjXHBGsVDeXETQPk3qH4CPbZdfXPyNo5XoBx7jVbtwWG'
99
1010 let d = 10
1111
1212 let e = 8
1313
1414 let f = 5
1515
1616 func g (h) = {
1717 let i = getInteger(this, h)
1818 if ($isInstanceOf(i, "Int"))
1919 then {
2020 let j = i
2121 j
2222 }
2323 else 0
2424 }
2525
2626
2727 func k (h) = {
2828 let i = getString(this, h)
2929 if ($isInstanceOf(i, "String"))
3030 then {
3131 let l = i
3232 l
3333 }
3434 else ""
3535 }
3636
3737
3838 func m (h) = {
3939 let i = getBoolean(this, h)
4040 if ($isInstanceOf(i, "Boolean"))
4141 then {
4242 let j = i
4343 j
4444 }
4545 else false
4646 }
4747
4848
4949 func n () = {
5050 let o = g("nextGameId")
5151 if ((o == 0))
5252 then 1
5353 else o
5454 }
5555
5656
5757 func p (q) = (q + "_currentGame")
5858
5959
6060 func r (q) = g(p(q))
6161
6262
6363 func s (t) = ("slot" + toString(t))
6464
6565
6666 func u (t) = g(s(t))
6767
6868
6969 func v (w,q) = ((("game" + toString(w)) + "_") + q)
7070
7171
7272 func x (w,q) = k(v(w, q))
7373
7474
7575 func y (w) = (("game" + toString(w)) + "_maker")
7676
7777
7878 func z (w) = k(y(w))
7979
8080
8181 func A (w) = (("game" + toString(w)) + "_taker")
8282
8383
8484 func B (w) = k(A(w))
8585
8686
8787 func C (w) = (("game" + toString(w)) + "_taker_skipReplace")
8888
8989
9090 func D (w) = m(C(w))
9191
9292
9393 func E (w) = (("game" + toString(w)) + "_bet")
9494
9595
9696 func F (w) = g(E(w))
9797
9898
9999 func G (w) = (("game" + toString(w)) + "_waitingExpirationHeight")
100100
101101
102102 func H (w) = g(G(w))
103103
104104
105105 func I (w) = (("game" + toString(w)) + "_expirationHeight")
106106
107107
108108 func J (w) = g(I(w))
109109
110110
111111 func K (w,L) = ((("game" + toString(w)) + "_range_") + L)
112112
113113
114114 func M (w,L) = g(K(w, L))
115115
116116
117117 func N (w) = (("game" + toString(w)) + "_maker_randomsCommit")
118118
119119
120120 func O (w) = k(N(w))
121121
122122
123123 func P (w,Q) = (((("game" + toString(w)) + "_") + Q) + "_randoms")
124124
125125
126126 func R (w,Q) = k(P(w, Q))
127127
128128
129129 func S (w) = (("game" + toString(w)) + "_step")
130130
131131
132132 func T (w) = g(S(w))
133133
134134
135135 func U (w,Q,L) = (((((("game" + toString(w)) + "_") + Q) + "_") + L) + "Rarity")
136136
137137
138138 func V (w,Q,L) = g(U(w, Q, L))
139139
140140
141141 func W (w,Q) = (((("game" + toString(w)) + "_") + Q) + "_replacedRange")
142142
143143
144144 func X (w,Q) = k(W(w, Q))
145145
146146
147147 func Y (w,Q) = (((("game" + toString(w)) + "_") + Q) + "_duckId")
148148
149149
150150 func Z (w,Q) = k(Y(w, Q))
151151
152152
153153 func aa (w) = (("game" + toString(w)) + "_taker_orderCommit")
154154
155155
156156 func ab (w) = k(aa(w))
157157
158158
159159 func ac (w,Q) = (((("game" + toString(w)) + "_") + Q) + "_order")
160160
161161
162162 func ad (w,Q) = k(ac(w, Q))
163163
164164
165165 func ae (w,q) = (((("game" + toString(w)) + "_") + q) + "_result")
166166
167167
168168 func af (w,q) = k(ae(w, q))
169169
170170
171171 func ag (w,q) = (((("game" + toString(w)) + "_") + q) + "_prize")
172172
173173
174174 func ah (w,q) = g(ag(w, q))
175175
176176
177177 func ai (q) = (q + "_wins")
178178
179179
180180 func aj (q) = g(ai(q))
181181
182182
183183 func ak (q) = (q + "_loses")
184184
185185
186186 func al (q) = g(ak(q))
187187
188188
189189 func am (q) = (q + "_draws")
190190
191191
192192 func an (q) = g(am(q))
193193
194194
195195 func ao (q) = (q + "_PnL")
196196
197197
198198 func ap (q) = g(ao(q))
199199
200200
201201 func aq () = "gamesPlayed"
202202
203203
204204 func ar () = g(aq())
205205
206206
207207 func as (at,au) = {
208208 let i = getInteger(Address(a), (((("address_" + at) + "_asset_") + au) + "_farmingPower"))
209209 if ($isInstanceOf(i, "Int"))
210210 then {
211211 let av = i
212212 av
213213 }
214214 else 0
215215 }
216216
217217
218218 func aw (ax,au) = if ((assetBalance(ax, au) > 0))
219219 then true
220220 else (as(toBase58String(ax.bytes), toBase58String(au)) > 0)
221221
222222
223223 let ay = [[2, 3, 4, 5, 6, 7, 8, 9], [11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27, 28, 30], [31, 33, 35, 37, 40], [44, 50, 57, 70, 100]]
224224
225225 func az (aA,aB) = {
226226 let aC = (aA % size(ay[(aB - 1)]))
227227 ay[(aB - 1)][aC]
228228 }
229229
230230
231231 func aD (l,j) = if ((l > j))
232232 then 1
233233 else if ((j > l))
234234 then -1
235235 else 0
236236
237237
238238 func aE (w,aF,aG) = {
239239 let aH = T(w)
240240 if (aG)
241241 then {
242242 let aI = J(w)
243243 if ((aH == 0))
244244 then throw("Game is not started")
245245 else if ((aI > height))
246246 then throw("Game is not finished or expired")
247247 else if (if ((aH == 1))
248248 then true
249249 else (aH == 4))
250250 then "taker"
251251 else "maker"
252252 }
253253 else {
254254 let aJ = split(ad(w, "maker"), ",")
255255 let aK = split(aF, ",")
256256 let aL = V(w, "maker", aJ[0])
257257 let aM = V(w, "maker", aJ[1])
258258 let aN = V(w, "maker", aJ[2])
259259 let aO = V(w, "taker", aK[0])
260260 let aP = V(w, "taker", aK[1])
261261 let aQ = V(w, "taker", aK[2])
262262 let aR = ((aD(aL, aO) + aD(aM, aP)) + aD(aN, aQ))
263263 if ((aR > 0))
264264 then "maker"
265265 else if ((0 > aR))
266266 then "taker"
267267 else "draw"
268268 }
269269 }
270270
271271
272272 func aS (w,aK,aG) = {
273273 let aT = F(w)
274274 let aU = z(w)
275275 let aV = B(w)
276276 let aW = aE(w, aK, aG)
277277 let aX = if ((aW == "maker"))
278278 then aU
279279 else if ((aW == "taker"))
280280 then aV
281281 else ""
282282 let aY = if ((aW == "taker"))
283283 then aU
284284 else if ((aW == "maker"))
285285 then aV
286286 else ""
287287 if ((aX != ""))
288288 then [IntegerEntry(p(aX), 0), IntegerEntry(p(aY), 0), IntegerEntry(ai(aX), (aj(aX) + 1)), IntegerEntry(ak(aY), (al(aY) + 1)), StringEntry(ae(w, aX), "win"), StringEntry(ae(w, aY), "lose"), IntegerEntry(ag(w, aX), aT), IntegerEntry(ag(w, aY), -(aT)), IntegerEntry(ao(aX), (ap(aX) + aT)), IntegerEntry(ao(aY), (ap(aY) - aT)), ScriptTransfer(Address(fromBase58String(aX)), (aT * 2), c)]
289289 else [IntegerEntry(p(aU), 0), IntegerEntry(p(aV), 0), IntegerEntry(am(aU), (an(aU) + 1)), IntegerEntry(am(aV), (an(aV) + 1)), StringEntry(ae(w, aU), "draw"), StringEntry(ae(w, aV), "draw"), IntegerEntry(ag(w, aU), 0), IntegerEntry(ag(w, aV), 0), ScriptTransfer(Address(fromBase58String(aU)), aT, c), ScriptTransfer(Address(fromBase58String(aV)), aT, c)]
290290 }
291291
292292
293293 @Callable(aZ)
294294 func makeGame (t,ba,bb,bc,bd) = {
295295 let be = toBase58String(aZ.caller.bytes)
296296 let bf = u(t)
297297 let bg = value(aZ.payments[0])
298298 let bh = bg.amount
299299 let w = n()
300300 if ((r(be) != 0))
301301 then throw("You already have an active game")
302302 else if (if ((0 > t))
303303 then true
304304 else (t >= d))
305305 then throw("Invalid slot")
306306 else if ((bf != 0))
307307 then throw("This slot is busy")
308308 else if ((bg.assetId != c))
309309 then throw(("You can attach only EGGs with the following asset id - " + toBase58String(c)))
310310 else if ((bh != 10000))
311311 then throw("Bet must be 0.0001 EGG during beta test")
312312 else if (if ((1 > ba))
313313 then true
314314 else (ba > 5))
315315 then throw("Invalid range for the worst duck")
316316 else if (if ((1 > bb))
317317 then true
318318 else (bb > 5))
319319 then throw("Invalid range for the medium duck")
320320 else if (if ((1 > bc))
321321 then true
322322 else (bc > 5))
323323 then throw("Invalid range for the best duck")
324324 else if ((ba > bb))
325325 then throw("The medium range can't be less than the worst one")
326326 else if ((bb > bc))
327327 then throw("The best range can't be worse than the medium one")
328328 else [IntegerEntry(p(be), w), StringEntry(y(w), be), StringEntry(v(w, be), "maker"), IntegerEntry(E(w), bh), IntegerEntry(K(w, "worst"), ba), IntegerEntry(K(w, "medium"), bb), IntegerEntry(K(w, "best"), bc), StringEntry(N(w), bd), IntegerEntry(G(w), (height + e)), IntegerEntry(s(t), w), IntegerEntry("nextGameId", (w + 1))]
329329 }
330330
331331
332332
333333 @Callable(aZ)
334-func takeGame (t,bi,bj) = {
334+func takeGame (t,bi,bj,bk,bl,bm,bn,bo) = {
335335 let be = toBase58String(aZ.caller.bytes)
336336 let w = u(t)
337337 let bg = value(aZ.payments[0])
338- let bk = split(bi, ",")
339- let bl = parseIntValue(bk[0])
340- let bm = parseIntValue(bk[1])
341- let bn = parseIntValue(bk[2])
342- let bo = parseIntValue(bk[3])
343- let bp = parseIntValue(bk[4])
344- let bq = parseIntValue(bk[5])
338+ let bp = ((((((((((toString(bi) + "|") + toString(bj)) + "|") + toString(bk)) + "|") + toString(bl)) + "|") + toString(bm)) + "|") + toString(bn))
345339 if ((r(be) != 0))
346340 then throw("You already have an active game")
347341 else if (if ((0 > t))
348342 then true
349343 else (t >= d))
350344 then throw("Invalid slot")
351345 else if ((u(t) == 0))
352346 then throw("This slot is empty")
353347 else if ((bg.assetId != c))
354348 then throw(("You can attach only EGGs with the following asset id - " + toBase58String(c)))
355349 else if ((bg.amount != F(w)))
356350 then throw("Insufficient eggs amount")
357351 else if ((height >= H(w)))
358352 then throw("This game is expired")
359- else [IntegerEntry(p(be), w), StringEntry(A(w), be), StringEntry(v(w, be), "taker"), StringEntry(P(w, "taker"), bi), BooleanEntry(C(w), bj), IntegerEntry(S(w), 1), IntegerEntry(I(w), (height + f)), IntegerEntry(s(t), 0), IntegerEntry("gamesPlayed", (ar() + 1))]
353+ else if (if ((0 > bi))
354+ then true
355+ else (bi > 1000000000000))
356+ then throw("Invalid random1")
357+ else if (if ((0 > bj))
358+ then true
359+ else (bj > 1000000000000))
360+ then throw("Invalid random2")
361+ else if (if ((0 > bk))
362+ then true
363+ else (bk > 1000000000000))
364+ then throw("Invalid random3")
365+ else if (if ((0 > bl))
366+ then true
367+ else (bl > 1000000000000))
368+ then throw("Invalid random4")
369+ else if (if ((0 > bm))
370+ then true
371+ else (bm > 1000000000000))
372+ then throw("Invalid random5")
373+ else if (if ((0 > bn))
374+ then true
375+ else (bn > 1000000000000))
376+ then throw("Invalid random6")
377+ else [IntegerEntry(p(be), w), StringEntry(A(w), be), StringEntry(v(w, be), "taker"), StringEntry(P(w, "taker"), bp), BooleanEntry(C(w), bo), IntegerEntry(S(w), 1), IntegerEntry(I(w), (height + f)), IntegerEntry(s(t), 0), IntegerEntry("gamesPlayed", (ar() + 1))]
360378 }
361379
362380
363381
364382 @Callable(aZ)
365383 func kickGame (t) = {
366384 let be = toBase58String(aZ.caller.bytes)
367385 let w = u(t)
368- let br = z(w)
386+ let bq = z(w)
369387 if (if ((0 > t))
370388 then true
371389 else (t >= d))
372390 then throw("Invalid slot")
373391 else if ((w == 0))
374392 then throw("Slot is empty")
375- else if (if ((be != br))
393+ else if (if ((be != bq))
376394 then (H(w) > height)
377395 else false)
378396 then throw("Waiting is not finished yet")
379- else [IntegerEntry(p(br), 0), IntegerEntry(s(t), 0), ScriptTransfer(Address(fromBase58String(br)), F(w), c)]
397+ else [IntegerEntry(p(bq), 0), IntegerEntry(s(t), 0), ScriptTransfer(Address(fromBase58String(bq)), F(w), c)]
380398 }
381399
382400
383401
384402 @Callable(aZ)
385-func revealRandomsAndReplaceMaker (bs,bt,bu,bv) = {
403+func revealRandomsAndReplaceMaker (bi,bj,bk,bl,bm,bn,br,bs,bt) = {
386404 let be = toBase58String(aZ.caller.bytes)
387405 let w = r(be)
388406 let Q = x(w, be)
389407 let aH = T(w)
390- let bw = O(w)
391- let bx = split(bs, ",")
392- let by = split(R(w, "taker"), ",")
393- let bz = if (if (if ((bu == "worst"))
408+ let bu = O(w)
409+ let bv = ((((((((((toString(bi) + "|") + toString(bj)) + "|") + toString(bk)) + "|") + toString(bl)) + "|") + toString(bm)) + "|") + toString(bn))
410+ let bw = split(R(w, "taker"), ",")
411+ let bx = if (if (if ((bs == "worst"))
394412 then true
395- else (bu == "medium"))
413+ else (bs == "medium"))
396414 then true
397- else (bu == "best"))
415+ else (bs == "best"))
398416 then {
399- let bA = invoke(Address(b), "getAssetRarity", [bv], nil)
400- if ((bA == bA))
417+ let by = invoke(Address(b), "getAssetRarity", [bt], nil)
418+ if ((by == by))
401419 then {
402- let bB = {
403- let i = bA
420+ let bz = {
421+ let i = by
404422 if ($isInstanceOf(i, "Int"))
405423 then {
406- let bC = i
407- bC
424+ let bA = i
425+ bA
408426 }
409427 else throw("Incorrect invoke result")
410428 }
411- let aB = M(w, bu)
412- if (!(aw(aZ.caller, fromBase58String(bv))))
413- then throw((("Asset " + bv) + " doesn't belong to you"))
429+ let aB = M(w, bs)
430+ if (!(aw(aZ.caller, fromBase58String(bt))))
431+ then throw((("Asset " + bt) + " doesn't belong to you"))
414432 else if (if ((5 > aB))
415- then if ((bB > (aB * 10)))
433+ then if ((bz > (aB * 10)))
416434 then true
417- else (((aB - 1) * 10) >= bB)
435+ else (((aB - 1) * 10) >= bz)
418436 else false)
419437 then throw("Duck doesn't fit rarity range")
420438 else if (if ((aB == 5))
421- then (40 >= bB)
439+ then (40 >= bz)
422440 else false)
423441 then throw("Duck doesn't fit rarity range")
424- else bB
442+ else bz
425443 }
426444 else throw("Strict value is not equal to itself.")
427445 }
428446 else 0
429447 let ba = M(w, "worst")
430448 let bb = M(w, "medium")
431449 let bc = M(w, "best")
432- let bD = if ((bu == "worst"))
433- then bz
434- else az((parseIntValue(bx[0]) + parseIntValue(by[0])), ba)
435- let bE = if ((bu == "medium"))
436- then bz
437- else az((parseIntValue(bx[1]) + parseIntValue(by[1])), bb)
438- let bF = if ((bu == "best"))
439- then bz
440- else az((parseIntValue(bx[2]) + parseIntValue(by[2])), bc)
441- let bG = az((parseIntValue(bx[3]) + parseIntValue(by[3])), ba)
442- let bH = az((parseIntValue(bx[4]) + parseIntValue(by[4])), bb)
443- let bI = az((parseIntValue(bx[5]) + parseIntValue(by[5])), bc)
444- let bJ = if (D(w))
450+ let bB = if ((bs == "worst"))
451+ then bx
452+ else az((bi + parseIntValue(bw[0])), ba)
453+ let bC = if ((bs == "medium"))
454+ then bx
455+ else az((bj + parseIntValue(bw[1])), bb)
456+ let bD = if ((bs == "best"))
457+ then bx
458+ else az((bk + parseIntValue(bw[2])), bc)
459+ let bE = az((bl + parseIntValue(bw[3])), ba)
460+ let bF = az((bm + parseIntValue(bw[4])), bb)
461+ let bG = az((bn + parseIntValue(bw[5])), bc)
462+ let bH = if (D(w))
445463 then (aH + 2)
446464 else (aH + 1)
447465 if ((w == 0))
448466 then throw("You don't have an active game")
449467 else if ((1 > aH))
450468 then throw("Game is not started")
451469 else if ((Q != "maker"))
452470 then throw("Only maker can call this method")
453471 else if ((aH > 1))
454472 then throw("This step is finished")
455- else if ((toBase58String(sha256(toBytes((bs + bt)))) != bw))
456- then throw("Randoms don't match commit")
457- else [StringEntry(P(w, "maker"), bs), IntegerEntry(U(w, "maker", "worst"), bD), IntegerEntry(U(w, "maker", "medium"), bE), IntegerEntry(U(w, "maker", "best"), bF), StringEntry(W(w, "maker"), bu), StringEntry(Y(w, "maker"), bv), IntegerEntry(U(w, "taker", "worst"), bG), IntegerEntry(U(w, "taker", "medium"), bH), IntegerEntry(U(w, "taker", "best"), bI), IntegerEntry(S(w), bJ), IntegerEntry(I(w), (height + f))]
473+ else if (if ((0 > bi))
474+ then true
475+ else (bi > 1000000000000))
476+ then throw("Invalid random1")
477+ else if (if ((0 > bj))
478+ then true
479+ else (bj > 1000000000000))
480+ then throw("Invalid random2")
481+ else if (if ((0 > bk))
482+ then true
483+ else (bk > 1000000000000))
484+ then throw("Invalid random3")
485+ else if (if ((0 > bl))
486+ then true
487+ else (bl > 1000000000000))
488+ then throw("Invalid random4")
489+ else if (if ((0 > bm))
490+ then true
491+ else (bm > 1000000000000))
492+ then throw("Invalid random5")
493+ else if (if ((0 > bn))
494+ then true
495+ else (bn > 1000000000000))
496+ then throw("Invalid random6")
497+ else if ((toBase58String(sha256(toBytes((bv + br)))) != bu))
498+ then throw("Randoms don't match commit")
499+ else [StringEntry(P(w, "maker"), bv), IntegerEntry(U(w, "maker", "worst"), bB), IntegerEntry(U(w, "maker", "medium"), bC), IntegerEntry(U(w, "maker", "best"), bD), StringEntry(W(w, "maker"), bs), StringEntry(Y(w, "maker"), bt), IntegerEntry(U(w, "taker", "worst"), bE), IntegerEntry(U(w, "taker", "medium"), bF), IntegerEntry(U(w, "taker", "best"), bG), IntegerEntry(S(w), bH), IntegerEntry(I(w), (height + f))]
458500 }
459501
460502
461503
462504 @Callable(aZ)
463-func replaceTaker (bu,bv) = {
505+func replaceTaker (bs,bt) = {
464506 let be = toBase58String(aZ.caller.bytes)
465507 let w = r(be)
466508 let Q = x(w, be)
467509 let aH = T(w)
468- let aB = M(w, bu)
469- let bA = invoke(Address(b), "getAssetRarity", [bv], nil)
470- if ((bA == bA))
510+ let aB = M(w, bs)
511+ let by = invoke(Address(b), "getAssetRarity", [bt], nil)
512+ if ((by == by))
471513 then {
472- let bB = {
473- let i = bA
514+ let bz = {
515+ let i = by
474516 if ($isInstanceOf(i, "Int"))
475517 then {
476- let bC = i
477- bC
518+ let bA = i
519+ bA
478520 }
479521 else throw("Incorrect invoke result")
480522 }
481523 if ((w == 0))
482524 then throw("You don't have an active game")
483- else if (if (if ((bu != "worst"))
484- then (bu != "medium")
525+ else if (if (if ((bs != "worst"))
526+ then (bs != "medium")
485527 else false)
486- then (bu != "best")
528+ then (bs != "best")
487529 else false)
488- then throw((("Invalid range - " + bu) + ". Must be worst, medium or best"))
530+ then throw((("Invalid range - " + bs) + ". Must be worst, medium or best"))
489531 else if ((J(w) == 0))
490532 then throw("Game is not started")
491533 else if ((2 > aH))
492534 then throw("This step is not started")
493535 else if ((Q != "taker"))
494536 then throw("Only taker can call this method")
495537 else if ((aH > 2))
496538 then throw("This step is finished")
497- else if (!(aw(aZ.caller, fromBase58String(bv))))
498- then throw((("Asset " + bv) + " doesn't belong to you"))
539+ else if (!(aw(aZ.caller, fromBase58String(bt))))
540+ then throw((("Asset " + bt) + " doesn't belong to you"))
499541 else if (if ((5 > aB))
500- then if ((bB > (aB * 10)))
542+ then if ((bz > (aB * 10)))
501543 then true
502- else (((aB - 1) * 10) >= bB)
544+ else (((aB - 1) * 10) >= bz)
503545 else false)
504546 then throw("Duck doesn't fit rarity range")
505547 else if (if ((aB == 5))
506- then (40 >= bB)
548+ then (40 >= bz)
507549 else false)
508550 then throw("Duck doesn't fit rarity range")
509- else [IntegerEntry(U(w, Q, bu), bB), StringEntry(W(w, Q), bu), StringEntry(Y(w, Q), bv), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
551+ else [IntegerEntry(U(w, Q, bs), bz), StringEntry(W(w, Q), bs), StringEntry(Y(w, Q), bt), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
510552 }
511553 else throw("Strict value is not equal to itself.")
512554 }
513555
514556
515557
516558 @Callable(aZ)
517-func commitOrderTaker (bK) = {
559+func commitOrderTaker (bI) = {
518560 let be = toBase58String(aZ.caller.bytes)
519561 let w = r(be)
520562 let Q = x(w, be)
521563 let aH = T(w)
522564 if ((w == 0))
523565 then throw("You don't have an active game")
524566 else if ((3 > aH))
525567 then throw("This step is not started")
526568 else if ((Q != "taker"))
527569 then throw("Only taker can call this method")
528570 else if ((aH > 3))
529571 then throw("This step is finished")
530- else [StringEntry(aa(w), bK), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
572+ else [StringEntry(aa(w), bI), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
531573 }
532574
533575
534576
535577 @Callable(aZ)
536-func setOrderMaker (bL) = {
578+func setOrderMaker (bJ) = {
537579 let be = toBase58String(aZ.caller.bytes)
538580 let w = r(be)
539581 let Q = x(w, be)
540582 let aH = T(w)
541583 if ((w == 0))
542584 then throw("You don't have an active game")
543585 else if ((4 > aH))
544586 then throw("This step is not started")
545587 else if ((Q != "maker"))
546588 then throw("Only maker can call this method")
547589 else if ((aH > 4))
548590 then throw("This step is finished")
549- else if (if (if (if (if (if ((bL != "worst,medium,best"))
550- then (bL != "worst,best,medium")
591+ else if (if (if (if (if (if ((bJ != "worst,medium,best"))
592+ then (bJ != "worst,best,medium")
551593 else false)
552- then (bL != "medium,worst,best")
594+ then (bJ != "medium,worst,best")
553595 else false)
554- then (bL != "medium,best,worst")
596+ then (bJ != "medium,best,worst")
555597 else false)
556- then (bL != "best,worst,medium")
598+ then (bJ != "best,worst,medium")
557599 else false)
558- then (bL != "best,medium,worst")
600+ then (bJ != "best,medium,worst")
559601 else false)
560602 then throw("Invalid order data")
561- else [StringEntry(ac(w, Q), bL), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
603+ else [StringEntry(ac(w, Q), bJ), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
562604 }
563605
564606
565607
566608 @Callable(aZ)
567-func revealOrderTaker (bL,bt) = {
609+func revealOrderTaker (bJ,br) = {
568610 let be = toBase58String(aZ.caller.bytes)
569611 let w = r(be)
570612 let Q = x(w, be)
571613 let aH = T(w)
572614 if ((w == 0))
573615 then throw("You don't have an active game")
574616 else if ((5 > aH))
575617 then throw("This step is not started")
576618 else if ((Q != "taker"))
577619 then throw("Only taker can call this method")
578- else if (if (if (if (if (if ((bL != "worst,medium,best"))
579- then (bL != "worst,best,medium")
620+ else if (if (if (if (if (if ((bJ != "worst,medium,best"))
621+ then (bJ != "worst,best,medium")
580622 else false)
581- then (bL != "medium,worst,best")
623+ then (bJ != "medium,worst,best")
582624 else false)
583- then (bL != "medium,best,worst")
625+ then (bJ != "medium,best,worst")
584626 else false)
585- then (bL != "best,worst,medium")
627+ then (bJ != "best,worst,medium")
586628 else false)
587- then (bL != "best,medium,worst")
629+ then (bJ != "best,medium,worst")
588630 else false)
589631 then throw("Invalid order data")
590- else if ((toBase58String(sha256(toBytes((bL + bt)))) != ab(w)))
632+ else if ((toBase58String(sha256(toBytes((bJ + br)))) != ab(w)))
591633 then throw("Reveal doesn't match commit")
592- else (aS(w, bL, false) ++ [StringEntry(ac(w, Q), bL)])
634+ else (aS(w, bJ, false) ++ [StringEntry(ac(w, Q), bJ)])
593635 }
594636
595637
596638
597639 @Callable(aZ)
598640 func getPrizeExpired () = {
599641 let be = toBase58String(aZ.caller.bytes)
600642 let w = r(be)
601643 if ((w == 0))
602644 then throw("You don't have an active game")
603645 else aS(w, "", true)
604646 }
605647
606648
607-@Verifier(bM)
608-func bN () = sigVerify(bM.bodyBytes, bM.proofs[0], bM.senderPublicKey)
649+@Verifier(bK)
650+func bL () = sigVerify(bK.bodyBytes, bK.proofs[0], bK.senderPublicKey)
609651

github/deemru/w8io/169f3d6 
504.66 ms