{uD      !"#$%&'()*+,-./0123456789:;<=>?@ABCNone !",02DRT7TWrapper for when an exception is thrown when reading from a child process, used by !.Exception thrown by 35 in the event of a non-success exit code. Note that 3- is called by other functions as well, like . or ,.A running process. The three type parameters provide the type of the standard input, standard output, and standard error streams.DAInternal type, to make for easier composition of cleanup actions. _A specification for how to create one of the three standard child streams. See examples below. eWhether a stream is an input stream or output stream. Note that this is from the perspective of the  child process1, so that a child's standard input stream is an STInput8, even though the parent process will be writing to it. \An abstract configuration for a process, which can then be launched into an actual running z. Takes three type parameters, providing the types of standard input, standard output, and standard error, respectively.7There are three ways to construct a value of this type: With the H smart constructor, which takes a command name and a list of arguments. With the . smart constructor, which takes a shell string With the ES instance via OverloadedStrings. If you provide it a string with no spaces (e.g., "date"?), it will treat it as a raw command with no arguments (e.g., proc "date" []!). If it has spaces, it will use shell.In all cases, the default for all three streams is to inherit the streams from the parent process. For other settings, see the setters below for default values.FInternal helper Create a  & from the given command and arguments.GInternal helper Create a   from the given shell command.HInternal helper3Set the child's standard input stream to the given  . Default: 4Set the child's standard output stream to the given  . Default: 3Set the child's standard error stream to the given  . Default: /Set the working directory of the child process.-Default: current process's working directory.3Set the environment variables of the child process.'Default: current process's environment.MShould we close all file descriptors besides stdin, stdout, and stderr? See I for more information.Default: False%Should we create a new process group?Default: FalseEDelegate handling of Ctrl-C to the child. For more information, see J.Default: FalseDetach console on Windows, see K.Default: False#Create new console on Windows, see L.Default: False!Set a new session with the POSIX setsid* syscall, does nothing on non-POSIX. See M.Default: False0Set the child process's group ID with the POSIX setgid* syscall, does nothing on non-POSIX. See N.Default: False/Set the child process's user ID with the POSIX setuid* syscall, does nothing on non-POSIX. See O.Default: False Create a new   from the given P' and a helper function. This function:Takes as input the raw  Maybe Handle returned by the Q+ function. This will be determined by the P argument. Returns the actual stream value a, as well as a cleanup function to be run when calling (.FA stream spec which simply inherits the stream of the parent process.@A stream spec which will close the stream for the child process. 8An input stream spec which sets the input to the given RO. A separate thread will be forked to write the contents to the child process.!%Capture the output of a process in a R.This function will fork a separate thread to consume all input from the process, and will only make the results available when the underlying S& is closed. As this is provided as an TV action, you can either check if the result is available, or block until it's ready.?In the event of any exception occurring when reading from the S, the T action will throw a ."DCreate a new pipe between this process and the child, and return a S to communicate with the child.#Use the provided S8 for the child process, and when the process exits, do noty close it. This is useful if, for example, you want to have multiple processes write to the same log file sequentially.$Use the provided Sa for the child process, and when the process exits, close it. If you have no reason to keep the S! open, you should use this over #.%3Provide input to a process by writing to a conduit.&2Read output from a process by read from a conduit.'$Launch a process based on the given  $. You should ensure that you close (_ on the result. It's usually better to use one of the functions in this module which ensures ( is called, such as ).(FClose a process and release any resources acquired. This will ensure U is called, wait for the process to actually exit, and then close out resources allocated for the streams. In the event of any cleanup exceptions being thrown this will throw an exception.) Use the bracket pattern to call ' and ensure ( is called.*Same as ), but also calls 3+;Run a process, capture its standard output and error as a RM, wait for it to complete, and then return its exit code, output, and error.Note that any previously used  or  will be overridden.,Same as +, but instead of returning the V, checks it with 3.-=Run the given process, wait for it to exit, and returns its V..Same as -, but ignores the V./1Wait for the process to exit and then return its V.0Same as / , but in T.15Check if a process has exited and, if so, return its V.2Same as 1 , but in T.3WWait for a process to exit, and ensure that it exited successfully. If not, throws an .4Same as 3 , but in T.WInternal5,Get the child's standard input stream value.6-Get the child's standard output stream value.7,Get the child's standard error stream value.8Take  out of the P. This method is needed in cases one need to use low level functions from the process( package. Use cases for this method are: %Send a special signal to the process.BTerminate the process group instead of terminating single process.4Use platform specific API on the underlying process.This method is considered unsafe because the actions it performs on the underlying process may overlap with the functionality that  typed-process1 provides. For example the user should not call ! on the process handle as eiter  or (B will lock. Additionally, even if process was terminated by the  or by sending signal, (M should be called either way in order to cleanup resources allocated by the  typed-process.>This instance uses  E to convert a raw string into a stream of input for a child process.bXYZ[\]^_D`a bcd efghijklmnopqrsFGH !"#$%&'()*+,-./01234W56789:;<=>?@9  !"#$%&'()*+,-./0123456789  !"#$%&'()*+,-./012345678>XYZ[\]^_D`a bcd  efghijklmnopqrsFGH !"#$%&'()*+,-./01234W56789:;<=>?@t      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQOPROPSOPTOPUOPVOPWOPXOYZ[\I]^I_`OIabc defghijHk lmnopqrstuvwxyz{|)typed-process-0.1.1-sAZWKjlpULFLBZeirqZVLSystem.Process.TypedSystem.Process ProcessHandlewaitForProcessterminateProcessByteStringOutputExceptionExitCodeException eceExitCodeeceProcessConfig eceStdout eceStderrProcess StreamSpec StreamTypeSTInputSTOutput ProcessConfigprocshellsetStdin setStdout setStderr setWorkingDirsetEnv setCloseFdssetCreateGroupsetDelegateCtlcsetDetachConsolesetCreateNewConsole setNewSession setChildGroup setChildUser mkStreamSpecinheritclosedbyteStringInputbyteStringOutput createPipe useHandleOpenuseHandleClose createSink createSource startProcess stopProcess withProcess withProcess_ readProcess readProcess_ runProcess runProcess_ waitExitCodewaitExitCodeSTM getExitCodegetExitCodeSTM checkExitCodecheckExitCodeSTMgetStdin getStdout getStderrunsafeProcessHandle$$fExceptionByteStringOutputException$fShowExitCodeException$fExceptionExitCodeException $fShowProcess$fApplicativeCleanup$fIsStringStreamSpec$fIsStringProcessConfig$fShowProcessConfig$fFunctorCleanup$fFunctorStreamSpec$fShowByteStringOutputExceptionCleanupbase Data.StringIsStringdefaultProcessConfigsetProcsetShellprocess-1.4.3.0System.Process.Common close_fds delegate_ctlcdetach_consolecreate_new_console new_session child_group child_user StdStream createProcessbytestring-0.10.8.1Data.ByteString.Lazy.Internal ByteStringGHC.IO.Handle.TypesHandle GHC.Conc.SyncSTMGHC.IO.ExceptionExitCode clearStreamspConfigpCleanuppStdinpStdoutpStderrpHandle pExitCode runCleanupssStreamssCreate pcCmdSpecpcStdinpcStdoutpcStderr pcWorkingDirpcEnv pcCloseFds pcCreateGrouppcDelegateCtlcpcDetachConsolepcCreateNewConsole pcNewSession pcChildGroup pcChildUser