def METHOD_NAME(s: str) -> "Optional[Dict]":
    """read one line of simulation output and parse it if it can be.
    >>> parse_output("Repeater1[0]<-->QuantumChannel{cost=0.00795483;distance=2.5km;fidelity=0.647462;bellpair_per_sec=299.875;}<-->EndNode2[0]; Fidelity=0.647462; Xerror=-0.00802559; Zerror=0.352538; Yerror=0.00802559")
    {'name': 'Repeater1[0]<-->EndNode2[0]', 'channel': {'cost': 0.00795483, 'distance': '2.5km', 'fidelity': 0.647462, 'bellpair_per_sec': 299.875}, 'data': {'Fidelity': 0.647462, 'Xerror': -0.00802559, 'Zerror': 0.352538, 'Yerror': 0.00802559}}
    """
    if not "<-->" in s:
        return None
    channel_info, *rest = s.split(" ")
    node1, channel, node2 = channel_info.split("<-->")
    return {
        "name": f"{node1}<-->{remove_end_semi(node2)}",
        "channel": parse_object(channel[15:-2].split(";")),
        "data": parse_object(rest),
    }