{ "name": "NestedTuples", "structs": { "Child": [ { "name": "a", "type": "uint64" }, { "name": "b", "type": "byte[]" }, { "name": "c", "type": "string" } ], "Parent": [ { "name": "foo", "type": "uint64" }, { "name": "foo_arc", "type": "uint64" }, { "name": "child", "type": "Child" } ] }, "methods": [ { "name": "run_tests", "args": [], "returns": { "type": "bool" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "nested_tuple_params", "args": [ { "type": "(string,(byte[],(uint64)))", "name": "args" } ], "returns": { "type": "(byte[],(string,uint64))" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "named_tuple", "args": [ { "type": "(uint64,byte[],string)", "struct": "Child", "name": "args" } ], "returns": { "type": "(uint64,byte[],string)", "struct": "Child" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "nested_named_tuple_params", "args": [ { "type": "(uint64,uint64,(uint64,byte[],string))", "struct": "Parent", "name": "args" } ], "returns": { "type": "(uint64,uint64,(uint64,byte[],string))", "struct": "Parent" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 1, "bytes": 0 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": { "build_nested_call_count": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "YnVpbGRfbmVzdGVkX2NhbGxfY291bnQ=" } }, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 106, 368 ], "errorMessage": "Index access is out of bounds" }, { "pc": [ 94, 224, 319, 434 ], "errorMessage": "OnCompletion is not NoOp" }, { "pc": [ 462 ], "errorMessage": "can only call when creating" }, { "pc": [ 97, 227, 322, 437 ], "errorMessage": "can only call when not creating" }, { "pc": [ 621, 630 ], "errorMessage": "check self.build_nested_call_count exists" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyB0ZXN0X2Nhc2VzLnR1cGxlX3N1cHBvcnQubmVzdGVkX3R1cGxlcy5OZXN0ZWRUdXBsZXMuX19hbGdvcHlfZW50cnlwb2ludF93aXRoX2luaXQoKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMSAwIDIgMwogICAgYnl0ZWNibG9jayAiYnVpbGRfbmVzdGVkX2NhbGxfY291bnQiIDB4MTUxZjdjNzUgMHgwMDBjCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MjAKICAgIC8vIHNlbGYuYnVpbGRfbmVzdGVkX2NhbGxfY291bnQgPSBVSW50NjQoMCkKICAgIGJ5dGVjXzAgLy8gImJ1aWxkX25lc3RlZF9jYWxsX2NvdW50IgogICAgaW50Y18xIC8vIDAKICAgIGFwcF9nbG9iYWxfcHV0CgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxOAogICAgLy8gY2xhc3MgTmVzdGVkVHVwbGVzKEFSQzRDb250cmFjdCk6CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAOQogICAgcHVzaGJ5dGVzcyAweDllNWEzYmE3IDB4Y2VhMDUyMWIgMHgzNzNmNWIyNCAweGVjNTkzMDk2IC8vIG1ldGhvZCAicnVuX3Rlc3RzKClib29sIiwgbWV0aG9kICJuZXN0ZWRfdHVwbGVfcGFyYW1zKChzdHJpbmcsKGJ5dGVbXSwodWludDY0KSkpKShieXRlW10sKHN0cmluZyx1aW50NjQpKSIsIG1ldGhvZCAibmFtZWRfdHVwbGUoKHVpbnQ2NCxieXRlW10sc3RyaW5nKSkodWludDY0LGJ5dGVbXSxzdHJpbmcpIiwgbWV0aG9kICJuZXN0ZWRfbmFtZWRfdHVwbGVfcGFyYW1zKCh1aW50NjQsdWludDY0LCh1aW50NjQsYnl0ZVtdLHN0cmluZykpKSh1aW50NjQsdWludDY0LCh1aW50NjQsYnl0ZVtdLHN0cmluZykpIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggbWFpbl9ydW5fdGVzdHNfcm91dGVANSBtYWluX25lc3RlZF90dXBsZV9wYXJhbXNfcm91dGVANiBtYWluX25hbWVkX3R1cGxlX3JvdXRlQDcgbWFpbl9uZXN0ZWRfbmFtZWRfdHVwbGVfcGFyYW1zX3JvdXRlQDgKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMToKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxOAogICAgLy8gY2xhc3MgTmVzdGVkVHVwbGVzKEFSQzRDb250cmFjdCk6CiAgICBpbnRjXzEgLy8gMAogICAgcmV0dXJuCgptYWluX25lc3RlZF9uYW1lZF90dXBsZV9wYXJhbXNfcm91dGVAODoKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weTo2MwogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE4CiAgICAvLyBjbGFzcyBOZXN0ZWRUdXBsZXMoQVJDNENvbnRyYWN0KToKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBkaWcgMQogICAgZXh0cmFjdCA4IDggLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBkaWcgMgogICAgcHVzaGludCAxNiAvLyAxNgogICAgZXh0cmFjdF91aW50MTYKICAgIGRpZyAzCiAgICBsZW4KICAgIHVuY292ZXIgNAogICAgY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgZHVwCiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIGRpZyAxCiAgICBwdXNoaW50IDggLy8gOAogICAgZXh0cmFjdF91aW50MTYKICAgIGRpZyAyCiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDMKICAgIHVuY292ZXIgMgogICAgZGlnIDIKICAgIHN1YnN0cmluZzMKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMwogICAgbGVuCiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgMwogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBleHRyYWN0IDIgMAogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjYzCiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdW5jb3ZlciA0CiAgICBpdG9iCiAgICB1bmNvdmVyIDMKICAgIGl0b2IKICAgIGRpZyAzCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICB1bmNvdmVyIDQKICAgIGNvbmNhdAogICAgZGlnIDMKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHVuY292ZXIgNAogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGJ5dGVjXzIgLy8gMHgwMDBjCiAgICBjb25jYXQKICAgIGRpZyAyCiAgICBsZW4KICAgIHB1c2hpbnQgMTIgLy8gMTIKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgwMDEyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKbWFpbl9uYW1lZF90dXBsZV9yb3V0ZUA3OgogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjU4CiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTgKICAgIC8vIGNsYXNzIE5lc3RlZFR1cGxlcyhBUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIGRpZyAxCiAgICBwdXNoaW50IDggLy8gOAogICAgZXh0cmFjdF91aW50MTYKICAgIGRpZyAyCiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDMKICAgIHVuY292ZXIgMgogICAgZGlnIDIKICAgIHN1YnN0cmluZzMKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMwogICAgbGVuCiAgICB1bmNvdmVyIDQKICAgIHVuY292ZXIgMwogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBleHRyYWN0IDIgMAogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjU4CiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdW5jb3ZlciAyCiAgICBpdG9iCiAgICBkaWcgMgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgIGRpZyAyCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBieXRlY18yIC8vIDB4MDAwYwogICAgY29uY2F0CiAgICBkaWcgMgogICAgbGVuCiAgICBwdXNoaW50IDEyIC8vIDEyCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX25lc3RlZF90dXBsZV9wYXJhbXNfcm91dGVANjoKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weTo1MQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE4CiAgICAvLyBjbGFzcyBOZXN0ZWRUdXBsZXMoQVJDNENvbnRyYWN0KToKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMQogICAgaW50Y18yIC8vIDIKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMgogICAgdW5jb3ZlciAyCiAgICBkaWcgMgogICAgc3Vic3RyaW5nMwogICAgZXh0cmFjdCAyIDAKICAgIGRpZyAyCiAgICBsZW4KICAgIHVuY292ZXIgMwogICAgdW5jb3ZlciAzCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIGR1cAogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMQogICAgbGVuCiAgICBkaWcgMgogICAgY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgZXh0cmFjdCAyIDAKICAgIHN3YXAKICAgIGV4dHJhY3QgMiA4IC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6NTEKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICBkaWcgMQogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIGRpZyAyCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBpdG9iCiAgICBwdXNoYnl0ZXMgMHgwMDBhCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZGlnIDEKICAgIGxlbgogICAgcHVzaGludCA0IC8vIDQKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBwdXNoYnl0ZXMgMHgwMDA0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fcnVuX3Rlc3RzX3JvdXRlQDU6CiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MjIKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgcnVuX3Rlc3RzCiAgICBwdXNoYnl0ZXMgMHgwMAogICAgaW50Y18xIC8vIDAKICAgIHVuY292ZXIgMgogICAgc2V0Yml0CiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX2JhcmVfcm91dGluZ0A5OgogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE4CiAgICAvLyBjbGFzcyBOZXN0ZWRUdXBsZXMoQVJDNENvbnRyYWN0KToKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMTEKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICAhCiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy50dXBsZV9zdXBwb3J0Lm5lc3RlZF90dXBsZXMudGVzdF9uZXN0ZWRfc2luZ2xlcyhvbmU6IHVpbnQ2NCwgcmVhc3NpZ246IHVpbnQ2NCkgLT4gdm9pZDoKdGVzdF9uZXN0ZWRfc2luZ2xlczoKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxMzEtMTMyCiAgICAvLyBAc3Vicm91dGluZQogICAgLy8gZGVmIHRlc3RfbmVzdGVkX3NpbmdsZXMob25lOiBVSW50NjQsICosIHJlYXNzaWduOiBib29sKSAtPiBOb25lOgogICAgcHJvdG8gMiAwCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTM0CiAgICAvLyAoVUludDY0KDApLCksCiAgICBpbnRjXzEgLy8gMAogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjEzNgogICAgLy8gKFVJbnQ2NCgyKSwpLAogICAgaW50Y18yIC8vIDIKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxNDAKICAgIC8vIGFzc2VydCBzWzFdWzBdID09IDEKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18wIC8vIDEKICAgID09CiAgICBhc3NlcnQKICAgIGZyYW1lX2RpZyAtMgogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE0NQogICAgLy8gaWYgcmVhc3NpZ246CiAgICBmcmFtZV9kaWcgLTEKICAgIGJ6IHRlc3RfbmVzdGVkX3NpbmdsZXNfYWZ0ZXJfaWZfZWxzZUAyCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTQ3CiAgICAvLyAoVUludDY0KDMpLCksCiAgICBpbnRjXzMgLy8gMwogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE0Ni0xNTAKICAgIC8vIHMgPSAoCiAgICAvLyAgICAgKFVJbnQ2NCgzKSwpLAogICAgLy8gICAgIChVSW50NjQoNCksKSwKICAgIC8vICAgICAoVUludDY0KDUpLCksCiAgICAvLyApCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxNDgKICAgIC8vIChVSW50NjQoNCksKSwKICAgIHB1c2hpbnQgNCAvLyA0CiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTQ2LTE1MAogICAgLy8gcyA9ICgKICAgIC8vICAgICAoVUludDY0KDMpLCksCiAgICAvLyAgICAgKFVJbnQ2NCg0KSwpLAogICAgLy8gICAgIChVSW50NjQoNSksKSwKICAgIC8vICkKICAgIGZyYW1lX2J1cnkgMgogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE0OQogICAgLy8gKFVJbnQ2NCg1KSwpLAogICAgcHVzaGludCA1IC8vIDUKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxNDYtMTUwCiAgICAvLyBzID0gKAogICAgLy8gICAgIChVSW50NjQoMyksKSwKICAgIC8vICAgICAoVUludDY0KDQpLCksCiAgICAvLyAgICAgKFVJbnQ2NCg1KSwpLAogICAgLy8gKQogICAgZnJhbWVfYnVyeSAxCgp0ZXN0X25lc3RlZF9zaW5nbGVzX2FmdGVyX2lmX2Vsc2VAMjoKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxNTEKICAgIC8vIGFzc2VydCBzWzBdWzBdID09ICgzIGlmIHJlYXNzaWduIGVsc2UgMCkKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18zIC8vIDMKICAgICoKICAgIGZyYW1lX2RpZyAwCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTUzCiAgICAvLyBhc3NlcnQgdG1wID09ICg1IGlmIHJlYXNzaWduIGVsc2UgMikKICAgIGludGNfMiAvLyAyCiAgICBwdXNoaW50IDUgLy8gNQogICAgZnJhbWVfZGlnIC0xCiAgICBzZWxlY3QKICAgIGZyYW1lX2RpZyAxCiAgICBkaWcgMQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE1NwogICAgLy8gczEgKz0gb25lCiAgICBmcmFtZV9kaWcgMgogICAgZHVwCiAgICBjb3ZlciAyCiAgICBmcmFtZV9kaWcgLTIKICAgICsKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxNTgKICAgIC8vIGFzc2VydCBzMSA9PSAoNSBpZiByZWFzc2lnbiBlbHNlIDIpCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTU5CiAgICAvLyBhc3NlcnQgc1sxXVswXSA9PSAoNCBpZiByZWFzc2lnbiBlbHNlIDEpCiAgICBpbnRjXzAgLy8gMQogICAgcHVzaGludCA0IC8vIDQKICAgIGZyYW1lX2RpZyAtMQogICAgc2VsZWN0CiAgICA9PQogICAgYXNzZXJ0CiAgICByZXRzdWIKCgovLyB0ZXN0X2Nhc2VzLnR1cGxlX3N1cHBvcnQubmVzdGVkX3R1cGxlcy5OZXN0ZWRUdXBsZXMucnVuX3Rlc3RzKCkgLT4gdWludDY0OgpydW5fdGVzdHM6CiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MjItMjMKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICAvLyBkZWYgcnVuX3Rlc3RzKHNlbGYpIC0+IGJvb2w6CiAgICBwcm90byAwIDEKICAgIHB1c2hieXRlcyAiIgogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjM4CiAgICAvLyB0ZXN0X2ludHJpbnNpY3MoVUludDY0KDEpLCBVSW50NjQoMikpCiAgICBpbnRjXzAgLy8gMQogICAgaW50Y18yIC8vIDIKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weTo5OAogICAgLy8gbnQgPSAoVUludDY0KDEpLCBvcC5hZGR3KG51bTEsIG51bTIpLCBVSW50NjQoNDIpKQogICAgYWRkdwogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjEwMQogICAgLy8gYXNzZXJ0IG50WzFdID09ICgwLCBudW0xICsgbnVtMikgICMgdHlwZTogaWdub3JlW2NvbXBhcmlzb24tb3ZlcmxhcF0KICAgIHN3YXAKICAgICEKICAgIHN3YXAKICAgIGludGNfMyAvLyAzCiAgICA9PQogICAgZHVwMgogICAgJiYKICAgIGFzc2VydAogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjEwMgogICAgLy8gYXNzZXJ0IG50WzFdWzoxXSA9PSAoMCwpICAjIHR5cGU6IGlnbm9yZVtjb21wYXJpc29uLW92ZXJsYXBdCiAgICBzd2FwCiAgICBhc3NlcnQKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxMDMKICAgIC8vIGFzc2VydCBudFsxXVsxOl0gPT0gKG51bTEgKyBudW0yLCkKICAgIGFzc2VydAogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjQwCiAgICAvLyB0ZXN0X25lc3RlZF9zaW5nbGVzKFVJbnQ2NCgxKSwgcmVhc3NpZ249VHJ1ZSkKICAgIGludGNfMCAvLyAxCiAgICBkdXAKICAgIGNhbGxzdWIgdGVzdF9uZXN0ZWRfc2luZ2xlcwogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjQxCiAgICAvLyB0ZXN0X25lc3RlZF9zaW5nbGVzKFVJbnQ2NCgxKSwgcmVhc3NpZ249RmFsc2UpCiAgICBpbnRjXzAgLy8gMQogICAgaW50Y18xIC8vIDAKICAgIGNhbGxzdWIgdGVzdF9uZXN0ZWRfc2luZ2xlcwogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE3OQogICAgLy8gdG90YWwgPSBVSW50NjQoMCkKICAgIGludGNfMSAvLyAwCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTc3CiAgICAvLyB4ID0gVUludDY0KDEpCiAgICBpbnRjXzAgLy8gMQogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE3OAogICAgLy8geSA9IFVJbnQ2NCgyKQogICAgaW50Y18yIC8vIDIKICAgIGludGNfMSAvLyAwCgpydW5fdGVzdHNfZm9yX2JvZHlAMTI6CiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTgzCiAgICAvLyB0b3RhbCArPSBhICsgYgogICAgZnJhbWVfZGlnIDIKICAgIHVuY292ZXIgMgogICAgKwogICAgZnJhbWVfZGlnIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE4MQogICAgLy8gZm9yIHQgaW4gKCh4LCB5KSwgKHksIHgpLCAoeCwgeCksICh5LCB5KSk6CiAgICBzd2l0Y2ggcnVuX3Rlc3RzX2Zvcl9oZWFkZXJfMUAxMyBydW5fdGVzdHNfZm9yX2hlYWRlcl8yQDE0IHJ1bl90ZXN0c19mb3JfaGVhZGVyXzNAMTUKICAgIGludGNfMSAvLyAwCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTc3CiAgICAvLyB4ID0gVUludDY0KDEpCiAgICBpbnRjXzAgLy8gMQogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE4NQogICAgLy8gZm9yIGEsIGIgaW4gKCh4LCB5KSwgKHksIHgpLCAoeCwgeCksICh5LCB5KSk6CiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxNzgKICAgIC8vIHkgPSBVSW50NjQoMikKICAgIGludGNfMiAvLyAyCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTg1CiAgICAvLyBmb3IgYSwgYiBpbiAoKHgsIHkpLCAoeSwgeCksICh4LCB4KSwgKHksIHkpKToKICAgIHN3YXAKCnJ1bl90ZXN0c19mb3JfYm9keUAxNzoKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxODYKICAgIC8vIHRvdGFsICs9IGEgKyBiCiAgICBmcmFtZV9kaWcgMAogICAgdW5jb3ZlciAyCiAgICArCiAgICBmcmFtZV9kaWcgMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTg1CiAgICAvLyBmb3IgYSwgYiBpbiAoKHgsIHkpLCAoeSwgeCksICh4LCB4KSwgKHksIHkpKToKICAgIHN3aXRjaCBydW5fdGVzdHNfZm9yX2hlYWRlcl8xQDE4IHJ1bl90ZXN0c19mb3JfaGVhZGVyXzJAMTkgcnVuX3Rlc3RzX2Zvcl9oZWFkZXJfM0AyMAogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE4OAogICAgLy8gYXNzZXJ0IHRvdGFsIC8vIDggPT0gMwogICAgZnJhbWVfZGlnIDEKICAgIHB1c2hpbnQgOCAvLyA4CiAgICAvCiAgICBpbnRjXzMgLy8gMwogICAgPT0KICAgIGFzc2VydAogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5Ojc1CiAgICAvLyBzZWxmLmJ1aWxkX25lc3RlZF9jYWxsX2NvdW50ID0gVUludDY0KDApCiAgICBieXRlY18wIC8vICJidWlsZF9uZXN0ZWRfY2FsbF9jb3VudCIKICAgIGludGNfMSAvLyAwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjcwCiAgICAvLyBzZWxmLmJ1aWxkX25lc3RlZF9jYWxsX2NvdW50ICs9IDEKICAgIGludGNfMSAvLyAwCiAgICBieXRlY18wIC8vICJidWlsZF9uZXN0ZWRfY2FsbF9jb3VudCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5idWlsZF9uZXN0ZWRfY2FsbF9jb3VudCBleGlzdHMKICAgIGludGNfMCAvLyAxCiAgICArCiAgICBieXRlY18wIC8vICJidWlsZF9uZXN0ZWRfY2FsbF9jb3VudCIKICAgIHN3YXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6NzgKICAgIC8vIGFzc2VydCBzZWxmLmJ1aWxkX25lc3RlZF9jYWxsX2NvdW50ID09IDEKICAgIGludGNfMSAvLyAwCiAgICBieXRlY18wIC8vICJidWlsZF9uZXN0ZWRfY2FsbF9jb3VudCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5idWlsZF9uZXN0ZWRfY2FsbF9jb3VudCBleGlzdHMKICAgIGludGNfMCAvLyAxCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6NDkKICAgIC8vIHJldHVybiBUcnVlCiAgICBpbnRjXzAgLy8gMQogICAgZnJhbWVfYnVyeSAwCiAgICByZXRzdWIKCnJ1bl90ZXN0c19mb3JfaGVhZGVyXzNAMjA6CiAgICBpbnRjXzMgLy8gMwogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE3OAogICAgLy8geSA9IFVJbnQ2NCgyKQogICAgaW50Y18yIC8vIDIKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxODUKICAgIC8vIGZvciBhLCBiIGluICgoeCwgeSksICh5LCB4KSwgKHgsIHgpLCAoeSwgeSkpOgogICAgZnJhbWVfYnVyeSAwCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTc4CiAgICAvLyB5ID0gVUludDY0KDIpCiAgICBpbnRjXzIgLy8gMgogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE4NQogICAgLy8gZm9yIGEsIGIgaW4gKCh4LCB5KSwgKHksIHgpLCAoeCwgeCksICh5LCB5KSk6CiAgICBzd2FwCiAgICBiIHJ1bl90ZXN0c19mb3JfYm9keUAxNwoKcnVuX3Rlc3RzX2Zvcl9oZWFkZXJfMkAxOToKICAgIGludGNfMiAvLyAyCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTc3CiAgICAvLyB4ID0gVUludDY0KDEpCiAgICBpbnRjXzAgLy8gMQogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE4NQogICAgLy8gZm9yIGEsIGIgaW4gKCh4LCB5KSwgKHksIHgpLCAoeCwgeCksICh5LCB5KSk6CiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxNzcKICAgIC8vIHggPSBVSW50NjQoMSkKICAgIGludGNfMCAvLyAxCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTg1CiAgICAvLyBmb3IgYSwgYiBpbiAoKHgsIHkpLCAoeSwgeCksICh4LCB4KSwgKHksIHkpKToKICAgIHN3YXAKICAgIGIgcnVuX3Rlc3RzX2Zvcl9ib2R5QDE3CgpydW5fdGVzdHNfZm9yX2hlYWRlcl8xQDE4OgogICAgaW50Y18wIC8vIDEKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxNzgKICAgIC8vIHkgPSBVSW50NjQoMikKICAgIGludGNfMiAvLyAyCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTg1CiAgICAvLyBmb3IgYSwgYiBpbiAoKHgsIHkpLCAoeSwgeCksICh4LCB4KSwgKHksIHkpKToKICAgIGZyYW1lX2J1cnkgMAogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE3NwogICAgLy8geCA9IFVJbnQ2NCgxKQogICAgaW50Y18wIC8vIDEKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxODUKICAgIC8vIGZvciBhLCBiIGluICgoeCwgeSksICh5LCB4KSwgKHgsIHgpLCAoeSwgeSkpOgogICAgc3dhcAogICAgYiBydW5fdGVzdHNfZm9yX2JvZHlAMTcKCnJ1bl90ZXN0c19mb3JfaGVhZGVyXzNAMTU6CiAgICBpbnRjXzMgLy8gMwogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE3OAogICAgLy8geSA9IFVJbnQ2NCgyKQogICAgaW50Y18yIC8vIDIKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxODEKICAgIC8vIGZvciB0IGluICgoeCwgeSksICh5LCB4KSwgKHgsIHgpLCAoeSwgeSkpOgogICAgZnJhbWVfYnVyeSAyCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTc4CiAgICAvLyB5ID0gVUludDY0KDIpCiAgICBpbnRjXzIgLy8gMgogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE4MQogICAgLy8gZm9yIHQgaW4gKCh4LCB5KSwgKHksIHgpLCAoeCwgeCksICh5LCB5KSk6CiAgICBzd2FwCiAgICBiIHJ1bl90ZXN0c19mb3JfYm9keUAxMgoKcnVuX3Rlc3RzX2Zvcl9oZWFkZXJfMkAxNDoKICAgIGludGNfMiAvLyAyCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTc3CiAgICAvLyB4ID0gVUludDY0KDEpCiAgICBpbnRjXzAgLy8gMQogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE4MQogICAgLy8gZm9yIHQgaW4gKCh4LCB5KSwgKHksIHgpLCAoeCwgeCksICh5LCB5KSk6CiAgICBmcmFtZV9idXJ5IDIKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxNzcKICAgIC8vIHggPSBVSW50NjQoMSkKICAgIGludGNfMCAvLyAxCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTgxCiAgICAvLyBmb3IgdCBpbiAoKHgsIHkpLCAoeSwgeCksICh4LCB4KSwgKHksIHkpKToKICAgIHN3YXAKICAgIGIgcnVuX3Rlc3RzX2Zvcl9ib2R5QDEyCgpydW5fdGVzdHNfZm9yX2hlYWRlcl8xQDEzOgogICAgaW50Y18wIC8vIDEKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxNzgKICAgIC8vIHkgPSBVSW50NjQoMikKICAgIGludGNfMiAvLyAyCiAgICAvLyB0dXBsZV9zdXBwb3J0L25lc3RlZF90dXBsZXMucHk6MTgxCiAgICAvLyBmb3IgdCBpbiAoKHgsIHkpLCAoeSwgeCksICh4LCB4KSwgKHksIHkpKToKICAgIGZyYW1lX2J1cnkgMgogICAgLy8gdHVwbGVfc3VwcG9ydC9uZXN0ZWRfdHVwbGVzLnB5OjE3NwogICAgLy8geCA9IFVJbnQ2NCgxKQogICAgaW50Y18wIC8vIDEKICAgIC8vIHR1cGxlX3N1cHBvcnQvbmVzdGVkX3R1cGxlcy5weToxODEKICAgIC8vIGZvciB0IGluICgoeCwgeSksICh5LCB4KSwgKHgsIHgpLCAoeSwgeSkpOgogICAgc3dhcAogICAgYiBydW5fdGVzdHNfZm9yX2JvZHlAMTIK", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMSAvLyAxCiAgICByZXR1cm4K" }, "byteCode": { "approval": "CiAEAQACAyYDF2J1aWxkX25lc3RlZF9jYWxsX2NvdW50BBUffHUCAAwxGEAAAygjZzEbQQGQggQEnlo7pwTOoFIbBDc/WyQE7FkwljYaAI4EAVYA4wCEAAIjQzEZFEQxGEQ2GgFJI1tLAVcICEsCgRBZSwMVTwROAlJJI1tLAYEIWUsCgQpZSwNPAksCUlcCAEsDFU8ETwNPAlJXAgBPBBZPAxZLAxUWVwYCTwRQSwMVFlcGAk8EUE8CKlBLAhWBDAgWVwYCUE8CUExQTE8CUIACABJQTFApTFCwIkMxGRREMRhENhoBSSNbSwGBCFlLAoEKWUsDTwJLAlJXAgBLAxVPBE8DTwJSVwIATwIWSwIVFlcGAk8DUEsCFRZXBgJPA1BPAipQSwIVgQwIFlcGAlBPAlBMUClMULAiQzEZFEQxGEQ2GgFJI1lLASRZSwJPAksCUlcCAEsCFU8DTwNPAlJJI1lLARVLAk4CUlcCAExXAggjW0sBFRZXBgJPAlBLAhUWVwYCTwNQTwIWgAIACkxQTFBLARWBBAgWVwYCgAIABExQTwJQTFApTFCwIkMxGRREMRhEiABbgAEAI08CVClMULAiQzEZQP6OMRgURCJDigIAIySL/iISRIv+i/9BAAsljACBBIwCgQWMAYv/JQuLABJEJIEFi/9NiwFLARJEiwJJTgKL/ggSRCKBBIv/TRJEiYoAAYAAIiQeTBRMJRJKEERMREQiSYj/pSIjiP+gIyIkI4sCTwIIiwEIjAGNAwBkAFsAUiMijAAkTIsATwIIiwEIjAGNAwAxACgAH4sBgQgKJRJEKCNnIyhlRCIIKExnIyhlRCISRCKMAIklJIwAJExC/8YkIowAIkxC/70iJIwAIkxC/7QlJIwCJExC/5MkIowCIkxC/4oiJIwCIkxC/4E=", "clear": "CoEBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 99, "minor": 99, "patch": 99 } }, "events": [], "templateVariables": {} }