{"abstract":"Fields declared in superclasses are not traced for subclass instances.","category":"Garbage collector invariants","checks":6,"contract":"Precise tracing with per-class reference maps. Objects are word lists: words 0-1 are the header; object arrays keep their length in word 2 and elements in words 3..3+len-1 (anything after is padding); primitive arrays contain no references. Instance classes list [offset, count] runs of reference words and inherit all superclass runs. A reference word of 0 is null; a nonzero reference that is not an object id is reported as [object, word]. Return the reachable ids and the bad references.","evaluation_group":"w2-garbage-collector-invariants-oop-map-tracing","failed_approach":"Walking up only when a class declares no runs of its own still skips inherited fields.","family":"w2-garbage-collector-invariants-oop-map-tracing-superclass-maps","id":"FA-90811","implementations":{"attempt":{"sha256":"fc0f382703065426786a899a793dd3b40c7653df15875b21caf15aa590ee871d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(classes, objects, roots):\n    def ref_slots(o):\n        ob = objects[o]\n        cls = classes[ob['class']]\n        if cls['kind'] == 'objarray':\n            return list(range(3, 3 + ob['words'][2]))\n        if cls['kind'] == 'primarray':\n            return []\n        slots = []\n        c = ob['class']\n        while c is not None:\n            for off, cnt in classes[c]['maps']:\n                slots.extend(range(off, off + cnt))\n            c = classes[c]['super'] if not classes[c]['maps'] else None\n        return slots\n    seen = set()\n    stack = list(roots)\n    bad = []\n    while stack:\n        o = stack.pop()\n        if o in seen:\n            continue\n        seen.add(o)\n        words = objects[o]['words']\n        for s in ref_slots(o):\n            v = words[s]\n            if v == 0:\n                continue\n            if v not in objects:\n                bad.append([o, s])\n                continue\n            stack.append(v)\n    return {'live': sorted(seen), 'bad': sorted(bad)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression: trace through fields, arrays and subclasses',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [100]),\n   {'bad': [], 'live': [100, 101, 102, 103, 104, 107]}),\n  ('object array elements and trailing padding',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [102]),\n   {'bad': [], 'live': [102, 103, 104, 107]}),\n  ('primitive array contents are not references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [103]),\n   {'bad': [], 'live': [103]}),\n  ('inherited reference field of a subclass',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [104]),\n   {'bad': [], 'live': [104, 107]}),\n  ('integer field that equals an object id',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [109, 101]),\n   {'bad': [], 'live': [101, 105, 109]}),\n  ('control: base object without references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [106]),\n   {'bad': [], 'live': [106]})],\n [('regression: trace through fields, arrays and subclasses',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [100]),\n   {'bad': [], 'live': [100, 101, 102, 103, 104, 107]}),\n  ('object array elements and trailing padding',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [102]),\n   {'bad': [], 'live': [102, 103, 104, 107]}),\n  ('primitive array contents are not references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [103]),\n   {'bad': [], 'live': [103]}),\n  ('inherited reference field of a subclass',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [104]),\n   {'bad': [], 'live': [104, 107]}),\n  ('integer field that equals an object id',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [109, 101]),\n   {'bad': [], 'live': [101, 105, 109]}),\n  ('control: base object without references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [107]),\n   {'bad': [], 'live': [107]})],\n [('regression: trace through fields, arrays and subclasses',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [100]),\n   {'bad': [], 'live': [100, 101, 102, 103, 104, 107]}),\n  ('object array elements and trailing padding',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [102]),\n   {'bad': [], 'live': [102, 103, 104, 107]}),\n  ('primitive array contents are not references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [103]),\n   {'bad': [], 'live': [103]}),\n  ('inherited reference field of a subclass',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [104]),\n   {'bad': [], 'live': [104, 107]}),\n  ('integer field that equals an object id',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [109, 101]),\n   {'bad': [], 'live': [101, 105, 109]}),\n  ('control: base object without references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [105]),\n   {'bad': [], 'live': [105]})],\n [('regression: trace through fields, arrays and subclasses',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [100]),\n   {'bad': [], 'live': [100, 101, 102, 103, 104, 107]}),\n  ('object array elements and trailing padding',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [102]),\n   {'bad': [], 'live': [102, 103, 104, 107]}),\n  ('primitive array contents are not references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [103]),\n   {'bad': [], 'live': [103]}),\n  ('inherited reference field of a subclass',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [104]),\n   {'bad': [], 'live': [104, 107]}),\n  ('integer field that equals an object id',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [109, 101]),\n   {'bad': [], 'live': [101, 105, 109]}),\n  ('control: base object without references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [106]),\n   {'bad': [], 'live': [106]})],\n [('regression: trace through fields, arrays and subclasses',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [100]),\n   {'bad': [], 'live': [100, 101, 102, 103, 104, 107]}),\n  ('object array elements and trailing padding',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [102]),\n   {'bad': [], 'live': [102, 103, 104, 107]}),\n  ('primitive array contents are not references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [103]),\n   {'bad': [], 'live': [103]}),\n  ('inherited reference field of a subclass',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [104]),\n   {'bad': [], 'live': [104, 107]}),\n  ('integer field that equals an object id',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [109, 101]),\n   {'bad': [], 'live': [101, 105, 109]}),\n  ('control: base object without references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [107]),\n   {'bad': [], 'live': [107]})]]\nfor label, args, expected in cases[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"221a9f2d432866c9b465650aa67e75a830ec93e02dfbff937d69d98edea0ae43","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(classes, objects, roots):\n    def ref_slots(o):\n        ob = objects[o]\n        cls = classes[ob['class']]\n        if cls['kind'] == 'objarray':\n            return list(range(3, 3 + ob['words'][2]))\n        if cls['kind'] == 'primarray':\n            return []\n        slots = []\n        c = ob['class']\n        while c is not None:\n            for off, cnt in classes[c]['maps']:\n                slots.extend(range(off, off + cnt))\n            c = None\n        return slots\n    seen = set()\n    stack = list(roots)\n    bad = []\n    while stack:\n        o = stack.pop()\n        if o in seen:\n            continue\n        seen.add(o)\n        words = objects[o]['words']\n        for s in ref_slots(o):\n            v = words[s]\n            if v == 0:\n                continue\n            if v not in objects:\n                bad.append([o, s])\n                continue\n            stack.append(v)\n    return {'live': sorted(seen), 'bad': sorted(bad)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression: trace through fields, arrays and subclasses',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [100]),\n   {'bad': [], 'live': [100, 101, 102, 103, 104, 107]}),\n  ('object array elements and trailing padding',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [102]),\n   {'bad': [], 'live': [102, 103, 104, 107]}),\n  ('primitive array contents are not references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [103]),\n   {'bad': [], 'live': [103]}),\n  ('inherited reference field of a subclass',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [104]),\n   {'bad': [], 'live': [104, 107]}),\n  ('integer field that equals an object id',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [109, 101]),\n   {'bad': [], 'live': [101, 105, 109]}),\n  ('control: base object without references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [106]),\n   {'bad': [], 'live': [106]})],\n [('regression: trace through fields, arrays and subclasses',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [100]),\n   {'bad': [], 'live': [100, 101, 102, 103, 104, 107]}),\n  ('object array elements and trailing padding',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [102]),\n   {'bad': [], 'live': [102, 103, 104, 107]}),\n  ('primitive array contents are not references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [103]),\n   {'bad': [], 'live': [103]}),\n  ('inherited reference field of a subclass',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [104]),\n   {'bad': [], 'live': [104, 107]}),\n  ('integer field that equals an object id',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [109, 101]),\n   {'bad': [], 'live': [101, 105, 109]}),\n  ('control: base object without references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [107]),\n   {'bad': [], 'live': [107]})],\n [('regression: trace through fields, arrays and subclasses',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [100]),\n   {'bad': [], 'live': [100, 101, 102, 103, 104, 107]}),\n  ('object array elements and trailing padding',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [102]),\n   {'bad': [], 'live': [102, 103, 104, 107]}),\n  ('primitive array contents are not references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [103]),\n   {'bad': [], 'live': [103]}),\n  ('inherited reference field of a subclass',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [104]),\n   {'bad': [], 'live': [104, 107]}),\n  ('integer field that equals an object id',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [109, 101]),\n   {'bad': [], 'live': [101, 105, 109]}),\n  ('control: base object without references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [105]),\n   {'bad': [], 'live': [105]})],\n [('regression: trace through fields, arrays and subclasses',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [100]),\n   {'bad': [], 'live': [100, 101, 102, 103, 104, 107]}),\n  ('object array elements and trailing padding',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [102]),\n   {'bad': [], 'live': [102, 103, 104, 107]}),\n  ('primitive array contents are not references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [103]),\n   {'bad': [], 'live': [103]}),\n  ('inherited reference field of a subclass',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [104]),\n   {'bad': [], 'live': [104, 107]}),\n  ('integer field that equals an object id',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [109, 101]),\n   {'bad': [], 'live': [101, 105, 109]}),\n  ('control: base object without references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [106]),\n   {'bad': [], 'live': [106]})],\n [('regression: trace through fields, arrays and subclasses',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [100]),\n   {'bad': [], 'live': [100, 101, 102, 103, 104, 107]}),\n  ('object array elements and trailing padding',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [102]),\n   {'bad': [], 'live': [102, 103, 104, 107]}),\n  ('primitive array contents are not references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [103]),\n   {'bad': [], 'live': [103]}),\n  ('inherited reference field of a subclass',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [104]),\n   {'bad': [], 'live': [104, 107]}),\n  ('integer field that equals an object id',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [109, 101]),\n   {'bad': [], 'live': [101, 105, 109]}),\n  ('control: base object without references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [107]),\n   {'bad': [], 'live': [107]})]]\nfor label, args, expected in cases[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"83b88a19f8ef29656bb5f53b04828216dd0677d2a8cfd5a82ca28f9598c83c1a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(classes, objects, roots):\n    def ref_slots(o):\n        ob = objects[o]\n        cls = classes[ob['class']]\n        if cls['kind'] == 'objarray':\n            return list(range(3, 3 + ob['words'][2]))\n        if cls['kind'] == 'primarray':\n            return []\n        slots = []\n        c = ob['class']\n        while c is not None:\n            for off, cnt in classes[c]['maps']:\n                slots.extend(range(off, off + cnt))\n            c = classes[c]['super']\n        return slots\n    seen = set()\n    stack = list(roots)\n    bad = []\n    while stack:\n        o = stack.pop()\n        if o in seen:\n            continue\n        seen.add(o)\n        words = objects[o]['words']\n        for s in ref_slots(o):\n            v = words[s]\n            if v == 0:\n                continue\n            if v not in objects:\n                bad.append([o, s])\n                continue\n            stack.append(v)\n    return {'live': sorted(seen), 'bad': sorted(bad)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression: trace through fields, arrays and subclasses',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [100]),\n   {'bad': [], 'live': [100, 101, 102, 103, 104, 107]}),\n  ('object array elements and trailing padding',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [102]),\n   {'bad': [], 'live': [102, 103, 104, 107]}),\n  ('primitive array contents are not references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [103]),\n   {'bad': [], 'live': [103]}),\n  ('inherited reference field of a subclass',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [104]),\n   {'bad': [], 'live': [104, 107]}),\n  ('integer field that equals an object id',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [109, 101]),\n   {'bad': [], 'live': [101, 105, 109]}),\n  ('control: base object without references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 6, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [106]),\n   {'bad': [], 'live': [106]})],\n [('regression: trace through fields, arrays and subclasses',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [100]),\n   {'bad': [], 'live': [100, 101, 102, 103, 104, 107]}),\n  ('object array elements and trailing padding',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [102]),\n   {'bad': [], 'live': [102, 103, 104, 107]}),\n  ('primitive array contents are not references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [103]),\n   {'bad': [], 'live': [103]}),\n  ('inherited reference field of a subclass',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [104]),\n   {'bad': [], 'live': [104, 107]}),\n  ('integer field that equals an object id',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [109, 101]),\n   {'bad': [], 'live': [101, 105, 109]}),\n  ('control: base object without references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 7, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [107]),\n   {'bad': [], 'live': [107]})],\n [('regression: trace through fields, arrays and subclasses',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [100]),\n   {'bad': [], 'live': [100, 101, 102, 103, 104, 107]}),\n  ('object array elements and trailing padding',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [102]),\n   {'bad': [], 'live': [102, 103, 104, 107]}),\n  ('primitive array contents are not references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [103]),\n   {'bad': [], 'live': [103]}),\n  ('inherited reference field of a subclass',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [104]),\n   {'bad': [], 'live': [104, 107]}),\n  ('integer field that equals an object id',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [109, 101]),\n   {'bad': [], 'live': [101, 105, 109]}),\n  ('control: base object without references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 8, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [105]),\n   {'bad': [], 'live': [105]})],\n [('regression: trace through fields, arrays and subclasses',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [100]),\n   {'bad': [], 'live': [100, 101, 102, 103, 104, 107]}),\n  ('object array elements and trailing padding',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [102]),\n   {'bad': [], 'live': [102, 103, 104, 107]}),\n  ('primitive array contents are not references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [103]),\n   {'bad': [], 'live': [103]}),\n  ('inherited reference field of a subclass',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [104]),\n   {'bad': [], 'live': [104, 107]}),\n  ('integer field that equals an object id',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [109, 101]),\n   {'bad': [], 'live': [101, 105, 109]}),\n  ('control: base object without references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 9, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [106]),\n   {'bad': [], 'live': [106]})],\n [('regression: trace through fields, arrays and subclasses',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [100]),\n   {'bad': [], 'live': [100, 101, 102, 103, 104, 107]}),\n  ('object array elements and trailing padding',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [102]),\n   {'bad': [], 'live': [102, 103, 104, 107]}),\n  ('primitive array contents are not references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [103]),\n   {'bad': [], 'live': [103]}),\n  ('inherited reference field of a subclass',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [104]),\n   {'bad': [], 'live': [104, 107]}),\n  ('integer field that equals an object id',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [109, 101]),\n   {'bad': [], 'live': [101, 105, 109]}),\n  ('control: base object without references',\n   ({'Base': {'kind': 'instance', 'maps': [[2, 1]], 'super': None},\n     'Derived': {'kind': 'instance', 'maps': [[4, 2]], 'super': 'Base'},\n     'Leaf': {'kind': 'instance', 'maps': [], 'super': 'Derived'},\n     'Object[]': {'kind': 'objarray', 'maps': [], 'super': None},\n     'int[]': {'kind': 'primarray', 'maps': [], 'super': None}},\n    {100: {'class': 'Derived', 'words': [51966, 0, 101, 7, 102, 0, 999]},\n     101: {'class': 'Base', 'words': [51966, 0, 0, 105]},\n     102: {'class': 'Object[]', 'words': [51966, 0, 2, 103, 104, 106]},\n     103: {'class': 'int[]', 'words': [51966, 0, 3, 106, 10, 107]},\n     104: {'class': 'Leaf', 'words': [51966, 0, 0, 108, 0, 107, 0]},\n     105: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     106: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     107: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     108: {'class': 'Base', 'words': [51966, 0, 0, 0]},\n     109: {'class': 'Derived', 'words': [51966, 0, 105, 106, 0, 0, 0]}},\n    [107]),\n   {'bad': [], 'live': [107]})]]\nfor label, args, expected in cases[N - 1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic, bounded teaching model of one garbage-collector mechanism with stipulated rules; it is not a production collector and claims no conformance to any particular runtime. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-garbage-collector-invariants-oop-map-tracing-superclass-maps","generated_at":"2026-09-29T14:51:30.262888+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Tracing must follow exactly the reference words described by type metadata, no more and no less.","repair":"Walk the whole superclass chain and include every run.","root_cause":"Only the object's own class map is used.","sha256":"68d360ddb20433303ec0383fa2ad4fe47246e3e55aa21d629763fc43b69db60a","title":"Oop maps: inherited reference fields ignored · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.392,"exit_code":1,"observations":[{"actual":{"bad":[],"live":[100,102,103,104,107]},"check":"regression: trace through fields, arrays and subclasses","expected":{"bad":[],"live":[100,101,102,103,104,107]},"passed":false},{"actual":{"bad":[],"live":[102,103,104,107]},"check":"object array elements and trailing padding","expected":{"bad":[],"live":[102,103,104,107]},"passed":true},{"actual":{"bad":[],"live":[103]},"check":"primitive array contents are not references","expected":{"bad":[],"live":[103]},"passed":true},{"actual":{"bad":[],"live":[104,107]},"check":"inherited reference field of a subclass","expected":{"bad":[],"live":[104,107]},"passed":true},{"actual":{"bad":[],"live":[101,109]},"check":"integer field that equals an object id","expected":{"bad":[],"live":[101,105,109]},"passed":false},{"actual":{"bad":[],"live":[106]},"check":"control: base object without references","expected":{"bad":[],"live":[106]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: trace through fields, arrays and subclasses\", \"actual\": {\"live\": [100, 102, 103, 104, 107], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [100, 101, 102, 103, 104, 107]}, \"passed\": false}, {\"check\": \"object array elements and trailing padding\", \"actual\": {\"live\": [102, 103, 104, 107], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [102, 103, 104, 107]}, \"passed\": true}, {\"check\": \"primitive array contents are not references\", \"actual\": {\"live\": [103], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [103]}, \"passed\": true}, {\"check\": \"inherited reference field of a subclass\", \"actual\": {\"live\": [104, 107], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [104, 107]}, \"passed\": true}, {\"check\": \"integer field that equals an object id\", \"actual\": {\"live\": [101, 109], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [101, 105, 109]}, \"passed\": false}, {\"check\": \"control: base object without references\", \"actual\": {\"live\": [106], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [106]}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":46.042,"exit_code":1,"observations":[{"actual":{"bad":[],"live":[100,102,103,104]},"check":"regression: trace through fields, arrays and subclasses","expected":{"bad":[],"live":[100,101,102,103,104,107]},"passed":false},{"actual":{"bad":[],"live":[102,103,104]},"check":"object array elements and trailing padding","expected":{"bad":[],"live":[102,103,104,107]},"passed":false},{"actual":{"bad":[],"live":[103]},"check":"primitive array contents are not references","expected":{"bad":[],"live":[103]},"passed":true},{"actual":{"bad":[],"live":[104]},"check":"inherited reference field of a subclass","expected":{"bad":[],"live":[104,107]},"passed":false},{"actual":{"bad":[],"live":[101,109]},"check":"integer field that equals an object id","expected":{"bad":[],"live":[101,105,109]},"passed":false},{"actual":{"bad":[],"live":[106]},"check":"control: base object without references","expected":{"bad":[],"live":[106]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: trace through fields, arrays and subclasses\", \"actual\": {\"live\": [100, 102, 103, 104], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [100, 101, 102, 103, 104, 107]}, \"passed\": false}, {\"check\": \"object array elements and trailing padding\", \"actual\": {\"live\": [102, 103, 104], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [102, 103, 104, 107]}, \"passed\": false}, {\"check\": \"primitive array contents are not references\", \"actual\": {\"live\": [103], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [103]}, \"passed\": true}, {\"check\": \"inherited reference field of a subclass\", \"actual\": {\"live\": [104], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [104, 107]}, \"passed\": false}, {\"check\": \"integer field that equals an object id\", \"actual\": {\"live\": [101, 109], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [101, 105, 109]}, \"passed\": false}, {\"check\": \"control: base object without references\", \"actual\": {\"live\": [106], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [106]}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.511,"exit_code":0,"observations":[{"actual":{"bad":[],"live":[100,101,102,103,104,107]},"check":"regression: trace through fields, arrays and subclasses","expected":{"bad":[],"live":[100,101,102,103,104,107]},"passed":true},{"actual":{"bad":[],"live":[102,103,104,107]},"check":"object array elements and trailing padding","expected":{"bad":[],"live":[102,103,104,107]},"passed":true},{"actual":{"bad":[],"live":[103]},"check":"primitive array contents are not references","expected":{"bad":[],"live":[103]},"passed":true},{"actual":{"bad":[],"live":[104,107]},"check":"inherited reference field of a subclass","expected":{"bad":[],"live":[104,107]},"passed":true},{"actual":{"bad":[],"live":[101,105,109]},"check":"integer field that equals an object id","expected":{"bad":[],"live":[101,105,109]},"passed":true},{"actual":{"bad":[],"live":[106]},"check":"control: base object without references","expected":{"bad":[],"live":[106]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: trace through fields, arrays and subclasses\", \"actual\": {\"live\": [100, 101, 102, 103, 104, 107], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [100, 101, 102, 103, 104, 107]}, \"passed\": true}, {\"check\": \"object array elements and trailing padding\", \"actual\": {\"live\": [102, 103, 104, 107], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [102, 103, 104, 107]}, \"passed\": true}, {\"check\": \"primitive array contents are not references\", \"actual\": {\"live\": [103], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [103]}, \"passed\": true}, {\"check\": \"inherited reference field of a subclass\", \"actual\": {\"live\": [104, 107], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [104, 107]}, \"passed\": true}, {\"check\": \"integer field that equals an object id\", \"actual\": {\"live\": [101, 105, 109], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [101, 105, 109]}, \"passed\": true}, {\"check\": \"control: base object without references\", \"actual\": {\"live\": [106], \"bad\": []}, \"expected\": {\"bad\": [], \"live\": [106]}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}