<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run(command, raw_output=False):
 """Run a command using subprocess. :param command: command line to be run :type command: str :param raw_output: does not attempt to convert the output as unicode :type raw_output: bool :return: error code, output (``stdout``) and error (``stderr``) :rtype: tuple """

    p = Popen(command.split(), stdout=PIPE, stderr=PIPE)
    (stdout, stderr) = p.communicate()
    # On python 3, subprocess.Popen returns bytes objects.
    if not raw_output:
        return (
            p.returncode,
            [line.rstrip() for line in stdout.decode("utf-8").splitlines()],
            [line.rstrip() for line in stderr.decode("utf-8").splitlines()]
        )
    else:
        return (p.returncode, stdout, stderr)