<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def RunShellWithReturnCode(command, print_output=False, 		universal_newlines=True, env=os.environ):
 	"""Executes a command and returns the output from stdout and the return code. 	Args: 		command: Command to execute. 		print_output: If True, the output is printed to stdout. 			If False, both stdout and stderr are ignored. 		universal_newlines: Use universal_newlines flag (default: True). 	Returns: 		Tuple (output, return code) 	"""

	logging.info("Running %s", command)
	p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
		shell=use_shell, universal_newlines=universal_newlines, env=env)
	if print_output:
		output_array = []
		while True:
			line = p.stdout.readline()
			if not line:
				break
			print line.strip("\n")
			output_array.append(line)
		output = "".join(output_array)
	else:
		output = p.stdout.read()
	p.wait()
	errout = p.stderr.read()
	if print_output and errout:
		print >>sys.stderr, errout
	p.stdout.close()
	p.stderr.close()
	return output, p.returncode