C]      !"#$%&'()*+,-./0123456789:;<=>?@ABCD E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m nopqrstuvwxyz{|}~portable experimentaljeremy@n-heptane.com-turns the quickcheck test into an hunit test )Use this if you want to provide a custom  instead of  . quickcheck config quickcheck property <modified version of the tests function from Test.QuickCheck ,Create a relative URI with the given query. DSet the port number in the URI authority, creating it if necessary. Return the pairs in a URI's query  Modify a URI',s query by applying a function to the pairs 6Turn a list of attribute value pairs into a uriQuery. 56?A record used to hold the output style information for a task. C This The prefixes that will appear at the beginning of each line, E and the desired verbosity level. Suggested verbosity level policy: C -1: No output of any kind, as if you were directing all output to devnull L 0: Error output only, suitable for a run whose log you might examine later I 1: casual progress reporting - if you were running on a console but didn't " expect anything to go wrong J 2: detailed progress reporting - show more progress, particularly things N that might fail during the normal operation of the autobuilder: patches J that fail to apply, dpkg-buildpackage runs that return errors, etc. C 3: Debugging output - use this level or higher if you suspect the J autobuilder itself is failing, or you are doing development work on  the autobuilder. .Add this string at the beginning of each line 4Ignore v functions whose argument is more than this Per-handle prefix =Class representing ways of doing console (terminal?) output. Write output to a handle. BIf we are not already at the beginning of a line, move the cursor # to the beginning of the next one.  Return the "effective verbosity" for a task. If the argument : is 2 it means the caller is computing ev for a task that ? normally does output when the verbosity level is 2 or higher. < If the verbosity of the current style is 1, then the ev or : effective verbosity is 2-1 = -1, so the output should be  quieter. !Modify the current output style. %Implementation of try for this monad #Use a new style for the TIO action /Set the output style for a handle to prefixed. !Prepend some text to the prefix.  Append some text to the prefix. /Get the current prefix for a particular handle CSet the output style for the stdout and stderr handle to prefixed, > using whatever prefixes were most recently set (default is [1] and [2].) HSwitch to prefixed mode and modify both the stdout and stderr prefixes. <Perform an action if the effective verbosity level is >= 0, ' otherwise return the default value d. Write a string to stdout. Write a string to stderr. (Verbosity controlled version of ePutStr !;Write a string to stdout depending on the verbosity level. "Write a character. #Write a character to stdout. $Write a character to stderr. (Verbosity controlled version of hPutStr %*Verbosity controlled version of hPutChar. &(Verbosity controlled version of putChar ')Verbosity controlled version of ePutChar (CMove to beginning of next line (if necessary) and output a string. )hPutStrBl to stdout. *hPutStrBl to stderr. +*Verbosity controlled version of hPutStrBl ,)Verbosity controlled version of putStrBl -*Verbosity controlled version of ePutStrBl .(Write a newline character and a string. /hPutStrLn to stdout. 0hPutStrLn to stderr. 1+Verbosity controlled version of hPutStrLn. 2)Verbosity controlled version of putStrLn 3*Verbosity controlled version of ePutStrLn 4hBOL to stdout. 5hBOL to stderr. 67$Verbosity controlled version of BOL 8%Verbosity controlled version of eBOL 1  !"#$%&'()*+,-./0123456781  ! "#$%&'()*+,-./0123456781  !"#$%&'()*+,-./01234567891This represents the state of the IO system. The 4 flag keeps B track of whether we are at the beginning of line on the console. D This is computed in terms of what we have sent to the console, but C it should be remembered that the order that stdout and stderr are D sent to the console may not be the same as the order in which they @ show up there. However, in practice this seems to work as one  would hope. %Is the console at beginning of line? :*Perform a TIO monad task in the IO monad. ;"Catch exceptions in a TIO action. KThe initial output state - at the beginning of the line, no special handle ; state information, no repositories in the repository map. 4  !"#$%&'()*+,-./0123456789:;9:;9:;<=<=>"Set up access to destination (user@host). 6Make sure there is a public key for the local account ?6See if we already have access to the destination (user@host). 8Try to set up the keys so we have access to the account 7Get the destination account info from the command line @-Copy the ssh configuration from $HOME to the /root directory of a  changeroot. >?@?>@>?@A<Parse the text returned when a directory is listed by a web < server. This is currently only known to work with Apache. AAABCALike withLock, but instead of giving up immediately, try n times  with a wait between each. BCBCBC DEFDEFDEFDEF G/The mighty consperse function - e.g. consperse , [a, b] -> a,b  consperse = MissingH.List.join H0surround each element of a list - e.g. surround ( ) [a, b] -> [(a)(b)] I3Replace the prefix of s, return Nothing if it doesn' t match. J0Remove a prefix of s, return nothing if it doesn' t match. KcartesianProduct [[1,2,3], [4,5],[6]] -> [[1,4,6],[1,5,6],[2,4,6],[2,5,6],[3,4,6],[3,5,6]] LFIXME: implement for a string M.Like maybe, but with empty vs. non-empty list NCSort a list using the compare function on the list elements mapped  over f. This is like $sortBy ( a b -> compare (f a) (f b)) ; except that f is applied O(n) times instead of O(n log n) O Monadic version of sortByMapped PQR GHIJKLMNOPQR GHIJKLMNOPQR GHIJKLMNOPQR SRender XML as a string.  MOVE: ?? TUVSTUVSTUVSTUV WXBPad strings so the columns line up. The argument and return value E elements are the rows of a table. Do not pad the rightmost column. Y,Group words into lines of length n or less. Zdirname [3Turn a list of (k, a) pairs into a map from k -> [a] . The order of the elements in  the a list is preserved. \],Weak attempt at canonicalizing a file path. ^@Run md5sum on a file and return the resulting checksum as text. _6Predicate to decide if two files have the same inode. `=Predicate to decide if two files have the same md5 checksum. a#Backwards compatibility functions. bce5A version of read with a more helpful error message. f7Given a tarball, return the name of the top directory. gWXYZ[\]^_`abcdefgXYWZ][\e^_`fabcgdWXYZ[\]^_`abcefg hijklmghijklmkhjilmghjiijklmnBReturn the list of subdirectories, omitting . and .. and ignoring  symbolic links. oAAtomically install a list of files. Returns a list of what went E wrong on failure. Will throw an error if it fails and is unable to 6 restore the original files to their original states. p Change a file'!s name only if the new name doesn' t exist. q Change a file'6s name, removing any existing file with the new name.  Change a file's name if it exists. rDelete a file if it exists :Create or update gzipped and bzip2-ed versions of a file. s9like removeLink, but does not fail if link did not exist tCWrite out three versions of a file, regular, gzipped, and bzip2ed. uCWrite out three versions of a file, regular, gzipped, and bzip2ed. H This new version assumes the files are written to temporary locations, , so any existing file there can be removed. vw2Like writeFile, but if the file already exists don' t touch it. " Example: writeFileIfMissing True "/var/lib/dpkg/status" "" x>Write a file if its content is different from the given text. yAdd-on for System.Posix.Files z{nopqrstuvwxyz{nqprotuvwxyzs{nopqrstuvwxyz{|.render a Doc using the current terminal width |||}6exitFailure with nicely formatted help text on stderr >generate help text, the argument is the result of getProgName =no value is returned, this function always calls exitFailure }}}~/Turn a list of eithers into an either of lists *Return a pair of the lefts and the rights ~~~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~     Extra-1.30 Test.QUnit Extra.URI Extra.CIO Extra.TIO Extra.Time Extra.SSH Extra.Net Extra.LockExtra.Terminal Extra.List Extra.HaXml Extra.Misc Extra.GPGSign Extra.FilesExtra.HughesPJ Extra.Exit Extra.Either Extra.BoolExtra.IOtestQuickCheckrelURI setURIPort parseURIQuerymodifyURIQuery setURIQuerysetURIQueryAttrdeleteURIQueryAttrTStyleprefix verbosityhPrefixCIOhPutStrhBOLevsetStyletryCIOdefStyle withStyle setVerbosity addVerbosity setPrefix addPrefix appPrefix hGetPrefix setPrefixes addPrefixes appPrefixesputStrePutStrvEPutStrvPutStrhPutCharputCharePutChar vHPutCharvPutChar vEPutChar hPutStrBlputStrBl ePutStrBl vHPutStrBl vPutStrBl vEPutStrBl hPutStrLnputStrLn ePutStrLn vHPutStrLn vPutStrLn vEPutStrLnboleBOLvHBOLvBOLvEBOLTIOrunTIOtryTIOformatDebianDatemyTimeDiffToString sshExport sshVerifysshCopywebServerDirectoryContentswithLock awaitLockc_get_window_size getWinSizegetWidth conspersesurround changePrefix dropPrefixcartesianProductwordsByempty sortByMapped sortByMappedM partitionMlistIntersection isSublistOfshowXMLmkTxt cfilterToElem mkDocumentmapSndcolumnsjustify parentPathlistMaplistDiffcanonmd5sum sameInode sameMd5sum processOutputprocessOutput2 splitOutputread'checkSuperUsertarDircdPGPKeyDefaultKeysign pgpSignFiles pgpSignFilegetSubDirectories installFiles renameMissing renameAlways deleteMaybeforceRemoveLinkwriteAndZipFileWithBackupwriteAndZipFile backupFilewriteFileIfMissingmaybeWriteFilecreateSymbolicLinkIfMissingprepareSymbolicLink replaceFile renderWidth exitWithHelpleftsrights concatEitherspartitionEitherscondQuickCheck-1.2.0.0Test.QuickCheckConfig defaultConfigtestsformatURIQuerynetwork-2.2.1.7 Network.URIfragmentquerypath authorityscheme unreservedreserved escapeStringparseabsoluteURInormalizePathSegmentsnormalizeEscape normalizeCase relativeFrom relativeTononStrictRelativeTounEscapeStringescapeURIString escapeURICharisUnescapedInURIisAllowedInURI uriToString isUnreserved isReserved isIPv4address isIPv6address isAbsoluteURIisRelativeReferenceisURIReferenceisURIparseAbsoluteURIparseRelativeReferenceparseURIReferenceparseURInullURI uriFragmenturiQueryuriPath uriAuthority uriSchemeURIuriPort uriRegName uriUserInfoURIAuth hSetPrefix hAddPrefix hAppPrefixvIOvHPutStrTIOTPositionEOLMOLBOLTStatecursorliftTIO initState_testgeneratePublicKey testAccess openAccessgetDest processIDPGPKey'' renameMaybezipFile restoreBackuptriesisRightisLeft rightOnlyeitherFromList