<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def start_component(workload: CoroutineFunction[T], *args: Any, **kwargs: Any) -> Component[T]: """\ Starts the passed `workload` with additional `commands` and `events` pipes. The workload will be executed as a task. A simple example. Note that here, the component is exclusively reacting to commands, and the owner waits for acknowledgements to its commands, making the order of outputs predictable. call start done send command > Hello World done call stop done 1 """


    commands_a, commands_b = pipe()
    events_a, events_b = pipe()

    task = asyncio.create_task(workload(*args, commands=commands_b, events=events_b, **kwargs))

    component = Component[T](commands_a, events_a, task)
    await component.wait_for_start()
    return component