{"abstract":"Multipart boundary parameter parsing: a mixed multipart body is not accepted as a byte range body.","category":"HTTP ranges","checks":18,"contract":"Parse a bounded Content-Type string with semicolon-separated parameters, quoted strings and backslash escapes inside quotes. Require multipart/byteranges (case-insensitive) and exactly one boundary parameter, with 1..12 ASCII printable characters excluding CR/LF. Other parameters ignored. Unbalanced quotes or dangling quoted escapes reject. Input x is the field string.","evaluation_group":"s3-http_ranges-multipart-boundary-parameter","failed_approach":"The partial repair uses parts=[]\ncurrent=''\nquoted=False\nescaped=False\nfor c in x:\n    if escaped:\n        current+=c\n        escaped=False\n    elif quoted and c=='\\\\':\n        escaped=True\n    elif c=='\"':\n        quoted=not quoted\n    elif c==';' and not quoted:\n        parts.append(current)\n        current=''\n    else:\n        current+=c\nif quoted or escaped: return None\nparts.append(current)\nif parts[0].strip().lower() not in ('multipart/byteranges','multipart/mixed'): return None\nboundaries=[]\nfor part in parts[1:]:\n    if '=' not in part: continue\n    key,value=part.split('=',1)\n    if key.strip().lower()=='boundary': boundaries.append(value.strip())\nif len(boundaries)!=1: return None\nvalue=boundaries[0]\nif not 1<=len(value)<=12: return None\nif any(ord(c)<32 or ord(c)>126 for c in value): return None\nreturn value, which still violates the stated contract.","family":"s3-http_ranges-multipart-boundary-parameter-media-type","id":"FA-26871","implementations":{"attempt":{"sha256":"9da734732d4f9a8853ac2376d9953d366294f98f6818265d2b02d4b22220fc93","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    parts=[]\n    current=''\n    quoted=False\n    escaped=False\n    for c in x:\n        if escaped:\n            current+=c\n            escaped=False\n        elif quoted and c=='\\\\':\n            escaped=True\n        elif c=='\"':\n            quoted=not quoted\n        elif c==';' and not quoted:\n            parts.append(current)\n            current=''\n        else:\n            current+=c\n    if quoted or escaped: return None\n    parts.append(current)\n    if parts[0].strip().lower() not in ('multipart/byteranges','multipart/mixed'): return None\n    boundaries=[]\n    for part in parts[1:]:\n        if '=' not in part: continue\n        key,value=part.split('=',1)\n        if key.strip().lower()=='boundary': boundaries.append(value.strip())\n    if len(boundaries)!=1: return None\n    value=boundaries[0]\n    if not 1<=len(value)<=12: return None\n    if any(ord(c)<32 or ord(c)>126 for c in value): return None\n    return value\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('media-type fixture 0', json.loads(json.dumps(solve('multipart/byteranges; boundary=\"a;b\"'))), json.loads(json.dumps('a;b')))\ncheck('media-type fixture 1', json.loads(json.dumps(solve('multipart/byteranges; boundary=\"a\\\\\"b\"'))), json.loads(json.dumps('a\"b')))\ncheck('media-type fixture 2', json.loads(json.dumps(solve('multipart/byteranges; boundary=\"a\\\\\\\\b\"'))), json.loads(json.dumps('a\\\\b')))\ncheck('media-type fixture 3', json.loads(json.dumps(solve('multipart/byteranges; boundary=\"abc'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 4', json.loads(json.dumps(solve(' Multipart/ByteRanges ; BOUNDARY = abc '))), json.loads(json.dumps('abc')))\ncheck('media-type fixture 5', json.loads(json.dumps(solve('multipart/byteranges; boundary=a; boundary=a'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 6', json.loads(json.dumps(solve('multipart/byteranges; boundary=a; boundary=b'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 7', json.loads(json.dumps(solve('multipart/mixed; boundary=a'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 8', json.loads(json.dumps(solve('multipart/byteranges; boundary='))), json.loads(json.dumps(None)))\ncheck('media-type fixture 9', json.loads(json.dumps(solve('multipart/byteranges; boundary=abcdefghijkl'))), json.loads(json.dumps('abcdefghijkl')))\ncheck('media-type fixture 10', json.loads(json.dumps(solve('multipart/byteranges; boundary=abcdefghijklm'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 11', json.loads(json.dumps(solve('multipart/byteranges; boundary=a\\nb'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 12', json.loads(json.dumps(solve('multipart/byteranges; boundary=a\\x7fb'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 13', json.loads(json.dumps(solve('multipart/byteranges; x=y'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 14', json.loads(json.dumps(solve(\"p\"*N))), json.loads(json.dumps(None)))\ncheck('media-type fixture 15', json.loads(json.dumps(solve(\"multipart/byteranges; boundary=b\"+str(N)))), json.loads(json.dumps(\"b\"+str(N))))\ncheck('media-type fixture 16', json.loads(json.dumps(solve('multipart/byteranges; boundary=\"abc\"'))), json.loads(json.dumps('abc')))\ncheck('media-type fixture 17', json.loads(json.dumps(solve('multipart/byteranges; x=a=b; boundary=ab'))), json.loads(json.dumps('ab')))\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":"41b3088116fa07e3fe4bed0f126307f8ac28d010c1a20a32c99a59cd62c9b739","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    parts=[]\n    current=''\n    quoted=False\n    escaped=False\n    for c in x:\n        if escaped:\n            current+=c\n            escaped=False\n        elif quoted and c=='\\\\':\n            escaped=True\n        elif c=='\"':\n            quoted=not quoted\n        elif c==';' and not quoted:\n            parts.append(current)\n            current=''\n        else:\n            current+=c\n    if quoted or escaped: return None\n    parts.append(current)\n    if not parts[0].strip().lower().startswith('multipart/'): return None\n    boundaries=[]\n    for part in parts[1:]:\n        if '=' not in part: continue\n        key,value=part.split('=',1)\n        if key.strip().lower()=='boundary': boundaries.append(value.strip())\n    if len(boundaries)!=1: return None\n    value=boundaries[0]\n    if not 1<=len(value)<=12: return None\n    if any(ord(c)<32 or ord(c)>126 for c in value): return None\n    return value\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('media-type fixture 0', json.loads(json.dumps(solve('multipart/byteranges; boundary=\"a;b\"'))), json.loads(json.dumps('a;b')))\ncheck('media-type fixture 1', json.loads(json.dumps(solve('multipart/byteranges; boundary=\"a\\\\\"b\"'))), json.loads(json.dumps('a\"b')))\ncheck('media-type fixture 2', json.loads(json.dumps(solve('multipart/byteranges; boundary=\"a\\\\\\\\b\"'))), json.loads(json.dumps('a\\\\b')))\ncheck('media-type fixture 3', json.loads(json.dumps(solve('multipart/byteranges; boundary=\"abc'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 4', json.loads(json.dumps(solve(' Multipart/ByteRanges ; BOUNDARY = abc '))), json.loads(json.dumps('abc')))\ncheck('media-type fixture 5', json.loads(json.dumps(solve('multipart/byteranges; boundary=a; boundary=a'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 6', json.loads(json.dumps(solve('multipart/byteranges; boundary=a; boundary=b'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 7', json.loads(json.dumps(solve('multipart/mixed; boundary=a'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 8', json.loads(json.dumps(solve('multipart/byteranges; boundary='))), json.loads(json.dumps(None)))\ncheck('media-type fixture 9', json.loads(json.dumps(solve('multipart/byteranges; boundary=abcdefghijkl'))), json.loads(json.dumps('abcdefghijkl')))\ncheck('media-type fixture 10', json.loads(json.dumps(solve('multipart/byteranges; boundary=abcdefghijklm'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 11', json.loads(json.dumps(solve('multipart/byteranges; boundary=a\\nb'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 12', json.loads(json.dumps(solve('multipart/byteranges; boundary=a\\x7fb'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 13', json.loads(json.dumps(solve('multipart/byteranges; x=y'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 14', json.loads(json.dumps(solve(\"p\"*N))), json.loads(json.dumps(None)))\ncheck('media-type fixture 15', json.loads(json.dumps(solve(\"multipart/byteranges; boundary=b\"+str(N)))), json.loads(json.dumps(\"b\"+str(N))))\ncheck('media-type fixture 16', json.loads(json.dumps(solve('multipart/byteranges; boundary=\"abc\"'))), json.loads(json.dumps('abc')))\ncheck('media-type fixture 17', json.loads(json.dumps(solve('multipart/byteranges; x=a=b; boundary=ab'))), json.loads(json.dumps('ab')))\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":"8d522ef5b7540eca6a62235a996e2f2d3bb099b98fd63554904f0838f8b64f79","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    parts=[]\n    current=''\n    quoted=False\n    escaped=False\n    for c in x:\n        if escaped:\n            current+=c\n            escaped=False\n        elif quoted and c=='\\\\':\n            escaped=True\n        elif c=='\"':\n            quoted=not quoted\n        elif c==';' and not quoted:\n            parts.append(current)\n            current=''\n        else:\n            current+=c\n    if quoted or escaped: return None\n    parts.append(current)\n    if parts[0].strip().lower()!='multipart/byteranges': return None\n    boundaries=[]\n    for part in parts[1:]:\n        if '=' not in part: continue\n        key,value=part.split('=',1)\n        if key.strip().lower()=='boundary': boundaries.append(value.strip())\n    if len(boundaries)!=1: return None\n    value=boundaries[0]\n    if not 1<=len(value)<=12: return None\n    if any(ord(c)<32 or ord(c)>126 for c in value): return None\n    return value\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('media-type fixture 0', json.loads(json.dumps(solve('multipart/byteranges; boundary=\"a;b\"'))), json.loads(json.dumps('a;b')))\ncheck('media-type fixture 1', json.loads(json.dumps(solve('multipart/byteranges; boundary=\"a\\\\\"b\"'))), json.loads(json.dumps('a\"b')))\ncheck('media-type fixture 2', json.loads(json.dumps(solve('multipart/byteranges; boundary=\"a\\\\\\\\b\"'))), json.loads(json.dumps('a\\\\b')))\ncheck('media-type fixture 3', json.loads(json.dumps(solve('multipart/byteranges; boundary=\"abc'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 4', json.loads(json.dumps(solve(' Multipart/ByteRanges ; BOUNDARY = abc '))), json.loads(json.dumps('abc')))\ncheck('media-type fixture 5', json.loads(json.dumps(solve('multipart/byteranges; boundary=a; boundary=a'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 6', json.loads(json.dumps(solve('multipart/byteranges; boundary=a; boundary=b'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 7', json.loads(json.dumps(solve('multipart/mixed; boundary=a'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 8', json.loads(json.dumps(solve('multipart/byteranges; boundary='))), json.loads(json.dumps(None)))\ncheck('media-type fixture 9', json.loads(json.dumps(solve('multipart/byteranges; boundary=abcdefghijkl'))), json.loads(json.dumps('abcdefghijkl')))\ncheck('media-type fixture 10', json.loads(json.dumps(solve('multipart/byteranges; boundary=abcdefghijklm'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 11', json.loads(json.dumps(solve('multipart/byteranges; boundary=a\\nb'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 12', json.loads(json.dumps(solve('multipart/byteranges; boundary=a\\x7fb'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 13', json.loads(json.dumps(solve('multipart/byteranges; x=y'))), json.loads(json.dumps(None)))\ncheck('media-type fixture 14', json.loads(json.dumps(solve(\"p\"*N))), json.loads(json.dumps(None)))\ncheck('media-type fixture 15', json.loads(json.dumps(solve(\"multipart/byteranges; boundary=b\"+str(N)))), json.loads(json.dumps(\"b\"+str(N))))\ncheck('media-type fixture 16', json.loads(json.dumps(solve('multipart/byteranges; boundary=\"abc\"'))), json.loads(json.dumps('abc')))\ncheck('media-type fixture 17', json.loads(json.dumps(solve('multipart/byteranges; x=a=b; boundary=ab'))), json.loads(json.dumps('ab')))\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":"Deterministic simplified range service, with stipulated local policies and already parsed trusted inputs; not a complete HTTP implementation. 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":"s3-http_ranges-multipart-boundary-parameter-media-type","generated_at":"2026-09-29T14:41:19.935216+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Range responses combine representation identity, conditional requests, framing, and partial-object state.","repair":"Apply the bounded decision exactly: parts=[]\ncurrent=''\nquoted=False\nescaped=False\nfor c in x:\n    if escaped:\n        current+=c\n        escaped=False\n    elif quoted and c=='\\\\':\n        escaped=True\n    elif c=='\"':\n        quoted=not quoted\n    elif c==';' and not quoted:\n        parts.append(current)\n        current=''\n    else:\n        current+=c\nif quoted or escaped: return None\nparts.append(current)\nif parts[0].strip().lower()!='multipart/byteranges': return None\nboundaries=[]\nfor part in parts[1:]:\n    if '=' not in part: continue\n    key,value=part.split('=',1)\n    if key.strip().lower()=='boundary': boundaries.append(value.strip())\nif len(boundaries)!=1: return None\nvalue=boundaries[0]\nif not 1<=len(value)<=12: return None\nif any(ord(c)<32 or ord(c)>126 for c in value): return None\nreturn value","root_cause":"The multipart-boundary-parameter-media-type decision uses parts=[]\ncurrent=''\nquoted=False\nescaped=False\nfor c in x:\n    if escaped:\n        current+=c\n        escaped=False\n    elif quoted and c=='\\\\':\n        escaped=True\n    elif c=='\"':\n        quoted=not quoted\n    elif c==';' and not quoted:\n        parts.append(current)\n        current=''\n    else:\n        current+=c\nif quoted or escaped: return None\nparts.append(current)\nif not parts[0].strip().lower().startswith('multipart/'): return None\nboundaries=[]\nfor part in parts[1:]:\n    if '=' not in part: continue\n    key,value=part.split('=',1)\n    if key.strip().lower()=='boundary': boundaries.append(value.strip())\nif len(boundaries)!=1: return None\nvalue=boundaries[0]\nif not 1<=len(value)<=12: return None\nif any(ord(c)<32 or ord(c)>126 for c in value): return None\nreturn value.","sha256":"1715bb1fbb640b99bfab7a0c52557cb1d138a7bd24d9176bbeadb73edc13d814","title":"Multipart boundary parameter parsing: a mixed multipart body is not accepted as a byte range body · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.995,"exit_code":1,"observations":[{"actual":"a;b","check":"media-type fixture 0","expected":"a;b","passed":true},{"actual":"a\"b","check":"media-type fixture 1","expected":"a\"b","passed":true},{"actual":"a\\b","check":"media-type fixture 2","expected":"a\\b","passed":true},{"actual":null,"check":"media-type fixture 3","expected":null,"passed":true},{"actual":"abc","check":"media-type fixture 4","expected":"abc","passed":true},{"actual":null,"check":"media-type fixture 5","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 6","expected":null,"passed":true},{"actual":"a","check":"media-type fixture 7","expected":null,"passed":false},{"actual":null,"check":"media-type fixture 8","expected":null,"passed":true},{"actual":"abcdefghijkl","check":"media-type fixture 9","expected":"abcdefghijkl","passed":true},{"actual":null,"check":"media-type fixture 10","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 11","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 12","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 13","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 14","expected":null,"passed":true},{"actual":"b1","check":"media-type fixture 15","expected":"b1","passed":true},{"actual":"abc","check":"media-type fixture 16","expected":"abc","passed":true},{"actual":"ab","check":"media-type fixture 17","expected":"ab","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"media-type fixture 0\", \"actual\": \"a;b\", \"expected\": \"a;b\", \"passed\": true}, {\"check\": \"media-type fixture 1\", \"actual\": \"a\\\"b\", \"expected\": \"a\\\"b\", \"passed\": true}, {\"check\": \"media-type fixture 2\", \"actual\": \"a\\\\b\", \"expected\": \"a\\\\b\", \"passed\": true}, {\"check\": \"media-type fixture 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 4\", \"actual\": \"abc\", \"expected\": \"abc\", \"passed\": true}, {\"check\": \"media-type fixture 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 7\", \"actual\": \"a\", \"expected\": null, \"passed\": false}, {\"check\": \"media-type fixture 8\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 9\", \"actual\": \"abcdefghijkl\", \"expected\": \"abcdefghijkl\", \"passed\": true}, {\"check\": \"media-type fixture 10\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 11\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 12\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 13\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 14\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 15\", \"actual\": \"b1\", \"expected\": \"b1\", \"passed\": true}, {\"check\": \"media-type fixture 16\", \"actual\": \"abc\", \"expected\": \"abc\", \"passed\": true}, {\"check\": \"media-type fixture 17\", \"actual\": \"ab\", \"expected\": \"ab\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.651,"exit_code":1,"observations":[{"actual":"a;b","check":"media-type fixture 0","expected":"a;b","passed":true},{"actual":"a\"b","check":"media-type fixture 1","expected":"a\"b","passed":true},{"actual":"a\\b","check":"media-type fixture 2","expected":"a\\b","passed":true},{"actual":null,"check":"media-type fixture 3","expected":null,"passed":true},{"actual":"abc","check":"media-type fixture 4","expected":"abc","passed":true},{"actual":null,"check":"media-type fixture 5","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 6","expected":null,"passed":true},{"actual":"a","check":"media-type fixture 7","expected":null,"passed":false},{"actual":null,"check":"media-type fixture 8","expected":null,"passed":true},{"actual":"abcdefghijkl","check":"media-type fixture 9","expected":"abcdefghijkl","passed":true},{"actual":null,"check":"media-type fixture 10","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 11","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 12","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 13","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 14","expected":null,"passed":true},{"actual":"b1","check":"media-type fixture 15","expected":"b1","passed":true},{"actual":"abc","check":"media-type fixture 16","expected":"abc","passed":true},{"actual":"ab","check":"media-type fixture 17","expected":"ab","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"media-type fixture 0\", \"actual\": \"a;b\", \"expected\": \"a;b\", \"passed\": true}, {\"check\": \"media-type fixture 1\", \"actual\": \"a\\\"b\", \"expected\": \"a\\\"b\", \"passed\": true}, {\"check\": \"media-type fixture 2\", \"actual\": \"a\\\\b\", \"expected\": \"a\\\\b\", \"passed\": true}, {\"check\": \"media-type fixture 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 4\", \"actual\": \"abc\", \"expected\": \"abc\", \"passed\": true}, {\"check\": \"media-type fixture 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 7\", \"actual\": \"a\", \"expected\": null, \"passed\": false}, {\"check\": \"media-type fixture 8\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 9\", \"actual\": \"abcdefghijkl\", \"expected\": \"abcdefghijkl\", \"passed\": true}, {\"check\": \"media-type fixture 10\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 11\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 12\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 13\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 14\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 15\", \"actual\": \"b1\", \"expected\": \"b1\", \"passed\": true}, {\"check\": \"media-type fixture 16\", \"actual\": \"abc\", \"expected\": \"abc\", \"passed\": true}, {\"check\": \"media-type fixture 17\", \"actual\": \"ab\", \"expected\": \"ab\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.561,"exit_code":0,"observations":[{"actual":"a;b","check":"media-type fixture 0","expected":"a;b","passed":true},{"actual":"a\"b","check":"media-type fixture 1","expected":"a\"b","passed":true},{"actual":"a\\b","check":"media-type fixture 2","expected":"a\\b","passed":true},{"actual":null,"check":"media-type fixture 3","expected":null,"passed":true},{"actual":"abc","check":"media-type fixture 4","expected":"abc","passed":true},{"actual":null,"check":"media-type fixture 5","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 6","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 7","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 8","expected":null,"passed":true},{"actual":"abcdefghijkl","check":"media-type fixture 9","expected":"abcdefghijkl","passed":true},{"actual":null,"check":"media-type fixture 10","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 11","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 12","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 13","expected":null,"passed":true},{"actual":null,"check":"media-type fixture 14","expected":null,"passed":true},{"actual":"b1","check":"media-type fixture 15","expected":"b1","passed":true},{"actual":"abc","check":"media-type fixture 16","expected":"abc","passed":true},{"actual":"ab","check":"media-type fixture 17","expected":"ab","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"media-type fixture 0\", \"actual\": \"a;b\", \"expected\": \"a;b\", \"passed\": true}, {\"check\": \"media-type fixture 1\", \"actual\": \"a\\\"b\", \"expected\": \"a\\\"b\", \"passed\": true}, {\"check\": \"media-type fixture 2\", \"actual\": \"a\\\\b\", \"expected\": \"a\\\\b\", \"passed\": true}, {\"check\": \"media-type fixture 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 4\", \"actual\": \"abc\", \"expected\": \"abc\", \"passed\": true}, {\"check\": \"media-type fixture 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 7\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 8\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 9\", \"actual\": \"abcdefghijkl\", \"expected\": \"abcdefghijkl\", \"passed\": true}, {\"check\": \"media-type fixture 10\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 11\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 12\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 13\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 14\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"media-type fixture 15\", \"actual\": \"b1\", \"expected\": \"b1\", \"passed\": true}, {\"check\": \"media-type fixture 16\", \"actual\": \"abc\", \"expected\": \"abc\", \"passed\": true}, {\"check\": \"media-type fixture 17\", \"actual\": \"ab\", \"expected\": \"ab\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}