{"abstract":"Arbitrage-violating prices return the bracket edge instead of None.","category":"Options payoff and settlement","checks":8,"contract":"Inputs kind, option price, S, K, r, T (no dividends). If price <= lower bound (call max(S - K e^{-rT},0), put max(K e^{-rT} - S,0)) or price >= upper bound (call S, put K e^{-rT}) return None. Otherwise bisect sigma in [1e-6, 5] for 100 iterations on the Black-Scholes price and return the midpoint rounded to 4.","evaluation_group":"w2-options_payoff_and_settlement-implied-volatility-bisection","failed_approach":"A strict comparison lets a price equal to the bound through.","family":"w2-options_payoff_and_settlement-implied-volatility-bisection-upper-arbitrage-bound","id":"FA-61746","implementations":{"attempt":{"sha256":"04775d694ff3a6c550250c0de80c8fe08212f82c7027f3b35f98ab13f3d18cae","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(kind, price, S, K, r, T):\n    def N(x):\n        return 0.5 * (1 + math.erf(x / math.sqrt(2)))\n    def bs(v):\n        d1 = (math.log(S / K) + (r + 0.5 * v * v) * T) / (v * math.sqrt(T))\n        d2 = d1 - v * math.sqrt(T)\n        if kind == 'C':\n            return S * N(d1) - K * math.exp(-r * T) * N(d2)\n        return K * math.exp(-r * T) * N(-d2) - S * N(-d1)\n    disc_k = K * math.exp(-r * T)\n    lower = max(S - disc_k, 0) if kind == 'C' else max(disc_k - S, 0)\n    upper = S if kind == 'C' else disc_k\n    if price <= lower or price > upper:\n        return None\n    lo, hi = 1e-6, 5.0\n    for _ in range(100):\n        mid = (lo + hi) / 2\n        if bs(mid) > price:\n            hi = mid\n        else:\n            lo = mid\n    return round((lo + hi) / 2, 4)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression upper arbitrage bound 1', ['C', 110.0, 110.0, 120.0, 0.03, 1.0], None], ['regression upper arbitrage bound 2', ['C', 90.0, 90.0, 120.0, 0.03, 0.25], None], ['partial repair probe 1', ['C', 100.0, 100.0, 100.0, 0.08, 0.25], None], ['partial repair probe 2', ['C', 100.0, 100.0, 95.0, 0.03, 2.0], None], ['normal control 1', ['C', 66.3463, 110.0, 120.0, 0.03, 0.25], 3.5], ['normal control 2', ['P', 18.141, 100.0, 120.0, 0.08, 2.0], 0.3], ['normal control 3', ['C', 70.2582, 90.0, 100.0, 0.03, 1.0], 2.5], ['normal control 4', ['P', 72.0164, 100.0, 100.0, 0.08, 1.0], 2.5]], [['regression upper arbitrage bound 1', ['C', 100.0, 100.0, 120.0, 0.08, 1.0], None], ['regression upper arbitrage bound 2', ['C', 110.0, 110.0, 100.0, 0.03, 2.0], None], ['partial repair probe 1', ['C', 100.0, 100.0, 100.0, 0.03, 1.0], None], ['partial repair probe 2', ['C', 110.0, 110.0, 120.0, 0.03, 1.0], None], ['normal control 1', ['C', 2.5954, 90.0, 100.0, 0.08, 1.0], 0.1], ['normal control 2', ['P', 0, 110.0, 95.0, 0.08, 1.0], None], ['normal control 3', ['C', 4.99, 100.0, 95.0, 0.0, 1.0], None], ['normal control 4', ['C', 0.01, 100.0, 100.0, 0.03, 1.0], None]], [['regression upper arbitrage bound 1', ['C', 90.0, 90.0, 120.0, 0.0, 2.0], None], ['regression upper arbitrage bound 2', ['C', 90.0, 90.0, 95.0, 0.0, 0.25], None], ['partial repair probe 1', ['C', 100.0, 100.0, 120.0, 0.03, 1.0], None], ['partial repair probe 2', ['P', 95.0, 90.0, 95.0, 0.0, 0.25], None], ['normal control 1', ['P', 0, 100.0, 95.0, 0.0, 1.0], None], ['normal control 2', ['P', 84.8945, 90.0, 95.0, 0.03, 1.0], 3.5], ['normal control 3', ['C', 88.8328, 90.0, 100.0, 0.08, 2.0], 3.5], ['normal control 4', ['P', 10.01, 110.0, 120.0, 0.03, 1.0], 0.1388]], [['regression upper arbitrage bound 1', ['P', 119.103367, 110.0, 120.0, 0.03, 0.25], None], ['regression upper arbitrage bound 2', ['P', 119.103367, 100.0, 120.0, 0.03, 0.25], None], ['partial repair probe 1', ['C', 100.0, 100.0, 120.0, 0.0, 0.25], None], ['partial repair probe 2', ['C', 110.0, 110.0, 120.0, 0.0, 1.0], None], ['normal control 1', ['P', 29.99, 90.0, 120.0, 0.0, 1.0], None], ['normal control 2', ['C', 101.1438, 110.0, 120.0, 0.0, 2.0], 2.5], ['normal control 3', ['P', 64.0631, 90.0, 120.0, 0.03, 1.0], 1.3], ['normal control 4', ['C', 0, 90.0, 100.0, 0.03, 1.0], None]], [['regression upper arbitrage bound 1', ['C', 90.0, 90.0, 120.0, 0.0, 1.0], None], ['regression upper arbitrage bound 2', ['P', 89.467631, 100.0, 95.0, 0.03, 2.0], None], ['partial repair probe 1', ['C', 110.0, 110.0, 100.0, 0.03, 1.0], None], ['partial repair probe 2', ['C', 90.0, 90.0, 100.0, 0.03, 1.0], None], ['normal control 1', ['P', 30.0, 90.0, 120.0, 0.0, 0.25], None], ['normal control 2', ['P', 0.0, 100.0, 100.0, 0.0, 1.0], None], ['normal control 3', ['C', 3.8442, 100.0, 100.0, 0.08, 1.0], None], ['normal control 4', ['C', 10.0, 110.0, 100.0, 0.0, 1.0], None]]]\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":"6f2883e7cd15e7d6c0fc1e03e7b63a49681f960ccc6be840698efddd5afccecd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(kind, price, S, K, r, T):\n    def N(x):\n        return 0.5 * (1 + math.erf(x / math.sqrt(2)))\n    def bs(v):\n        d1 = (math.log(S / K) + (r + 0.5 * v * v) * T) / (v * math.sqrt(T))\n        d2 = d1 - v * math.sqrt(T)\n        if kind == 'C':\n            return S * N(d1) - K * math.exp(-r * T) * N(d2)\n        return K * math.exp(-r * T) * N(-d2) - S * N(-d1)\n    disc_k = K * math.exp(-r * T)\n    lower = max(S - disc_k, 0) if kind == 'C' else max(disc_k - S, 0)\n    upper = S if kind == 'C' else disc_k\n    if price <= lower:\n        return None\n    lo, hi = 1e-6, 5.0\n    for _ in range(100):\n        mid = (lo + hi) / 2\n        if bs(mid) > price:\n            hi = mid\n        else:\n            lo = mid\n    return round((lo + hi) / 2, 4)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression upper arbitrage bound 1', ['C', 110.0, 110.0, 120.0, 0.03, 1.0], None], ['regression upper arbitrage bound 2', ['C', 90.0, 90.0, 120.0, 0.03, 0.25], None], ['partial repair probe 1', ['C', 100.0, 100.0, 100.0, 0.08, 0.25], None], ['partial repair probe 2', ['C', 100.0, 100.0, 95.0, 0.03, 2.0], None], ['normal control 1', ['C', 66.3463, 110.0, 120.0, 0.03, 0.25], 3.5], ['normal control 2', ['P', 18.141, 100.0, 120.0, 0.08, 2.0], 0.3], ['normal control 3', ['C', 70.2582, 90.0, 100.0, 0.03, 1.0], 2.5], ['normal control 4', ['P', 72.0164, 100.0, 100.0, 0.08, 1.0], 2.5]], [['regression upper arbitrage bound 1', ['C', 100.0, 100.0, 120.0, 0.08, 1.0], None], ['regression upper arbitrage bound 2', ['C', 110.0, 110.0, 100.0, 0.03, 2.0], None], ['partial repair probe 1', ['C', 100.0, 100.0, 100.0, 0.03, 1.0], None], ['partial repair probe 2', ['C', 110.0, 110.0, 120.0, 0.03, 1.0], None], ['normal control 1', ['C', 2.5954, 90.0, 100.0, 0.08, 1.0], 0.1], ['normal control 2', ['P', 0, 110.0, 95.0, 0.08, 1.0], None], ['normal control 3', ['C', 4.99, 100.0, 95.0, 0.0, 1.0], None], ['normal control 4', ['C', 0.01, 100.0, 100.0, 0.03, 1.0], None]], [['regression upper arbitrage bound 1', ['C', 90.0, 90.0, 120.0, 0.0, 2.0], None], ['regression upper arbitrage bound 2', ['C', 90.0, 90.0, 95.0, 0.0, 0.25], None], ['partial repair probe 1', ['C', 100.0, 100.0, 120.0, 0.03, 1.0], None], ['partial repair probe 2', ['P', 95.0, 90.0, 95.0, 0.0, 0.25], None], ['normal control 1', ['P', 0, 100.0, 95.0, 0.0, 1.0], None], ['normal control 2', ['P', 84.8945, 90.0, 95.0, 0.03, 1.0], 3.5], ['normal control 3', ['C', 88.8328, 90.0, 100.0, 0.08, 2.0], 3.5], ['normal control 4', ['P', 10.01, 110.0, 120.0, 0.03, 1.0], 0.1388]], [['regression upper arbitrage bound 1', ['P', 119.103367, 110.0, 120.0, 0.03, 0.25], None], ['regression upper arbitrage bound 2', ['P', 119.103367, 100.0, 120.0, 0.03, 0.25], None], ['partial repair probe 1', ['C', 100.0, 100.0, 120.0, 0.0, 0.25], None], ['partial repair probe 2', ['C', 110.0, 110.0, 120.0, 0.0, 1.0], None], ['normal control 1', ['P', 29.99, 90.0, 120.0, 0.0, 1.0], None], ['normal control 2', ['C', 101.1438, 110.0, 120.0, 0.0, 2.0], 2.5], ['normal control 3', ['P', 64.0631, 90.0, 120.0, 0.03, 1.0], 1.3], ['normal control 4', ['C', 0, 90.0, 100.0, 0.03, 1.0], None]], [['regression upper arbitrage bound 1', ['C', 90.0, 90.0, 120.0, 0.0, 1.0], None], ['regression upper arbitrage bound 2', ['P', 89.467631, 100.0, 95.0, 0.03, 2.0], None], ['partial repair probe 1', ['C', 110.0, 110.0, 100.0, 0.03, 1.0], None], ['partial repair probe 2', ['C', 90.0, 90.0, 100.0, 0.03, 1.0], None], ['normal control 1', ['P', 30.0, 90.0, 120.0, 0.0, 0.25], None], ['normal control 2', ['P', 0.0, 100.0, 100.0, 0.0, 1.0], None], ['normal control 3', ['C', 3.8442, 100.0, 100.0, 0.08, 1.0], None], ['normal control 4', ['C', 10.0, 110.0, 100.0, 0.0, 1.0], None]]]\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":"1067edd3328aea20e7583243b3fc649752e831a7473d1a3f498ca72ad44b248b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(kind, price, S, K, r, T):\n    def N(x):\n        return 0.5 * (1 + math.erf(x / math.sqrt(2)))\n    def bs(v):\n        d1 = (math.log(S / K) + (r + 0.5 * v * v) * T) / (v * math.sqrt(T))\n        d2 = d1 - v * math.sqrt(T)\n        if kind == 'C':\n            return S * N(d1) - K * math.exp(-r * T) * N(d2)\n        return K * math.exp(-r * T) * N(-d2) - S * N(-d1)\n    disc_k = K * math.exp(-r * T)\n    lower = max(S - disc_k, 0) if kind == 'C' else max(disc_k - S, 0)\n    upper = S if kind == 'C' else disc_k\n    if price <= lower or price >= upper:\n        return None\n    lo, hi = 1e-6, 5.0\n    for _ in range(100):\n        mid = (lo + hi) / 2\n        if bs(mid) > price:\n            hi = mid\n        else:\n            lo = mid\n    return round((lo + hi) / 2, 4)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression upper arbitrage bound 1', ['C', 110.0, 110.0, 120.0, 0.03, 1.0], None], ['regression upper arbitrage bound 2', ['C', 90.0, 90.0, 120.0, 0.03, 0.25], None], ['partial repair probe 1', ['C', 100.0, 100.0, 100.0, 0.08, 0.25], None], ['partial repair probe 2', ['C', 100.0, 100.0, 95.0, 0.03, 2.0], None], ['normal control 1', ['C', 66.3463, 110.0, 120.0, 0.03, 0.25], 3.5], ['normal control 2', ['P', 18.141, 100.0, 120.0, 0.08, 2.0], 0.3], ['normal control 3', ['C', 70.2582, 90.0, 100.0, 0.03, 1.0], 2.5], ['normal control 4', ['P', 72.0164, 100.0, 100.0, 0.08, 1.0], 2.5]], [['regression upper arbitrage bound 1', ['C', 100.0, 100.0, 120.0, 0.08, 1.0], None], ['regression upper arbitrage bound 2', ['C', 110.0, 110.0, 100.0, 0.03, 2.0], None], ['partial repair probe 1', ['C', 100.0, 100.0, 100.0, 0.03, 1.0], None], ['partial repair probe 2', ['C', 110.0, 110.0, 120.0, 0.03, 1.0], None], ['normal control 1', ['C', 2.5954, 90.0, 100.0, 0.08, 1.0], 0.1], ['normal control 2', ['P', 0, 110.0, 95.0, 0.08, 1.0], None], ['normal control 3', ['C', 4.99, 100.0, 95.0, 0.0, 1.0], None], ['normal control 4', ['C', 0.01, 100.0, 100.0, 0.03, 1.0], None]], [['regression upper arbitrage bound 1', ['C', 90.0, 90.0, 120.0, 0.0, 2.0], None], ['regression upper arbitrage bound 2', ['C', 90.0, 90.0, 95.0, 0.0, 0.25], None], ['partial repair probe 1', ['C', 100.0, 100.0, 120.0, 0.03, 1.0], None], ['partial repair probe 2', ['P', 95.0, 90.0, 95.0, 0.0, 0.25], None], ['normal control 1', ['P', 0, 100.0, 95.0, 0.0, 1.0], None], ['normal control 2', ['P', 84.8945, 90.0, 95.0, 0.03, 1.0], 3.5], ['normal control 3', ['C', 88.8328, 90.0, 100.0, 0.08, 2.0], 3.5], ['normal control 4', ['P', 10.01, 110.0, 120.0, 0.03, 1.0], 0.1388]], [['regression upper arbitrage bound 1', ['P', 119.103367, 110.0, 120.0, 0.03, 0.25], None], ['regression upper arbitrage bound 2', ['P', 119.103367, 100.0, 120.0, 0.03, 0.25], None], ['partial repair probe 1', ['C', 100.0, 100.0, 120.0, 0.0, 0.25], None], ['partial repair probe 2', ['C', 110.0, 110.0, 120.0, 0.0, 1.0], None], ['normal control 1', ['P', 29.99, 90.0, 120.0, 0.0, 1.0], None], ['normal control 2', ['C', 101.1438, 110.0, 120.0, 0.0, 2.0], 2.5], ['normal control 3', ['P', 64.0631, 90.0, 120.0, 0.03, 1.0], 1.3], ['normal control 4', ['C', 0, 90.0, 100.0, 0.03, 1.0], None]], [['regression upper arbitrage bound 1', ['C', 90.0, 90.0, 120.0, 0.0, 1.0], None], ['regression upper arbitrage bound 2', ['P', 89.467631, 100.0, 95.0, 0.03, 2.0], None], ['partial repair probe 1', ['C', 110.0, 110.0, 100.0, 0.03, 1.0], None], ['partial repair probe 2', ['C', 90.0, 90.0, 100.0, 0.03, 1.0], None], ['normal control 1', ['P', 30.0, 90.0, 120.0, 0.0, 0.25], None], ['normal control 2', ['P', 0.0, 100.0, 100.0, 0.0, 1.0], None], ['normal control 3', ['C', 3.8442, 100.0, 100.0, 0.08, 1.0], None], ['normal control 4', ['C', 10.0, 110.0, 100.0, 0.0, 1.0], None]]]\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 contract stated explicitly in the contract field; no claim of conformance to any exchange or clearing rulebook. 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-options_payoff_and_settlement-implied-volatility-bisection-upper-arbitrage-bound","generated_at":"2026-09-29T14:46:58.094793+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Option expiry, exercise and settlement engines move cash and shares; a wrong branch misstates obligations.","repair":"Return None when price >= the upper bound.","root_cause":"The upper bound check is missing.","sha256":"190a734b47fe6b25f720523e9328def3d94ef20d025341f3c19c71a260b2f0f0","title":"Implied volatility by bisection with arbitrage bounds: prices at or above the upper bound are solved · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.126,"exit_code":1,"observations":[{"actual":5.0,"check":"regression upper arbitrage bound 1","expected":null,"passed":false},{"actual":5.0,"check":"regression upper arbitrage bound 2","expected":null,"passed":false},{"actual":5.0,"check":"partial repair probe 1","expected":null,"passed":false},{"actual":5.0,"check":"partial repair probe 2","expected":null,"passed":false},{"actual":3.5,"check":"normal control 1","expected":3.5,"passed":true},{"actual":0.3,"check":"normal control 2","expected":0.3,"passed":true},{"actual":2.5,"check":"normal control 3","expected":2.5,"passed":true},{"actual":2.5,"check":"normal control 4","expected":2.5,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression upper arbitrage bound 1\", \"actual\": 5.0, \"expected\": null, \"passed\": false}, {\"check\": \"regression upper arbitrage bound 2\", \"actual\": 5.0, \"expected\": null, \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": 5.0, \"expected\": null, \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": 5.0, \"expected\": null, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": 3.5, \"expected\": 3.5, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 0.3, \"expected\": 0.3, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 2.5, \"expected\": 2.5, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": 2.5, \"expected\": 2.5, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.253,"exit_code":1,"observations":[{"actual":5.0,"check":"regression upper arbitrage bound 1","expected":null,"passed":false},{"actual":5.0,"check":"regression upper arbitrage bound 2","expected":null,"passed":false},{"actual":5.0,"check":"partial repair probe 1","expected":null,"passed":false},{"actual":5.0,"check":"partial repair probe 2","expected":null,"passed":false},{"actual":3.5,"check":"normal control 1","expected":3.5,"passed":true},{"actual":0.3,"check":"normal control 2","expected":0.3,"passed":true},{"actual":2.5,"check":"normal control 3","expected":2.5,"passed":true},{"actual":2.5,"check":"normal control 4","expected":2.5,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression upper arbitrage bound 1\", \"actual\": 5.0, \"expected\": null, \"passed\": false}, {\"check\": \"regression upper arbitrage bound 2\", \"actual\": 5.0, \"expected\": null, \"passed\": false}, {\"check\": \"partial repair probe 1\", \"actual\": 5.0, \"expected\": null, \"passed\": false}, {\"check\": \"partial repair probe 2\", \"actual\": 5.0, \"expected\": null, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": 3.5, \"expected\": 3.5, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 0.3, \"expected\": 0.3, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 2.5, \"expected\": 2.5, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": 2.5, \"expected\": 2.5, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.443,"exit_code":0,"observations":[{"actual":null,"check":"regression upper arbitrage bound 1","expected":null,"passed":true},{"actual":null,"check":"regression upper arbitrage bound 2","expected":null,"passed":true},{"actual":null,"check":"partial repair probe 1","expected":null,"passed":true},{"actual":null,"check":"partial repair probe 2","expected":null,"passed":true},{"actual":3.5,"check":"normal control 1","expected":3.5,"passed":true},{"actual":0.3,"check":"normal control 2","expected":0.3,"passed":true},{"actual":2.5,"check":"normal control 3","expected":2.5,"passed":true},{"actual":2.5,"check":"normal control 4","expected":2.5,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression upper arbitrage bound 1\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"regression upper arbitrage bound 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"partial repair probe 1\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"partial repair probe 2\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": 3.5, \"expected\": 3.5, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": 0.3, \"expected\": 0.3, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": 2.5, \"expected\": 2.5, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": 2.5, \"expected\": 2.5, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}