<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def broadcast(_INPUT, *funcs, **kwargs):
 """copies an iterable and delivers the items to multiple functions /--> foo2bar(_INPUT) --> \ / \ _INPUT ---> foo2baz(_INPUT) ---> _OUTPUT \ / \--> foo2qux(_INPUT) --> / One way to construct such a flow in code would be:: _INPUT = repeat('foo', 3) foo2bar = lambda word: word.replace('foo', 'bar') foo2baz = lambda word: word.replace('foo', 'baz') foo2qux = lambda word: word.replace('foo', 'quz') _OUTPUT = broadcast(_INPUT, foo2bar, foo2baz, foo2qux) _OUTPUT == repeat(('bar', 'baz', 'qux'), 3) """

    map_func = kwargs.get('map_func', _map_func)
    apply_func = kwargs.get('apply_func', _apply_func)
    splits = izip(*tee(_INPUT, len(funcs)))
    return map_func(partial(apply_func, funcs), splits)