<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def branch(*sinks_):
 """The |branch| decorator creates a |pull| object that pulls from a single source and then sends to all the sinks given. After all the sinks received the message, it is yielded. .. |branch| replace:: :py:func:`branch` """

    @pull
    def junction(source):
        sinks = [s() for s in sinks_]

        for msg in source():
            for s in sinks:
                s.send(msg)
            yield msg

    return junction