<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _subscribe_all(self):
 """ Subscribes all streams to their input. Subscribes all plugins to all their inputs. Subscribes all plugin outputs to the plugin. """

        for stream in (self.inbound_streams + self.outbound_streams):
            for input_ in stream.inputs:
                if not type(input_) is int and input_ is not None:
                    self._subscribe(stream, input_)

        for plugin in self.plugins:
            for input_ in plugin.inputs:
                self._subscribe(plugin, input_)

            for output in plugin.outputs:
                # Find output stream instance
                subscriber = next((x for x in self.outbound_streams
                                  if x.name == output), None)
                if subscriber is None:
                    log.warn('The outbound stream {} does not '
                             'exist so will not receive messages '
                             'from {}'.format(output, plugin))
                else:
                    self._subscribe(subscriber, plugin.name)