{ "name": "Auction", "structs": {}, "methods": [ { "name": "opt_into_asset", "args": [ { "type": "asset", "name": "asset" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "start_auction", "args": [ { "type": "uint64", "name": "starting_price" }, { "type": "uint64", "name": "length" }, { "type": "axfer", "name": "axfer" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "opt_in", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "bid", "args": [ { "type": "pay", "name": "pay" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "claim_bids", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "claim_asset", "args": [ { "type": "asset", "name": "asset" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 4, "bytes": 1 }, "local": { "ints": 1, "bytes": 0 } }, "keys": { "global": { "auction_end": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "YXVjdGlvbl9lbmQ=" }, "previous_bid": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "cHJldmlvdXNfYmlk" }, "asa_amount": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "YXNhX2Ftb3VudA==" }, "asa": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "YXNh" }, "previous_bidder": { "keyType": "AVMString", "valueType": "AVMBytes", "key": "cHJldmlvdXNfYmlkZGVy" } }, "local": { "claimable_amount": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "Y2xhaW0=", "desc": "The claimable amount" } }, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 283 ], "errorMessage": "ASA already opted in" }, { "pc": [ 380 ], "errorMessage": "Bid must be higher than previous bid" }, { "pc": [ 151, 169, 181, 203, 212, 242 ], "errorMessage": "OnCompletion is not NoOp" }, { "pc": [ 276 ], "errorMessage": "Only creator can opt in to ASA" }, { "pc": [ 320 ], "errorMessage": "auction already started" }, { "pc": [ 359 ], "errorMessage": "auction has ended" }, { "pc": [ 470 ], "errorMessage": "auction has not ended" }, { "pc": [ 314 ], "errorMessage": "auction must be started by creator" }, { "pc": [ 328 ], "errorMessage": "axfer must transfer to this app" }, { "pc": [ 265 ], "errorMessage": "can only call when creating" }, { "pc": [ 154, 172, 184, 206, 215, 245 ], "errorMessage": "can only call when not creating" }, { "pc": [ 281 ], "errorMessage": "check self.asa exists" }, { "pc": [ 483 ], "errorMessage": "check self.asa_amount exists" }, { "pc": [ 318, 357, 468 ], "errorMessage": "check self.auction_end exists" }, { "pc": [ 410 ], "errorMessage": "check self.claimable_amount exists for account" }, { "pc": [ 376, 424 ], "errorMessage": "check self.previous_bid exists" }, { "pc": [ 416, 475, 479 ], "errorMessage": "check self.previous_bidder exists" }, { "pc": [ 368 ], "errorMessage": "payment sender must match transaction sender" }, { "pc": [ 233 ], "errorMessage": "transaction type is axfer" }, { "pc": [ 194 ], "errorMessage": "transaction type is pay" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBleGFtcGxlcy5hdWN0aW9uLmNvbnRyYWN0LkF1Y3Rpb24uX19hbGdvcHlfZW50cnlwb2ludF93aXRoX2luaXQoKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDQKICAgIGJ5dGVjYmxvY2sgImF1Y3Rpb25fZW5kIiAicHJldmlvdXNfYmlkIiAicHJldmlvdXNfYmlkZGVyIiAiYXNhX2Ftb3VudCIgImFzYSIgImNsYWltIgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weToxOAogICAgLy8gc2VsZi5hdWN0aW9uX2VuZCA9IFVJbnQ2NCgwKQogICAgYnl0ZWNfMCAvLyAiYXVjdGlvbl9lbmQiCiAgICBpbnRjXzAgLy8gMAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6MTkKICAgIC8vIHNlbGYucHJldmlvdXNfYmlkID0gVUludDY0KDApCiAgICBieXRlY18xIC8vICJwcmV2aW91c19iaWQiCiAgICBpbnRjXzAgLy8gMAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6MjAKICAgIC8vIHNlbGYuYXNhX2Ftb3VudCA9IFVJbnQ2NCgwKQogICAgYnl0ZWNfMyAvLyAiYXNhX2Ftb3VudCIKICAgIGludGNfMCAvLyAwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weToyMQogICAgLy8gc2VsZi5hc2EgPSBBc3NldCgpCiAgICBieXRlYyA0IC8vICJhc2EiCiAgICBpbnRjXzAgLy8gMAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6MjIKICAgIC8vIHNlbGYucHJldmlvdXNfYmlkZGVyID0gQWNjb3VudCgpCiAgICBieXRlY18yIC8vICJwcmV2aW91c19iaWRkZXIiCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgIGFwcF9nbG9iYWxfcHV0CgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6MTYKICAgIC8vIGNsYXNzIEF1Y3Rpb24oQVJDNENvbnRyYWN0KToKICAgIHR4biBOdW1BcHBBcmdzCiAgICBieiBtYWluX2JhcmVfcm91dGluZ0AxMQogICAgcHVzaGJ5dGVzcyAweDI4MjZiMjAyIDB4ZjBhYTcwMjMgMHgzMGM2ZDU4YSAweGRiN2ZlODQzIDB4ZTY1NDYyNWIgMHgxZWMxMmJlZiAvLyBtZXRob2QgIm9wdF9pbnRvX2Fzc2V0KGFzc2V0KXZvaWQiLCBtZXRob2QgInN0YXJ0X2F1Y3Rpb24odWludDY0LHVpbnQ2NCxheGZlcil2b2lkIiwgbWV0aG9kICJvcHRfaW4oKXZvaWQiLCBtZXRob2QgImJpZChwYXkpdm9pZCIsIG1ldGhvZCAiY2xhaW1fYmlkcygpdm9pZCIsIG1ldGhvZCAiY2xhaW1fYXNzZXQoYXNzZXQpdm9pZCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIG1haW5fb3B0X2ludG9fYXNzZXRfcm91dGVANSBtYWluX3N0YXJ0X2F1Y3Rpb25fcm91dGVANiBtYWluX29wdF9pbl9yb3V0ZUA3IG1haW5fYmlkX3JvdXRlQDggbWFpbl9jbGFpbV9iaWRzX3JvdXRlQDkgbWFpbl9jbGFpbV9hc3NldF9yb3V0ZUAxMAoKbWFpbl9hZnRlcl9pZl9lbHNlQDEzOgogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weToxNgogICAgLy8gY2xhc3MgQXVjdGlvbihBUkM0Q29udHJhY3QpOgogICAgaW50Y18wIC8vIDAKICAgIHJldHVybgoKbWFpbl9jbGFpbV9hc3NldF9yb3V0ZUAxMDoKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6OTcKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5OjE2CiAgICAvLyBjbGFzcyBBdWN0aW9uKEFSQzRDb250cmFjdCk6CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hcyBBc3NldHMKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6OTcKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgY2FsbHN1YiBjbGFpbV9hc3NldAogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKbWFpbl9jbGFpbV9iaWRzX3JvdXRlQDk6CiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5OjgyCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBjbGFpbV9iaWRzCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgptYWluX2JpZF9yb3V0ZUA4OgogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weTo2NgogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6MTYKICAgIC8vIGNsYXNzIEF1Y3Rpb24oQVJDNENvbnRyYWN0KToKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzEgLy8gMQogICAgLQogICAgZHVwCiAgICBndHhucyBUeXBlRW51bQogICAgaW50Y18xIC8vIHBheQogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIHBheQogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weTo2NgogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBjYWxsc3ViIGJpZAogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKbWFpbl9vcHRfaW5fcm91dGVANzoKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6NjIKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgptYWluX3N0YXJ0X2F1Y3Rpb25fcm91dGVANjoKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6NDAKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5OjE2CiAgICAvLyBjbGFzcyBBdWN0aW9uKEFSQzRDb250cmFjdCk6CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18xIC8vIDEKICAgIC0KICAgIGR1cAogICAgZ3R4bnMgVHlwZUVudW0KICAgIGludGNfMiAvLyBheGZlcgogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIGF4ZmVyCiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5OjQwCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGNhbGxzdWIgc3RhcnRfYXVjdGlvbgogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKbWFpbl9vcHRfaW50b19hc3NldF9yb3V0ZUA1OgogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weToyNQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6MTYKICAgIC8vIGNsYXNzIEF1Y3Rpb24oQVJDNENvbnRyYWN0KToKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGJ0b2kKICAgIHR4bmFzIEFzc2V0cwogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weToyNQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBjYWxsc3ViIG9wdF9pbnRvX2Fzc2V0CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgptYWluX2JhcmVfcm91dGluZ0AxMToKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6MTYKICAgIC8vIGNsYXNzIEF1Y3Rpb24oQVJDNENvbnRyYWN0KToKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMTMKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICAhCiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gZXhhbXBsZXMuYXVjdGlvbi5jb250cmFjdC5BdWN0aW9uLm9wdF9pbnRvX2Fzc2V0KGFzc2V0OiB1aW50NjQpIC0+IHZvaWQ6Cm9wdF9pbnRvX2Fzc2V0OgogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weToyNS0yNgogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICAvLyBkZWYgb3B0X2ludG9fYXNzZXQoc2VsZiwgYXNzZXQ6IEFzc2V0KSAtPiBOb25lOgogICAgcHJvdG8gMSAwCiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5OjI3LTI4CiAgICAvLyAjIE9ubHkgYWxsb3cgYXBwIGNyZWF0b3IgdG8gb3B0IHRoZSBhcHAgYWNjb3VudCBpbnRvIGEgQVNBCiAgICAvLyBhc3NlcnQgVHhuLnNlbmRlciA9PSBHbG9iYWwuY3JlYXRvcl9hZGRyZXNzLCAiT25seSBjcmVhdG9yIGNhbiBvcHQgaW4gdG8gQVNBIgogICAgdHhuIFNlbmRlcgogICAgZ2xvYmFsIENyZWF0b3JBZGRyZXNzCiAgICA9PQogICAgYXNzZXJ0IC8vIE9ubHkgY3JlYXRvciBjYW4gb3B0IGluIHRvIEFTQQogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weToyOS0zMAogICAgLy8gIyBWZXJpZnkgYSBBU0EgaGFzbid0IGFscmVhZHkgYmVlbiBvcHRlZCBpbnRvCiAgICAvLyBhc3NlcnQgc2VsZi5hc2EuaWQgPT0gMCwgIkFTQSBhbHJlYWR5IG9wdGVkIGluIgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjIDQgLy8gImFzYSIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5hc2EgZXhpc3RzCiAgICAhCiAgICBhc3NlcnQgLy8gQVNBIGFscmVhZHkgb3B0ZWQgaW4KICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6MzEtMzIKICAgIC8vICMgU2F2ZSBBU0EgSUQgaW4gZ2xvYmFsIHN0YXRlCiAgICAvLyBzZWxmLmFzYSA9IGFzc2V0CiAgICBieXRlYyA0IC8vICJhc2EiCiAgICBmcmFtZV9kaWcgLTEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5OjM0LTM4CiAgICAvLyAjIFN1Ym1pdCBvcHQtaW4gdHJhbnNhY3Rpb246IDAgYXNzZXQgdHJhbnNmZXIgdG8gc2VsZgogICAgLy8gaXR4bi5Bc3NldFRyYW5zZmVyKAogICAgLy8gICAgIGFzc2V0X3JlY2VpdmVyPUdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MsCiAgICAvLyAgICAgeGZlcl9hc3NldD1hc3NldCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6MzYKICAgIC8vIGFzc2V0X3JlY2VpdmVyPUdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MsCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgZnJhbWVfZGlnIC0xCiAgICBpdHhuX2ZpZWxkIFhmZXJBc3NldAogICAgaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5OjM0LTM1CiAgICAvLyAjIFN1Ym1pdCBvcHQtaW4gdHJhbnNhY3Rpb246IDAgYXNzZXQgdHJhbnNmZXIgdG8gc2VsZgogICAgLy8gaXR4bi5Bc3NldFRyYW5zZmVyKAogICAgaW50Y18yIC8vIGF4ZmVyCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6MzQtMzgKICAgIC8vICMgU3VibWl0IG9wdC1pbiB0cmFuc2FjdGlvbjogMCBhc3NldCB0cmFuc2ZlciB0byBzZWxmCiAgICAvLyBpdHhuLkFzc2V0VHJhbnNmZXIoCiAgICAvLyAgICAgYXNzZXRfcmVjZWl2ZXI9R2xvYmFsLmN1cnJlbnRfYXBwbGljYXRpb25fYWRkcmVzcywKICAgIC8vICAgICB4ZmVyX2Fzc2V0PWFzc2V0LAogICAgLy8gKS5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIHJldHN1YgoKCi8vIGV4YW1wbGVzLmF1Y3Rpb24uY29udHJhY3QuQXVjdGlvbi5zdGFydF9hdWN0aW9uKHN0YXJ0aW5nX3ByaWNlOiB1aW50NjQsIGxlbmd0aDogdWludDY0LCBheGZlcjogdWludDY0KSAtPiB2b2lkOgpzdGFydF9hdWN0aW9uOgogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weTo0MC00NgogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICAvLyBkZWYgc3RhcnRfYXVjdGlvbigKICAgIC8vICAgICBzZWxmLAogICAgLy8gICAgIHN0YXJ0aW5nX3ByaWNlOiBVSW50NjQsCiAgICAvLyAgICAgbGVuZ3RoOiBVSW50NjQsCiAgICAvLyAgICAgYXhmZXI6IGd0eG4uQXNzZXRUcmFuc2ZlclRyYW5zYWN0aW9uLAogICAgLy8gKSAtPiBOb25lOgogICAgcHJvdG8gMyAwCiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5OjQ3CiAgICAvLyBhc3NlcnQgVHhuLnNlbmRlciA9PSBHbG9iYWwuY3JlYXRvcl9hZGRyZXNzLCAiYXVjdGlvbiBtdXN0IGJlIHN0YXJ0ZWQgYnkgY3JlYXRvciIKICAgIHR4biBTZW5kZXIKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgPT0KICAgIGFzc2VydCAvLyBhdWN0aW9uIG11c3QgYmUgc3RhcnRlZCBieSBjcmVhdG9yCiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5OjQ5LTUwCiAgICAvLyAjIEVuc3VyZSB0aGUgYXVjdGlvbiBoYXNuJ3QgYWxyZWFkeSBiZWVuIHN0YXJ0ZWQKICAgIC8vIGFzc2VydCBzZWxmLmF1Y3Rpb25fZW5kID09IDAsICJhdWN0aW9uIGFscmVhZHkgc3RhcnRlZCIKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18wIC8vICJhdWN0aW9uX2VuZCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5hdWN0aW9uX2VuZCBleGlzdHMKICAgICEKICAgIGFzc2VydCAvLyBhdWN0aW9uIGFscmVhZHkgc3RhcnRlZAogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weTo1NAogICAgLy8gYXhmZXIuYXNzZXRfcmVjZWl2ZXIgPT0gR2xvYmFsLmN1cnJlbnRfYXBwbGljYXRpb25fYWRkcmVzcwogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBBc3NldFJlY2VpdmVyCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgPT0KICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6NTItNTUKICAgIC8vICMgVmVyaWZ5IGF4ZmVyCiAgICAvLyBhc3NlcnQgKAogICAgLy8gICAgIGF4ZmVyLmFzc2V0X3JlY2VpdmVyID09IEdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MKICAgIC8vICksICJheGZlciBtdXN0IHRyYW5zZmVyIHRvIHRoaXMgYXBwIgogICAgYXNzZXJ0IC8vIGF4ZmVyIG11c3QgdHJhbnNmZXIgdG8gdGhpcyBhcHAKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6NTctNTgKICAgIC8vICMgU2V0IGdsb2JhbCBzdGF0ZQogICAgLy8gc2VsZi5hc2FfYW1vdW50ID0gYXhmZXIuYXNzZXRfYW1vdW50CiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIEFzc2V0QW1vdW50CiAgICBieXRlY18zIC8vICJhc2FfYW1vdW50IgogICAgc3dhcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6NTkKICAgIC8vIHNlbGYuYXVjdGlvbl9lbmQgPSBHbG9iYWwubGF0ZXN0X3RpbWVzdGFtcCArIGxlbmd0aAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgZnJhbWVfZGlnIC0yCiAgICArCiAgICBieXRlY18wIC8vICJhdWN0aW9uX2VuZCIKICAgIHN3YXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5OjYwCiAgICAvLyBzZWxmLnByZXZpb3VzX2JpZCA9IHN0YXJ0aW5nX3ByaWNlCiAgICBieXRlY18xIC8vICJwcmV2aW91c19iaWQiCiAgICBmcmFtZV9kaWcgLTMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyBleGFtcGxlcy5hdWN0aW9uLmNvbnRyYWN0LkF1Y3Rpb24uYmlkKHBheTogdWludDY0KSAtPiB2b2lkOgpiaWQ6CiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5OjY2LTY3CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIC8vIGRlZiBiaWQoc2VsZiwgcGF5OiBndHhuLlBheW1lbnRUcmFuc2FjdGlvbikgLT4gTm9uZToKICAgIHByb3RvIDEgMAogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weTo2OC02OQogICAgLy8gIyBFbnN1cmUgYXVjdGlvbiBoYXNuJ3QgZW5kZWQKICAgIC8vIGFzc2VydCBHbG9iYWwubGF0ZXN0X3RpbWVzdGFtcCA8IHNlbGYuYXVjdGlvbl9lbmQsICJhdWN0aW9uIGhhcyBlbmRlZCIKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18wIC8vICJhdWN0aW9uX2VuZCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5hdWN0aW9uX2VuZCBleGlzdHMKICAgIDwKICAgIGFzc2VydCAvLyBhdWN0aW9uIGhhcyBlbmRlZAogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weTo3MS03MgogICAgLy8gIyBWZXJpZnkgcGF5bWVudCB0cmFuc2FjdGlvbgogICAgLy8gYXNzZXJ0IHBheS5zZW5kZXIgPT0gVHhuLnNlbmRlciwgInBheW1lbnQgc2VuZGVyIG11c3QgbWF0Y2ggdHJhbnNhY3Rpb24gc2VuZGVyIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBTZW5kZXIKICAgIGR1cAogICAgdHhuIFNlbmRlcgogICAgPT0KICAgIGFzc2VydCAvLyBwYXltZW50IHNlbmRlciBtdXN0IG1hdGNoIHRyYW5zYWN0aW9uIHNlbmRlcgogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weTo3MwogICAgLy8gYXNzZXJ0IHBheS5hbW91bnQgPiBzZWxmLnByZXZpb3VzX2JpZCwgIkJpZCBtdXN0IGJlIGhpZ2hlciB0aGFuIHByZXZpb3VzIGJpZCIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQW1vdW50CiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMSAvLyAicHJldmlvdXNfYmlkIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLnByZXZpb3VzX2JpZCBleGlzdHMKICAgIGRpZyAxCiAgICA8CiAgICBhc3NlcnQgLy8gQmlkIG11c3QgYmUgaGlnaGVyIHRoYW4gcHJldmlvdXMgYmlkCiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5Ojc1LTc2CiAgICAvLyAjIHNldCBnbG9iYWwgc3RhdGUKICAgIC8vIHNlbGYucHJldmlvdXNfYmlkID0gcGF5LmFtb3VudAogICAgYnl0ZWNfMSAvLyAicHJldmlvdXNfYmlkIgogICAgZGlnIDEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5Ojc3CiAgICAvLyBzZWxmLnByZXZpb3VzX2JpZGRlciA9IHBheS5zZW5kZXIKICAgIGJ5dGVjXzIgLy8gInByZXZpb3VzX2JpZGRlciIKICAgIHVuY292ZXIgMgogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6NzktODAKICAgIC8vICMgVXBkYXRlIGNsYWltYWJsZSBhbW91bnQKICAgIC8vIHNlbGYuY2xhaW1hYmxlX2Ftb3VudFtUeG4uc2VuZGVyXSA9IHBheS5hbW91bnQKICAgIHR4biBTZW5kZXIKICAgIGJ5dGVjIDUgLy8gImNsYWltIgogICAgdW5jb3ZlciAyCiAgICBhcHBfbG9jYWxfcHV0CiAgICByZXRzdWIKCgovLyBleGFtcGxlcy5hdWN0aW9uLmNvbnRyYWN0LkF1Y3Rpb24uY2xhaW1fYmlkcygpIC0+IHZvaWQ6CmNsYWltX2JpZHM6CiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5OjgyLTgzCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIC8vIGRlZiBjbGFpbV9iaWRzKHNlbGYpIC0+IE5vbmU6CiAgICBwcm90byAwIDAKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6ODQKICAgIC8vIGFtb3VudCA9IG9yaWdpbmFsX2Ftb3VudCA9IHNlbGYuY2xhaW1hYmxlX2Ftb3VudFtUeG4uc2VuZGVyXQogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjIDUgLy8gImNsYWltIgogICAgYXBwX2xvY2FsX2dldF9leAogICAgc3dhcAogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmNsYWltYWJsZV9hbW91bnQgZXhpc3RzIGZvciBhY2NvdW50CiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5Ojg2LTg3CiAgICAvLyAjIHN1YnRyYWN0IHByZXZpb3VzIGJpZCBpZiBzZW5kZXIgaXMgcHJldmlvdXMgYmlkZGVyCiAgICAvLyBpZiBUeG4uc2VuZGVyID09IHNlbGYucHJldmlvdXNfYmlkZGVyOgogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzIgLy8gInByZXZpb3VzX2JpZGRlciIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5wcmV2aW91c19iaWRkZXIgZXhpc3RzCiAgICA9PQogICAgYnogY2xhaW1fYmlkc19hZnRlcl9pZl9lbHNlQDIKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6ODgKICAgIC8vIGFtb3VudCAtPSBzZWxmLnByZXZpb3VzX2JpZAogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gInByZXZpb3VzX2JpZCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5wcmV2aW91c19iaWQgZXhpc3RzCiAgICBmcmFtZV9kaWcgMAogICAgc3dhcAogICAgLQogICAgZnJhbWVfYnVyeSAxCgpjbGFpbV9iaWRzX2FmdGVyX2lmX2Vsc2VAMjoKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6OTAtOTMKICAgIC8vIGl0eG4uUGF5bWVudCgKICAgIC8vICAgICBhbW91bnQ9YW1vdW50LAogICAgLy8gICAgIHJlY2VpdmVyPVR4bi5zZW5kZXIsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5OjkyCiAgICAvLyByZWNlaXZlcj1UeG4uc2VuZGVyLAogICAgdHhuIFNlbmRlcgogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgZnJhbWVfZGlnIDEKICAgIGR1cAogICAgaXR4bl9maWVsZCBBbW91bnQKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6OTAKICAgIC8vIGl0eG4uUGF5bWVudCgKICAgIGludGNfMSAvLyBwYXkKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weTo5MC05MwogICAgLy8gaXR4bi5QYXltZW50KAogICAgLy8gICAgIGFtb3VudD1hbW91bnQsCiAgICAvLyAgICAgcmVjZWl2ZXI9VHhuLnNlbmRlciwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5Ojk1CiAgICAvLyBzZWxmLmNsYWltYWJsZV9hbW91bnRbVHhuLnNlbmRlcl0gPSBvcmlnaW5hbF9hbW91bnQgLSBhbW91bnQKICAgIHR4biBTZW5kZXIKICAgIGZyYW1lX2RpZyAwCiAgICB1bmNvdmVyIDIKICAgIC0KICAgIGJ5dGVjIDUgLy8gImNsYWltIgogICAgc3dhcAogICAgYXBwX2xvY2FsX3B1dAogICAgcmV0c3ViCgoKLy8gZXhhbXBsZXMuYXVjdGlvbi5jb250cmFjdC5BdWN0aW9uLmNsYWltX2Fzc2V0KGFzc2V0OiB1aW50NjQpIC0+IHZvaWQ6CmNsYWltX2Fzc2V0OgogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weTo5Ny05OAogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICAvLyBkZWYgY2xhaW1fYXNzZXQoc2VsZiwgYXNzZXQ6IEFzc2V0KSAtPiBOb25lOgogICAgcHJvdG8gMSAwCiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5Ojk5CiAgICAvLyBhc3NlcnQgR2xvYmFsLmxhdGVzdF90aW1lc3RhbXAgPiBzZWxmLmF1Y3Rpb25fZW5kLCAiYXVjdGlvbiBoYXMgbm90IGVuZGVkIgogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzAgLy8gImF1Y3Rpb25fZW5kIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmF1Y3Rpb25fZW5kIGV4aXN0cwogICAgPgogICAgYXNzZXJ0IC8vIGF1Y3Rpb24gaGFzIG5vdCBlbmRlZAogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weToxMDAtMTA2CiAgICAvLyAjIFNlbmQgQVNBIHRvIHByZXZpb3VzIGJpZGRlcgogICAgLy8gaXR4bi5Bc3NldFRyYW5zZmVyKAogICAgLy8gICAgIHhmZXJfYXNzZXQ9YXNzZXQsCiAgICAvLyAgICAgYXNzZXRfY2xvc2VfdG89c2VsZi5wcmV2aW91c19iaWRkZXIsCiAgICAvLyAgICAgYXNzZXRfcmVjZWl2ZXI9c2VsZi5wcmV2aW91c19iaWRkZXIsCiAgICAvLyAgICAgYXNzZXRfYW1vdW50PXNlbGYuYXNhX2Ftb3VudCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6MTAzCiAgICAvLyBhc3NldF9jbG9zZV90bz1zZWxmLnByZXZpb3VzX2JpZGRlciwKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18yIC8vICJwcmV2aW91c19iaWRkZXIiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYucHJldmlvdXNfYmlkZGVyIGV4aXN0cwogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weToxMDQKICAgIC8vIGFzc2V0X3JlY2VpdmVyPXNlbGYucHJldmlvdXNfYmlkZGVyLAogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzIgLy8gInByZXZpb3VzX2JpZGRlciIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5wcmV2aW91c19iaWRkZXIgZXhpc3RzCiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5OjEwNQogICAgLy8gYXNzZXRfYW1vdW50PXNlbGYuYXNhX2Ftb3VudCwKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18zIC8vICJhc2FfYW1vdW50IgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmFzYV9hbW91bnQgZXhpc3RzCiAgICBpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CiAgICBpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgQXNzZXRDbG9zZVRvCiAgICBmcmFtZV9kaWcgLTEKICAgIGl0eG5fZmllbGQgWGZlckFzc2V0CiAgICAvLyBhdWN0aW9uL2NvbnRyYWN0LnB5OjEwMC0xMDEKICAgIC8vICMgU2VuZCBBU0EgdG8gcHJldmlvdXMgYmlkZGVyCiAgICAvLyBpdHhuLkFzc2V0VHJhbnNmZXIoCiAgICBpbnRjXzIgLy8gYXhmZXIKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gYXVjdGlvbi9jb250cmFjdC5weToxMDAtMTA2CiAgICAvLyAjIFNlbmQgQVNBIHRvIHByZXZpb3VzIGJpZGRlcgogICAgLy8gaXR4bi5Bc3NldFRyYW5zZmVyKAogICAgLy8gICAgIHhmZXJfYXNzZXQ9YXNzZXQsCiAgICAvLyAgICAgYXNzZXRfY2xvc2VfdG89c2VsZi5wcmV2aW91c19iaWRkZXIsCiAgICAvLyAgICAgYXNzZXRfcmVjZWl2ZXI9c2VsZi5wcmV2aW91c19iaWRkZXIsCiAgICAvLyAgICAgYXNzZXRfYW1vdW50PXNlbGYuYXNhX2Ftb3VudCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICByZXRzdWIK", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBleGFtcGxlcy5hdWN0aW9uLmNvbnRyYWN0LkF1Y3Rpb24uY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIC8vIGF1Y3Rpb24vY29udHJhY3QucHk6MTE2CiAgICAvLyByZXR1cm4gVHJ1ZQogICAgcHVzaGludCAxIC8vIDEKICAgIHJldHVybgo=" }, "byteCode": { "approval": "CiADAAEEJgYLYXVjdGlvbl9lbmQMcHJldmlvdXNfYmlkD3ByZXZpb3VzX2JpZGRlcgphc2FfYW1vdW50A2FzYQVjbGFpbTEYQAARKCJnKSJnKyJnJwQiZyoyA2cxG0EAoIIGBCgmsgIE8KpwIwQwxtWKBNt/6EME5lRiWwQewSvvNhoAjgYAXQA/ADYAIAAUAAIiQzEZFEQxGEQ2GgEXwDCIASgjQzEZFEQxGESIAN0jQzEZFEQxGEQxFiMJSTgQIxJEiACXI0MxGRREMRhEI0MxGRREMRhENhoBFzYaAhcxFiMJSTgQJBJEiABFI0MxGRREMRhENhoBF8AwiAANI0MxGUD/jDEYFEQjQ4oBADEAMgkSRCInBGVEFEQnBIv/Z7EyCov/shGyFCSyECKyAbOJigMAMQAyCRJEIihlRBREi/84FDIKEkSL/zgSK0xnMgeL/ggoTGcpi/1niYoBADIHIihlRAxEi/84AEkxABJEi/84CCIpZURLAQxEKUsBZypPAmcxACcFTwJmiYoAADEAIicFY0xJTwJEMQAiKmVEEkEACiIpZUSLAEwJjAGxMQCyB4sBSbIII7IQIrIBszEAiwBPAgknBUxmiYoBADIHIihlRA1EsSIqZUQiKmVEIitlRLISshSyFYv/shEkshAisgGziQ==", "clear": "CoEBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 99, "minor": 99, "patch": 99 } }, "events": [], "templateVariables": {} }