{ "name": "Contract", "structs": {}, "methods": [ { "name": "test_array", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_array_extend", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_array_multiple_append", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "overhead", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_array_too_long", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_array_copy_and_extend", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_array_evaluation_order", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_array_assignment_maximum_cursage", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_allocations", "args": [ { "type": "uint64", "name": "num" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_iteration", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_quicksort", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_unobserved_write", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 0, "bytes": 0 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": {}, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 846 ], "errorMessage": "array is expected length" }, { "pc": [ 1257, 1317, 1517 ], "errorMessage": "array is not sorted" }, { "pc": [ 519 ], "errorMessage": "cannot pop from empty array" }, { "pc": [ 919, 949, 957, 964, 969 ], "errorMessage": "expected 4" }, { "pc": [ 897 ], "errorMessage": "expected 5" }, { "pc": [ 1479 ], "errorMessage": "expected array of length 32" }, { "pc": [ 1231 ], "errorMessage": "expected array of length 5" }, { "pc": [ 1289 ], "errorMessage": "incorrect array value" }, { "pc": [ 293, 302, 305, 308, 680, 1065, 1082, 1140, 1551, 1570 ], "errorMessage": "index access is out of bounds" }, { "pc": [ 1392 ], "errorMessage": "invalid array length header" }, { "pc": [ 1173 ], "errorMessage": "invalid number of bytes for arc4.uint64" }, { "pc": [ 389, 433, 455, 581, 643, 668, 672, 767, 796, 800, 804, 831, 850, 866, 877, 920, 996, 1214, 1362, 1460 ], "errorMessage": "max array length exceeded" }, { "pc": [ 1595 ], "errorMessage": "no available slots" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAxIDggMCA1IDUxMgogICAgYnl0ZWNibG9jayAweAogICAgcHVzaGJ5dGVzIDB4N2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZgogICAgc3RvcmUgMAogICAgLy8gYXJyYXkvdWludDY0LnB5OjEzCiAgICAvLyBjbGFzcyBDb250cmFjdChhcmM0LkFSQzRDb250cmFjdCk6CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogbWFpbl9fX2FsZ29weV9kZWZhdWx0X2NyZWF0ZUAxOQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0CiAgICBwdXNoYnl0ZXNzIDB4YTMzYmU4NzMgMHhlMGMzNzhlOSAweDM2NmY1MDlkIDB4NTgzNTFhNTAgMHhmYTk5ZTk4NCAweGEyMGU0NDBmIDB4MTc5YWMzZjkgMHg0NWRjYzgzNiAweGYxN2Y2ZjBhIDB4ODQ1ZTFiNGUgMHg3NjIxY2ZkMSAweDU2NjFhNjdjIC8vIG1ldGhvZCAidGVzdF9hcnJheSgpdm9pZCIsIG1ldGhvZCAidGVzdF9hcnJheV9leHRlbmQoKXZvaWQiLCBtZXRob2QgInRlc3RfYXJyYXlfbXVsdGlwbGVfYXBwZW5kKCl2b2lkIiwgbWV0aG9kICJvdmVyaGVhZCgpdm9pZCIsIG1ldGhvZCAidGVzdF9hcnJheV90b29fbG9uZygpdm9pZCIsIG1ldGhvZCAidGVzdF9hcnJheV9jb3B5X2FuZF9leHRlbmQoKXZvaWQiLCBtZXRob2QgInRlc3RfYXJyYXlfZXZhbHVhdGlvbl9vcmRlcigpdm9pZCIsIG1ldGhvZCAidGVzdF9hcnJheV9hc3NpZ25tZW50X21heGltdW1fY3Vyc2FnZSgpdm9pZCIsIG1ldGhvZCAidGVzdF9hbGxvY2F0aW9ucyh1aW50NjQpdm9pZCIsIG1ldGhvZCAidGVzdF9pdGVyYXRpb24oKXZvaWQiLCBtZXRob2QgInRlc3RfcXVpY2tzb3J0KCl2b2lkIiwgbWV0aG9kICJ0ZXN0X3Vub2JzZXJ2ZWRfd3JpdGUoKXZvaWQiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCB0ZXN0X2FycmF5IHRlc3RfYXJyYXlfZXh0ZW5kIHRlc3RfYXJyYXlfbXVsdGlwbGVfYXBwZW5kIG1haW5fb3ZlcmhlYWRfcm91dGVANyB0ZXN0X2FycmF5X3Rvb19sb25nIHRlc3RfYXJyYXlfY29weV9hbmRfZXh0ZW5kIHRlc3RfYXJyYXlfZXZhbHVhdGlvbl9vcmRlciB0ZXN0X2FycmF5X2Fzc2lnbm1lbnRfbWF4aW11bV9jdXJzYWdlIHRlc3RfYWxsb2NhdGlvbnMgdGVzdF9pdGVyYXRpb24gdGVzdF9xdWlja3NvcnQgdGVzdF91bm9ic2VydmVkX3dyaXRlCiAgICBlcnIKCm1haW5fb3ZlcmhlYWRfcm91dGVANzoKICAgIC8vIGFycmF5L3VpbnQ2NC5weTo3MQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fX19hbGdvcHlfZGVmYXVsdF9jcmVhdGVAMTk6CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgIQogICAgJiYKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMuYXJyYXkudWludDY0LnF1aWNrc29ydF93aW5kb3coYXJyOiB1aW50NjQsIHdpbmRvd19sZWZ0OiB1aW50NjQsIHdpbmRvd19yaWdodDogdWludDY0KSAtPiB2b2lkOgpxdWlja3NvcnRfd2luZG93OgogICAgLy8gYXJyYXkvdWludDY0LnB5OjIwMS0yMDQKICAgIC8vIEBzdWJyb3V0aW5lCiAgICAvLyBkZWYgcXVpY2tzb3J0X3dpbmRvdygKICAgIC8vICAgICBhcnI6IFJlZmVyZW5jZUFycmF5W1VJbnQ2NF0sIHdpbmRvd19sZWZ0OiBVSW50NjQsIHdpbmRvd19yaWdodDogVUludDY0CiAgICAvLyApIC0+IE5vbmU6CiAgICBwcm90byAzIDAKICAgIGJ5dGVjXzAgLy8gIiIKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyMDcKICAgIC8vIHBpdm90ID0gYXJyWyh3aW5kb3dfbGVmdCArIHdpbmRvd19yaWdodCkgLy8gMl0KICAgIGZyYW1lX2RpZyAtMgogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBwdXNoaW50IDIKICAgIC8KICAgIGZyYW1lX2RpZyAtMwogICAgbG9hZHMKICAgIHN3YXAKICAgIGludGNfMSAvLyA4CiAgICAqCiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9kaWcgLTIKCnF1aWNrc29ydF93aW5kb3dfd2hpbGVfdG9wQDM6CiAgICAvLyBhcnJheS91aW50NjQucHk6MjExLTIxMgogICAgLy8gIyBtb3ZlIGxlZnQgb2Ygd2luZG93IHRvd2FyZHMgcGl2b3QKICAgIC8vIHdoaWxlIGFycltsZWZ0XSA8IHBpdm90OgogICAgZnJhbWVfZGlnIC0zCiAgICBsb2FkcwogICAgZnJhbWVfZGlnIDMKICAgIGludGNfMSAvLyA4CiAgICAqCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgZXh0cmFjdF91aW50NjQKICAgIGZyYW1lX2RpZyAxCiAgICA8CiAgICBieiBxdWlja3NvcnRfd2luZG93X3doaWxlX3RvcEA2CiAgICAvLyBhcnJheS91aW50NjQucHk6MjEzCiAgICAvLyBsZWZ0ICs9IDEKICAgIGZyYW1lX2RpZyAzCiAgICBpbnRjXzAgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAzCiAgICBiIHF1aWNrc29ydF93aW5kb3dfd2hpbGVfdG9wQDMKCnF1aWNrc29ydF93aW5kb3dfd2hpbGVfdG9wQDY6CiAgICAvLyBhcnJheS91aW50NjQucHk6MjE0LTIxNQogICAgLy8gIyBtb3ZlIHJpZ2h0IG9mIHdpbmRvdyB0b3dhcmRzIHBpdm90CiAgICAvLyB3aGlsZSBwaXZvdCA8IGFycltyaWdodF06CiAgICBmcmFtZV9kaWcgLTMKICAgIGxvYWRzCiAgICBmcmFtZV9kaWcgMgogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGR1cAogICAgY292ZXIgMgogICAgZXh0cmFjdF91aW50NjQKICAgIGZyYW1lX2RpZyAxCiAgICA+CiAgICBieiBxdWlja3NvcnRfd2luZG93X2FmdGVyX3doaWxlQDEwCiAgICBwb3AKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyMTYtMjE3CiAgICAvLyAjIGJyZWFrIG91dCBvZiBsb29wIGlmIHJpZ2h0IHdvdWxkIGdvIG5lZ2F0aXZlCiAgICAvLyBpZiBub3QgcmlnaHQ6CiAgICBmcmFtZV9kaWcgMgogICAgYnogcXVpY2tzb3J0X3dpbmRvd19hZnRlcl93aGlsZUAyMgogICAgLy8gYXJyYXkvdWludDY0LnB5OjIxOQogICAgLy8gcmlnaHQgLT0gMQogICAgZnJhbWVfZGlnIDIKICAgIGludGNfMCAvLyAxCiAgICAtCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgcXVpY2tzb3J0X3dpbmRvd193aGlsZV90b3BANgoKcXVpY2tzb3J0X3dpbmRvd19hZnRlcl93aGlsZUAyMjoKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyNDctMjQ4CiAgICAvLyAjIHNvcnQgbGVmdCBoYWxmIG9mIHdpbmRvdwogICAgLy8gaWYgd2luZG93X2xlZnQgPCByaWdodDoKICAgIGZyYW1lX2RpZyAtMgogICAgZnJhbWVfZGlnIDIKICAgIDwKICAgIGJ6IHF1aWNrc29ydF93aW5kb3dfYWZ0ZXJfaWZfZWxzZUAyNAogICAgLy8gYXJyYXkvdWludDY0LnB5OjI0OQogICAgLy8gcXVpY2tzb3J0X3dpbmRvdyhhcnIsIHdpbmRvd19sZWZ0LCByaWdodCkKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgMgogICAgY2FsbHN1YiBxdWlja3NvcnRfd2luZG93CgpxdWlja3NvcnRfd2luZG93X2FmdGVyX2lmX2Vsc2VAMjQ6CiAgICAvLyBhcnJheS91aW50NjQucHk6MjUwLTI1MQogICAgLy8gIyBzb3J0IHJpZ2h0IGhhbGYgb2Ygd2luZG93CiAgICAvLyBpZiBsZWZ0IDwgd2luZG93X3JpZ2h0OgogICAgZnJhbWVfZGlnIDMKICAgIGZyYW1lX2RpZyAtMQogICAgPAogICAgYnogcXVpY2tzb3J0X3dpbmRvd19hZnRlcl9pZl9lbHNlQDI2CiAgICAvLyBhcnJheS91aW50NjQucHk6MjUyCiAgICAvLyBxdWlja3NvcnRfd2luZG93KGFyciwgbGVmdCwgd2luZG93X3JpZ2h0KQogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgMwogICAgZnJhbWVfZGlnIC0xCiAgICBjYWxsc3ViIHF1aWNrc29ydF93aW5kb3cKCnF1aWNrc29ydF93aW5kb3dfYWZ0ZXJfaWZfZWxzZUAyNjoKICAgIHJldHN1YgoKcXVpY2tzb3J0X3dpbmRvd19hZnRlcl93aGlsZUAxMDoKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyMjEtMjIyCiAgICAvLyAjIGlmIHdpbmRvdyBpc24ndCBlbXB0eSB0aGVuIHN3YXAgdmFsdWVzIGFuZCBtb3ZlIHdpbmRvdyBpbgogICAgLy8gaWYgbGVmdCA8IHJpZ2h0OgogICAgZnJhbWVfZGlnIDMKICAgIGZyYW1lX2RpZyAyCiAgICA8CiAgICBieiBxdWlja3NvcnRfd2luZG93X2FmdGVyX2lmX2Vsc2VAMTYKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyMjMKICAgIC8vIGFycltsZWZ0XSwgYXJyW3JpZ2h0XSA9IGFycltyaWdodF0sIGFycltsZWZ0XQogICAgZnJhbWVfZGlnIC0zCiAgICBsb2FkcwogICAgZHVwCiAgICBkaWcgMgogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZGlnIDEKICAgIGZyYW1lX2RpZyAwCiAgICBkdXAKICAgIGNvdmVyIDMKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGNvdmVyIDMKICAgIHJlcGxhY2UzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgY292ZXIgMgogICAgcmVwbGFjZTMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBmcmFtZV9kaWcgLTMKICAgIHN3YXAKICAgIHN0b3JlcwogICAgLy8gYXJyYXkvdWludDY0LnB5OjIyNAogICAgLy8gbGVmdCArPSAxCiAgICBmcmFtZV9kaWcgMwogICAgaW50Y18wIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMwogICAgLy8gYXJyYXkvdWludDY0LnB5OjIyNS0yMjYKICAgIC8vICMgYnJlYWsgb3V0IG9mIGxvb3AgaWYgcmlnaHQgd291bGQgZ28gbmVnYXRpdmUKICAgIC8vIGlmIG5vdCByaWdodDoKICAgIGZyYW1lX2RpZyAyCiAgICBieiBxdWlja3NvcnRfd2luZG93X2FmdGVyX3doaWxlQDIyCiAgICAvLyBhcnJheS91aW50NjQucHk6MjI4CiAgICAvLyByaWdodCAtPSAxCiAgICBmcmFtZV9kaWcgMgogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIGR1cAogICAgZnJhbWVfYnVyeSAyCiAgICAvLyBhcnJheS91aW50NjQucHk6MjI5LTIzMAogICAgLy8gIyBleHBsaWNpdCBjb250aW51ZSB0byBhdm9pZCBoaXR0aW5nIG91dGVyIGJyZWFrCiAgICAvLyBpZiBsZWZ0IDw9IHJpZ2h0OgogICAgZnJhbWVfZGlnIDMKICAgID49CiAgICBibnogcXVpY2tzb3J0X3dpbmRvd193aGlsZV90b3BAMwogICAgYiBxdWlja3NvcnRfd2luZG93X2FmdGVyX3doaWxlQDIyCgpxdWlja3NvcnRfd2luZG93X2FmdGVyX2lmX2Vsc2VAMTY6CiAgICBwb3AKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyMzUtMjM2CiAgICAvLyAjIGlmIHdpbmRvdyBpcyBqdXN0IG9uZSBpdGVtLCBkb24ndCBib3RoZXIgc3dhcHBpbmcsIGJ1dCBzdGlsbCBhZGp1c3Qgd2luZG93CiAgICAvLyBpZiBsZWZ0ID09IHJpZ2h0OgogICAgZnJhbWVfZGlnIDMKICAgIGZyYW1lX2RpZyAyCiAgICA9PQogICAgYnogcXVpY2tzb3J0X3dpbmRvd19hZnRlcl93aGlsZUAyMgogICAgLy8gYXJyYXkvdWludDY0LnB5OjIzNwogICAgLy8gbGVmdCArPSAxCiAgICBmcmFtZV9kaWcgMwogICAgaW50Y18wIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMwogICAgLy8gYXJyYXkvdWludDY0LnB5OjIzOC0yMzkKICAgIC8vICMgZG9uJ3QgZGVjcmVtZW50IHJpZ2h0IGlmIGl0IHdvdWxkIGdvIG5lZ2F0aXZlCiAgICAvLyBpZiByaWdodDoKICAgIGZyYW1lX2RpZyAyCiAgICBieiBxdWlja3NvcnRfd2luZG93X2FmdGVyX3doaWxlQDIyCiAgICAvLyBhcnJheS91aW50NjQucHk6MjQwCiAgICAvLyByaWdodCAtPSAxCiAgICBmcmFtZV9kaWcgMgogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIGZyYW1lX2J1cnkgMgogICAgYiBxdWlja3NvcnRfd2luZG93X2FmdGVyX3doaWxlQDIyCgoKLy8gdGVzdF9jYXNlcy5hcnJheS51aW50NjQuY3JlYXRlX2FycmF5KCkgLT4gdWludDY0OgpjcmVhdGVfYXJyYXk6CiAgICAvLyBhcnJheS91aW50NjQucHk6MjU3CiAgICAvLyBhcnIgPSBSZWZlcmVuY2VBcnJheVtVSW50NjRdKCkKICAgIGNhbGxzdWIgX3B1eWFfbGliLm1lbS5uZXdfc2xvdAogICAgZHVwCiAgICBieXRlY18wIC8vIDB4CiAgICBzdG9yZXMKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyNTgKICAgIC8vIGZvciBpIGluIHVyYW5nZSg1KToKICAgIGludGNfMiAvLyAwCgpjcmVhdGVfYXJyYXlfZm9yX2hlYWRlckAxOgogICAgLy8gYXJyYXkvdWludDY0LnB5OjI1OAogICAgLy8gZm9yIGkgaW4gdXJhbmdlKDUpOgogICAgZHVwCiAgICBpbnRjXzMgLy8gNQogICAgPAogICAgYnogY3JlYXRlX2FycmF5X2FmdGVyX2ZvckA0CiAgICAvLyBhcnJheS91aW50NjQucHk6MjU5CiAgICAvLyBhcnIuYXBwZW5kKGkpCiAgICBkaWcgMQogICAgZHVwCiAgICBsb2FkcwogICAgZGlnIDIKICAgIGl0b2IKICAgIGNvbmNhdCAvLyBvbiBlcnJvcjogbWF4IGFycmF5IGxlbmd0aCBleGNlZWRlZAogICAgc3RvcmVzCiAgICAvLyBhcnJheS91aW50NjQucHk6MjU4CiAgICAvLyBmb3IgaSBpbiB1cmFuZ2UoNSk6CiAgICBpbnRjXzAgLy8gMQogICAgKwogICAgYiBjcmVhdGVfYXJyYXlfZm9yX2hlYWRlckAxCgpjcmVhdGVfYXJyYXlfYWZ0ZXJfZm9yQDQ6CiAgICBwb3AKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyNjAKICAgIC8vIHJldHVybiBhcnIKICAgIHJldHN1YgoKCi8vIHRlc3RfY2FzZXMuYXJyYXkudWludDY0LmFzc2VydF9sYXN0X2lzX3plcm8oYXJyOiB1aW50NjQpIC0+IHZvaWQ6CmFzc2VydF9sYXN0X2lzX3plcm86CiAgICAvLyBhcnJheS91aW50NjQucHk6MjYzLTI2NAogICAgLy8gQHN1YnJvdXRpbmUoaW5saW5lPUZhbHNlKQogICAgLy8gZGVmIGFzc2VydF9sYXN0X2lzX3plcm8oYXJyOiBSZWZlcmVuY2VBcnJheVtVSW50NjRdKSAtPiBOb25lOgogICAgcHJvdG8gMSAwCiAgICAvLyBhcnJheS91aW50NjQucHk6MjY1CiAgICAvLyBhc3NlcnQgYXJyW2Fyci5sZW5ndGggLSAxXSA9PSAwCiAgICBmcmFtZV9kaWcgLTEKICAgIGxvYWRzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIGludGNfMCAvLyAxCiAgICAtCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgZXh0cmFjdF91aW50NjQKICAgICEKICAgIGFzc2VydAogICAgcmV0c3ViCgoKLy8gdGVzdF9jYXNlcy5hcnJheS51aW50NjQuYWRkX3goYXJyOiB1aW50NjQsIHg6IHVpbnQ2NCkgLT4gdm9pZDoKYWRkX3g6CiAgICAvLyBhcnJheS91aW50NjQucHk6Mjc3LTI3OAogICAgLy8gQHN1YnJvdXRpbmUKICAgIC8vIGRlZiBhZGRfeChhcnI6IFJlZmVyZW5jZUFycmF5W1VJbnQ2NF0sIHg6IFVJbnQ2NCkgLT4gTm9uZToKICAgIHByb3RvIDIgMAogICAgLy8gYXJyYXkvdWludDY0LnB5OjI3OQogICAgLy8gZm9yIGkgaW4gdXJhbmdlKHgpOgogICAgaW50Y18yIC8vIDAKCmFkZF94X2Zvcl9oZWFkZXJAMToKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyNzkKICAgIC8vIGZvciBpIGluIHVyYW5nZSh4KToKICAgIGR1cAogICAgZnJhbWVfZGlnIC0xCiAgICA8CiAgICBieiBhZGRfeF9hZnRlcl9mb3JANAogICAgLy8gYXJyYXkvdWludDY0LnB5OjI4MAogICAgLy8gYXJyLmFwcGVuZChpKQogICAgZnJhbWVfZGlnIC0yCiAgICBsb2FkcwogICAgZGlnIDEKICAgIGl0b2IKICAgIGNvbmNhdCAvLyBvbiBlcnJvcjogbWF4IGFycmF5IGxlbmd0aCBleGNlZWRlZAogICAgZnJhbWVfZGlnIC0yCiAgICBzd2FwCiAgICBzdG9yZXMKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyNzkKICAgIC8vIGZvciBpIGluIHVyYW5nZSh4KToKICAgIGludGNfMCAvLyAxCiAgICArCiAgICBiIGFkZF94X2Zvcl9oZWFkZXJAMQoKYWRkX3hfYWZ0ZXJfZm9yQDQ6CiAgICByZXRzdWIKCgovLyB0ZXN0X2Nhc2VzLmFycmF5LnVpbnQ2NC5hcHBlbmRfbGVuZ3RoX2FuZF9yZXR1cm4oYXJyOiB1aW50NjQpIC0+IHVpbnQ2NDoKYXBwZW5kX2xlbmd0aF9hbmRfcmV0dXJuOgogICAgLy8gYXJyYXkvdWludDY0LnB5OjI5MS0yOTIKICAgIC8vIEBzdWJyb3V0aW5lCiAgICAvLyBkZWYgYXBwZW5kX2xlbmd0aF9hbmRfcmV0dXJuKGFycjogUmVmZXJlbmNlQXJyYXlbVUludDY0XSkgLT4gUmVmZXJlbmNlQXJyYXlbVUludDY0XToKICAgIHByb3RvIDEgMQogICAgLy8gYXJyYXkvdWludDY0LnB5OjI5MwogICAgLy8gYXJyLmFwcGVuZChhcnIubGVuZ3RoKQogICAgZnJhbWVfZGlnIC0xCiAgICBsb2FkcwogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyA4CiAgICAvCiAgICBpdG9iCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIGZyYW1lX2RpZyAtMQogICAgc3dhcAogICAgc3RvcmVzCiAgICAvLyBhcnJheS91aW50NjQucHk6Mjk0CiAgICAvLyByZXR1cm4gYXJyCiAgICBmcmFtZV9kaWcgLTEKICAgIHJldHN1YgoKCi8vIHRlc3RfY2FzZXMuYXJyYXkudWludDY0LkNvbnRyYWN0LnRlc3RfYXJyYXlbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0X2FycmF5OgogICAgLy8gYXJyYXkvdWludDY0LnB5OjE2CiAgICAvLyBhcnIgPSBSZWZlcmVuY2VBcnJheVtVSW50NjRdKCkKICAgIGNhbGxzdWIgX3B1eWFfbGliLm1lbS5uZXdfc2xvdAogICAgZHVwCiAgICAvLyBhcnJheS91aW50NjQucHk6MTkKICAgIC8vIGFyci5hcHBlbmQoVUludDY0KDQyKSkKICAgIHB1c2hpbnQgNDIKICAgIGl0b2IKICAgIGRpZyAxCiAgICBzd2FwCiAgICBzdG9yZXMKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyMwogICAgLy8gYWRkX3goYXJyLCBVSW50NjQoNSkpCiAgICBkdXAKICAgIGludGNfMyAvLyA1CiAgICBjYWxsc3ViIGFkZF94CiAgICAvLyBhcnJheS91aW50NjQucHk6MjQKICAgIC8vIGFzc2VydCBhcnIubGVuZ3RoID09IDYKICAgIGxvYWRzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIGR1cAogICAgcHVzaGludCA2CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS91aW50NjQucHk6MjUKICAgIC8vIGFzc2VydCBhcnJbLTFdID09IDQKICAgIGludGNfMCAvLyAxCiAgICAtCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgZXh0cmFjdF91aW50NjQKICAgIHB1c2hpbnQgNAogICAgPT0KICAgIGFzc2VydAogICAgLy8gYXJyYXkvdWludDY0LnB5OjI3CiAgICAvLyBwb3BfeChhcnIsIHg9VUludDY0KDMpLCBleHBlY3RlZD1VSW50NjQoNCkpCiAgICBwdXNoaW50IDQKICAgIHN3YXAKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyODUKICAgIC8vIGZvciBfaSBpbiB1cmFuZ2UoeCk6CiAgICBpbnRjXzIgLy8gMAoKdGVzdF9hcnJheV9mb3JfaGVhZGVyQDI6CiAgICAvLyBhcnJheS91aW50NjQucHk6Mjg1CiAgICAvLyBmb3IgX2kgaW4gdXJhbmdlKHgpOgogICAgZHVwCiAgICAvLyBhcnJheS91aW50NjQucHk6MjcKICAgIC8vIHBvcF94KGFyciwgeD1VSW50NjQoMyksIGV4cGVjdGVkPVVJbnQ2NCg0KSkKICAgIHB1c2hpbnQgMwogICAgLy8gYXJyYXkvdWludDY0LnB5OjI4NQogICAgLy8gZm9yIF9pIGluIHVyYW5nZSh4KToKICAgIDwKICAgIGJ6IHRlc3RfYXJyYXlfYWZ0ZXJfZm9yQDQKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyODYKICAgIC8vIHBvcHBlZCA9IGFyci5wb3AoKQogICAgZGlnIDEKICAgIGR1cAogICAgbG9hZHMKICAgIGR1cAogICAgbGVuCiAgICBkdXAKICAgIGludGNfMSAvLyA4CiAgICAvCiAgICBpbnRjXzAgLy8gMQogICAgLSAvLyBvbiBlcnJvcjogY2Fubm90IHBvcCBmcm9tIGVtcHR5IGFycmF5CiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgZGlnIDIKICAgIHN3YXAKICAgIGV4dHJhY3RfdWludDY0CiAgICBzd2FwCiAgICAvLyBhcnJheS91aW50NjQucHk6Mjg2CiAgICAvLyBwb3BwZWQgPSBhcnIucG9wKCkKICAgIGludGNfMSAvLyA4CiAgICAtCiAgICB1bmNvdmVyIDIKICAgIGludGNfMiAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyODYKICAgIC8vIHBvcHBlZCA9IGFyci5wb3AoKQogICAgdW5jb3ZlciAyCiAgICBzd2FwCiAgICBzdG9yZXMKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyODcKICAgIC8vIGFzc2VydCBwb3BwZWQgPT0gZXhwZWN0ZWQKICAgIHVuY292ZXIgMwogICAgZHVwCiAgICBjb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS91aW50NjQucHk6Mjg4CiAgICAvLyBleHBlY3RlZCAtPSAxCiAgICBpbnRjXzAgLy8gMQogICAgLQogICAgY292ZXIgMgogICAgLy8gYXJyYXkvdWludDY0LnB5OjI4NQogICAgLy8gZm9yIF9pIGluIHVyYW5nZSh4KToKICAgIGludGNfMCAvLyAxCiAgICArCiAgICBiIHRlc3RfYXJyYXlfZm9yX2hlYWRlckAyCgp0ZXN0X2FycmF5X2FmdGVyX2ZvckA0OgogICAgcG9wCiAgICAvLyBhcnJheS91aW50NjQucHk6MjgKICAgIC8vIGFzc2VydCBhcnIubGVuZ3RoID09IDMKICAgIGR1cAogICAgbG9hZHMKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgLwogICAgZHVwCiAgICBwdXNoaW50IDMKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyOQogICAgLy8gYXNzZXJ0IGFyclstMV0gPT0gMQogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIGludGNfMSAvLyA4CiAgICAqCiAgICBkaWcgMQogICAgc3dhcAogICAgZXh0cmFjdF91aW50NjQKICAgIGludGNfMCAvLyAxCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS91aW50NjQucHk6MzEKICAgIC8vIGFyci5hcHBlbmQoVUludDY0KDQzKSkKICAgIHB1c2hpbnQgNDMKICAgIGl0b2IKICAgIGNvbmNhdCAvLyBvbiBlcnJvcjogbWF4IGFycmF5IGxlbmd0aCBleGNlZWRlZAogICAgZHVwMgogICAgc3RvcmVzCiAgICAvLyBhcnJheS91aW50NjQucHk6MzIKICAgIC8vIGFzc2VydCBhcnIubGVuZ3RoID09IDQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgLwogICAgZHVwCiAgICBwdXNoaW50IDQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGFycmF5L3VpbnQ2NC5weTozMwogICAgLy8gYXNzZXJ0IGFyclstMV0gPT0gNDMKICAgIGludGNfMCAvLyAxCiAgICAtCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgZGlnIDEKICAgIHN3YXAKICAgIGV4dHJhY3RfdWludDY0CiAgICBwdXNoaW50IDQzCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS91aW50NjQucHk6MzQKICAgIC8vIGFzc2VydCBhcnJbMF0gPT0gNDIKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQ2NAogICAgcHVzaGludCA0MgogICAgPT0KICAgIGFzc2VydAogICAgLy8gYXJyYXkvdWludDY0LnB5OjM2CiAgICAvLyBhZGRfeChhcnIsIFVJbnQ2NCgxMCkpCiAgICBkdXAKICAgIHB1c2hpbnQgMTAKICAgIGNhbGxzdWIgYWRkX3gKICAgIC8vIGFycmF5L3VpbnQ2NC5weTozNwogICAgLy8gYXNzZXJ0IGFyci5sZW5ndGggPT0gMTQKICAgIGR1cAogICAgbG9hZHMKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgLwogICAgZHVwCiAgICBwdXNoaW50IDE0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS91aW50NjQucHk6MzgKICAgIC8vIGFzc2VydCBhcnJbLTFdID09IDkKICAgIGludGNfMCAvLyAxCiAgICAtCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgZGlnIDEKICAgIHN3YXAKICAgIGV4dHJhY3RfdWludDY0CiAgICBwdXNoaW50IDkKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGFycmF5L3VpbnQ2NC5weTo0MAogICAgLy8gYXJyLmFwcGVuZChVSW50NjQoNDQpKQogICAgcHVzaGludCA0NAogICAgaXRvYgogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICAvLyBhcnJheS91aW50NjQucHk6NDEKICAgIC8vIGFzc2VydCBhcnIubGVuZ3RoID09IDE1CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIGR1cAogICAgcHVzaGludCAxNQogICAgPT0KICAgIGFzc2VydAogICAgLy8gYXJyYXkvdWludDY0LnB5OjQyCiAgICAvLyBhc3NlcnQgYXJyWy0xXSA9PSA0NAogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIGludGNfMSAvLyA4CiAgICAqCiAgICBkaWcgMQogICAgc3dhcAogICAgZXh0cmFjdF91aW50NjQKICAgIHB1c2hpbnQgNDQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGFycmF5L3VpbnQ2NC5weToyNzIKICAgIC8vIGFyci5hcHBlbmQoVUludDY0KDk5KSkKICAgIHB1c2hpbnQgOTkKICAgIGl0b2IKICAgIGNvbmNhdCAvLyBvbiBlcnJvcjogbWF4IGFycmF5IGxlbmd0aCBleGNlZWRlZAogICAgLy8gYXJyYXkvdWludDY0LnB5OjI3MwogICAgLy8gYXJyMi5hcHBlbmQoVUludDY0KDEwMCkpCiAgICBwdXNoaW50IDEwMAogICAgaXRvYgogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICAvLyBhcnJheS91aW50NjQucHk6NDQKICAgIC8vIHJldHVybl9yZWYoYXJyLCBhcnIpWzBdICs9IDIKICAgIGR1cAogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBwdXNoaW50IDIKICAgICsKICAgIGl0b2IKICAgIHJlcGxhY2UyIDAgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBzd2FwCiAgICBkaWcgMQogICAgc3RvcmVzCiAgICAvLyBhcnJheS91aW50NjQucHk6NDUKICAgIC8vIGFzc2VydCBhcnIubGVuZ3RoID09IDE3CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIGR1cAogICAgcHVzaGludCAxNwogICAgPT0KICAgIGFzc2VydAogICAgLy8gYXJyYXkvdWludDY0LnB5OjQ2CiAgICAvLyBhc3NlcnQgYXJyWzBdID09IDQ0CiAgICBkaWcgMQogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBwdXNoaW50IDQ0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS91aW50NjQucHk6NDcKICAgIC8vIGFzc2VydCBhcnJbLTJdID09IDk5CiAgICBkdXAKICAgIHB1c2hpbnQgMgogICAgLQogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGRpZyAyCiAgICBzd2FwCiAgICBleHRyYWN0X3VpbnQ2NAogICAgcHVzaGludCA5OQogICAgPT0KICAgIGFzc2VydAogICAgLy8gYXJyYXkvdWludDY0LnB5OjQ4CiAgICAvLyBhc3NlcnQgYXJyWy0xXSA9PSAxMDAKICAgIGludGNfMCAvLyAxCiAgICAtCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgZXh0cmFjdF91aW50NjQKICAgIHB1c2hpbnQgMTAwCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS91aW50NjQucHk6MTQKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy5hcnJheS51aW50NjQuQ29udHJhY3QudGVzdF9hcnJheV9leHRlbmRbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0X2FycmF5X2V4dGVuZDoKICAgIC8vIGFycmF5L3VpbnQ2NC5weTo1MgogICAgLy8gYXJyID0gUmVmZXJlbmNlQXJyYXlbVUludDY0XSgpCiAgICBjYWxsc3ViIF9wdXlhX2xpYi5tZW0ubmV3X3Nsb3QKICAgIGR1cAogICAgYnl0ZWNfMCAvLyAweAogICAgc3RvcmVzCiAgICAvLyBhcnJheS91aW50NjQucHk6NTMKICAgIC8vIGFkZF94KGFyciwgVUludDY0KDEpKQogICAgZHVwCiAgICBpbnRjXzAgLy8gMQogICAgY2FsbHN1YiBhZGRfeAogICAgLy8gYXJyYXkvdWludDY0LnB5OjU5CiAgICAvLyBhcnIuZXh0ZW5kKGFycjIpCiAgICBkdXAKICAgIGxvYWRzCiAgICAvLyBhcnJheS91aW50NjQucHk6NTcKICAgIC8vIGFycjIuYXBwZW5kKFVJbnQ2NCgzKSkKICAgIHB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwogICAgLy8gYXJyYXkvdWludDY0LnB5OjU5CiAgICAvLyBhcnIuZXh0ZW5kKGFycjIpCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIHN3YXAKICAgIGRpZyAxCiAgICBzdG9yZXMKICAgIC8vIGFycmF5L3VpbnQ2NC5weTo2MAogICAgLy8gYXNzZXJ0IGFyci5sZW5ndGggPT0gNAogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgLwogICAgcHVzaGludCA0CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS91aW50NjQucHk6NTAKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy5hcnJheS51aW50NjQuQ29udHJhY3QudGVzdF9hcnJheV9tdWx0aXBsZV9hcHBlbmRbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0X2FycmF5X211bHRpcGxlX2FwcGVuZDoKICAgIC8vIGFycmF5L3VpbnQ2NC5weTo2NAogICAgLy8gYXJyID0gUmVmZXJlbmNlQXJyYXlbVUludDY0XSgpCiAgICBjYWxsc3ViIF9wdXlhX2xpYi5tZW0ubmV3X3Nsb3QKICAgIGR1cAogICAgYnl0ZWNfMCAvLyAweAogICAgc3RvcmVzCiAgICAvLyBhcnJheS91aW50NjQucHk6NjUKICAgIC8vIGFkZF94KGFyciwgVUludDY0KDEpKQogICAgZHVwCiAgICBpbnRjXzAgLy8gMQogICAgY2FsbHN1YiBhZGRfeAogICAgLy8gYXJyYXkvdWludDY0LnB5OjY2CiAgICAvLyBhcnIuYXBwZW5kKFVJbnQ2NCgxKSkKICAgIGR1cAogICAgbG9hZHMKICAgIGludGNfMCAvLyAxCiAgICBpdG9iCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIC8vIGFycmF5L3VpbnQ2NC5weTo2NwogICAgLy8gYXJyLmFwcGVuZChVSW50NjQoMikpCiAgICBwdXNoaW50IDIKICAgIGl0b2IKICAgIGNvbmNhdCAvLyBvbiBlcnJvcjogbWF4IGFycmF5IGxlbmd0aCBleGNlZWRlZAogICAgLy8gYXJyYXkvdWludDY0LnB5OjY4CiAgICAvLyBhcnIuYXBwZW5kKFVJbnQ2NCgzKSkKICAgIHB1c2hpbnQgMwogICAgaXRvYgogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBzd2FwCiAgICBkaWcgMQogICAgc3RvcmVzCiAgICAvLyBhcnJheS91aW50NjQucHk6NjkKICAgIC8vIGFzc2VydCBhcnIubGVuZ3RoID09IDQKICAgIGxlbgogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIHB1c2hpbnQgNAogICAgPT0KICAgIGFzc2VydAogICAgLy8gYXJyYXkvdWludDY0LnB5OjYyCiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMuYXJyYXkudWludDY0LkNvbnRyYWN0LnRlc3RfYXJyYXlfdG9vX2xvbmdbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0X2FycmF5X3Rvb19sb25nOgogICAgLy8gYXJyYXkvdWludDY0LnB5Ojc3CiAgICAvLyBhcnJheSA9IFJlZmVyZW5jZUFycmF5W1VJbnQ2NF0oKQogICAgYnl0ZWNfMCAvLyAweAogICAgLy8gYXJyYXkvdWludDY0LnB5Ojc4CiAgICAvLyBmb3IgaSBpbiB1cmFuZ2UoNTEyKToKICAgIGludGNfMiAvLyAwCgp0ZXN0X2FycmF5X3Rvb19sb25nX2Zvcl9oZWFkZXJAMjoKICAgIC8vIGFycmF5L3VpbnQ2NC5weTo3OAogICAgLy8gZm9yIGkgaW4gdXJhbmdlKDUxMik6CiAgICBkdXAKICAgIGludGMgNCAvLyA1MTIKICAgIDwKICAgIGJ6IHRlc3RfYXJyYXlfdG9vX2xvbmdfYWZ0ZXJfZm9yQDUKICAgIC8vIGFycmF5L3VpbnQ2NC5weTo3OQogICAgLy8gYXJyYXkuYXBwZW5kKGkpCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGl0b2IKICAgIGNvbmNhdCAvLyBvbiBlcnJvcjogbWF4IGFycmF5IGxlbmd0aCBleGNlZWRlZAogICAgc3dhcAogICAgLy8gYXJyYXkvdWludDY0LnB5Ojc4CiAgICAvLyBmb3IgaSBpbiB1cmFuZ2UoNTEyKToKICAgIGludGNfMCAvLyAxCiAgICArCiAgICBiIHRlc3RfYXJyYXlfdG9vX2xvbmdfZm9yX2hlYWRlckAyCgp0ZXN0X2FycmF5X3Rvb19sb25nX2FmdGVyX2ZvckA1OgogICAgcG9wCiAgICAvLyBhcnJheS91aW50NjQucHk6ODAKICAgIC8vIGFzc2VydCBhcnJheS5sZW5ndGggPT0gNTEyLCAiYXJyYXkgaXMgZXhwZWN0ZWQgbGVuZ3RoIgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyA4CiAgICAvCiAgICBpbnRjIDQgLy8gNTEyCiAgICA9PQogICAgYXNzZXJ0IC8vIGFycmF5IGlzIGV4cGVjdGVkIGxlbmd0aAogICAgLy8gYXJyYXkvdWludDY0LnB5OjgyCiAgICAvLyBhcnJheS5hcHBlbmQoVUludDY0KDUxMikpICAjIHRoaXMgd2lsbCBmYWlsCiAgICBpbnRjIDQgLy8gNTEyCiAgICBpdG9iCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIHBvcAogICAgLy8gYXJyYXkvdWludDY0LnB5Ojc1CiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMuYXJyYXkudWludDY0LkNvbnRyYWN0LnRlc3RfYXJyYXlfY29weV9hbmRfZXh0ZW5kW3JvdXRpbmddKCkgLT4gdm9pZDoKdGVzdF9hcnJheV9jb3B5X2FuZF9leHRlbmQ6CiAgICAvLyBhcnJheS91aW50NjQucHk6ODYKICAgIC8vIGFycmF5ID0gUmVmZXJlbmNlQXJyYXlbVUludDY0XSgpCiAgICBieXRlY18wIC8vIDB4CiAgICAvLyBhcnJheS91aW50NjQucHk6ODcKICAgIC8vIGZvciBpIGluIHVyYW5nZSg1KToKICAgIGludGNfMiAvLyAwCgp0ZXN0X2FycmF5X2NvcHlfYW5kX2V4dGVuZF9mb3JfaGVhZGVyQDI6CiAgICAvLyBhcnJheS91aW50NjQucHk6ODcKICAgIC8vIGZvciBpIGluIHVyYW5nZSg1KToKICAgIGR1cAogICAgaW50Y18zIC8vIDUKICAgIDwKICAgIGJ6IHRlc3RfYXJyYXlfY29weV9hbmRfZXh0ZW5kX2FmdGVyX2ZvckA1CiAgICAvLyBhcnJheS91aW50NjQucHk6ODgKICAgIC8vIGFycmF5LmFwcGVuZChpKQogICAgZHVwCiAgICBjb3ZlciAyCiAgICBpdG9iCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIHN3YXAKICAgIC8vIGFycmF5L3VpbnQ2NC5weTo4NwogICAgLy8gZm9yIGkgaW4gdXJhbmdlKDUpOgogICAgaW50Y18wIC8vIDEKICAgICsKICAgIGIgdGVzdF9hcnJheV9jb3B5X2FuZF9leHRlbmRfZm9yX2hlYWRlckAyCgp0ZXN0X2FycmF5X2NvcHlfYW5kX2V4dGVuZF9hZnRlcl9mb3JANToKICAgIHBvcAogICAgZHVwCiAgICAvLyBhcnJheS91aW50NjQucHk6OTEKICAgIC8vIGFycmF5LmFwcGVuZChVSW50NjQoNSkpCiAgICBpbnRjXzMgLy8gNQogICAgaXRvYgogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICAvLyBhcnJheS91aW50NjQucHk6OTIKICAgIC8vIGFzc2VydCBhcnJheS5sZW5ndGggPT0gNgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyA4CiAgICAvCiAgICBkdXAKICAgIHB1c2hpbnQgNgogICAgPT0KICAgIGFzc2VydAogICAgLy8gYXJyYXkvdWludDY0LnB5OjkzCiAgICAvLyBhc3NlcnQgYXJyYXlbLTFdID09IDUsICJleHBlY3RlZCA1IgogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIGludGNfMSAvLyA4CiAgICAqCiAgICBkaWcgMQogICAgc3dhcAogICAgZXh0cmFjdF91aW50NjQKICAgIGludGNfMyAvLyA1CiAgICA9PQogICAgYXNzZXJ0IC8vIGV4cGVjdGVkIDUKICAgIGRpZyAxCiAgICAvLyBhcnJheS91aW50NjQucHk6OTUKICAgIC8vIGFzc2VydCBhcnJheTIubGVuZ3RoID09IDUKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgLwogICAgZHVwCiAgICBpbnRjXzMgLy8gNQogICAgPT0KICAgIGFzc2VydAogICAgLy8gYXJyYXkvdWludDY0LnB5Ojk2CiAgICAvLyBhc3NlcnQgYXJyYXkyWy0xXSA9PSA0LCAiZXhwZWN0ZWQgNCIKICAgIGludGNfMCAvLyAxCiAgICAtCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgZGlnIDEKICAgIHN3YXAKICAgIGV4dHJhY3RfdWludDY0CiAgICBwdXNoaW50IDQKICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgNAogICAgLy8gYXJyYXkvdWludDY0LnB5Ojk4CiAgICAvLyBhcnJheS5leHRlbmQoYXJyYXkyKQogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICAvLyBhcnJheS91aW50NjQucHk6OTkKICAgIC8vIGFzc2VydCBhcnJheS5sZW5ndGggPT0gMTEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgLwogICAgZHVwCiAgICBwdXNoaW50IDExCiAgICA9PQogICAgYXNzZXJ0CiAgICB1bmNvdmVyIDIKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxMDAKICAgIC8vIGFzc2VydCBhcnJheTIubGVuZ3RoID09IDUKICAgIGxlbgogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIGludGNfMyAvLyA1CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS91aW50NjQucHk6MTAxCiAgICAvLyBhc3NlcnQgYXJyYXlbLTFdID09IDQsICJleHBlY3RlZCA0IgogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIGludGNfMSAvLyA4CiAgICAqCiAgICBkaWcgMQogICAgc3dhcAogICAgZXh0cmFjdF91aW50NjQKICAgIHB1c2hpbnQgNAogICAgPT0KICAgIGFzc2VydCAvLyBleHBlY3RlZCA0CiAgICAvLyBhcnJheS91aW50NjQucHk6MTAyCiAgICAvLyBhc3NlcnQgYXJyYXlbNF0gPT0gNCwgImV4cGVjdGVkIDQiCiAgICBkdXAKICAgIHB1c2hpbnQgMzIKICAgIGV4dHJhY3RfdWludDY0CiAgICBwdXNoaW50IDQKICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgNAogICAgLy8gYXJyYXkvdWludDY0LnB5OjEwMwogICAgLy8gYXNzZXJ0IGFycmF5WzVdID09IDUsICJleHBlY3RlZCA0IgogICAgZHVwCiAgICBwdXNoaW50IDQwCiAgICBleHRyYWN0X3VpbnQ2NAogICAgaW50Y18zIC8vIDUKICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgNAogICAgLy8gYXJyYXkvdWludDY0LnB5OjEwNAogICAgLy8gYXNzZXJ0IGFycmF5WzZdID09IDAsICJleHBlY3RlZCA0IgogICAgcHVzaGludCA0OAogICAgZXh0cmFjdF91aW50NjQKICAgICEKICAgIGFzc2VydCAvLyBleHBlY3RlZCA0CiAgICAvLyBhcnJheS91aW50NjQucHk6ODQKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy5hcnJheS51aW50NjQuQ29udHJhY3QudGVzdF9hcnJheV9ldmFsdWF0aW9uX29yZGVyW3JvdXRpbmddKCkgLT4gdm9pZDoKdGVzdF9hcnJheV9ldmFsdWF0aW9uX29yZGVyOgogICAgLy8gYXJyYXkvdWludDY0LnB5OjEwOAogICAgLy8gYXJyID0gUmVmZXJlbmNlQXJyYXlbVUludDY0XSgpCiAgICBjYWxsc3ViIF9wdXlhX2xpYi5tZW0ubmV3X3Nsb3QKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxMDkKICAgIC8vIGFyci5hcHBlbmQoVUludDY0KDMpKQogICAgcHVzaGludCAzCiAgICBpdG9iCiAgICBkaWcgMQogICAgc3dhcAogICAgc3RvcmVzCiAgICAvLyBhcnJheS91aW50NjQucHk6MTEwCiAgICAvLyBhcHBlbmRfbGVuZ3RoX2FuZF9yZXR1cm4oYXJyKS5leHRlbmQoYXBwZW5kX2xlbmd0aF9hbmRfcmV0dXJuKGFycikpCiAgICBkdXAKICAgIGNhbGxzdWIgYXBwZW5kX2xlbmd0aF9hbmRfcmV0dXJuCiAgICBkaWcgMQogICAgY2FsbHN1YiBhcHBlbmRfbGVuZ3RoX2FuZF9yZXR1cm4KICAgIGxvYWRzCiAgICBkaWcgMQogICAgbG9hZHMKICAgIHN3YXAKICAgIGNvbmNhdCAvLyBvbiBlcnJvcjogbWF4IGFycmF5IGxlbmd0aCBleGNlZWRlZAogICAgc3RvcmVzCiAgICAvLyBhcnJheS91aW50NjQucHk6MTExCiAgICAvLyBhc3NlcnQgYXJyLmxlbmd0aCA9PSA2CiAgICBkdXAKICAgIGxvYWRzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIHB1c2hpbnQgNgogICAgPT0KICAgIGFzc2VydAogICAgLy8gYXJyYXkvdWludDY0LnB5OjExMgogICAgLy8gYXNzZXJ0IGFyclswXSA9PSAzCiAgICBkdXAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQ2NAogICAgcHVzaGludCAzCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS91aW50NjQucHk6MTEzCiAgICAvLyBhc3NlcnQgYXJyWzFdID09IDEKICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3RfdWludDY0CiAgICBpbnRjXzAgLy8gMQogICAgPT0KICAgIGFzc2VydAogICAgLy8gYXJyYXkvdWludDY0LnB5OjExNAogICAgLy8gYXNzZXJ0IGFyclsyXSA9PSAyCiAgICBkdXAKICAgIHB1c2hpbnQgMTYKICAgIGV4dHJhY3RfdWludDY0CiAgICBwdXNoaW50IDIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxMTUKICAgIC8vIGFzc2VydCBhcnJbM10gPT0gMwogICAgZHVwCiAgICBwdXNoaW50IDI0CiAgICBleHRyYWN0X3VpbnQ2NAogICAgcHVzaGludCAzCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS91aW50NjQucHk6MTE2CiAgICAvLyBhc3NlcnQgYXJyWzRdID09IDEKICAgIGR1cAogICAgcHVzaGludCAzMgogICAgZXh0cmFjdF91aW50NjQKICAgIGludGNfMCAvLyAxCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS91aW50NjQucHk6MTE3CiAgICAvLyBhc3NlcnQgYXJyWzVdID09IDIKICAgIHB1c2hpbnQgNDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBwdXNoaW50IDIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxMTkKICAgIC8vIGFyclthcHBlbmRfbGVuZ3RoX2FuZF9yZXR1cm4oYXJyKVswXV0gPSBhcHBlbmRfbGVuZ3RoX2FuZF9yZXR1cm4oYXJyKVstMV0KICAgIGR1cAogICAgY2FsbHN1YiBhcHBlbmRfbGVuZ3RoX2FuZF9yZXR1cm4KICAgIGxvYWRzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIGludGNfMCAvLyAxCiAgICAtCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgaW50Y18xIC8vIDgKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZGlnIDEKICAgIGNhbGxzdWIgYXBwZW5kX2xlbmd0aF9hbmRfcmV0dXJuCiAgICBsb2FkcwogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBkaWcgMgogICAgbG9hZHMKICAgIHN3YXAKICAgIGludGNfMSAvLyA4CiAgICAqCiAgICB1bmNvdmVyIDIKICAgIHJlcGxhY2UzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgc3dhcAogICAgZGlnIDEKICAgIHN0b3JlcwogICAgLy8gYXJyYXkvdWludDY0LnB5OjEyMAogICAgLy8gYXNzZXJ0IGFyci5sZW5ndGggPT0gOAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyA4CiAgICAvCiAgICBpbnRjXzEgLy8gOAogICAgPT0KICAgIGFzc2VydAogICAgLy8gYXJyYXkvdWludDY0LnB5OjEyMQogICAgLy8gYXNzZXJ0IGFycls2XSA9PSA2CiAgICBkdXAKICAgIHB1c2hpbnQgNDgKICAgIGV4dHJhY3RfdWludDY0CiAgICBwdXNoaW50IDYKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxMjIKICAgIC8vIGFzc2VydCBhcnJbN10gPT0gNwogICAgZHVwCiAgICBwdXNoaW50IDU2CiAgICBleHRyYWN0X3VpbnQ2NAogICAgcHVzaGludCA3CiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS91aW50NjQucHk6MTIzCiAgICAvLyBhc3NlcnQgYXJyWzNdID09IDYKICAgIHB1c2hpbnQgMjQKICAgIGV4dHJhY3RfdWludDY0CiAgICBwdXNoaW50IDYKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxMDYKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy5hcnJheS51aW50NjQuQ29udHJhY3QudGVzdF9hcnJheV9hc3NpZ25tZW50X21heGltdW1fY3Vyc2FnZVtyb3V0aW5nXSgpIC0+IHZvaWQ6CnRlc3RfYXJyYXlfYXNzaWdubWVudF9tYXhpbXVtX2N1cnNhZ2U6CiAgICAvLyBhcnJheS91aW50NjQucHk6MTI3CiAgICAvLyBhcnIgPSBSZWZlcmVuY2VBcnJheVtVSW50NjRdKCkKICAgIGNhbGxzdWIgX3B1eWFfbGliLm1lbS5uZXdfc2xvdAogICAgLy8gYXJyYXkvdWludDY0LnB5OjEyOAogICAgLy8gYXJyLmFwcGVuZChVSW50NjQoMykpCiAgICBwdXNoaW50IDMKICAgIGl0b2IKICAgIGRpZyAxCiAgICBzd2FwCiAgICBzdG9yZXMKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxMjkKICAgIC8vIGFwcGVuZF9sZW5ndGhfYW5kX3JldHVybihhcnIpWzBdID0gVUludDY0KDQyKQogICAgZHVwCiAgICBjYWxsc3ViIGFwcGVuZF9sZW5ndGhfYW5kX3JldHVybgogICAgcHVzaGludCA0MgogICAgaXRvYgogICAgZGlnIDEKICAgIGxvYWRzCiAgICBzd2FwCiAgICByZXBsYWNlMiAwIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgc3RvcmVzCiAgICAvLyBhcnJheS91aW50NjQucHk6MTMwCiAgICAvLyBhc3NlcnQgYXJyLmxlbmd0aCA9PSAyCiAgICBsb2FkcwogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyA4CiAgICAvCiAgICBwdXNoaW50IDIKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxMzEKICAgIC8vIGFzc2VydCBhcnJbMF0gPT0gNDIKICAgIGR1cAogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBwdXNoaW50IDQyCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS91aW50NjQucHk6MTMyCiAgICAvLyBhc3NlcnQgYXJyWzFdID09IDEKICAgIGludGNfMSAvLyA4CiAgICBleHRyYWN0X3VpbnQ2NAogICAgaW50Y18wIC8vIDEKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxMjUKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy5hcnJheS51aW50NjQuQ29udHJhY3QudGVzdF9hbGxvY2F0aW9uc1tyb3V0aW5nXSgpIC0+IHZvaWQ6CnRlc3RfYWxsb2NhdGlvbnM6CiAgICAvLyBhcnJheS91aW50NjQucHk6MTM0CiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgLy8gYXJyYXkvdWludDY0LnB5OjEzNgogICAgLy8gZm9yIF9pIGluIHVyYW5nZShudW0pOgogICAgaW50Y18yIC8vIDAKCnRlc3RfYWxsb2NhdGlvbnNfZm9yX2hlYWRlckAyOgogICAgLy8gYXJyYXkvdWludDY0LnB5OjEzNgogICAgLy8gZm9yIF9pIGluIHVyYW5nZShudW0pOgogICAgZHVwCiAgICBkaWcgMgogICAgPAogICAgYnogdGVzdF9hbGxvY2F0aW9uc19hZnRlcl9mb3JANQogICAgLy8gYXJyYXkvdWludDY0LnB5OjEzNwogICAgLy8gYWxsb2NfdGVzdCA9IFJlZmVyZW5jZUFycmF5W1VJbnQ2NF0oKQogICAgY2FsbHN1YiBfcHV5YV9saWIubWVtLm5ld19zbG90CiAgICBkdXAKICAgIGJ5dGVjXzAgLy8gMHgKICAgIHN0b3JlcwogICAgLy8gYXJyYXkvdWludDY0LnB5OjEzOAogICAgLy8gYWRkX3goYWxsb2NfdGVzdCwgVUludDY0KDEpKQogICAgaW50Y18wIC8vIDEKICAgIGNhbGxzdWIgYWRkX3gKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxMzYKICAgIC8vIGZvciBfaSBpbiB1cmFuZ2UobnVtKToKICAgIGludGNfMCAvLyAxCiAgICArCiAgICBiIHRlc3RfYWxsb2NhdGlvbnNfZm9yX2hlYWRlckAyCgp0ZXN0X2FsbG9jYXRpb25zX2FmdGVyX2ZvckA1OgogICAgLy8gYXJyYXkvdWludDY0LnB5OjEzNAogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0X2Nhc2VzLmFycmF5LnVpbnQ2NC5Db250cmFjdC50ZXN0X2l0ZXJhdGlvbltyb3V0aW5nXSgpIC0+IHZvaWQ6CnRlc3RfaXRlcmF0aW9uOgogICAgYnl0ZWNfMCAvLyAiIgogICAgLy8gYXJyYXkvdWludDY0LnB5OjE0MgogICAgLy8gYXJyID0gUmVmZXJlbmNlQXJyYXlbVUludDY0XSgpCiAgICBkdXBuIDIKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxNDMKICAgIC8vIGZvciB2YWwgaW4gdXJhbmdlKDUpOgogICAgaW50Y18yIC8vIDAKCnRlc3RfaXRlcmF0aW9uX2Zvcl9oZWFkZXJAMjoKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxNDMKICAgIC8vIGZvciB2YWwgaW4gdXJhbmdlKDUpOgogICAgZHVwCiAgICBpbnRjXzMgLy8gNQogICAgPAogICAgYnogdGVzdF9pdGVyYXRpb25fYWZ0ZXJfZm9yQDUKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxNDQKICAgIC8vIGFyci5hcHBlbmQodmFsKQogICAgZHVwCiAgICBjb3ZlciAyCiAgICBpdG9iCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIHN3YXAKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxNDMKICAgIC8vIGZvciB2YWwgaW4gdXJhbmdlKDUpOgogICAgaW50Y18wIC8vIDEKICAgICsKICAgIGIgdGVzdF9pdGVyYXRpb25fZm9yX2hlYWRlckAyCgp0ZXN0X2l0ZXJhdGlvbl9hZnRlcl9mb3JANToKICAgIHBvcAogICAgZHVwCiAgICAvLyBhcnJheS91aW50NjQucHk6MTQ1CiAgICAvLyBhc3NlcnQgYXJyLmxlbmd0aCA9PSA1LCAiZXhwZWN0ZWQgYXJyYXkgb2YgbGVuZ3RoIDUiCiAgICBsZW4KICAgIGludGNfMSAvLyA4CiAgICAvCiAgICBkdXAKICAgIGJ1cnkgNAogICAgaW50Y18zIC8vIDUKICAgID09CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgYXJyYXkgb2YgbGVuZ3RoIDUKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxNDctMTQ4CiAgICAvLyAjIGl0ZXJhdGUKICAgIC8vIGxhc3QgPSBVSW50NjQoMCkKICAgIGludGNfMiAvLyAwCiAgICBzd2FwCiAgICBpbnRjXzIgLy8gMAogICAgc3dhcAoKdGVzdF9pdGVyYXRpb25fZm9yX2hlYWRlckA2OgogICAgLy8gYXJyYXkvdWludDY0LnB5OjE0OQogICAgLy8gZm9yIHZhbHVlIGluIGFycjoKICAgIGRpZyAxCiAgICBkaWcgNQogICAgPAogICAgYnogdGVzdF9pdGVyYXRpb25fYWZ0ZXJfZm9yQDkKICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGludGNfMSAvLyA4CiAgICAqCiAgICBleHRyYWN0X3VpbnQ2NAogICAgLy8gYXJyYXkvdWludDY0LnB5OjE1MAogICAgLy8gYXNzZXJ0IHZhbHVlID49IGxhc3QsICJhcnJheSBpcyBub3Qgc29ydGVkIgogICAgZHVwCiAgICB1bmNvdmVyIDQKICAgID49CiAgICBhc3NlcnQgLy8gYXJyYXkgaXMgbm90IHNvcnRlZAogICAgc3dhcAogICAgaW50Y18wIC8vIDEKICAgICsKICAgIHVuY292ZXIgMgogICAgYiB0ZXN0X2l0ZXJhdGlvbl9mb3JfaGVhZGVyQDYKCnRlc3RfaXRlcmF0aW9uX2FmdGVyX2ZvckA5OgogICAgYnVyeSAxCiAgICBkdXAKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxNTMtMTU0CiAgICAvLyAjIGVudW1lcmF0ZQogICAgLy8gZm9yIGlkeCwgdmFsdWUgaW4gdWVudW1lcmF0ZShhcnIpOgogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgLwogICAgYnVyeSAzCiAgICBpbnRjXzIgLy8gMAoKdGVzdF9pdGVyYXRpb25fZm9yX2hlYWRlckAxMDoKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxNTMtMTU0CiAgICAvLyAjIGVudW1lcmF0ZQogICAgLy8gZm9yIGlkeCwgdmFsdWUgaW4gdWVudW1lcmF0ZShhcnIpOgogICAgZHVwCiAgICBkaWcgNAogICAgPAogICAgYnogdGVzdF9pdGVyYXRpb25fYWZ0ZXJfZm9yQDEzCiAgICBkdXAyCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgZXh0cmFjdF91aW50NjQKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxNTUKICAgIC8vIGFzc2VydCB2YWx1ZSA9PSBpZHgsICJpbmNvcnJlY3QgYXJyYXkgdmFsdWUiCiAgICBkaWcgMQogICAgPT0KICAgIGFzc2VydCAvLyBpbmNvcnJlY3QgYXJyYXkgdmFsdWUKICAgIGludGNfMCAvLyAxCiAgICArCiAgICBiIHRlc3RfaXRlcmF0aW9uX2Zvcl9oZWFkZXJAMTAKCnRlc3RfaXRlcmF0aW9uX2FmdGVyX2ZvckAxMzoKICAgIHBvcAogICAgZHVwCiAgICAvLyBhcnJheS91aW50NjQucHk6MTU3LTE1OAogICAgLy8gIyByZXZlcnNlCiAgICAvLyBmb3IgdmFsdWUgaW4gcmV2ZXJzZWQoYXJyKToKICAgIGxlbgogICAgaW50Y18xIC8vIDgKICAgIC8KCnRlc3RfaXRlcmF0aW9uX2Zvcl9oZWFkZXJAMTQ6CiAgICAvLyBhcnJheS91aW50NjQucHk6MTU3LTE1OAogICAgLy8gIyByZXZlcnNlCiAgICAvLyBmb3IgdmFsdWUgaW4gcmV2ZXJzZWQoYXJyKToKICAgIGR1cAogICAgYnogdGVzdF9pdGVyYXRpb25fYWZ0ZXJfZm9yQDE3CiAgICBpbnRjXzAgLy8gMQogICAgLQogICAgZHVwCiAgICBkaWcgMgogICAgc3dhcAogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGV4dHJhY3RfdWludDY0CiAgICAvLyBhcnJheS91aW50NjQucHk6MTU5CiAgICAvLyBhc3NlcnQgdmFsdWUgPD0gbGFzdCwgImFycmF5IGlzIG5vdCBzb3J0ZWQiCiAgICBkdXAKICAgIHVuY292ZXIgNAogICAgPD0KICAgIGFzc2VydCAvLyBhcnJheSBpcyBub3Qgc29ydGVkCiAgICBjb3ZlciAyCiAgICBiIHRlc3RfaXRlcmF0aW9uX2Zvcl9oZWFkZXJAMTQKCnRlc3RfaXRlcmF0aW9uX2FmdGVyX2ZvckAxNzoKICAgIHBvcG4gMwogICAgLy8gYXJyYXkvdWludDY0LnB5OjE2MgogICAgLy8gYXJjNF9hcnIgPSBhcmM0LkR5bmFtaWNBcnJheVthcmM0LlVJbnQ2NF0oKQogICAgaW50Y18yIC8vIDAKICAgIGl0b2IKICAgIHB1c2hieXRlcyAweDAwMDAKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxNDIKICAgIC8vIGFyciA9IFJlZmVyZW5jZUFycmF5W1VJbnQ2NF0oKQogICAgYnl0ZWNfMCAvLyAweAogICAgLy8gYXJyYXkvdWludDY0LnB5OjE2NAogICAgLy8gZm9yIGkgaW4gdXJhbmdlKDUpOgogICAgaW50Y18yIC8vIDAKCnRlc3RfaXRlcmF0aW9uX2Zvcl9oZWFkZXJAMTg6CiAgICAvLyBhcnJheS91aW50NjQucHk6MTY0CiAgICAvLyBmb3IgaSBpbiB1cmFuZ2UoNSk6CiAgICBkdXAKICAgIGludGNfMyAvLyA1CiAgICA8CiAgICBieiB0ZXN0X2l0ZXJhdGlvbl9hZnRlcl9mb3JAMjEKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxNjUKICAgIC8vIGFyYzRfYXJyLmFwcGVuZChhcmM0LlVJbnQ2NChpKSkKICAgIGR1cAogICAgaXRvYgogICAgdW5jb3ZlciAzCiAgICBkdXAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgLy8gYXJyYXkvdWludDY0LnB5OjE2NQogICAgLy8gYXJjNF9hcnIuYXBwZW5kKGFyYzQuVUludDY0KGkpKQogICAgaW50Y18wIC8vIDEKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAwCiAgICByZXBsYWNlMiAwCiAgICBkaWcgMQogICAgY29uY2F0CiAgICBjb3ZlciAzCiAgICB1bmNvdmVyIDIKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxNjYKICAgIC8vIG5hdGl2ZV9hcnIuYXBwZW5kKGFyYzQuVUludDY0KGkpKQogICAgc3dhcAogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBzd2FwCiAgICAvLyBhcnJheS91aW50NjQucHk6MTY0CiAgICAvLyBmb3IgaSBpbiB1cmFuZ2UoNSk6CiAgICBpbnRjXzAgLy8gMQogICAgKwogICAgYiB0ZXN0X2l0ZXJhdGlvbl9mb3JfaGVhZGVyQDE4Cgp0ZXN0X2l0ZXJhdGlvbl9hZnRlcl9mb3JAMjE6CiAgICBwb3AKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxNjcKICAgIC8vIGNvbWJpbmVkX2FyciA9IGFyYzRfYXJyICsgbmF0aXZlX2FycgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyA4CiAgICAvCiAgICB1bmNvdmVyIDIKICAgIGR1cAogICAgY292ZXIgMgogICAgaW50Y18yIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMAogICAgcmVwbGFjZTIgMAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBhcnJheS91aW50NjQucHk6MTY4CiAgICAvLyBhc3NlcnQgY29tYmluZWRfYXJyLmxlbmd0aCA9PSAxMAogICAgZHVwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgcHVzaGludCAxMAogICAgPT0KICAgIGFzc2VydAogICAgLy8gYXJyYXkvdWludDY0LnB5OjE2OQogICAgLy8gYXNzZXJ0IGNvbWJpbmVkX2FyclswXSA9PSAwCiAgICBkdXAKICAgIGV4dHJhY3QgMiA4CiAgICBkaWcgMgogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxNzAKICAgIC8vIGFzc2VydCBjb21iaW5lZF9hcnJbNF0gPT0gNAogICAgZHVwCiAgICBleHRyYWN0IDM0IDgKICAgIHB1c2hpbnQgNAogICAgaXRvYgogICAgc3dhcAogICAgZGlnIDEKICAgIGI9PQogICAgYXNzZXJ0CiAgICAvLyBhcnJheS91aW50NjQucHk6MTcxCiAgICAvLyBhc3NlcnQgY29tYmluZWRfYXJyWzVdID09IDAKICAgIGRpZyAxCiAgICBleHRyYWN0IDQyIDgKICAgIHVuY292ZXIgMwogICAgYj09CiAgICBhc3NlcnQKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxNzIKICAgIC8vIGFzc2VydCBjb21iaW5lZF9hcnJbOV0gPT0gNAogICAgc3dhcAogICAgZXh0cmFjdCA3NCA4CiAgICBiPT0KICAgIGFzc2VydAogICAgLy8gYXJyYXkvdWludDY0LnB5OjE0MAogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0X2Nhc2VzLmFycmF5LnVpbnQ2NC5Db250cmFjdC50ZXN0X3F1aWNrc29ydFtyb3V0aW5nXSgpIC0+IHZvaWQ6CnRlc3RfcXVpY2tzb3J0OgogICAgLy8gYXJyYXkvdWludDY0LnB5OjE3Ni0xNzcKICAgIC8vICMgY3JlYXRlIHBzZXVkbyByYW5kb20gYXJyYXkgZnJvbSBzZW5kZXIgYWRkcmVzcwogICAgLy8gcm5kID0gUmVmZXJlbmNlQXJyYXlbVUludDY0XSgpCiAgICBjYWxsc3ViIF9wdXlhX2xpYi5tZW0ubmV3X3Nsb3QKICAgIGR1cAogICAgYnl0ZWNfMCAvLyAweAogICAgc3RvcmVzCiAgICAvLyBhcnJheS91aW50NjQucHk6MTc4CiAgICAvLyBmb3IgYiBpbiBUeG4uc2VuZGVyLmJ5dGVzOgogICAgdHhuIFNlbmRlcgogICAgaW50Y18yIC8vIDAKCnRlc3RfcXVpY2tzb3J0X2Zvcl9oZWFkZXJAMjoKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxNzgKICAgIC8vIGZvciBiIGluIFR4bi5zZW5kZXIuYnl0ZXM6CiAgICBkdXAKICAgIHB1c2hpbnQgMzIKICAgIDwKICAgIGJ6IHRlc3RfcXVpY2tzb3J0X2FmdGVyX2ZvckA1CiAgICAvLyBhcnJheS91aW50NjQucHk6MTc5CiAgICAvLyBybmQuYXBwZW5kKG9wLmJ0b2koYikpCiAgICBkdXAyCiAgICBnZXRieXRlCiAgICBkaWcgMwogICAgZHVwCiAgICBjb3ZlciAyCiAgICBsb2FkcwogICAgc3dhcAogICAgaXRvYgogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBzdG9yZXMKICAgIGludGNfMCAvLyAxCiAgICArCiAgICBiIHRlc3RfcXVpY2tzb3J0X2Zvcl9oZWFkZXJAMgoKdGVzdF9xdWlja3NvcnRfYWZ0ZXJfZm9yQDU6CiAgICBwb3BuIDIKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxODAKICAgIC8vIGFzc2VydCBybmQubGVuZ3RoID09IDMyLCAiZXhwZWN0ZWQgYXJyYXkgb2YgbGVuZ3RoIDMyIgogICAgZHVwbiAyCiAgICBsb2FkcwogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgLwogICAgZHVwCiAgICBwdXNoaW50IDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGV4cGVjdGVkIGFycmF5IG9mIGxlbmd0aCAzMgogICAgLy8gYXJyYXkvdWludDY0LnB5OjE4Mi0xODMKICAgIC8vICMgc29ydCB0aGUgYXJyYXkKICAgIC8vIHF1aWNrc29ydF93aW5kb3cocm5kLCBVSW50NjQoMCksIHJuZC5sZW5ndGggLSAxKQogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIGRpZyAxCiAgICBpbnRjXzIgLy8gMAogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHF1aWNrc29ydF93aW5kb3cKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxODUtMTg2CiAgICAvLyAjIGFycmF5IHNob3VsZCBub3cgYmUgaW4gYXNjZW5kaW5nIG9yZGVyCiAgICAvLyBsYXN0ID0gVUludDY0KDApCiAgICBpbnRjXzIgLy8gMAogICAgY292ZXIgMgogICAgLy8gYXJyYXkvdWludDY0LnB5OjE4NwogICAgLy8gZm9yIHZhbHVlIGluIHJuZDoKICAgIGxvYWRzCiAgICBsZW4KICAgIGludGNfMSAvLyA4CiAgICAvCiAgICBpbnRjXzIgLy8gMAoKdGVzdF9xdWlja3NvcnRfZm9yX2hlYWRlckA2OgogICAgLy8gYXJyYXkvdWludDY0LnB5OjE4NwogICAgLy8gZm9yIHZhbHVlIGluIHJuZDoKICAgIGR1cAogICAgZGlnIDIKICAgIDwKICAgIGJ6IHRlc3RfcXVpY2tzb3J0X2FmdGVyX2ZvckA5CiAgICBkaWcgMgogICAgbG9hZHMKICAgIGRpZyAxCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgZXh0cmFjdF91aW50NjQKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxODgKICAgIC8vIGFzc2VydCB2YWx1ZSA+PSBsYXN0LCAiYXJyYXkgaXMgbm90IHNvcnRlZCIKICAgIGR1cAogICAgdW5jb3ZlciA1CiAgICA+PQogICAgYXNzZXJ0IC8vIGFycmF5IGlzIG5vdCBzb3J0ZWQKICAgIHN3YXAKICAgIGludGNfMCAvLyAxCiAgICArCiAgICBzd2FwCiAgICBjb3ZlciAzCiAgICBiIHRlc3RfcXVpY2tzb3J0X2Zvcl9oZWFkZXJANgoKdGVzdF9xdWlja3NvcnRfYWZ0ZXJfZm9yQDk6CiAgICAvLyBhcnJheS91aW50NjQucHk6MTc0CiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMuYXJyYXkudWludDY0LkNvbnRyYWN0LnRlc3RfdW5vYnNlcnZlZF93cml0ZVtyb3V0aW5nXSgpIC0+IHZvaWQ6CnRlc3RfdW5vYnNlcnZlZF93cml0ZToKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxOTMKICAgIC8vIGFyciA9IGNyZWF0ZV9hcnJheSgpCiAgICBjYWxsc3ViIGNyZWF0ZV9hcnJheQogICAgLy8gYXJyYXkvdWludDY0LnB5OjE5NAogICAgLy8gbGFzdCA9IGFyci5sZW5ndGggLSAxCiAgICBkdXAKICAgIGxvYWRzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDgKICAgIC8KICAgIGludGNfMCAvLyAxCiAgICAtCiAgICAvLyBhcnJheS91aW50NjQucHk6MTk1CiAgICAvLyBhcnJbbGFzdF0gPSBVSW50NjQoMCkgICMgd3JpdGUKICAgIGludGNfMiAvLyAwCiAgICBpdG9iCiAgICBzd2FwCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgdW5jb3ZlciAyCiAgICBkaWcgMQogICAgdW5jb3ZlciAzCiAgICByZXBsYWNlMyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGRpZyAyCiAgICBzd2FwCiAgICBzdG9yZXMKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxOTYKICAgIC8vIGFzc2VydF9sYXN0X2lzX3plcm8oYXJyKQogICAgZGlnIDEKICAgIGNhbGxzdWIgYXNzZXJ0X2xhc3RfaXNfemVybwogICAgLy8gYXJyYXkvdWludDY0LnB5OjE5NwogICAgLy8gYXJyW2xhc3RdID0gVUludDY0KDEpICAjIHdyaXRlCiAgICBpbnRjXzAgLy8gMQogICAgaXRvYgogICAgZGlnIDIKICAgIGxvYWRzCiAgICBkaWcgMgogICAgdW5jb3ZlciAyCiAgICByZXBsYWNlMyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHVuY292ZXIgMgogICAgZGlnIDEKICAgIHN0b3JlcwogICAgLy8gYXJyYXkvdWludDY0LnB5OjE5OAogICAgLy8gYXNzZXJ0IGFycltsYXN0XSA9PSAxCiAgICBzd2FwCiAgICBleHRyYWN0X3VpbnQ2NAogICAgaW50Y18wIC8vIDEKICAgID09CiAgICBhc3NlcnQKICAgIC8vIGFycmF5L3VpbnQ2NC5weToxOTEKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gX3B1eWFfbGliLm1lbS5uZXdfc2xvdCgpIC0+IHVpbnQ2NDoKX3B1eWFfbGliLm1lbS5uZXdfc2xvdDoKICAgIGxvYWQgMAogICAgYml0bGVuCiAgICBsb2FkIDAKICAgIHB1c2hpbnQgMjU2CiAgICBkaWcgMgogICAgLQogICAgaW50Y18yIC8vIDAKICAgIHNldGJpdCAvLyBvbiBlcnJvcjogbm8gYXZhaWxhYmxlIHNsb3RzCiAgICBzdG9yZSAwCiAgICByZXRzdWIK", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "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", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 99, "minor": 99, "patch": 99 } }, "events": [], "templateVariables": {} }