<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def put(self, path, value, timeout=None, event_timeout=None):
 """"Puts a value to a path and returns when it completes Args: path (list):
 The path to put to value (object):
 The value to set timeout (float):
 time in seconds to wait for responses, wait forever if None event_timeout: maximum time in seconds to wait between each response event, wait forever if None Returns: The value after the put completes """

        future = self.put_async(path, value)
        self.wait_all_futures(
            future, timeout=timeout, event_timeout=event_timeout)
        return future.result()