{"abstract":"Member references print as \"()I:length\".","category":"Bytecode virtual machines","checks":9,"contract":"pool lists entries in file order; indexes start at 1 and Long/Double entries occupy two indexes (the second is unusable). Resolution: Utf8 -> text; Integer/Long/Double -> value; String -> quoted Utf8 text; Class -> Utf8 binary name with \"/\" turned into \".\"; NameAndType -> \"name:descriptor\"; Methodref and Fieldref -> \"Class.name:descriptor\" where the owner must be a Class entry and the second index a NameAndType. Any index that is missing or of the wrong kind yields [\"bad-ref\", index].","evaluation_group":"w2-bytecode-virtual-machines-constant-pool-resolution","failed_approach":"Concatenating without the separator yields \"length()I\", which cannot be split back.","family":"w2-bytecode-virtual-machines-constant-pool-resolution-name-and-type-order","id":"FA-90031","implementations":{"attempt":{"sha256":"8d1b8a0c1c4b5a9cabbfe25a2aa57dfc7445fcf22582a14af386cd0951f81472","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(pool, queries):\n    table = {}\n    idx = 1\n    for e in pool:\n        table[idx] = e\n        idx += 2 if e[0] in ('Long', 'Double') else 1\n    def utf(i):\n        e = table.get(i)\n        if e is None or e[0] != 'Utf8':\n            raise LookupError(i)\n        return e[1]\n    def res(i):\n        e = table.get(i)\n        if e is None:\n            raise LookupError(i)\n        kind = e[0]\n        if kind == 'Utf8':\n            return e[1]\n        if kind in ('Integer', 'Long', 'Double'):\n            return e[1]\n        if kind == 'String':\n            return '\"' + utf(e[1]) + '\"'\n        if kind == 'Class':\n            return utf(e[1]).replace('/', '.')\n        if kind == 'NameAndType':\n            return utf(e[1]) + utf(e[2])\n        if kind in ('Methodref', 'Fieldref'):\n            c = table.get(e[1])\n            if c is None or c[0] != 'Class':\n                raise LookupError(e[1])\n            n = table.get(e[2])\n            if n is None or n[0] != 'NameAndType':\n                raise LookupError(e[2])\n            return res(e[1]) + '.' + res(e[2])\n        raise LookupError(i)\n    out = []\n    for q in queries:\n        try:\n            out.append(res(q))\n        except LookupError as err:\n            out.append(['bad-ref', err.args[0]])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression: method reference',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [6]),\n   ['java.lang.String.length1:()I']),\n  ('entries after a Long keep their index',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [9, 8]),\n   [41, ['bad-ref', 8]]),\n  ('entries after a Double keep their index',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [12, 18]),\n   ['\"length1\"', 7]),\n  ('field reference',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [13]),\n   ['java.lang.String.length1:()I']),\n  ('method reference with non-Class owner',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [14]),\n   [['bad-ref', 1]]),\n  ('string constant pointing at an Integer',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [15]),\n   [['bad-ref', 9]]),\n  ('nested package class name',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [17, 2]),\n   ['java.util.Map$Entry', 'java.lang.String']),\n  ('name and type',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [5]),\n   ['length1:()I']),\n  ('index zero is invalid',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [0]),\n   [['bad-ref', 0]])],\n [('regression: method reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [7]),\n   ['java.lang.String.length2:()I']),\n  ('entries after a Long keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [10, 9]),\n   [42, ['bad-ref', 9]]),\n  ('entries after a Double keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [13, 19]),\n   ['\"length2\"', 14]),\n  ('field reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [14]),\n   ['java.lang.String.length2:()I']),\n  ('method reference with non-Class owner',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [15]),\n   [['bad-ref', 2]]),\n  ('string constant pointing at an Integer',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [16]),\n   [['bad-ref', 10]]),\n  ('nested package class name',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [18, 3]),\n   ['java.util.Map$Entry', 'java.lang.String']),\n  ('name and type',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [6]),\n   ['length2:()I']),\n  ('index zero is invalid',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [0]),\n   [['bad-ref', 0]])],\n [('regression: method reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [8]),\n   ['java.lang.String.length3:()I']),\n  ('entries after a Long keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [11, 10]),\n   [43, ['bad-ref', 10]]),\n  ('entries after a Double keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [14, 20]),\n   ['\"length3\"', 21]),\n  ('field reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [15]),\n   ['java.lang.String.length3:()I']),\n  ('method reference with non-Class owner',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [16]),\n   [['bad-ref', 3]]),\n  ('string constant pointing at an Integer',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [17]),\n   [['bad-ref', 11]]),\n  ('nested package class name',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [19, 4]),\n   ['java.util.Map$Entry', 'java.lang.String']),\n  ('name and type',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [7]),\n   ['length3:()I']),\n  ('index zero is invalid',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [0]),\n   [['bad-ref', 0]])],\n [('regression: method reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [9]),\n   ['java.lang.String.length4:()I']),\n  ('entries after a Long keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [12, 11]),\n   [44, ['bad-ref', 11]]),\n  ('entries after a Double keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [15, 21]),\n   ['\"length4\"', 28]),\n  ('field reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [16]),\n   ['java.lang.String.length4:()I']),\n  ('method reference with non-Class owner',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [17]),\n   [['bad-ref', 4]]),\n  ('string constant pointing at an Integer',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [18]),\n   [['bad-ref', 12]]),\n  ('nested package class name',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [20, 5]),\n   ['java.util.Map$Entry', 'java.lang.String']),\n  ('name and type',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [8]),\n   ['length4:()I']),\n  ('index zero is invalid',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [0]),\n   [['bad-ref', 0]])],\n [('regression: method reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [10]),\n   ['java.lang.String.length5:()I']),\n  ('entries after a Long keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [13, 12]),\n   [45, ['bad-ref', 12]]),\n  ('entries after a Double keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [16, 22]),\n   ['\"length5\"', 35]),\n  ('field reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [17]),\n   ['java.lang.String.length5:()I']),\n  ('method reference with non-Class owner',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [18]),\n   [['bad-ref', 5]]),\n  ('string constant pointing at an Integer',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [19]),\n   [['bad-ref', 13]]),\n  ('nested package class name',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [21, 6]),\n   ['java.util.Map$Entry', 'java.lang.String']),\n  ('name and type',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [9]),\n   ['length5:()I']),\n  ('index zero is invalid',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [0]),\n   [['bad-ref', 0]])]]\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":"852c7b612860942106f0c6a4970db2be90108b72851043ba6e4213c0d9a74c71","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(pool, queries):\n    table = {}\n    idx = 1\n    for e in pool:\n        table[idx] = e\n        idx += 2 if e[0] in ('Long', 'Double') else 1\n    def utf(i):\n        e = table.get(i)\n        if e is None or e[0] != 'Utf8':\n            raise LookupError(i)\n        return e[1]\n    def res(i):\n        e = table.get(i)\n        if e is None:\n            raise LookupError(i)\n        kind = e[0]\n        if kind == 'Utf8':\n            return e[1]\n        if kind in ('Integer', 'Long', 'Double'):\n            return e[1]\n        if kind == 'String':\n            return '\"' + utf(e[1]) + '\"'\n        if kind == 'Class':\n            return utf(e[1]).replace('/', '.')\n        if kind == 'NameAndType':\n            return utf(e[2]) + ':' + utf(e[1])\n        if kind in ('Methodref', 'Fieldref'):\n            c = table.get(e[1])\n            if c is None or c[0] != 'Class':\n                raise LookupError(e[1])\n            n = table.get(e[2])\n            if n is None or n[0] != 'NameAndType':\n                raise LookupError(e[2])\n            return res(e[1]) + '.' + res(e[2])\n        raise LookupError(i)\n    out = []\n    for q in queries:\n        try:\n            out.append(res(q))\n        except LookupError as err:\n            out.append(['bad-ref', err.args[0]])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression: method reference',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [6]),\n   ['java.lang.String.length1:()I']),\n  ('entries after a Long keep their index',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [9, 8]),\n   [41, ['bad-ref', 8]]),\n  ('entries after a Double keep their index',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [12, 18]),\n   ['\"length1\"', 7]),\n  ('field reference',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [13]),\n   ['java.lang.String.length1:()I']),\n  ('method reference with non-Class owner',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [14]),\n   [['bad-ref', 1]]),\n  ('string constant pointing at an Integer',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [15]),\n   [['bad-ref', 9]]),\n  ('nested package class name',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [17, 2]),\n   ['java.util.Map$Entry', 'java.lang.String']),\n  ('name and type',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [5]),\n   ['length1:()I']),\n  ('index zero is invalid',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [0]),\n   [['bad-ref', 0]])],\n [('regression: method reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [7]),\n   ['java.lang.String.length2:()I']),\n  ('entries after a Long keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [10, 9]),\n   [42, ['bad-ref', 9]]),\n  ('entries after a Double keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [13, 19]),\n   ['\"length2\"', 14]),\n  ('field reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [14]),\n   ['java.lang.String.length2:()I']),\n  ('method reference with non-Class owner',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [15]),\n   [['bad-ref', 2]]),\n  ('string constant pointing at an Integer',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [16]),\n   [['bad-ref', 10]]),\n  ('nested package class name',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [18, 3]),\n   ['java.util.Map$Entry', 'java.lang.String']),\n  ('name and type',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [6]),\n   ['length2:()I']),\n  ('index zero is invalid',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [0]),\n   [['bad-ref', 0]])],\n [('regression: method reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [8]),\n   ['java.lang.String.length3:()I']),\n  ('entries after a Long keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [11, 10]),\n   [43, ['bad-ref', 10]]),\n  ('entries after a Double keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [14, 20]),\n   ['\"length3\"', 21]),\n  ('field reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [15]),\n   ['java.lang.String.length3:()I']),\n  ('method reference with non-Class owner',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [16]),\n   [['bad-ref', 3]]),\n  ('string constant pointing at an Integer',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [17]),\n   [['bad-ref', 11]]),\n  ('nested package class name',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [19, 4]),\n   ['java.util.Map$Entry', 'java.lang.String']),\n  ('name and type',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [7]),\n   ['length3:()I']),\n  ('index zero is invalid',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [0]),\n   [['bad-ref', 0]])],\n [('regression: method reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [9]),\n   ['java.lang.String.length4:()I']),\n  ('entries after a Long keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [12, 11]),\n   [44, ['bad-ref', 11]]),\n  ('entries after a Double keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [15, 21]),\n   ['\"length4\"', 28]),\n  ('field reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [16]),\n   ['java.lang.String.length4:()I']),\n  ('method reference with non-Class owner',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [17]),\n   [['bad-ref', 4]]),\n  ('string constant pointing at an Integer',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [18]),\n   [['bad-ref', 12]]),\n  ('nested package class name',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [20, 5]),\n   ['java.util.Map$Entry', 'java.lang.String']),\n  ('name and type',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [8]),\n   ['length4:()I']),\n  ('index zero is invalid',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [0]),\n   [['bad-ref', 0]])],\n [('regression: method reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [10]),\n   ['java.lang.String.length5:()I']),\n  ('entries after a Long keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [13, 12]),\n   [45, ['bad-ref', 12]]),\n  ('entries after a Double keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [16, 22]),\n   ['\"length5\"', 35]),\n  ('field reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [17]),\n   ['java.lang.String.length5:()I']),\n  ('method reference with non-Class owner',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [18]),\n   [['bad-ref', 5]]),\n  ('string constant pointing at an Integer',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [19]),\n   [['bad-ref', 13]]),\n  ('nested package class name',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [21, 6]),\n   ['java.util.Map$Entry', 'java.lang.String']),\n  ('name and type',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [9]),\n   ['length5:()I']),\n  ('index zero is invalid',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [0]),\n   [['bad-ref', 0]])]]\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":"d020ccfc84b79f79d10e7fa7ac224ca36488f004d53b7f17892c874fe55d3a19","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(pool, queries):\n    table = {}\n    idx = 1\n    for e in pool:\n        table[idx] = e\n        idx += 2 if e[0] in ('Long', 'Double') else 1\n    def utf(i):\n        e = table.get(i)\n        if e is None or e[0] != 'Utf8':\n            raise LookupError(i)\n        return e[1]\n    def res(i):\n        e = table.get(i)\n        if e is None:\n            raise LookupError(i)\n        kind = e[0]\n        if kind == 'Utf8':\n            return e[1]\n        if kind in ('Integer', 'Long', 'Double'):\n            return e[1]\n        if kind == 'String':\n            return '\"' + utf(e[1]) + '\"'\n        if kind == 'Class':\n            return utf(e[1]).replace('/', '.')\n        if kind == 'NameAndType':\n            return utf(e[1]) + ':' + utf(e[2])\n        if kind in ('Methodref', 'Fieldref'):\n            c = table.get(e[1])\n            if c is None or c[0] != 'Class':\n                raise LookupError(e[1])\n            n = table.get(e[2])\n            if n is None or n[0] != 'NameAndType':\n                raise LookupError(e[2])\n            return res(e[1]) + '.' + res(e[2])\n        raise LookupError(i)\n    out = []\n    for q in queries:\n        try:\n            out.append(res(q))\n        except LookupError as err:\n            out.append(['bad-ref', err.args[0]])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression: method reference',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [6]),\n   ['java.lang.String.length1:()I']),\n  ('entries after a Long keep their index',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [9, 8]),\n   [41, ['bad-ref', 8]]),\n  ('entries after a Double keep their index',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [12, 18]),\n   ['\"length1\"', 7]),\n  ('field reference',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [13]),\n   ['java.lang.String.length1:()I']),\n  ('method reference with non-Class owner',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [14]),\n   [['bad-ref', 1]]),\n  ('string constant pointing at an Integer',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [15]),\n   [['bad-ref', 9]]),\n  ('nested package class name',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [17, 2]),\n   ['java.util.Map$Entry', 'java.lang.String']),\n  ('name and type',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [5]),\n   ['length1:()I']),\n  ('index zero is invalid',\n   ([['Utf8', 'java/lang/String'],\n     ['Class', 1],\n     ['Utf8', 'length1'],\n     ['Utf8', '()I'],\n     ['NameAndType', 3, 4],\n     ['Methodref', 2, 5],\n     ['Long', 1234567890124],\n     ['Integer', 41],\n     ['Double', 2.5],\n     ['String', 3],\n     ['Fieldref', 2, 5],\n     ['Methodref', 1, 5],\n     ['String', 9],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 16],\n     ['Integer', 7]],\n    [0]),\n   [['bad-ref', 0]])],\n [('regression: method reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [7]),\n   ['java.lang.String.length2:()I']),\n  ('entries after a Long keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [10, 9]),\n   [42, ['bad-ref', 9]]),\n  ('entries after a Double keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [13, 19]),\n   ['\"length2\"', 14]),\n  ('field reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [14]),\n   ['java.lang.String.length2:()I']),\n  ('method reference with non-Class owner',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [15]),\n   [['bad-ref', 2]]),\n  ('string constant pointing at an Integer',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [16]),\n   [['bad-ref', 10]]),\n  ('nested package class name',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [18, 3]),\n   ['java.util.Map$Entry', 'java.lang.String']),\n  ('name and type',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [6]),\n   ['length2:()I']),\n  ('index zero is invalid',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 2],\n     ['Utf8', 'length2'],\n     ['Utf8', '()I'],\n     ['NameAndType', 4, 5],\n     ['Methodref', 3, 6],\n     ['Long', 1234567890125],\n     ['Integer', 42],\n     ['Double', 5.0],\n     ['String', 4],\n     ['Fieldref', 3, 6],\n     ['Methodref', 2, 6],\n     ['String', 10],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 17],\n     ['Integer', 14]],\n    [0]),\n   [['bad-ref', 0]])],\n [('regression: method reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [8]),\n   ['java.lang.String.length3:()I']),\n  ('entries after a Long keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [11, 10]),\n   [43, ['bad-ref', 10]]),\n  ('entries after a Double keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [14, 20]),\n   ['\"length3\"', 21]),\n  ('field reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [15]),\n   ['java.lang.String.length3:()I']),\n  ('method reference with non-Class owner',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [16]),\n   [['bad-ref', 3]]),\n  ('string constant pointing at an Integer',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [17]),\n   [['bad-ref', 11]]),\n  ('nested package class name',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [19, 4]),\n   ['java.util.Map$Entry', 'java.lang.String']),\n  ('name and type',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [7]),\n   ['length3:()I']),\n  ('index zero is invalid',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 3],\n     ['Utf8', 'length3'],\n     ['Utf8', '()I'],\n     ['NameAndType', 5, 6],\n     ['Methodref', 4, 7],\n     ['Long', 1234567890126],\n     ['Integer', 43],\n     ['Double', 7.5],\n     ['String', 5],\n     ['Fieldref', 4, 7],\n     ['Methodref', 3, 7],\n     ['String', 11],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 18],\n     ['Integer', 21]],\n    [0]),\n   [['bad-ref', 0]])],\n [('regression: method reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [9]),\n   ['java.lang.String.length4:()I']),\n  ('entries after a Long keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [12, 11]),\n   [44, ['bad-ref', 11]]),\n  ('entries after a Double keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [15, 21]),\n   ['\"length4\"', 28]),\n  ('field reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [16]),\n   ['java.lang.String.length4:()I']),\n  ('method reference with non-Class owner',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [17]),\n   [['bad-ref', 4]]),\n  ('string constant pointing at an Integer',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [18]),\n   [['bad-ref', 12]]),\n  ('nested package class name',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [20, 5]),\n   ['java.util.Map$Entry', 'java.lang.String']),\n  ('name and type',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [8]),\n   ['length4:()I']),\n  ('index zero is invalid',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 4],\n     ['Utf8', 'length4'],\n     ['Utf8', '()I'],\n     ['NameAndType', 6, 7],\n     ['Methodref', 5, 8],\n     ['Long', 1234567890127],\n     ['Integer', 44],\n     ['Double', 10.0],\n     ['String', 6],\n     ['Fieldref', 5, 8],\n     ['Methodref', 4, 8],\n     ['String', 12],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 19],\n     ['Integer', 28]],\n    [0]),\n   [['bad-ref', 0]])],\n [('regression: method reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [10]),\n   ['java.lang.String.length5:()I']),\n  ('entries after a Long keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [13, 12]),\n   [45, ['bad-ref', 12]]),\n  ('entries after a Double keep their index',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [16, 22]),\n   ['\"length5\"', 35]),\n  ('field reference',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [17]),\n   ['java.lang.String.length5:()I']),\n  ('method reference with non-Class owner',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [18]),\n   [['bad-ref', 5]]),\n  ('string constant pointing at an Integer',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [19]),\n   [['bad-ref', 13]]),\n  ('nested package class name',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [21, 6]),\n   ['java.util.Map$Entry', 'java.lang.String']),\n  ('name and type',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [9]),\n   ['length5:()I']),\n  ('index zero is invalid',\n   ([['Utf8', 'pad0'],\n     ['Utf8', 'pad1'],\n     ['Utf8', 'pad2'],\n     ['Utf8', 'pad3'],\n     ['Utf8', 'java/lang/String'],\n     ['Class', 5],\n     ['Utf8', 'length5'],\n     ['Utf8', '()I'],\n     ['NameAndType', 7, 8],\n     ['Methodref', 6, 9],\n     ['Long', 1234567890128],\n     ['Integer', 45],\n     ['Double', 12.5],\n     ['String', 7],\n     ['Fieldref', 6, 9],\n     ['Methodref', 5, 9],\n     ['String', 13],\n     ['Utf8', 'java/util/Map$Entry'],\n     ['Class', 20],\n     ['Integer', 35]],\n    [0]),\n   [['bad-ref', 0]])]]\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 bytecode virtual machine mechanism with a stipulated instruction encoding; it is not a production VM and claims no conformance to any real specification. 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-bytecode-virtual-machines-constant-pool-resolution-name-and-type-order","generated_at":"2026-09-29T14:51:22.926251+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Class loaders and interpreters must resolve symbolic references against the exact pool layout.","repair":"The first index is the name, the second the descriptor.","root_cause":"The two NameAndType indexes are read in the wrong order.","sha256":"9ac088aa1a5f0818f00d4b0350a41e5c7f611f23d730c4b20a5c5e7aa87da396","title":"Constant pool: NameAndType renders descriptor before name · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.949,"exit_code":1,"observations":[{"actual":["java.lang.String.length1()I"],"check":"regression: method reference","expected":["java.lang.String.length1:()I"],"passed":false},{"actual":[41,["bad-ref",8]],"check":"entries after a Long keep their index","expected":[41,["bad-ref",8]],"passed":true},{"actual":["\"length1\"",7],"check":"entries after a Double keep their index","expected":["\"length1\"",7],"passed":true},{"actual":["java.lang.String.length1()I"],"check":"field reference","expected":["java.lang.String.length1:()I"],"passed":false},{"actual":[["bad-ref",1]],"check":"method reference with non-Class owner","expected":[["bad-ref",1]],"passed":true},{"actual":[["bad-ref",9]],"check":"string constant pointing at an Integer","expected":[["bad-ref",9]],"passed":true},{"actual":["java.util.Map$Entry","java.lang.String"],"check":"nested package class name","expected":["java.util.Map$Entry","java.lang.String"],"passed":true},{"actual":["length1()I"],"check":"name and type","expected":["length1:()I"],"passed":false},{"actual":[["bad-ref",0]],"check":"index zero is invalid","expected":[["bad-ref",0]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: method reference\", \"actual\": [\"java.lang.String.length1()I\"], \"expected\": [\"java.lang.String.length1:()I\"], \"passed\": false}, {\"check\": \"entries after a Long keep their index\", \"actual\": [41, [\"bad-ref\", 8]], \"expected\": [41, [\"bad-ref\", 8]], \"passed\": true}, {\"check\": \"entries after a Double keep their index\", \"actual\": [\"\\\"length1\\\"\", 7], \"expected\": [\"\\\"length1\\\"\", 7], \"passed\": true}, {\"check\": \"field reference\", \"actual\": [\"java.lang.String.length1()I\"], \"expected\": [\"java.lang.String.length1:()I\"], \"passed\": false}, {\"check\": \"method reference with non-Class owner\", \"actual\": [[\"bad-ref\", 1]], \"expected\": [[\"bad-ref\", 1]], \"passed\": true}, {\"check\": \"string constant pointing at an Integer\", \"actual\": [[\"bad-ref\", 9]], \"expected\": [[\"bad-ref\", 9]], \"passed\": true}, {\"check\": \"nested package class name\", \"actual\": [\"java.util.Map$Entry\", \"java.lang.String\"], \"expected\": [\"java.util.Map$Entry\", \"java.lang.String\"], \"passed\": true}, {\"check\": \"name and type\", \"actual\": [\"length1()I\"], \"expected\": [\"length1:()I\"], \"passed\": false}, {\"check\": \"index zero is invalid\", \"actual\": [[\"bad-ref\", 0]], \"expected\": [[\"bad-ref\", 0]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.084,"exit_code":1,"observations":[{"actual":["java.lang.String.()I:length1"],"check":"regression: method reference","expected":["java.lang.String.length1:()I"],"passed":false},{"actual":[41,["bad-ref",8]],"check":"entries after a Long keep their index","expected":[41,["bad-ref",8]],"passed":true},{"actual":["\"length1\"",7],"check":"entries after a Double keep their index","expected":["\"length1\"",7],"passed":true},{"actual":["java.lang.String.()I:length1"],"check":"field reference","expected":["java.lang.String.length1:()I"],"passed":false},{"actual":[["bad-ref",1]],"check":"method reference with non-Class owner","expected":[["bad-ref",1]],"passed":true},{"actual":[["bad-ref",9]],"check":"string constant pointing at an Integer","expected":[["bad-ref",9]],"passed":true},{"actual":["java.util.Map$Entry","java.lang.String"],"check":"nested package class name","expected":["java.util.Map$Entry","java.lang.String"],"passed":true},{"actual":["()I:length1"],"check":"name and type","expected":["length1:()I"],"passed":false},{"actual":[["bad-ref",0]],"check":"index zero is invalid","expected":[["bad-ref",0]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: method reference\", \"actual\": [\"java.lang.String.()I:length1\"], \"expected\": [\"java.lang.String.length1:()I\"], \"passed\": false}, {\"check\": \"entries after a Long keep their index\", \"actual\": [41, [\"bad-ref\", 8]], \"expected\": [41, [\"bad-ref\", 8]], \"passed\": true}, {\"check\": \"entries after a Double keep their index\", \"actual\": [\"\\\"length1\\\"\", 7], \"expected\": [\"\\\"length1\\\"\", 7], \"passed\": true}, {\"check\": \"field reference\", \"actual\": [\"java.lang.String.()I:length1\"], \"expected\": [\"java.lang.String.length1:()I\"], \"passed\": false}, {\"check\": \"method reference with non-Class owner\", \"actual\": [[\"bad-ref\", 1]], \"expected\": [[\"bad-ref\", 1]], \"passed\": true}, {\"check\": \"string constant pointing at an Integer\", \"actual\": [[\"bad-ref\", 9]], \"expected\": [[\"bad-ref\", 9]], \"passed\": true}, {\"check\": \"nested package class name\", \"actual\": [\"java.util.Map$Entry\", \"java.lang.String\"], \"expected\": [\"java.util.Map$Entry\", \"java.lang.String\"], \"passed\": true}, {\"check\": \"name and type\", \"actual\": [\"()I:length1\"], \"expected\": [\"length1:()I\"], \"passed\": false}, {\"check\": \"index zero is invalid\", \"actual\": [[\"bad-ref\", 0]], \"expected\": [[\"bad-ref\", 0]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":47.234,"exit_code":0,"observations":[{"actual":["java.lang.String.length1:()I"],"check":"regression: method reference","expected":["java.lang.String.length1:()I"],"passed":true},{"actual":[41,["bad-ref",8]],"check":"entries after a Long keep their index","expected":[41,["bad-ref",8]],"passed":true},{"actual":["\"length1\"",7],"check":"entries after a Double keep their index","expected":["\"length1\"",7],"passed":true},{"actual":["java.lang.String.length1:()I"],"check":"field reference","expected":["java.lang.String.length1:()I"],"passed":true},{"actual":[["bad-ref",1]],"check":"method reference with non-Class owner","expected":[["bad-ref",1]],"passed":true},{"actual":[["bad-ref",9]],"check":"string constant pointing at an Integer","expected":[["bad-ref",9]],"passed":true},{"actual":["java.util.Map$Entry","java.lang.String"],"check":"nested package class name","expected":["java.util.Map$Entry","java.lang.String"],"passed":true},{"actual":["length1:()I"],"check":"name and type","expected":["length1:()I"],"passed":true},{"actual":[["bad-ref",0]],"check":"index zero is invalid","expected":[["bad-ref",0]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: method reference\", \"actual\": [\"java.lang.String.length1:()I\"], \"expected\": [\"java.lang.String.length1:()I\"], \"passed\": true}, {\"check\": \"entries after a Long keep their index\", \"actual\": [41, [\"bad-ref\", 8]], \"expected\": [41, [\"bad-ref\", 8]], \"passed\": true}, {\"check\": \"entries after a Double keep their index\", \"actual\": [\"\\\"length1\\\"\", 7], \"expected\": [\"\\\"length1\\\"\", 7], \"passed\": true}, {\"check\": \"field reference\", \"actual\": [\"java.lang.String.length1:()I\"], \"expected\": [\"java.lang.String.length1:()I\"], \"passed\": true}, {\"check\": \"method reference with non-Class owner\", \"actual\": [[\"bad-ref\", 1]], \"expected\": [[\"bad-ref\", 1]], \"passed\": true}, {\"check\": \"string constant pointing at an Integer\", \"actual\": [[\"bad-ref\", 9]], \"expected\": [[\"bad-ref\", 9]], \"passed\": true}, {\"check\": \"nested package class name\", \"actual\": [\"java.util.Map$Entry\", \"java.lang.String\"], \"expected\": [\"java.util.Map$Entry\", \"java.lang.String\"], \"passed\": true}, {\"check\": \"name and type\", \"actual\": [\"length1:()I\"], \"expected\": [\"length1:()I\"], \"passed\": true}, {\"check\": \"index zero is invalid\", \"actual\": [[\"bad-ref\", 0]], \"expected\": [[\"bad-ref\", 0]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}