{"abstract":"A swap timestamped exactly at kickoff moves a player whose game has started.","category":"Fantasy sports scoring","checks":7,"contract":"Apply lineup swaps [time, slot, incoming player] in time order (submission order on equal times). A swap is rejected if either the outgoing or incoming player's game has kicked off at or before the swap time, or if the incoming player already occupies another slot. Return the final lineup, the sorted indices of rejected swaps and the lineup's total points.","evaluation_group":"w2-fantasy-sports-scoring-kickoff-lineup-lock","failed_approach":"Fixing only the incoming check still lets a starter be benched at his kickoff instant.","family":"w2-fantasy-sports-scoring-kickoff-lineup-lock-kickoff-instant-lock","id":"FA-84961","implementations":{"attempt":{"sha256":"ebee2235b4fbe1e6b838c46dbb6a9c2b281c7c69391c245bb17a1266ef210126","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(lineup, swaps, kickoffs, points):\n    cur = dict(lineup)\n    rejected = []\n    order = sorted(range(len(swaps)), key=lambda i: (swaps[i][0], i))\n    for i in order:\n        t, slot, new = swaps[i]\n        old = cur[slot]\n        if kickoffs[old] < t or kickoffs[new] <= t:\n            rejected.append(i)\n            continue\n        if new in cur.values():\n            rejected.append(i)\n            continue\n        cur[slot] = new\n    total = sum(points[p] for p in cur.values())\n    return {'final': cur, 'rejected': sorted(rejected), 'total': total}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[300, 'S3', 'p3'], [250, 'S1', 'p3'], [300, 'S1', 'p6'], [150, 'S2', 'p5'], [100, 'S2', 'p1']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 100, 'p4': 100, 'p5': 100, 'p6': 300},\n    {'p0': 4, 'p1': 23, 'p2': 5, 'p3': 27, 'p4': 14, 'p5': 1, 'p6': 14}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 32}),\n  ('partial repair probe: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S1', 'p4'], [50, 'S1', 'p1'], [150, 'S2', 'p1'], [150, 'S1', 'p0'], [250, 'S2', 'p5']],\n    {'p0': 200, 'p1': 300, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 300, 'p6': 200},\n    {'p0': 13, 'p1': 20, 'p2': 4, 'p3': 9, 'p4': 6, 'p5': 30, 'p6': 4}],\n   {'final': {'S1': 'p0', 'S2': 'p5', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3], 'total': 47}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S3', 'p4']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 300, 'p4': 300, 'p5': 200, 'p6': 300},\n    {'p0': 15, 'p1': 17, 'p2': 25, 'p3': 10, 'p4': 3, 'p5': 23, 'p6': 24}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 57}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[150, 'S2', 'p6'], [50, 'S2', 'p0'], [250, 'S1', 'p5'], [100, 'S2', 'p3'], [150, 'S1', 'p5']],\n    {'p0': 300, 'p1': 300, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 200},\n    {'p0': 17, 'p1': 26, 'p2': 13, 'p3': 22, 'p4': 24, 'p5': 24, 'p6': 3}],\n   {'final': {'S1': 'p5', 'S2': 'p6', 'S3': 'p2'}, 'rejected': [1, 2], 'total': 40}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p6'], [300, 'S1', 'p1']],\n    {'p0': 300, 'p1': 200, 'p2': 200, 'p3': 100, 'p4': 200, 'p5': 200, 'p6': 300},\n    {'p0': 1, 'p1': 20, 'p2': 24, 'p3': 18, 'p4': 28, 'p5': 21, 'p6': 15}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 45}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[300, 'S2', 'p3'], [50, 'S3', 'p6'], [100, 'S1', 'p4'], [250, 'S1', 'p2']],\n    {'p0': 300, 'p1': 300, 'p2': 300, 'p3': 100, 'p4': 300, 'p5': 300, 'p6': 100},\n    {'p0': 27, 'p1': 6, 'p2': 28, 'p3': 2, 'p4': 13, 'p5': 22, 'p6': 29}],\n   {'final': {'S1': 'p2', 'S2': 'p1', 'S3': 'p6'}, 'rejected': [0], 'total': 63}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[150, 'S2', 'p6'], [150, 'S3', 'p1'], [200, 'S2', 'p2'], [200, 'S2', 'p5'], [200, 'S2', 'p1']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 300, 'p6': 300},\n    {'p0': 11, 'p1': 16, 'p2': 18, 'p3': 10, 'p4': 17, 'p5': 30, 'p6': 24}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 45})],\n [('regression: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[300, 'S3', 'p6'], [200, 'S3', 'p6']],\n    {'p0': 200, 'p1': 300, 'p2': 200, 'p3': 200, 'p4': 200, 'p5': 300, 'p6': 300},\n    {'p0': 11, 'p1': 12, 'p2': 4, 'p3': 3, 'p4': 16, 'p5': 17, 'p6': 25}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 27}),\n  ('partial repair probe: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[100, 'S1', 'p6'], [250, 'S3', 'p2'], [250, 'S3', 'p2'], [100, 'S2', 'p5'], [300, 'S2', 'p0']],\n    {'p0': 200, 'p1': 100, 'p2': 200, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 100},\n    {'p0': 5, 'p1': 5, 'p2': 1, 'p3': 16, 'p4': 28, 'p5': 11, 'p6': 4}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 11}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S2', 'p1'], [100, 'S1', 'p6'], [200, 'S1', 'p5']],\n    {'p0': 200, 'p1': 300, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 300, 'p6': 100},\n    {'p0': 30, 'p1': 29, 'p2': 28, 'p3': 25, 'p4': 16, 'p5': 5, 'p6': 23}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 87}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S2', 'p6'], [300, 'S3', 'p1'], [50, 'S3', 'p0'], [300, 'S3', 'p5'], [200, 'S2', 'p1']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 100},\n    {'p0': 7, 'p1': 30, 'p2': 18, 'p3': 14, 'p4': 1, 'p5': 19, 'p6': 29}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 55}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S2', 'p2'], [150, 'S3', 'p5'], [100, 'S1', 'p2'], [250, 'S2', 'p3'], [150, 'S1', 'p6']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 200, 'p4': 200, 'p5': 100, 'p6': 300},\n    {'p0': 30, 'p1': 12, 'p2': 11, 'p3': 4, 'p4': 18, 'p5': 7, 'p6': 12}],\n   {'final': {'S1': 'p6', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3], 'total': 35}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S1', 'p0']],\n    {'p0': 200, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 300, 'p6': 100},\n    {'p0': 17, 'p1': 15, 'p2': 21, 'p3': 8, 'p4': 28, 'p5': 19, 'p6': 15}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 53}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[50, 'S2', 'p3']],\n    {'p0': 100, 'p1': 300, 'p2': 100, 'p3': 100, 'p4': 200, 'p5': 100, 'p6': 200},\n    {'p0': 28, 'p1': 11, 'p2': 5, 'p3': 17, 'p4': 27, 'p5': 9, 'p6': 18}],\n   {'final': {'S1': 'p0', 'S2': 'p3', 'S3': 'p2'}, 'rejected': [], 'total': 50})],\n [('regression: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[50, 'S2', 'p3'], [100, 'S2', 'p4'], [250, 'S1', 'p6'], [200, 'S3', 'p0']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 100, 'p6': 200},\n    {'p0': 28, 'p1': 16, 'p2': 30, 'p3': 7, 'p4': 10, 'p5': 4, 'p6': 30}],\n   {'final': {'S1': 'p0', 'S2': 'p3', 'S3': 'p2'}, 'rejected': [1, 2, 3], 'total': 65}),\n  ('partial repair probe: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S3', 'p3'], [100, 'S3', 'p3']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 300},\n    {'p0': 21, 'p1': 11, 'p2': 6, 'p3': 20, 'p4': 0, 'p5': 5, 'p6': 29}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 38}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S3', 'p5'], [150, 'S3', 'p1'], [150, 'S2', 'p3']],\n    {'p0': 100, 'p1': 200, 'p2': 200, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 200},\n    {'p0': 9, 'p1': 1, 'p2': 8, 'p3': 25, 'p4': 27, 'p5': 20, 'p6': 16}],\n   {'final': {'S1': 'p0', 'S2': 'p3', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 42}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S3', 'p5'], [200, 'S3', 'p5']],\n    {'p0': 100, 'p1': 200, 'p2': 200, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 300},\n    {'p0': 4, 'p1': 15, 'p2': 14, 'p3': 1, 'p4': 12, 'p5': 13, 'p6': 0}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p5'}, 'rejected': [1], 'total': 32}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[300, 'S2', 'p3'], [300, 'S3', 'p4'], [150, 'S3', 'p5']],\n    {'p0': 100, 'p1': 200, 'p2': 300, 'p3': 300, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 7, 'p1': 21, 'p2': 26, 'p3': 13, 'p4': 18, 'p5': 11, 'p6': 30}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p5'}, 'rejected': [0, 1], 'total': 39}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[150, 'S3', 'p6'], [250, 'S3', 'p6']],\n    {'p0': 100, 'p1': 300, 'p2': 300, 'p3': 300, 'p4': 100, 'p5': 300, 'p6': 100},\n    {'p0': 8, 'p1': 21, 'p2': 0, 'p3': 23, 'p4': 27, 'p5': 6, 'p6': 25}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 29}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S3', 'p3'], [50, 'S2', 'p4'], [150, 'S1', 'p6'], [50, 'S2', 'p4'], [200, 'S2', 'p2']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 300},\n    {'p0': 9, 'p1': 23, 'p2': 1, 'p3': 6, 'p4': 23, 'p5': 4, 'p6': 3}],\n   {'final': {'S1': 'p6', 'S2': 'p4', 'S3': 'p2'}, 'rejected': [0, 3, 4], 'total': 27})],\n [('regression: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S3', 'p5']],\n    {'p0': 300, 'p1': 100, 'p2': 100, 'p3': 100, 'p4': 100, 'p5': 200, 'p6': 300},\n    {'p0': 24, 'p1': 0, 'p2': 19, 'p3': 24, 'p4': 24, 'p5': 10, 'p6': 8}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 43}),\n  ('partial repair probe: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S2', 'p1'], [50, 'S2', 'p3'], [50, 'S3', 'p5']],\n    {'p0': 100, 'p1': 200, 'p2': 300, 'p3': 100, 'p4': 300, 'p5': 300, 'p6': 200},\n    {'p0': 29, 'p1': 23, 'p2': 1, 'p3': 0, 'p4': 8, 'p5': 11, 'p6': 12}],\n   {'final': {'S1': 'p0', 'S2': 'p3', 'S3': 'p5'}, 'rejected': [0], 'total': 40}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S1', 'p5'], [300, 'S2', 'p6'], [100, 'S3', 'p2']],\n    {'p0': 300, 'p1': 300, 'p2': 200, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 200},\n    {'p0': 29, 'p1': 22, 'p2': 1, 'p3': 1, 'p4': 14, 'p5': 20, 'p6': 2}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 52}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S2', 'p2']],\n    {'p0': 200, 'p1': 100, 'p2': 100, 'p3': 300, 'p4': 300, 'p5': 100, 'p6': 300},\n    {'p0': 26, 'p1': 29, 'p2': 26, 'p3': 22, 'p4': 24, 'p5': 17, 'p6': 30}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 81}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[50, 'S2', 'p2'], [100, 'S2', 'p2']],\n    {'p0': 300, 'p1': 200, 'p2': 100, 'p3': 100, 'p4': 100, 'p5': 300, 'p6': 300},\n    {'p0': 11, 'p1': 7, 'p2': 23, 'p3': 21, 'p4': 18, 'p5': 27, 'p6': 3}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 41}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[150, 'S1', 'p2'], [200, 'S1', 'p0'], [150, 'S2', 'p5'], [200, 'S2', 'p6'], [300, 'S2', 'p4']],\n    {'p0': 300, 'p1': 100, 'p2': 200, 'p3': 100, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 19, 'p1': 30, 'p2': 17, 'p3': 11, 'p4': 4, 'p5': 4, 'p6': 9}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 66}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p6'], [250, 'S3', 'p1']],\n    {'p0': 200, 'p1': 200, 'p2': 200, 'p3': 200, 'p4': 200, 'p5': 300, 'p6': 200},\n    {'p0': 22, 'p1': 27, 'p2': 8, 'p3': 9, 'p4': 2, 'p5': 2, 'p6': 8}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 57})],\n [('regression: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[50, 'S2', 'p1'], [50, 'S3', 'p2'], [100, 'S1', 'p6']],\n    {'p0': 100, 'p1': 200, 'p2': 200, 'p3': 100, 'p4': 300, 'p5': 100, 'p6': 100},\n    {'p0': 30, 'p1': 8, 'p2': 30, 'p3': 21, 'p4': 8, 'p5': 23, 'p6': 7}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 68}),\n  ('partial repair probe: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[150, 'S2', 'p2'], [100, 'S2', 'p0'], [100, 'S1', 'p4']],\n    {'p0': 100, 'p1': 100, 'p2': 300, 'p3': 300, 'p4': 200, 'p5': 200, 'p6': 100},\n    {'p0': 23, 'p1': 24, 'p2': 14, 'p3': 15, 'p4': 9, 'p5': 13, 'p6': 15}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 61}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S2', 'p1'], [250, 'S3', 'p6'], [200, 'S1', 'p0'], [200, 'S1', 'p3'], [100, 'S3', 'p0']],\n    {'p0': 300, 'p1': 300, 'p2': 200, 'p3': 200, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 18, 'p1': 21, 'p2': 28, 'p3': 20, 'p4': 19, 'p5': 5, 'p6': 2}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 67}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[150, 'S1', 'p1'], [150, 'S2', 'p4'], [150, 'S3', 'p2'], [200, 'S2', 'p1'], [150, 'S3', 'p5']],\n    {'p0': 200, 'p1': 300, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 100, 'p6': 300},\n    {'p0': 28, 'p1': 10, 'p2': 17, 'p3': 6, 'p4': 15, 'p5': 5, 'p6': 26}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 55}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[150, 'S2', 'p4'], [300, 'S2', 'p2']],\n    {'p0': 100, 'p1': 200, 'p2': 100, 'p3': 100, 'p4': 100, 'p5': 100, 'p6': 200},\n    {'p0': 13, 'p1': 13, 'p2': 14, 'p3': 4, 'p4': 18, 'p5': 3, 'p6': 29}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 40}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S2', 'p4'], [300, 'S1', 'p5']],\n    {'p0': 200, 'p1': 100, 'p2': 200, 'p3': 300, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 6, 'p1': 27, 'p2': 26, 'p3': 14, 'p4': 4, 'p5': 24, 'p6': 3}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 59}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S3', 'p2'], [50, 'S1', 'p6']],\n    {'p0': 300, 'p1': 100, 'p2': 100, 'p3': 200, 'p4': 200, 'p5': 300, 'p6': 200},\n    {'p0': 12, 'p1': 29, 'p2': 1, 'p3': 4, 'p4': 21, 'p5': 5, 'p6': 3}],\n   {'final': {'S1': 'p6', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 33})]]\nfor label, args, expected in fixtures[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":"2c6d9e56333cdc79a3c8edad64f92e24e976aacc87d40827339959afbf771850","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(lineup, swaps, kickoffs, points):\n    cur = dict(lineup)\n    rejected = []\n    order = sorted(range(len(swaps)), key=lambda i: (swaps[i][0], i))\n    for i in order:\n        t, slot, new = swaps[i]\n        old = cur[slot]\n        if kickoffs[old] < t or kickoffs[new] < t:\n            rejected.append(i)\n            continue\n        if new in cur.values():\n            rejected.append(i)\n            continue\n        cur[slot] = new\n    total = sum(points[p] for p in cur.values())\n    return {'final': cur, 'rejected': sorted(rejected), 'total': total}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[300, 'S3', 'p3'], [250, 'S1', 'p3'], [300, 'S1', 'p6'], [150, 'S2', 'p5'], [100, 'S2', 'p1']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 100, 'p4': 100, 'p5': 100, 'p6': 300},\n    {'p0': 4, 'p1': 23, 'p2': 5, 'p3': 27, 'p4': 14, 'p5': 1, 'p6': 14}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 32}),\n  ('partial repair probe: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S1', 'p4'], [50, 'S1', 'p1'], [150, 'S2', 'p1'], [150, 'S1', 'p0'], [250, 'S2', 'p5']],\n    {'p0': 200, 'p1': 300, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 300, 'p6': 200},\n    {'p0': 13, 'p1': 20, 'p2': 4, 'p3': 9, 'p4': 6, 'p5': 30, 'p6': 4}],\n   {'final': {'S1': 'p0', 'S2': 'p5', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3], 'total': 47}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S3', 'p4']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 300, 'p4': 300, 'p5': 200, 'p6': 300},\n    {'p0': 15, 'p1': 17, 'p2': 25, 'p3': 10, 'p4': 3, 'p5': 23, 'p6': 24}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 57}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[150, 'S2', 'p6'], [50, 'S2', 'p0'], [250, 'S1', 'p5'], [100, 'S2', 'p3'], [150, 'S1', 'p5']],\n    {'p0': 300, 'p1': 300, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 200},\n    {'p0': 17, 'p1': 26, 'p2': 13, 'p3': 22, 'p4': 24, 'p5': 24, 'p6': 3}],\n   {'final': {'S1': 'p5', 'S2': 'p6', 'S3': 'p2'}, 'rejected': [1, 2], 'total': 40}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p6'], [300, 'S1', 'p1']],\n    {'p0': 300, 'p1': 200, 'p2': 200, 'p3': 100, 'p4': 200, 'p5': 200, 'p6': 300},\n    {'p0': 1, 'p1': 20, 'p2': 24, 'p3': 18, 'p4': 28, 'p5': 21, 'p6': 15}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 45}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[300, 'S2', 'p3'], [50, 'S3', 'p6'], [100, 'S1', 'p4'], [250, 'S1', 'p2']],\n    {'p0': 300, 'p1': 300, 'p2': 300, 'p3': 100, 'p4': 300, 'p5': 300, 'p6': 100},\n    {'p0': 27, 'p1': 6, 'p2': 28, 'p3': 2, 'p4': 13, 'p5': 22, 'p6': 29}],\n   {'final': {'S1': 'p2', 'S2': 'p1', 'S3': 'p6'}, 'rejected': [0], 'total': 63}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[150, 'S2', 'p6'], [150, 'S3', 'p1'], [200, 'S2', 'p2'], [200, 'S2', 'p5'], [200, 'S2', 'p1']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 300, 'p6': 300},\n    {'p0': 11, 'p1': 16, 'p2': 18, 'p3': 10, 'p4': 17, 'p5': 30, 'p6': 24}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 45})],\n [('regression: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[300, 'S3', 'p6'], [200, 'S3', 'p6']],\n    {'p0': 200, 'p1': 300, 'p2': 200, 'p3': 200, 'p4': 200, 'p5': 300, 'p6': 300},\n    {'p0': 11, 'p1': 12, 'p2': 4, 'p3': 3, 'p4': 16, 'p5': 17, 'p6': 25}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 27}),\n  ('partial repair probe: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[100, 'S1', 'p6'], [250, 'S3', 'p2'], [250, 'S3', 'p2'], [100, 'S2', 'p5'], [300, 'S2', 'p0']],\n    {'p0': 200, 'p1': 100, 'p2': 200, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 100},\n    {'p0': 5, 'p1': 5, 'p2': 1, 'p3': 16, 'p4': 28, 'p5': 11, 'p6': 4}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 11}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S2', 'p1'], [100, 'S1', 'p6'], [200, 'S1', 'p5']],\n    {'p0': 200, 'p1': 300, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 300, 'p6': 100},\n    {'p0': 30, 'p1': 29, 'p2': 28, 'p3': 25, 'p4': 16, 'p5': 5, 'p6': 23}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 87}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S2', 'p6'], [300, 'S3', 'p1'], [50, 'S3', 'p0'], [300, 'S3', 'p5'], [200, 'S2', 'p1']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 100},\n    {'p0': 7, 'p1': 30, 'p2': 18, 'p3': 14, 'p4': 1, 'p5': 19, 'p6': 29}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 55}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S2', 'p2'], [150, 'S3', 'p5'], [100, 'S1', 'p2'], [250, 'S2', 'p3'], [150, 'S1', 'p6']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 200, 'p4': 200, 'p5': 100, 'p6': 300},\n    {'p0': 30, 'p1': 12, 'p2': 11, 'p3': 4, 'p4': 18, 'p5': 7, 'p6': 12}],\n   {'final': {'S1': 'p6', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3], 'total': 35}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S1', 'p0']],\n    {'p0': 200, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 300, 'p6': 100},\n    {'p0': 17, 'p1': 15, 'p2': 21, 'p3': 8, 'p4': 28, 'p5': 19, 'p6': 15}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 53}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[50, 'S2', 'p3']],\n    {'p0': 100, 'p1': 300, 'p2': 100, 'p3': 100, 'p4': 200, 'p5': 100, 'p6': 200},\n    {'p0': 28, 'p1': 11, 'p2': 5, 'p3': 17, 'p4': 27, 'p5': 9, 'p6': 18}],\n   {'final': {'S1': 'p0', 'S2': 'p3', 'S3': 'p2'}, 'rejected': [], 'total': 50})],\n [('regression: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[50, 'S2', 'p3'], [100, 'S2', 'p4'], [250, 'S1', 'p6'], [200, 'S3', 'p0']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 100, 'p6': 200},\n    {'p0': 28, 'p1': 16, 'p2': 30, 'p3': 7, 'p4': 10, 'p5': 4, 'p6': 30}],\n   {'final': {'S1': 'p0', 'S2': 'p3', 'S3': 'p2'}, 'rejected': [1, 2, 3], 'total': 65}),\n  ('partial repair probe: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S3', 'p3'], [100, 'S3', 'p3']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 300},\n    {'p0': 21, 'p1': 11, 'p2': 6, 'p3': 20, 'p4': 0, 'p5': 5, 'p6': 29}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 38}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S3', 'p5'], [150, 'S3', 'p1'], [150, 'S2', 'p3']],\n    {'p0': 100, 'p1': 200, 'p2': 200, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 200},\n    {'p0': 9, 'p1': 1, 'p2': 8, 'p3': 25, 'p4': 27, 'p5': 20, 'p6': 16}],\n   {'final': {'S1': 'p0', 'S2': 'p3', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 42}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S3', 'p5'], [200, 'S3', 'p5']],\n    {'p0': 100, 'p1': 200, 'p2': 200, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 300},\n    {'p0': 4, 'p1': 15, 'p2': 14, 'p3': 1, 'p4': 12, 'p5': 13, 'p6': 0}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p5'}, 'rejected': [1], 'total': 32}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[300, 'S2', 'p3'], [300, 'S3', 'p4'], [150, 'S3', 'p5']],\n    {'p0': 100, 'p1': 200, 'p2': 300, 'p3': 300, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 7, 'p1': 21, 'p2': 26, 'p3': 13, 'p4': 18, 'p5': 11, 'p6': 30}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p5'}, 'rejected': [0, 1], 'total': 39}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[150, 'S3', 'p6'], [250, 'S3', 'p6']],\n    {'p0': 100, 'p1': 300, 'p2': 300, 'p3': 300, 'p4': 100, 'p5': 300, 'p6': 100},\n    {'p0': 8, 'p1': 21, 'p2': 0, 'p3': 23, 'p4': 27, 'p5': 6, 'p6': 25}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 29}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S3', 'p3'], [50, 'S2', 'p4'], [150, 'S1', 'p6'], [50, 'S2', 'p4'], [200, 'S2', 'p2']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 300},\n    {'p0': 9, 'p1': 23, 'p2': 1, 'p3': 6, 'p4': 23, 'p5': 4, 'p6': 3}],\n   {'final': {'S1': 'p6', 'S2': 'p4', 'S3': 'p2'}, 'rejected': [0, 3, 4], 'total': 27})],\n [('regression: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S3', 'p5']],\n    {'p0': 300, 'p1': 100, 'p2': 100, 'p3': 100, 'p4': 100, 'p5': 200, 'p6': 300},\n    {'p0': 24, 'p1': 0, 'p2': 19, 'p3': 24, 'p4': 24, 'p5': 10, 'p6': 8}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 43}),\n  ('partial repair probe: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S2', 'p1'], [50, 'S2', 'p3'], [50, 'S3', 'p5']],\n    {'p0': 100, 'p1': 200, 'p2': 300, 'p3': 100, 'p4': 300, 'p5': 300, 'p6': 200},\n    {'p0': 29, 'p1': 23, 'p2': 1, 'p3': 0, 'p4': 8, 'p5': 11, 'p6': 12}],\n   {'final': {'S1': 'p0', 'S2': 'p3', 'S3': 'p5'}, 'rejected': [0], 'total': 40}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S1', 'p5'], [300, 'S2', 'p6'], [100, 'S3', 'p2']],\n    {'p0': 300, 'p1': 300, 'p2': 200, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 200},\n    {'p0': 29, 'p1': 22, 'p2': 1, 'p3': 1, 'p4': 14, 'p5': 20, 'p6': 2}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 52}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S2', 'p2']],\n    {'p0': 200, 'p1': 100, 'p2': 100, 'p3': 300, 'p4': 300, 'p5': 100, 'p6': 300},\n    {'p0': 26, 'p1': 29, 'p2': 26, 'p3': 22, 'p4': 24, 'p5': 17, 'p6': 30}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 81}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[50, 'S2', 'p2'], [100, 'S2', 'p2']],\n    {'p0': 300, 'p1': 200, 'p2': 100, 'p3': 100, 'p4': 100, 'p5': 300, 'p6': 300},\n    {'p0': 11, 'p1': 7, 'p2': 23, 'p3': 21, 'p4': 18, 'p5': 27, 'p6': 3}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 41}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[150, 'S1', 'p2'], [200, 'S1', 'p0'], [150, 'S2', 'p5'], [200, 'S2', 'p6'], [300, 'S2', 'p4']],\n    {'p0': 300, 'p1': 100, 'p2': 200, 'p3': 100, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 19, 'p1': 30, 'p2': 17, 'p3': 11, 'p4': 4, 'p5': 4, 'p6': 9}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 66}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p6'], [250, 'S3', 'p1']],\n    {'p0': 200, 'p1': 200, 'p2': 200, 'p3': 200, 'p4': 200, 'p5': 300, 'p6': 200},\n    {'p0': 22, 'p1': 27, 'p2': 8, 'p3': 9, 'p4': 2, 'p5': 2, 'p6': 8}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 57})],\n [('regression: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[50, 'S2', 'p1'], [50, 'S3', 'p2'], [100, 'S1', 'p6']],\n    {'p0': 100, 'p1': 200, 'p2': 200, 'p3': 100, 'p4': 300, 'p5': 100, 'p6': 100},\n    {'p0': 30, 'p1': 8, 'p2': 30, 'p3': 21, 'p4': 8, 'p5': 23, 'p6': 7}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 68}),\n  ('partial repair probe: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[150, 'S2', 'p2'], [100, 'S2', 'p0'], [100, 'S1', 'p4']],\n    {'p0': 100, 'p1': 100, 'p2': 300, 'p3': 300, 'p4': 200, 'p5': 200, 'p6': 100},\n    {'p0': 23, 'p1': 24, 'p2': 14, 'p3': 15, 'p4': 9, 'p5': 13, 'p6': 15}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 61}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S2', 'p1'], [250, 'S3', 'p6'], [200, 'S1', 'p0'], [200, 'S1', 'p3'], [100, 'S3', 'p0']],\n    {'p0': 300, 'p1': 300, 'p2': 200, 'p3': 200, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 18, 'p1': 21, 'p2': 28, 'p3': 20, 'p4': 19, 'p5': 5, 'p6': 2}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 67}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[150, 'S1', 'p1'], [150, 'S2', 'p4'], [150, 'S3', 'p2'], [200, 'S2', 'p1'], [150, 'S3', 'p5']],\n    {'p0': 200, 'p1': 300, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 100, 'p6': 300},\n    {'p0': 28, 'p1': 10, 'p2': 17, 'p3': 6, 'p4': 15, 'p5': 5, 'p6': 26}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 55}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[150, 'S2', 'p4'], [300, 'S2', 'p2']],\n    {'p0': 100, 'p1': 200, 'p2': 100, 'p3': 100, 'p4': 100, 'p5': 100, 'p6': 200},\n    {'p0': 13, 'p1': 13, 'p2': 14, 'p3': 4, 'p4': 18, 'p5': 3, 'p6': 29}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 40}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S2', 'p4'], [300, 'S1', 'p5']],\n    {'p0': 200, 'p1': 100, 'p2': 200, 'p3': 300, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 6, 'p1': 27, 'p2': 26, 'p3': 14, 'p4': 4, 'p5': 24, 'p6': 3}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 59}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S3', 'p2'], [50, 'S1', 'p6']],\n    {'p0': 300, 'p1': 100, 'p2': 100, 'p3': 200, 'p4': 200, 'p5': 300, 'p6': 200},\n    {'p0': 12, 'p1': 29, 'p2': 1, 'p3': 4, 'p4': 21, 'p5': 5, 'p6': 3}],\n   {'final': {'S1': 'p6', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 33})]]\nfor label, args, expected in fixtures[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":"4b85b21789820c7fed29a433f2da82533877604b0cfce4c5946c92f33f1c0820","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(lineup, swaps, kickoffs, points):\n    cur = dict(lineup)\n    rejected = []\n    order = sorted(range(len(swaps)), key=lambda i: (swaps[i][0], i))\n    for i in order:\n        t, slot, new = swaps[i]\n        old = cur[slot]\n        if kickoffs[old] <= t or kickoffs[new] <= t:\n            rejected.append(i)\n            continue\n        if new in cur.values():\n            rejected.append(i)\n            continue\n        cur[slot] = new\n    total = sum(points[p] for p in cur.values())\n    return {'final': cur, 'rejected': sorted(rejected), 'total': total}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[300, 'S3', 'p3'], [250, 'S1', 'p3'], [300, 'S1', 'p6'], [150, 'S2', 'p5'], [100, 'S2', 'p1']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 100, 'p4': 100, 'p5': 100, 'p6': 300},\n    {'p0': 4, 'p1': 23, 'p2': 5, 'p3': 27, 'p4': 14, 'p5': 1, 'p6': 14}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 32}),\n  ('partial repair probe: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S1', 'p4'], [50, 'S1', 'p1'], [150, 'S2', 'p1'], [150, 'S1', 'p0'], [250, 'S2', 'p5']],\n    {'p0': 200, 'p1': 300, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 300, 'p6': 200},\n    {'p0': 13, 'p1': 20, 'p2': 4, 'p3': 9, 'p4': 6, 'p5': 30, 'p6': 4}],\n   {'final': {'S1': 'p0', 'S2': 'p5', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3], 'total': 47}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S3', 'p4']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 300, 'p4': 300, 'p5': 200, 'p6': 300},\n    {'p0': 15, 'p1': 17, 'p2': 25, 'p3': 10, 'p4': 3, 'p5': 23, 'p6': 24}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 57}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[150, 'S2', 'p6'], [50, 'S2', 'p0'], [250, 'S1', 'p5'], [100, 'S2', 'p3'], [150, 'S1', 'p5']],\n    {'p0': 300, 'p1': 300, 'p2': 300, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 200},\n    {'p0': 17, 'p1': 26, 'p2': 13, 'p3': 22, 'p4': 24, 'p5': 24, 'p6': 3}],\n   {'final': {'S1': 'p5', 'S2': 'p6', 'S3': 'p2'}, 'rejected': [1, 2], 'total': 40}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p6'], [300, 'S1', 'p1']],\n    {'p0': 300, 'p1': 200, 'p2': 200, 'p3': 100, 'p4': 200, 'p5': 200, 'p6': 300},\n    {'p0': 1, 'p1': 20, 'p2': 24, 'p3': 18, 'p4': 28, 'p5': 21, 'p6': 15}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 45}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[300, 'S2', 'p3'], [50, 'S3', 'p6'], [100, 'S1', 'p4'], [250, 'S1', 'p2']],\n    {'p0': 300, 'p1': 300, 'p2': 300, 'p3': 100, 'p4': 300, 'p5': 300, 'p6': 100},\n    {'p0': 27, 'p1': 6, 'p2': 28, 'p3': 2, 'p4': 13, 'p5': 22, 'p6': 29}],\n   {'final': {'S1': 'p2', 'S2': 'p1', 'S3': 'p6'}, 'rejected': [0], 'total': 63}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[150, 'S2', 'p6'], [150, 'S3', 'p1'], [200, 'S2', 'p2'], [200, 'S2', 'p5'], [200, 'S2', 'p1']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 300, 'p6': 300},\n    {'p0': 11, 'p1': 16, 'p2': 18, 'p3': 10, 'p4': 17, 'p5': 30, 'p6': 24}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 45})],\n [('regression: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[300, 'S3', 'p6'], [200, 'S3', 'p6']],\n    {'p0': 200, 'p1': 300, 'p2': 200, 'p3': 200, 'p4': 200, 'p5': 300, 'p6': 300},\n    {'p0': 11, 'p1': 12, 'p2': 4, 'p3': 3, 'p4': 16, 'p5': 17, 'p6': 25}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 27}),\n  ('partial repair probe: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[100, 'S1', 'p6'], [250, 'S3', 'p2'], [250, 'S3', 'p2'], [100, 'S2', 'p5'], [300, 'S2', 'p0']],\n    {'p0': 200, 'p1': 100, 'p2': 200, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 100},\n    {'p0': 5, 'p1': 5, 'p2': 1, 'p3': 16, 'p4': 28, 'p5': 11, 'p6': 4}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 11}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S2', 'p1'], [100, 'S1', 'p6'], [200, 'S1', 'p5']],\n    {'p0': 200, 'p1': 300, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 300, 'p6': 100},\n    {'p0': 30, 'p1': 29, 'p2': 28, 'p3': 25, 'p4': 16, 'p5': 5, 'p6': 23}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 87}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S2', 'p6'], [300, 'S3', 'p1'], [50, 'S3', 'p0'], [300, 'S3', 'p5'], [200, 'S2', 'p1']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 100},\n    {'p0': 7, 'p1': 30, 'p2': 18, 'p3': 14, 'p4': 1, 'p5': 19, 'p6': 29}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 55}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S2', 'p2'], [150, 'S3', 'p5'], [100, 'S1', 'p2'], [250, 'S2', 'p3'], [150, 'S1', 'p6']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 200, 'p4': 200, 'p5': 100, 'p6': 300},\n    {'p0': 30, 'p1': 12, 'p2': 11, 'p3': 4, 'p4': 18, 'p5': 7, 'p6': 12}],\n   {'final': {'S1': 'p6', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3], 'total': 35}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S1', 'p0']],\n    {'p0': 200, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 300, 'p6': 100},\n    {'p0': 17, 'p1': 15, 'p2': 21, 'p3': 8, 'p4': 28, 'p5': 19, 'p6': 15}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 53}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[50, 'S2', 'p3']],\n    {'p0': 100, 'p1': 300, 'p2': 100, 'p3': 100, 'p4': 200, 'p5': 100, 'p6': 200},\n    {'p0': 28, 'p1': 11, 'p2': 5, 'p3': 17, 'p4': 27, 'p5': 9, 'p6': 18}],\n   {'final': {'S1': 'p0', 'S2': 'p3', 'S3': 'p2'}, 'rejected': [], 'total': 50})],\n [('regression: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[50, 'S2', 'p3'], [100, 'S2', 'p4'], [250, 'S1', 'p6'], [200, 'S3', 'p0']],\n    {'p0': 300, 'p1': 100, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 100, 'p6': 200},\n    {'p0': 28, 'p1': 16, 'p2': 30, 'p3': 7, 'p4': 10, 'p5': 4, 'p6': 30}],\n   {'final': {'S1': 'p0', 'S2': 'p3', 'S3': 'p2'}, 'rejected': [1, 2, 3], 'total': 65}),\n  ('partial repair probe: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S3', 'p3'], [100, 'S3', 'p3']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 200, 'p4': 300, 'p5': 200, 'p6': 300},\n    {'p0': 21, 'p1': 11, 'p2': 6, 'p3': 20, 'p4': 0, 'p5': 5, 'p6': 29}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 38}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S3', 'p5'], [150, 'S3', 'p1'], [150, 'S2', 'p3']],\n    {'p0': 100, 'p1': 200, 'p2': 200, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 200},\n    {'p0': 9, 'p1': 1, 'p2': 8, 'p3': 25, 'p4': 27, 'p5': 20, 'p6': 16}],\n   {'final': {'S1': 'p0', 'S2': 'p3', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 42}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S3', 'p5'], [200, 'S3', 'p5']],\n    {'p0': 100, 'p1': 200, 'p2': 200, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 300},\n    {'p0': 4, 'p1': 15, 'p2': 14, 'p3': 1, 'p4': 12, 'p5': 13, 'p6': 0}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p5'}, 'rejected': [1], 'total': 32}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[300, 'S2', 'p3'], [300, 'S3', 'p4'], [150, 'S3', 'p5']],\n    {'p0': 100, 'p1': 200, 'p2': 300, 'p3': 300, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 7, 'p1': 21, 'p2': 26, 'p3': 13, 'p4': 18, 'p5': 11, 'p6': 30}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p5'}, 'rejected': [0, 1], 'total': 39}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[150, 'S3', 'p6'], [250, 'S3', 'p6']],\n    {'p0': 100, 'p1': 300, 'p2': 300, 'p3': 300, 'p4': 100, 'p5': 300, 'p6': 100},\n    {'p0': 8, 'p1': 21, 'p2': 0, 'p3': 23, 'p4': 27, 'p5': 6, 'p6': 25}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 29}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S3', 'p3'], [50, 'S2', 'p4'], [150, 'S1', 'p6'], [50, 'S2', 'p4'], [200, 'S2', 'p2']],\n    {'p0': 200, 'p1': 300, 'p2': 100, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 300},\n    {'p0': 9, 'p1': 23, 'p2': 1, 'p3': 6, 'p4': 23, 'p5': 4, 'p6': 3}],\n   {'final': {'S1': 'p6', 'S2': 'p4', 'S3': 'p2'}, 'rejected': [0, 3, 4], 'total': 27})],\n [('regression: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S3', 'p5']],\n    {'p0': 300, 'p1': 100, 'p2': 100, 'p3': 100, 'p4': 100, 'p5': 200, 'p6': 300},\n    {'p0': 24, 'p1': 0, 'p2': 19, 'p3': 24, 'p4': 24, 'p5': 10, 'p6': 8}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 43}),\n  ('partial repair probe: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[100, 'S2', 'p1'], [50, 'S2', 'p3'], [50, 'S3', 'p5']],\n    {'p0': 100, 'p1': 200, 'p2': 300, 'p3': 100, 'p4': 300, 'p5': 300, 'p6': 200},\n    {'p0': 29, 'p1': 23, 'p2': 1, 'p3': 0, 'p4': 8, 'p5': 11, 'p6': 12}],\n   {'final': {'S1': 'p0', 'S2': 'p3', 'S3': 'p5'}, 'rejected': [0], 'total': 40}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S1', 'p5'], [300, 'S2', 'p6'], [100, 'S3', 'p2']],\n    {'p0': 300, 'p1': 300, 'p2': 200, 'p3': 200, 'p4': 200, 'p5': 200, 'p6': 200},\n    {'p0': 29, 'p1': 22, 'p2': 1, 'p3': 1, 'p4': 14, 'p5': 20, 'p6': 2}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 52}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S2', 'p2']],\n    {'p0': 200, 'p1': 100, 'p2': 100, 'p3': 300, 'p4': 300, 'p5': 100, 'p6': 300},\n    {'p0': 26, 'p1': 29, 'p2': 26, 'p3': 22, 'p4': 24, 'p5': 17, 'p6': 30}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 81}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[50, 'S2', 'p2'], [100, 'S2', 'p2']],\n    {'p0': 300, 'p1': 200, 'p2': 100, 'p3': 100, 'p4': 100, 'p5': 300, 'p6': 300},\n    {'p0': 11, 'p1': 7, 'p2': 23, 'p3': 21, 'p4': 18, 'p5': 27, 'p6': 3}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 41}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[150, 'S1', 'p2'], [200, 'S1', 'p0'], [150, 'S2', 'p5'], [200, 'S2', 'p6'], [300, 'S2', 'p4']],\n    {'p0': 300, 'p1': 100, 'p2': 200, 'p3': 100, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 19, 'p1': 30, 'p2': 17, 'p3': 11, 'p4': 4, 'p5': 4, 'p6': 9}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 66}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[250, 'S3', 'p6'], [250, 'S3', 'p1']],\n    {'p0': 200, 'p1': 200, 'p2': 200, 'p3': 200, 'p4': 200, 'p5': 300, 'p6': 200},\n    {'p0': 22, 'p1': 27, 'p2': 8, 'p3': 9, 'p4': 2, 'p5': 2, 'p6': 8}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 57})],\n [('regression: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[50, 'S2', 'p1'], [50, 'S3', 'p2'], [100, 'S1', 'p6']],\n    {'p0': 100, 'p1': 200, 'p2': 200, 'p3': 100, 'p4': 300, 'p5': 100, 'p6': 100},\n    {'p0': 30, 'p1': 8, 'p2': 30, 'p3': 21, 'p4': 8, 'p5': 23, 'p6': 7}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 68}),\n  ('partial repair probe: kickoff instant lock',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[150, 'S2', 'p2'], [100, 'S2', 'p0'], [100, 'S1', 'p4']],\n    {'p0': 100, 'p1': 100, 'p2': 300, 'p3': 300, 'p4': 200, 'p5': 200, 'p6': 100},\n    {'p0': 23, 'p1': 24, 'p2': 14, 'p3': 15, 'p4': 9, 'p5': 13, 'p6': 15}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2], 'total': 61}),\n  ('second regression',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[200, 'S2', 'p1'], [250, 'S3', 'p6'], [200, 'S1', 'p0'], [200, 'S1', 'p3'], [100, 'S3', 'p0']],\n    {'p0': 300, 'p1': 300, 'p2': 200, 'p3': 200, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 18, 'p1': 21, 'p2': 28, 'p3': 20, 'p4': 19, 'p5': 5, 'p6': 2}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 67}),\n  ('normal control 1',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'},\n    [[150, 'S1', 'p1'], [150, 'S2', 'p4'], [150, 'S3', 'p2'], [200, 'S2', 'p1'], [150, 'S3', 'p5']],\n    {'p0': 200, 'p1': 300, 'p2': 300, 'p3': 200, 'p4': 100, 'p5': 100, 'p6': 300},\n    {'p0': 28, 'p1': 10, 'p2': 17, 'p3': 6, 'p4': 15, 'p5': 5, 'p6': 26}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1, 2, 3, 4], 'total': 55}),\n  ('normal control 2',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[150, 'S2', 'p4'], [300, 'S2', 'p2']],\n    {'p0': 100, 'p1': 200, 'p2': 100, 'p3': 100, 'p4': 100, 'p5': 100, 'p6': 200},\n    {'p0': 13, 'p1': 13, 'p2': 14, 'p3': 4, 'p4': 18, 'p5': 3, 'p6': 29}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 40}),\n  ('normal control 3',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S2', 'p4'], [300, 'S1', 'p5']],\n    {'p0': 200, 'p1': 100, 'p2': 200, 'p3': 300, 'p4': 100, 'p5': 200, 'p6': 100},\n    {'p0': 6, 'p1': 27, 'p2': 26, 'p3': 14, 'p4': 4, 'p5': 24, 'p6': 3}],\n   {'final': {'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0, 1], 'total': 59}),\n  ('normal control 4',\n   [{'S1': 'p0', 'S2': 'p1', 'S3': 'p2'}, [[200, 'S3', 'p2'], [50, 'S1', 'p6']],\n    {'p0': 300, 'p1': 100, 'p2': 100, 'p3': 200, 'p4': 200, 'p5': 300, 'p6': 200},\n    {'p0': 12, 'p1': 29, 'p2': 1, 'p3': 4, 'p4': 21, 'p5': 5, 'p6': 3}],\n   {'final': {'S1': 'p6', 'S2': 'p1', 'S3': 'p2'}, 'rejected': [0], 'total': 33})]]\nfor label, args, expected in fixtures[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 toy scoring contract stipulated for this example; it is not the rulebook of any real fantasy platform. 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-fantasy-sports-scoring-kickoff-lineup-lock-kickoff-instant-lock","generated_at":"2026-09-29T14:50:35.962288+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Game-time lineup locks decide whether late swaps count; wrong lock semantics let users bench players after they score.","repair":"Treat a player as locked when kickoff <= swap time.","root_cause":"Lock checks use strict less-than, treating the kickoff instant as still open.","sha256":"eaa584f57734a296279974f53b891832ce0871a2ecabb0de3b7cbb6389788883","title":"Swap submitted at kickoff second accepted · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.372,"exit_code":1,"observations":[{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1,2,3,4],"total":32},"check":"regression: kickoff instant lock","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1,2,3,4],"total":32},"passed":true},{"actual":{"final":{"S1":"p4","S2":"p5","S3":"p2"},"rejected":[1,2,3],"total":40},"check":"partial repair probe: kickoff instant lock","expected":{"final":{"S1":"p0","S2":"p5","S3":"p2"},"rejected":[0,1,2,3],"total":47},"passed":false},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p4"},"rejected":[],"total":35},"check":"second regression","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0],"total":57},"passed":false},{"actual":{"final":{"S1":"p5","S2":"p6","S3":"p2"},"rejected":[1,2],"total":40},"check":"normal control 1","expected":{"final":{"S1":"p5","S2":"p6","S3":"p2"},"rejected":[1,2],"total":40},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":45},"check":"normal control 2","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":45},"passed":true},{"actual":{"final":{"S1":"p2","S2":"p1","S3":"p6"},"rejected":[0],"total":63},"check":"normal control 3","expected":{"final":{"S1":"p2","S2":"p1","S3":"p6"},"rejected":[0],"total":63},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1,2,3,4],"total":45},"check":"normal control 4","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1,2,3,4],"total":45},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: kickoff instant lock\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3, 4], \"total\": 32}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3, 4], \"total\": 32}, \"passed\": true}, {\"check\": \"partial repair probe: kickoff instant lock\", \"actual\": {\"final\": {\"S1\": \"p4\", \"S2\": \"p5\", \"S3\": \"p2\"}, \"rejected\": [1, 2, 3], \"total\": 40}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p5\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3], \"total\": 47}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p4\"}, \"rejected\": [], \"total\": 35}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0], \"total\": 57}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"final\": {\"S1\": \"p5\", \"S2\": \"p6\", \"S3\": \"p2\"}, \"rejected\": [1, 2], \"total\": 40}, \"expected\": {\"final\": {\"S1\": \"p5\", \"S2\": \"p6\", \"S3\": \"p2\"}, \"rejected\": [1, 2], \"total\": 40}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 45}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 45}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"final\": {\"S1\": \"p2\", \"S2\": \"p1\", \"S3\": \"p6\"}, \"rejected\": [0], \"total\": 63}, \"expected\": {\"final\": {\"S1\": \"p2\", \"S2\": \"p1\", \"S3\": \"p6\"}, \"rejected\": [0], \"total\": 63}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3, 4], \"total\": 45}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3, 4], \"total\": 45}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.1,"exit_code":1,"observations":[{"actual":{"final":{"S1":"p6","S2":"p1","S3":"p2"},"rejected":[0,1,3,4],"total":42},"check":"regression: kickoff instant lock","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1,2,3,4],"total":32},"passed":false},{"actual":{"final":{"S1":"p4","S2":"p5","S3":"p2"},"rejected":[1,2,3],"total":40},"check":"partial repair probe: kickoff instant lock","expected":{"final":{"S1":"p0","S2":"p5","S3":"p2"},"rejected":[0,1,2,3],"total":47},"passed":false},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p4"},"rejected":[],"total":35},"check":"second regression","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0],"total":57},"passed":false},{"actual":{"final":{"S1":"p5","S2":"p6","S3":"p2"},"rejected":[1,2],"total":40},"check":"normal control 1","expected":{"final":{"S1":"p5","S2":"p6","S3":"p2"},"rejected":[1,2],"total":40},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":45},"check":"normal control 2","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":45},"passed":true},{"actual":{"final":{"S1":"p2","S2":"p1","S3":"p6"},"rejected":[0],"total":63},"check":"normal control 3","expected":{"final":{"S1":"p2","S2":"p1","S3":"p6"},"rejected":[0],"total":63},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1,2,3,4],"total":45},"check":"normal control 4","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1,2,3,4],"total":45},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: kickoff instant lock\", \"actual\": {\"final\": {\"S1\": \"p6\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 3, 4], \"total\": 42}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3, 4], \"total\": 32}, \"passed\": false}, {\"check\": \"partial repair probe: kickoff instant lock\", \"actual\": {\"final\": {\"S1\": \"p4\", \"S2\": \"p5\", \"S3\": \"p2\"}, \"rejected\": [1, 2, 3], \"total\": 40}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p5\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3], \"total\": 47}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p4\"}, \"rejected\": [], \"total\": 35}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0], \"total\": 57}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"final\": {\"S1\": \"p5\", \"S2\": \"p6\", \"S3\": \"p2\"}, \"rejected\": [1, 2], \"total\": 40}, \"expected\": {\"final\": {\"S1\": \"p5\", \"S2\": \"p6\", \"S3\": \"p2\"}, \"rejected\": [1, 2], \"total\": 40}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 45}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 45}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"final\": {\"S1\": \"p2\", \"S2\": \"p1\", \"S3\": \"p6\"}, \"rejected\": [0], \"total\": 63}, \"expected\": {\"final\": {\"S1\": \"p2\", \"S2\": \"p1\", \"S3\": \"p6\"}, \"rejected\": [0], \"total\": 63}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3, 4], \"total\": 45}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3, 4], \"total\": 45}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.222,"exit_code":0,"observations":[{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1,2,3,4],"total":32},"check":"regression: kickoff instant lock","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1,2,3,4],"total":32},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p5","S3":"p2"},"rejected":[0,1,2,3],"total":47},"check":"partial repair probe: kickoff instant lock","expected":{"final":{"S1":"p0","S2":"p5","S3":"p2"},"rejected":[0,1,2,3],"total":47},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0],"total":57},"check":"second regression","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0],"total":57},"passed":true},{"actual":{"final":{"S1":"p5","S2":"p6","S3":"p2"},"rejected":[1,2],"total":40},"check":"normal control 1","expected":{"final":{"S1":"p5","S2":"p6","S3":"p2"},"rejected":[1,2],"total":40},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":45},"check":"normal control 2","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1],"total":45},"passed":true},{"actual":{"final":{"S1":"p2","S2":"p1","S3":"p6"},"rejected":[0],"total":63},"check":"normal control 3","expected":{"final":{"S1":"p2","S2":"p1","S3":"p6"},"rejected":[0],"total":63},"passed":true},{"actual":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1,2,3,4],"total":45},"check":"normal control 4","expected":{"final":{"S1":"p0","S2":"p1","S3":"p2"},"rejected":[0,1,2,3,4],"total":45},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: kickoff instant lock\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3, 4], \"total\": 32}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3, 4], \"total\": 32}, \"passed\": true}, {\"check\": \"partial repair probe: kickoff instant lock\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p5\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3], \"total\": 47}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p5\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3], \"total\": 47}, \"passed\": true}, {\"check\": \"second regression\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0], \"total\": 57}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0], \"total\": 57}, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": {\"final\": {\"S1\": \"p5\", \"S2\": \"p6\", \"S3\": \"p2\"}, \"rejected\": [1, 2], \"total\": 40}, \"expected\": {\"final\": {\"S1\": \"p5\", \"S2\": \"p6\", \"S3\": \"p2\"}, \"rejected\": [1, 2], \"total\": 40}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 45}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1], \"total\": 45}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"final\": {\"S1\": \"p2\", \"S2\": \"p1\", \"S3\": \"p6\"}, \"rejected\": [0], \"total\": 63}, \"expected\": {\"final\": {\"S1\": \"p2\", \"S2\": \"p1\", \"S3\": \"p6\"}, \"rejected\": [0], \"total\": 63}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3, 4], \"total\": 45}, \"expected\": {\"final\": {\"S1\": \"p0\", \"S2\": \"p1\", \"S3\": \"p2\"}, \"rejected\": [0, 1, 2, 3, 4], \"total\": 45}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}